Как мы загружали банковскую карту из iPhone в брелок / Хабр

Что такое nfc метка

Стандартная нфс метка представляет собой небольшой стикер, толщиной чуть больше листа обычной бумаги. По сути он является круглой антенной на гибкой основе, диаметром примерно 25 мм. Такая наклейка легко и удобно фиксируется в любых местах. Фактически, NFC антенна и есть пассивный микрочип, обеспечивающий бесконтактную коммуникацию. Для работы не требуется никаких энергозатрат, поскольку он не может выполнять передачу информации.

Использовать и программировать метки возможно только с помощью смартфона или айфона, оборудованными встроенным чипом. При его отсутствии, отдельно приобретается внешний NFC модуль, который располагается внутри или снаружи устройства. Для дальнейшей работы с наклейками потребуется установка на телефон специальной программы. Далее, нужно продумать расположение стикеров, используя наиболее удобные места.

Настроенный микрочип функционирует по самой простой схеме. Вначале нужно поднести смартфон к метке на расстояние до 5 см, после чего оба устройства синхронизируются между собой практически мгновенно – в течение до 0,1 с. После этого все запрограммированные действия сразу же запускаются.

Почему не работает карта?

Убедитесь в наличии значка бесконтактных платежей на карте. Если его нет, то пластик контактный. Если функция предусмотрена, но не срабатывает, причины могут быть следующие:

  • сбой в терминале – можно расплатиться контактным способом, позже попробовать в другом магазине или банкомате;
  • повреждена карточка (механически, размагничена) – обратитесь в банк для замены; если остальные функции не нарушены, можете продолжать ими пользоваться.

Встречаются ситуации, когда пластик работает с перебоями. Такое возможно при нарушении целостности антенны внутри, она начинает «отходить». Для полноценной работы опции требуется замена карты.

Mir pay

В отличие от международных платежных систем МИР не рекламирует отдельно технологию, используемую на российском пластике. Продвигается продукт «Бесконтактная карта МИР».

Mir Pay – сервис, используемый российской платежной системой для бесконтактной оплаты. Пользователи устанавливают приложение, аналогичное Samsung Pay/Apple Pay/Google Pay.

Nfc assistant (android)

NFC Assistant нужен для выполнения различных действий при распознавании метки. Приложение умеет:

  • Отображать сообщение;
  • Читать заданный текст;
  • Устанавливать будильник;
  • Изменять режим «Не беспокоить»;
  • Управлять Bluetooth;
  • Получать данные о событиях календаря;
  • Получать данные о погоде;
  • Запускать приложение или сайт;
  • Управлять умными устройствами.

Nfc tagwriter (android)

NFC TagWriter поможет записать на метку контакты, закладки, геолокацию, данные о Bluetooth Handover, email, текстовые сообщения и многое другое.

Кроме записи, поддерживается чтение и просмотр данных, запуск сопутствующего приложения.

У разработчиков также есть NFC TagInfo, которое служит для чтения всех данных, хранящихся на метках, включая транспортные билеты и тому подобные вещи.

Nfc метка вместо пароля от wi-fi

Наиболее простым и популярным вариантом применения NFC является обеспечение быстрого подключения смартфона к сети вай-фай. Это особенно актуально для тех, кто постоянно имеет дело с новыми гаджетами. Если на роутере установлен довольно сложный и длинный пароль, то вводить его вручную каждый раз будет не совсем удобно.

Однако, после программирования определенных действий, данная процедура упрощается. Достаточно близко поднести смартфон к роутеру, и соединение будет тут же установлено. Такая схема идеально подходит в общественных местах, где посетителям предоставляется возможность подключения к беспроводному интернету.

Автоматический запуск навигатора в автомобиле

Конечно, эта операция может быть выполнена и вручную, однако, хочется иногда на себе прочувствовать все прелести технического прогресса. Вроде бы мелочь, но, когда метка, установленная в держателе для смартфона, отдает команду на включение навигатора – это производит неизгладимое впечатление, особенно на пассажиров.

Безопасность

Специалисты считают, что бесконтактные платежи безопаснее контактных.

Основные аргументы:

  • отсутствие необходимости ввода PIN при мелких платежах сокращают риск компрометации;
  • активация модулей NFC происходит на несколько секунд на расстоянии менее 10 см, у большинства карт требуется приближение на 5 см и меньше, такой способ работы снижает вероятность списания случайно или злоумышленниками;
  • каждый платеж имеет одноразовые коды в системе, что делает невозможным двойное списание по одной и той же оплате;
  • терминалы для списывания денег выдают банки организациям и ИП, история операций предельно прозрачна, незаконные списания можно опротестовать;
  • если в поле действия сигнала от терминала окажется 2 карты, списание не произойдет, на дисплее появится сообщение с просьбой выбрать один носитель.

Виды меток для оплаты

Все метки изготавливаются по мировому стандарту ISO 14443. Условно, они разделяются на 4 типа, в зависимости от своих характеристик. Они определяются объемом данных и скоростью их передачи. На первый взгляд эти параметры могут показаться недостаточными по сравнению с другими технологиями.

Все микрочипы можно записывать и перезаписывать множество раз, без каких-либо ограничений. Их классификация выглядит следующим образом:

  • 1 и 2 типы оборудованы памятью соответственно на 48 байт и 2 кбайт. Передача сигнала осуществляется со скоростью 106 кбит/с.
  • Тип 3. Метка без возможности перезаписи. Однако, они способны решать более сложные задачи, а скорость передачи намного выше – 106 кбит/с.
  • Тип 4. Наиболее мощный и производительный. Внутренняя память достигает 32 кбайт, а информация может передаваться со скоростью 106-424 кбит/с.

Где купить nfc метки и сколько они стоят

Наиболее широкий ассортимент меток представлен на площадке Алиэкспресс. Больше всего здесь простых наклеек, продаваемых наборами по 10 штук. В среднем, один такой комплект стоит 220 рублей.

