[Processing, Платежные системы, Разработка мобильных приложений] Как работают мобильные кошельки на примере приложения «Mir Pay»
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Как известно, в 2015 году мы запустили в эксплуатацию платежную систему «Мир», и карты «Мир» в России принимаются повсеместно. Это, конечно, очень здорово, но сейчас набирает популярность использование мобильных кошельков для оплаты покупок. Согласно статистике, в 2019 году 19% всех операций составляют платежи при помощи смартфона. В 2017 году их было всего 3%. В 2018 году собственное платёжное приложение Mir Pay представила и платежная система «Мир». Mir Pay написан на Kotlin, может работать на телефонах с поддержкой NFC и операционной системой Android 6.0 и выше.
Меня зовут Богданов Валерий, я являюсь руководителем группы тестирования в команде мобильных платежей департамента информационных технологий НСПК, и я расскажу о том, как работают мобильные кошельки на примере нашего приложения Mir Pay.
Сначала рассмотрим, как работает оплата с использованием пластиковой карты. В классическом случае карта выдается держателю банком-эмитентом. При этом карта в защищенной области памяти хранит общий с эмитентом ключ MK-AC (Application Cryptogram Master Key). Во время совершения оплаты (при online-операции) карта генерирует на основе MK-AC сессионный ключ SK-AC (Application Cryptogram Session Key) и на нем, с использованием данных карты и данных об операции, полученных с терминала, генерирует криптограмму ARQC (Authorization Request Cryptogram). В основе генерации криптограммы лежит алгоритм 3DES (Triple DES). В общем случае данные по операции поступают от карты к терминалу, далее на хост банка-эквайрера (т.е. обслуживающего торговую точку), затем к платежной системе и на самом последнем этапе к банку-эмитенту (т.е. выдавшему карту) для авторизации.
Эмитент проверяет криптограмму, сгенерировав ее сам на основе данных об операции, пришедших вместе с ARQC и сравнив ее со значением из полученных данных. Банк-эмитент может одобрить или отклонить операцию по результатам анализа карточных данных, криптограммы, установленных лимитов, оценки рисков, а также других параметров.
А теперь рассмотрим, чем отличается оплата с помощью мобильного кошелька. Здесь банк-эмитент ничего держателю кошелька не выдает (кроме карты, конечно, но она непосредственного участия в оплате не принимает), вместо этого держатель карты вносит ее данные в кошелек, и она в нем «появляется», точнее не она, а специальный токен-профайл, сгенерированный на базе этой карты. Уже сейчас понятно, что организовать оплату, как в классическом случае не получится, так как в телефоне отсутствуют карточные данные и ключ эмитента MK-AC – вместо них используется токен-профайл и его специальные ключи. Перед тем как разбираться с оплатой, давайте поймем, что происходит, когда карта «добавляется» в мобильный кошелек.
Держатель карты вводит данные в приложение (1), которое передает их в зашифрованном виде (об этом чуть позже) через хосты поставщика услуг мобильного кошелька (WSP — Wallet Service Provider) в платежную систему. В случае с Mir Pay поставщиком услуг кошелька является НСПК, поэтому данные сразу попадают в платежную систему (2). Далее обработка происходит на платформе мобильных платежей (ПМП). ПМП расшифровывает данные, по номеру карты определяет, каким эмитентом она была выдана, и запрашивает у него подтверждение на возможность добавления карты в кошелек (3). В случае положительного ответа (4) для данной карты происходит процедура генерации токен-профайла (5) и отправка его на телефон (6). Таким образом, вместо карточных данных на мобильном устройстве будет храниться токен-профайл, привязанный к данной карте и данному устройству. Отметим, что преобразование токен-профайла в исходные карточные данные вне платформы мобильных платежей невозможно. После сохранения токен-профайла на устройстве пользователя Mir Pay запрашивает у ПМП (7) пачку одноразовых ключей, которые будут использоваться приложением при совершении покупки в качестве сессионных ключей, аналогичных упомянутым выше SK-AC. Как видно из названия, одноразовый ключ не может быть применен более одного раза, поэтому в процессе использования приложение Mir Pay периодически подгружает из ПМП новые порции ключей. На этом добавление карты в приложение завершается.
Теперь рассмотрим, как изменился процесс оплаты по сравнению с оплатой по пластиковой карте.
Первый этап почти такой же, только вместо данных карты используются данные токен-профайла, а криптограмма ARQC генерируется на одноразовом ключе, полученном от ПМП в качестве сессионного SK-AC. Еще одно отличие Mir Pay от пластиковых карт состоит в том, что при генерации криптограммы вместо 3DES используется более современный симметричный алгоритм блочного шифрования AES (Advanced Encryption Standard).
Далее, данные об операции так же проходят через терминал, хост банка-эквайрера и попадают в платежную систему. По номеру токена (из токен-профайла) платежная система определяет, что имеет дело не с обычной картой, а именно с токеном, и направляет операцию в ПМП для проверки криптограммы и так называемой детокенизации – превращения токена обратно в данные реальной карты. Да, криптограмма теперь проверяется не эмитентом, а ПМП, так как именно в недрах платформы генерируются те самые одноразовые ключи и токен-профайл. Далее операция с уже карточными данными направляются банку-эмитенту на авторизацию. На обратном пути – обратное преобразование.
В Mir Pay используется схема с одноразовыми ключами, но существует и другой подход – хранение одного ключа на устройстве. Такой подход требует наличия элемента безопасности на устройстве и некоторые кошельки могут его применять с учетом того, что на определенных устройствах такой элемент безопасности присутствует. В нашем случае, учитывая огромное многообразие телефонов с ОС Android это просто не достижимо. Данная специфика и объясняет выбранную схему.
Рассматривая процесс токенизации, описанный выше, можно заметить один тонкий момент: при оплате кошельком используются данные токен-профайла, однако при добавлении карты ее данные отправляются на хосты платежной системы, а эти данные являются строго конфиденциальными. Для защиты карточных данных в Mir Pay предусмотрена многоступенчатая система защиты. При запуске автоматически включается механизм контроля целостности приложения и проверки окружения, не допускающий использование подложного приложения, модифицированного посторонними лицами. В случае обнаружения существенного риска, приложение сообщает об этом пользователю и автоматически удаляет все хранимые токен-профайлы. Дополнительно результаты данных проверок анализируются еще и на стороне ПМП.
Для обмена конфиденциальными данными ПМП и Mir Pay генерируют ключевые пары и обмениваются публичными компонентами. В силу того, что мы не можем на 100% доверять встроенному хранилищу ключей, была разработана схема с хранением разных ключевых компонент в разных местах: как в ключевом хранилище, так и в оперативной памяти. То есть для инициирования мошеннической операции необходимо, во-первых, извлечь криптограммы всех этих ключей, а во-вторых их нужно еще и расшифровать! Но это не так-то просто и не особо эффективно, поскольку для проведения операций используются строго одноразовые ключи. И только после того, как Mir Pay и ПМП обменялись публичными ключами, то есть фактически создали защищенный канал, допускается передача чувствительных данных, которые шифруются крипто-стойкими алгоритмами. По этому механизму на устройство пользователя доставляются и токен-профайл, и одноразовые ключи для проведения операций, и данные по уже совершенным операциям.
Как видно из этого описания, безопасность платежей на базе мобильных кошельков не только сохраняется на уровне пластиковых карт, а в некоторых случаях даже его превосходит! Приложение Mir Pay соответствует международным и отечественным требованиям к безопасности и позволяет держателям карт «Мир» использовать мобильный телефон для оплаты, не опасаясь утечки личных данных.
На текущий момент разработка Mir Pay продолжается – выпустив в сжатые сроки первые версии, мы уже внедряем новые разработки в приложение, не забывая улучшать то, что уже сделано.
Ряд моментов требует развития, — нужно учитывать вышедшие недавно и планируемые к выпуску модели смартфонов, лишенные гуглосервисов, — перейти на российские аналоги или разработать собственное решение.
===========
Источник:
habr.com
===========
Похожие новости:
- [Data Mining, Natural Language Processing, Python, Изучение языков, Машинное обучение] Делаем параллельный корпус из книг с помощью sentence embeddings
- [Google App Engine, Разработка мобильных приложений, Разработка под Android] Google начала публичный альфа-тест Jetpack Compose
- [Разработка мобильных приложений, Разработка под Android, Социальные сети и сообщества] Приложения для сети Fediverse могут удалить из Google Play из-за недопустимого контента
- [Криптография, Занимательные задачки, Алгоритмы, Научно-популярное, Natural Language Processing] Ронго-ронго: нерасшифрованная письменность острова Пасхи
- [Разработка под iOS, Разработка мобильных приложений, Алгоритмы] Что мы знаем о секретной пасхалке гугла для разработчиков?
- [Тестирование IT-систем, Разработка мобильных приложений, Разработка для интернета вещей, Бизнес-модели] Марк маркировал, маркировал, да и вымаркировал. Маркировка — это ж просто!?
- [Разработка веб-сайтов, Разработка мобильных приложений, Управление разработкой, Микросервисы] Micro-frontend. Асинхронный подход к мультикомандной разработке
- [Разработка мобильных приложений, ReactJS] 10 вещей, о которых нужно помнить при переходе с React на React Native (перевод)
- [Разработка мобильных приложений, Разработка под Android, Развитие стартапа, Офисы IT-компаний, Криптовалюты] Top 10 Blockchain Development Companies To Partner With In 2020-21
- [DevOps, Информационная безопасность, Разработка веб-сайтов, Разработка мобильных приложений] DevSecOps: принципы работы и сравнение SCA. Часть первая
Теги для поиска: #_processing, #_platezhnye_sistemy (Платежные системы), #_razrabotka_mobilnyh_prilozhenij (Разработка мобильных приложений), #_mir_plat.form (мир plat.form), #_mobilnyj_platezh (мобильный платеж), #_mobilnye_koshelki (мобильные кошельки), #_token (токен), #_blog_kompanii_mir_plat.form_(nspk) (
Блог компании Мир Plat.form (НСПК)
), #_processing, #_platezhnye_sistemy (
Платежные системы
), #_razrabotka_mobilnyh_prilozhenij (
Разработка мобильных приложений
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:57
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Как известно, в 2015 году мы запустили в эксплуатацию платежную систему «Мир», и карты «Мир» в России принимаются повсеместно. Это, конечно, очень здорово, но сейчас набирает популярность использование мобильных кошельков для оплаты покупок. Согласно статистике, в 2019 году 19% всех операций составляют платежи при помощи смартфона. В 2017 году их было всего 3%. В 2018 году собственное платёжное приложение Mir Pay представила и платежная система «Мир». Mir Pay написан на Kotlin, может работать на телефонах с поддержкой NFC и операционной системой Android 6.0 и выше. Меня зовут Богданов Валерий, я являюсь руководителем группы тестирования в команде мобильных платежей департамента информационных технологий НСПК, и я расскажу о том, как работают мобильные кошельки на примере нашего приложения Mir Pay. Сначала рассмотрим, как работает оплата с использованием пластиковой карты. В классическом случае карта выдается держателю банком-эмитентом. При этом карта в защищенной области памяти хранит общий с эмитентом ключ MK-AC (Application Cryptogram Master Key). Во время совершения оплаты (при online-операции) карта генерирует на основе MK-AC сессионный ключ SK-AC (Application Cryptogram Session Key) и на нем, с использованием данных карты и данных об операции, полученных с терминала, генерирует криптограмму ARQC (Authorization Request Cryptogram). В основе генерации криптограммы лежит алгоритм 3DES (Triple DES). В общем случае данные по операции поступают от карты к терминалу, далее на хост банка-эквайрера (т.е. обслуживающего торговую точку), затем к платежной системе и на самом последнем этапе к банку-эмитенту (т.е. выдавшему карту) для авторизации. Эмитент проверяет криптограмму, сгенерировав ее сам на основе данных об операции, пришедших вместе с ARQC и сравнив ее со значением из полученных данных. Банк-эмитент может одобрить или отклонить операцию по результатам анализа карточных данных, криптограммы, установленных лимитов, оценки рисков, а также других параметров. А теперь рассмотрим, чем отличается оплата с помощью мобильного кошелька. Здесь банк-эмитент ничего держателю кошелька не выдает (кроме карты, конечно, но она непосредственного участия в оплате не принимает), вместо этого держатель карты вносит ее данные в кошелек, и она в нем «появляется», точнее не она, а специальный токен-профайл, сгенерированный на базе этой карты. Уже сейчас понятно, что организовать оплату, как в классическом случае не получится, так как в телефоне отсутствуют карточные данные и ключ эмитента MK-AC – вместо них используется токен-профайл и его специальные ключи. Перед тем как разбираться с оплатой, давайте поймем, что происходит, когда карта «добавляется» в мобильный кошелек. Держатель карты вводит данные в приложение (1), которое передает их в зашифрованном виде (об этом чуть позже) через хосты поставщика услуг мобильного кошелька (WSP — Wallet Service Provider) в платежную систему. В случае с Mir Pay поставщиком услуг кошелька является НСПК, поэтому данные сразу попадают в платежную систему (2). Далее обработка происходит на платформе мобильных платежей (ПМП). ПМП расшифровывает данные, по номеру карты определяет, каким эмитентом она была выдана, и запрашивает у него подтверждение на возможность добавления карты в кошелек (3). В случае положительного ответа (4) для данной карты происходит процедура генерации токен-профайла (5) и отправка его на телефон (6). Таким образом, вместо карточных данных на мобильном устройстве будет храниться токен-профайл, привязанный к данной карте и данному устройству. Отметим, что преобразование токен-профайла в исходные карточные данные вне платформы мобильных платежей невозможно. После сохранения токен-профайла на устройстве пользователя Mir Pay запрашивает у ПМП (7) пачку одноразовых ключей, которые будут использоваться приложением при совершении покупки в качестве сессионных ключей, аналогичных упомянутым выше SK-AC. Как видно из названия, одноразовый ключ не может быть применен более одного раза, поэтому в процессе использования приложение Mir Pay периодически подгружает из ПМП новые порции ключей. На этом добавление карты в приложение завершается. Теперь рассмотрим, как изменился процесс оплаты по сравнению с оплатой по пластиковой карте. Первый этап почти такой же, только вместо данных карты используются данные токен-профайла, а криптограмма ARQC генерируется на одноразовом ключе, полученном от ПМП в качестве сессионного SK-AC. Еще одно отличие Mir Pay от пластиковых карт состоит в том, что при генерации криптограммы вместо 3DES используется более современный симметричный алгоритм блочного шифрования AES (Advanced Encryption Standard). Далее, данные об операции так же проходят через терминал, хост банка-эквайрера и попадают в платежную систему. По номеру токена (из токен-профайла) платежная система определяет, что имеет дело не с обычной картой, а именно с токеном, и направляет операцию в ПМП для проверки криптограммы и так называемой детокенизации – превращения токена обратно в данные реальной карты. Да, криптограмма теперь проверяется не эмитентом, а ПМП, так как именно в недрах платформы генерируются те самые одноразовые ключи и токен-профайл. Далее операция с уже карточными данными направляются банку-эмитенту на авторизацию. На обратном пути – обратное преобразование. В Mir Pay используется схема с одноразовыми ключами, но существует и другой подход – хранение одного ключа на устройстве. Такой подход требует наличия элемента безопасности на устройстве и некоторые кошельки могут его применять с учетом того, что на определенных устройствах такой элемент безопасности присутствует. В нашем случае, учитывая огромное многообразие телефонов с ОС Android это просто не достижимо. Данная специфика и объясняет выбранную схему. Рассматривая процесс токенизации, описанный выше, можно заметить один тонкий момент: при оплате кошельком используются данные токен-профайла, однако при добавлении карты ее данные отправляются на хосты платежной системы, а эти данные являются строго конфиденциальными. Для защиты карточных данных в Mir Pay предусмотрена многоступенчатая система защиты. При запуске автоматически включается механизм контроля целостности приложения и проверки окружения, не допускающий использование подложного приложения, модифицированного посторонними лицами. В случае обнаружения существенного риска, приложение сообщает об этом пользователю и автоматически удаляет все хранимые токен-профайлы. Дополнительно результаты данных проверок анализируются еще и на стороне ПМП. Для обмена конфиденциальными данными ПМП и Mir Pay генерируют ключевые пары и обмениваются публичными компонентами. В силу того, что мы не можем на 100% доверять встроенному хранилищу ключей, была разработана схема с хранением разных ключевых компонент в разных местах: как в ключевом хранилище, так и в оперативной памяти. То есть для инициирования мошеннической операции необходимо, во-первых, извлечь криптограммы всех этих ключей, а во-вторых их нужно еще и расшифровать! Но это не так-то просто и не особо эффективно, поскольку для проведения операций используются строго одноразовые ключи. И только после того, как Mir Pay и ПМП обменялись публичными ключами, то есть фактически создали защищенный канал, допускается передача чувствительных данных, которые шифруются крипто-стойкими алгоритмами. По этому механизму на устройство пользователя доставляются и токен-профайл, и одноразовые ключи для проведения операций, и данные по уже совершенным операциям. Как видно из этого описания, безопасность платежей на базе мобильных кошельков не только сохраняется на уровне пластиковых карт, а в некоторых случаях даже его превосходит! Приложение Mir Pay соответствует международным и отечественным требованиям к безопасности и позволяет держателям карт «Мир» использовать мобильный телефон для оплаты, не опасаясь утечки личных данных. На текущий момент разработка Mir Pay продолжается – выпустив в сжатые сроки первые версии, мы уже внедряем новые разработки в приложение, не забывая улучшать то, что уже сделано. Ряд моментов требует развития, — нужно учитывать вышедшие недавно и планируемые к выпуску модели смартфонов, лишенные гуглосервисов, — перейти на российские аналоги или разработать собственное решение. =========== Источник: habr.com =========== Похожие новости:
Блог компании Мир Plat.form (НСПК) ), #_processing, #_platezhnye_sistemy ( Платежные системы ), #_razrabotka_mobilnyh_prilozhenij ( Разработка мобильных приложений ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:57
Часовой пояс: UTC + 5