Разбирая различный "мусор" из тумбочки на на работе выгреб 2 кг чиповых карт. В том числе и перехватчик протокола чиповых карт "FIME SmartSpy".
Кто разрабатывает/тестирует банковские карты и POS/ATM, тот знает что это. Когда то, функциональность его меня не устроила. Для тестов/проверки уязвимостей нужно было еще вклиниваться/вносить изменения в ATR и поток APDU команд и ответов на них. Для этого сделал функциональный аналог SmartSpy на базе SM32F103 с поддержкой T0/T1. Сделал, по большей части, конечно из за "могу ли я такое сделать", ну из за того, что очень плотно занимался разработкой приложений для карт и пр.
После 2022г получить что то от FIME (включая и SmartSpy) в России не возможно. Так что, выкладываю исходные коды на Github. Исходники без скриптов сборки. Не охота было подгонять древние скрипты под современные инструменты. Я уже давно не занимаюсь непосредственно чиповыми картами, но стало жаль, что работа пропадет.
Специально для "я у мамки хакер" и "ответственных работников МВД" - защита платежей по картам НЕ полагается на то, что протокол можно прослушать/подменить. Все "уязвимости" - это ошибки разработчиков ПО POS/ATM и вылавливаются махом на этапе сертификации ПО специальными инструментами. Но сертификация (и ее попытки) не дешева (а сейчас после 2022 и не тривиальна) и для поиска проблем, до сертификации, инструменты, типа этого, незаменимы.
Общая схема работы перехватчика проста.
STM32F103 работает по двум каналам:
RS232 для общения с программой на компе
ISO7816 протокол T0/T1 со стороны "карта".
STM32F103 обращается в RS232 за данным для APDU, ATR
Программа (java) получает запросы через RS-232 и либо формирует самостоятельно ответ (эмуляция) либо транслирует запрос в PC/SC ридер карте. Соответственно, весь трафик выводится в stdout в текстовом виде.
Из эпохи динозавров
Нашел в куче всего самые первые карты Gemplus c JavaCard. Еще с усеченной криптографией. Было время когда правительства боялись и даже DES был запрещен к "экспорту".
Попытка Microsoft сделать свою OS для чиповых карт закончилась едва начавшись. Победила JavaCard. Под впечатлением этой попытки, сделал приличное надгробие для этого проекта Microsoft (когда то давно..).