Домой Сравнения и рейтинги Гаджеты по задачам Создание аппаратного ключа безопасности на базе ESP32 за 6 долларов

Создание аппаратного ключа безопасности на базе ESP32 за 6 долларов

Энтузиаст превратил доступный микроконтроллер ESP32 стоимостью 6 долларов в полноценный аналог аппаратного ключа безопасности YubiKey для беспарольного входа.

1
0

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

Микроконтроллер ESP32 с подключенным кабелем

Что представляет собой микроконтроллер ESP32

ESP32 — это компактный микроконтроллер, разработанный компанией Espressif. Благодаря своей невысокой стоимости и широким возможностям программирования, эти платы пользуются популярностью у разработчиков DIY-проектов. Для создания эмулятора YubiKey автор использовал конкретную модель ESP32-S3N16R8, оснащенную 16 МБ флэш-памяти и 8 МБ PSRAM.

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

Принципы работы аппаратных ключей безопасности

Технология ключей (passkeys) позволяет пользователям авторизоваться в сервисах без ввода традиционных паролей. В отличие от менеджеров паролей, где учетные данные могут быть скомпрометированы при взломе облачного хранилища, аппаратные устройства хранят данные локально, в защищенном хранилище самого устройства. Это делает их практически неуязвимыми для фишинга.

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

Настройка ESP32 в качестве ключа безопасности

Процесс превращения микроконтроллера в аппаратный ключ занял менее двух минут. Для этого была использована платформа Pico Keys, которая позволяет развертывать собственные аппаратные модули безопасности (HSM).

  • На сайте Pico Keys доступен инструмент для прошивки плат на базе ESP32-S2 и S3.
  • Для работы был выбран проект Pico FIDO, который обеспечивает поддержку стандарта WebAuthn, использование PIN-кода и подтверждение нажатием физической кнопки.
  • После прошивки устройства, занявшей от 60 до 90 секунд, плату необходимо переподключить к компьютеру.
  • Для проверки работоспособности использовался сервис WebAuthn.io, позволяющий зарегистрировать временную учетную запись и сохранить ключ доступа непосредственно на ESP32.

После завершения настройки устройство можно оставлять подключенным к порту USB для авторизации в различных сервисах.

аппаратный ключ безопасности — иллюстрация 2 к материалу

Надежность и практичность DIY-решения

С технической точки зрения самодельный ключ на базе ESP32 не уступает брендовым аналогам, так как в обоих случаях используются микроконтроллеры для обработки аутентификации. Однако есть существенные различия в форм-факторе.

Фирменные устройства, например YubiKey, отличаются компактностью и высокой механической прочностью. В то же время отладочная плата ESP32 достаточно габаритная и хрупкая. Хотя ее можно поместить в корпус, напечатанный на 3D-принтере, такое решение вряд ли удобно носить с собой в кармане или сумке. Таким образом, DIY-вариант идеально подходит для использования в стационарных условиях, например за рабочим столом.

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

аппаратный ключ безопасности — иллюстрация 3 к материалу

Технические детали и возможности платформы ESP32

Микроконтроллер ESP32-S3N16R8, выбранный автором для проекта, выделяется среди прочих решений внушительным объемом памяти. Наличие 16 МБ флэш-памяти и 8 МБ PSRAM открывает возможности не только для простых скриптов, но и для запуска полноценных проектов, использующих высокоуровневые среды разработки, такие как MicroPython. Это избавляет от необходимости ограничиваться исключительно написанием кода на C. При покупке подобных плат (часто поставляемых в комплектах по 3 штуки) важно учитывать, что они требуют предварительной пайки выводов для установки в макетную плату, хотя все необходимые компоненты обычно входят в комплект поставки.

Почему аппаратные ключи — это стандарт безопасности

Хотя большинство пользователей сегодня полагаются на менеджеры паролей для хранения ключей доступа (passkeys), такой подход имеет уязвимое место: если сам менеджер паролей будет скомпрометирован, злоумышленники получат доступ ко всем вашим учетным записям. Аппаратный подход, реализованный в YubiKey или самодельном устройстве, переносит хранение «в цифровую изоляцию». Ключ физически находится в хранилище устройства, что делает его практически защищенным от фишинговых атак, которые нацелены на кражу данных из облачных сервисов или через перехват трафика.

Особенности реализации через Pico FIDO

Выбор прошивки Pico FIDO обусловлен тем, что она реализует полноценный стек аутентификации. Важным аспектом является поддержка WebAuthn — современного веб-стандарта, который позволяет браузерам взаимодействовать с аппаратными ключами для подтверждения личности пользователя. Процесс регистрации ключа на WebAuthn.io продемонстрировал, что после первичной настройки «проба пера» проходит успешно: система корректно распознает ESP32 как доверенное устройство, позволяя использовать его для входа без ручного ввода пароля.

Рекомендации по эксплуатации и форм-фактору

Главный вывод, к которому приходит автор, заключается в разделении сфер использования. Если фирменный YubiKey разработан как компактный и защищенный аксессуар для повседневного ношения, то ESP32 в его текущем исполнении — это скорее стационарное решение. «Чонки» (громоздкий) вид платы и её открытая архитектура делают её уязвимой к повреждениям при ношении в сумке или кармане. Однако в домашних условиях или в офисе, где устройство постоянно подключено к USB-порту компьютера, разница в надежности аутентификации между коммерческим продуктом и DIY-аналогом практически нивелируется.

«Я всегда хотел использовать YubiKey или другой аппаратный ключ безопасности, но был слишком экономным, чтобы купить его. Тем не менее, проверка DIY-пути — это отличный способ начать. Теперь я могу протестировать, действительно ли мне нравится использовать аппаратный ключ для входа в сервисы. Если это окажется удобным, я смогу решиться на покупку настоящего YubiKey, точно зная, что устройство не будет просто пылиться в ящике стола», — отмечает автор эксперимента.

Источник: https://www.howtogeek.com