Pull to refresh

Как платить телефоном по карте Visa. Бесконтактные платежи в деталях

Reading time 13 min
Views 277K

Двенадцать ступеней EMV-транзакции

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

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

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

Согласно стандарту EMVCo, типовой цикл проведения EMV-транзакции состоит из 12 этапов:

1. Выбор приложения;

2. Инициализация обработки приложения;

3. Чтение данных приложения;

4. Аутентификация эмитента в режиме офлайн;

5. Обработка ограничений;

6. Аутентификация держателя карты;

7. Проверка параметров управления рисками на стороне терминала;

8. Анализ действий терминала;

9. Проверка параметров управления рисками на стороне карты;

10. Анализ действий карты;

11. Если требуется, то авторизация транзакции в режиме онлайн;

12. Завершение транзакции.

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

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

Quick VSDC или давай сделаем это по-быстрому

«The Visa requirement is for the transaction time not to exceed 500 milliseconds»
Из руководства Visa для разработчиков бесконтактных терминалов

Приведенное в эпиграфе требование задает очень жесткие рамки для обработки бесконтактной транзакции - 500 миллисекунд. Ровно столько времени есть у терминала и карты, чтобы познакомиться, обсудить и принять верное решение.

Чтобы сделать проведение бесконтактной транзакции реальным за такой короткий срок, разработчики предложили убрать из 12 шагов EMV-транзакции максимум лишнего, а необходимые шаги - объединить и сократить. Так появились спецификации qVSDC (quick Visa Smart Debit / Credit).

На рисунке 1 приведены основные фазы обслуживания бесконтактной транзакции.
Рис. 1. Основные фазы обслуживания бесконтактной транзакции
Фаза 1. Подготовка к бесконтактной транзакции.

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

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

Фаза 2.1. Выбор приложения

Клиент подносит бесконтактную карту или телефон с NFC к считывателю. Считыватель запрашивает у карты список приложений, которые поддерживают бесконтактную оплату - PPSE (Proximity Payment Systems Environment). Если приложение найдено, то оно автоматически выбирается для оплаты по идентификатору AID (Application ID). Если приложение не найдено, то транзакция завершается. При этом терминал предлагает использовать другой интерфейс для совершения оплаты.

Фаза 2.2. Инициализация обработки приложения

Терминал передает карте самую Главную Команду - Get Processing Option. На основании анализа записи TTQ, суммы и валюты транзакции данных карта принимает решение о способе аутентификации клиента с учетом правил управления рисками, заданных эмитентом карты.

Для бесконтактной оплаты реализован механизм ускоренной аутентификации fDDA (Fast Dynamic Data Authentication). Перед ответом на команду Get Processing Option карта подписывает с помощью сертификата ключа эмитента случайное число (unpredictable number), а также параметры переданной терминалом транзакции - сумму и код валюты. В отличие от стандартного EMV-процессинга, для сокращения времени вместо отдельного цикла обмена криптограмма транзакции (TC) передается сразу в ответе на команду Get Processing Option.

Фаза 3. Аутентификация держателя карты

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

Без аутентификации. Такое допустимо, например, при использовании сервиса VEPS (Visa Easy Payment Service);

По подписи. Кассир должен запросить у клиента подпись на чеке;

ПИН-код. Терминал предлагает клиенту ввести ПИН-код;

CDCVM (Consumer Device CVM). Специальный способ, придуманный для устройств клиента, таких как телефон. В этом случае клиент вводит отдельный код доступа к платежному приложению. Признак проведения такой аутентификации будет передан в терминал.

Фаза 4. Авторизация транзакции в режиме онлайн.

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

Приложение VisaQIWIWallet. Общая схема взаимодействия

Описанные выше технологии могут быть реализованы не только в микросхеме, имплантированной в кусочек пластика, но и в тех самых Consumer Devices, в частности - в мобильных телефонах.
С момента выхода операционной системы Google Android версии 4.4 разработчики могут обращаться к интерфейсу NFC напрямую. Благодаря этому стало возможно эмулировать работу карты в платежном приложении. Официально технология называется Host Card Emulation (HCE).
Описанные выше технологии могут быть реализованы не только в микросхеме, имплантированной в кусочек пластика, но и в тех самых Consumer Devices, в частности - в мобильных телефонах.
Благодаря сотрудничеству Visa и QIWI теперь мы можем на себе попробовать, как это работает в жизни. Достаточно иметь:

Смартфон с чипом NFC и ОС Android не ниже 4.4;

Установленную программу мобильный кошелек Visa QIWI Wallet.

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

Взаимодействие банка-эмитента со смартфоном построено интереснее, остановимся на нем подробнее.

Пользователь ставит на свой смартфон программу Visa QIWI Wallet. При первом запуске программа привязывается к смартфону с помощью сеансового пароля, отправляемого пользователю по SMS.

Далее пользователь должен создать пароль для доступа к платежному приложению. Этот пароль проверяется онлайн на сервере банка-эмитента, поэтому нужен доступ в сеть Интернет.

Канал между смартфоном и сервером банка-эмитента защищен. В системе используется технология SSL-pinning. Это означает, что SSL-сертификат, используемый на сервере, внедрен непосредственно в приложение Visa QIWI Wallet. Стандартное хранилище сертификатов Android не используется, поэтому риск подмены сертификата существенно снижается. Кроме того данные, передаваемые в приложение, шифруются ключом, загружаемым с сервера.

По защищенному каналу связи между процессинговой системой банка-эмитента и телефоном в приложение загружаются детали банковской карты Visa. Если в телефоне есть чип NFC и режим HCE поддерживается, то дополнительно в приложение загружается ключ, которым будет подписана криптограмма транзакции (TC). Принятый ключ, так же как и детали карты, хранятся в защищенном хранилище в памяти смартфона. В целях безопасности ключ периодически меняется.
Для оплаты товара доступ в Интернет не требуется, приложение Visa QIWI Wallet может даже не быть запущено, надо только разблокировать экран.
Если сумма покупки не превышает 1 тыс. рублей, то срабатывает сервис VEPS и дополнительная аутентификация клиента не требуется.

Если сумма покупки больше порога и экран был разблокирован клиентом, то терминал попросит подписать чек транзакции (аутентификация по подписи). Факт разблокировки подтверждает владение телефоном. Признак CDCVM (Consumer Device CVM) будет передан на терминал.

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

Взаимодействие с терминалом производится согласно описанной выше схеме qVSDC. В отличие от аппаратной реализации на чипе, все вычисления, а также генерация криптограммы TC выполняется программно.

Приложение VisaQIWIWallet. Вопросы безопасности

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

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

Безопасное хранение данных. Сертификаты, ключи и пользовательские данные хранятся в зашифрованном виде в безопасном хранилище.

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

Часть приложения Visa QIWI Wallet, отвечающая за работу HCE, запускается только на телефонах, у которых отсутствует root-доступ.

Защита от подделки приложения, при котором Visa Qiwi Wallet прекращает свою работу, определив ненадежное окружение в виде эмулятора или debug-режима.

Проверка версии приложения, при которой приложение не даст провести платеж, если она не актуальна.

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

Подробнее о применении технологии на практике можно почитать тут.

Visa, Qiwi, NFC. Один день без карт и наличных

Tags:
Hubs:
+22
Comments 30
Comments Comments 30