Я прикладываю телефон к терминалу, проходит секунда, касса пищит, банк присылает уведомление. Кажется, что смартфон просто передал магазину номер моей банковской карты по короткому радиоканалу. Но при нормальной токенизированной мобильной оплате всё устроено иначе. Терминал получает специальный платёжный идентификатор вместо номера, напечатанного на пластике, а вместе с ним динамические криптографические данные конкретной операции.
Тут сразу нужна оговорка. NFC сам по себе не прячет номер карты и вообще не является платёжной системой. NFC всего лишь переносит данные на очень небольшое расстояние. За токены, проверку подлинности, криптограммы и разрешение операции отвечает платёжная инфраструктура поверх NFC. Более того, обычная бесконтактная пластиковая карта и смартфон могут раскрывать терминалу разные данные, поэтому выражение «NFC не передаёт номер карты» технически неверно.
Почему NFC работает на сантиметрах, а карта живёт без батарейки
NFC расшифровывается как Near Field Communication, по-русски обычно говорят «связь ближнего поля». Технология работает в диапазоне 13,56 МГц. В обычных смартфонах практическая дистанция измеряется сантиметрами. NFC Forum сейчас называет оптимальной работу на сверхкоротком расстоянии, обычно меньше двух сантиметров, хотя конкретная дальность зависит от антенн, мощности, стандарта карты и положения устройств.
С Bluetooth разница принципиальная. Bluetooth создавали для связи активных устройств на расстояниях в метры и десятки метров. NFC использует ближнее магнитное поле и индуктивную связь между катушками. Короткая дистанция здесь не досадное ограничение, а часть идеи. Когда я подношу телефон к замку, терминалу или метке, физический жест сам показывает, с каким объектом я хочу взаимодействовать.
Особенно интересно устроена пластиковая банковская карта. В ней нет аккумулятора. Внутри проходит тонкая антенна, соединённая с микросхемой. Считыватель создаёт переменное магнитное поле, в антенне карты возникает электрический ток, чип получает питание и начинает отвечать. По физике связка напоминает трансформатор с очень большим воздушным зазором.
Поэтому пассивная NFC-метка или бесконтактная карта способна работать годами без батарейки. Считыватель одновременно обеспечивает энергию и связь. Смартфон уже имеет собственное питание и может играть несколько ролей, читать метку, выступать в роли цифровой карты или взаимодействовать с другим устройством.
Сам NFC при этом не означает «зашифровано». На уровне NFC существуют механизмы защищённого обмена, но конкретное приложение само определяет, какая криптография и аутентификация нужны. Банковская оплата безопасна не благодаря одному радиоканалу, а благодаря EMV, ключам, токенизации, проверкам банка и механизмам самого телефона.
Что происходит после прикладывания телефона к терминалу
Платёж выглядит мгновенным, хотя за короткое время успевает пройти несколько этапов. Сильно упрощённая схема выглядит так.
- Терминал обнаруживает платёжное устройство. Между терминалом и смартфоном начинается бесконтактный обмен.
- Терминал выбирает платёжное приложение. Для такого выбора используются идентификаторы приложений и команды APDU, знакомые инфраструктуре смарт-карт.
- Телефон передаёт платёжные реквизиты для конкретного кошелька. В токенизированной системе настоящий номер карты заменяет платёжный токен.
- Формируются динамические данные операции. EMV использует криптограмму, связанную с конкретной транзакцией.
- Терминал отправляет запрос дальше. Эквайер, платёжная система и банк-эмитент проверяют операцию, после чего касса получает разрешение или отказ.
Настоящий номер банковской карты называется PAN, Primary Account Number. Обычно речь идёт о номере, который пользователь видит на пластике или в банковском приложении. При мобильной оплате PAN можно заменить другим номероподобным значением, платёжным токеном. Современная спецификация платёжной токенизации позволяет ограничивать применение такого токена конкретным устройством, продавцом или типом платежей.
Токен не следует путать с одноразовым кодом. Один и тот же токен может использоваться много раз. Например, платёжный кошелёк способен получить отдельный виртуальный номер для конкретного телефона. У той же карты на другом устройстве может появиться другой токен.
Уникальность каждой покупки создаёт другой слой защиты. Чип карты или платёжное решение формирует криптограмму, которая зависит от данных конкретной транзакции и криптографических ключей. Старую криптограмму нельзя просто записать возле кассы, а потом воспроизвести как новую нормальную EMV-операцию. Именно поэтому фраза «телефон каждый раз передаёт новый номер карты» тоже вводит в заблуждение. Номер-токен способен оставаться прежним, а динамическая часть платежа меняется.
| Элемент | Что означает | Меняется при каждой покупке |
|---|---|---|
| PAN | Настоящий номер платёжной карты | Обычно нет |
| Платёжный токен | Заменитель PAN для определённого платёжного контекста | Не обязательно |
| Криптограмма | Динамические криптографические данные операции | Да |
В Mir Pay используется именно такая логика с виртуальным номером. Настоящие реквизиты карты «Мир» не хранятся в смартфоне в виде платёжного номера, доступного приложению. Сервис хранит токен и связанные с ним данные устройства. Для платежей без интернета Mir Pay заранее получает ограниченный запас платёжных ключей, поэтому несколько операций могут пройти офлайн, а после длительной работы без сети приложению потребуется подключение.
Заголовок про магазин тоже требует точности. При токенизированной мобильной оплате в платёжный тракт уходит токен вместо исходного PAN. Но токен не делает покупателя анонимным. Один и тот же токен может позволять торговой инфраструктуре узнавать повторные операции с данным платёжным средством, а платёжные системы используют дополнительные идентификаторы для связи токенов с исходным счётом. Магазин вдобавок может узнать покупателя по бонусной карте, аккаунту, номеру телефона или приложению. Токенизация защищает реквизиты карты, а не создаёт анонимную оплату.
С пластиковой бесконтактной картой ситуация отличается. Классическая EMV-карта может отдавать через бесконтактный интерфейс PAN, срок действия и некоторые другие открытые данные, набор зависит от карты и платёжной схемы. При этом CVC/CVV, напечатанный на обратной стороне пластика, не является частью обычного бесконтактного обмена, а провести новые полноценные EMV-платежи простым копированием считанной информации мешают динамические криптограммы.
Получается любопытный парадокс. Токенизированный смартфон способен лучше скрывать исходный PAN от платёжного терминала, чем сама физическая карта.
Где находятся «карта» и секретные ключи внутри телефона
Смартфону нужно каким-то образом притвориться смарт-картой перед обычным терминалом. Есть два основных архитектурных подхода.
Secure Element представляет собой изолированную защищённую среду, обычно отдельный аппаратный компонент. NFC-контроллер может направлять команды терминала непосредственно туда, минуя обычное приложение. Secure Element хранит чувствительные платёжные данные и выполняет криптографические операции в среде, которую гораздо сложнее атаковать обычному приложению смартфона.
Второй подход называется Host Card Emulation, или HCE. Android поддерживает HCE с версии 4.4. В таком режиме NFC-контроллер передаёт команды в операционную систему и далее платёжному приложению. Именно HCE позволила банкам и платёжным системам разворачивать собственные бесконтактные кошельки без обязательной привязки к отдельному защищённому чипу конкретного оператора или производителя.
Из HCE не следует, что секретный ключ лежит обычным файлом рядом с фотографиями. Реальные кошельки комбинируют аппаратную защиту смартфона, системное хранилище ключей, токенизацию, серверные проверки и ограниченные платёжные ключи. Конкретная архитектура зависит от сервиса.
Для российских пользователей HCE особенно заметна на Android. Mir Pay и собственные платёжные решения банков используют NFC для работы с привычными бесконтактными терминалами. У Mir Pay сейчас гарантированная поддержка начинается с Android 7 на совместимых устройствах, а сервис появился и на отдельных моделях часов Huawei. Конкретный список поддерживаемых устройств лучше проверять перед покупкой, потому что программные и аппаратные требования меняются.
Платежами возможности NFC не заканчиваются. Метки могут хранить короткий текст, ссылку или другую структуру в формате NDEF. Транспортные карты используют собственные приложения и протоколы. NFC применяется в пропусках, автомобильных и гостиничных ключах, электронных билетах, идентификаторах и для быстрого сопряжения устройств.
Обычная NFC-метка при этом не равна банковской карте. Дешёвая наклейка может содержать всего лишь адрес сайта. Поэтому я отношусь к неизвестной NFC-метке примерно как к незнакомому QR-коду. Само прикосновение не должно магически списывать деньги, но метка способна привести на фишинговый сайт или запустить нежелательный сценарий, если система и пользователь разрешат дальнейшее действие.
Можно ли снять деньги через куртку и где NFC действительно опасен
Популярная страшилка выглядит просто. Мошенник заходит в метро с переносным терминалом, подносит его к карману пассажира и незаметно списывает деньги. Технически бесконтактная карта способна ответить находящемуся рядом считывателю, а небольшие платежи в некоторых платёжных схемах могут проходить без ввода PIN. Поэтому говорить «такое физически невозможно» я бы не стала.
Но как массовая схема кражи такой сценарий неудобен. Преступнику нужен работающий платёжный приём, операция проходит через эквайринг и оставляет банковский след, действуют антифрод и правила подтверждения платежей. Со смартфоном добавляется ещё один барьер. Большинство мобильных кошельков требуют подходящего состояния устройства, например разблокировки или другой проверки пользователя. Требования зависят от кошелька, суммы и настроек, поэтому универсального правила «телефон всегда требует отпечаток» нет.
Более серьёзная угроза пришла совсем с другой стороны. Киберпреступники научились не увеличивать дальность NFC, а переносить обмен через интернет. При relay-атаке один телефон находится рядом с настоящей картой, второй рядом с терминалом или банкоматом. Между смартфонами идут команды и ответы настоящей EMV-сессии. Для карты терминал как будто находится в нескольких сантиметрах, хотя географически устройства могут разделять километры.
Такие атаки давно вышли из лабораторий. В России и других странах вредоносные программы на базе NFCGate, PhantomCard и похожих инструментов применяли для релейного мошенничества. Особенно показательная схема появилась совсем недавно. Связка SpyNote и WindRelay превращала Android-смартфон жертвы в удалённый считыватель, после чего настоящая банковская карта общалась с терминалом мошенника через интернет в реальном времени. Преступникам не требовалось ломать криптографию EMV, жертву убеждали установить вредоносную программу и приложить карту к собственному телефону.
Именно такой сценарий хорошо показывает границы токенов и криптограмм. Одноразовая криптограмма мешает записать старый платёж и воспроизвести его позже. Релейная атака работает иначе. Злоумышленник передаёт запрос терминала настоящей карте прямо сейчас и возвращает свежий ответ. Карта сама выполняет требуемую криптографическую операцию, только не понимает, что терминал находится далеко.
Проблема настолько реальна, что NFC Forum включил усиление защиты от relay-атак в свою технологическую дорожную карту, а ISO развивает механизмы защиты от ретрансляции для семейства ISO/IEC 14443. Одной прикладной криптографии для полной защиты от такого класса атак недостаточно, системе нужно ещё уметь оценивать физическую близость участников обмена.
Интересный пример обнаружился и на другом уровне EMV. Исследователи смогли заставить некоторые просроченные бесконтактные карты Visa проходить оплату, изменяя передаваемую терминалу дату окончания действия. Ключи карты при этом не взламывались. Уязвимость возникла из-за того, как разные элементы платёжной цепочки проверяли срок действия. Мы подробно разбирали эксперимент с «оживлением» старых карт. История полезна не столько сама по себе, сколько как напоминание, что сильная криптография не исправляет логические ошибки вокруг неё.
Можно ли считать NFC с нескольких метров? Обычный смартфон и штатный платёжный терминал на такую работу не рассчитаны. Но цифра «два или четыре сантиметра» не является физической стеной. Специализированные антенны позволяют обнаруживать или перехватывать отдельные сигналы дальше штатной дистанции, а возможности зависят от направления связи и оборудования. Поэтому короткий радиус уменьшает поверхность атаки, но не заменяет защиту протокола.
После кражи телефона риск тоже не исчезает, хотя смартфон обычно защищён лучше потерянной пластиковой карты. Экран можно заблокировать кодом или биометрией, платёжный токен можно отозвать отдельно, а кошелёк способен требовать аутентификацию. Слабый код разблокировки, вредоносное приложение, скомпрометированный банковский аккаунт или социальная инженерия всё равно способны обойти часть защитных слоёв.
Материал предназначен для легального и ответственного использования. Исследовать NFC, банковские карты и платёжные протоколы нужно только на собственном оборудовании или с разрешения владельца. Нельзя применять подобные методы для несанкционированного доступа, слежки, хищения данных, проведения чужих платежей или других действий, запрещённых законодательством вашей страны, включая законодательство России.
Я бы поэтому не строила защиту вокруг страха перед человеком с терминалом в метро. Намного практичнее блокировать телефон нормальным кодом, не назначать неизвестные приложения платёжными по умолчанию, не устанавливать APK по просьбе звонящего «сотрудника банка» и никогда не прикладывать банковскую карту к смартфону для якобы «проверки», «верификации» или «защиты счёта».
NFC остаётся сравнительно простым способом передать данные и энергию на коротком расстоянии. Сложность начинается выше. Смартфон эмулирует карту, платёжная система заменяет PAN токеном, EMV создаёт динамическую криптограмму, банк проверяет операцию, а операционная система контролирует доступ к платёжному приложению. Поэтому мобильная оплата защищена не одним волшебным свойством NFC, а несколькими независимыми слоями.
И главный ответ на вопрос из заголовка тоже требует одного слова «обычно». При нормальной токенизированной оплате смартфоном торговой точке не требуется исходный номер вашей пластиковой карты. В платёжную цепочку вместо PAN поступает токен. Но токен не является одноразовым номером, не делает покупку анонимной и не отменяет атак на другие части системы. Именно такое понимание NFC полезнее любых обещаний, что «с четырёх сантиметров украсть ничего невозможно».