От теории к практике: как раскрыть потенциал NFC с помощью Flipper Zero
Все заметили, что технология NFC прочно вошла в нашу повседневную жизнь. Однако, помимо очевидного использования этой технологии, за кулисами существует целый мир экспериментов и исследований для тех, кто хочет заглянуть внутрь технологии NFC. Одно из самых интересных устройств, попавших в мои руки — это Flipper Zero, идеально подходящее для работы с различными протоколами беспроводной связи. В этой статье расскажу о своём опыте, взаимодействия с технологией NFC с помощью Flipper Zero.
Немного о Flipper Zero
Flipper Zero — это многофункциональное устройство, предназначенное для исследования и взаимодействия с различными протоколами беспроводной связи. Это компактное устройство напоминает игрушку таммагочи. Однако за простотой скрывается мощь, которая сразу же стала хитом среди энтузиастов информационной безопасности, инженеров и исследователей.
Flipper Zero
Flipper Zero способен работать с такими технологиями, как:
Историческая справка по NFC
Технология NFC (Near Field Communication), берет свое начало от другой технологии, называемой RFID (Radio Frequency Identification). Эта технология появилась в середине 20-го века. Технология RFID была разработана для идентификации объектов с помощью радиосигналов и широко используется в таких сферах, как логистика, управление запасами и идентификация товаров.
1. Рождение технологии: от RFID к NFC
1970-е:
В этот период было активное развитие технологии RFID, которая позволяет считывать информацию с меток на некотором расстоянии. Она использовалась в военной и логистической отраслях.
2002:
2. Официальное появление NFC
2004:
Был создан NFC Forum, организация, ответственная за стандартизацию и популяризацию технологии.
Nokia стояла во главе ассоциации NFC Forum, созданной для продвижения использования NFC в мобильных устройствах и бытовой электронике
2006:
Был представлен первый телефон с поддержкой NFC, Nokia 6131. Это стало первым шагом к массовой популяризации технологии.
3. Интеграция с мобильными устройствами
2010:
Смартфон Samsung Nexus S стал первым Android-устройством с поддержкой NFC, которое позволило осуществлять бесконтактные платежи и обмен информацией.
2011:
2012:
4. Расширение возможностей бесконтактной оплаты
2014:
Apple внедрила NFC в свои гаджеты, в первую очередь в iPhone 6, он был выпущен с сервисом Apple Pay и мгновенно сделал эту технологию популярной среди пользователей iOS.
Появились Samsung Pay и другие крупные решения, которые сделали бесконтактную оплату удобной и безопасной.
5. NFC в повседневной жизни и IoT
2020:
NFC широко используется в устройствах IoT, таких как интеллектуальные замки, системы доступа, фитнес-трекинг и носимые устройства.
Использование NFC — меток будет расширяться для автоматизации домашних задач, отслеживания товаров и медицинских целей.
Принцип работы NFC
Технология NFC основана на магнитном поле, создаваемом одной из антенн. Этот вид связи возникает, когда два устройства или устройство и метка находятся в непосредственной близости друг от друга.
Визуализация взаимодействия
Активное и пассивное устройства
Активное устройство — смартфон или терминал — может создавать магнитное поле и управлять процессом обмена данными.
Пассивное устройство — это NFC — метка, которая использует энергию магнитного поля, создаваемого активным устройством, для функционирования и отправки данных.
Режимы работы NFC Существует три основных способа взаимодействия с NFC:
Режим чтения/записи Активное устройство считывает данные с метки, или же информация записывается в метку самим устройством.
Режим эмуляции карты Устройство NFC может имитировать поведение карты, такой как банковская карта или карта-пропуск, для взаимодействия с терминалом.
Режим P2P (peer-to-peer) Два активных устройства обмениваются данными друг с другом (например, для передачи файлов или быстрого обмена контактами).
Этапы взаимодействия устройств с NFC
Инициализация соединения
Когда два устройства NFC сближаются, одно из них создает магнитное поле, а другое «улавливает» его.
Устройства определяют, какой режим взаимодействия будет использоваться.
Передача данных
Обмен данными осуществляется по протоколам ISO/IEC 14443 и 18092.
Данные передаются побитово с использованием технологии радиочастотной модуляции (ASK).
Завершение сеанса
После завершения обмена устройства отсоединяются, и устройство перестает создавать какое-либо магнитное поле.
Формат стека протоколов NFC
Принцип работы карты MIFARE Classic 1k и считывателя
На данный момент под рукой у меня только карта и считыватель для MIFARE Classic 1K, в данном примере рассмотрим именно её.
MIFARE Classic 1K — одна из самых популярных NFC — карт, работающих на частоте 13,56 МГц в соответствии со стандартом ISO/IEC 14443-A. Ниже приводится описание структуры карты, и основных этапов взаимодействия карты со считывающим устройством.
Структура карты MIFARE Classic 1K
Физическая структура:
Микросхема: микроконтроллер со встроенным блоком памяти, модулем шифрования и коммуникационным интерфейсом.
Антенная катушка: индуктивная катушка, которая может служить для подачи энергии и передачи данных с помощью магнитного поля.
Логическая структура памяти:
Структура памяти
16 секторов, состоящих из 4 блоков по 16 байт каждый;
Последний блок каждого сектора является ключевым блоком, который включает в себя два ключа (A и B) и биты доступа (Access bits).
Взаимодействие считывателя с картой
Модуляция данных:
Считыватель → Карта:Выполняется передача данных с помощью модуляции Модуляция с уменьшением несущей (OOK, On-Off Keying); сигнал переключается между присутствием и отсутствием несущей. Карта → Считывающее устройство:
Используется модуляция нагрузки, карта изменяет сопротивление цепи. Эта модификация вызывает изменения в магнитном поле, которые могут быть зарегистрированы считывающим устройством.
Кодирование данных: Данные, передаваемые между картой и считывающим устройством, кодируются в Manchester:
Алгоритм CRYPTO-1:
Использует 48-битные ключи для шифрования.
Карта и считывающее устройство обмениваются случайными числами (nonce) для установления уникальных сеансов.
CRYPTO-1 был разработан для защиты, но его уязвимые места — малый размер ключа и предсказуемость генерации nonce — именно это и сделало карты уязвимыми. (на момент создания размер ключа считался достаточным, однако на данный момент взломать такие ключи довольно простая задача.)
Алгоритм CRYPTO-1
Ход взаимодействия
Инициализация и обнаружение карты
Считыватель генерирует магнитное поле с помощью антенны.
Когда карта оказывается в зоне действия поля, в ее катушке возникает индуцированный ток, который приводит в действие микроконтроллер.
Карта отправляет ответ — запрос с определенным идентификатором UID в ответ на команду Request-A или REQA, поступающую от считывателя.
Защита от коллизий и выбор карты
В случае, если в зоне действия считывателя окажется несколько карт, считыватель выполнит процедуру защиты от коллизий, чтобы работать только с одной из них.
В случае успешного выбора считывающее устройство отправляет команду SELECT, в то время как карта подтверждает свой выбор.
Аутентификация
Карта и считывающее устройство используют криптографический алгоритм CRYPTO-1 для взаимной проверки друг друга.
Считывающее устройство шифрует «случайный запрос» и отправляет его на карту.
Карта выдает «ответ».
Считыватель сравнивает его с ожидаемым результатом.
Если проверка прошла успешно, открывается доступ к данным в секторе.
Обмен данными После успешной аутентификации считыватель может:
считывать данные из блоков сектора;
изменять данные, если это разрешение задано в ключевом блоке.
Передача данных осуществляется по схеме амплитудной модуляции (ASK) в соответствии с протоколом, соответствующим стандарту ISO/IEC 14443-A.
Блок схема активацим карты для доступ к блокам памяти
Теперь, когда мы в курсе того, как работает технология NFC, можно приступить к практике эксплуатации уязвимостей этого протокола, но для начала следует разобраться, как Flipper Zero может «притвориться» картой.
Считывание данных карты:
Используя Flipper Zero, производится полное клонирование карты.
Для этого необходим доступ к ключам аутентификации (например,
KEY A
иKEY B
) для каждого сектора карты. Flipper Zero может использовать брутфорс или дамп ключей из считывателя.
Создание дампа:
Эмуляция карты:
В следующей части статьи мы перейдем от теории к практике и разберем основные функции Flipper Zero для работы с NFC, продолжение следует……