- Операция «Токенизация», или Почему Apple Pay надежнее банковских карт
- Apple Pay: полное и исчерпывающее описание
- Токенизация карт в E-commerce: что это такое и как работает?
- Что общего с Apple Pay и Google Pay
- Итак, что такое токенизация в E-commerce
- Технические аспекты
- Интеграция с платежными системами
- Токенизация в Яндекс.Кассе
- Как происходит платеж токеном?
- Вместо заключения
Операция «Токенизация», или Почему Apple Pay надежнее банковских карт
Комфорт от использования Apple Pay можно сопоставить с таковым от владения банковской картой. Имея в кармане «пластик», вам гарантированно не придется греметь мелочью и шелестеть купюрами. Даже в случае его утери вы сможете незамедлительно обратиться за помощью в банк. Не слишком приятная, но и не самая вероятная ситуация из всех, что могла с вами произойти. Лично мне она напоминает спонтанную разрядку смартфона, временно лишающую вас платежеспособности. Но ответьте себе сами, как часто ваш iPhone садится ни с того ни с сего?
Несомненно, у описанных ниже доводов найдется немало критиков. Многим из них, вероятно, еще не удалось испытать радость первой проведенной с помощью смартфона транзакции. Можете называть меня фанбоем или поехавшим, но расплачиваться посредством Apple Pay настолько удобно и круто, что просто дух захватывает.
Огромную роль, во всяком случае, в начале играет эффект неожиданности. Ты не знаешь в точности, как именно нужно себя вести и что делать, если что-то пойдет не так. Хуже этого могут быть только въедливые взгляды покупателей в очереди, с опаской посматривающих на орудующего смартфоном тебя. И вот тот самый момент – сканер считал твой отпечаток, терминал издал звук подтверждения, и оплата прошла. Одним словом, кайф.
Но речь не об этом. Вскоре ощущение самодовольства пройдет, мозг и руки попривыкнут к не самому естественному действию, и их место займет вопрос безопасности. Насколько защищена эта система? Не сможет ли кто-то, кроме меня, воспользоваться сохраненной на устройстве платежной информацией? Что, в конце концов, мешает смартфону случайно заплатить за того парня в татуировках? Ответ на эти вопросы только один – токенизация.
Так уж вышло, что Apple Pay не передает данные вашей банковской карты. В момент подтверждения оплаты вашим отпечатком пальца сервис самостоятельно генерирует уникальную ссылку, которая и заменяет собой как номер лицевого счета, так и имя владельца, и даже CCV-код.
Еще раз: система не шифрует их, она просто не имеет к ним доступа, что не позволит даже наиболее талантливым хакерам узнать хоть что-то о ваших сбережениях, или, что еще хуже, стянуть их. Банковские карты, к сожалению, пока такой защитой не обладают.
Аналогичным образом работает и Apple Pay в браузере.
Купить что-нибудь в Сети сегодня – обычное дело для подавляющего большинства наших читателей. Развитие законодательства в сфере онлайн-торговли, а также разных способов шифрования данных сделали оплату заказов в Интернете вещью вполне безопасной и даже обыденной. Но только в случае, если речь заходит об Apple Pay.
В остальных случаях даже защищенное расширение протокола “https” не может гарантировать вам стопроцентной защиты. Почему? Никто не знает, не произойдет ли утечка данных и не «сольет» ли недобросовестный продавец сведения о своих клиентах третьим лицам. Оплачивая покупки в Интернете при помощи Apple Pay, вы не будете передавать продавцу ничего, кроме особой криптограммы, названной выше токеном.
Другая сторона медали – отсутствие повсеместной поддержки сайтами и платежными системами сервиса из Купертино. По состоянию на октябрь 2016 года можно пересчитать по пальцам количество веб-сайтов, предлагающих расплатиться при помощи Apple Pay. Банков среди них еще меньше. Но будем надеяться, что ждать осталось не долго.
Источник
Apple Pay: полное и исчерпывающее описание
Apple представила свой новый платежный сервис Apple Pay, который олицетворяет собой первый шаг компании к цели заменить ваш бумажник «легким, безопасным и конфиденциальным» средством оплаты. Apple Pay обладает несколькими способами защиты, которые предоставляют пользователю более высокий уровень безопасности, чем традиционная кредитная карта. Среди них – уникальный номер учетной записи устройства, который представляет собой замену номера кредитной карты, динамические коды безопасности для каждой транзакции и биометрическое подтверждение платежа при помощи сенсора Touch ID. В преддверии запуска сервиса Apple Pay в США эксперт сайта TUAW Йони Хейслер пристально рассмотрел особенности системы безопасности платежного сервиса Apple и описал алгоритмы защиты клиентской информации.
Как сказано выше, Apple Pay использует «токены», которые соотносятся с уникальным номером учетной записи устройства, чтобы заменить существующий номер кредитной карты на iPhone. Случайный 16-значный номер – уникальный номер учетной записи устройства, который гарантирует, что продавец не сможет получить доступ к номеру кредитной карты пользователя, защищая его от угроз безопасности. Поскольку токены являются случайно сгенерированными номерами, то из них не может быть дешифрован номер банковской карты. Уникальный номер учетной записи устройства и токен объединяются с динамически создаваемым уникальным одноразовым кодом, который заменяет CVV кредитной карты для каждой транзакции.
Предоставляя дополнительный уровень безопасности, iPhone с сервисом Apple Pay во время каждой транзакции отправляет динамически создаваемый CVV вместе с зашифрованным сообщением. CVV – это трехзначное число, которое находится на оборотной стороне вашей кредитной карты, а в случае с Apple Pay — это алгоритмически сгенерированное динамическое число, которое привязывается напрямую к токену. Зашифрованное сообщение «уникально идентифицирует устройство», которое создало токен и, в соответствии со спецификацией системы платежей EMV, похоже на зашифрованное сообщение, состоящее из токена, данных об устройстве и данных о транзакции. Однако следует отметить, что точные составляющие зашифрованного сообщения, которое отсылает система Apple Pay, не разглашаются.
Как отмечает Хейслер, уникальный номер учетной записи устройства не может быть использован для проведения транзакции без уникального одноразового зашифрованного сообщения, которое подтверждает, что «отправленный токен создан используемым устройством». Зашифрованное сообщение также содержит информацию о продавце и о сумме денег, взимаемых со счета.
Транзакция с использованием уникального номера учетной записи устройства и зашифрованного сообщения на следующем этапе должна быть подтверждена с помощью сенсора Touch ID, который полностью заменяет небезопасные методы подтверждения платежа, такие как пароль или ПИН-код.
Как говорит специалист в области кредитных карт, с которым консультировались TUAW, платежи с использованием токенов, которые использует Apple – «это новый и гораздо более высокий стандарт безопасности в области электронных платежей». Внимание к безопасности, с которым производится создание токенов и сопровождение транзакций, — это новый стандарт, который, по мнению экспертов, определенно станет преградой для все более широко распространяющихся схем мошенничества.
Сервис Apple Pay предположительно должен стать доступен в октябре, когда обновится iOS 8. Упоминания об Apple Pay уже были найдены в iOS 8.1 beta, которая стала доступна разработчикам в понедельник. Новые элементы интерфейса Apple Pay появились во второй бете, которую разработчики получили минувшей ночью.
Источник
Токенизация карт в E-commerce: что это такое и как работает?
Всем привет! Недавно мы в Яндекс.Кассе совместно с платежными системами Visa и Mastercard запустили новую технологию токенизации платежей для E-commerce, или, по-другому, онлайн-коммерции. Кто-то может подумать: что тут такого — с токенизацией карт разобрались уже с выходом Apple Pay, Google Pay и других *Pay. Но нет, тут что-то новенькое, а мы еще и первыми эту технологию запустили в России этой весной для магазинов-партнеров, так что почему бы не поделиться.
В США и Европе эта технология появилась несколько раньше, и пользователи таких сервисов, как Netflix и Amazon, уже платят E-commerce токенами, хотя, возможно, даже не знают об этом. А я сейчас расскажу, как это устроено не только снаружи (для партнеров и держателей карт), но и изнутри, с точки зрения разработчика и тимлида этого проекта. Если интересно — велкам под кат.
Что общего с Apple Pay и Google Pay
Те читатели, которые представляют, как работают Apple Pay и Google Pay (а кто не знает — вот наша статья про запуск *Pay), увидят тут знакомые слова.
Если коротко, то одна из особенностей технологий *Pay заключается в том, что плательщику не нужно передавать магазину данные своей банковской карты. Он один раз обменивает их на специальный цифровой токен и дальше, не подвергаясь риску перехвата данных карты, при платеже использует только этот токен. А преимущество в том, что токен работает только вместе с одноразовой криптограммой, которая генерируется на телефоне плательщика, а вне телефона эту криптограмму создать не получится. К тому же этими токенами легко управлять — удалять или создавать новые — дело одной минуты в онлайне, никаких походов в банк и прочей бюрократии.
Пока запомним эти особенности токенизации карт на устройствах пользователей:
- платить токеном может только тот, кто этот токен создал,
- управлять токеном можно отдельно и независимо от управления банковской картой.
Запомнили? А теперь перейдем к токенизации карт для E-commerce, иначе говоря, для онлайн-платежей в интернет-магазинах.
Итак, что такое токенизация в E-commerce
Вообще, токенизация карты — это обмен конфиденциальных данных банковской карты на специальный токен, который позволяет оплачивать покупки с помощью этой карты.
Конфиденциальные данные карты — это ее номер (PAN — Primary Account Number) и срок действия.
Если для подключения карты в *Pay инициатором является сам держатель карты, то токенизацию для E-commerce инициирует интернет-магазин. Но зачем (и с какой стати)?
Наверняка многие из вас пользуются сервисами с подписками: будь то ежемесячная оплата музыки, фильмов или, например, коммунальных услуг. Как оформляется эта подписка? Вы заходите на сайт интернет-магазина, вводите данные своей карты и ставите галочку, подтверждающую ваше согласие на то, что магазин сохранит данные вашей карты (PAN и срок действия) и сможет самостоятельно инициировать оплату за конкретную услугу.
Нужно понимать, что такое действие подразумевает, что магазин должен где-то сохранить данные карты. Тут обычно два варианта:
- сохранить их на собственных серверах, если они сертифицированы на соответствие стандарту PCI DSS, что могут себе позволить далеко не все интернет-магазины,
- доверить их хранение своему платежному решению, например Яндекс.Кассе, которая сертифицирована PCI DSS по высшему уровню безопасности.
А нельзя ли и здесь применить подход с токенизацией? Почему бы вместо хранения данных банковской карты не использовать некоторый токен, которым можно управлять отдельно от карты? А что если сделать так, чтобы при очередном перевыпуске карты токен оставался бы одним и тем же и не нужно было заново привязывать карту к разным сервисам? Звучит любопытно?
Давайте обо всем по порядку. При токенизации мы обмениваем данные банковской карты на некий токен, но что это такое? Токен предоставляется платежной системой карты — Mastercard или Visa. Он представляет собой уникальный идентификатор, аналогичный номеру учетной записи устройства в Apple Pay или номеру виртуального счета в Google Pay, которые можно найти в приложении на смартфоне (Wallet на устройствах Apple и Google Pay — на Android).
В отличие от *Pay, в E-commerce токенизации создание токена инициирует интернет-магазин или его платежное решение, а сами токены хранятся на серверах платежных систем.
Разумеется, кто угодно не может прийти к платежной системе и получить токен чьей-либо карты для оплаты покупок. Во-первых, токенизировать карты могут только те платежные решения, которые пройдут сертификацию и получат одобрение платежных систем. Такое платежное решение называется On-Behalf Token Requestor или Token Service Provider, но для простоты будем впредь оперировать термином Token Requestor. И только Token Requestor может инициировать платежи токеном. Во-вторых, токен всегда выпускается для конкретного магазина, и с помощью токена можно платить только в этом магазине. Очень похоже на то, как токен *Pay связан с устройством, на котором он был создан.
За счет чего это достигается? Просто перед проведением каждого платежа по токену Token Requestor должен получить одобрение у платежной системы на этот платеж. Факт такого одобрения надо будет предъявить во время фактического проведения платежа, поэтому одобрение это имеет форму одноразовой криптограммы, которую формирует платежная система карты. При проведении платежа эта криптограмма добавляется к параметрам запроса в банк-эквайер и затем передается платежной системе, которая проверяет подлинность этой криптограммы, которую сама ранее выдавала.
А что там про управление токеном независимо от управления картой? Тут вообще все просто — токен живет своей жизнью, имеет свои статусы жизненного цикла, и о каждом изменении статуса Token Requestor сразу же узнает от платежной системы карты.
Подведем некоторый итог. Что токенизация дает держателю карты?
- Сохранность данных реальной банковской карты. При платеже используется токен, а сами данные карты не передаются, поэтому их никак не сможет перехватить потенциальный злоумышленник. А перехватывать данные токена нет никакого смысла, потому что токен превращается в тыкву при попытке заплатить в любом другом магазине.
- При перевыпуске банковской карты токен, выпущенный для интернет-магазина, продолжает действовать, и владельцу карты нет необходимости привязывать новую карту к нужным ему сервисам.
- Возможность управления токеном. Токенами можно будет управлять, не затрагивая саму банковскую карту. Банки-эмитенты смогут реализовать в своих интерфейсах специальные инструменты для гибкого управления привязками в интернет-магазинах (создание токена в новом магазине, просмотр имеющихся токенов, удаление неактуальных).
Что это дает интернет-магазинам?
- То, что хорошо для покупателя, хорошо и для магазина, поэтому использование токенизированных карт может повысить лояльность клиентов.
- Возможность перевыпуска банковской карты с сохранением токена важна для магазинов, использующих сценарии платежей по подписке. Магазину больше не нужно будет отключать подписку, если пользователь забыл обновить данные карты, и не придется всячески напоминать ему об этом. Стоит отметить, что у держателя карты все равно остается полный контроль и в любой момент он сможет отключить саму подписку.
- Повышение конверсии платежей. Мы исследовали, как использование токенов влияет на конверсию платежей в сравнении с использованием сохраненных данных карт. Выяснилось, что доля успешных платежей без использования токенов была 88,53%, а после включения токенизации выросла до 97,89%*. Получившаяся разница объясняется тем, что если банк-эмитент уже одобрил создание токена, то в дальнейшем платежи этим токеном будут вызывать большее доверие у антифрод-системы банка. На конверсию влияет также возможность оплаты перевыпущенными картами. Если человек не обновит данные карты, которую он привязал к интернет-магазину, то оплата не пройдет, а с токеном такой проблемы не возникнет.
*Мы сравнивали платежи за этот апрель в крупном онлайн-кинотеатре (MCC 4899) — привязанными картами без 3DS, без учета неуспешных платежей из-за нехватки денег на карте.
Технические аспекты
Для любителей копнуть чуть глубже, расскажу о технологии токенизации карт и ее запуске в Яндекс.Кассе — как все это выглядит изнутри нашего платежного решения.
Интеграция с платежными системами
Чтобы получить техническую возможность токенизировать карты и проводить платежи токенами, необходимо интегрироваться с Visa и Mastercard, пройти тесты, сертификацию и получить их одобрение на запуск в production. Поначалу это звучало устрашающе. Да и не только поначалу, если честно, по крайней мере, для меня. Но устрашала скорее сертификация, а по технике все было предельно ясно.
Интеграция подразумевает реализацию следующего API (условно) между платежной системой и нами в качестве Token Requestor:
- Создание токена.
Мы передаем платежной системе данные банковской карты и идентификатор интернет-магазина, для которого создается токен. Дополнительно мы проводим скоринг для оценки рисков (risk scoring) токенизации конкретной карты для конкретного магазина и также передаем результат скоринга в запросе. В ответ мы получаем решение, одобрена токенизация карты ее эмитентом или нет, и если одобрена, получаем уникальный идентификатор созданного токена. После этого токен активен, можно проводить платежи с его использованием. - Получение одноразовой криптограммы для платежа токеном.
Мало обладать токеном, чтобы им платить: для каждого платежа нужно еще получить одобрение от платежной системы — криптограмма, помните? Так вот, чтобы получить эту криптограмму, мы передаем в запросе платежной системе идентификатор токена и некоторые детали платежа. Если токен активен, мы в ответе получаем эту одноразовую криптограмму, которую затем надо будет передать эквайеру при проведении платежа по карте. - Уведомление от платежной системы об изменении состояния токена.
Это может быть приостановка/возобновление действия токена по инициативе держателя карты, удаление этого токена навсегда, а также обновление данных банковской карты, для которой был выпущен этот токен, в случае ее перевыпуска. Нам нужно уметь обрабатывать определенные запросы от платежных систем и обновлять у себя информацию о токене, проще простого.
Это описание API условное и обобщенное — нетрудно догадаться, что у каждой платежной системы разные форматы запросов/ответов, алгоритмы подписи и шифрования данных в запросах, и есть различные нюансы в бизнес-логике. Поэтому все эти детали и различия мы скрыли от остальной нашей системы, создав отдельный сервис токенизации карт, который является адаптером к платежным системам и полностью отвечает за жизненный цикл токенов.
Токенизация в Яндекс.Кассе
Яндекс.Касса представляет из себя большую систему по приему платежей для интернет-магазинов. Она состоит из многих десятков различных сервисов: backend-, frontend-приложения, BI-сервисы. Они обеспечивают прием платежа пользователя различными способами, перевод денежных средств магазину, управление платежами через личный кабинет магазина, аналитические сервисы и тому подобное. И как именно сюда встроилась токенизация карт?
Главный вопрос: в какой момент создавать токен для банковской карты?
В API Яндекс.Кассы есть возможность сохранять выбранный способ оплаты для последующих платежей в будущем, мы это называем автоплатежи.
Это может происходить как при привязке карты к аккаунту пользователя в личном кабинете магазина, так и при подписке на периодической основе, когда платежи с карты будут проводиться автоматически. В обоих сценариях при создании платежа магазин по API передает параметр save_payment_method: true, и после успешного платежа мы выдаем магазину payment_method_id — идентификатор сохраненного способа оплаты, с помощью которого он сможет проводить новые платежи.
Вот он, этот момент. Токены созданы как раз для платежей, инициированных магазином. Поэтому сразу после проведения платежа с сохранением способа оплаты мы асинхронно ставим нашему сервису токенизации задачу создать токен для пары «карта и магазин».
Что же сами платежные системы делают в момент токенизации карты?
Они обращаются в банк-эмитент, с запросом на создание токена (как это происходит и при создании токенов *Pay), и банк выпускает токен для данного магазина. Банк также может уведомить об этом держателя карты и отобразить созданный токен в его личном кабинете.
Как происходит платеж токеном?
Пожалуй, тут понадобится некоторая иллюстрация, как вообще проходит платеж ранее сохраненной картой, который инициирует интернет-магазин:
Итак, при платеже ранее сохраненным способом магазин передает только его идентификатор — payment_method_id. По этому идентификатору сервис платежей картами находит данные (PAN и срок действия) карты и передает их одному из банков-эквайеров, который далее общается с платежной системой карты.
С токенами в этом сценарии добавляется еще один шаг:
Если видим, что для карты и магазина ранее был выпущен токен, то мы можем провести платеж без использования данных карты. Для этого мы через сервис токенизации предварительно отправляем запрос в международную платежную систему с данными токена и в ответ получаем одноразовую криптограмму, которая подтверждает, что токен действующий и мы имеем право провести платеж. И уже после этого мы передаем банку-эквайеру данные токена вместе с этой криптограммой.
А что происходит в сценарии, когда пользователь перевыпускает карту в своем банке?
Если к карте ранее были выпущены токены, то банк-эмитент сообщает в платежную систему Mastercard/Visa, что карта перевыпущена. В свою очередь, каждый Token Requestor, который выпускал токены к этой карте, получит уведомление от платежной системы. Оно содержит обновленную информацию о карте: последние 4 цифры номера и новый срок действия. Токен при этом остается прежним.
Когда магазин инициирует очередной платеж с уже просроченной карты, которая на самом деле была перевыпущена, а у нас есть токен к ней для этого магазина — платеж пройдет успешно. К тому же мы сообщим магазину уже новые последние 4 цифры банковской карты — они будут присутствовать в ответах нашего API. Это нужно для того, чтобы и магазин, и пользователь всегда видели, с какой именно карты списываются средства.
Вместо заключения
Токенизация в E-commerce — это новый этап развития приема платежей, повышающий удобство для всех участников процесса оплаты. Мы ожидаем, что в ближайшее время технологию поддержат многие российские банки и провайдеры — и она станет новым стандартом платежного рынка.
Конечно, рассказ получился скорее обзорным, но я надеюсь, что каждый читатель найдет в нем что-то полезное для себя — повысит свой уровень финансовой грамотности, узнает о новинках в финтехе или, может, найдет идею для развития своего бизнеса.
Источник