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