Все производители выпускают метки по одному и тому же протоколу, поэтому и работа осуществляется по одинаковым схемам. Основные отличия чипов заключаются в их конфигурации и нанесенном рисунке. Для наклеек повышенного качества используется более плотная бумага. В качестве примера можно привести наборы от AnyNFC, состоящие из 6-ти наклеек по цене от 312 рублей.

Для необычных или специфических команд предусмотрены недорогие стикеры без рисунков, стоимостью 83 рубля за 6 штук. На них наносится лишь логотип, отображающий беспроводную технологию НФС. После установки и программирования на них наносятся свои рисунки, созданные на компьютере и распечатанные на принтере.

Дистанция чтения нфс метки

Среднее расстояние, обеспечивающее устойчивую бесконтактную связь, составляет 4-5 см. У наиболее продвинутых устройств этот показатель достигает 10 см. Результативная дистанция может изменяться, в зависимости от определенных факторов, влияющих на работоспособность:

  • В каждом телефоне установлен НФС считыватель разной производительности.
  • Размеры и конфигурация меток должны учитываться перед тем, как пользоваться бесконтактной связью.
  • Окружающая среда. Наличие металлических предметов создает серьезное препятствие для бесконтактного соединения.
  • Модель микрочипа. Работоспособность браслетов и колец намного выше, чем у обычных наклеек.

Для чего создана технология nfc

Данная технология разработана для смартфона, с целью установки связи с другими устройствами, расположенными на близком расстоянии. Средний радиус действия составляет 4-5 см, что вполне достаточно при беспроводном двустороннем соединении. При этом, обмениваться информацией могут оба прибора, задействованных в цепочке.

Типичным примером этой технологии служат современные банковские карты, оборудованные чипами для бесконтактных платежей. Сюда же входят и социальные карты, применяемые для оплаты проезда в общественном транспорте. Функция NFC поддерживается большинством современных смартфонов с помощью специальных сервисов Google Pay.

Дополнительные задачи

  1. Получение UID чипа
    Это сделать можно, очень простым способом.
    При старте сессии NFC модуль ищет чипы, AID’ы апплетов которых прописаны в info.plist, и складывает их в массив.
    После этого любой из них можно оттуда достать, и если его тип NFCISO7816Tag, то у него есть поле identifier, в котором и находится UID чипа.
    /**
      * @discussion The hardware UID of the tag.
    */
    var identifier: Data { get }

  2. Получение ATR чипа
    А вот ATR, похоже, Core NFC получать не умеет, потому что во фреймворке для этого нет отдельных инструментов, а с помощью APDU-командATR получить нельзя.

Запись платежной карты в телефон

Если в телефоне с поддержкой NFC находится такой же микропроцессор, как и в пластиковых картах, вывод напрашивается сам собой — в телефон можно записывать такие же платежные приложения и прикосновением телефона к считывателю осуществлять такие же бесконтактные платежи.

Первую попытку поместить карту в телефон в РФ осуществили сотовые операторы, например, «МТС» и банк «Русский Стандарт», «Мегафон» и транспортная карта в г. Екатеринбург, «Билайн» и транспортная карта в г. Казань и т.п.

Для этого им потребовалось закупить партию специальных UICC SIM-карт с Secure Element, договориться с банком или транспортной компанией о предварительной записи туда платежного или транспортного приложения, отвезти SIM-карты в персобюро для осуществления привычного в отрасли процесса «контактной персонализации», а потом обменивать старые SIM-карты абонентов на новые в центрах обслуживания.

Да, поместить карту в телефон таким образом можно, и это работает. Но что делать, если вам нужен другой банк? Или транспортная компания в другом городе? А может, в двух городах? SIM-карте придется как следует попутешествовать по всем инстанциям перед попаданием в ваши руки, а сотовому оператору — договориться со всеми этими компаниями. При этом для перевыпуска банковской карты, например, по причине окончания срока действия, операцию придется повторить.

Зачем нужны nfc метки

Использование меток, установленных на телефон, позволяет в ускоренном варианте получать любую информацию. После того как микрочип оказался запрограммирован, появится возможность практически мгновенно выполнить следующие действия:

  • Включение и выключения соединения блютуз.
  • Вход в заданное приложение.
  • Быстрый вывод на экран нужного телефонного номера.
  • Активация мобильного интернета.
  • Бесконтактная оплата товаров, услуг и т.д.

Использование в банкомате или терминале

Если устройство оборудовано модулем NFC, вы можете им пользоваться, не вставляя пластик в отверстие:

  • поднесите карточку к считывателю сигнала карточки;
  • характерный звук (пик) оповестит об установке связи;
  • введите ПИН;
  • выбирайте пункты меню банкомата привычным способом для снятия наличных, пополнения, переводов, оплаты и прочих запросов.

Сохраняется возможность традиционного использования для оплаты и доступа к личному кабинету в банкомате через картоприемник.

Как записать банковскую карту на nfc метку

Перевести банковскую карточку на бесконтактный вариант можно путем привязки ее к мобильному устройству, оборудованному чипом NFC. Для этой цели более всего подходят следующие сервисы:

  • Google Pay. Обеспечивает работу приложений android nfc, применяемых в смартфонах.
  • Apple Pay. Предполагает использование только вместе с айфонами.
  • Samsung Pay. Фирменное приложение, работающее исключительно с гаджетами Самсунг.

Решение задачи, как записать банковскую карточку на метку, выполняется в следующей последовательности:

  • Выполнить вход в приложение, обеспечивающее бесконтактную оплату.
  • Нажать на пункт добавления карты.
  • Внести реквизиты карточки или отсканировать ее.
  • Согласиться со всеми условиями.
  • Ввести код, полученный в СМС.

