Скетч помещает закрытый ключ WireGuard в массив символов, и туннель работает, поэтому вопрос возникает снова и снова. Решение, которое действительно нужно принять, — не «безопасно ли это», а «какое из трёх условий относится к этому развёртыванию». Вот они: кто может физически держать устройство, что даёт чтение флеша на вашей детали и делит ли парк один ключ или каждое устройство несёт свой. Ответьте на это, и проект последует, потому что каждое условие меняет цену утёкшего ключа, а не сам факт возможности утечки.

Что разрешает ключ

WireGuard аутентифицирует пиров по открытому ключу. Сервер сопоставляет открытый ключ каждого пира с адресом и AllowedIPs списком, поэтому именно закрытый ключ позволяет клиенту отправлять трафик с этого адреса.

Та же запись определяет, каких адресатов устройство может достичь, поэтому утёкший ключ раскрывает и сеть за туннелем, и адрес туннеля.

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

Если блок стоит в запертом шкафу и никто вне вашей команды его не трогает, риск — в основном вопрос распространения прошивки. Если его отправляют клиентам, он стоит в автомобиле или возвращается по гарантии, физическое владение и есть учётные данные, а секретность бинарника вторична. Тому, кто держит устройство в руках, не нужно читать ключ, потому что работающая прошивка сама откроет ему туннель. Поэтому ответ на стороне сервера должен включать отзыв и ограниченный срок жизни, а не только защищённый образ.

Решите это условие раньше двух других, потому что оно задаёт бюджет для обоих.

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

Кто может прочитать образ флеша, тот восстановит ключ, сохранённый литералом, — через отладочное подключение, файл обновления, резервную копию или возвращённое устройство. Шифрование флеша повышает цену прямого дампа, и документация ESP-IDF описывает, что эта функция покрывает для данной детали и конфигурации. Она не делает ключ неизвлекаемым при любой модели атаки и ничего не даёт для случая, когда устройство в руках. Относитесь к ней как к одному слою, меняющему цену, а не как к ответу.

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

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

Один ключ на производственную серию означает, что все блоки делят одну идентичность. Сервер не может отличить их в журналах, не может отозвать один, не отозвав все, и не может отличить клон от оригинала. Ключи на каждое устройство решают все три, ценой шага регистрации и сопоставления серийного номера с открытым ключом. Это сопоставление — тот актив, который превращает отзыв в правку одной строки вместо перепрошивки всего парка.

Если парк — пять блоков на столе, общий ключ может быть разумным обменом. Если это пятьсот в поле, это вовсе не обмен.

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

Создайте пару ключей на устройстве при первой загрузке, держите закрытую половину в защищённой энергонезависимой памяти и отправляйте только открытый ключ в службу регистрации, которая назначает адрес и пишет запись пира. Аутентифицируйте ответ регистрации, иначе злоумышленник в локальной сети сможет зарегистрировать свой ключ на вашей учётной записи. Никогда не печатайте закрытый ключ в последовательную консоль при подготовке. Записывайте серийный номер устройства рядом с открытым ключом, чтобы потерянный блок соответствовал ровно одной записи пира.

Это небольшая служба, и она и есть разница между парком, который можно проверить, и парком, который можно только перепрошить.

Время, конечные точки и решение

Пример синхронизирует время до запуска туннеля, и это важно за пределами TLS: рукопожатия WireGuard несут отметку времени для защиты от повтора, поэтому устройство, загрузившееся с неверными часами, может получить отказ в рукопожатии. Конечная точка — имя хоста, что ставит DNS на путь доверия, хотя открытый ключ сервера по-прежнему аутентифицирует пира. Неверный адрес тратит попытки и выдаёт, когда устройство в сети. Разберитесь с обоими, прежде чем спорить о ключе.

Затем решите: общий ключ только пока владение контролируется и парк мал, ключи на устройство — как только любое из этого перестаёт быть верным.

Похожие статьи