Arduino Pro Micro и взлом кодовых замков

Меня зовут Максим Князев. На канале я пишу об Интернете вещей, информационной безопасности и технологиях так, чтобы было понятно и полезно. Разбираю Edge AI, стандарты, уязвимости и инструменты безопасной разработки, делюсь практическим опытом и вдохновляющими кейсами.

arduino pro microatmega32u4взлом кодовых замков

Смотрю я, значит, второй сезон «Миротворца», а там в четвёртой серии один из главных айтишников показывает своё устройство для «взлома» кодовых замков на дверях. И этого поста бы не было, если бы авторы сериала (вряд ли лично Джеймс Ганн, но всё же) не решили крупненько показать само устройство. В кадре я увидел вполне реальную микруху — Arduino Pro Micro на базе ATmega32U4, с которой я сам часто работал (как и со всей линейкой Arduino-подобных контроллеров)

Понятно, что она нужна была только как реквизит, чтобы правдоподобно помигать светодиодом. И я не говорю, что кто-то поступил неправильно — реквизит выполнил свою задачу. Но вы же меня знаете: я не могу это так просто оставить. В этом посте разберёмся, возможно ли вообще построить устройство для взлома кодовых замков на базе Arduino Pro Micro (без кода и инструкций, а то мне за это прилетит) 👮‍♂️

Краткая вводная по плате (даташит по ссылке):

ATmega32U4 (Pro Micro) — 8-битный AVR, 16 MHz, ≈32 KB флеша, ≈2.5 KB SRAM, нативный USB. Из плюсов отмечу компактность, низкое энергопотребление, возможность эмулировать USB-HID (клавиатура/мышь) и простая работа с GPIO

Чаще всего такие микроконтроллеры используют для небольших пет-проектов, когда только начинают трогать embedded. На что-то «прям крутое» из коробки плата не способна, но, как обычно, можно добавить разные модули (Bluetooth, Wi-Fi и тд), датчики и прочее. То есть расширить её базовый функционал более чем реально, но технические характеристики (та же память) останутся прежними. Поговорим именно об этих ограничениях 🧐

16 MHz + 2.5 KB SRAM — это очень скромно. Для генерации комбинаций (необходимых для брутфорса), хранения журналов и сложной логики ресурсы быстро исчерпаются. Цикл, перебирающий все комбинации, написать можно, но это будет неэффективно и медленно. А вот что-то более сложное и практичное по ресурсам не пройдёт

Если замок использует Bluetooth/Wi-Fi или проприетарные радиопротоколы, Pro Micro сама по себе бесполезна без внешних модулей, а они увеличат сложность, габариты и энергопотребление 💯

Коммерческие замки обычно маломальски, но защищены (хотя…): таймауты, блокировки после N неверных попыток, шифрование интерфейсов и другие анти-брутфорс-механизмы. Если перебирать «в слепую», 100% столкнётесь с такими ограничениями. Ещё один момент: масштабный перебор выигрывает от частоты операций; 8-битный AVR заметно уступает современным 32-битным MCU и SBC по скорости и возможностям

В итоге, да, на Pro Micro технически можно реализовать простейшую имитацию нажатий и попытаться перебрать очень короткие PIN-коды в идеальных условиях (без таймаутов/блокировок и тд). Но это так, чисто поиграться. Для чего-то серьёзного нам этого не хватит. Слишком ограничены возможности и ресурсы платы. А вот теперь, когда мы это поняли, давайте подумаем, какие микрухи теоретически могут подойти для взлома кодовых замков (ага, да, рекомендации по аппаратной начинке устройства для взлома — могу, умею, практикую) 🤓

  1. Во-первых, это все 32-битные MCU (RP2040 / Cortex-M). Они заметно быстрее, у них больше SRAM, часто доступен USB Host/Device и дополнительные периферийные возможности, что очень хорошо для точных таймингов и более гибкой логики. Как один из ярчайших представителей класса можно рассмотреть Raspberry Pi Pico
  2. Второе, SoC с радиомодулем (моя любимая ESP32-серия): встроенный Wi-Fi/Bluetooth, двухъядерные CPU и больше памяти
  3. Ну и третье, это малые одноплатники (Raspberry Pi Zero-класс). Энергии понадобится больше, будет не настолько компактно, но у тебя небольшой портативный компьютер под рукой зато. Там пиши и расширяй вообще что хочешь и как хочешь. Это даже не Flipper Zero, который построен на базе STM32. Это еще лучше

А сериал классный. Мне нравится 🥂

P.S. Наше законодательство вынуждает меня напомнить: любые попытки обхода замков или проникновения без явного согласия владельца и при отсутствии легитимной исследовательской задачи — незаконны и опасны. Я не даю инструкций по созданию подобных устройств и не помогаю с эксплуатацией уязвимостей в реальной среде

#информационная_безопасность
#интернет_вещей

Стоп-кадр из сериала: корпус кодового замка с макетной платой, на которой установлена плата Arduino Pro Micro и видны красные индикаторы
Реквизит: плата Arduino Pro Micro, видимая внутри корпуса кодового замка

Дискуссия

Сергей Юдин
Сергей Юдин
Я другое помню.
STM32 для дисплея и какой то периферии. А основной чип мощнее.
M
Сергей Юдин
STM32 для дисплея и какой то периферии. А основной чип мощнее.
Жалко, что на меня никто из разработчиков Flipper не подписан. Сейчас бы прям мог точечно подсказать(
Сергей Юдин
MaxiEnergy
Жалко, что на меня никто из разработчиков Flipper не подписан. Сейчас бы прям мог точечно подсказать(
Есть ихняя группа. Активность там сильно большая, а флиппера у меня нету и не предвидится. Не подписывался.
Сергей Юдин
MaxiEnergy
Жалко, что на меня никто из разработчиков Flipper не подписан. Сейчас бы прям мог точечно подсказать(
Мне так ответили
Потому что сначала на базе RPi Zero было Но RPi оказался продуктом не более чем для прототипирования
Оказывается я застал первые версии. А потом больше не интересовался.
Сергей Юдин
Однако идею сделать устройство на SBC с линухом, sdr и вайфаем так и не оставили, поэтому сейчас в разработке flipper one с нормальным SoC
M
Сергей Юдин
Однако идею сделать устройство на SBC с линухом, sdr и вайфаем так и не оставили, поэтому сейчас в разработке flipper one с нормальным SoC
Про Flipper One я слышал. Крутяк. Его я уже больше года жду)
Сергей Юдин
MaxiEnergy
Про Flipper One я слышал. Крутяк. Его я уже больше года жду)
А я потихоньку свою версию собираю. Как в zero с двумя МК. Но с другим функционалом. Пока нечего показывать.
Сергей Юдин
Как то давновато уже предложили идею универсального тестера. Чтоб и напряжение мерить и встроенный датчик газа, и ещё там плюшки. Мне пока нужны ИК порт, GPIO, RS485, и немного радио.
M
Сергей Юдин
А я потихоньку свою версию собираю. Как в zero с двумя МК. Но с другим функционалом. Пока нечего показывать.
Как появится что-то, обязательно напишите)
Присоединиться к обсуждению →

Читайте так же