Все заметили, что технология NFC прочно вошла в нашу повседневную жизнь. Однако, помимо очевидного использования этой технологии, за кулисами существует целый мир экспериментов и исследований для тех, кто хочет заглянуть внутрь технологии NFC. Одно из самых интересных устройств, попавших в мои руки — это Flipper Zero, идеально подходящее для работы с различными протоколами беспроводной связи. В этой статье расскажу о своём опыте, взаимодействия с технологией NFC с помощью Flipper Zero.
Немного о Flipper Zero
Flipper Zero — это многофункциональное устройство, предназначенное для исследования и взаимодействия с различными протоколами беспроводной связи. Это компактное устройство напоминает игрушку таммагочи. Однако за простотой скрывается мощь, которая сразу же стала хитом среди энтузиастов информационной безопасности, инженеров и исследователей.
Flipper Zero способен работать с такими технологиями, как:
-
RFID 125 kHz
-
NFC
-
ИК-передатчик
-
Sub-GHZ
-
GPIO для управления внешними устройствами и платами
Историческая справка по NFC
Технология NFC (Near Field Communication), берет свое начало от другой технологии, называемой RFID (Radio Frequency Identification). Эта технология появилась в середине 20-го века. Технология RFID была разработана для идентификации объектов с помощью радиосигналов и широко используется в таких сферах, как логистика, управление запасами и идентификация товаров.
1. Рождение технологии: от RFID к NFC
-
1970-е:
-
В этот период было активное развитие технологии RFID, которая позволяет считывать информацию с меток на некотором расстоянии. Она использовалась в военной и логистической отраслях.
-
-
2002:
-
Sony и Philips разработали концепцию NFC как усовершенствованной версии RFID для взаимодействия на малых расстояниях.
-
2. Официальное появление NFC
-
2004:
-
Был создан NFC Forum, организация, ответственная за стандартизацию и популяризацию технологии.
-
Nokia стояла во главе ассоциации NFC Forum, созданной для продвижения использования NFC в мобильных устройствах и бытовой электронике
-
-
2006:
-
Был представлен первый телефон с поддержкой NFC, Nokia 6131. Это стало первым шагом к массовой популяризации технологии.
-
3. Интеграция с мобильными устройствами
-
2010:
-
Смартфон Samsung Nexus S стал первым Android-устройством с поддержкой NFC, которое позволило осуществлять бесконтактные платежи и обмен информацией.
-
-
2011:
-
Google Wallet стал первым крупномасштабным сервисом бесконтактных мобильных платежей.
-
-
2012:
-
«Смарт—метки» Sony SmartTags с поддержкой NFC — для автоматического переключения настроек телефона Sony Xperia S.
-
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:
-
«1» кодируется как переход с низкого уровня на высокий.
-
«0» кодируется как переход с высокого уровня на низкий.
Визуализация кодировки
-
-
Алгоритм 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 сохраняет данные карты (UID, данные секторов и блоков) в виде файла дампа.
-
-
Эмуляция карты:
-
В режиме «Card Emulation» Flipper Zero загружает сохранённый дамп карты и «притворяется» оригинальной картой.
-
В следующей части статьи мы перейдем от теории к практике и разберем основные функции Flipper Zero для работы с NFC, продолжение следует……
ссылка на оригинал статьи https://habr.com/ru/articles/876660/
Добавить комментарий