- 14443-a select
- Nfc taginfo
- Nfc, iso14443 и mifare
- Безопасность и уязвимость карт с бесконтактной (nfc) оплатой.
- Вместо введения
- Поддержка в смартфонах
- Запрос доступных приложений — select ppse
- Обязательное наличие операционной системы
- Ответ карты на get processing options
- Пишем данные
- Процесс имплантации
- Разблокировка смартфона
14443-a select
В начале обмена терминал устанавливает соединение с картой на канальном уровне. Для тех, кто знаком с сетями и моделью OSI, будет удобно представить это в качестве уровня L2, а UID (Unique Identifier) карты как MAC-адрес узла.
В терминологии стандарта ISO-14443:PCD (proximity coupling device) — название считывателя, в нашем случае это POS-терминалPICC (proximity integrated circuit card) — карта, в нашем случае эту роль выполняет телефон
Важное отличие обычной платежной карты от Apple Pay в том, что в карта всегда доступна для считывания и никак не позволяет управлять процессом считывания. Ее можно бесконтрольно считать через одежду, в то время как телефон, попадая в поле действия считывателя, предлагает пользователю активировать виртуальную карту.
R>> 52 // WUPA (wake up) R>> 52 // WUPA R>> 52 // WUPA R>> 52 // WUPA R>> 52 // WUPA R>> 52 // WUPA R>> 52 // WUPA T<< 04 00 // ATQA (Answer To Request type A) R>> 93 20 // Select cascade 1 (Anti Collision CL1 SEL) T<< 08 fe e4 ec fe // UID (4 bytes) BCC (Bit Count Check) R>> 93 70 08 fe e4 ec fe dd 6e // SEL (select tag 0x9370) UID CRC16 T<< 20 fc 70 // SAK (Select Acknowledge 0x20) CRC16 R>> 50 00 57 cd // HALT (Disable communocaion 0x5000) CRC16 R>> 26 // REQA R>> 52 // WUPA T<< 04 00 // ATQA R>> 93 70 08 fe e4 ec fe dd 6e // SELECT T<< 20 fc 70 // SAK R>> e0 80 31 73 // RATS (Request Answer to Select 0xE080) CRC16 T<< 05 78 80 70 02 a5 46 // ATS (Answer to select response)
Терминал постоянно передает команду 0x52 Wake-up (WUPA), и как только в поле действия появляется карта, она отвечает командой Answer To Request type A (ATQA), в нашем случае это 0x04 0x00. Ответ ATQA может различаться в зависимости от производителей чипа.
Получив ответ ATQA, терминал начинает процедуру выявления коллизий, чтобы определить, есть ли в поле действия более одной карты. Команда 0x93 0x20 Select cascade level 1 (SEL CL1) запрашивает у всех карт в поле действия сообщить первую часть своих идентификаторов UID.
Карта отвечает 0x08 0xFE 0xE4 0xEC 0xFE, первые четыре байта — UID виртуальной карты Apple Pay и контрольная сумма 0xFE Bit Count Check (BCC) в конце.
Получив идентификаторы карт, считыватель обращается к конкретной карте командой 0x93 0x70(SELECT). За командой следует UID карты 0x08 0xfe 0xe4 0xec 0xfe BCC 0xdd 0x6e CRC16.
Карта отвечает 0x20 Select Acknowledge (SAK) 0xfc 0x70 CRC16.
Если на этом шаге получено несколько ответов SAK, ридер может уменьшить длину UID в команде SELECT, пока не ответит единственная карта. Однако, как показано выше, некоторые POS-терминалы отказываются продолжать, если на этом этапе выявлены коллизии, то есть присутствие нескольких карт одновременно.
Длина UID может быть 4, 7 или 10 байт. У всех банковских карт, что я встречал, в том числе и в Apple Pay, UID был равен 4 байтам. Интересно, что Apple Pay генерирует разный UID на каждое считывание, в отличие от физических карт, где UID обычно постоянный. Уверен, что это сделано для того, чтобы айфоны не использовали в качестве примитивных карт доступа, так как системы СКУД на основе UID до сих пор очень популярны.
Ридер посылает команду 0x50 0x00 HALT 0x57 0xcd CRC16. Это команда завершения связи.
Дальше процедура повторяется заново, ридер снова пробуждает карту (WUPA), но уже без проверки коллизий, сразу выполняется SELECT. Зачем так сделано — не знаю, возможно, это какой-то более надежный способ определения коллизий.
Во второй раз ридер уже посылает команду 0xE0 0x80 Request Answer to Select (RATS) 0x31 0x73 CRC16.
Карта отвечает 0x05 0x78 0x80 0x70 0x02 Answer to select response (ATS) 0xA5 0x46 CRC16.
Answer to select — ответ аналогичный Answer To Reset (ATR) для контактных карт. В нем содержится информация о максимальном размере кадра и параметрах канального уровня.
На этом этапе «канальный» уровень завершен, далее начинается обмен на более высокоуровневом протоколе, в зависимости от приложения, содержащегося на карте. Операция SELECT одинакова для всех бесконтактных карт стандарта ISO 14443A, в том числе NFC-меток, билетов на общественный транспорт, и т.д.
Nfc taginfo
Для начала разберемся, что за теги нам достались. Китайцы обычно никаких подробностей на этот счет не сообщают, а уж о картах метро я вообще молчу. Запускаем NFC TagInfo и подносим смартфон к тегу. Далее тапаем по пункту Tag Information и смотрим (скриншот «Читаем NFC-тег»), что мы имеем:
- UID — уникальный идентификатор тега;
- RF Technology — стандарт, поддерживаемый тегом. В данном случае это ISO/IEC 14443 Type A, то есть обычный RFID-тег c поддержкой первой версии протокола обмена данными (Type A);
- Tag Type — тип (или, лучше сказать, «модель») тега. В данном случае NTAG203 — это Mifare Ultralight C, самый дешевый на данный момент тег. Буква C означает поддержку криптозащиты данных. Еще бывает Topaz 512, который вмещает 450 байт информации, и Mifare Classic 1K (716 байт), используемый в тегах TecTile и нередко в картах метро;
- Manufacturer — производитель тега. NXP Semiconductors — 90% всех NFC-тегов делают они (семейство Mifare).