Если привязка выполнена правильно, можно рассчитываться с помощью мобильного устройства во всех торговых точках, где предусмотрена возможность бесконтактной оплаты.

Как запрограммировать nfc метку

Перед началом использования NFC метки, она должна быть записана в телефон. Для этого потребуется установка специального приложения, с помощью которого смартфон сможет считывать нужные данные.

Выполнение настроек будет возможно лишь при соблюдении определенных условий:

  • Наличие смартфона или планшета с предустановленным модулем NFC.
  • Приложение для работы с метками.
  • Стикер, установленный в нужном месте.

Как защитить?

Основные способы:

  • храните карточку отдельно от ПИН-кода;
  • в случае обнаружения утраты пластика немедленная заблокируйте его, закажите перевыпуск;
  • подключите СМС-оповещения об операциях;
  • используйте специальные чехлы, не пропускающие NFC-сигналы (многие специалисты считают меру излишней и бессмысленной);
  • страхуйте риски получения ущерба – все банки предлагают защищать средства на счетах.

Как клонировать тег nfc (например, mifare classic) на устройство android?

См. Правки для последних обновлений этого, хотя ответ все еще общий «нет»

Короче, нет, все равно не легко.

Вы можете получить всю информацию от него, используя приложение, такое как NFC TagInfo, однако в настоящее время стандартные телефоны Android не поддерживают эмуляцию карт NFC, хотя их аппаратное обеспечение позволяет это.

Если вы готовы установить на устройство пользовательское ПЗУ, возможно, имеется работающее ПЗУ, которое обеспечивает функциональность этих устройств, есть и для Nexus S , однако эти ПЗУ обычно позволяют телефону работать только как тег, так что вы можете Вы не можете поместить данные прямо с телефона, вам нужно будет записать данные из другого источника.

Я также не видел ни одного, который позволял бы устанавливать UID (уникальный идентификатор), с которым будет работать большинство дверных считывателей и систем контроля доступа, так что даже если вы можете эмулировать информацию в теге, вы все равно не сможете открыть дверь в качестве UID будет неправильно.

РЕДАКТИРОВАТЬ: теперь можно загружать приложения на ваше устройство и общаться с ридером через NFC, однако, чтобы это работало, вы должны запустить Cyanogenmod, и это все равно не решит вашу проблему, приложение по-прежнему не может изменить UID что показывает телефон.

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: С Android KitKat 4.4 возможность использовать телефон в качестве карты NFC встроена в операционную систему, поэтому вам больше не нужно полагаться на Cyanogenmod. Однако на самом деле он не может эмулировать тег (такой как тег MiFare), которым является большинство карт доступа, и он не может установить собственный UID. nb У меня не было возможности поиграть с этим, поэтому я просто продолжаю читать то, что прочитал.

Как настроить nfc метку на iphone

Настройки гаджетов iphone считаются более сложными. Полноценное использование меток NFC доступно лишь устройствам следующих серий: XR, XS, 11, 11 Pro, SE 2020 года выпуска. Эти айфоны выполняют все заданные действия полностью в автономном режиме. Более ранние приборы – 7, 8 и Х моделей этой функции лишены и сканер каждый раз приходится открывать вручную.

В самой невыгодной ситуации находятся гаджеты серий 6, 6S и SE 2022 года. Считывание меток им недоступно, несмотря на установленный в них микрочип NFC.

Наиболее удобной и популярной программой для айфонов считается NFC Tools. Она очень хорошо подходит для программирования и последующего чтения меток. Настройка и действия осуществляется так же, как и на смартфоне, за исключением тех моделей, где приложение открывается вручную.

В операционной системе iOS существует набор стандартных команд, но они, по мнению многих пользователей, не совсем понятны при настройке. Поэтому большинство владельцев айфонов предпочитает устанавливать сторонние приложения.

Как получить

Оформление и выдача происходит одинаково, независимо от наличия функции бесконтактной оплаты. В некоторых случаях возможна замена действующей карточки на новую. Перед подачей заявки важно выбрать тариф, по которому предусмотрена опция.

Стоимость обслуживания может остаться прежней или увеличиться. Отдельные эмитенты, чтобы сохранить комиссию на прежнем уровне, увеличивают срок действия пластика, а перевыпуск по вине держателя делают платным.

Как работает

На карточках технология бесконтактной оплаты реализована через специальную метку RFID («Radio Frequency IDentification» – радиочастотная идентификация). Внутри пластика проходит тонкий проводок-антенна. При поднесении его к терминалу включается радиосигнал за счет магнитного поля, происходит обмен данными между картой и устройством.

Как мы загружали банковскую карту из iPhone в брелок / Хабр
Вот так выглядит «разобранная» карта

Как устроены nfc-телефоны

image

NFC — это всего лишь технология беспроводной передачи данных. Такая же, как Bluetooth или WiFi, только работает на небольшом расстоянии и не очень высокой частоте (13,56 MHz), что является ее преимуществом, так как исключает вероятность «случайного» соединения.

В то же время NFC — это расширение существующего стандарта бесконтактных смарт-карт ISO 14443, который, как мы уже отметили, используется в современных банковских картах, пропусках в офис и на парковку, проездных билетах в метро, «Тройках» и «Подорожниках».

В NFC-совместимом телефоне, чтобы он был полноценным NFC-устройством, кроме NFC-антенны и NFC-контроллера должен быть так называемый Secure Element — отдельный микропроцессор, подобный тому, что находится в пластиковых картах. Он и будет отвечать за безопасное хранение и выполнение платежных приложений (например, MasterCard Mobile PayPass).

Как устроены платежные карты

Платежная карта (смарт-карта) — это микропроцессор, помещенный в кусок пластика стандартизированного размера, который при контакте со считывателем получает достаточное для работы питание и запускает операционную систему с установленным в ней платежным приложением (чаще всего Java-applet в *nix-подобной операционной системе).

), работают по тому же принципу, только питание получают от электромагнитного поля считывателя на кассе или турникете. Все бесконтактные банковские карты и подавляющее большинство транспортных объединяет стандарт

