В твоем кошельке наверняка есть несколько карт международных платежных систем, таких как Visa или MasterCard. Задумывался ли ты, какие алгоритмы используются в этих картах? Насколько платежи безопасны? Мы расплачиваемся картами каждый день, но знаем о них крайне мало. Еще больше мифов сопровождает карточные платежи. Чтобы понять, какие есть способы похитить деньги с карты, нужно сначала понять, как происходит оплата. Давай разбираться вместе.
Оплата по номеру карты исторически — самая старшая. Раньше на картах не было ничего, кроме этого номера. Номер был «эмбоссирован» — выдавлен на карте. При оплате карта «прокатывалась» на специальном устройстве, что позволяло продавцу быстро внести номер в древнюю замену базы данных, то есть отпечатать на листе бумаги.
В конце рабочего дня или недели эти данные собирались и передавались в банк‑эквайер. Далее банк отправлял запросы на списание этих денег у владельцев карт через банки‑эмитенты. Это было так давно, что немного людей знают, откуда появился трехзначный код верификации платежей, записанный на обратной стороне карты, так называемый CVV2/CVC2. До нас дошла информация, что этот код использовался скорее как контрольная сумма, нужная, чтобы владелец карты не ошибся и корректно ввел всю информацию при оплате. Похоже на правду, если учесть, насколько короткий этот код.
Сейчас физическая карта может и вовсе не участвовать в оплате. Это называется card not present и чаще всего используется при оплате в интернете. Если номер карты вводится при оплате в платежном терминале, а это характерно для отелей, бизнесов, ведущих дела по телефону, а также для большинства терминалов в США, такой подтип платежей называется PAN Key Entry.
Многие до сих пор считают, что поле Cardholder name с лицевой стороны карты нужно вводить корректно и что оно проверяется. Это не так — ни один банк не проверяет это поле.
Операции с магнитной полосой — один из самых простых методов. Он ассоциируются у людей с определенными типами мошенничества. Скимминг в банкоматах, двойные снятия в ресторанах — все это возможно благодаря недостаткам магнитной полосы. Магнитную полосу легко скопировать — для этого необходим только специальный ридер/энкодер магнитной полосы. Дальше клонированной магнитной полосы достаточно для того, чтобы расплачиваться в большинстве супермаркетов мира. Для верификации владельца карты предполагалось использовать подпись на чеке, которую кассир должен сверить с подписью на обратной стороне карты.
На картинке выше ты видишь пример записанной на карту информации. Черные полоски — это единицы, белые — нули. Существуют open source решения для декодирования этих данных — к примеру, magstripe.
На самом деле по изображению видно, что на карте не одна, а целых две магнитные полосы разной плотности (Track1 и Track2). Какие данные содержатся на магнитной полосе?
На смену магнитной полосе в девяностых пришли смарт‑карты, для популяризации которых создали консорциум EMV (Europay, MasterCard, Visa). Продвигаемая консорциумом идея была проста: используя особенности смарт‑карт, симметричную криптографию и криптографию с открытым ключом, решить все проблемы, связанные с магнитной полосой. Операции со смарт‑картой обеспечивают три степени защиты:
Давай пройдемся по используемым методам.
Для аутентификации карты используется криптография с открытым ключом по протоколу RSA. Текущие минимальные требования по длине ключа — 1024 бита. Ограниченное число центров сертификации выпускают ключи для банков, а банки их уже привязывают к самим картам. Приватный ключ хранится на самой смарт‑карте в области, недоступной для чтения. Корневые сертификаты устанавливаются на терминал при его настройке. Во время транзакции карта предоставляет публичные ключи платежному терминалу вместе с информацией, зашифрованной приватным ключом в режиме цифровой подписи. Если публичный ключ доверенный и информация, переданная картой, успешно расшифровывается этим ключом, то терминал считает карту аутентичной, выпущенной именно тем банком, который подписал приватный ключ, выданный центром сертификации.
Всего существует три режима аутентификации карты:
В первом методе использовалось только одно статическое поле, хранящееся на карте. Оно подписывалось приватным ключом и проверялось терминалом. Это было 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.
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
1 год7690 р. |
1 месяц720 р. |
Я уже участник «Xakep.ru»
Читайте также
Последние новости