Привет, Хабр!
Меня зовут Максим. Промышленной разработкой я занимаюсь с 2005 года. В Кошельке работаю с 2013 года, а с 2015 года помогаю бизнесу компании развивать новые финтех-сервисы в качестве руководителя подразделения.
В Кошельке наша команда запустила немало инновационных продуктов. Это и одна из первых в мире полностью виртуальная банковская карта в смартфоне с возможностью бесконтактной оплаты (за год до запуска Apple Pay в России и задолго до запуска Apple Card), и первая транспортная карта, и первая карта болельщика, и первая кампусная карта в смартфоне.
В прошлом году мы совместно с Mastercard запустили сервис Кошелёк Pay — единственный в мире сервис, который, в отличие от аналогов, работает независимо от производителя смартфона или операционной системы. Например, Кошелёк Pay работает на смартфонах Huawei, на которых отсутствуют сервисы Google.
Дистанция чтения NFC метки
NFC-tag относится к меткам малого радиуса действия. Расстояние между тегом и устройством для установки соединения не может превышать 10 см. Иногда это относят к недостаткам технологии, однако у такой особенности есть плюсы: NFC потребляет мало энергии, а близкий контакт препятствует перехвату личных данных.

Полезные ссылки
Если вас заинтересовала тема, описанная в статье, то ниже — несколько ссылок для более подробного изучения:
Установка апплетов
Для установки апплетов на чип необходимо защищенное соединение (Secure Channel Protocol или SCP); мы сделали это за кадром с помощью обычного PC/SC считывателя и платформы Cardsmobile TSM.
Однако, даже если у вас ничего из этого нет, вы все равно можете попробовать установить свой собственный апплет на чип — только на виртуальный.
Понадобится любая IDE с поддержкой JCOP Shell и эмулятором JavaCard, например, вот эта.
Создаем пустой проект, указываем желаемый AID (например 0000000000) и запускаем.
Дальше разбираемся по шагам:
Особенности и преимущества
Использование NFC-меток помогает решать задачи как бытового характера, так и бизнеса или маркетинга. К плюсам NFC-тегов относятся:
Персонализация апплетов
На самом деле, персонализация апплета — очень простая штука; всё, что требуется, это загрузить в него необходимые платежные данные. Для этого нужно выбрать апплет командой SELECT по его AID, установить защищенное соединение и отправить выбранному апплету команды STORE DATA с данными внутри.
Теперь вернемся к списку AID’ов в файле info.plist — зачем он нужен, и как конкретно Core NFC выбирает, с каким апплетом взаимодействовать?
Выглядит это примерно так:
Дальше из массива можно выбрать любой такой объект, и с помощью метода sendCommand отправлять APDU-команды выбранному апплету.
А теперь поговорим об этом ограничении:
Core NFC doesn’t support payment-related Application IDs.
То есть Core NFC не поддерживает платежные AID’ы, а именно боевые, с которыми работают платежные терминалы.
Конечно, платежный AID в список info.plist добавить можно, вот только Core NFC его проигнорирует и не будет отправлять для него SELECT (кстати, здесь список всех использующихся AID’ов). Apple таким образом защищают свою технологию Apple Pay, закрывая сторонним разработчикам доступ к любым платежным функциям iPhone (и всему, что с этим связано).
Программирование NFC-меток
Настройка тегов происходит с помощью сторонних мобильных приложений. Благодаря понятному интерфейсу, разобраться в процессе несложно. Рассмотрим, как проще всего запрограммировать NFC-метку на устройствах с ОС Android и iOS.
Как настроить NFC метку на Android
Чтобы настроить NFC-метку на телефоне с Android, можно использовать приложение Trigger. Оно помогает запрограммировать тег как на простые действия, так и на более сложные команды.
Чтобы настроить метку через Trigger, необходимо:
После успешного сохранения данных о метке её можно использовать для любого устройства с поддержкой технологии NFC.
Как настроить NFC метку на iOS
Пользоваться NFC-метками в полном объёме могут лишь пользователи версий iPhone XS и выше. Владельцам моделей 7, 8 и X, необходимо открывать сканер вручную. Для более ранних моделей, несмотря на наличие NFC-модуля, функция считывания тегов недоступна.
Настроить тег на устройствах с iOS можно с помощью приложения NFC Tools. Оно отлично справляется с программированием простых задач, например, включением Wi-Fi, установкой будильника или запуском приложений.
Важно! В дальнейшем для чтения тегов также придётся открывать приложение NFC Tools.
Запрограммировать метку с помощью iPhone можно и через приложение «Команды» на самом телефоне. Для этого после записи команды выберете пункт NFC в нижней части экрана и ещё раз нажмите на строчку NFC. После этого запустится сканер, и вам останется только поднести телефон к метке и подписать её в приложении.
Как записать банковскую карту на NFC метку
Если ваш телефон поддерживает технологию NFC, проще всего будет привязать карту к смартфону с помощью сервиса мобильных платежей: Google Pay (на устройствах с Android), Apple Pay (для гаджетов на iOS), Samsung Pay (на смартфонах Samsung). Также это могут быть и сторонние сервисы различных платёжных систем или банков.

Общий порядок действий для привязки карты к сервису мобильных платежей такой:
У различных сервисов могут быть свои нюансы на этапе добавления карты, но общая схема одинакова для всех. После привязки пластика к телефону можно проводить бесконтактную оплату за товары без использования карты. Достаточно будет поднести к терминалу смартфон.
Если ваш телефон не оснащён технологией бесконтактных платежей, многие рекомендуют использовать метки NFC для записи реквизитов карты и последующего использования тега при оплате товаров в магазинах. Это ошибочная рекомендация, ведь ни телефон, ни метка не могут копировать банковскую карту. В режиме чтения меток соответствующими приложениями (например, NFC Tools) вы можете приложить пластик к задней крышке устройства и увидеть открытую информацию о карте, но при попытке записать информацию на носитель в виде метки приложение сообщит об ошибке, поскольку карта защищена. Таким образом, эмуляция пластиковой карты с помощью NFC-метки невозможна.
Если у Вас появились какие-либо вопросы по данной теме, задавайте в комментариях, и наш эксперт обязательно Вам ответит.
Дополнительные задачи
NFC расшифровывается как Near Field Communication, данная функция считается новой технологией высокочастотной беспроводной связи, которая передаёт информацию в небольшом радиусе (не больше 10 см). Она работает на основе автоматизированной идентификации, для этого используется метод RFID. Благодаря ему проводится запись и считывание сведений при помощи радиосигналов.

Технологию НФС можно применять для следующих целей:
Передача данных осуществляется со скоростью 424 Кбит/с. Соединение осуществляется в течение одной десятой секунды. В связи с тем, что радиус действия небольшой, безопасность имеет высокий уровень. У посторонних просто не получится перехватить данные.
Алгоритм действий
Чтобы узнать, как пользоваться технологией NFC для открытия домофона на подъездных дверях, стоит изучить особенности применения:
При чётком проведении и при воспроизведении всех функций мобильный телефон станет полноценным электронным ключом. Его нужно приблизить к области с домофоном, выполнить запуск программы-эмулятора. В итоге замок проведет распознавание цифрового девайса в качестве настоящего ключа.
Как проводится копирование ключа от домофона
Чтобы выполнить правильное открытие замка, нужно выполнить произвести эмуляцию виртуального ключа. Для этого устанавливается приложение-эмулятор на смартфон и копируется необходимый код.
Отличным вариантом будет применение приложения NFC Tools Pro. Его можно загрузить в каталоге Google Play. Процесс установки программы проводится автоматически, после запускается и считывается тег с замка.
После копируется ключ от домофона на смартфон с NFC, и выполняются следующие меры:
Как записать ключ от домофона в телефон nfc
Для записи ключа от домофона на устройство с модулем НФС можно воспользоваться аналогичными эмуляторами «интерсвязь» или «факториал». В первом предусмотрена особая функция для телефона, и обязательно сохраняется тег. Во время каждого вскрытия домофона к нему подносится прибор, на нём должна быть запущенна программа с эмулятором.
Узнайте как оплатить проезд в метро телефоном в статье.
Когда вмешательство в работу домофонной системы является несанкционированным и уголовно наказуемым?
Вскрытие домофонных дверей без применения ключа может быть нарушением в следующих случаях:
Обходные пути
Первое, что приходит в голову — а можно ли добавить в info.plist не AID платежного апплета, а AID Card Manager’а (Card Manager — это группа сервисов внутри операционной системы чипа, управляющих картой, которые отвечают за администрирование и безопасность), чтобы потом вручную послать ему команду SELECT с AID нужного апплета?
Здесь мы споткнулись о первый подводный камень — Core NFC не позволяет отправлять команду SELECT, содержащую AID, который не прописан в info.plist.
Хорошо, добавили A0000000041010, но и тут неудача — Core NFC не позволяет отправлять команду SELECT, содержащую платежный AID, вне зависимости от того, есть он в info.plist или нет.
Разберемся, как именно работает ограничение по идентификаторам.
В info.plist мы указали следующие AID’ы:
1. A000000001510000 – GlobalPlatform Card Manager AID
2. 325041592E5359532E444446303101 – Proximity Payment System Environment (PPSE)
3. A0000000041010 – Mastercard Credit/Debit (Global)
4. A00000000401 – Mastercard PayPass
5. A00000000410101213 – Mastercard Credit
6. A00000000410101215 – Mastercard Credit
7. A00000000410101214 – Придуманный платежный AID
8. A00000000410101216 – Придуманный платежный AID
9. A0000000041010121F – Придуманный платежный AID
10. A0000000041010BB5445535401 – Придуманный платежный Long AID
11. A0000000041010BB5445535405 – Придуманный платежный Long AID
12. A000000004101FBB5445535401 – Придуманный не платежный AID
13. A000000004101F1213 – Придуманный не платежный AID
14. A00000000F1010 – Придуманный не платежный AID
15. A0000000040F – Придуманный не платежный AID
Мы установили 14 платежных апплетов с разными AID (пп. 2-11 — платежные AID-ы), и попробовали отправить Card Manager команды SELECT с каждым из этих AID.
Ответили номера 12-15.
Получается, что ограничение накладывается именно на некий префикс AID, наличие которого и определяет, платежный это идентификатор или нет.
Жаль, но этот способ отпадает.

