Ученые из Кембриджского университета (Великобритания) обнаружили фундаментальную уязвимость в протоколе, который лежит в основе процесса авторизации дебетовых и кредитных карт, оснащенных электронными чипами.
Ими создано устройство, способное перехватывать обмен данными по протоколу EMV (Europay, MasterCard, Visa) между картой и терминалом и посылать терминалу сигнал о том, что процесс авторизации пройден. В ходе последующих испытаний устройства ученым удалось авторизовать чиповые карты шести эмитентов без необходимости ввода правильного PIN, сообщает ХАКЕР.ру.
Несмотря на то, что вводить сам четырехзначный PIN все же пришлось, терминал принимал любое сочетание цифр.
По словам авторов работы, для создания такого устройства требуются лишь самые элементарные инженерные навыки и базовые навыки программирования.
Дело в том, что большинство транзакций требует авторизации по PIN. Клиент вводит идентификационный номер в устройство ввода, после чего тот отсылается на карту и сравнивается со значением PIN, хранящимся в ее чипе. Если PIN-коды совпадают, карта отсылает терминалу код подтверждения правильности (0x9000), завершая тем самым процедуру проверки подлинности.
По словам ученых, злоумышленники могут пронести аналогичный аппаратно-программный комплекс в рюкзаке, а провода спрятать в рукаве. Это даст им возможность использовать для совершения покупок или перевода денег краденные действительные карты.
Подойдет любой PIN
Исследователям удалось создать устройство, которое считывает данные с карты и в нужное время посылает терминалу код подтверждения, причем делает это вне зависимости от того, какой PIN был введен.
Чтобы продемонстрировать работоспособность своей схемы, исследователи вставили подлинную чиповую карту в кард-ридер Alcor Micro, который был соединен с ноутбуком, выполняющим скрипт на языке Python.
Сам ноутбук через последовательный порт был присоединен к программируемой плате Spartan-3E Starter Kit, используемой для конвертации интерфейсов банковской карты и ПК.
Плата, в свою очередь, была соединена с интерфейсным чипом Maxim 1740, который был связан тонкими проводами с поддельной банковской картой, которую исследователи вставили в терминал.
После того, как карта была вставлена, скрипт на ноутбуке перехватил транзакцию, подавил отправленный терминалом запрос на подтверждение PIN и выдал в ответ код подтверждения 0x9000.