Теоретические атаки на EMV-карты замечены в реальности — Хакер

Что такое emv карта?

EMV — это международный стандарт для банковских карт с чипом. В разработке этого стандарта принимали участия Europay MasterCard VISA, отсюда и название. Попробуем разобраться, как же все таки карта общается с POS-терминалом по бесконтактному интерфейсу.

Начнем с самых основ.

Если базисно то, чип попадает в электромагнитное поле, а в замкнутом проводящем контуре (в нашем случае это будет антенна, расположенная по периметру), помещенном в переменное магнитное поле, образуется переменный электрический ток. Бесконтактная EMV карта на физическом уровне работает почти так же, как и RFID метка.

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

Когда ридер изменяет электромагнитное поле, изменения сразу будут заметны на чипе. Ридеру останется детектировать эти изменения. Если на карте подключить нагрузочное сопротивление и или изменить емкость конденсатора, то можно изменить силу тока в контуре карты, что приведет к изменению создаваемого им электромагнитного поля в области контура ридера, таким образом карточка передает данные.

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

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

Далее будем называть это устройство просто терминалом.Банк эмитент — это банк, который выпустил вашу карту.Банк эквайер — банк, который выдает продавцам POS-терминалы и обрабатывает платежи с них.Платежная система — центральное звено между банком эквайером и банком эмитентом, через нее проходят абсолютно все платежи, и она знает какой банк какому сколько должен перевести денег.

Также еще напомню немного терминологии, для тех, кто не знаком.POS-терминал (Point of Sale) — устройство продавца, которое считывает карту и инициирует платеж. Платежных систем в мире не мало, кроме всем известных Visa и MasterCard есть ещё и American Express, China UnionPay и российская платежная система МИР.

Они посылают друг другу APDU-команды в виде Tag-Length-Value т.е. Хорошо, карта и ридер могут общаться. Все команды описаны конечно же в документации и выглядят примерно так: передается название тэга в шестнадцатеричном виде, его длина и само значение.

Стандартная EMV транзакция проходит в несколько этапов, я опишу полный алгоритм взаимодействия в случае контактного интерфейса, для бесконтактного интерфейса алгоритм несколько укорочен:

  • Выбор приложения;
  • Инициализация обработки приложения;
  • Считывание данных приложения;
  • Офлайн аутентификация;
  • Обработка ограничений;
  • Проверка держателя карты;
  • Риск-менеджмент на стороне терминала;
  • Анализ действий терминала;
  • Риск-менеджмент на стороне карты;
  • Анализ действий карты;
  • Процессинг в режиме on-line;
  • Завершение операции.

Коротко рассмотрим каждую операцию.

Часто бывает, что на одной карте может быть несколько приложений. Выбор приложения. И терминалу как-то необходимо разобраться, где и какой алгоритм ему использовать. Например, банковская карта и проездной билет. Что бы в этом разобраться терминал посылает команду SELECT.

Для выбора приложения используются так называемые Идентификационные Коды приложения (Application Identifier – AID). Если в ответ придет несколько таких кодов и терминал умеет работать с несколькими приложениями, то терминал выведет на экран список и предложит выбрать нужное нам приложение.

Здесь сначала проверяется географическое место пребывания. Инициализация обработки приложения. Этот этап сделан для того, чтобы предоставить эмитентам возможность применять существующие онлайн методы риск-менеджмента при проведении офлайн операций. Например, карты Maestro Momentum могут работать для оплаты только в России.

Далее карта передает терминалу набор специально структурированной информации, содержащей описание функциональности карты и приложения. На этом этапе EMV-транзакция может быть отменена по инициативе самой карты, если данный тип операции запрещен в данной стране мира эмитентом.

Терминалу передаются различные данные карты необходимые для транзакции, например номер карты, expiration date, счетчик транзакций и много других данных. Считывание данных приложения. О некоторых из них будет сказано далее.

Пример данных:

Для того чтобы терминал был способен проверить цифровую подпись некоторых данных карты используется PKI-инфраструктура (Public Key Infrastructure). Также передается сертификат публичного ключа банка эмитента и самой карты. По сути платежная система для каждого банка эмитента выпускает новую пару ключей, и при этом формирует сертификат публичного ключа банка эмитента, подписывая его приватным ключом CA.

Вкратце, у платежной системы есть пара ключей — публичный и приватный и платежная система является для всех участников CA (Center Authority). В терминалах обычно зашит сертификат публичного ключа для различных платежных систем. Далее, когда банк выпускает новую карту, он соответственно генерирует для карточки пару ключей, и также формирует сертификат публичного ключа карты, подписывая его с помощью приватного ключа банка.

