Skissen legger WireGuards private nøkkel i en tegnarray, og tunnelen virker, og derfor dukker spørsmålet opp igjen. Beslutningen du faktisk må ta, er ikke «er dette trygt», men «hvilken av tre betingelser gjelder for denne utrullingen». De er: hvem som fysisk kan holde enheten, hva en flash-lesing gir på din del, og om flåten deler én nøkkel eller bærer én hver. Svar på dem, og designet følger, fordi hver av dem endrer kostnaden av en lekket nøkkel, ikke det faktum at den kan lekke.

Hva nøkkelen autoriserer

WireGuard autentiserer peerver med en offentlig nøkkel. Serveren knytter hver peers offentlige nøkkel til en adresse og en AllowedIPs-liste, så det er den private nøkkelen som lar en klient sende trafikk fra den adressen.

Den samme oppføringen avgjør hvilke destinasjoner enheten kan nå, så en lekket nøkkel eksponerer nettverket bak tunnelen så vel som tunneladressen.

Betingelse én: hvem kan holde enheten

Hvis enheten står i et låst skap og ingen utenfor teamet ditt rører den, er eksponeringen mest et spørsmål om fastvare-distribusjon. Hvis den sendes til kunder, står i et kjøretøy eller kommer tilbake på garantien, er fysisk besittelse legitimasjonen, og hemmeligholdet av binæren er sekundært. Den som holder enheten, trenger ikke å lese nøkkelen, fordi fastvaren som kjører, vil åpne tunnelen for dem. Derfor må svaret på serversiden inneholde tilbakekalling og en begrenset levetid, ikke bare et beskyttet avtrykk.

Avgjør denne betingelsen før de to andre, fordi den setter budsjettet for begge.

Betingelse to: hva en flash-lesing gir

Enhver som kan lese flash-avtrykket, får tilbake en nøkkel lagret som literal, enten via en debug-tilkobling, en oppdateringsfil, en sikkerhetskopi eller en returnert enhet. Flash-kryptering øker kostnaden ved en direkte dump, og ESP-IDF-dokumentasjonen beskriver hva funksjonen dekker for en gitt del og konfigurasjon. Det gjør ikke nøkkelen uuttrekkbar under alle angrepsmodeller, og det gjør ingenting for tilfellet der enheten er i hånden. Behandle det som ett lag som endrer kostnaden, ikke som svaret.

Les plattformdokumentasjonen for din nøyaktige brikke og konfigurasjon før du hevder en egenskap i en designgjennomgang.

Betingelse tre: gjenbruk i hele flåten

Én nøkkel for en produksjonsserie betyr at hver enhet deler én identitet. Serveren kan ikke skille dem i loggene, kan ikke tilbakekalle én uten å tilbakekalle alle, og kan ikke skille en klon fra en original. Nøkler per enhet løser alle tre, for prisen av et registreringstrinn og en mapping fra serienummer til offentlig nøkkel. Den mappingen er eiendelen som gjør tilbakekalling til en endring på én linje i stedet for en flåteomfattende reflash.

Er flåten fem enheter på en benk, kan en delt nøkkel være en rimelig handel. Er den fem hundre i felt, er det ikke en handel i det hele tatt.

Registreringsmønsteret som gjør nøkler per enhet praktiske

Generer nøkkelparet på enheten ved første oppstart, hold den private halvdelen i beskyttet ikke-flyktig lagring, og send bare den offentlige nøkkelen til en registreringstjeneste som tildeler en adresse og skriver peer-oppføringen. Autentiser registreringssvaret, ellers kan en angriper på det lokale nettverket registrere sin egen nøkkel på kontoen din. Skriv aldri ut den private nøkkelen til seriekonsollen under klargjøring. Noter enhetens serienummer ved siden av den offentlige nøkkelen, slik at en tapt enhet svarer til nøyaktig én peer-oppføring.

Det er en liten tjeneste, og det er forskjellen mellom en flåte du kan revidere og en flåte du bare kan reflashe.

Tid, endepunkter og beslutningen

Eksempelet synkroniserer tid før tunnelen startes, og det betyr noe utover TLS: WireGuard-håndtrykk bærer et tidsstempel for replay-beskyttelse, så en enhet som starter med feil klokke, kan få avviste håndtrykk. Endepunktet er et vertsnavn, noe som setter DNS i tillitsstien selv om serverens offentlige nøkkel fortsatt autentiserer peeren. En feil adresse kaster bort forsøk og avslører når enheten er online. Håndter begge før du krangler om nøkkelen.

Deretter bestemmer du: en delt nøkkel bare mens besittelsen er kontrollert og flåten er liten, nøkler per enhet så snart en av delene slutter å være sann.

Relaterte artikler