Skica stavlja privatni WireGuard ključ u niz znakova i tunel radi, zato se pitanje stalno vraća. Odluka koju zaista morate donijeti nije «je li ovo sigurno» nego «koji od tri uslova važi za ovo postavljanje». To su: ko može fizički držati uređaj, šta čitanje fleša daje na vašem dijelu i dijeli li flota jedan ključ ili svaki komad nosi svoj. Odgovorite na to i dizajn slijedi, jer svaki uslov mijenja cijenu procurjelog ključa, a ne činjenicu da može procuriti.

Šta ključ ovlašćuje

WireGuard provjerava partnere javnim ključem. Server mapira javni ključ svakog partnera na adresu i AllowedIPs listu, pa privatni ključ omogućava klijentu da šalje saobraćaj s te adrese.

Isti zapis odlučuje koja odredišta uređaj može dosegnuti, pa procurjeli ključ otkriva mrežu iza tunela kao i adresu tunela.

Uslov prvi: ko može držati uređaj

Ako jedinica stoji u zaključanom ormaru i niko izvan vašeg tima je ne dira, izloženost je uglavnom pitanje distribucije firmwarea. Ako se šalje kupcima, stoji u vozilu ili se vraća u garanciji, fizičko držanje je akreditiv, a tajnost binarnog fajla je sekundarna. Onaj koji drži uređaj ne mora čitati ključ, jer će mu firmware koji radi otvoriti tunel. Zato odgovor na strani servera mora uključiti opoziv i ograničen rok, a ne samo zaštićenu sliku.

Odlučite ovaj uslov prije druga dva, jer on postavlja budžet za oba.

Uslov drugi: šta čitanje fleša daje

Svako ko može pročitati sliku fleša vraća ključ pohranjen kao literal, bilo preko debug veze, datoteke za ažuriranje, sigurnosne kopije ili vraćene jedinice. Šifriranje fleša poskupljuje direktan dump, a ESP-IDF dokumentacija opisuje šta funkcija pokriva za dati dio i konfiguraciju. Ono ne čini ključ neizvodljivim pod svakim modelom napada i ne čini ništa za slučaj kada je uređaj u ruci. Tretirajte ga kao jedan sloj koji mijenja cijenu, ne kao odgovor.

Pročitajte dokumentaciju platforme za svoj tačan čip i konfiguraciju prije nego što tvrdite svojstvo u pregledu dizajna.

Uslov treći: ponovna upotreba u floti

Jedan ključ za proizvodnu seriju znači da svaka jedinica dijeli jedan identitet. Server ih ne može razlikovati u zapisima, ne može opozvati jedan a da ne opozove sve, i ne može razlikovati klon od originala. Ključevi po uređaju rješavaju sva tri, po cijeni koraka registracije i mapiranja serijskog broja na javni ključ. To mapiranje je imovina koja opoziv pretvara u promjenu jednog reda umjesto ponovnog flešovanja cijele flote.

Ako je flota pet jedinica na stolu, dijeljenje ključa može biti razumna razmjena. Ako je pet stotina na terenu, to nije nikakva razmjena.

Obrazac registracije koji čini ključeve po uređaju praktičnim

Generišite par ključeva na uređaju pri prvom podizanju, držite privatnu polovinu u zaštićenoj nepromjenljivoj memoriji i šaljite samo javni ključ registracijskoj službi koja dodjeljuje adresu i upisuje zapis partnera. Provjerite odgovor registracije, inače napadač na lokalnoj mreži može registrovati svoj ključ na vaš račun. Nikada ne ispisujte privatni ključ na serijsku konzolu tokom pripreme. Zapišite serijski broj uređaja pored javnog ključa, tako da izgubljena jedinica odgovara tačno jednom zapisu partnera.

To je mala usluga i ona je razlika između flote koju možete revidirati i flote koju možete samo ponovo flešovati.

Vrijeme, krajnje točke i odluka

Primjer sinhronizuje vrijeme prije pokretanja tunela, a to je važno i izvan TLS-a: WireGuard rukovanja nose vremensku oznaku za zaštitu od ponavljanja, pa uređaj koji se podiže s pogrešnim satom može dobiti odbijena rukovanja. Krajnja točka je ime hosta, što stavlja DNS u put povjerenja iako javni ključ servera i dalje provjerava partnera. Pogrešna adresa troši pokušaje i otkriva kada je uređaj na mreži. Riješite oboje prije nego što se prepirete oko ključa.

Zatim odlučite: zajednički ključ samo dok je držanje pod kontrolom i flota mala, ključevi po uređaju čim jedno od toga prestane biti istina.

Povezani članci