Proxmark3 — это многоцелевой аппаратный инструмент для анализа безопасности, исследований и разработок радиочастотной идентификации (RFID). Он поддерживает как высокочастотные (13,56 МГц), так и низкочастотные (125/134 кГц) бесконтактные карты и позволяет пользователям читать, эмулировать, фаззинг и перебор большинства протоколов RFID. [1]
Первоначально созданный Джонатаном Вестхьюсом и опубликованный как аппаратное обеспечение с открытым исходным кодом , позже он был подхвачен сообществом разработчиков, которые значительно улучшили как аппаратное, так и программное обеспечение по сравнению с исходной версией. Proxmark3 собрал большое сообщество исследователей безопасности, исследующих системы контроля доступа RFID , которые расширяют и поддерживают проект, одновременно используя его в своих собственных исследованиях. [2] Оригинальная аппаратная платформа Proxmark3 послужила основой для новых версий устройств, в том числе коммерческих. [1]
Proxmark3 основан на технологии программируемой вентильной матрицы (FPGA), которая позволяет реализовать высокопроизводительную низкоуровневую аналоговую обработку сигналов, модуляцию и демодуляцию. Демодулированные кадры обрабатываются отдельным микроконтроллером . Такая настройка потенциально позволяет реализовать любой протокол RFID в программном обеспечении Proxmark3.
Используются 2 независимых антенных контура для низких частот (НЧ) 125 кГц и 134 кГц и высоких частот (ВЧ) 13,56 МГц. Изначально обе антенны были подключены к общему 4-контактному USB-разъему Hirose, который временами был ненадежным. В последующих версиях было решено использовать отдельный разъем для каждой антенны.
8-битный аналого-цифровой преобразователь (АЦП) принимает аналоговый сигнал из антенной схемы, оцифровывает его и выводит цифровой сигнал на ПЛИС.
Программируемая пользователем вентильная матрица выполняет как модуляцию низкого уровня при передаче данных от ЦП, так и демодуляцию при получении сигнала от АЦП. Он может обрабатывать различные модуляции, такие как двухпозиционная манипуляция (OOK), амплитудная манипуляция (ASK) и т. д. FPGA работает двумя способами: как считыватель, генерирующий электромагнитное поле для карт, или как карта, ожидающая поля считывателя.
За протокольную часть отвечает микроконтроллер ARM . Он кодирует и декодирует кадры ( Манчестер , Миллер и т. д.) и выполняет более сложные функции. ЦП может ответить FPGA после обработки сигнала, реализуя тем самым транспортный уровень. ЦП также управляет связью USB с клиентским приложением ПК. [3]
Флэш-память используется для хранения прошивки. Ранние версии Proxmark3 имели только 64 КБ флэш-памяти, [4] но по мере развития прошивки ее стало мало, и появились версии с 512 КБ. [5]
Сама прошивка состоит из ARM-кода и образа FPGA (который загружается ARM). FPGA взаимодействует с ARM либо через порт SPI (ARM является ведущим), либо через общий SSP . SPI используется для конфигурации FPGA. SSP используется для данных, передаваемых по беспроводной сети. [6]
На момент разработки Proxmark3 технология SDR была труднодоступной. По этой причине была разработана разделенная архитектура FPGA / MCU : FPGA обрабатывает функции низкого уровня, такие как модуляция/демодуляция, в то время как микроконтроллер заботится о функциях высокого уровня ( интерфейс командной строки , кодирование/декодирование протокола и т. д.). Хотя архитектура FPGA/MCU технически устарела, она оставалась неизменной при всех версиях аппаратного обеспечения. Это позволило различным версиям использовать одну и ту же прошивку и привело к созданию большой базы кода. Однако со временем кодовая база Proxmark3 становилась все более раздробленной, и начала проявляться аппаратная нестабильность. В результате некоторые реализации уточняют и оптимизируют код (например, Proxmark3 RDV4), а другие используют исходную кодовую базу Proxmark3 (например, Proxmark3 EVO). [5]
Программное обеспечение Proxmark3 разделено на три части:
В более старых прошивках для подключения клиента к Proxmark3 использовался протокол USB HID . Невозможно было передать полученные образцы в режиме реального времени на ПК. ЦП получил команду от клиента, выполнил ее и сохранил результат в буфере памяти. Клиенту пришлось отправить новую команду для получения данных из буфера ЦП. [7] Новые версии прошивки используют последовательный интерфейс CDC для связи с клиентом. [2]
Выборки сигналов могут обрабатываться клиентом ПК, он может отображать полученные данные для анализа неизвестных сигналов.
С момента выпуска Proxmark3 в 2007 году несколько энтузиастов RFID расширили его функциональность. Сообщество Proxmark3 пережило быстрый рост после выпуска прошивки, поддерживающей стандарт ISO/IEC 14443-A , и появления успешных атак на Mifare Classic . Форум Proxmark3 (требуется регистрация) стал одним из основных центров обсуждения уязвимостей RFID-систем, который часто посещают исследователи безопасности, специализирующиеся на системах электронного контроля доступа (EAC). В сообществе Proxmark также есть разработчики других инструментов исследования RFID: например, LibNFC. [8] Позже был создан сервер Discord сообщества для размещения текстовых и голосовых обсуждений на тему безопасности системы EAC. На конец 2021 года в нем насчитывалось около 3000 членов.
Атаки карт Mifare Classic:
Бумага Mifare Classic:
Документы HID iClass:
Хитаг-бумага:
Бумага Мегамос:
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ){{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ){{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )