Под «установлением контакта с картами» в профессиональной среде чаще всего понимают процесс физического и логического взаимодействия считывающего устройства (терминала, POS-терминала, смартфона с NFC) с микропроцессорной платежной картой стандарта EMV (Europay, Mastercard, Visa). Это фундаментальный этап любой безналичной оплаты, от которого зависит скорость, безопасность и успешность транзакции.
В данной статье подробно разбирается алгоритм взаимодействия для контактного и бесконтактного интерфейсов, этапы выбора приложения и ключевые отличия технологий.
Общая архитектура EMV-транзакции
Стандартная EMV-транзакция — это строго регламентированный диалог между терминалом и картой. Процесс можно разделить на несколько высокоуровневых стадий:
- Физическое установление связи (вставка карты в слот или прикладывание к NFC-антенне).
- Активация и сброс (подача питания, тактирования, получение ответа ATR / ATQB).
- Выбор приложения (негоциация протокола и выбор платежного приложения на карте).
- Инициализация приложения (чтение данных, проверка ограничений, риск-менеджмент).
- Верификация держателя карты (CVM) (PIN, подпись, биометрия или отсутствие верификации).
- Авторизация (онлайн-запрос к эмитенту или офлайн-решение карты/терминала).
- Завершение операции (генерация криптограммы, печать чека, извлечение карты).
Важно: Для бесконтактного интерфейса алгоритм значительно укорочен и оптимизирован по времени (цель — менее 500 мс), за счет объединения этапов и использования кэшированных данных.
Контактный интерфейс (ISO 7816): Пошаговый алгоритм
Взаимодействие происходит через 8 контактных площадок на плате карты (VCC, RST, CLK, GND, VPP, I/O, C4, C8).
Активация карты (Cold/Warm Reset)
- Терминал подает питание (VCC) и тактовый сигнал (CLK).
- Передает сигнал сброса (RST).
- Карта отвечает строкой ATR (Answer To Reset) — набор байтов, содержащий:
- Параметры протокола передачи (T=0 или T=1).
- Исторические байты (информация о производителе, типе карты).
- Параметры работы с питанием/тактовым сигналом.
- Терминал анализирует ATR и настраивает свои параметры связи (скорость, протокол T=0/T=1).
Выбор приложения (Application Selection)
Это критический этап, так как на одной карте может находиться несколько приложений (например, Mir, Visa, Mastercard, локальное кошелек-приложение, транспортное приложение).
- Терминал считывает PSE (Payment System Environment) — каталог приложений на карте (файл 1PAY.SYS.DDF01).
- Если PSE отсутствует или пуст, терминал перебирает известные AID (Application Identifier) платежных систем.
- Терминал отправляет команду SELECT AID.
- Карта отвечает FCI (File Control Information), информацией о выбранном приложении (версия, язык, PDOL — Processing Options Data Object List).
Инициализация приложения (GPO — Get Processing Options)
- Терминал отправляет команду GPO с данными терминала (сумма, валюта, дата, случайное число, возможности терминала).
- Карта возвращает AIP (Application Interchange Profile), возможности карты (поддержка SDA/DDA/CDA, CVM) и AFL (Application File Locator) — список файлов и записей для чтения.
Чтение данных и Офлайн-аутентификация (SDA/DDA/CDA)
- Терминал читает записи, указанные в AFL (данные приложения, логи транзакций, публичные ключи).
- Проводится аутентификация карты:
- SDA (Static Data Authentication) — проверка статической подписи ICC (устаревает).
- DDA (Dynamic Data Authentication), карта подписывает случайное число терминала своим приватным ключом (требует вычислительной мощности карты).
- CDA (Combined DDA/Application Cryptogram Generation) — совмещенная схема, наиболее быстрая и безопасная.
Обработка ограничений и CVM
- Проверка срока действия карты, версии приложения, списка исключений (Exception File).
- Определение метода верификации держателя (CVM List): Online PIN, Offline PIN, Signature, No CVM required.
Управление рисками терминалом (Terminal Risk Management)
- Проверка лимитов офлайн-транзакций (Floor Limit).
- Случайный выбор транзакций для онлайн-авторизации (Random Selection).
- Проверка «горячих» карт (Hot Card List / Blacklist).
Действия терминала и карты (Terminal / Card Action Analysis)
- Формирование списка действий: онлайн-запрос, офлайн-одобрение, офлайн-отказ.
- Если онлайн: формирование ARQC (Authorization Request Cryptogram), отправка на хост эмитента.
- Получение ответа (ARPC), верификация MAC, обновление счетчиков карты.
Завершение
Терминал выдает результат (Approved/Declined), печатает чек (фискализация через ОФД), карта деактивируется, держатель извлекает её.
Бесконтактный интерфейс (ISO 14443 / EMV Contactless): Укороченный алгоритм
Бесконтактная оплата (NFC) использует индукционную связь на частоте 13.56 МГц. Главная цель — скорость (Tap & Go).
Физический уровень и Антиколлизия
- Терминал (PCD) генерирует несущую частоту.
- Карта (PICC) попадает в поле, получает питание и тактирование индукционно.
- Процедура Антиколлизии (Anti-collision): терминал выделяет одну карту из нескольких в поле по уникальному UID (PUPI).
- Активация протокола ISO 14443-4 (RATS / ATS — аналог ATR).
Выбор приложения (PPSE / AID)
- Терминал выбирает PPSE (Proximity Payment System Environment), аналог PSE для бесконтакта (обычно AID: 325041592E5359532E4444463031 — «2PAY.SYS.DDF01»).
- Получает список доступных AID с приоритетами.
- Выбирает приоритетное приложение (команда SELECT).
Обмен данными (GPO / Read Records)
- Команда GPO передает данные терминала (включая Kernel Configuration — настройки ядра EMV Contactless).
- Карта возвращает AIP, AFL и, критически важно, Track 2 Equivalent Data (эквивалент магнитной полосы) и динамические данные для криптограммы сразу в ответе на GPO (в TLV-структуре). Это исключает отдельные команды чтения записей (Read Record), экономя время.
Офлайн-аутентификация и CVM
- Проводится CDA (Combined DDA), наиболее частый вариант для бесконтакта.
- CVM для бесконтакта часто упрощен: No CVM required для сумм ниже лимита (в РФ — 3000 руб., в других странах свои лимиты), иначе, Online PIN или Consumer Device CVM (CDCVM) на смартфоне (FaceID/TouchID).
Лимиты и Онлайн-авторизация
- Contactless Transaction Limit (CTL), лимит без PIN.
- Contactless Floor Limit (CFL) — лимит для обязательного онлайна.
- CVML (CVM Required Limit) — лимит, выше которого требуется PIN.
- При превышении лимитов или случайном выборе — онлайн-авторизация с генерацией ARQC.
Завершение (Transaction Complete)
- Терминал посылает команду DESELECT (или просто гасит поле).
- Индикация результата (звук/свет/экран).
- Формирование фискального чека (через ОФД).
Ключевые отличия: Контакт vs Бесконтакт
| Параметр | Контактный (ISO 7816) | Бесконтактный (ISO 14443 / EMVCo) |
|---|---|---|
| Физика | Гальванический контакт (8 площадок) | Индукционная связь 13.56 МГц (NFC) |
| Питание/Тактирование | От терминала по контактам | Индукционное (беспроводное) |
| Скорость обмена | До 400-600 кбит/с (T=1) | 106 / 212 / 424 / 848 кбит/с |
| Выбор приложения | PSE -> SELECT AID | PPSE -> SELECT AID (быстрее за счет кэширования) |
| Чтение данных | GPO -> Read Record (много команд) | GPO (возвращает Track2 + AFL данные сразу) |
| Типичное время | 3-7 секунд | < 500 мс (цель EMVCo) |
| CVM (Верификация) | Offline/Online PIN, Подпись | No CVM (до лимита), Online PIN, CDCVM (моб. устройства) |
| Безопасность данных | Сложнее перехватить (физический доступ) | Риск ретрансляции (Relay Attack), защита: дистанция < 4 см, шифрование, случайные числа |
Особенности мобильных кошельков (Apple Pay / Google Pay / Mir Pay)
Смартфоны с NFC эмулируют бесконтактную карту (режим Card Emulation), но с важными отличиями:
- Токенизация (DPAN): Реальный PAN карты не передается. Используется токен (Device Primary Account Number), выданный Token Service Provider (TSP).
- CDCVM (Consumer Device CVM): Верификация владельца происходит на самом устройстве (биометрия, PIN телефона) до прикладывания к терминалу. Терминал видит в данных, что CVM уже пройден (бит в AIP/TVR).
- Криптограммы: Генерируются в защищенной среде исполнения (SE — Secure Element или TEE — Trusted Execution Environment).
- Выбор карты по умолчанию: В настройках Google Wallet / Apple Wallet пользователь задает карту «по умолчанию». При прикладывании телефона терминал общается именно с этим приложением (если не выбран иное в интерфейсе телефона).
Типичные проблемы при установлении контакта и их решение
Карта не определяется (No Card / Card Error)
- Контактный: Загрязнение контактных площадок (протереть спиртом), износ слота терминала, повреждение чипа карты, несовпадение протоколов (T=0 vs T=1).
- Бесконтактный: Металлические чехлы/аксессуары на телефоне/карте, слишком слабое поле терминала, коллизия с другими картами в кошельке (нужно доставать карту), отключен NFC в телефоне.
Ошибка выбора приложения (Application Not Found / Selection Failed)
- На карте нет приложения, поддерживаемого терминалом (например, терминал поддерживает только Mir, а на карте только Visa/Mastercard — актуально для РФ).
- Поврежден файл PSE/PPSE.
- Несовпадение версий ядра EMV (Kernel Version) терминала и карты.
Отказ в офлайн-аутентификации (SDA/DDA/CDA Failed)
- Истек срок действия сертификатов карты/эмитента.
- Ошибка в списке отзыва сертификатов (CRL) в терминале.
- Подмена карты (Relay Attack), терминал обнаруживает аномалию во времени ответа (Timing Attack protection).
Превышение лимитов бесконтактной оплаты
Если сумма > лимита No CVM (3000 руб. в РФ) или > лимита онлайн-подтверждения, терминал потребует ввод PIN на клавиатуре PIN-pad или CDCVM на телефоне. Если PIN не введен / введен неверно 3 раза — карта блокируется (PIN Try Limit).
Установление контакта с картой — это сложный криптографический протокол, замаскированный под простое действие «приложить» или «вставить». Понимание этапов Select -> GPO -> Read Data -> Auth -> CVM -> Risk Management -> Authorization необходимо для:
- Разработчиков ПО для POS-терминалов и мPOS (SoftPOS).
- Инженеров по сервису терминалов (диагностика ошибок EMV).
- Специалистов по безопасности (анализ уязвимостей Relay Attack, MITM).
- Менеджеров продуктов (понимание лимитов, скорости, UX).
Главное правило: Терминал всегда является ведущим (Master), карта — ведомой (Slave). Терминал управляет потоком команд, но карта принимает критические решения по безопасности (генерация ключей, верификация PIN офлайн, решение об отказе). Надежная работа достигается только при строгом соблюдении спецификаций EMVCo Book A, B, C, D и регулярном обновлении ключей и списков отзыва сертификатов на терминалах.
Приложение: Глоссарий ключевых терминов
- EMV
- Europay, Mastercard, Visa, глобальный стандарт чиповых карт.
- AID (Application Identifier)
- Уникальный идентификатор приложения на карте (например, A0000006581010 — Mir).
- ATR / ATS
- Answer To Reset / Answer To Select — ответ карты на сброс/выбор, содержит параметры протокола.
- PSE / PPSE
- Payment System Environment / Proximity PSE, каталог приложений на карте.
- GPO (Get Processing Options)
- Команда инициализации транзакции, передача параметров терминала в карту.
- AIP / AFL
- Application Interchange Profile (возможности карты) / Application File Locator (карта файлов для чтения).
- SDA / DDA / CDA
- Static / Dynamic / Combined Data Authentication — методы проверки подлинности карты.
- CVM (Cardholder Verification Method)
- Метод верификации держателя (PIN, подпись, биометрия, отсутствие).
- ARQC / ARPC
- Authorization Request / Response Cryptogram, криптограммы запроса и ответа авторизации.
- CDCVM
- Consumer Device CVM — верификация на устройстве пользователя (телефоне).
- DPAN / Token
- Device PAN — токенизированный номер карты для мобильных платежей.
- ОФД
- Оператор фискальных данных — передача чеков в налоговую (ФЗ-54 в РФ).