Она отправляется в Card Manager и содержит AID апплета, который нужно персонализировать.
После этого можно отправлять команды STORE DATA в Card Manager, а он будет пересылать их в целевое приложение.
Но есть одно ограничение. Для того, чтобы апплет поддерживал такой способ персонализации, он должен реализовывать интерфейс org.globalplatform. Application.
а значит надо проверить, реализует ли он интерфейс Application.
Но когда Application был убран из интерфейсов, реализуемых приложением, оно стало отвечать на эту команду «6985», как и в случае с апплетом M/Chip Advance.
Следовательно, проблема именно в том, что приложение NXP не реализует необходимый для такого способа персонализации интерфейс. Этот способ тоже отпадает.
Примеры использования NFC меток
«NFC-технология выступает в роли приветственного рукопожатия и позволяет обойти проверку безопасности соединения. Для человека она не несёт угрозы: передача данных происходит на безопасной частоте 13.56 МГц».
Использовать NFC-чип телефона для бесконтактной оплаты товаров стало привычным, но это не единственный сценарий применения технологии, привносящий удобство в жизнь. Рассмотрим, какие привычные процессы можно автоматизировать и упростить при помощи NFC-метки и смартфона.
NFC метка вместо пароля от Wi-Fi
Такой сценарий подойдёт для заведений общественного питания, салонов красоты, торговых центров и других общественных мест. Обычно каждый новый смартфон подключается к сети вручную путём ввода пароля, что не всегда удобно.
Установив NFC-метку на роутер, достаточно поднести к нему устройство, чтобы оно подключилось к беспроводной сети, минуя привычную процедуру установки соединения.
Метка для быстрой активации будильника и ночного режима
Полезная рекомендация для тех, кто не хочет ежедневно заводить будильник на одно и то же время или боится в какой-то момент забыть об этом.
Метку можно запрограммировать на установку будильника и автоматическую активацию ночного режима, после чего разместить её у изголовья кровати или на прикроватной тумбочке. Теперь каждый раз, когда вы будете класть телефон на место перед сном, метка подаст команду, а устройство выполнит простые действия за вас.
Автоматический запуск навигатора в автомобиле
Совет для водителей: метку можно поместить на держатель для телефона в машине. После установки в него устройства навигатор будет включаться автоматически. Дополнительно можно запрограммировать метку и на подключение смартфона к системе Bluetooth автомобиля.

Запуск ПК
Для этого потребуется настроить на компьютере пробуждение по LAN. После этого вы сможете использовать NFC-метку для включения ПК из любой точки вашей квартиры. Способ будет удобен для тех, кто полностью выключает компьютер, а не запускает спящий режим. Также это поможет сэкономить время: устройство может запускаться параллельно с тем, как вы готовите завтрак или выполняете другие утренние задачи.
Wi-Fi для гостей
В этом сценарии метка с записанным через приложение InstaWi-Fi паролем клеится на роутер. Посетителям будет достаточно поднести смартфон с NFC к тегу и беспрепятственно пользоваться беспроводной сетью. Способ подойдёт тем, кто любит принимать гостей, но устал каждый раз сообщать пароль от Wi-Fi новым людям.
Таймер
При занятиях спортом, а также во время приготовления блюд часто требуется засекать время. Если запрограммировать NFC-метку на запуск таймера, этот процесс также можно автоматизировать, просто поднеся устройство к тегу. Главное – расположить его в удобном месте.
Повод покинуть помещение
Если вы оказались в ситуации, когда нужно отлучиться, не привлекая нежелательного внимания (например, по нужде, на курилку, или же сбежать от надоедливой компании), запрограммируйте метку на команду позвонить вам через приложение IFTTT. Спустя несколько секунд после того, как вы поднесёте смартфон к тегу, на телефон поступит звонок, что позволит вам спокойно покинуть помещение, не вызвав подозрений.
Музыка
Этот способ поможет быстрее соединяться с колонкой или другой акустической системой. Достаточно поместить метку, запрограммированную на включение Bluetooth, на колонку, наушники или проигрыватель. После поднесения смартфона к тегу телефон активирует функцию, и подсоединение к устройству произойдёт автоматически.
Визитки

Быстрый запуск
Проанализировав некоторые моменты из жизни, мы можем заметить, что посещение некоторых мест или использование определённых вещей сопряжено с запуском соответствующего приложения. Разместив на предмете или в помещении запрограммированную метку, можно автоматизировать это действие. Например, запуск навигатора с помощью тега на велосипеде, приложения для подсчёта калорий – на кухне, или заметок со списком покупок – на шопере.
Обязательные условия
Перед тем как применять модуль для проведения бесконтактных платежей, а также для вскрытия домофонных дверей, следует изучить основные требования, которые предъявляются к этой функции.

NFC Эксперт