SD karttaki cihaz sırrını saklamak: kötü fikir mi, kabul edilebilir mi?
Yapay zekâ tarafından English dilinden çevrildi ·
Son sınıf projesi, ESP32-WROOM + microSD modülü, bir seranın okumalarını MQTT/TLS üzerinden Hermetry’ye gönderiyor. Çalışıyor.Danışmanım token’ın neden firmware’e derlendiğini sordu ve tüm “güvenlik şeylerini” (token, CA bundle, WiFi kimlik bilgileri) SD karttaki bir dosyaya taşımamı önerdi; böylece aynı binary her karta yüklenebilir ve ben sadece kartları değiştiririm. Kulağa hoş geliyor. Ama bir arkadaşım, sırların çıkarılabilir bellekte tutulmasının yapılabilecek en kötü şeylerden biri olduğunu söyledi.Ayrıca Hermetry’nin X.509 istemci sertifikalarını desteklediğini okudum ve bu yolu seçip sertifika ile anahtarı da karta koymayı düşündüm. Yani aslında iki sorum var:
- Kimlik bilgilerini harici belleklerde tutmak gerçekten kötü mü, neden?
- Hermetry ile kendi X.509 sertifikamı kullanabilir miyim?
Sadece “yapma” demek yerine mantığı anlamak istiyorum, çünkü bunu raporumda yazmam gerekiyor.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Arkadaşınız genel olarak haklı. Serada 10 saniyeliğine yalnız kalan biri kartı ve cihazınızın kimliğini alıp gider.
Your friend is right in general. Anyone with 10 seconds alone in the greenhouse walks away with the card and your device’s identity.
Yapay zekâ tarafından English dilinden çevrildi ·
Ama sır flash bellekteyse onlar flash belleği de okuyabilir, değil mi? Açıkçası farkı göremiyorum.
But if it’s in flash they can read the flash too, no? I don’t see the difference honestly.
Yapay zekâ tarafından English dilinden çevrildi ·
Fark çaba noktasında. Bir kartı çıkarmak hiçbir beceri gerektirmez. ESP32 üzerinde flash belleği dökmek de kolaydır, flash şifreleme açık değilse. Flash şifreleme + NVS şifreleme birlikte kullanıldığında, dökülen veri ssadece anlamsız çıktı verir.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Geçen yıl bir yüklenici için benzer bir tasarımı inceledim, bu yüzden raporda kullanmak üzere gerekçeyi buraya yazıyorum.Genel bilgiyi gizli bilgiden ayırın. CA paketi herkese açıktır; sunucu sertifikası da herkese açık bir sertifikadır ve normal bir CA paketiyle doğrulanır, dolayısıyla onu kartta tutmak sorun değil. WiFi parolası ve cihaz belirteci ise sırdır, çünkü tam olarak bu cihazı tanımlarlar.Çıkarılabilir bellekteki sırlar iki nedenle başarısız olur: onları kaldırmak hiçbir iz bırakmaz ve kart genellikle başka kartlara kopyalanır (“sadece kartı klonla”), bu durumda birden fazla cihaz aynı kimlik bilgisini paylaşır. Hermetry cihaz başına tek oturuma izin verir; yani aynı belirteci taşıyan iki kart birbirini sürekli düşürür ve cihazın Log sekmesinde ele geçirme görürsünüz.X.509 konusunda: kendi kartlarınız için kullanılamaz. İstemci sertifikaları Hermetry’nin cihaz sertifika yetkilisinden gelmelidir; üçüncü taraf cihazlar için kendi CA’nızı yüklemek sunulmaz. Bu yol, anahtarını kendisi üretip CSR’yi kendisi gönderen lisanslı cihazlar içindir. ESP32’niz bir erişim belirteci veya MQTT basic kullanır.ESP32 için yapacaklarım:1. Her kart için aynı ikili dosya uygundur. Belirteci, ilk açılışta küçük bir seri komutla sağlama sırasında NVS’e koyun, karta değil.2. Flash şifrelemeyi ve NVS şifrelemeyi açın, böylece flash dökümü belirteci ele vermez.3. Kart yalnızca veri kaydı ve CA paketi için kullanılsın.4. Hermetry’de her kart için bir cihaz ve bir belirteç tanımlayın; bir kart kaybolursa sırrı yenileyin. Bu, o kartın oturumlarını hemen sonlandırır.Sertifika kısıtı Device certificates sayfasının son bölümünde.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Gerçekten faydalı, teşekkürler. Yönetici „kartta public CA, sırlar şifreli NVS’te“ yaklaşımını kabul etti. X.509 kısmı bana bir hafta kazandırdı; openssl ile bir CA üretmeye zaten başlamıştım. Garip ama geçen hafta ikinci bir kart için kartı klonlamıştım ve veriler eksik çıktı; tam da ele geçirme (takeover) meselesiydi.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
tamam, “sıfır beceri ile biraz beceri” çerçevesi mantıklı, teşekkürler.
ok the “zero skill vs some skill” framing makes sense, thanks.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

