Как добавить карту Тройка в Apple Pay. Инструкция. – NFC Эксперт – 16.12.2020

Почему нельзя просто подложить карту «тройка» под чехол

На карточке «Тройка» присутствует НФС чип и некоторые хотят обхитрить окружающих — вставляют платежное средство под чехол, но результат не радует. Почему? Тут несколько факторов, которые доказывают малую эффективность работы карты в данном случае. Это:

  1. Передача сигнала у карт «Тройка» незначительна. Работают они на очень близком расстоянии. Чтобы транзакция осуществилась, придется класть карточку к турникету вплотную. Чехлы же не позволяют это сделать. Отсюда и проблемы со считыванием данных. Прежде чем платеж пройдет, человек обратит на себя всеобщее внимание, так как специальный сигнал будет звучать и слышим окружающими.
  2. Внушительный размер карточки. Не под каждый чехол «Тройка» вместится, так как ее размер такой же как кредитка. Нередко края карты остаются снаружи и чехол не удается закрепить на гаджете так как нужно. Некоторые лица ухитряются уменьшать платежное средство, но после такой махинации оно уже не работает полноценно. Практически по всей карте идут «дорожки» НФС-чипа и задев одну из них вы рискуете испортить карту.
  3. Блокировка работы бесконтактных сервисов. Если вы пользуетесь Apple/Android/Samsung Pay, то установка «Тройки» на задней части корпуса смартфона станет причиной постоянных сбоев как при оплате проезда, так и покупок.

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

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

Описание и возможности мобильного приложения

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

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

  • мгновенное пополнение баланса карты «Тройка»;
  • в любое время узнать остаток средств на карте (без подключения к интернету);
  • просмотреть детализацию проведенных платежей и пополнений в архиве операций;
  • количественная статистика остатка поездок для купленного абонемента;
  • приобретение нового абонемента, после исчерпания квоты для действующего абонемента;
  • «привязать» пластиковую карту любого Российского банка для безопасного проведения денежных операций через приложение;
  • проверять по мере необходимости срок действия абонемента, без подключения к сети, в любом месте, в любое время.

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

Nfc «тройка» = «мой проездной»

При решении задач, связанных с разработкой интеграционного слоя между смартфоном и бесконтактной картой, нами использовались стандартные системные библиотеки, лицензированные владельцем технологии – компанией «NXP Semiconductors». Основной проблемой стало собственно определение типа NFC-контроллера.

Изначально предполагалось использовать стандартные функции, позволяющие при старте аппликации определять – поддерживает ли установленный NFC-контроллер взаимодействие с картами стандарта «Mifare Classic» или нет. В итоге пришлось модифицировать уже согласованный дизайн, поскольку выяснилось, что довольно большой процент бюджетных китайских смартфонов, оборудованных NFC-контроллером, всё-таки прекрасно поддерживает взаимодействие с «Тройкой», но при этом системная функция возвращала совершенно иной ответ.

Вообще, читая отзывы на маркете, начинаешь понимать несущественные на первый взгляд упущения. Так, например, многие думают, что бумажные билеты и карта «Тройка» – это одно и то же, и сильно удивляются, почему их карту приложение «Яндекс.Метро» читает, а приложение «Мой проездной» – нет. На самом деле, это совсем не так, «бумажные» билеты реализованы на носителях стандарта «Mifare Ultralight», а карта «Тройка» (на самом деле многоразовый носитель) использует стандарт «Mifare Classic», а это две большие разницы. Мы, кстати, в ближайших релизах поддержим чтение баланса «бумажных» билетов.

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

Например, если чехол вашего смартфона поддерживает бесконтактную зарядку, то вероятность того, что даже при «правильном» NFC-контроллере будут читаться бесконтактные карты, не сильно высока. Дополнительные проблемы – это так называемые дуальные карты (т.е. карты, поддерживающие работу по контакту и бесконтакту), данные карты не только требовательны к питанию, но и зачастую требуют реализации для них отдельных алгоритмов взаимодействия.

Гдеработает

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

Страна Город
Китай Пекин, Шанхай, Гуанчжоу,
Ханчжоу
Япония Везде, где поддерживаются
карты Suica
Австралия Сидней
Великобритания Лондон
Канада Ванкувер
США Нью-Йорк, Портленд,
Чикаго
Сингапур Сингапур
Белоруссия Минск
Россия Москва, Санкт-Петербург,
Новосибирск, Екатеринбург

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

Как записать билеты на карту «тройка»

Проездные абонементы записываются через представителей перевозчика.

Фото 6Пункты их записи зависят от конкретного билета:

  • Билет Единый: кассы метро, киоски Мосгортранса;
  • 90 минут – кассы метро, Мосгортранса;
  • ТАТ – киоски Мосгортранса.

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

В ином варианте можно использовать терминал Элекснет.

Инструкция записи билета в этом случае будет выглядеть так:

  • Нужно приложить пластик к считывающему устройству (оно представляет собой желтый круг).
  • На дисплее отобразится информация о существующих билетах. Нужно выбрать подходящий и оплатить его через купюроприемник.
  • Срок записи билета составляет 10-15 секунд, комиссии нет.

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

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

Как заплатить запроезд

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

  1. Найти приложение «Wallet» и
    открыть его.
  2. Тапнуть по знаку плюс,
    находящемуся в правом верхнем углу.
  3. Далее выбрать способ добавления
    карты: вручную или с использованием камеры.
  4. Указать фамилию и имя владельца.
  5. В следующем окне ввести дату
    окончания действия карты и код безопасности CVV2 или CVC2.
  6. В конце согласиться с условиями
    эксплуатации услуги.
  7. Далее нужно ввести проверочный
    код, который будет прислан в SMS.

Если необходимо добавить карту в Apple Watch или iPad, то:

  • в настройках смартфона выбрать
    пункт «Wallet и Apple Pay»;
  • затем нажать на строку «Добавить
    карту»;
  • далее выполнить те же действия,
    что и в случае с iPhon.

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

В России система работает в крупных городах.Впервые она была внедрена в столице — Москве.

Как привязать карту к телефону

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

Также следует приобрести специальную сим-карту поддерживающую технологию NFC. Симку можно заказать онлайн на официальном ресурсе мобильного оператора или в официальных сервисах продаж.

Прикрепить сервис «Тройка» к мобильному гаджету со встроенным чипом NFC легче всего через специальные сервисы «Мой проездной» или «Моя Тройка». Данные приложения позволят клиентам полноценно использовать весь встроенный функционал карты.

Чтоб подключить Тройку к телефону следует совершить несколько простых действий:

  1. Вставить новую симку в телефон.
  2. Открыть соответствующий магазин приложений (Google Play, App Store), вписать в поиск оригинальное название «Моя Тройка» или «Мой проездной». Перейти на официальную страницу, нажать «Установить». Как добавить карту Тройка в Apple Pay. Инструкция.
  3. Добавить приложение на панель быстрого доступа, в один клик открывать и получать оперативно всю информацию о сервисе: просматривать баланс, историю пополнений и расходов.

При возникновении трудностей в использовании сервиса, ознакомьтесь с более детальной информацией на официальном портале «Московский транспорт».

Как проверить баланс счета

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

  1. Желтый терминал. Как добавить карту Тройка в Apple Pay. Инструкция.Практически на всех станциях московского метрополитена есть специальные желтые терминалы, которые крепятся ближе к кассам. Пластиковый носитель просто прикладывается к сканеру терминала и через определенное время на экран выводится подробные сведения с карты.
  2. Официальные приложения от разработчиков: «Тройка Проверка баланса», «Транспортные карты Москвы», «Мой проездной». Как добавить карту Тройка в Apple Pay. Инструкция.Все владельцы мобильных гаджетов Android, iOS со встроенной функцией NFC, смогут быстро произвести проверку баланса через установленное приложение. Для этого нужно приложить карту к задней панели смартфона, после чего на экран телефона выводятся все необходимые сведения с карты.
  3. Опция «Мобильный билет». Как добавить карту Тройка в Apple Pay. Инструкция.Многие современные гаджеты поддерживают универсальную функцию «Мобильный билет», подключить которую легко в любом официальном салоне связи оператора. Проверка баланса производится через главное меню, в разделе «Баланс».
  4. SMS-сообщение. Мобильные операторы МТС, Билайн и Мегафон ввели для своих абонентов специальный короткий номер для проверки баланса и оставшегося количества поездок по действующему абонементу. На номер 3210 посылается СМС со словом – баланс – после чего абонент получает интересующие сведения в ответном SMS-сообщении. Как добавить карту Тройка в Apple Pay. Инструкция.

