Скетчът слага частния ключ на WireGuard в масив от символи и тунелът работи — затова въпросът се повтаря. Решението, което наистина трябва да вземете, не е „безопасно ли е това“, а „кое от три условия важи за това внедряване“. Те са: кой може физически да държи устройството, какво дава четенето на флаша при вашата част и дали паркът споделя един ключ, или всяка бройка носи свой. Отговорете на тях и дизайнът следва, защото всяко условие променя цената на изтекъл ключ, а не факта, че може да изтече.

Какво разрешава ключът

WireGuard удостоверява партньорите по публичен ключ. Сървърът съпоставя публичния ключ на всеки партньор с адрес и AllowedIPs списък, затова частният ключ е това, което позволява на клиента да изпраща трафик от този адрес.

Същият запис решава кои дестинации устройството може да достигне, затова изтекъл ключ разкрива мрежата зад тунела, както и адреса на тунела.

Условие първо: кой може да държи устройството

Ако бройката стои в заключен шкаф и никой извън екипа ви не я пипа, излагането е предимно въпрос на разпространение на фърмуера. Ако се изпраща до клиенти, стои в автомобил или се връща по гаранция, физическото владение е удостоверението, а тайната на бинарния файл е второстепенна. Човекът, който държи устройството, не се нуждае да чете ключа, защото работещият фърмуер ще отвори тунела вместо него. Затова отговорът от страна на сървъра трябва да включва отнемане и ограничен срок, а не само защитен образ.

Решете това условие преди другите две, защото то определя бюджета и за двете.

Условие второ: какво дава четенето на флаша

Всеки, който може да прочете образа на флаша, възстановява ключ, съхранен като литерал — през връзка за отстраняване на грешки, файл за обновяване, резервно копие или върната бройка. Шифроването на флаша повишава цената на директното извличане и документацията на ESP-IDF описва какво покрива функцията за дадена част и конфигурация. То не прави ключа неизвлекаем при всеки модел на атака и не прави нищо за случая с устройство в ръка. Приемайте го като един слой, който променя цената, а не като отговора.

Прочетете документацията на платформата за точния си чип и конфигурация, преди да твърдите свойство в преглед на дизайна.

Условие трето: повторно използване в парка

Един ключ за производствена серия означава, че всяка бройка споделя една идентичност. Сървърът не може да ги различи в журналите, не може да отнеме един, без да отнеме всички, и не може да различи клонинг от оригинал. Ключовете за всяко устройство решават и трите, на цената на стъпка за регистрация и съпоставяне на серийния номер с публичния ключ. Тази карта е активът, който превръща отнемането в промяна на един ред вместо презаписване на целия парк.

Ако паркът е пет бройки на маса, споделянето на ключ може да е разумна размяна. Ако е петстотин в полето, това изобщо не е размяна.

Схемата за регистрация, която прави ключовете за устройство практични

Генерирайте двойката ключове на устройството при първото зареждане, пазете частната половина в защитена енергонезависима памет и изпращайте само публичния ключ към услуга за регистрация, която задава адрес и записва записа на партньора. Удостоверете отговора за регистрация, иначе нападател в локалната мрежа може да регистрира свой ключ към вашия акаунт. Никога не отпечатвайте частния ключ на серийната конзола при предоставянето. Записвайте серийния номер на устройството до публичния ключ, така че изгубена бройка да съответства точно на един запис на партньор.

Това е малка услуга и тя е разликата между парк, който можете да одитирате, и парк, който можете само да презапишете.

Време, крайни точки и решението

Примерът синхронизира времето преди стартиране на тунела и това е важно отвъд TLS: ръкостисканията на WireGuard носят времева марка за защита от повторение, затова устройство, което стартира с грешен часовник, може да получи отхвърлени ръкостискания. Крайната точка е име на хост, което поставя DNS в пътя на доверие, макар публичният ключ на сървъра да продължава да удостоверява партньора. Грешен адрес прахосва опити и издава кога устройството е онлайн. Решете и двете, преди да спорите за ключа.

После решете: споделен ключ само докато владението е контролирано и паркът е малък, ключове за устройство веднага щом едно от двете престане да е вярно.

Подобни статии