Терминал с помощью публичного ключа платежной системы сначала проверяет подлинность сертификата банка эмитента, если он подлинный, то значит ему можно доверять и теперь с помощью сертификата банка эмитента можно проверить сертификат самой карты. Таким образом, когда карточка передает сертификат публичного ключа банка эмитента и сертификат самой карты, терминал может с легкостью проверить всю цепочку, используя публичный ключ платежной системы. Более подробней в статье про безопасность EMV

Терминал определяет тип поддерживаемого метода оффлайн аутентификации. Офлайн аутентификация. Эти методы также построены на основе PKI. Существует статичная (Static Data Authentication – SDA), динамическая (Dynamic Data Authentication – DDA) и комбинированная (Combined Data Authentication – CDA).

CDA это просто комбинация обоих способов. SDA это просто подписанные данные на приватном ключе банка эмитента, DDA — терминал посылает какое-то случайное число и карточка должна подписать его, используя свой приватный ключ, а терминал проверит эту подпись используя полученный ранее сертификат карты, таким образом терминал удостовериться в том, что карточка и правда обладает приватным ключом — следовательно является подлинной.

Здесь терминал проверяет полученные ранее данные с карты на условие пригодности для данной операции. Обработка ограничений. Также производится проверка версии приложения. Например, проверяет срок начала/окончания действия приложения Application Expiration Date (Tag ‘5F24’) и Application Effective Date (Tag ‘5F25’).

По результатам этого этапа транзакция не может быть отменена, даже в случае, если, например, срок действия приложения истек. Результаты операций, проводимых на данном этапе, также записываются в отчет TVR (Terminal verification results).

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

Стандарт EMV предоставляет различные методы верификации держателя карты (Cardholder Verification Method). В процессе выполнения, терминал и карточка сравнивают полученные CVM-листы и выбирают общий метод верификации. Они содержатся в так называемых CVM-листах. Список поддерживаемых методов верификации:

  • No CVM required (‘011111’b);
  • Fail CVM processing (‘000000’b);
  • Signature (‘011110’b);
  • Enciphered PIN verified online (‘000010’b);
  • Plaintext PIN verification performed by ICC (‘000001’b);
  • Plaintext PIN verification performed by ICC and signature (‘000011’b);
  • Enciphered PIN verification performed by ICC (‘000100’b);
  • Enciphered PIN verification performed by ICC (‘000100’b).

Вот здесь также есть интересная информация на эту тему.

На этом этапе терминал проводит внутреннюю проверку параметров транзакции, исходя из установок риск-менеджмента банка-эквайера. Риск-менеджмент на стороне терминала. Риск-менеджмент на стороне терминала включает в себя три механизма: Процедуры риск-менеджмента могут быть выполнены терминалом в любое время между моментами завершения процесса чтения данных карты и формирования терминалом первой команды GENERATE AC.

  • контроль размера операций, выполненных по карте (Floor Limit Checking);
  • случайный выбор транзакции для онлайн авторизации этой транзакции эмитентом (Random Transaction Selection);
  • проверка офлайн активности использования карты (Velocity Checking).

На этом этапе терминал анализирует результаты предыдущих шагов транзакции. Анализ действий терминала. По результатам анализа терминал принимает решение о том, следует ли провести операцию в online-режиме, разрешить ее проведение в офлайн режиме или отклонить операцию.

Карта, получив из команды GENERATE AC данные, касающиеся транзакции, терминала и результатов проверок терминала, в свою очередь выполняет собственные процедуры управления рисками и выносит собственное решение о способе завершения операции. Риск-менеджмент на стороне карты.

На этом этапе карта завершает проведение процедур риск-менеджмента и формирует ответную криптограмму терминалу. Анализ действий карты. Если карта принимает решение о выполнение операции в режиме реального времени, то она формирует ARQC (Authorization Request Cryptogram).

Если карта решает одобрить транзакцию, то формируется Transaction Certificate. В случае, если карта отклоняет транзакцию, то Application Authentication Cryptogram. Если карта использует альтернативные методы авторизации, тогда используется Application Authorization Referral.

Эмитент формирует криптограмму ARPC и отсылает криптограмму карте, если карта подтвердит пришедшую криптограмму, то следовательно, эмитент аутентифицирован картой. Еще одна криптограмма ARPC (Authorization Response Cryptogram) нужна для аутентификации эмитента.

М. Немного о безопасности ключей и взаимной аутентификации карты и эмитента из книги И. Голдовского:

Криптограммы представляют собой данные, формируемые с использованием секретного ключа (который известен карте и банку эмитенту), номера транзакции, случайного числа, сгенерированного терминалом, а также некоторых реквизитов транзакции, терминала и карты. Смысл взаимной аутентификации заключается в том, что карта и терминал аутентифицируют друг друга с помощью проверки подлинности криптограмм ARQC и ARPC. Без знания секретного ключа карты для генерации криптограммы вычислить значения ARQC/ARPC невозможно за обозримое время с текущим уровнем технологий, и потому факт их успешной верификации указывает на подлинность карты и эмитента. В случае ARPC к перечисленным данным еще добавляется авторизационный код ответа эмитента. Это связано с тем, что она выполняется непосредственно эмитентом, без посредника в виде терминала. Онлайн аутентификация является наиболее надежным способом аутентификации карты. Использование на карте асимметричных ключей такой длины все еще достаточная редкость. Кроме того, для онлайновой аутентификации используется алгоритм 3DES с временным ключом размером 112 битов, криптостойкость которого соответствует криптостойкости алгоритма RSA с длиной модуля асимметричного ключа, используемого для офлайн аутентификации приложения карты, более 1700 бит. Обычно используются ключи с модулем длиной 1024, 1152 или 1408 бит.

В конечном итоге онлайн транзакция проходит по цепочке:Карта <–> POS-Терминал <–> Банк Эквайер <–> Платежная Система <–> Банк Эмитент.

Как работают банковские карты с чипом

Чип на карте — это не просто микросхема флеш-памяти. На самом деле это небольшой компьютер, позволяющий запускать приложения. Когда вы вставляете карту с чипом в терминал, происходит вот что:

Первым делом начинается инициализация. На этом этапе терминал получает основные сведения о карте, такие как имя владельца, срок действия и так далее, а также список приложений, которые есть на карте.

Дальше идет опциональный этап аутентификации данных. На этом этапе при помощи криптографических алгоритмов терминал удостоверяется, что карта настоящая. Однако согласно стандарту этот этап не является обязательным — то есть его можно пропустить.

Следующий этап тоже не обязательный — это верификация владельца. То есть терминал должен убедиться, что человек, вставивший карту — это ее настоящий владелец. Для этого человек должен либо ввести PIN-код, либо расписаться на чеке — в зависимости от того, как карта запрограммирована.

Наконец, следующий этап — это собственно транзакция, то есть перевод денег.

Еще раз обращаем ваше внимание: обязательными являются только первый и четвертый этапы, а второй и третий — опциональные. Этим-то и воспользовались бразильские мошенники.

Карточка на все согласна

Итак, условия задачи: карточка умеет запускать приложения и при общении с терминалом первым делом сообщает ему информацию о себе и список доступных приложений. Количество этапов при осуществлении платежа определяется терминалом и картой.

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

Остается этап верификации владельца при помощи PIN-кода. Но стандартом предусмотрены разные варианты подтверждения пина, и в том числе такой, когда правильность его ввода подтверждает… собственно, сама карта. А точнее, установленное на ней приложение.

Преступники написали такое приложение, которое на вопрос о том, правильно ли введен PIN, всегда отвечает терминалу «да-да, все отлично». То есть злоумышленник с клонированной картой может ввести на терминале четыре абсолютно случайные цифры — и эти цифры будут приняты как правильный PIN.

Клонирование карт доступа с помощью proxmark 3

Proxmark 3 позиционируется как исследовательский инструмент, для изучения систем RFID и NFC. Однако, простым поиском по интернету можно обнаружить подробное описание его использования для клонирования карт доступа. Этот метод не требует навыков взломщика или глубоких знаний технологии – достаточно того, чтобы Proxmark 3 просто вошел в контакт с картой контроля доступа.

На популярном сайте по заказу товаров из Китая стоимость устройства стартует примерно от 100 долларов США, при этом поставщики обещают совместимость со следующими популярными форматами карт доступа:

Копирование карт em-marine

Считывание злоумышленником данных с карты происходит с помощью компактного и весьма доступного по цене прибора – дубликатора. Для этого необходимо лишь приблизиться к карте, послать на нее с дубликатора сигнал, имитирующий сигнал считывателя, получить ответный сигнал с карты, записать его в память устройства, а затем на бланк карты.


Карты не всех стандартов поддаются такому простому взлому, многие современные идентификаторы защищены от подобных угроз с помощью прогрессивных технологий. 

Тем не менее, с помощью ПО можно настроить разграничения доступа, что обеспечит большую надежность СКУД, в которых используются низкочастотные карты. 

Варианты разграничения:

Мошенничество с картами как услуга

Инфраструктура, созданная группировкой Prilex, включает в себя описанное выше Java-приложение, клиентскую программу под названием «Daphne», при помощи которой можно перезаписывать смарт-карты, и собственно базу ворованных данных карт, лежащую у них на сервере.

«Клиентам» предлагается купить этакий «комплект начинающего злоумышленника» из Java-приложения, программы «Daphne» и какого-то количества данных о картах. Приобрести устройство для записи карт и чистые смарт-карты можно абсолютно легально за считаные десятки долларов. Не важно, кредитная карта или дебетовая — «Daphne» позволяет клонировать любые.

Теоретические атаки на emv-карты замечены в реальности

Эксперты компании Gemini Advisory опубликовали отчет, согласно которому на андеграундных хакерских форумах было обнаружено два прецедента, когда хакеры собирали данные EMV-карт и выставляли эту информацию на продажу.

Издание ZDNet рассказывает, что совсем недавно аналитики компании Cyber ​​R&D Lab проводили интересный эксперимент, как раз связанный с EMV-картами. Исследователи оформили EMV-карты с чипом в 11 банках США, Великобритании и ЕС, а затем применили против них хакерские инструменты, которые обычно используются для копирования информации, хранящейся на картах EMV и их магнитных полосах.

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

О том, что существует возможность скопировать магнитную полосу EMV-карты, известно с 2008 года, но считалось, что этой особенностью вряд ли возможно злоупотреблять, поскольку банки планировали перевести всех пользователей на EMV и вообще отказаться от использования  магнитных полос. Как теперь показала практика, этого не произошло, и специалисты Cyber ​​R&D Labs сообщили, что им удалось клонировать вышеописанным образом четыре карты и осуществить транзакции.

Теоретические атаки на EMV-карты замечены в реальности — Хакер

Однако до этой недели проблема все же считалась скорее чисто теоретической, так как не было известно о массовых использования этой техники хакерами, а теперь такие прецеденты обнаружили эксперты Gemini Advisory.

Впрочем, стоит отметить, что текущая ситуация отнюдь не беспрецедентна. К примеру, в 2022 году  у 2000 клиентов немецкого банка Oldenburgische Landesbank (OLB) похитили более 1,5 млн евро, затем обналичив эти средства по всей Бразилии. Тогда дело было связанно именно с клонированием EMV-карт, а специалисты компании отмечали, что Бразилия и Мексика – это крупнейшие «лаборатории по клонированию EMV-карт». Местные хакеры нередко рекламируют инструменты, помогающие в создании полнофункциональных клонов.

Исследователи пишут, что обнаруженные ими данные EMV-карт были похищены в американской сети супермаркетов Key Food Stores Co-Operative Inc., а также в американском магазине спиртных напитков Mega Package Store.

Теоретические атаки на EMV-карты замечены в реальности — Хакер
Пример шиммера, установленного в PoS-терминале. Фото: Krebs on Security

Тот факт, что преступники начали клонировать EMV-карты, похоже, подтверждает и предупреждение, разосланное в этом месяце компанией Visa. Представители Visa пишут, что такие вредоносные программы, как Alina POS, Dexter POS и TinyLoader, были обновлены и теперь умеют собирать информацию с карт EMV, чего раньше не наблюдалось, так как собранные таким образом данные обычно не получалось монетизировать.

Специалисты Gemini Advisory полагают, что метод, который стали использовать преступники, был описан еще в 2008 году, и именно эта техника, EMV-Bypass Cloning, являлась предметом недавних исследований Cyber ​​R&D Labs.

I demonstrated cloning from chip data to magstripe but the banks said that cards issued after 2008 would not be vulnerable and chip data would be “useless to the fraudster”. This new research shows that the problem still has not been fixed, 12 years on https://t.co/6VX8n84hDb

— Steven Murdoch (@sjmurdoch) July 10, 2020

В теории от таких атак не слишком сложно защититься: достаточно чтобы банки  проводили более тщательные проверки при обработке транзакций с магнитных полос EMV-карт. Но, увы, как показало исследование Cyber ​​R&D Labs, внимание этому уделяют далеко не все банки.

Заключение

Prilex действует только на территории Бразилии и соседних с ней стран, но подумать о безопасности своих финансов лучше не только бразильцам. Вот несколько советов, последовав которым, вы снизите риск пострадать от рук мошенников:

  • Следите за движением средств по счету — либо через уведомления в мобильном приложении, либо с помощью SMS. Как только видите какие-то подозрительные траты — тут же звоните в банк и срочно блокируйте карту.
  • По мере возможности пользуйтесь AndroidPay или ApplePay. Обе эти системы не передают данные вашей карты терминалу, поэтому их можно считать более безопасными, чем обычные платежи по карте, когда вы вставляете ее в терминал.
  • Заведите отдельную карту для покупок в Интернете. Шанс того, что ее данные куда-нибудь утекут, заметно больше, чем в случае тех карт, которыми вы расплачиваетесь только в офлайн-магазинах. Так что на этой карте не стоит хранить больше суммы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *