Платежное приложение - EMV

Я разрабатываю платежное приложение для Android. Я прочитал все четыре книги EMV (версия 4.3), которые я использовал для реализации протокола для связи с терминалом. Я также купил комплект симулятора терминала от Mastercard для тестирования моего приложения.

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

Поэтому мой вопрос: есть ли возможность получить недостающие данные? Может быть, он доступен онлайн? Или я должен сотрудничать с банком-эмитентом? Извините за этот общий вопрос, но я действительно ценю каждый совет для вас! Спасибо!

3 ответа

Решение

Могу ли я сказать, что вы пытаетесь создать NFC-кошелек на Android и пытаетесь протестировать его на симуляторе от MasterCard?

Не все можно вынуть из карты, иначе все начали бы клонировать, и рынок был бы залит поддельными картами:)

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

Но будь то Secure Element Wallet или HCE, мастер-ключ эмитента не загружается напрямую в кошелек. В случае защищенного элемента доверенный сервер подключается к кошельку и совместно использует ключ карты, полученный из главного ключа эмитента, и во время транзакции ключ сеанса генерируется из ключа карты, с помощью которого будет генерироваться криптограмма. Когда это HSE, вы в основном будете хранить только сеансовые ключи, так как он не так безопасен, как SE. Вы можете хранить пару ключей сеанса, каждый из которых используется один раз, или один ключ сеанса, который можно использовать несколько раз, - все в зависимости от вашей реализации.

But there is some data I don't receive through the terminal simulator like the Issuer Master Key for generating the Application Cryptogram.

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

Real Process is like:-

1 - Карта сгенерирует криптограмму, используя свой ключ AC, и отправит криптограмму в HOST для проверки,

2 - Хост вычисляет криптограмму по ключу, и она будет успешной, если обе криптограммы совпадают

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

Надеюсь, поможет.

Мастер Ключи Эмитента генерируются и хранятся в главном HSM Эмитента. Каждая выпущенная карта загружена производными ключами от мастер-ключей эмитента. Поэтому каждая карта имеет свои собственные производные ключи. Так как ключи используются для расчета прикладной криптограммы и AC должны быть доверенными, ключи НИКОГДА не могут быть прочитаны (если это возможно, безопасность EMV нарушена). По этой причине Эмитент НЕ будет делиться мастер-ключами Эмитента с кем-либо, а будет храниться только в HSM!

Другие вопросы по тегам