ESP32 WireGuard-sleutels: per toestel of een ingeboude sleutel?
’n Sleutel wat in ESP32-firmware ingebou word, is ’n eweknie-identiteit, nie ’n wagwoord nie. Besluit aan die hand van drie toestande: besit, flitsbeskerming en hergebruik oor die vloot.
Die sketstekening plaas die WireGuard-privaatsleutel in ’n karakterversameling, en die tonnel werk, daarom duik die vraag telkens op. Die besluit wat jy werklik moet neem, is nie “is dit veilig nie”, maar “watter van drie toestande geld vir hierdie ontplooiing”. Dit is: wie die toestel fisies kan vashou, wat ’n flitslesing op jou onderdeel oplewer, en of die vloot een sleutel deel of elkeen een dra. Beantwoord dit en die ontwerp volg, want elkeen verander die koste van ’n uitgelekte sleutel, nie die feit dat dit kan uitlek nie.
Wat die sleutel magtig
WireGuard verifieer eweknieë met ’n publieke sleutel. Die bediener karteer elke eweknie se publieke sleutel na ’n adres en ’n AllowedIPs lys, so die privaatsleutel is wat ’n kliënt toelaat om verkeer vanaf daardie adres te stuur.
Dieselfde inskrywing bepaal watter bestemmings die toestel mag bereik, so ’n uitgelekte sleutel stel die netwerk agter die tonnel bloot sowel as die tonneladres.
Toestand een: wie kan die toestel vashou
As die eenheid in ’n geslote kas woon en niemand buite jou span dit hanteer nie, is die blootstelling meestal ’n vraag oor firmware-verspreiding. As dit aan klante gestuur word, in ’n voertuig sit of onder waarborg terugkom, is fisiese besit die geloofsbrief en is die geheimhouding van die binêre lêer sekondêr. Iemand wat die toestel vashou, hoef nie die sleutel te lees nie, want die lopende firmware sal die tonnel vir hulle oopmaak. Daarom moet die bedienerkant se antwoord herroeping en ’n begrensde leeftyd insluit, nie net ’n beskermde beeld nie.
Besluit hierdie toestand voor die ander twee, want dit stel die begroting vir albei vas.
Toestand twee: wat ’n flitslesing oplewer
Enigiemand wat die flitsbeeld kan lees, kry ’n sleutel terug wat as ’n letterlike waarde gestoor is, hetsy deur ’n ontfoutverbinding, ’n opdateringslêer, ’n rugsteun of ’n terugbesorgde eenheid. Flitsversyfering verhoog die koste van ’n direkte dump, en die ESP-IDF-dokumentasie beskryf wat die funksie vir ’n gegewe onderdeel en konfigurasie dek. Dit maak die sleutel nie onttrekbaar onder elke aanvalmodel nie, en dit doen niks vir die geval waar die toestel in die hand is nie. Behandel dit as een laag wat koste verander, nie as die antwoord nie.
Lees die platformdokumentasie vir jou presiese skyfie en konfigurasie voordat jy ’n eienskap in ’n ontwerphersiening beweer.
Toestand drie: hergebruik oor die vloot
Een sleutel vir ’n produksielopie beteken elke eenheid deel een identiteit. Die bediener kan hulle nie in die logboeke onderskei nie, kan nie een herroep sonder om almal te herroep nie, en kan nie ’n kloon van ’n oorspronklike onderskei nie. Sleutels per toestel los al drie op, teen die koste van ’n inskrywingsstap en ’n kartering van reeksnommer na publieke sleutel. Daardie kartering is die bate wat herroeping in ’n eenreëlverandering omskep eerder as ’n vlootwye herflits.
As die vloot vyf eenhede op ’n werkbank is, kan die deel van ’n sleutel ’n redelike ruil wees. As dit vyfhonderd in die veld is, is dit glad nie ’n ruil nie.
Die inskrywingspatroon wat sleutels per toestel prakties maak
Genereer die sleutelpaar op die toestel met die eerste opstart, hou die private helfte in beskermde nie-vlugtige berging, en stuur slegs die publieke sleutel na ’n inskrywingsdiens wat ’n adres toeken en die eweknie-inskrywing skryf. Verifieer die inskrywingsantwoord, anders kan ’n aanvaller op die plaaslike netwerk hul eie sleutel teen jou rekening registreer. Moet nooit die privaatsleutel na die serieweergawe druk tydens voorsiening nie. Teken die toestel se reeksnommer langs die publieke sleutel aan, sodat ’n verlore eenheid na presies een eweknie-inskrywing karteer.
Dit is ’n klein diens, en dit is die verskil tussen ’n vloot wat jy kan oudit en ’n vloot wat jy net kan herflits.
Tyd, eindpunte en die besluit
Die voorbeeld sinchroniseer tyd voordat die tonnel begin, en dit maak saak buite TLS: WireGuard-handdrukke dra ’n tydstempel vir herspelingbeskerming, so ’n toestel wat met ’n verkeerde klok opstart, kan handdrukke laat verwerp. Die eindpunt is ’n gasheernaam, wat DNS in die vertrouenspad plaas selfs al verifieer die bediener se publieke sleutel steeds die eweknie. ’n Verkeerde adres mors pogings en verraai wanneer die toestel aanlyn is. Hanteer albei voordat jy oor die sleutel redekawel.
Besluit dan: ’n gedeelde sleutel net terwyl besit beheer word en die vloot klein is, sleutels per toestel sodra enige van die twee ophou waar wees.