Nfc, iso14443 и mifare
Стандартов ближней радиосвязи и беспроводных меток в частности, существует великое множество. Чаще всего используются частоты 125 кГц (LF-диапазон, см. первую часть, самые частые представители — EM-Marin, HID Proximity), 13,56 МГц (HF-диапазон, представители — семейство Mifare, семейство HID iClass) и 860-960 МГц (UHF-диапазон).
Вообще в пределах каждого диапазона существует такая легкая мешанина из стандартов ISO, расширений стандартов ISO другими, но совместимыми, коммерческих названий семейств и продуктов, частично или полностью реализующих один из стандартов. Это может добавить сложностей и неожиданных проблем, когда вы ожидаете, что ваша метка будет открывать вот эту дверь, а стандарт на самом деле не совсем тот — и ничего не работает.
Давайте кратко пробежимся по основным стандартам:
ISO 14443 — один из базовых стандартов для карт беспроводного доступа, определяет рабочую частоту (13,56 МГц), предельное расстояние (10 см), прочие физические параметры интерфейса, скорости (до 106 кбодс в изначальном стандарте) и протоколы передачи данных между считывателем и картой, определение коллизий, если в поле считывателя более одной карты и т.д. Стандарт не оговаривает применяемого шифрования, а также точного формата данных на карте.
ISO 15693 — менее распространенный стандарт, несовместимый с предыдущим. Предполагает ту же рабочую частоту, но меньшую скорость обмена данных (до 26 кбодс) в обмен на большую дальность считывания.
NFC — Near Field Communication — довольно большой набор стандартов, частично совместимый с ISO 14443, описывающий как физический уровень интерфейса (в целом основанный на ISO 14443), так и многое другое, формат хранения данных NDEF (стандартизирующий способы кодирования URL, контактных данных и т.д.), режим совместимости с ISO 14443.
Благодаря последнему, каждое NFC-устройство (и радиометка, и смартфон) может как минимум вернуть свой идентификационный номер в понятном считывателю, рассчитанному на более старые карты, формате. Ну и обычно NFC-считыватель способен читать и другие RFID-карты, не являющиеся NFC, но тоже основанные на ISO 14443.
MIFARE — большое семейство стандартов, также основанное на ISO 14443, отличающееся объемом памяти (от сотен байт до десятков килобайт), шифрованием (от отсутствия или проприетарного алгоритма до AESDES), часто используемое в качества карт доступа, платежных карт.
Безопасность и уязвимость карт с бесконтактной (nfc) оплатой.
В последнее время на форуме nfcphones.ru регулярно появляются темы и отдельные сообщения о якобы случаях (возможного) воровства с банковских карт бесконтактным способом, обычно в связи с анонсом о выпуске очередным банком приложения-терминала для смартфонов.
Каждый раз я пытался на форуме объяснить все моменты связанные с возможной уязвимостью бесконтактных карт, а также просил привести хотя бы единичные известные случаи о воровстве – но безрезультатно. Долгое время я собирался написать статью, описав возможные теоретические уязвимости бесконтактных карт и доказав их практическую неосуществимость, со ссылками на реальные документы описывающие технологии NFC-платежей, однако, как говорится – «все руки не доходили»…
Написать наконец такую статью меня сподвигла одна из последних новостей на портале nfcphones.ru:
https://www.nfcphones.ru/news/lenta/?id=10926835
“Эксперт раскрыл способы мошенников по взлому бесконтактных платежей в России“
Источник: https://1prime.ru/banks/20200612/831615716.html
В целом эксперт совершенно прав, однако интересно было бы разобрать оба варианта немного поподробнее.
Первый — это кража средств через мошеннический мобильный POS-терминал или специальное устройство, которое создаст фейковую покупку и «заставит» карту жертвы ее оплатить», — рассказал эксперт.
Однако этот способ имеет большие ограничения: злоумышленнику нужно иметь счет в банке, оформленный на юрлицо, и платежный терминал, зарегистрированный в налоговой инспекции. При этом из-за жалоб клиентов счет, скорее всего, заблокируют, и злоумышленники не успеют вывести с него деньги, пояснил эксперт.
Это типичный ожидаемый многими случай – когда «человек ходит в транспорте, прислоняет к сумкам/карманам мобильный терминал и списывает деньги». В одной теме приводили даже фото человека в метро с якобы таким терминалом в процессе «охоты», правда потом выяснилось что это обычный торчавший из кармана ТСД-терминал которым пользуются кладовщики. Почему в транспорте – очевидно, это идеальное место для того чтобы в толпе незаметно прислонить терминал к сумке/кошельку/карману где у жертвы может находиться банковская карта с бесконтактной оплатой.
У этого варианта есть несколько серьезных недостатков:
[*] сумма не более 1000р, хотя VISA и разрешила покупку без подтверждения до 3000 (а МС совсем недавно до 5000, правда на усмотрение банка эмитента) вор заранее не знает какая карта ему попадется, а при превышении лимита будет запрошен пин и терминал временно выпадет из процесса
[*] после каждой удачной «операции» на терминале придется вводить новую сумму – вор должен покинуть транспорт (автобус, вагон метро) и найти укромное место чтобы не привлечь к себе внимание
[*] POS-терминал сразу после оплаты печатает чек, а также выдает звуковой сигнал, но этот функционал при определенной сноровке можно отключить, или пользоваться терминалом на смартфоне
[*] в зависимости от «глубины укрытия» кошелька/карты в сумочке или кармане жертвы вору может потребоваться некоторое время держать неподвижно терминал в непосредственной близости, что далеко не всегда допустимо. Просто пронести устройство рядом и совершить операцию «на лету» практически невозможно, что было проверено опытным путем (об этом ниже)
[*] наверное, наиболее серьезный момент – у многих владельцев карт подключены push/sms-уведомления, представьте каково будет удивление жертвы, когда ей придет сообщение о только что совершенной покупке когда он(а) едет в транспорте – куда деваться вору который только что стоял рядом? Вероятность (даже небольшая) поимки на месте преступления с орудиями совершения кражи, что практически не оставляет шансов избежать реального срока, делает весьма рискованным такой способ.
[*] и финальный момент – как совершенно верно заметил эксперт – на сегодня совершенно не реально успеть вывести украденные таким способом деньги не оставив при этом следов. При совершении покупки через POS-терминал деньги аккумулируются на счету банка предоставившего эквайринг (услугу по приему оплаты картой) и лишь через 1-3 дня переводятся на счет владельца. Подключить услугу эквайринга может юрлицо или ИП предоставив целый набор необходимых документов. Можно конечно купить «готовую фирму» однако лично у меня есть большие сомнения что в таком случае получится быстро подключить эту услугу. Кроме того, украденные средства необходимо вывести со счета владельца, однако очевидно, что уже на 2-3й день в банки-эмитенты начнут поступать заявления от клиентов о покупках которые они не совершали, сразу виден будет один для всех продавец – клиент определенного банка, а мы хорошо знаем как лихо наши банки блокируют счета по 115-ФЗ лишь при подозрении на отмывание, в данном же случае не составит труда заблокировать всю цепочку счетов (какой длины бы она не была) поскольку инициатива будет исходить от банка предоставившего эквайринг вору, а не от клиента у которого со счета якобы похитили средства мошенники.. И абсолютно не подлежит сомнению что всем участникам цепочки будут предъявлены обвинения по целому ряду статей – уж сами для себя банки не поленятся собрать неопровержимые доказательства.
В заключение хочу отметить – что лично я до сих пор не слышал о выявлении подобной схемы воровства. Что не удивительно, мошенники тоже умеют думать и анализировать – и наверное не очень хотят влезать в такие авантюрные для себя эксперименты.
Предупреждая вопрос о том, почему я всерьез рассматриваю POS-терминалы наравне со смартфонами, которые также можно использовать в качестве терминала, установив соответствующее приложение. Во-первых, не каждый банк предлагает такую возможность в рамках своей услуги эквайринга, и можно предположить что при ее наличии контроль будет значительно жестче. Во-вторых, цель данной статьи не только рассказать о текущих уязвимостях бесконтактной оплаты, но и дать понять что даже 1-2-3 года назад вероятность их реального применения была практически нулевой.
Рассмотрим второй вариант.
«Второй способ — считывание данных карты, ее номера и срока действия специальным NFC-скиммером (устройство для считывания данных с бесконтактных карт) для дальнейшей попытки мошенничества с операциями без присутствия карты (card not present transaction, CNP), например для оплаты в онлайн-магазинах», — рассказал Бабин.
Для начала надо отметить, что чип карты представляет собой по сути микрокомпьютер, со своим процессором, памятью и операционной системой. Поэтому, метод применявшийся ранее для копирования карт с магнитной полосой – здесь совершенно невозможен.
Напомню, устройство называемое «скиммер» прикрепляли на щель для карт на банкомате, затем при вставлении карты оно считывало проходящую сквозь него магнитную полосу и сохраняло в своей памяти, а злоумышленник впоследствии мог эти данные записать на любую карту с чистой магнитной полосой (т.н. белый пластик) и использовать для покупок в магазинах, или же, если смог выяснить и пин-код для этой карты – также снимать с нее деньги в банкомате. Теперь, с карты невозможно просто «прочитать чип», можно лишь осуществить с ним некоторый обмен командами и данными, подробно описанный в спецификации EMV. Тем не менее, протокол обмена данными с картой по NFC-технологии открыт и возможно прочитать целый набор различной информации при помощи специального устройства, или даже смартфона с приложением-считывателем. Подробно о структуре данных хранящихся на карте написано в одной очень хорошей статье на Хабре: https://nfcphones.ru/ru/post/281438/
«Данные EMV-приложения размещаются в записях (рекордах или треках). Их список можно получить в ответ на команду «Get Processing Options». Конкретную запись можно прочитать с помощью команды «Read Record». Внутри могут находиться: сертификаты ключей, номер карты (PAN – Primary Account Number), списки методов проверки карты (CVM list– Card Verification Methods list) и множество другой информации. Чтение этих записей очень похоже на чтение треков с магнитной полосы. Данные технических настроек карты, счетчики и лимиты можно получить командой «Get Data», указав требуемый тип.
Интересно, что практически все данные о счете держателя карты и настройках приложения можно вычитать из карты без каких-либо трудностей. Единственное до чего не добраться – это ключи приложения и значение пин-кода.«
Получить любые данные из чипа карты не составляет труда, например, точно также в транспорте приложив считыватель (смартфон) к некоторым сумочкам/карманам и проанализировав результат на выходе. Хотя, как выяснилось опытным путем, такая операция может потребовать держать считывающее устройство некоторое время неподвижно в непосредственной близости от карты (кошелька, сумочки) жертвы. Однако, что можно сделать с полученными данными в дальнейшем?
Во-первых, как отметил эксперт – попробовать использовать их для покупок в интернете. Пока еще остаются продавцы, как правило иностранные, которые позволяют совершать на своих сайтах покупки без использования функции 3d-secure (подтверждение онлайн-операции путем введения кода высылаемого в смс на телефон клиента) однако при этом продавец должен еще и не требовать код cvc/cvv который прочитать с чипа карты не представляется возможным. Тем не менее, даже при совершении такой покупки, реальный владелец карты может написать в своем банке заявление об ее оспаривании – при этом средства будут ему возвращены в срок до нескольких недель, а карта естественно заблокирована и перевыпущена, т.к. согласно правилам МПС все риски по таким операциям несет банк предоставивший эквайринг (который в свою очередь спишет эту сумму с продавца – своего клиента, да еще и оштрафует его) На данный момент, таким способом, в основном, можно оплатить контекстную рекламу или пополнить игровые аккаунты
«Использовать клонированную бесконтактную карту для выполнения CNP-транзакции возможно только в интернет-магазинах, где значения CVC2/CVV2 не запрашиваются при выполнении транзакции. Таких онлайновых магазинов в России осталось совсем немного. Поэтому совершить операцию в онлайновом магазине на основе данных, украденных в результате перехвата диалога бесконтактной карты и терминала, по меньшей мере сложно. А вероятность угадывания значения CVV2/CVC2 равна «всего-навсего» 1/1000. Не говоря уже о том, что в магазинах, поддерживающих протокол 3D Secure, шансы на клонирование карты, зарегистрированной в этой программе эмитентом, для совершения CNP-транзакций совсем призрачны (разумеется, при правильном внедрении и использовании этого протокола на стороне эмитента карты).«
https://plusworld.ru/journal/section_1168/section_162589/art162560/
Во-вторых, одно время считалось что на основе полученных данных можно создать карту-клон без чипа, но с магнитной полосой – на которую эти данные и записать, после чего ее можно якобы использовать для оплаты или в банкомате. Однако, никакой информации о практической реализации такой возможности мне лично найти не удалось.
«Очевидно, клонировать карту по чипу невозможно, поскольку для этого необходимо знать ключи карты, которые атакующим неизвестны. Клонировать карту по магнитной полосе также получится с очень невысокой вероятностью, поскольку мошенникам из перехваченных данных известны только номер карты и срок ее действия. Значения CVC/CVV через бесконтактный интерфейс не передаются, да и они по правилам МПС больше не совпадают с данными CVV/CVC на магнитной полосе. Поэтому эти значения атакующим неизвестны, а вероятность их угадывания невелика (равна 1/1000). Напомним читателю, что по правилам платежных систем все операции по магнитной полосе микропроцессорной карты должны быть обработаны в режиме онлайновой авторизации, так что без знания значений CVC/CVV для магнитной полосы мошенникам не обойтись!«
https://plusworld.ru/journal/section_1168/section_162589/art162560/
Можно ли скопировать данные EMV-приложения на магнитную полосу?
Из данных EMV-приложения можно составить треки для карты с магнитной полосой, за исключением одного небольшого параметра – кода обслуживания (Service Code). В качестве данных для EMV-приложения, код обслуживания указывает терминалу, что транзакция должна быть проведена с использованием приложения карты. Если взять этот код «как есть» и скопировать на магнитную дорожку – терминал будет пытаться выполнить транзакцию с помощью приложения. Казалось бы, можно отредактировать код обслуживания, но целостность данных защищена кодом CVV/CVC кодом. Он является ближайшим аналогом цифровой подписи.
Создается ощущение, что EMV-карта защищена от копирования со всех сторон. Хотя все-таки известна одна тривиальная возможность. Для режима совместимости производители выпускают EMV-карты комбинированного типа – то есть с микропроцессором и магнитной полосой. Существует возможность скопировать данные магнитной полосы на другую комбинированную карту с нерабочим чипом (чистым или сожженным) и попытаться провести так называемый fallback (при невозможности считать чип, терминал проводит операцию по магнитной полосе). В данный момент такие операции не приветствуется платежными системами, а риск по этим операциям ложится на эквайра или эмитента.
https://nfcphones.ru/ru/post/281438/
Единственное неудобство для клиентов может представлять тот факт, что с карты можно прочитать информацию о последних проведенных по ней операциях (обычно до 10) и хотя практической сиюминутной выгоды эти данные не принесут, их можно использовать в дальнейшем для выяснения подробной информации о жертве, если ведется ее целенаправленная обработка, или собирается целый массив информации в каких либо других целях. С другой стороны, регулярный утечки баз данных из банков и прочих финансовых структур представляют гораздо большую опасность.
«Среди других личных данных клиента, которые могут храниться на карте, некоторый интерес для мошенников может представлять лог-файл последних транзакций, выполненных по карте. И хотя среди данных транзакции в лог-файле присутствуют только сумма, валюта и дата транзакции (нет типа покупки и названия магазина, правда, название магазина и его местоположение встречается в логе транзакции в последних версиях платежных приложений, например, в M/Chip Advance), а записи лог-файла перезаписываются после накопления в нем некоторого количества (обычно 10) записей, третья сторона может выяснить и каким-то образом использовать, например, те же данные по объему совершенных по карте операций.«
https://plusworld.ru/journal/section_1168/section_162589/art162560/
Получить наглядное представление о том, что можно, а что нельзя прочитать с ваших карт, и каким образом это происходит – позволит например вот это бесплатное приложение:
https://play.google.com/store/apps/details?id=com.github.devnied.emvnfccard
Сразу замечу, что для чтения каждой карты мне требуется несколько секунд держать ее неподвижно прислонив к смартфону (Sony Xperia) таким образом возможность прочитать данные с карты «одним касанием» в транспорте уже представляется весьма маловероятной. Лог-транзакций мне удалось прочитать только с одной своей карты – старой кредитки БИН-банка, в новых картах (МКБ, Тинькоф, Открытие) эта информация закрыта.
Третий вариант воровства.
Для полноты картины следует отметить, что эксперт не упомянул про третий, самый технологичный и соответственно сложно-реализуемый, но тем не менее вполне реальный способ воровства с бесконтактных карт. Речь о так называемой «Relay-атаке» которая внешне похожа на первый способ – воровство через терминал, но на самом деле, при использовании поддельной карты и специального устройства-шлюза позволяет совершать реальные покупки с чужой карты.
«В общем случае в реализации relay-атаки участвуют два мошенника. Один находится рядом с жертвой, хранящей в своем портмоне бесконтактную карту (Person 1), а другой – рядом с кассой магазина, в котором совершается покупка (Person 2).
У мошенника Person 2 имеется специальная микропроцессорная карта, поддерживающая, с одной стороны, стандартный интерфейс (контактный или бесконтактный) для работы с реальным терминалом в магазине, а с другой – радиоинтерфейс, функционирующий в соответствии с одним из коммуникационных протоколов, обеспечивающих связь на расстоянии от нескольких десятков сантиметров до нескольких метров (например, ISO 15693, ISO 18000). С помощью такого радиоинтерфейса карта может обмениваться данными со специальным оборудованием мошенника Person 2, которое, помимо поддержки связи с картой, обеспечивает организацию удаленного радиоканала (например, в соответствии с протоколом Wi-Max (IEEE 802.16) с контролируемым мошенником Person 1 бесконтактным терминалом.
Дальше мошенники действуют следующим образом. Мошенник Person 2 передает кассиру для оплаты свою поддельную карту (возможно, самостоятельно касается ридера бесконтактной картой). Далее все команды терминала, установленного в реальном магазине, через карту мошенника Person 2, его специальное оборудование и мошеннический терминал Person 1 транслируются реальной бесконтактной карте ничего не подозревающей жертвы. При этом ответы карты жертвы на команды реального терминала по тому же маршруту, но в обратном направлении возвращаются реальному терминалу.«
https://plusworld.ru/journal/section_1168/section_162589/art162560/
Очевидно, что при осуществлении такой атаки действует такое-же ограничение на сумму покупки в 1000 р, однако она лишена всех остальных недостатков и самое главное, реальных мошенников практически невозможно определить. Вместе с тем, необходимость наличия достаточно сложного и дорого оборудования, возможность ошибок из-за рассогласования связи, и относительно небольшая сумма наживы делают ее очень мало привлекательной для реального применения. Конечно, сегодня в качестве обоих устройств (карты и трансивера) могут выступать два смартфона, однако трудоемкость написания соответствующих приложений, а также необходимость их тестирования на реальном торговом оборудовании нисколько не повышает возможность практической реализации данного метода.
В заключении можно сделать вывод, что хотя бесконтактные карты и обладают некоторыми уязвимостями, применение их на практике либо несоизмеримо с возможно получаемой прибылью относительно затрат на оборудование (relay-атака) либо очень рискованно в связи с невозможностью получения добычи и неизбежностью разоблачения. Кроме того, возможность любого из этих способов мошенничества пресекается в корне, если в кошельке (сумочке, кармане) жертвы хранится рядом более одной бесконтактной карты. Собственно, это и подтверждает тот факт, что все последние новости о хищениях с карт связаны в основном только с методами «социальной инженерии» и суммы ущерба измеряются десятками (иногда сотнями) тысяч рублей за один раз.
Также хочу повторить, на данный момент лично мне неизвестны достоверные случаи осуществления какого-либо из вариантов воровства с бесконтактных, перечисленные в статье. Кроме того, не вызывает сомнений тот факт, что ведущие МПС вряд ли стали бы внедрять технологию бесконтактной оплаты, не проведя всестороннего обследования и убедившись в полной практической безопасности.
И напоследок можно отметить, что все перечисленные методы в принципе не применимы если потенциальная жертва использует для оплаты не карту, а смартфон (карту конечно не носит с собой) по одной простой причине – приложение оплаты (ApplePay, GooglePay, SamsungPay и т.д.) включает прием по NFC только после активации устройства. Это значит, что в спящем режиме смартфон просто не отзовется на сигнал NFC-ридера или терминала оплаты.
Использованы материалы из статей: https://plusworld.ru/journal/section_1168/section_162589/art162560/
«Бесконтактные карты: мнимая уязвимость»
Игорь Голдовский, генеральный директор компании «Платежные Технологии», член Платежного комитета MasterCard Europe (Еuroреаn Payments Advisory Committee) от России
https://nfcphones.ru/ru/post/281438/
«Платежная EMV-карта. Механизмы обеспечения безопасности платежа»
Вместо введения
NFC расшифровывается как Near Field Communication или «ближняя бесконтактная связь», если по-русски. По своей сути это небольшой чип, который может быть встроен в смартфон с целью передачи данных на очень короткие расстояния с весьма мизерной скоростью.
NFC очень близка к технологии RFID, которая уже давным-давно используется для пометки продуктов в супермаркетах, но базируется на ее более позднем стандарте ISO/IEC 14443 (смарт-карты) и спроектирована для использования в переносной электронике (читай: смартфонах) и выполнения безопасных транзакций (читай: оплаты покупок).
Как и в случае со стандартом ISO/IEC 14443, дальность действия NFC всего 5–10 см, но разница в том, что чип NFC способен выполнять функцию тега и считывателя одновременно. Другими словами, оснащенный NFC смартфон может быть как смарт-картой (картой метро, например), которую достаточно поднести к считывателю, чтобы расплатиться, так и самим считывателем, что можно использовать, например, для перевода средств между картами-смартфонами и превращения реальных карт с поддержкой стандарта ISO/IEC 14443 в виртуальные.
Но это только «одно из» и наиболее очевидное применение NFC. Благодаря тому, что чип NFC способен передавать данные в обе стороны и не требует аутентификации устройств, его можно использовать как простую и более удобную замену Bluetooth. С помощью NFC, например, можно делиться ссылками, паролями, контактными и другими данными между смартфонами, просто поднеся их друг к другу.
Появившаяся в Android 4.0 технология Beam еще больше расширяет границы применения NFC, позволяя быстро переносить между устройствами целые файлы и папки, что достигается с помощью предварительной аутентификации Bluetooth-устройств по NFC и последующей установки Bluetooth-соединения и отправки файлов.
Как и в предыдущем случае, все, что требуется для передачи, — просто поднести телефоны друг к другу. В прошивках Samsung эта функция носит имя S-Beam и позволяет использовать в качестве «транспортного канала» не только синезуб, но и Wi-Fi (один из смартфонов превращается в точку доступа).
Еще одна возможность — использование пассивных NFC-тегов. Такие теги в виде небольших наклеек можно приобрести за полдоллара за штуку и перепрограммировать с помощью смартфона. Каждый из них может вмещать в себя 137 байт информации (в случае самого распространенного и дешевого тега Mifire Ultralight C), для считывания которой опять же достаточно просто поднести смартфон.
В тег можно записать пароль от домашнего Wi-Fi и приклеить на роутер. Или кодовое слово, на которое будет реагировать смартфон. Можно организовать автоматический запуск навигатора при установке смартфона в держатель в автомобиле или включение бесшумного и энергосберегающего режимов, когда телефон находится на прикроватной тумбочке. Небольшой список покупок в 137 байт тоже вполне вместится.
В этой статье мы поговорим обо всех возможных применениях NFC на практике, но так как в нашей стране оплата покупок с его помощью внедрена примерно нигде, то речь пойдет преимущественно об автоматизации на основе меток.
Поддержка в смартфонах
Первым телефоном с интегрированной поддержкой NFC был Nokia 6131, выпущенный еще в 2006 году. Тогда встроенный NFC-чип был всего лишь игрушкой для демонстрации возможностей созданной два года назад технологии. Смартфон был оснащен софтом для считывания NFC-меток, но ввиду их тогдашней дороговизны и почти нулевой популярности технологии ни на какое серьезное применение данная особенность смартфона не претендовала.
После некоторого затишья популяризацией NFC занялась компания Google, выпустившая в 2021 году смартфон Samsung Nexus S и приложение Google Wallet, которое позволяло расплачиваться виртуальными кредитками, используя NFC. На следующий год Google стала ведущим участником NFC Forum и представила Android 4.0 и основанный на нем смартфон Samsung Galaxy Nexus, который теперь мог похвастаться наличием той самой функции Beam. Позже появился Nexus 4, и наконец начали подтягиваться другие производители.
Сегодня NFC оснащаются почти все выпускаемые смартфоны. Соответствующий модуль есть даже в сверхбюджетных чипах Mediatek, так что большая часть новых китайских смартфонов стоимостью 5000 рублей тоже им оснащены. В любом случае присутствие чипа NFC легко проверить по наличию пункта «Беспроводные сети -> NFC» в настройках.
Запрос доступных приложений — select ppse
Официальное описание: EMV Contactless Specifications — PPSE and Application Management for Secure Element
Начало общения с EMV-картой всегда происходит с чтения PPSE (Payment System Environment). Терминал спрашивает у карты, какие платежные приложения на ней есть.
Чаще всего это одно приложение, как в нашем примере — VISA. Однако бывают карты с несколькими платежными приложениями, например, есть специальные отечественные карты МИР с двумя платежными приложениями внутри. Так как платежная система МИР не работает заграницей, в карту интегрируется второе платежное приложение, по сути вторая карта. Это может быть приложение платежной системы JCB или UnionPay. Такие карты называются кобейджинговыми.
APDU-команда SELECT PPSE
'00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00' 00 A4 04 00 // команда select 0E // длина command data (14 байт) 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 // command data 2PAY.SYS.DDF01 00 // завершающий маркер
Ответ на SELECT PPSE
'6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00'
Для удобства проанализируем ответ с помощью онлайн-парсера формата TVL iso8583.info/lib/EMV/TLVs. Тот же ответ, обработанный парсером:
Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.
AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам.
Большой список AID: eftlab.co.uk/knowledge-base/211-emv-aid-rid-pix
Некоторые популярные AID
A0000000031010 Visa International A0000000032020 Visa International A0000000041010 Mastercard International A0000000043060 Mastercard International United States Maestro (Debit)
Application Priority Indicator — указывает приоритет платежных приложений. Например, в кобейджинговых картах МИР, имеющих внутри несколько платежных приложений, это поле указывает, какое из двух приложений приоритетнее. Так как у нас только одно приложение Visa International, оно указывает на него, и приоритет отсутствует.
Запуск платежного приложения — SELECT AID
'00 A4 04 00 07 A0 00 00 00 03 10 10' 00 A4 04 00 // команда select 07 // длина command data (7 байт) A0 00 00 00 03 10 10 // AID Visa International
Выбрав нужное платежное приложение, терминал запускает его.
Обязательное наличие операционной системы
В 2021 году были презентованы два браслета с NFC чипом: Mi Band 3 и Honor Band 4. В них производители добавили долгожданную бесконтактную оплату. Разочарованию покупателей не было предела: функция оказалась рабочей только в Китае.
В остальных странах мира использовать чип можно только для связи со смартфоном и быстрой синхронизации. Бренды не дают обещания выпустить прошивку, которая решила бы проблему: они не смогли бы сделать это, даже при большом желании. Пользователям остается ждать новых браслетов, которые будут отвечать требованиям безопасности для бесконтактной оплаты.
Для бесконтактной оплаты устройства используют системы Apple, Samsung и Google Pay. Чтобы она работала, гаджет должен отвечать определенным условиям. Кроме наличия NFC модуля, браслетам нужны операционные системы Android или IOS.
Из-за этого браслеты могут выполнить только роль посредника, что влияет на безопасность данных. Такие характеристики не отвечают требованиям международных платежных систем, поэтому браслеты без операционных систем Android или IOS не могут использоваться для оплаты.
Ответ карты на get processing options
'7762820200409404180101009F360202069F2608D6F56B8ABED78F239F10201F4AFF32A00000000010030273000000004000000000000000000000000000009F6C02008057134800997250511756D23122021000052099995F9F6E04238800009F2701809000'
В данном ответе содержатся специфичные для VISA поля данных, поэтому я использовал парсер c поддержкой VISA Contactless Payment Specification (VCSP).
Application Interchange Profile (AIP) — содержит информацию о параметрах платежного приложения. В нашем случае AIP равен 00 40. Рассмотрим значения данного параметра из EMV 4.3 Book 3.
В нашем случае установлен один бит во втором байте, который, если верить этой таблице, Reserved For Future Use (RFU). Что это значит, и какой смысл в это вкладывает Apple Pay, я не знаю.
В AIP содержится важная информация о поддерживаемых методах аутентификации (SDA,CDA,DDA) платежа. Почему в моем случае все эти флаги равны нулю — я не понимаю.
Application File Locator (AFL) — Содержит информацию о расположении записей (SFI range of records) в конкретном AID. На основании этого ответа терминал сформирует запрос READ RECORD.
Разберем ответ AFL подробнее:
Short File Identifier (SFI) равно 0x18. Этот параметр кодируется пятью битами вместо восьми. Соответственно значение 0x18 (b00011000) преобразовываем в b00000011, и получаем 0x3.
First record = 1
Last record = 1
Т.е. в «папке» №3 есть записи с 1 по 1, то есть одна запись.
Application Transaction Counter (ATC) — инкрементный счетчик транзакций, который увеличивается каждый раз на единицу при запросе GET PROCESSING OPTIONS. Под достижению значения 0xFFFF или 0x7FFF, платежное приложение безвозвратно заблокируется. Полагаю, что это сделано для защиты от брутфорса приватного ключа карты. В нашем случае видно, что данный айфон с Apple Pay использовался для оплаты уже 518 (0x206) раз.
Application Cryptogram (AC) — криптографическая подпись, которая вычисляется картой с использованием ее приватного ключа. Данная подпись передается вместе с остальными данными банку-эмитенту, и на ее основании проверяется подлинность транзакции. Так как приватный ключ карты невозможно (доступными средствами) извлечь из карты, это позволяет исключить возможность копирования карты.
Issuer Application Data (IAD) — Содержит проприетарные данные, специфичные для VISA. Я не осилил разбор этой структуры, помогите.
Card Transaction Qualifiers (CTQ) — специфичный для VISA cписок поддерживаемых картой спецификаций. Например, можно ли использовать эту бесконтактную карту для операций в банкомате или нет, и какие подтверждения при этом потребуются.
Track 2 Equivalent Data — Оппа! В этом поле содержится номер карты и expiration date, подробнее эта информация будет разобрана далее.
Form Facto Indicator (FFI) — специфичное для VISA поле. Описывает форм-фактор и характеристики платежного устройства. В нашем случае видно, что это мобильный телефон.
Cryptogram Information Data (CID) — Я не осилил разбор этой структуры, помогите.
Пишем данные
Для записи данных будем использовать NFC TagWriter. Пользоваться приложением довольно просто. Запускаем, тапаем по пункту Create, write and store, выбираем New, далее выбираем тип записываемых данных. Наиболее полезные типы: контакт, простой текст, телефонный номер, данные для Bluetooth-соединения, URI и приложение. В списке есть даже закладка веб-браузера и email-сообщение, но для чего они нужны, не совсем понятно.

Далее заполняем необходимые поля (например, адрес веб-сайта в случае с URI), нажимаем Next и попадаем на экран опций (скриншот «NFC TagWriter: опции сообщения»). Здесь можно указать приложение, которое будет запущено после прочтения метки (Add launch application) и установить защиту на перезапись сторонним устройством (Apply Soft Protection).

Вновь нажимаем Next и подносим смартфон к тегу. Вуаля, наши данные в нем. Теперь их можно прочитать любым смартфоном с поддержкой NFC. Но что это в конечном итоге дает?
Процесс имплантации
А вот и нет — на самом деле, ничего этого не понадобится! Это фотография инструментов из первой части статьи.
Так как метка приходит уже стерилизованной и в шприце, ее имплантация существенно более проста, без проблем выполняется самостоятельно без чьей-либо помощи. В общих чертах, процесс выглядит примерно так:
- Выбор места размещения метки. Как уже было сказано в первой части, чаще всего выбирают пространство между большим и указательным пальцами руки, так как это место обычно не испытывает давления при повседневной жизни. Если меток больше одной, как у меня, нежелательно располагать их совсем близко, лучше отступить 1-2 см друг от друга.
- Анестезия новокаином — вводим раствор новокаина 20 мг/мл подкожно в предполагаемое место разреза, попутно раздвигая ткани и упрощая дальнейшее размещение метки, ждем в течение 5-10 минут для проникновения в окружающие ткани. Осторожнее с новокаином — при наличии у вас аллергии иили кривых рук может вызвать множество самых неприятных последствий, вплоть до смертельного исхода! Не делайте этого самостоятельно, если вы не врач. Также не делайте этого в одиночестве и будьте готовы звонить в «скорую», если что.
В принципе, обезболивание можно пропустить, пережить укол толстой иглы в руку не так уж сложно. В таком случае желательно, чтобы введение метки все же выполняли не вы сами, а другой человек — чтобы другой рукой сделать кожную складку.
- Имплантация — дважды протираем кожу спиртом, прокалываем кожную складку или «пузырь» с новокаином, держа иглу почти горизонтально к коже, вводим иглу на 15-20 мм, затем, нажимая на поршень шприца, выдавливаем метку через иглу под кожу. Аккуратно извлекаем иглу.
Вот видео (не мое) о том, как это выглядит:
- Завершение — разрез в данном случае еще меньше, чем был в первый раз, поэтому достаточно просто заклеить его лейкопластырем. Если все было сделано правильно, через 3-5 дней пластырь можно будет снять, а на коже останется лишь небольшой шрам, который через несколько месяцев исчезнет совсем. Если в течение этих дней поднимется температура — опять же, идем к врачу, не откладывая.
Разблокировка смартфона
У Motorola есть довольно интересный аксессуар для смартфонов под названием Motorola Skip. Это клипса на одежду для быстрой разблокировки смартфона без необходимости введения PIN-кода или графического ключа. Аксессуар в некоторых случаях довольно полезный, но работает он только со смартфонами той же компании. К счастью, аналогичную штуковину можно собрать на коленке.
Не буду рассказывать, как сделать саму клипсу, — тут каждый волен проявить свою фантазию, NFC-тег можно и на руку наклеить, — а вместо этого скажу, как настроить разблокировку смартфона при ее касании. Есть несколько способов, но самый простой и эффективный — это Xposed-модуль NFC LockScreenOff Enabler.
Дело в том, что в целях безопасности Android запрещает использовать NFC до тех пор, пока экран не будет разблокирован (не просто включен, а именно разблокирован), что сводит на нет многие эффективные приемы его использования. NFC LockScreenOff Enabler решает эту проблему.
