Современные проблемы проверки держателей карт EMV и NFC

Tomcat

Professional
Messages
2,377
Reputation
4
Reaction score
406
Points
83
Атака с путаницей криптограмм.


Введение

15 октября Великобритания увеличит лимиты Tap & Go с 45 до 100 фунтов стерлингов, но что это значит?

Это означает, что держатели карт Великобритании могут оплачивать товары на сумму до 100 фунтов стерлингов в магазинах с помощью бесконтактных карт без предоставления какой-либо проверки владельца карты, такой как PIN-код или подпись. Кроме того, вы сможете сделать это пять раз подряд, прежде чем большинство банков попросят вас вставить карту с помощью чипа.

Хорошо, но что это ДЕЙСТВИТЕЛЬНО значит?

Это означает, что правительство и банковский сектор уверены, что мошенничество с утерянными и украденными деньгами сократилось настолько , что лимиты можно увеличить без значительных потерь от мошенничества. Самый популярный вид бесконтактного мошенничества — это когда кто-то находит или крадет бесконтактную карту и использует ее в магазине. Теперь каждая бесконтактная операция ограничена 45 фунтами стерлингов и вырастет до 100 фунтов стерлингов. Означает ли это, что общие потери, связанные со злонамеренными «предпринимателями», также вырастут в два раза?

Мы постараемся пока не спекулировать на эту тему. Особенно, когда многие люди поляризуют вопрос «наличные или карты»: когда одна группа любыми способами избегает наличных и монет , другую группу больше беспокоят вопросы конфиденциальности , связанные с «только безналичным» будущим.

Вместо того, чтобы принимать чью-либо сторону в этой спорной теме, мы напомним вам, как легко платить с помощью заблокированных карт и как легко было бы обойти эти «мнимые» лимиты в 100 фунтов стерлингов «Tap & Go» для мошенников. Давайте покажем вам, сколько неправильных конфигураций все еще присутствует в современных картах Visa и MasterCard.

Атаки

Мы пройдем через две атаки. Во-первых, мы покажем, как хакеры могут расплачиваться картами Visa даже после превышения количества попыток ввода PIN-кода на карте, обычно установленного в три. Во второй атаке мы показываем, как можно обойти ограничение в три попытки угадать правильный четырехзначный номер PIN-кода и провести атаку, в которой перебираются все возможные цифры PIN-кода.

Почему мы обсуждаем эти нападения вместе? Обе атаки используют недостатки в спецификации EMV и реализации EMV в разных банках. Обе атаки также требуют использования техники «Человек посередине» для манипулирования различными полями во время связи между картой и терминалом. Для атаки NFC MiTM вы можете использовать два считывателя NFC PN532 или два телефона на базе Android, оснащенных считывателями NFC. Перехватить и изменить данные EMV немного сложнее. Основная проблема здесь — задержки и задержки, которые могут привести к прекращению связи. Для нашей демонстрации мы будем использовать проект пионера EMV-атак — Омара Чоудари из Кембриджского университета.

Атака 1. Атака с путаницей криптограмм или как расплачиваться заблокированными картами.

Почти каждая карта Visa и MasterCard может самостоятельно проверять ПИН-коды, это называется «Офлайн-проверка ПИН-кода». Для большинства карт, если владелец карты три раза неправильно вводит ПИН-код, функциональность карты ограничивается. После этого карта сообщает банку и POS-терминалам о неправильно введенных ПИН-кодах. Иногда это ограничивает интерфейс NFC, поскольку карта должна проверять следующую транзакцию только с использованием онлайн-ПИН-кода, который банк-эмитент проверит онлайн, а интерфейс NFC не имеет этой функции.

Мы сами имели такой опыт. Превысив количество попыток ввода PIN-кода, мы не смогли оплатить с помощью NFC или чипа, а также не смогли сбросить счетчик попыток ввода PIN-кода в банкомате. Как на этом фоне можно обойти этот тупик?

Посмотрите на связь NFC между картой и считывателем:

T->C
00a404000e325041592e5359532e444446303100
C->T
6f41840e325041592e5359532e4444463031a52fbf0c2c612a4f07a000000003
1010500a566973612044656269748701019f0a080001050100000000bf6304df2001809000
T->C
00a4040007a000000003101000
C->T
6f6c8407a0000000031010a561500a566973612044656269748701019f38189f
66049f02069f03069f1a0295055f2a029a039c019f37045f2d08656e65736672
64659f1101019f120f566973612044656269742043617264bf0c139f5a053108
2608269f0a0800010501000000006283

Ответ последней карты указывает на то, что карта недействительна для операций NFC, поскольку ответ 6283 APDU означает «Выбранный файл недействителен». Но если мы поменяем 6283 на 9000, ответим, что всё ок, вот что будет дальше:

T->C
00a404000e325041592e5359532e444446303100
C->T
6f41840e325041592e5359532e4444463031a52fbf0c2c612a4f07a000000003
1010500a566973612044656269748701019f0a080001050100000000bf6304df2001809000
T->C
00a4040007a000000003101000
C->T
6f6c8407a0000000031010a561500a566973612044656269748701019f38189f
66049f02069f03069f1a0295055f2a029a039c019f37045f2d08656e65736672
64659f1101019f120f566973612044656269742043617264bf0c139f5a053108
2608269f0a080001050100000000 9000
T->C (Terminal sends a Generate AC request, asking the card to provide a cryptogram)
80a8000023832136a04000000000000100000000000000082600000000000826211008000cf8dc7400
C->T (Карта отвечает не онлайн-криптограммой, а отказной криптограммой 9f270100)
774082020000940808010100100102009f100706011203800000570e43499210
50119006d2206221862f5f3401009 f2608b65f41f7509ea1449f2701009f360200a39000

