Введение
В данном цикле работ постараемся просто и доступно рассказать о том, что происходит между картой и устройством в момент совершения покупки по POS-терминалу, либо при обслуживании в ATM. Поочередно рассмотрим все шаги обмена между чиповой картой и устройством. То есть, расскажем о том, что принято называть «EMV Transaction flow» (Транзакционный цикл EMV). Первая часть посвящена обзору интерфейсов обмена и базовым принципам работы формата APDU.
Интерфейсы обмена
«Интерфейсом» принято называть тот или иной способ обмена между картой и устройством. В контексте POS или ATM следует перечислить три основные интерфейса:
1. MS/MStripe, или Magnetic Stripe (Магнитная полоса) — наиболее старый интерфейс обмена, постепенно «уходящий в лету». Главным образом по причинам технологического несовершенства и логически вытекающих из него проблем с безопасностью. В силу его бесперспективности (а также простоты) ограничимся лишь сжатым обзором механизмов реализации. В основе «магнитки» лежит набор данных, состоящий из двух или трех объектов (так называемых «трэков»). Они включают в себя номер карты, срок ее действия, фамилию/имя кардхолдера, а также сервис-код и некий набор данных для проверки валидности карты (т.н. CVV, Card Verification Value). Сервис-код, в свою очередь, содержит параметры, контролирующие региональное использование карты (транзакции внутри страны, международные и т.д.), онлайн-запросы к эмитенту, а также допустимые сервисы (POS/ATM) и условия запроса пин-кода. Как уже говорилось, поскольку структура данных достаточно проста, а объем их ограничен, магнитная карта легко копируется мошенниками. Что и является основной причиной отказа от использования данного интерфейса в настоящее время.
2. ICC Contact (Integrated Circuit Card, Contact) — Контактная карта с интегрированными электронными схемами. Она же именуется «смарт-картой», «EMV-картой» или «чиповой картой». Широко известная классическая контактная чиповая карта. В отличие от «магнитки» обладает несравнимо более высокими технологическими возможностями, а также уровнем безопасности (особенно если эмитент следует всем требованиям и рекомендациям ПС). Интересно, что в сравнении с более современным «бесконтактом», классический контактный чип также обладает рядом возможностей, которые сложно реализуемы на «бесконтакте» в силу особенностей последнего. К таким следует отнести возможность удаленной отправки эмитентом на карту управляющий команд (так называемых «Эмитентских скриптов» (Issuer Scripts)), возможность гибкого управления оффлайновым функционалом (различные лимиты, расчеты комиссии и/или скидки) и ряд других.
H2H (Host to Host)
Пожалуй, единственным существенным недостатком контактной чиповой карты является низкая скорость обмена данными с устройствами. Думаем, многие замечали, что время затрачиваемое на расчет за покупку по контактному чипу весьма существенно. Однако это происходит совсем не потому, что POS-терминал «тормозит» или «зависает». Причина вызвана архитектурными особенностями реализации интерфейса обмена (о которых мы и расскажем в данном цикле статей). Кроме того, ряд POS To HOST протоколов предполагает в рамках обмена по контактному чипу наличие дополнительной коммуникационной сессии между устройством и ПЦ - так называемый EMV Final Advice (EFA). Обычно это сообщения с MTI 0220-0230, в которых терминал передает на хост результаты обработки картой ответа от эмитента и ряд других данных, необходимых для формирования клиринговых сообщений. То есть, фактически POS-терминал дважды инициирует соединение: первый раз для обмена с эмитентом и получения от него ответа, второй раз для EFA. Разумеется, данный недостаток прекрасно известен Платежным системам, поэтому в процессе развития «чипа» было разработано несколько способов оптимизации обмена между устройством и картой. Они направлены на уменьшение времени транзакции и заключаются в изменении общей логики ее обработки (сумма, тип криптограммы и пр.) относительно «классической» схемы, описанной в EMV Book. Данные спецификации как правило имеют в названиях соответствующие приставки «Fast» или «Quick». Например, Mastercard M/Chip Fast, Visa Quick Chip или American Express Quick Chip. В нашем регионе данные спецификации и, соответственно, схемы обмена, распространения не получили. Главным образом благодаря относительно высокому общему техническому уровню региональной инфраструктуры, что позволило в весьма сжатые сроки обеспечить поддержку бесконтактных карт, которые не имеют проблем со скоростью обмена.
3. ICC Contactless (Integrated Circuit card, Contactless) — Бесконтактная карта с интегрированными электронными схемами. Не менее широко распространенная в нашем регионе карта, оснащенная встроенной антенной для обмена по бесконтактному интерфейсу. В отличие от контактной EMV-карты, работает на протоколе ISO 14443. Лишена такого недостатка, как скорость обмена, что явным образом подчеркивалось и подчеркивается Платежными системами. Например, известный слоган для Mastercard Contactless — «Just Tap & Go». Характерной особенностью бесконтакта являются существенные отличия при реализации обмена в разрезе той или иной ПС. Иными словами, если обмен по контактной чиповой карте весьма сходен для карт всех ПС (что несомненно положительно влияет при обеспечении поддержки карт той или иной ПС со стороны Участника), то «бесконтакт» варьирован, в ряде случаев, основательно. Например, если бесконтактное ядро Mastercard претерпело не столь значительные изменения, то Contactless Visa обладает рядом фундаментальных, с точки зрения информационного обмена, характерных черт. Из этого следует, что даже при условии того что в конфигурации POS или ATM описаны идентификаторы той или иной карты, совершенно не значит, что устройство будет способно поддерживать их при обмене через бесконтактный интерфейс.
Другой характерной особенностью, логически вытекающей из всего вышесказанного, является некоторое «урезание» технического функционала бесконтактных ядер относительно контактного чипа, продиктованное главным образом соображениями скорости и безопасности. К таковым можно отнести: исключение оффлайновых пин-кодов из списка CVM-методов, исключение хранения имени/фамилии кардхолдера в бесконтактном карточном профиле и ряд других, характерных для каждой конкретной ПС.
Следует сказать, что бесконтакт может быть как «чиповым», так и «магнитным». То есть, обычно бесконтактная карта хранит в себе два профиля, способных работать в режимах эмуляции либо чипа (EMV-Mode), либо магнитной полосы (MSripe-Mode). При этой EMV-Mode является приоритетным способом, а поддержка MStripe-Mode в нашем регионе постепенно исключается из устройств в соответствии с регламентами ПС. Разумеется, «магнитный бесконтакт» в этом случае обладает достаточным уровнем безопасности в сравнении с физической «магниткой», поскольку обладает расширенными возможностями хранения данных и алгоритмов проверки подлинности карты.
APDU
Необходимо в общих чертах коснутся формата APDU, поскольку он является базовым в рамках обмена как по контактному чипу, так и при работе через бесконтактный интерфейс.
APDU (Application Protocol Data Unit) — формат обмена между картой и устройством (POS, ATM и пр.). При этом устройство отправляет APDU-Command (APDU-C), карта отвечает APDU-Responce (APDU-R). Уже из этого понятно, что в процессе всего обмена его инициатором является устройство.
1. APDU-C включает в себя т.н. «Header» (Заголовок) и «Body» (Тело) команды.
Header в общем случае имеет следующую структуру:
- CLA (Class Byte) — класс команды.
- Ins (Instruction Byte) — код инструкции.
- P1 — Первый параметр команды. Если отсутствует, то значение всегда = 0.
- P2 — Второй параметр команды. Если отсутствует, то значение всегда = 0.
Body команды обладает структурой:
- Lc Send — Длина отправляемых данных (т.е., длина поля «Data»).
- Data — Непосредственно, данные команды.
- Le Reciever — Ожидаемая длина ответа в APDU-R.
Например:
00A4040007A000000004101000, где:
- Класс команды: 00
- Код инструкции: A4
- Параметр 1: 04
- Параметр 2: 00
- Длина поля: 07
- Данные: A0000000041010
- Ожидаемая длина ответа: 00
2. Структура APDU-R включает в себя «Body», то есть собственно тело ответа и т.н. «Trailer» («Завершитель») со статусными байтами (или «Словами») SW1 (Status Word-1) и SW2 (Status Word-2). Trailer представляет собой некий эквивалент Кода ответа (RC) и сообщает результат обмена. При этом, если обмен завершился ошибкой, элемент «Body» будет отсутствовать в APDU-C.
Пример:
Select response (Error: File not found)
Response: 6A82
SW1 SW2: 6A82
Со списком SW1/SW2 интересующиеся могут ознакомится, например, здесь.
«Внутри» APDU обмен реализован на базе протокола ISO 7816 (контактный чип), либо ISO 14443 (бесконтакт), как уже говорилось, фактически являющимися конкретной реализацией обмена по картам той или иной ПС. Команды между устройством и картой предполагают обмен данными, структурированными на базе формата TLV (Tag, Length, Value, т.е., Тэг, Длина, Значение).
Например:
8407A0000000041010, где:
- Тэг: 84
- Длина: 07 байт
- Значение: A0000000041010.
Это минимальный информационный базис, на котором основывается понимание обмена между картой и устройством на основных его этапах. Следующая часть обзора EMV Transaction Flow будет посвящена вопросам построения Списка кандидатов и Выбора приложения.