Блог компании VISA

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

Двенадцать ступеней 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. Один день без карт и наличных

Комментарии 30
    +7
    стандартный комментарий про дискриминацию владельцев root устройств
      +2
      Стойте, т.е. на CM (или любой не офф. прошивке) работать не будет?
      Тогда пичалька :( На моем текущем аппарате ничего официального выше 4.3 не ожидается в принципе.
      Больше никогда не буду покупать Самсунги и HTC.
        +2
        Вопрос не офф или не офф, вопрос наличия Рут. А для меня устройство без Рут бесполезно. Ну и всякие хуавей с официальной СМ сразу в пролёте.
        А выбор производителя для меня выбор железа, на которое я выберу прошивку, пока 100% см везде. Только у жены на зенфоне 2 (ml551) официал.
        +2
        про Карту Билайн с ее NFC-платежами тоже так писали.
        просто этот пункт надо читать как «если мы сможем определить что у вас root». а это проблема лечится RootCloak или в тяжелых совсем случаях — RootCloak+(правда другая проблема в том что RootCloak+ не установить на Android 5.x)

        с другой стороны например «Кошелек» от Cards Mobile при виде root просто говорит что мы не можем отвечать за безопасность, бла-бла но вполне себе работает
          0
          Проверил, карту получить нельзя из за рут. А привязать мастеркарда у меня нет.
          –1
          Ждём взломанного Visa QIWI Wallet… Вообще надо поковырять — как оно на наличие root-а проверяет? Скорее всего с помощью xposed framework можно будет обойти это дело, даже не модифицируя оригинальное приложение.
            +1
            и правильно будет, нефиг так блокировать. Все равно ни один разумный человек не будет на киви держать деньги. Так что с рутом они только отрицательный пиар делают
            0
            Xposed + RootCloak в помощь.
              +1
              Сами по себе root-привеллегии предоставляют доступ к данным, изначально
              не доступным пользователю и сторонним приложениям. Вредоносное
              приложение на root-телефоне может добраться например до переписки
              в gmail или whatsapp, и переслать их
              атакующему, просто потому-что они лежат там в чистом виде и не считаются
              sensitive-данными.

              Особеность бесконтактных платежей — простота обращения с «платежным
              модулем»(карта, телефон), нужно просто прислонить его к терминалу. В
              приложении поведение отличается: нужно разблокировать телефон прежде чем
              провести платеж, это сделано для того, чтобы избежать неправомерного
              снятия средств. Минимальный вектор атаки в таком случае — на рутованном
              телефоне зловред программным методом разблокирует экран и сведет защиту
              бесконтактных платежей к нулю. Злоумышленник прислонит терминал к
              телефону и проведет платеж. Для тех у кого нет под рукой платежного
              терминала, были исследования перехвату NFC сигнала используя т.н. NFC-proxy.
              Т.е. опасности в контексте HCE — это неправомерная активация модуля NFC,
              который эмулирует уникальные данные карты.

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

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

              P.S. личное, не официальное:
              Более
              прошаренный пользователь может отключить запрет по инструкциям, которые
              появились в сети уже через пару недель после официального релиза
              приложения. Защититься от этого практически невозможно.
                0
                прошаренный пользователь может отключить запрет по инструкциям, которые
                появились в сети уже через пару недель после официального релиза
                приложения. Защититься от этого практически невозможно.

                Мне проще не пользоваться.
                А для пользователя достаточно огромными красными буквами показывать, что данные не защищены. Ну и строчка в eula как все любят, что сами виноваты мы 100% предупредили
                  0
                  Там есть еще нюанс с compliance. Есть моменты, когда регулятор напрямую пишет «так нельзя» и все, особо в стороны не уйдешь.
                  А EULA, увы, никто не читает :(
                    0
                    вот, теперь понятно, что такой запрет по сути идет еще на уровень выше.
              +1
              А когда ограничение на количество городов снимете? Я допустим не прочь бы у себя в KFC, макдаке, Ленте платить — но три города, это как-то уныло.
                0
                Никакого ограничения на количество городов нет (а как выразилась ошибка?). Телефоном можно оплатить во всех магазинах и кафе, где есть терминал со знаком бесконтактной оплаты. Им точно можно оплатить в любом KFC и макдаке – попробуйте :)
                +1
                Почему в ролике платеж на 30р требует ввода PIN на смартфоне (CDCVM), а потом платеж в 200р не требует?

                Чем ваше решение технически и функционально отличается от MasterCard+Cardsmobile?
                  0
                  Все равно неудобно. Я должен сначала положить деньги на Киви-кошелек вместо того, чтобы платить в кредит, как это делаеся при оплате обычной кредитной картой. Да, можно привязать свою кредитку, но тогда надо платить комиссию «0 — 0.75% в зависимости от провайдера». Какого провайдера?? Как узнать этого провайдера?
                    +4
                    Почему не взять карту сразу с Paywave, зачем нужна эта прокладка в виде смартфона и киви?
                    Сейчас по-моему уже у всех банков есть такая опция.
                      0
                      Есть карты со встроенными NFC и дисплеями, правда стоимость их поддержки и изготовления — не для большинства «серой массы», с которой у нас принято иметь дело.
                        0
                        Обычный paypass у Сбербанк 950 рублей в год.
                          0
                          Да, я как раз вспомнил про тот что понавороченней.
                          Кстати, у Visa экранчик повеселее будет.

                          Не знаю сколько стоит выпуск подобной карты, правда возможность удалённо смотреть, блокировать и обнулять счета в некоторых латвийских банках специальным GSM брелком стоила довольно дорого (200$ выпуск и 10$ в месяц в 2014'м). Не уверен что подобные поделки имеют отношение к Visa или Mastercard, это скорее особенность европейских банков через которые проводят инвестиции в СНГ :)
                            0
                            Технология Visa codesure, насколько я знаю, у нас не используется. Это карта в основном для США.
                            Для такой карты, как на видео, нужна дополнительная инфраструктура, включающая в себя промышленный сервер аутентификации. К сожалению, карточный бизнес в России заключается в перепродаже чипов, а не в оказании квалифицированных услуг. Поэтому такие карты в РФ — редкость. Справедливости ради замечу, что карты с дисплеем были замечены у Яндекса(однокнопочная) и, кажется, даже доступны в банке Авангард(многокнопочная).
                        0
                        Можно взять и карту с PayWave, но если кошелек с наличными и банковскими картами вы можете забыть дома, то без телефона мы на улицу уже редко выходим))
                        0
                        Я хотел бы аналога MasterPass от Visa, а то тольку от этих железок с NFC не так много, с точки зрения безопасности, а для мерчантов — сплошная головная боль. Вот дискриминация пользователей с root'ом выглядит очень наивно — ничто не запрещает отпатчить что угодно и как угодно. Я считаю что Visa должна быть более открыта, и решения того же MasterCard'a сейчас более привлекательны, не сочтите рекламой — просто моё личное мнение.
                          +1
                          Будет ли поддержка iOS и Apple Watch?
                            0
                            iOS уже есть у них на сайте.
                            0
                            Ещё стандартный комментарий про наличие у Киви свинского пункта в оферте о списании денег с неактивных пользователей.

                            Сама фича супер-удобная, но пока я пару недель искал, где бы расплатиться с телефона (мало кто ещё принимает бесконтактные платежи, даже в Москве), у меня пара сотен и списалась. После первой транзакции спустя некоторое время деньги вернулись, но осадок остался.
                              +2
                              Простите за оффтопик, как же неудобно что верстка рекламных статей столь разительно отличается от обычных (хорошо что отличается, но как-то слишком).
                                0
                                Уважаемые VISA и Qiwi. Вы написали хороший пост, но совсем не отвечаете на вопросы в комментариях. Почему?

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.