Как создать EMV-карту из Javacard?

#javacard #emv

#javacard #emv

Вопрос:

Я собираюсь написать апплет Java Card для преобразования моей карты в карту, совместимую с EMV.

1- Вопрос в том, как я могу это сделать?

Насколько я знаю, существует четыре спецификации EMV, известные как книги EMV, которые содержат принципы работы карт EMV (характеристики чипа, структура файла, а также список команд APDU). Нужны ли мне какие-либо другие спецификации для реализации моего апплета или это все, что мне нужно? Если есть какие-то другие спецификации, которые мне нужны, они свободно доступны или они являются собственностью?

2- Есть ли у карт EMV специальный апплет-помощник?

EFT-Lab предоставила хороший список вспомогательных программ. Как вы видите ниже, существует множество вспомогательных средств, принадлежащих Visa International (как поставщикам), которые все являются типами «EMV». Почему у Visa International есть много разных вспомогательных средств для своих апплетов EMV? В чем разница между этими апплетами?

введите описание изображения здесь

3- Есть ли какой-либо апплет EMV с открытым исходным кодом? Есть ли какая-либо карта Java, на которой по умолчанию установлен апплет / пакет EMV?

4- Есть ли какая-либо конкретная разница между контактными и бесконтактными картами EMV? (Я имею в виду в файловой структуре или в командах APDU)

Ответ №1:

1- Вопрос в том, как я могу это сделать?

ДА. Реализуйте спецификации. Если есть какие-либо другие требования (а они наверняка будут), то на них следует ссылаться в спецификациях.

2- Есть ли у карт EMV специальный апплет-помощник?

Потому что они предлагают определенную функциональность? У вас даже может быть несколько приложений на одной карте. Обратите внимание, что можно выбирать приложения с использованием частичной помощи (смотрите, как частично совпадают дебетовая и кредитная карты). Специальные карты VISA, скорее всего, используются только внутри компании, например, при обслуживании банкоматов.

3- Есть ли какой-либо апплет EMV с открытым исходным кодом? Есть ли какая-либо карта Java, на которой по умолчанию установлен апплет / пакет EMV?

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

Часто такого рода реализации требуют методов, позволяющих избежать уязвимостей, которые должны оставаться в секрете; в конце концов, смарт-карты не обеспечивают идеальной безопасности. Это перпендикулярно реализации с открытым исходным кодом. Поэтому, если там что-то есть, оно должно быть создано из академического интереса (например, для тестирования безопасности протокола, подтверждения концепции и т.д.).

4- Есть ли какая-либо конкретная разница между контактными и бесконтактными картами EMV? (Я имею в виду в файловой структуре или в командах APDU)

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

В этой статье, похоже, содержится хорошее представление о возможных различиях.

Комментарии:

1. Спасибо, дорогой Мартен. Предположим, что я написал приложение на своей карте, чтобы преобразовать его в карту EMV. А также предположим, что я зарегистрировал AID этого апплета. Вопрос в том, «Как приложения POS / ATM могут выбирать мой апплет, не зная ПОМОЩИ?». Нужно ли мне просить разработчиков POS / ATM жестко закодировать поддержку моего апплета в своих приложениях?

2. Вероятно, да, потому что обычно вы бы использовали один из указанных вами EMV. ПОМОЩЬ отражает протокол, а не эмитента.

3. «Маловероятно. Это было бы довольно непригодно для использования, потому что для этого потребовалась бы оценка безопасности EMVCo.’ — вы знаете, как пользоваться Google? Я нашел по крайней мере две реализации. github.com/JavaCardOS/OpenEMV …. что касается удобства использования, то они предназначены в основном для тестирования. Более того, некоторые сервисы (общественный транспорт в нашем городе) поддерживают любую платежную карту для оплаты вашего предоплаченного билета. Вместо того, чтобы переводить деньги на дебетовую карту и терять ее через несколько месяцев…

4. Кстати, есть также хорошие списки материалов javacard с открытым исходным кодом, такие как список кураторов JavaCard для поиска по программному обеспечению.

Ответ №2:

Есть ли какой-либо апплет EMV с открытым исходным кодом? Есть ли какая-либо карта Java, на которой по умолчанию установлен апплет / пакет EMV?

Работал над похожим проектом и нашел это репозиторий github. По словам владельца:

Это полностью рабочий апплет EMV для javacard 2.2.1. Надеюсь, это поможет.