От теории к практике: как раскрыть потенциал NFC с помощью Flipper Zero

Все заметили, что технология NFC прочно вошла в нашу повседневную жизнь. Однако, помимо очевидного использования этой технологии, за кулисами существует целый мир экспериментов и исследований для тех, кто хочет заглянуть внутрь технологии NFC. Одно из самых интересных устройств, попавших в мои руки — это Flipper Zero, идеально подходящее для работы с различными протоколами беспроводной связи. В этой статье расскажу о своём опыте, взаимодействия с технологией NFC с помощью Flipper Zero.

Немного о 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 основана на магнитном поле, создаваемом одной из антенн. Этот вид связи возникает, когда два устройства или устройство и метка находятся в непосредственной близости друг от друга.

Визуализация взаимодействия

Визуализация взаимодействия

  1. Активное и пассивное устройства

    • Активное устройство — смартфон или терминал — может создавать магнитное поле и управлять процессом обмена данными.

    • Пассивное устройство — это NFC — метка, которая использует энергию магнитного поля, создаваемого активным устройством, для функционирования и отправки данных.

  2. Режимы работы NFC Существует три основных способа взаимодействия с NFC:

    • Режим чтения/записи Активное устройство считывает данные с метки, или же информация записывается в метку самим устройством.

    • Режим эмуляции карты Устройство NFC может имитировать поведение карты, такой как банковская карта или карта-пропуск, для взаимодействия с терминалом.

    • Режим P2P (peer-to-peer) Два активных устройства обмениваются данными друг с другом (например, для передачи файлов или быстрого обмена контактами).

Этапы взаимодействия устройств с NFC

  1. Инициализация соединения

    • Когда два устройства NFC сближаются, одно из них создает магнитное поле, а другое «улавливает» его.

    • Устройства определяют, какой режим взаимодействия будет использоваться.

  2. Передача данных

    • Обмен данными осуществляется по протоколам ISO/IEC 14443 и 18092.

    • Данные передаются побитово с использованием технологии радиочастотной модуляции (ASK).

  3. Завершение сеанса

    • После завершения обмена устройства отсоединяются, и устройство перестает создавать какое-либо магнитное поле.

      Формат стека протоколов NFC

      Формат стека протоколов 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).

Взаимодействие считывателя с картой

  1. Модуляция данных:
    Считыватель → Карта:

    • Выполняется передача данных с помощью модуляции Модуляция с уменьшением несущей (OOK, On-Off Keying); сигнал переключается между присутствием и отсутствием несущей. Карта → Считывающее устройство:

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

  2. Кодирование данных: Данные, передаваемые между картой и считывающим устройством, кодируются в Manchester:

  3. Алгоритм CRYPTO-1:

    • Использует 48-битные ключи для шифрования.

    • Карта и считывающее устройство обмениваются случайными числами (nonce) для установления уникальных сеансов.

    • CRYPTO-1 был разработан для защиты, но его уязвимые места — малый размер ключа и предсказуемость генерации nonce — именно это и сделало карты уязвимыми. (на момент создания размер ключа считался достаточным, однако на данный момент взломать такие ключи довольно простая задача.)

      Алгоритм CRYPTO-1

      Алгоритм CRYPTO-1

      Ход взаимодействия

  4. Инициализация и обнаружение карты

    • Считыватель генерирует магнитное поле с помощью антенны.

    • Когда карта оказывается в зоне действия поля, в ее катушке возникает индуцированный ток, который приводит в действие микроконтроллер.

    • Карта отправляет ответ — запрос с определенным идентификатором UID в ответ на команду Request-A или REQA, поступающую от считывателя.

  5. Защита от коллизий и выбор карты

    • В случае, если в зоне действия считывателя окажется несколько карт, считыватель выполнит процедуру защиты от коллизий, чтобы работать только с одной из них.

    • В случае успешного выбора считывающее устройство отправляет команду SELECT, в то время как карта подтверждает свой выбор.

  6. Аутентификация

    • Карта и считывающее устройство используют криптографический алгоритм CRYPTO-1 для взаимной проверки друг друга.

    • Считывающее устройство шифрует «случайный запрос» и отправляет его на карту.

    • Карта выдает «ответ».

    • Считыватель сравнивает его с ожидаемым результатом.

    • Если проверка прошла успешно, открывается доступ к данным в секторе.

  7. Обмен данными После успешной аутентификации считыватель может:

    • считывать данные из блоков сектора;

    • изменять данные, если это разрешение задано в ключевом блоке.

    • Передача данных осуществляется по схеме амплитудной модуляции (ASK) в соответствии с протоколом, соответствующим стандарту ISO/IEC 14443-A.

      Блок схема активацим карты для доступ к блокам памяти

      Блок схема активацим карты для доступ к блокам памяти

Теперь, когда мы в курсе того, как работает технология NFC, можно приступить к практике эксплуатации уязвимостей этого протокола, но для начала следует разобраться, как Flipper Zero может «притвориться» картой.

  1. Считывание данных карты:

    • Используя Flipper Zero, производится полное клонирование карты.

    • Для этого необходим доступ к ключам аутентификации (например, KEY A и KEY B) для каждого сектора карты. Flipper Zero может использовать брутфорс или дамп ключей из считывателя.

  2. Создание дампа:

  3. Эмуляция карты:

В следующей части статьи мы перейдем от теории к практике и разберем основные функции Flipper Zero для работы с NFC, продолжение следует……

© Habrahabr.ru