Банк или транспортная компания закупают «болванки» карт и записывают на них свое приложение с «платежными данными» клиента. Этот процесс, называемый персонализацией, осуществляется в так называемых персобюро, которые могут быть как внутренними подразделениями поставщиков услуг, так и отдельными компаниями на рынке.

В процессе персонализации данные на карте зашифровываются и закрываются ключами, что делает невозможным их изменение. Более того, архитектура современных смарт-карт позволяет на аппаратном уровне различать их состояние до и после персонализации, что полностью исключает возможность изменения (подделки), например, ваших платежных данных после того, как карта выпущена.

Эволюция карт от магнитной полосы (

) до смарт-карт с чипом (

) и бесконтактным интерфейсом (

) привела к тому, что форм-фактор карты перестал иметь значение. Это дает возможность использовать в качестве «носителя» карты любой объект: пластиковую карту, часы, браслет, стикер, брелок и, конечно же, смартфон.

Как работает платформа tsm

Платформа TSM обеспечивает удаленное управление чипами Secure Element в телефонах пользователей через безопасный канал связи. По указанию поставщика услуги TSM записывает (или удаляет, например, в случае утери смартфона) персонализационные данные карты в Secure Element телефона, используя сам телефон исключительно как модем.

Кроме того, платформа позволяет сервис-провайдерам удаленно «заглянуть» в данные выпущенных ими карт, например, для проведения аудита или отображения на экране телефона актуального баланса по картам оплаты проезда или картам лояльности (если остаток хранится на карте).

Ключи от Secure Element хранятся на узкоспециализированных серверах HSM (Hardware Security Module), являющихся неотъемлемой частью платформы TSM. Без участия последнего получить доступ к чипу невозможно — точно по такому принципу работает индустрия пластиковых карт, только ключи находятся в ведении банка или транспортной компании, выпустившей карту.

Какой именно картой оплачивать покупку, выбирает пользователь через приложение «Кошелек», которое отображает выпущенные и доступные для выпуска карты, а также принимает заявки на выпуск новых карт. Заявка отправляется к поставщику услуги, который вместо записи платежных данных на пластиковую карту, передает эти данные через TSM в Secure Element телефона.

Какие банки выпускают их?

Бесконтактный пластик стремительно вытесняет с рынка контактный. С апреля 2022 года все Visa в обязательном порядке оформляются с технологией PayWave, MasterCard планирует полностью перейти на Contactless к апрелю 2021.

МИР подобных требований банкам не выставляет, но значительная часть карточек выпускается со встроенной функцией. Получить бесконтактный пластик можно в любом российском банке, занимающемся выпуском.

Куда и какой стороной прикладывать

Значок функции бесконтактной оплаты есть на карте и на терминале. Он нанесен в том месте, откуда идет сигнал. Для совершения операции нужно поднести пластик к устройству, значком к значку. Контакт устанавливается на расстоянии в несколько миллиметров, максимум 10 сантиметров.

На выполнение операции не влияет, какой стороной повернута карточка к терминалу. В целях безопасности ее лучше держать вверх номером и именем, так чтобы секретный код на оборотной стороне не был виден.

Любая карта в любом телефоне

Для превращения телефона в банковскую карту TSM должен получить доступ к Secure Element либо от производителя этого телефона, либо от владельца SIM-карты (сотового оператора). Так как платежные карты в телефон не переносятся и не «привязываются» (иначе они будут считаться «дубликатами»), а выпускаются заново, то для выпуска в телефон банковской карты какого-либо банка этот банк должен подключиться к TSM.

Таким образом, любую карту в любой телефон выпустить пока не получится, но движение в этом направлении уже идет, и всем участникам рынка очевидно, что это закономерный эволюционный шаг. В этом заинтересованы и производители телефонов (новая функциональность, которая покруче лишнего мегапикселя в камере), и сотовые операторы (примерно по той же причине), и поставщики услуг (новая аудитория и канал продаж с интерактивным взаимодействием), и пользователи (уставшие от множества различных пластиковых карточек).

Сегодня в «Кошельке» можно выпустить банковскую карту «ТКС Банка», до конца года будет доступна также оплата проезда в транспорте: в качестве пилотной зоны стартуют города Вологда и Чебоксары. В следующем году доступных для выпуска карт станет значительно больше. Бесконтактных вам впечатлений!

Метка для быстрой активации будильника и ночного режима

Для того чтобы мгновенно активировать данные режимы, наклейка может быть установлена непосредственно на спинку кровати или на прикроватную тумбочку. В этой метке заранее настроен ночной режим, включающийся автоматически. На этот период отключаются все уведомления, а будильник устанавливается на 7.

00 утра или другое удобное время. Достаточно приложить телефон к метке, и все настройки в нем сразу же активируются. Эту функцию рекомендуется применять только в рабочие дни, поэтому следует быть внимательным и не использовать модуль смартфона в выходные дни.

Могут ли украсть с неё деньги?

Списания против воли держателя возможны, если:

  1. пластик украден/утерян и не заблокирован – доступны списания без ПИН-кода суммами до 1000/3000 рублей;
  2. одновременно выполнены условия: злоумышленник завладел терминалом набрал сумму в пределах лимита поднес устройство к карте на расстояние менее 5-10 см в течение нескольких секунд после ввода суммы.

Вторая ситуация маловероятна даже в автобусе или метро, она лишена здравого смысла. Лицу, получившему законно терминал, это не выгодно, так как сумма не большая, операция может быть опротестована, деньги возвращены, а за злоупотребление грозит уголовная ответственность.

Красть терминал бессмысленно, так как он привязан к счету клиента банка. Деньги в руки укравшего не попадут.

