Все заметили, что технология 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).
-
Завершение сеанса
-
После завершения обмена устройства отсоединяются, и устройство перестает создавать какое-либо магнитное поле.
-
Принцип работы карты 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 — именно это и сделало карты уязвимыми. (на момент создания размер ключа считался достаточным, однако на данный момент взломать такие ключи довольно простая задача.)
Ход взаимодействия
-
Инициализация и обнаружение карты
Считыватель генерирует магнитное поле с помощью антенны.
Когда карта оказывается в зоне действия поля, в ее катушке возникает индуцированный ток, который приводит в действие микроконтроллер.
Карта отправляет ответ - запрос с определенным идентификатором 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, продолжение следует……
Комментарии (5)
QtRoS
26.01.2025 11:39От теории к практике: как раскрыть потенциал NFC с помощью Flipper Zero
В статье только теория, да и та по стилю похожа на нейроподелку... Продолжение в таком же стиле ожидать или действительно есть интересный опыт использования Флиппера?
sunatchi Автор
26.01.2025 11:39да, действительно эта часть больше теоретическая, ее цель дать базу для тех, кто хотел бы подробнее разобраться как это работает
практический опыт использования будет в следущей части статьи
H2oker
26.01.2025 11:39Ставьте прошивку unleashed и используйте все возможности Флиппера без ограничений. Вначале считывается карточка, потом отсутствующие ключи добываются из устройства, когда флип прикидывается карточкой и добывает Хэши. Как только добыты Хэши, они отправляются на телефон и происходит их взлом, довольно быстро, потому что шифрование там никакое и протокол скомпрометированный. После этого получается рабочая нфц "карточка" и можно отельную карту оставлять в номере, если нежелательно отключение электричества при покидании номера, а дверь открывать флипером. Ну а так как секретная часть видимо не меняется в большинстве случаев, то ничто не мешает потом быстро сосканить карточку горничной у которой есть доступ ко всем номерам. Убедившись пару раз насколько всё это просто, я заработал себе небольшую паранойю и теперь на ночь подпираю в гостиницах стулом входную дверь. :)))
Newcss
Сообщество интузиастов давно сидит на ProxMark3 ))). Зачем изобретать велосипед?
sunatchi Автор
ProxMark3 более узко направленное устройство для работы с RFID/NFC, в то время как Flipper более универсальный, и отлично подходит для начального уровня