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

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

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

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


person Sabina    schedule 13.09.2018    source источник


Ответы (3)


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

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

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

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

person Adarsh Nanu    schedule 14.09.2018
comment
Да, можно так сказать. - person Sabina; 16.09.2018
comment
Я ответил на твой вопрос? Или есть какие-то недостающие части? - person Adarsh Nanu; 16.09.2018
comment
Но, например, говорят, что SDA не так безопасен, как DDA, и поэтому можно дублировать карты с SDA. - person Sabina; 16.09.2018
comment
Итак, вы рекомендуете сотрудничество с эмитентом, потому что, по вашему мнению, карты не могут дублироваться? - person Sabina; 16.09.2018
comment
SDA может только гарантировать, что данные не будут изменены после того, как они были выпущены. - person Adarsh Nanu; 16.09.2018
comment
Значит, карты, которые используют SDA, можно дублировать? - person Sabina; 16.09.2018
comment
Когда карта выпускается, существует эмитент карты, который проверяет карту, которая в данном контексте является криптограммой. Так да. Вовлечен эмитент. - person Adarsh Nanu; 16.09.2018
comment
Я очень ценю вашу помощь! Итак, что вы мне порекомендуете? - person Sabina; 16.09.2018
comment
В отличие от карт с магнитной полосой, клонировать чип-карту непросто. Если у вас вообще получится клонирование, проще всего быть SDA-картами. - person Adarsh Nanu; 16.09.2018
comment
Я хочу только протестировать свое приложение с помощью клонирования. Поэтому, когда мое приложение работает, я хочу попросить разных эмитентов о сотрудничестве. Но когда это не лучший способ, я бы попытался сначала связаться с эмитентом. - person Sabina; 16.09.2018
comment
Кошельки не работают изолированно, вы можете создать любую функциональность. Но чтобы вы могли создать криптограмму и кого-то для проверки, на обоих концах должны быть совпадающие ключи. - person Adarsh Nanu; 16.09.2018
comment
Клонирование карты в первую очередь является незаконным. Есть согласованные способы разработки мобильных приложений и кошельков. Идите по этому поводу, не ищите ярлыков. Конечно, это требует больших усилий, но без боли нет успеха. - person Adarsh Nanu; 16.09.2018
comment
Хорошо, большое спасибо за вашу помощь и за обсуждение со мной проблемы. Это очень помогает !! Спасибо! - person Sabina; 16.09.2018

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 находится в ней.

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

person Arjun    schedule 17.09.2018

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

person Charles Chen    schedule 25.09.2018