Можно ли на nfc метку скопировать данные банковской карты для оплаты покупок?

Нет.

No, you can’t. To oversimplify – wireless payments (NFC, RFID chips on cards, etc) aren’t a simple ‘what’s your card number’ transaction (because that would be insecure beyond belief), they are more of a ‘here, encrypt this block of data with your secret numbers and return it’ type of thing.

The block of data to be encrypted changes for each transaction, and there’s (supposed to be) no way to get the device to spit out it’s secret numbers.

So you can’t EASILY clone your cards onto your phone (if you could, then so could anyone else who walked near you).

That’s not to say it can’t be done at all (if, perhaps, you found a flaw in the way the crypto works, you could perhaps deduce the secret numbers of a device), but it’s not something you’re going be buying an app for.

Но можно расковырять карту, вынуть чип с антенной и поместить это всё допустим в кольцо.
5d175e9c6aec4798664584.jpeg

Можно ли отключить функцию

Порядок отказа от бесконтактной оплаты зависит от банка. В большинстве случаев потребуется выбор альтернативного продукта.

Работа модуля прекращается при механическом повреждении антенны – тонкой проволоки, которая проходит внутри. Можно осторожными сгибаниями-разгибаниями карты добиться разлома металла. При этом важно сохранить целостность пластика. Иначе любая оплата станет невозможной.

Можно ли перезаписывать информацию на 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, наличие которого и определяет, платежный это идентификатор или нет.

Жаль, но этот способ отпадает.

Второй способ персонализации, предусмотренный GlobalPlatform, это команда INSTALL [for personalization].


Она отправляется в Card Manager и содержит AID апплета, который нужно персонализировать.

После этого можно отправлять команды STORE DATA в Card Manager, а он будет пересылать их в целевое приложение.

Но есть одно ограничение. Для того, чтобы апплет поддерживал такой способ персонализации, он должен реализовывать интерфейс org.globalplatform.Application.

Card Manager, на команду INSTALL [for personalization] с Mastercard Credit/Debit (Global) AID, который был присвоен апплету M/Chip Advance от NXP, отвечал ошибкой «6985» (Conditions of use not satisfied),

а значит надо проверить, реализует ли он интерфейс Application.

Для этого мы написали простое приложение-пустышку, реализующее этот интерфейс. Как и ожидалось, на INSTALL [for personalization] оно ответило «9000».

Но когда Application был убран из интерфейсов, реализуемых приложением, оно стало отвечать на эту команду «6985», как и в случае с апплетом M/Chip Advance.

Следовательно, проблема именно в том, что приложение NXP не реализует необходимый для такого способа персонализации интерфейс. Этот способ тоже отпадает.

Персонализация апплетов

На самом деле, персонализация апплета — очень простая штука; всё, что требуется, это загрузить в него необходимые платежные данные. Для этого нужно выбрать апплет командой SELECT по его AID, установить защищенное соединение и отправить выбранному апплету команды STORE DATA с данными внутри.

Теперь вернемся к списку AID’ов в файле info.plist — зачем он нужен, и как конкретно Core NFC выбирает, с каким апплетом взаимодействовать?

Выглядит это примерно так:

  1. Программа идет по списку сверху вниз;
  2. Для каждого AID она формирует и отправляет команду SELECT;
  3. AID первого апплета, ответившего «9000» (статус успешного ответа, здесь список всех возможных ответов) записывается в поле initialSelectedAID объекта типа NFCISO7816Tag, который кладется в массив обнаруженных чипов
@available(iOS 13.0, *)

public protocol NFCISO7816Tag : NFCNDEFTag, __NFCTag {

   /**

    * @property initialSelectedAID The Hex string of the application identifier (DF name) selected by the reader when the tag is discovered.

    *                              This will match one of the entries in the «com.apple.developer.nfc.readersession.iso7816.select-identifiers»

    *                              in the Info.plist.

    */

   @available(iOS 13.0, *)

   var initialSelectedAID: String { get }

Дальше из массива можно выбрать любой такой объект, и с помощью метода

отправлять

выбранному апплету.

А теперь поговорим об этом ограничении:

Core NFC doesn't support payment-related Application IDs.

То есть

не поддерживает платежные AID’ы, а именно боевые, с которыми работают платежные терминалы.

Конечно, платежный AID в список info.plist добавить можно, вот только Core NFC его проигнорирует и не будет отправлять для него SELECT (кстати, здесь список всех использующихся AID’ов). Apple таким образом защищают свою технологию Apple Pay, закрывая сторонним разработчикам доступ к любым платежным функциям iPhone (и всему, что с этим связано).

Платформа iot

На данный момент мы с командой работаем над запуском платформы интернета вещей, которая сможет дополнить и расширить существующий опыт использования сервиса Pay и внедрить оплату (и другие сервисы идентификации) в те вещи, которые мы обычно носим с собой — так называемые носимые устройства.

Интернет вещей — это концепция привычных физических предметов, оснащенных технологиями для взаимодействия с внешней средой или друг с другом. 

В этой концепции привычные сценарии использования вещей перестраиваются благодаря автоматизации.

Пример носимых устройств — умные часы, фитнес-браслеты, кольца, брелоки.

Если раньше человек носил кольцо из-за красоты или символизма, то теперь, в концепции интернета вещей, кольцо выполняет функцию платежного инструмента, пропуска СКУД, пульта управления другими умными устройствами и т.д. Таким образом, для привычной вещи появляются новые удобные сценарии использования.

Умные вещи сейчас — мировой тренд. Об этом свидетельствуют собранные различными мировыми агентствами статистические данные (см. ссылки в конце статьи). 

В этой статье я хочу на примере проведенного нами исследования в рамках разработки IoT-платформы рассказать, с какими задачами работает финтех-направление приложения «Кошелёк», с какими проблемами мы сталкиваемся и как используем проверенные технологии карточной индустрии для создания новых продуктов.

Для начала я кратко и простыми словами опишу технологии, на которых базируется наша платформа. Если интересно почитать про эти технологии подробнее — в конце статьи будут ссылки. 