После этого исправления мы видим, что карта отвечает не онлайн-криптограммой ARQC, а отказной криптограммой AAC . Подробнее о различных криптограммах EMV можно прочитать здесь: https://www.emvco.com/wp-content/up...MV_Chip_Technology_v2.0_20141120122132753.pdf .

Это также указывается в поле 9f10, которое должно обрабатываться эмитентом:

[9F10 (данные приложения эмитента)] 06011203800000
[Результаты проверки карты] 03800000
[Байт 2, бит 6 = 0, байт 2, бит 5 = 0] AAC Возвращается в GPO/первый GENERATE AC

Однако карта по-прежнему отвечает последовательным ATC. Что, если алгоритм генерации криптограммы AAC точно такой же, как и для криптограммы ARQC? Единственный способ отличить эти две криптограммы для банка-эмитента — это проверить поле CVR и убедиться в правильности типа криптограммы. Не большие любители теорий, мы сразу перешли к тестам. Мы изменили тип криптограммы с 9f270100 на 9f270180, онлайн-криптограмму ARQC, и вуаля!


Такое вмешательство возможно только с картами Visa, поскольку MasterCard требует использования схемы автономной аутентификации данных CDA для всех своих бесконтактных карт. И это не позволит хакерам подделать какие-либо данные. Далее стало очевидно, что многие банки (около 30% по нашему текущему рейтингу) не проверяют тип криптограммы в поле IAD/CVR. Хакеры не смогут подделать это поле просто потому, что оно достаточно важно, чтобы быть частью криптограммы платежа, и его подделка приведет к отклонению криптограммы.

Атака 2. Перебор PIN-кодов

Давайте поговорим о том, как банки сбрасывают счетчик попыток ПИН-кода на вашей карте. Возможно, вам придется выбрать опцию «Сброс ПИН-кода» в банкомате, или ваша карта может позволять вам сбросить ПИН-код в онлайн- или мобильном банкинге, но большинство банков пытаются сбросить ПИН-код автоматически. Еще одно важное требование – PIN-код должен быть авторизован онлайн. Именно поэтому в инструкциях по сбросу ПИН-кода многие банки предлагают использовать банкоматы, поскольку они всегда проверяют ПИН-коды онлайн. Поскольку на другой стороне находятся платежные терминалы, невозможно сказать, проверит ли он ПИН-код карты онлайн или нет. Если банк-эмитент должен сбросить счетчик ПИН-кода обратно на три или пять попыток и ПИН-код проверяется с помощью HSM в режиме реального времени, эмитент отправит «скрипт эмитента». Это зашифрованный код для выполнения некоторых действий с картой, например, сброса счетчика ПИН-кодов. Во время авторизации EMV ваша карта ожидает ответа, погруженного в считыватель. То есть платежный терминал передает скрипт Эмитента из банка на карту. Если сценарий выполнен и успешен, карта также укажет это в дальнейших транзакциях, поэтому эмитент подтвердит, что карта получила и интерпретировала сценарий.

Еще один интересный случай привлек наше внимание, когда мы тестировали поведение карт после ввода трех неправильных ПИН-кодов. Эмитент этой конкретной карты отправил сценарий эмитента, даже если банк-эмитент отклонил транзакцию из-за ввода неправильного онлайн-ПИН-кода. Это быстро закончилось возможным сценарием атаки:

1. Проверка ПИН-кода в автономном режиме, ввод последовательных ПИН-кодов из списка комбинаций 0000-9999.

2. Если все PIN-коды были неверными, счетчик попыток PIN-кода будет установлен на 0.

3. Теперь мы можем проверить следующий PIN-код онлайн или просто использовать схему проверки чипа и подписи. Это приведет к тому, что банк-эмитент отправит «Сценарий выдачи сброса PIN-кода». И мы можем продолжить снова с первого шага.

Выводы

Мы показали, насколько легко хакерам будет совершать платежи, даже не беспокоясь о бесконтактных лимитах. Например, хакеры могут оплатить с помощью чипа или NFC, даже если количество попыток ввода PIN-кода карты превышено, или они могут подобрать PIN-коды в автономном режиме, не отправляя слишком много запросов в банк.

Проблемы EMV беспокоят исследователей безопасности уже около 20 лет. Visa и MasterCard даже перенесли некоторые устаревшие проблемы, такие как путаница с криптограммами AAC, в самые современные формы платежей, такие как мобильные кошельки Apple Pay, Samsung Pay и GPay. Но крупные компании, такие как Visa и MasterCard, не торопятся исправлять эти недостатки.

Напоследок процитирую эксперта в области «наличные против карты»: «В ситуациях, когда платежные гиганты бездействуют, у общественности есть только один выход – прекратить пользоваться сервисом».

(c) https://www.paymentvillage.org/blog/modern-emv-and-nfc-cardholder-verification-issues
 
Top