К сожалению, пока карта «Тройка» не имеет личного пользовательского кабинета, но официальный представитель обещает клиентам разработать его к 2020 году. Прогресс не стоит на месте, в скором будущем использовать Тройку будет еще проще и комфортней.

Как работает карта?

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

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

Существует несколько тарифов по карте, определяющихся потребностями пассажира:

  • «Единый» – оплата одной поездки в транспорте.
  • «90 минут» – оплата одной поездки в метро и 90 минут поездок на общественном транспорте.
  • ТАТ – возможность применять любой наземный транспорт.

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

Нужно учесть еще один момент. Территория города Москвы и области разделяется на две зоны. Применять карточку можно лишь в пределах одной зоны. Он зоны могут зависеть и тарифные планы. Для переезда между зонами нужно будет купить билет «Единый».

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

Посредством «Тройки» можно оплатить проезд лишь одному человеку. Повторное использование пластика возможно спустя 5-10 минут. Исключением является метрополитен – там можно оплатить поездки нескольких человек сразу.

Какие устройства поддерживают карту «тройка»

https://www.youtube.com/watch?v=EnjW6MHVgso

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

  1. Начиная с модельного ряда Айфон 6, мобильные устройства оснащаются подобными чипами.
  2. Что касается мобильных гаджетов, созданных на базе Андроид, они должны иметь операционную систему не менее 4.0.

Для проведения бесконтактных платежей при помощи считывания NFC-меток, пользователь должен обладать root-правами на смартфоне.

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

Карта «тройка» как идентификатор

Карта «Тройка» — пополняемая карта для оплаты проезда на всех видах общественного транспорта Москвы. Это наиболее выгодный и удобный способ оплаты общественного транспорта и некоторых городских услуг: планетарий, каток, зоопарки, Третьяковская галерея, парковка.

Технически карта выполнена на базе чипа Mifare Plus, работающего в режиме SL1 — режим эмуляции Mifare Classic 1K. На обратной стороне карты находится 10-значный номер, который используется для удаленного пополнения баланса карты. Этот номер удобно использовать в качестве идентификатора в СКУД.

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

Номер карты «Тройка» (не путать c UID чипа) хранится в защищенной памяти в блоке 32 со второго байта по младшие четыре бита седьмого байта. Для чтения этой области памяти необходим А-ключ от сектора 8. Эти ключи давно не являются секретом и легко находятся в интернете вместе с подробным описанием формата хранения данных.

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

Вопросы безопасности такого подхода рассматриваются в FAQ в конце статьи. Примеры кода для чтения номера карты Тройка с помощью Arduino есть в главе «Первый прототип».

В Санкт-Петербурге существует похожая карта «Подорожник». При необходимости её можно также использовать в качестве идентификатора, одновременно с картой «Тройка».

Карту «тройка» можно будет добавить в apple pay |

Возможности Apple Pay не ограничиваются только бесконтактной оплатой покупок и денежными переводами через Apple Pay Cash. Благодаря приложению Wallet, в паре с которым работает платежный сервис, пользователи из США и некоторых других стран могут использовать цифровые версии проездных на метро, входные билеты на различные мероприятия и многое другое. К сожалению, в России такой возможности не было, но в скором времени все изменится.

Читайте также: Apple представила новые функции для Apple Pay

По словам старшего вице-президента банка ВТБ Дмитрия Снесаря, уже до конца года в России заработает цифровая версия транспортной карты «Тройка». Ее можно будет активировать в Apple Pay и оплачивать ей проезд на общественном транспорте Москвы при помощи смартфона. Для этого будет достаточно добавить «Тройку» в приложение Wallet и, подтвердив свою личность отпечатком пальца или изображением своего лица, приложить смартфон к считывателю на турникете.