  1. Элемент безопасности, или Secure Element — это полноценный компьютер, выполненный в цельном кристалле кремния размером около 5-20 квадратных миллиметров. Он имеет свою операционную систему, систему ввода-вывода, центральный процессор, несколько крипто-процессоров для реализации криптографических операций, оперативную и постоянную память. Элементы безопасности используют при производстве банковских карт, SIM-карт, а также встраивают в смартфоны и другие устройства. Элемент безопасности практически невозможно взломать и получить оттуда данные (отсюда и название).

    Как и на любой компьютер, в элемент безопасности можно установить приложения — так называемые апплеты. Мы в нашей статье будем работать с платежным апплетом, благодаря установке и персонализации которого носимое устройство с элементом безопасности и имеет сервис бесконтактной оплаты.

  2. Стандарт GlobalPlatform Card Specification — он описывает работу операционной системы элемента безопасности в целом, а также сценарии и протоколы безопасного управления содержимым элемента безопасности.
  3. TSM  (Trusted Service Manager) — сервис для управления содержимым в элементе безопасности. Он управляет жизненным циклом апплетов и их персонализацией под конкретного пользователя на конкретном элементе безопасности.
  4. Для превращения носимого устройства в платежный инструмент платежными системами применяется технология токенизации по стандарту EMV — это процесс получения от платежной системы токена (суррогатного номера), связанного с номером реальной банковской карты. Для каждой банковской карты, в связке с форм-фактором устройства оплаты, токен всегда уникален, что обеспечивает дополнительную безопасность при оплате токеном.

Вот основные сценарии взаимодействия смартфона с самим устройством, которые мы закладываем в нашу платформу (во всех сценариях пользователь управляет носимым устройством через интерфейс мобильного приложения на смартфоне): 

Первый сценарий — это взаимодействие с активными носимыми устройствами. Активными называют носимые устройства, в которых есть свой элемент питания (например, аккумулятор). Как правило, внутри вещи работает своя операционная система и имеется модуль BLE для связи со смартфоном. Производитель устройства предоставляет SDK и ключи доступа для взаимодействия с элементом безопасности.

Именно так работают все умные часы и фитнес-браслеты с функцией бесконтактной оплаты.Тут всё просто и понятно — берем и делаем. 

Второй сценарий интереснее — это взаимодействие с пассивными носимыми устройствами. Пассивными называют носимые устройства, в которых нет своего элемента питания. Эти устройства питаются от внешнего магнитного поля, в которое их необходимо поместить.

Проблема заключается в том, что нужно загрузить в пассивное носимое устройство свою банковскую карту из приложения на смартфоне.

Этот сценарий мы (условно) разбиваем уже по типу смартфонов:

  1. Любые смартфоны без NFC
  2. Смартфон Android c NFC
  3. iPhone c NFC

Для первого типа будем использовать внешний считыватель, который находится в специальных терминалах персонализации. Если коротко, то терминал персонализации и мобильное приложение в смартфоне подключены к одному бэкенду, который синхронизирует обоих клиентов. Токен загружается через терминал персонализации, а в интерфейсе мобильного приложения пользователь видит результат.

Реализация терминала персонализации может быть разной: может быть тот же смартфон пользователя, подключенный к внешнему считывателю смарт-карт по BLE или USB, а может быть и автономное внешнее устройство (полноценный компьютер с подключенным к нему считывателем, выходом в интернет и управляющим программным обеспечением).

Для второго типа (Android c NFC) реализация понятна. Смартфон в этом случае можно использовать в качестве терминала, запитать пассивное устройство от NFC-антенны и загрузить в него токен банковской карты.

В нашем исследовании я подробно распишу, как мы прорабатывали третий тип смартфонов (iPhone с NFC). В качестве носимых устройств мы использовали брелки от компании ISBC — партнера, с которым мы запускаем пилот.

Плюсы и минусы

Преимущества:

  • сокращение времени на операции оплаты;
  • комфорт;
  • исключение возможности двойного списания;
  • при бережном использовании повышенная защита данных карты;
  • снижение износ пластика из-за отсутствия постоянного трения о терминалы.

Недостатки:

  • беспрепятственная оплата до 1000 при попадании карточки в чужие руки;
  • противоречивое отношение к технологии NFC в части доступа к информации о месте нахождения человека.

Побочный результат исследования


В ходе проведения работ родилась схема потенциального мошенничества, которую нельзя воспроизвести посредством смартфонов Apple, но вполне можно реализовать через Android-смартфон с поддержкой NFC и технологией Host Card Emulation.

Суть вкратце: 

Используя эту схему, можно создать цепочку банковская карта — смартфон — смартфон — платежный терминал, а именно:

  1. Первый смартфон прикладывается к любой банковской карте;
  2. Второй — прикладывается к платежному терминалу;
  3. Второй смартфон эмулирует банковскую карту, пересылая APDU-команды, посылаемые терминалом, первому смартфону;
  4. Первый смартфон транслирует эти команды приложенной банковской карте, передавая ее ответы второму смартфону;
  5. Второй смартфон передает полученные ответы терминалу;
  6. Платеж произведен.

То есть потенциально мошенник может приложить смартфон к вашему карману и оплатить покупку.

Будьте осторожны!

Чтобы не стать жертвой подобной схемы мошенничества, вы можете, например, перенести банковские карты в смартфон и не носить с собой пластик.

Полезные ссылки

Если вас заинтересовала тема, описанная в статье, то ниже — несколько ссылок для более подробного изучения:

