Schița pune cheia privată WireGuard într-un tablou de caractere, iar tunelul funcționează, de aceea întrebarea revine. Decizia pe care trebuie să o luați nu este «este sigur», ci «care dintre trei condiții se aplică acestei implementări». Ele sunt: cine poate ține fizic dispozitivul, ce oferă o citire a flash-ului pe piesa dvs. și dacă flota împarte o cheie sau fiecare poartă una proprie. Răspundeți la acestea și proiectarea urmează, pentru că fiecare condiție schimbă costul unei chei scurse, nu faptul că poate scăpa.

Ce autorizează cheia

WireGuard autentifică peerii cu cheia publică. Serverul asociază cheia publică a fiecărui peer unei adrese și unei AllowedIPs liste, deci cheia privată este cea care permite unui client să trimită trafic de la acea adresă.

Aceeași intrare decide ce destinații poate atinge dispozitivul, deci o cheie scursă expune rețeaua din spatele tunelului, precum și adresa tunelului.

Prima condiție: cine poate ține dispozitivul

Dacă unitatea stă într-un dulap încuiat și nimeni din afara echipei dvs. nu o atinge, expunerea este în principal o chestiune de distribuție a firmware-ului. Dacă este expediată clienților, stă într-un vehicul sau revine în garanție, posesia fizică este acreditarea, iar secretul binarului este secundar. Cine ține dispozitivul în mână nu trebuie să citească cheia, pentru că firmware-ul care rulează îi va deschide tunelul. De aceea răspunsul din partea serverului trebuie să includă revocare și o durată de viață limitată, nu doar o imagine protejată.

Decideți această condiție înaintea celorlalte două, pentru că stabilește bugetul pentru ambele.

A doua condiție: ce oferă o citire a flash-ului

Oricine poate citi imaginea flash recuperează o cheie stocată ca literal, fie printr-o conexiune de depanare, un fișier de actualizare, o copie de siguranță sau o unitate returnată. Criptarea flash crește costul unei extrageri directe, iar documentația ESP-IDF descrie ce acoperă funcția pentru o anumită piesă și configurație. Nu face cheia neextractibilă în toate modelele de atac și nu face nimic pentru cazul în care dispozitivul este în mână. Tratați-o ca un strat care schimbă costul, nu ca răspunsul.

Citiți documentația platformei pentru cipul și configurația exacte înainte de a afirma o proprietate într-o revizuire de proiectare.

A treia condiție: reutilizarea în toată flota

O cheie pentru o serie de producție înseamnă că fiecare unitate împarte o identitate. Serverul nu le poate distinge în jurnale, nu poate revoca una fără a le revoca pe toate, și nu poate distinge un clon de un original. Cheile pe dispozitiv rezolvă toate trei, cu prețul unui pas de înregistrare și al unei mapări de la numărul de serie la cheia publică. Acea mapare este activul care transformă revocarea într-o modificare de o linie în loc de o rescriere a întregii flote.

Dacă flota este de cinci unități pe un banc, partajarea unei chei poate fi un schimb rezonabil. Dacă sunt cinci sute pe teren, nu este deloc un schimb.

Modelul de înregistrare care face cheile pe dispozitiv practice

Generați perechea de chei pe dispozitiv la prima pornire, păstrați jumătatea privată în stocare nevolatilă protejată și trimiteți doar cheia publică unui serviciu de înregistrare care atribuie o adresă și scrie intrarea de peer. Autentificați răspunsul înregistrării, altfel un atacator din rețeaua locală poate înregistra propria cheie în contul dvs. Nu imprimați niciodată cheia privată pe consola serială în timpul provizionării. Notați numărul de serie al dispozitivului lângă cheia publică, astfel încât o unitate pierdută să corespundă exact unei intrări de peer.

Este un serviciu mic, și este diferența dintre o flotă pe care o puteți audita și una pe care o puteți doar rescrie.

Timp, puncte finale și decizia

Exemplul sincronizează timpul înainte de a porni tunelul, iar asta contează dincolo de TLS: strângerile de mână WireGuard poartă o marcă temporală pentru protecția la reluare, deci un dispozitiv care pornește cu ceasul greșit poate primi strângeri respinse. Punctul final este un nume de gazdă, ceea ce pune DNS pe calea de încredere, deși cheia publică a serverului autentifică în continuare peerul. O adresă greșită irosește încercări și dezvăluie când dispozitivul este online. Rezolvați ambele înainte de a discuta despre cheie.

Apoi decideți: o cheie partajată doar cât timp posesia este controlată și flota este mică, chei pe dispozitiv de îndată ce unul dintre cele două nu mai este adevărat.

Articole similare