Цифровая версия «Тройки» официально заработает уже до конца года. Правда, по понятным причинам, работать такое решение будет только в Москве. Зато, отмечает Снесарь, авторы инициативы не планируют ограничивать возможность оплачивать проезд в метро бесконтактным способом только пользователями смартфонов Apple. Наряду с Apple Pay поддержку цифровой «Тройки» получат Samsung Pay и Google Pay. Таким образом они смогут не носить карту с собой, а платить за проезд так же, как в магазине.

Читайте также: iOS 13 сделает NFC-модуль в ваших iPhone еще полезнее

Возможно, ВТБ ждет релиза iOS 13, чтобы позволить пользователям iPhone самостоятельно оцифровывать «Тройку». Во всяком случае, известно, что с выходом обновления Apple планирует добавить в ОС дополнительные возможности для встроенного модуля ближнего поля. Одной из них будет возможность оцифровки документов с RFID-чипами. Для этого будет достаточно отсканировать карту при помощи NFC, сохранить ее в память Wallet и начать оплачивать проезд быстро и технологично.

Подписывайся на наш канал в Яндекс.Дзен. Там ежедневно выходят материалы, которых нет на сайте.

Контроллер борей

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

Часто контроллеры СКУД состоят из нескольких блоков управления и компьютера с базой данных. Мы принципиально не хотели держать отдельный компьютер и искали компактное решение в виде одного устройства, которым можно управлять через API для интеграции с Telegram-ботом.

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

Так мы нашли контроллер БОРЕЙ от компании ИТРИУМ.

Плата контроллера БОРЕЙ в настенном корпусе

https://www.youtube.com/watch?v=6a0WrxghwLw

Устройство работает под управлением Linux на базе ARM-процессора.

Основные достоинства устройства, которые редко можно встретить у других контроллеров:

  • Полностью автономный — все функции выполняет одно устройство. Для управления не нужно дополнительных программ или отдельного компьютера. База данных хранится на SD-карте. При отключении интернета контроллер продолжит работать.
  • Web интерфейс и REST API — возможность управлять контроллером через браузер и интегрировать с Telegram-ботом через API. Позволяет управлять пропусками удаленно.
  • Подключение по Ethernet — устройство подключается в IP-сеть. Имеет встроенный коммутатор на 2 порта.
  • Идентификаторы произвольной длины до 64 бит — возможность интегрировать контроллер с нестандартными идентификаторами разной длины. Позволяет иметь гибридную систему с идентификаторами разной длины.

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

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

Если доступ запрещен, контроллер посылает сигнал индикации на считыватель, и тот горит красным цветом и пищит о том, что доступ не разрешен.

Контроллер подключается в сеть c помощью Ethernet-кабеля. Начальная настройка требует только задать IP-адрес устройства. Никакого программного обеспечения, помимо браузера, не требуется.

Учетные записи заводятся в меню «Бюро пропусков». Чтобы не вводить идентификатор карты вручную, его можно поднести к считывателю в момент создания учетной записи.

Создание нового пропуска в веб-интерфейсе контроллера БОРЕЙ

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

Москва

Воспользоваться Apple Pay можно в кассах, автоматах по продаже билетов и на турникете. Взависимости от гаджета действия будут немного отличаться. Для iPhone c Touch ID выполнить следующий алгоритм действий:

  1. Нажать 2 раза быстро кнопку «Home» на
    смартфоне. С телефона будет снята блокировка.
  2. Приложить девайс к терминалу в
    кассе или к зоне оплаты на турникете, автомате продажи билетов.
  3. Должно появиться сообщение о
    наличии связи между устройствами.
  4. После установления соединения,
    прикоснуться к Touch ID пальцем, и удерживать его до появления
    графического изображения в виде галочки. Появление данной иконки означает
    благополучное списание средств с карты.
  5. Если оплата была произведена через
    турникет, то будет издан звуковой сигнал с одновременным появлением надписи
    «Проход разрешен». Если были приобретены билеты в кассе или в автомате, то
    появится сообщение об успешной оплате.

При операциях со смартфоном с функцией Face ID действия немного отличаются:

  1. Нажать 2 раза на боковую кнопку.
  2. Удерживая смартфон горизонтально
    или вертикально, посмотреть на экран.
  3. Анимированная иконка в виде замка
    должна поменяться. При удачной аутентификации замок откроется.
  4. Провести свайп по экрану смартфона
    снизу вверх для его разблокировки.
  5. Поднести телефон к считывающему
    устройству для проведения платежа.
  6. Дождаться галочки, звукового
    сигнала или сообщения об удачном завершении операции.

Телефон нужно держать на расстоянии не более 5 см от терминала. Можно аккуратно положить гаджет на устройство считывания. Турникеты для Apple Pay имеют квадратную форму.

Оплата с помощью Apple Watch производится аналогично. Нажимается 2 раза кнопка сбоку часов, идисплей приближается к терминалу оплаты. Об успешности проведенной транзакциисообщит звуковой сигнал.

Популярную в Москве карту «Тройка» нельзяпривязать к Wallet. Приложение добавляет только карточки Visa и MasterCard, также на «Тройке» отсутствует защитный код, и не указан срок действиякарты.

На март 2020 года стоимость проезда при оплатечерез Apple Pay в зоне «Центральная» составляет 44 рубля, в зонах «Центральная» и«Пригород» — 51 рубль. Кроме столицы система доступна и во втором городе России— Санкт-Петербурге.

Обработка pdol (processing options data object list)

В ответ на запуск платежного приложения карта может затребовать от считывателя PDOL (Processing Options Data Object List). Это набор параметров POS-терминала — поддерживаемые протоколы и стандарты, валюта, в которой будет производиться расчет, дата, случайное число для криптографии, и так далее.

https://www.youtube.com/watch?v=PWmWZVtZB8M

Список PDOL может различаться у разных карт. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь: eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.Сложность состоит в том, что список PDOL у разных карт, даже выпущенных одним банком в разное время, может существенно различаться. Некоторые карты запрашивают два-три параметра, другие — десяток.

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

Ответ карты на старт платежного приложения. Содержит запрос PDOL.

'6F 31 84 07 A0 00 00 00 03 10 10 A5 26 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 BF 0C 08 9F 5A 05 60 08 40 06 43 90 00'

Пропустим этот ответ через

Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.

Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:

Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.

Разберем запрос PDOL подробнее

9F 38 18 // Маркер начала PDOL. Длина 18 (24 байта) 
 9F 66 (длина 04) // Terminal Transaction Qualifiers (TTQ). Параметры платежного терминала 
  9F 02 (длина 06) // Сумма списания
   9F 03 (длина 06) // вторая сумма
   9F 1A (длина 02) // Код странцы в формате ISO3166-1
   95 (длина 05) // Terminal Verification Results
    5F 2A (длина 02) // Код валюты, в которой работает терминал, в формате ISO4217
     9A (длина 03) // Дата в формате YYMMDD
      9C (длина 01) // Тип транзакции 
       9F 37 (длина 04) // Случайное число для криптографии

Подробное описание всех возможных параметров PDOL можно найти в

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

Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.

Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:

'F0 00 00 00'

Подробнее про формат TTQ

Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.

Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:

'80A80000238321F0000000000000000000000000000000000000000000000000000000000000000000'
 80 A8 00 00 // Команда GET PROCESSING OPTIONS (GPO)
  23 // длина всего запроса (35 байт)
   83 // маркер PDOL-ответ
    21 // длина PDOL-ответа (33 байта)
     F0 00 00 00 // Terminal Transaction Qualifiers (TTQ)
      00 00 00 00 00 00 // Сумма списания
       00 00 00 00 00 00 // Вторая сумма
        00 00 // Код страны считывателя
         00 00 00 00 00 // Terminal Verification Results (TVR)
          00 00 // Валюта
           00 00 00 // дата 
            00 // тип транзакции
             00 00 00 00 // Случайное число 

Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера

77

с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)

Окей, продолжаем: как активировать работу nfc в iphone

Шаг 1. Открываем приложение «Команды».

Шаг 2. Переходим в раздел программы «Автоматизация».

Шаг 3. Выбираем возможность «Создать автоматизацию для себя».

Шаг 4. Смахиваем до меню «Настройки» и жмем на вариант NFC.

Шаг 5. Жмем на кнопку «Сканировать» в пункте «Тег NFC».

Шаг 6. Когда на экране появится соответствующая анимация с подписью «Готово к сканированию», подносим к задней части iPhone то, что станет NFC-меткой: банковская карта с поддержкой NFC, «Тройка» или что угодно, о чем я уже писал выше.

Шаг 7. Когда на экране появится всплывающее окно с предложением «Назовите этот тег», введите любое имя на свой вкус — например, «Тройка», если используете эту карту.

Шаг 8. Нажмите на кнопку «Далее», чтобы перейти в меню добавления действия.

Шаг 9. Нажмите на кнопку «Добавить действие», чтобы выбрать необходимую задачу, — после этого можете использовать кнопку ㊉, чтобы добавить одну или несколько дополнительных.

Шаг 10. Нажмите на кнопку «Далее», чтобы перейти в меню финальной настройки.

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

Шаг 12. Нажмите на кнопку «Готово», чтобы подтвердить создание автоматизации.

Поиск pan-номера

Так как нам лень писать полную имплементацию протокола EMV, разбирать все структуры ответов и формировать корректные запросы, мы поступим глупым способом, а именно пошлем все возможные запросы и будем просто искать в ответах нужный маркер, содержащий PAN-номер.

PAN-номер может содержаться в трех местах:


APDU-команды (что они значат вообще? Хз, нужно прочитать)

'00 b2 01 1c 00'
'00 b2 01 0c 00'
'00 b2 02 0c 00'
'00 b2 01 14 00'
'00 b2 02 14 00'
'00 b2 04 14 00'

И парсим все ответы на предмет маркеров

57 13

либо

5A 08

. Найденные 8 байт карты можно дополнительно чекнуть на контрольную сумму с помощью

Если номер валидный, берем его последние десять цифр.

В итоге наш примитивный алгоритм чтения PAN-номера можно изобразить в виде блок-схемы

Привязка транспортной карты к эппл пэй

Жители столиц, которые часто пользуются общественным транспортом, обычно используют для оплаты проезда карту «Тройка». Это платежное средство давно стало привычным и удобным. Поэтому часто возникает вопрос, как добавить карту «Тройка» в Apple Pay, чтобы продолжать пользоваться ею через смартфон.

Увы, внести транспортную карту в память гаджета возможности нет. Сервис Apple Pay рассчитан на работу исключительно с банковскими картами систем Visa и MasterCard. А Тройка не является банковской картой и, соответственно, не удовлетворяет необходимым условиям привязки к платежному сервису:

  • карта не относится ни к одной платежной системе;
  • номер «Тройки» не совпадает со стандартами нумерации банковских карт (11 символов вместо 12-ти);
  • у «Тройки» нет кода безопасности;
  • карта не имеет фиксированного срока годности (она действует в течение 5 лет после последнего применения).

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

Старт платежного приложения — select aid

В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.

Ответ карты VISA на 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

. Тот же ответ карты VISA, обработанный парсером:

Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.

AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам. Поэтому для простоты поиска AID в ответе, мы будем искать маркер 4F 07 и считать 7 байт после него как AID.

Такой подход очень примитивный и может не работать в случаях, если длина AID будет другой, но для нашей задачи это не важно, так мы скорее всего никогда не столкнемся с картами, отличными от Visa и MasterCard. Поэтому наш самодельный парсер PPSE-ответа можно упростить до такой логики: если ответ начинается с 6F, заканчивается на 90 00 и содержит внутри последовательность 4F 07, ответ считается корректным.

Полный список 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)


Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT

APDU-команда 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

Читаем emv-карты на коленке

Читать EMV-карты можно любым NFC-ридером, поддерживающим передачу произвольных APDU-команд. Для этого не требуются промышленные сертифицированные ридеры, подойдет любой модуль для Arduino за $3

Чтобы изготовить прототип считывателя, мне потребовалось бегло изучить протокол EMV. Под спойлером — краткий разбор протокола EMV с примерами чтения на Arduino и компьютере.

Читаем банковские карты на коленке с примерами. (Много текста)

Для чтения EMV карт подойдут такие устройства:

Описанный ниже процесс не является корректной реализацией протокола EMV. Приведенные команды APDU содержат ошибки и нарушают рекомендации EMVco, из-за чего могут не работать с некоторыми картами.

Для изучения протокола EMV рекомендуется читать официальную документацию, которую я, к своему стыду, почти не читал.

Приведенные APDU-команды будут одинаковыми не зависимо от выбранного оборудования. Однако в случае с PC/SC ридером не нужно заботиться о низкоуровневых командах, настраивать модуляцию и т.д.

Я буду использовать программу SmartCard Scripter, в связке с PC/SC-ридером HiD Omnikey. Программа SmartCard Scripter имеет наиболее компактный pascal-подобный синтаксис из всего что я видел. Краткое описание синтаксиса infintuary.org/scs_tut.php

Для того чтобы послать произвольную APDU команду на карту, достаточно такого когда:

// Программа для чтения UID карты
begin
  APDU('FF CA 00 00 00');
end.

Начало коммуникации — команда select (ppse)

Официальное описание: EMV Contactless Specifications — PPSE and Application Management for Secure Element

Начало общения с EMV-картой всегда происходит с чтения файла PPSE (Payment System Environment) командой SELECT.

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 aid

В ответ на SELECT PPSE карта должна вернуть FCI (File Control Information) со списком приложений, существующих на карте. Помимо платежных приложений (VISA, MasterCard, AmericanExpress) карта может содержать неплатежные приложения, используемые для других нужд.

Ответ карты VISA на 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

emvlab.org/tlvutils/

. Тот же ответ карты VISA, обработанный парсером:

Как добавить карту Тройка в Apple Pay. Инструкция. - NFC Эксперт - 16.12.2020

Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.

AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам. Поэтому для простоты поиска AID в ответе, мы будем искать маркер 4F 07 и считать 7 байт после него как AID. Такой подход очень примитивный и может не работать в случаях, если длина AID будет другой, но для нашей задачи это не важно, так мы скорее всего никогда не столкнемся с картами, отличными от Visa и MasterCard. Поэтому наш самодельный парсер PPSE-ответа можно упростить до такой логики: если ответ начинается с 6F, заканчивается на 90 00 и содержит внутри последовательность 4F 07, ответ считается корректным.

Полный список 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)

Получив значение AID, его нужно запустить командой SELECT. В данном случае мы запускаем приложение Visa International, полученное из ответа на PPSE SELECT

APDU-команда 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

Обработка pdol (processing options data object list)

В ответ на запуск платежного приложения карта может затребовать от считывателя PDOL (Processing Options Data Object List). Это набор параметров POS-терминала — поддерживаемые протоколы и стандарты, валюта, в которой будет производиться расчет, дата, случайное число для криптографии, и так далее.

Список PDOL может различаться у разных карт. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь: eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags.
Сложность состоит в том, что список PDOL у разных карт, даже выпущенных одним банком в разное время, может существенно различаться. Некоторые карты запрашивают два-три параметра, другие — десяток.

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

Ответ карты на старт платежного приложения. Содержит запрос PDOL.

'6F 31 84 07 A0 00 00 00 03 10 10 A5 26 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 9C 01 9F 37 04 BF 0C 08 9F 5A 05 60 08 40 06 43 90 00'

Пропустим этот ответ через

парсер

:

Как добавить карту Тройка в Apple Pay. Инструкция. - NFC Эксперт - 16.12.2020

Видно, что значение PDOL начинается с маркера 9F38 и равно 9F66049F02069F03069F1A0295055F2A029A039C019F3704. Парсер emvlab.org не умеет парсить значения PDOL, поэтому воспользуемся программой для Android-смартфонов Credit Card Reader.