  1. Книга И. М. Голдовского «Банковские Микропроцессорные Карты»
  2. Концепция EMV Payment Tokenisation
  3. Статьи с анализом рынка IoT: 

Пользовательское приложение

image

Приложение «Кошелек» работает в операционной системе телефона, которая по определению не является безопасной, и, соответственно, «Кошелек» не несет в себе никаких функций, связанных с безопасностью. Основная роль приложения, кроме демонстрации выпущенных и доступных к выпуску карт, заключается в обеспечении канала связи между Secure Element и TSM, а также предоставлении пользователю интерактивных интерфейсов к приложениям (картам), загруженным в Secure Element.

В большинстве случаев, если приложение «Кошелек» использует встроенный в телефоны Secure Element, то зачастую нет смысла выкладывать его в Google.Play, так как партнерство с производителями телефонов обеспечивает важное преимущество: производитель предустанавливает пользовательское приложение в телефон вместе с прошивкой, его не нужно продвигать, не нужно скачивать или устанавливать — оно уже в телефоне — такое же родное, как «Калькулятор».

Послесловие

Многие процессы (как технологические, так и бизнес), описанные в данном посте, сильно упрощены для облегчения понимания всей картины. Возможно, в некотором смысле данный текст даже больше подойдет журналу «Крестьянка», чем Хабру, однако такого вводного материала не хватало бы для дальнейших публикаций, касающихся платежных карт в телефоне.

Привет, хабр!

Меня зовут Максим. Промышленной разработкой я занимаюсь с 2005 года. В Кошельке работаю с 2022 года, а с 2022 года помогаю бизнесу компании развивать новые финтех-сервисы в качестве руководителя подразделения.

В Кошельке наша команда запустила немало инновационных продуктов. Это и одна из первых в мире полностью виртуальная банковская карта в смартфоне с возможностью бесконтактной оплаты (за год до запуска Apple Pay в России и задолго до запуска Apple Card), и первая транспортная карта, и первая карта болельщика, и первая кампусная карта в смартфоне.

В прошлом году мы совместно с Mastercard запустили сервис Кошелёк Pay — единственный в мире сервис, который, в отличие от аналогов, работает независимо от производителя смартфона или операционной системы. Например, Кошелёк Pay работает на смартфонах Huawei, на которых отсутствуют сервисы Google.

Расчеты в повседневной жизни

Расплачиваться карточкой можно у всех продавцов, принимающих безналичную оплату. Если вы видите значок бесконтактной оплаты, можете выполнить операцию ускоренно:

  • дождитесь момента, когда сумма высветится на терминале оплаты; обычно кассир при этом подает вербальный знак (например, «Пожалуйста», «Прикладывайте» и т.п.);
  • поднесите пластик к терминалу на расстояние в несколько миллиметров;
  • вы услышите звуковой сигнал в подтверждение считывания;
  • при запросе ПИН-кода введите его;
  • получите на руки чек с информацией об удачном/неудачном списании.

Решение

В начале декомпозируем основную задачу, а именно определим шаги, необходимые для превращения совершенно обыкновенного брелка (ну, почти) в полноценное платежное средство:

  1. Установление соединения чипа с NFC модулем iPhone
  2. Установка на чип апплетов Mastercard M/Chip Advance и PPSE
  3. Персонализация апплетов 

Удаленная персонализация и платформа tsm

К счастью, в отличие от пластиковой карточки, телефон является интерактивным устройством, которое всегда на связи (будь то Wi-Fi или сотовая сеть), а значит записывать в него карточки можно, во-первых, удаленно, а во-вторых, только тех поставщиков услуг, которые нужны именно вам. Для осуществления этой функции была сформулирована роль TSM (

) — доверенного посредника, объединяющего, с одной стороны, поставщиков услуг (банки, транспорт и т.д.), а с другой — чипы Secure Element во всех их формах. Именно такую платформу TSM мы разработали в компании i-Free и сертифицировали на соответствие всем необходимым стандартам.

Основные функции TSM:

  1. Агрегация различных поставщиков услуг. Банк или другой поставщик услуг подключается к TSM по стандартному протоколу и получает доступ ко множеству Secure Element, т.е. получает возможность выпускать карты для множества пользователей. При этом ему не нужно договариваться отдельно с каждым сотовым оператором или с каждым производителем телефонов. Эту часть TSM называют SP TSM (Service Provider TSM).
  2. Агрегация различных Secure Element. Владелец Secure Element (сотовый оператор или производитель телефонов) подключается к TSM по стандартному протоколу и получает доступ ко множеству поставщиков услуг, т.е. получает возможность предоставить своим пользователям множество сервисов. При этом ему не нужно договариваться отдельно с каждым сервис-провайдером, не нужно учитывать особенности каждого сервиса, аппаратных и системных возможностей разных Secure Element. Эту часть TSM называют SEI TSM (Secure Element Issuer TSM).

Установка апплетов

Для установки апплетов на чип необходимо защищенное соединение (Secure Channel Protocol или SCP); мы сделали это за кадром с помощью обычного

считывателя и платформы

TSM.

Однако, даже если у вас ничего из этого нет, вы все равно можете попробовать установить свой собственный апплет на чип — только на виртуальный.

Понадобится любая IDE с поддержкой JCOP Shell и эмулятором JavaCard, например, вот эта.

Создаем пустой проект, указываем желаемый AID (например 0000000000) и запускаем.

Дальше разбираемся по шагам:

  1. /card
    Получаем ATR, отправляем SELECT без идентификатора, чтобы был выбран Card Manager;
  2. auth
    Создаем защищенное соединение с эмулятором, иначе ничего установить не получится;
  3. ls (опционально)
    С помощью этой команды можно увидеть, какие приложения установлены на вашем девайсе/эмуляторе;
  4. install [packageAID] [appletAID] [instanceAID]
    Устанавливаем апплет:

