WireGuard кључеви на ESP32: по уређају или један уграђен?
Кључ компајлиран у фирмвер ESP32 је идентитет партнера, а не лозинка. Одлучите по три услова: поседовање, заштита флеша и поновна употреба у целом парку.
Скица ставља приватни кључ WireGuard-а у низ знакова, и тунел ради, зато се питање стално враћа. Одлука коју заиста морате да донесете није «да ли је ово безбедно», већ «који од три услова важи за ово распоређивање». То су: ко може физички да држи уређај, шта даје читање флеша на вашем делу и да ли парк дели један кључ или сваки носи свој. Одговорите на то и дизајн следи, јер сваки услов мења цену избрљаног кључа, а не чињеницу да може да избрља.
Шта кључ овлашћује
WireGuard аутентификује партнере јавним кључем. Сервер мапира јавни кључ сваког партнера на адресу и AllowedIPs листу, зато приватни кључ омогућава клијенту да шаље саобраћај са те адресе.
Исти запис одређује до којих одредишта уређај може да стигне, зато избрљан кључ открива мрежу иза тунела, као и адресу тунела.
Услов први: ко може да држи уређај
Ако јединица стоји у закључаном орману и нико ван вашег тима је не дира, изложеност је углавном питање дистрибуције фирмвера. Ако се шаље клијентима, стоји у возилу или се враћа под гаранцијом, физичко поседовање је акредитив, а тајност бинарног фајла је секундарна. Онај који држи уређај не мора да чита кључ, јер ће му фирмвер који ради отворити тунел. Зато одговор на страни сервера мора да укључи опозив и ограничен рок, а не само заштићену слику.
Одлучите овај услов пре друга два, јер он поставља буџет за оба.
Услов други: шта даје читање флеша
Свако ко може да прочита слику флеша враћа кључ зачуван као литерал, било преко везе за дебаговање, датотеке за ажурирање, резервне копије или враћене јединице. Шифровање флеша повећава цену директног дампа, а документација ESP-IDF описује шта функција покрива за дати део и конфигурацију. Оно не чини кључ неизвучљивим при сваком моделу напада и не чини ништа за случај када је уређај у руци. Третирајте га као један слој који мења цену, не као одговор.
Прочитајте документацију платформе за свој тачан чип и конфигурацију пре него што тврдите својство у прегледу дизајна.
Услов трећи: поновна употреба у целом парку
Један кључ за производну серију значи да свака јединица дели један идентитет. Сервер не може да их разликује у дневницима, не може да опозове један а да не опозове све, и не може да разликује клон од оригинала. Кључеви по уређају решавају сва три, по цену корака регистрације и мапирања серијског броја на јавни кључ. То мапирање је актив који опозив претвара у измену једне линије уместо поновног флешовања целог парка.
Ако је парк пет јединица на столу, дељење кључа може бити разумна размена. Ако је пет стотина на терену, то уопште није размена.
Модел регистрације који кључеве по уређају чини практичним
Генеришите пар кључева на уређају при првом подизању, држите приватну половину у заштићеном неиспарљивом складишту и шаљите само јавни кључ регистрационој служби која додељује адресу и пише запис партнера. Аутентификујте одговор регистрације, иначе нападач на локалној мрежи може да региструје свој кључ на вашем налогу. Никада не штампајте приватни кључ на серијској конзоли током припреме. Запишите серијски број уређаја поред јавног кључа, тако да изгубљена јединица одговара тачно једном запису партнера.
То је мала служба, и она је разлика између парка који можете да ревидирате и парка који можете само поново да флешујете.
Време, крајње тачке и одлука
Пример синхронизује време пре покретања тунела, и то је важно изван TLS: руковања WireGuard-а носе временски печат за заштиту од понављања, па уређај који се подигне са погрешним сатом може да добије одбијена руковања. Крајња тачка је име домаћина, што ставља DNS на пут поверења, иако јавни кључ сервера и даље аутентификује партнера. Погрешна адреса троши покушаје и открива када је уређај онлајн. Решите обоје пре него што се расправљате о кључу.
Затим одлучите: заједнички кључ само док је поседовање контролисано и парк мали, кључеви по уређају чим једно од тога престане да буде тачно.