Gerätegeheimnis auf einer SD-Karte speichern: schlechte Idee oder akzeptabel?
Von English mit KI übersetzt ·
Abschlussarbeit, ESP32-WROOM + microSD-Modul, sendet Messwerte aus einem Gewächshaus über MQTT/TLS an Hermetry. Funktioniert.Mein Betreuer fragte, warum der Token in die Firmware einkompiliert ist, und schlug vor, alle „Sicherheitssachen“ (Token, CA-Bundle, WLAN-Zugangsdaten) in eine Datei auf der SD-Karte zu verschieben, damit dasselbe Binary auf jede Platine kann und ich nur die Karten tausche. Klingt praktisch. Aber dann sagte ein Freund, Geheimnisse auf Wechselspeichern abzulegen sei das Schlimmste, was man tun könne.Ich habe außerdem gelesen, dass Hermetry X.509-Client-Zertifikate unterstützt, und überlegte, diesen Weg zu gehen und Zertifikat und Schlüssel ebenfalls auf der Karte zu speichern. Es geht also eigentlich um zwei Fragen:
- Ist es tatsächlich schlecht, Zugangsdaten auf externem Speicher abzulegen, und warum?
- Kann ich mein eigenes X.509-Zertifikat mit Hermetry verwenden?
Ich möchte die Begründung verstehen und nicht nur „tu es nicht“ hören, weil ich das im Bericht erklären muss.
Final year project, ESP32-WROOM + microSD module, sends readings from a greenhouse to Hermetry over MQTT/TLS. Works.
My supervisor asked why the token is compiled into the firmware and suggested I move all the „security stuff“ (token, CA bundle, WiFi credentials) to a file on the SD card so the same binary can go on every board and I just swap cards. Sounds neat. But then a friend said that keeping secrets on removable storage is about the worst thing you can do.
I also read that Hermetry supports X.509 client certs and I was thinking of going that way and keeping the cert and key on the card too. So two questions really:
- is it actually bad to keep credentials on external memory, and why
- can I use my own X.509 cert with Hermetry?
I’d like to understand the reasoning, not just „don’t“, because I need to write it up in the report.
Von English mit KI übersetzt ·
Ihr Freund hat im Allgemeinen recht. Wer 10 Sekunden lang allein im Gewächshaus ist, geht mit der Karte und der Identität Ihres Geräts davon.
Your friend is right in general. Anyone with 10 seconds alone in the greenhouse walks away with the card and your device’s identity.
Von English mit KI übersetzt ·
Aber wenn es im Flash liegt, können sie das Flash doch auch auslesen, oder? Ehrlich gesagt sehe ich den Unterschied nicht.
But if it’s in flash they can read the flash too, no? I don’t see the difference honestly.
Von English mit KI übersetzt ·
Der Unterschied liegt im Aufwand. Eine Karte herauszuziehen erfordert null Können. Auch das Auslesen des Flash-Speichers ist beim ESP32 einfach, sofern die Flash-Verschlüsselung nicht aktiviert ist. Mit Flash-Verschlüsselung + NVS-Verschlüsselung liefert ein Dump nur unbrauchbare Daten.
Difference is effort. Pulling a card is zero skill. Dumping flash is easy on an ESP32 too, unless flash encryption is on. With flash encryption + NVS encryption, a dump gives you garbage.
Von English mit KI übersetzt ·
Ich habe letztes Jahr für einen Auftragnehmer ein ähnliches Design geprüft, daher hier die Begründung für den Bericht.Trenne öffentliche von geheimen Daten. Das CA-Bundle ist öffentlich; das Serverzertifikat ist ein öffentliches Zertifikat, das mit einem normalen CA-Bundle geprüft wird, daher ist es unbedenklich, es auf der Karte zu speichern. WLAN-Passwort und Geräte-Token sind Geheimnisse, denn sie identifizieren genau dieses Gerät.Geheimnisse auf Wechselmedien scheitern aus zwei Gründen: Beim Entfernen bleibt keine Spur zurück, und die Karte wird häufig auf andere Boards kopiert („klon einfach die Karte“), sodass mehrere Geräte dieselbe Zugangsdaten teilen. Hermetry erlaubt pro Gerät nur eine Sitzung; zwei Boards mit demselben Token werfen sich daher ständig gegenseitig heraus, und du würdest eine Übernahme im Log-Tab des Geräts sehen.Zu X.509: Für eigene Boards ist das nicht verfügbar. Client-Zertifikate müssen von der Geräte-Zertifizierungsstelle von Hermetry stammen, und das Hochladen einer eigenen CA für Fremdgeräte wird nicht angeboten; dieser Weg ist für lizenzierte Geräte gedacht, die ihren Schlüssel selbst erzeugen und selbst eine CSR senden. Dein ESP32 verwendet ein Access-Token oder MQTT basic.Was ich auf einem ESP32 tun würde:1. Dasselbe Binary für jedes Board ist in Ordnung. Lege das Token bei der Bereitstellung über einen kleinen seriellen Befehl beim ersten Start in NVS ab, nicht auf der Karte.2. Aktiviere Flash-Verschlüsselung und NVS-Verschlüsselung, damit ein Flash-Dump das Token nicht preisgibt.3. Die Karte nur für Datenprotokollierung und das CA-Bundle verwenden.4. In Hermetry je ein Gerät und ein Token pro Board anlegen; wenn ein Board verloren geht, das Geheimnis rotieren. Damit werden dessen Sitzungen sofort beendet.Die Einschränkung bei Zertifikaten steht im letzten Abschnitt von Device certificates.
Did a review of a similar design for a contractor last year, so here’s the reasoning for the report.
Separate public stuff from secret stuff. The CA bundle is public; the server certificate is a public one and you verify it with a normal CA bundle, so keeping that on the card is fine. WiFi password and the device token are secrets, they identify this exact device.
Secrets on removable media fail on two counts: removing them leaves no trace, and the card usually gets copied into other boards („just clone the card“), and then you have several devices sharing one credential. Hermetry allows one session per device, so two boards with the same token keep kicking each other off, and you’d see takeover in the device’s Log tab.
On X.509: for your own boards it’s not available. Client certificates must come from Hermetry’s device certificate authority, and uploading your own CA for third-party devices is not offered; that path is for licensed devices that generate their key and send a CSR themselves. Your ESP32 uses an access token or MQTT basic.
What I’d do on an ESP32:
1. Same binary for every board is fine. Put the token in NVS at provisioning (a small serial command on first boot), not on the card.
2. Turn on flash encryption and NVS encryption, so a flash dump does not give up the token.
3. Card only for data logging and the CA bundle.
4. In Hermetry, one device and one token per board; rotate the secret if a board goes missing. That ends its sessions at once.
The certificate limitation is on Device certificates, last section.
Von English mit KI übersetzt ·
Wirklich hilfreich, danke. Der Vorgesetzte hat „Public CA auf der Karte, Geheimnisse in verschlüsseltem NVS“ akzeptiert. Den X.509-Teil hat mir eine Woche gespart, ich hatte schon angefangen, eine CA mit openssl zu erzeugen. Komischerweise habe ich letzte Woche die Karte für eine zweite Platine geklont, und die Daten waren lückenhaft – genau das Takeover-Problem.
Really helpful, thank you. Supervisor accepted „public CA on card, secrets in encrypted NVS“. The X.509 bit saved me a week, I had already started generating a CA with openssl. Funny enough I had cloned the card for a second board last week and the data was patchy, it was exactly the takeover thing.
Von English mit KI übersetzt ·
ok, der Rahmen „keine Kenntnisse vs. etwas Kenntnisse“ ergibt Sinn, danke.
ok the „zero skill vs some skill“ framing makes sense, thanks.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