    packageAID — идентификатор пакета (Module), например, «0000000000»
    appletAID — идентификатор апплета (Load File), например, «000000000000»
    instanceAID — идентификатор, который будет присвоен вашему апплету после установки, например, «A0000000041010»;

  5. ls
    Проверяем, появился ли ваш апплет в списке установленных приложений:

Установление соединения

Именно здесь речь пойдет о фичах фреймворка

, добавленных в iOS 13.


Кстати, в iOS 14 никаких существенных изменений относительно предмета статьи не случилось, поэтому все описанное актуально и для нее.

Итак, в тринадцатой версии яблочной ОС стало возможным не только считывать данные с NFC меток, как это было в iOS 12 (но не раньше iOS 11, до нее взаимодействие по NFC было возможно только в рамках Apple Pay), но и записывать их, а также общаться  на языке APDU-команд с любым чипом, который соответствует одному из следующих стандартов:

Для этого в

были добавлены два новых класса:

Первый используется для взаимодействия с NDEF метками, а второй — для всего остального, соответственно.

В нашем случае это чип, поддерживающий спецификацию GlobalPlatform Card Specification 2.2.1 и стандарт ISO/IEC 7816, значит, будем использовать второй класс.

В документации написано, что нужно сделать (помимо написания кода, конечно), чтобы начать общение с чипом по ISO 7816:

Но ниже есть вот такое интересное ограничение:

ImportantCore NFC doesn’t support payment-related Application IDs.Как раз его мы и хотим «пощупать», узнав, что конкретно оно означает.

Добавляем строку, например «Allow NFC connection» для ключа NFCReaderUsageDescription в файле info.plist. С любым другим значением этого ключа тоже работает. 

[Здесь в колонке слева не сам ключ, а его описание, XCode прячет формальные названия]

Дальше, если мы хотим взаимодействовать с чипом, как с устройством стандарта ISO/IEC 7816, то в значении ключа com.apple.developer.nfc.readersession.iso7816.select-identifiers укажем список ID всех апплетов (Application Identifier или AID), с которым будет взаимодействовать приложение.

Здесь стоит пояснить, что эти идентификаторы — не просто случайный набор символов.


Это шестнадцатеричные (hex) строки, содержащие информацию о приложении, которому они присвоены.

AID’ы могут быть длиной от 5 до 16 байт (два символа в строке = один байт). Они состоят из двух частей, первая определяет провайдера приложения (для Mastercard это «A000000004»), вторая говорит, какой именно это продукт данного провайдера (для продукта с именем «Mastercard» это «1010», а, например, для Maestro это «3060»).

Кроме того, иногда в AID требуется поместить дополнительную информацию, например, если на чипе находятся два одинаковых приложения от одного провайдера, но для разных банков. Для этого существует поддержка Long AID (или Extended AID). До тех пор, пока длина AID не превышает 16 байт, в него можно записывать все, что угодно. Например, мы взяли Mastercard AID и в конце дописали к нему «TEST», итог: «A0000000041010BB5445535401».

Единственный AID, который выбивается из списка — «325041592E5359532E444446303101». На самом деле это обычная (только в hex-формате), что называется, plain-text строка «2PAY.SYS.DDF01». Это AID PPSE, который платежным апплетом, как таковым, не является. Он лишь содержит данные окружения, необходимые платежным приложениям.

Цель исследования

Можем ли мы дать возможность пользователю

на платформе iOS загрузить свою банковскую карту в носимое устройство, приложив его к iPhone?

То есть:

  1. Пользователь в приложении приложении «Кошелёк» вводит данные своей банковской карты
  2. Пользователь прислоняет к задней стенке iPhone носимое устройство
  3. Банковская карта загружается в носимое устройство


Соответственно, техническая задача — определить, можно ли во внешний элемент безопасности (Secure Element) загрузить банковскую карту, используя обычный iPhone и его

антенну, через протокол

(T=CL). 

Дополнительные задачи:

  1. Получить ATR (Answer To Reset) чипа, не убирая его от считывателя
  2. Получить UID (Unique Identifier) чипа

Эти данные могут быть полезны, так как они часто используются для идентификации чипа в системах поставщиков сервисов и диверсификации ключей от чувствительных данных приложений чипа.

Что имеем:

Выводы


Что же в сухом остатке?

  1. Мы научились работать с чипами стандарта ISO/IEC 7816 (в том числе и получать их UID), используя новые возможности фреймворка Core NFC;
  2. Разобрались с ограничениями, наложенными Apple на свою технологию;
  3. Выяснили, что на данный момент, используя iPhone, персонализировать апплеты с платежными идентификаторами, при этом не реализующие интерфейс Application — невозможно;
  4. Взяли на заметку, что с любыми другими AID все работает на ура — эти знания пригодятся нам в будущем при работе с нефинансовыми сервисами.

Отвечая на вопрос, поставленный в начале, можем ли мы дать пользователю Кошелька возможность загрузить свою банковскую карту в брелок, приложив его к iPhone — нет, пока что это невозможно.

В рамках поставленной задачи мы остановились на использовании внешнего BLE считывателя для загрузки токена банковской карты из iPhone в пассивное носимое устройство.

Надеемся, что в будущем Apple расширит возможности NFC Core для выполнения этой и ряда других задач, связанных с токенизацией и оплатой в сторонних приложениях. Впрочем, недавняя новость сигнализирует, что это вряд ли случится в ближайшем будущем.

Анализ отзывов

Рейтинг пластика с функцией бесконтактной оплаты довольно высокий. Анализируя отзывы за 2 года, мы заметили повышение лояльности пользователей. Все отмечают комфорт и скорость. Регулярно встречаются опасения, что опция небезопасна.

В интернете много статей с теорией, можно ли украсть деньги, как это сделать. Нами не обнаружено ни одной реальной истории о краже денег с пластика в кармане или сумке через радиосигнал.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *