В твоем кошельке наверняка есть несколько карт международных платежных систем, таких как Visa или MasterCard. Задумывался ли ты, какие алгоритмы используются в этих картах? Насколько платежи безопасны? Мы расплачиваемся картами каждый день, но знаем о них крайне мало. Еще больше мифов сопровождает карточные платежи. Чтобы понять, какие есть способы похитить деньги с карты, нужно сначала понять, как происходит оплата. Давай разбираться вместе.
НОМЕР КАРТЫ
Оплата по номеру карты исторически самая старшая. Раньше на картах не было ничего, кроме этого номера. Номер был «эмбоссирован» выдавлен на карте. При оплате карта «прокатывалась» на специальном устройстве, что позволяло продавцу быстро внести номер в древнюю замену базы данных, то есть отпечатать на листе бумаги. В конце рабочего дня или недели эти данные собирались и передавались в банк‑эквайер. Далее банк отправлял запросы на списание этих денег у владельцев карт через банки‑эмитенты. Это было так давно, что немного людей знают, откуда появился трехзначный код верификации платежей, записанный на обратной стороне карты, так называемый CVV2/CVC2. До нас дошла информация, что этот код использовался скорее как контрольная сумма, нужная, чтобы владелец карты не ошибся и корректно ввел всю информацию при оплате. Похоже на правду, если учесть, насколько короткий этот код. Сейчас физическая карта может и вовсе не участвовать в оплате. Это называется card not present и чаще всего используется при оплате в интернете. Если номер карты вводится при оплате в платежном терминале, а это характерно для отелей, бизнесов, ведущих дела по телефону, а также для большинства терминалов в США, такой подтип платежей называется PAN Key Entry. Многие до сих пор считают, что поле Cardholder name с лицевой стороны карты нужно вводить корректно и что оно проверяется. Это не так ни один банк не проверяет это поле.
МАГНИТНАЯ ПОЛОСА
Операции с магнитной полосой один из самых простых методов. Он ассоциируются у людей с определенными типами мошенничества. Скимминг в банкоматах, двойные снятия в ресторанах все это возможно благодаря недостаткам магнитной полосы. Магнитную полосу легко скопировать для этого необходим только специальный ридер/энкодер магнитной полосы. Дальше клонированной магнитной полосы достаточно для того, чтобы расплачиваться в большинстве супермаркетов мира. Для верификации владельца карты предполагалось использовать подпись на чеке, которую кассир должен сверить с подписью на обратной стороне карты.
На картинке выше ты видишь пример записанной на карту информации. Черные полоски это единицы, белые нули. Существуют open source решения для декодирования этих данных к примеру, magstripe. На самом деле по изображению видно, что на карте не одна, а целых две магнитные полосы разной плотности (Track1 и Track2). Какие данные содержатся на магнитной полосе? Номер карты, дата окончания действия, имя владельца карты все, что физически отпечатано на лицевой стороне карты.
Сервисный код три цифры, которые помогают взаимодействующему с картой устройству (терминал или банкомат) понять, какие функции есть у карты, а каких нет. Можно ли использовать эту карту в банкомате, оснащена ли карта чипом. Код верификации (CVV, CVC, CID терминология зависит от платежной системы) код, аналогичный тому, что написан на обратной стороне карты. Он рассчитывается по алгоритму криптографической чек‑суммы (MDK MAC) с помощью 128-битного ключа от информации, записанной на магнитной полосе. Использование вычисляемого CVV вместо случайного помогает от атак, когда, например, злоумышленник подменяет сервисный код и пытается убедить платежный терминал, что карта не оснащена чипом. Банк‑эмитент получит данные магнитной полосы, сверит их, и контрольная сумма не сойдется с переданным значением в поле CVV. Сверки проходят в защищенном хранилище ключей так называемом HSM (Hardware Secure Module).
ЧИП/EMV На смену магнитной полосе в девяностых пришли смарт‑карты, для популяризации которых создали консорциум EMV (Europay, MasterCard, Visa). Продвигаемая консорциумом идея была проста: используя особенности смарт‑карт, симметричную криптографию и криптографию с открытым ключом, решить все проблемы, связанные с магнитной полосой. Операции со смарткартой обеспечивают три степени защиты:
Аутентификация карты. Проверка платежным терминалом того, что карта подлинная и действительно была выпущена банком N, а не была создана злоумышленниками в домашних условиях.
Верификация плательщика. Проверка того, что эта карта принадлежит покупателю, стоящему перед платежным терминалом.
Авторизация транзакции. От карты до банка‑эмитента путь долгий. Банк должен убедиться, что данные операции нигде не были искажены злоумышленниками. Что сумма осталась неизменной, что дата операции корректная, что эта операция уникальна, а не была уже проведена в прошлом месяце.
Давай пройдемся по используемым методам.
Аутентификация карты
Для аутентификации карты используется криптография с открытым ключом по протоколу RSA. Текущие минимальные требования по длине ключа 1024 бита. Ограниченное число центров сертификации выпускают ключи для банков, а банки их уже привязывают к самим картам. Приватный ключ хранится на самой смарт‑карте в области, недоступной для чтения. Корневые сертификаты устанавливаются на терминал при его настройке. Во время транзакции карта предоставляет публичные ключи платежному терминалу вместе с информацией, зашифрованной приватным ключом в режиме цифровой подписи. Если публичный ключ доверенный и информация, переданная картой, успешно расшифровывается этим ключом, то терминал считает карту аутентичной, выпущенной именно тем банком, который подписал приватный ключ, выданный центром сертификации.
Всего существует три режима аутентификации карты:
SDA static data authentication;
CDA combined dynamic data authentication. В первом методе использовалось только одно статическое поле, хранящееся на карте. Оно подписывалось приватным ключом и проверялось терминалом. Это было EMV-поле AIP (application interchange profile). Но консорциум EMV быстро понял, что для популярных в то время офлайновых терминалов (они не выходили в онлайн для сверки криптограммы) этого было явно недостаточно любой мог клонировать публичный ключ и подписанную статическую строку, чтобы создать подделку. Следующий метод полагался на динамические данные, приходящие от терминала. Терминал генерирует поле UN Unique Number, которое подписывается приватным ключом карты. Энтропия этого поля 232, чего достаточно для защиты от первой атаки. Однако в 2009 году исследователи из Кембриджского университета представили работу, описывающую так называемую атаку PIN OK (PDF). Специальное устройство, располагающееся между картой и терминалом, совершало атаку «человек посередине» и подменяло одно из полей, которые отправляла карта. Эту подмену нельзя было обнаружить на терминале с помощью описанных выше методов. Для защиты от таких атак консорциум EMV еще до находки исследователей предусмотрел новый механизм защиты схему CDA. Во время нее терминал может проверить целостность большинства полей, которые передает карта и которые участвуют в фазе под названием «риск‑менеджмент». Офлайновая аутентификация создавалась в первую очередь для защиты офлайновых платежей, когда терминал не подключен к интернету постоянно. Именно поэтому, если результат работы режимов DDA или CDA не заканчивается успехом, в современных терминалах, подключенных к интернету, это не приведет к отказу транзакции в 99% случаев, так как банк‑эмитент авторизует ее с помощью криптограммы, как описано ниже. Однако некоторые платежные системы рекомендуют обращать внимание на постоянные неуспешные аутентификации, особенно если они происходят в разных терминалах.
Верификация плательщика.
Есть два основных способа верификация плательщика: ПИН‑код и подпись. На самом деле их немного больше ПИН‑код может проверяться в офлайне (на самой карте) и онлайн. Он может быть зашифрован (с помощью симметричного ключа 3DES) или передаваться в открытом виде. Еще возможен способ верификации NoCVM то есть отсутствие верификации. Хороший пример таких операций те, которые не превышают лимиты 3000 рублей и не требуют ввода ПИН‑кода. Их иногда называют Tap & Go. Другой способ, который в зависимости от платежной системы называется CDCVM или On-Device CVM, делает возможной верификацию на мобильном телефоне владельца карты. Как ты уже догадался, он используется в Google Pay и Apple Pay. Для авторизации транзакции смарт‑карты создают платежную криптограмму. Карта отправляет терминалу список полей их набор зависит от версии криптограммы и настроек карты. Как правило, это сумма операции, валюта, дата и другие важные для этапа риск‑менеджмента настройки терминала. Далее карта дополняет эти поля своими внутренними полями: счетчик операций, версия криптограммы.
Полученная строка шифруется с помощью записанного на карте секретного ключа 3DES в режиме цифровой подписи и передается банку вместе со всей подписанной информацией. Банк‑эмитент использует аппаратный модуль безопасности (hardware security module, HSM), на котором в защищенной от чтения области памяти содержится копия симметричного ключа карты.
HSM также создает цифровую подпись по данным от платежного терминала. Если он получит такую же криптограмму, то транзакция будет считаться авторизованной. Это значит, что никто не подменил данные операции во время их передачи от карты до банка эмитента. На этом же этапе расшифровывается и сверяется ПИН‑код карты, в случае если используется онлайн‑сверка ПИН. Обрати внимание, что все эти три функции работают хорошо только вместе. Чтобы корректно работала верификация, она должна контролироваться с помощью аутентификации. Если нет авторизации вся транзакция становится высокорисковой, и так далее.
БЕСКОНТАКТНЫЕ ПЛАТЕЖИ
Бесконтактные платежи стали набирать популярность с середины 2010-х годов. Банки и платежные системы продвигают их как быстрый и удобный способ оплаты. Оно и понятно чем больше народ платит картами, тем больше можно заработать на комиссиях! С развитием технологий нужно развивать и безопасность, но это далеко не всегда так. И бесконтактные платежи как раз пример из неудачных. Когда создавались бесконтактные платежи, карты с чипом в США еще не были особенно распространены, поэтому Visa и MasterCard предусмотрели промежуточный шаг, когда новыми бесконтактными картами можно платить на старых несовременных платежных терминалах, которые не поддерживают современную криптографию. Этот шаг называется Legacy modes режимы, степень безопасности которых значительно ниже, чем у платежей EMV и современных форм бесконтактных платежей. Legacy modes по степени защиты больше напоминают операции с магнитной полосой, только проводятся через NFC. Несмотря на то что эти режимы предполагалось использовать лишь в нескольких странах, а через какое‑то время и вовсе отменить, мы в 2020 году встречаем их повсеместно в том числе в России, где даже магнитная полоса запрещена.
Отдельная проблема это то, как платежные системы подошли к реализации бесконтактных платежей. Вместо того чтобы придумать что‑то новое, в компаниях Visa и MasterCard решили и здесь использовать EMV, но каждая сделала это по‑своему, так что де‑юре они перестали быть частью стандарта EMV.
NFO Что из этого следует:
Во первых, механизмы защиты и их проблемы, описанные в начале 2000-х годов, сохранились. В большинстве карт даже криптографические ключи, используемые для криптограмм EMV и NFC, одни и те же. Во вторых, ассоциация EMV не могла больше влиять на то, как будет построен платежный процесс. В компании Visa были недовольны слишком долгим временем проведения платежа. Когда для этого использовался чип, проблем не было карта вставлялась в терминал. Однако в Visa посчитали, что держать карту у терминала, ожидая, пока пройдут все шаги EMV, это не очень‑то удобно. Этап, который вызывал основную задержку, это офлайновая аутентификация карты. Одновременно с этим в MasterCard приняли диаметрально противоположное решение признали, что офлайновая аутентификация важна и для тех карт, которые поддерживают наиболее безопасную схему аутентификации CDA, и сделали ее обязательной. В спецификации EMV, если взаимодействие по схеме CDA не заканчивается успешно, терминал все еще может отправить криптограмму для онлайновой авторизации. Тогда как для бесконтактных платежей MasterCard неудачная аутентификация CDA всегда ведет к отмене платежа. Разница во времени операций незначительная, однако это остается решающим фактором для Visa.