Вот тот же ответ, обработанный более умным парсером. Видно каждый параметр PDOL:

Как добавить карту Тройка в Apple Pay. Инструкция. - NFC Эксперт - 16.12.2020

Данный парсер не скрывает байт длины после маркера, как это делает emvlab.org. Поэтому последний байт каждого маркера следует читать как длину.

Разберем запрос PDOL подробнее

9F 38 18 // Маркер начала PDOL. Длина 18 (24 байта) 
 9F 66 (длина 04) // Terminal Transaction Qualifiers (TTQ). Параметры платежного терминала 
  9F 02 (длина 06) // Сумма списания
   9F 03 (длина 06) // вторая сумма
   9F 1A (длина 02) // Код странцы в формате ISO3166-1
   95 (длина 05) // Terminal Verification Results
    5F 2A (длина 02) // Код валюты, в которой работает терминал, в формате ISO4217
     9A (длина 03) // Дата в формате YYMMDD
      9C (длина 01) // Тип транзакции 
       9F 37 (длина 04) // Случайное число для криптографии

Подробное описание всех возможных параметров PDOL можно найти в

EMV Contactless Specifications Book C-1/2/3 Kernel 1/2/3 Specification.

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

Так как мы не собираемся списывать с карты деньги, наша задача — сформировать самый простой из возможных ответ PDOL, который удовлетворит карту. Если наш ответ не понравится карте, она ответит кодом 6985 Conditions of use not satisfied.

Экспериментальным путем я выяснил, что почти на все запросы PDOL можно ответить нолями, кроме Terminal Transaction Qualifiers (TTQ). В случае с VISA, нам нужно убедить карту в том, что терминал соответствует спецификации VCPS 2.1.1. Для этого ответ на TTQ должен выглядеть так:

'F0 00 00 00'

Подробнее про формат TTQ

здесь

.

Карты MasterCard, которые мне довелось испытать, позволяли игнорировать PDOL и отдавали PAN-номер без корректного ответа на PDOL.

Вот как будет выглядеть минимальный рабочий ответ на запрошенный выше PDOL:

'80A80000238321F0000000000000000000000000000000000000000000000000000000000000000000'
 80 A8 00 00 // Команда GET PROCESSING OPTIONS (GPO)
  23 // длина всего запроса (35 байт)
   83 // маркер PDOL-ответ
    21 // длина PDOL-ответа (33 байта)
     F0 00 00 00 // Terminal Transaction Qualifiers (TTQ)
      00 00 00 00 00 00 // Сумма списания
       00 00 00 00 00 00 // Вторая сумма
        00 00 // Код страны считывателя
         00 00 00 00 00 // Terminal Verification Results (TVR)
          00 00 // Валюта
           00 00 00 // дата 
            00 // тип транзакции
             00 00 00 00 // Случайное число 

Если наш ответ удовлетворил карту, мы получим сообщение, начинающееся с маркера

77

с кодом SW2=9000. Этот ответ может содержать нужный нам PAN-номер, а может и не содержать. (офигеть)

Поиск pan-номера

Так как нам лень писать полную имплементацию протокола EMV, разбирать все структуры ответов и формировать корректные запросы, мы поступим глупым способом, а именно пошлем все возможные запросы и будем просто искать в ответах нужный маркер, содержащий PAN-номер.

PAN-номер может содержаться в трех местах:

APDU-команды (что они значат вообще? Хз, нужно прочитать)

'00 b2 01 1c 00'
'00 b2 01 0c 00'
'00 b2 02 0c 00'
'00 b2 01 14 00'
'00 b2 02 14 00'
'00 b2 04 14 00'

И парсим все ответы на предмет маркеров

57 13

либо

5A 08

. Найденные 8 байт карты можно дополнительно чекнуть на контрольную сумму с помощью

Алгоритма Луна

.

Если номер валидный, берем его последние десять цифр.

В итоге наш примитивный алгоритм чтения PAN-номера можно изобразить в виде блок-схемы

Как добавить карту Тройка в Apple Pay. Инструкция. - NFC Эксперт - 16.12.2020

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

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