Dpan карты что это
Пропуск в партер – как запускались Apple Pay и Samsung Pay в Яндекс.Деньгах
На волне всеобщего увлечения бесконтактной оплатой хочу поделиться подкапотным опытом Яндекс.Денег по запуску Apple Pay и Samsung Pay. Нашей команде пришлось координировать усилия с MasterCard и производителями смартфонов. Подружить эту компанию и не сойти с ума – задача сама по себе нетривиальная. Вдобавок мы были в первой волне тех, кто пришел на «праздник», и многие решения пришлось обкатывать на ходу.
Под катом подробности о подключении бесконтактных платежей в Яндекс.Деньгах, тестировании и особенностях работы систем безопасности с новым типом платежей.
В этом посте речь пойдет о платежных системах Apple Pay и Samsung Pay, которые основаны на схожих принципах и отличаются в деталях. Для простоты я буду называть их просто *Pay везде, где детали не принципиальны.
Зачем все это
Оплатить товар с телефона можно давно – достаточно установить мобильное приложение вашего банка, в котором должна быть опция бесконтактной оплаты (приложение Яндекс.Денег тоже подойдет, кстати). Данные о карте хранятся в защищенном виде на устройстве пользователя и доступны по технологии HCE – это программный аналог чипа банковской карты.
Есть и отдельные программы вроде Кошелька, которые предлагают возможности беспроводной оплаты для банков-партнеров и, в качестве бонуса, хранение скидочных карт.
Вот почему раньше для бесконтактной оплаты требовались дополнительные «прослойки»:
Владельцы iPhone не могли платить бесконтактно, потому что интерфейс NFC в смартфонах Apple нельзя напрямую использовать для оплаты в сторонних приложениях. К тому же NFC появился только в iPhone 6 и SE.
Apple Pay и Samsung Pay нужны в первую очередь для того, чтобы оплата со смартфона через NFC стала стандартизированной и безопасной.
Изначально платежные карты выпускались только с магнитной полосой, на которой был записан номер карты. Естественно, номер легко копировался, поэтому за дело взялась организация EMVCo, разработавшая более защищенный чип EMV. Эта мера позволила существенно сократить число мошеннических операций, но целиком проблему не решила. Кроме того, процесс оплаты был несовершенен и поэтому продолжались работы над дальнейшими улучшениями.
Далее появились бесконтактные платежи на пластике (MasterCard PayPass, VISA PayWave), а потом платежные функции карты стали частично переходить на мобильные устройства.
Путь был тернист, и среди прочих платежные системы пробовали следующие варианты:
SIM-карта со встроенным чипом Secure Element, выпускаемая совместно сотовым оператором и банком-эмитентом;
наклейка на телефон со встроенным беспроводным модулем и Secure Element;
В конечном счете MasterCard «перетасовал карты» и закрепил за производителями мобильных устройств функции хранения карточных данных и проведения оплаты. Так появился MasterCard Digital Enablement Service (MDES) от MasterCard, а затем и *Pay.
Но HCE все равно полностью не исчезла, так как позволяет банкам использовать собственные мобильные приложения для бесконтактной оплаты. То есть банк может самостоятельно добавить в свое приложение функцию оплаты с карты. Плюс к тому, в приложении можно реализовать какие-нибудь фирменные удобства вроде оплаты ЖКХ.
Кстати, в мобильных Яндекс.Деньгах тоже осталась опция бесконтактной оплаты через HCE — для всех тех, кто по разным причинам не может воспользоваться *Pay.
Подружить всех со всеми
Надеюсь, теперь все причинно-следственные связи восстановлены, поэтому вернемся к проекту бесконтактной оплаты Яндекс.Денег.
Если все равно что-то осталось туманным – обязательно спрашивайте в комментариях.
Все дальнейшие сценарии буду иллюстрировать на примере карт Яндекс.Денег, по которым набралось больше всего информации.
Чтобы пользователь мог непринужденно оплатить товар с телефона, нужно тесное сотрудничество четырех сторон:
сервиса бесконтактных платежей от производителя смартфона (Apple Pay и Samsung Pay);
платежной системы (MasterCard);
эмитента карточки (Яндекс.Деньги);
Таким образом, команде Яндекс.Денег нужно было договориться с Apple, Samsung, Mastercard и реализовать поддержку обновленных платежных протоколов на своей стороне. Еще потребовалось добавить прием платежей через Apple Pay и Samsung Pay в Яндекс.Кассу – платёжное решение для бизнеса. Но это уже другая история.
На иллюстрации не хватает банка-эквайера – убрал его для простоты.
Когда пользователь добавляет карту в кошелек, Apple Wallet формирует криптограмму с зашифрованными данными карты и цифровой подписью, а затем отправляет ее в MasterCard. Там криптограмма расшифровывается и происходит токенизация. Токенизация – это формирование номера DPAN, который представляет собой синоним оригинальной карты, уникальный для каждого физического устройства.
Digital Primary Account Number (DPAN) – это специальный номер-токен, который платежная система выдает конкретному устройству для использования одной из карт пользователя. Такой номер уникален для каждого устройства и поэтому генерируется каждый раз при добавлении одной и той же карты в кошелек очередного устройства.
Токен нужен для того, чтобы не хранить на мобильном устройстве реальных платежных данных.
Но DPAN не будет сгенерирован, пока MasterCard не проверит поддержку *Pay на стороне эмитента, то есть Яндекс.Денег. Для этого необходимо:
Дождаться проверки Apple или Samsung возможности использовать устройство в качестве оплаты (не украден ли телефон, есть ли права Root и т.д.).
Подключиться к MasterCard Digital Enablement Service (MDES). Подробности о подобных приложениях едва ли не полностью подпадают под NDA, поэтому желающим придется запрашивать документацию напрямую у MasterCard.
Реализовать поддержку специфических запросов *Pay.
Но пользователь может захотеть добавить карту не вручную, а из приложения Яндекс.Денег. Такая возможность есть, но используется немного другой механизм.
Красный, желтый, зеленый
Когда пользователь добавляет карточку в кошелек телефона, запускается один из трех сценариев дальнейшего развития событий, в зависимости от степени риска:
Зеленый. Используется когда запрос на добавление карты приходит от мобильного приложения эмитента (Яндекс.Деньги) и в нем есть специальный ключ, подтверждающий аутентификацию пользователя в банковском приложении. Дополнительных проверок не требуется.
Желтый. Обычно используется при добавлении карты вручную или с помощью камеры телефона (OCR). Кошелек спросит CVV-код карты и запросит дополнительную аутентификацию.
Если у вас еще нет пластиковой карты Яндекс.Денег, то для пробы пера можно выпустить виртуальную прямо в приложении.
Но мы живем не в идеальном сферическом мире, поэтому часто будет использоваться именно желтый путь. Чтобы он тоже проходил гладко и на этапе распознавания реквизитов карты камерой не было проблем, мы отправили в Apple более 200 фото тестовых карточек. Без этого обучения алгоритм распознавания периодически ошибался и пытался добавить в кошелек карту с неверными данными.
Предполетная подготовка
Когда необходимый софт на бэкенде был готов, а бета-версия Яндекс.Денег обучена премудростям Apple Pay (для Samsung Pay опция токенизации через наше мобильное приложение пока недоступна), настала утомительная пора тестирования.
Кстати, для подключения к «банкету» недостаточно все реализовать и сообщить в MasterCard о готовности – платежная система и производители телефонов обязательно проверят вас лично. Например, по поводу Apple Pay к нам приехал товарищ из компании UL с набором всевозможных гаджетов Apple. Одних только iPhone у него было 6 штук — 3 поколения в 2 версиях (простая и Plus). С их помощью аудитор проверил множество сценариев оплаты, включая возврат средств.
Обновленный процессинг Яндекс.Денег работал в изолированном тестовом сегменте, поэтому для проверки использовался «белый список» карт – для них MasterCard просто включил платежи *Pay. Но вот с тестовой средой от Apple были некоторые сложности.
Например, отдельной платежной инфраструктуры для обкатки не было, поэтому тестировщикам Яндекс.Денег пришлось перевести свои смартфоны и Apple ID на регион «США» и подбирать ответы на некоторые запросы самостоятельно.
Но дьявол кроется в деталях, а ошибки – на последней миле. Оказалось, что далеко не все банки следят за обновлением прошивок своих терминалов, а кассирам в большинстве своем чужды современные технологии.
Моделей платежных терминалов и прошивок к ним довольно много, и у самых древних из них мозги сходили с ума от *Pay. Пришлось понимать и прощать, попутно сообщая в поддержку соответствующих банков о “небольших сложностях с POS-терминалом”.
Когда все уже вроде бы работало, по некоторым транзакциям в мобильный кошелёк стали приходить суммы с прочерком. Это явно означало проблемы вне систем Яндекс.Денег. Конечно, на саму оплату такие отчеты не влияли, но когнитивный диссонанс присутствовал.
(Не)лазейка для мошенников
Токенизация карт со стороны Яндекс.Денег, как и других банков, сопровождается проверкой таких запросов на мошеннические паттерны. Для этого в Яндекс.Деньгах существует отдельный механизм со своей сложной логикой и полномочиями блокировать крайне подозрительные операции – система антифрода.
Так как система работает на основе определенных правил, обнаружилась потенциальная проблема с безопасностью при токенизации чужой карты на устройство. Для этого нужны номер карты, срок действия и CVC2. Да, эмитент наверняка запросит дополнительную валидацию, но даже в случае с SMS-паролем фишинг и социальная инженерия работают. При сумме оплаты до 1000 рублей терминал даже пин-код не спросит, а SMS-оповещения включены до сих пор не у всех владельцев карт.
С такими угрозами можно бороться на уровне процессинга. Каждое действие пользователя со своим счетом или картой рассматривается в режиме онлайн фрод-машиной: если сработает хотя бы одно блокирующее правило, то транзакция будет отклонена.
Для каждого пользователя Яндекс.Денег формируется индивидуальный поведенческий профиль: что он любит и не любит, как и когда обычно платит, типичные периоды активности и множество других признаков. На основе этой информации и с помощью машинного обучения строится прогноз будущих значений, то есть наиболее вероятных действий человека. Если антифрод замечает отклонения фактических показателей от их прогноза, то может запросить дополнительную аутентификацию или отклонить транзакцию.
Про машинное обучение в системах безопасности можно много интересного рассказать в связи с его давним внедрением в Яндекс.Деньгах, но это уже тема отдельной статьи.
Если вы по работе сталкивались с другими нюансами подключения к *Pay – поделитесь в комментариях, многим будет любопытно.
Dpan карты что это
В своё время первая часть этого ликбеза получила широкий отклик и была процитирована аж 6 (шесть. ) раз. Надеюсь, вторая часть вам понравится хоть немного больше.
Сегодня я хочу рассказать про то, как устроена карта, которая лежит у вас в кошельке.
Кстати, как вы думаете, почему я написал «карта, которая лежит у вас в кошельке», а не просто «ваша карта»?
Раньше народ был тёмный, и про карты ходило очень много слухов.
Но теперь есть wiki-педия и любой желающий может посидеть с полчаса и узнать, как сделана карта. Поэтому я расскажу то, что вы не прочтёте в Интернете.
Но сначала скажу, что как правило пластиковая карта имеет определённый размер. Почему «как правило»? Просто есть стандартные карты и карты стандарта «Mini». Кроме того, банк может сделать фигурную карту. Со всякими фигурными вырезами и т.д. Такие карты нельзя использовать в банкоматах, конечно. Кроме того, в них нельзя использовать и прозрачные карты. Да, и такие карты тоже есть. Почему ваш банк не выпускает их? Может в вашем банке про такие карты (решил собрать все такие карты в отдельном сообщении) просто не знают?
Ну, вот. Когда мы разобрались с размерами и формой карты, надо написать пару слов о дизайне. У каждой платёжной системы (Visa, MasterCard, AmEx) есть свои требования к дизайну карт. Хорошо их знают те, кто разрабатывает дизайн карт и те, кто его утверждает. Широкой публике они будут просто не интересны. Только замечу, что дизайн любой карты Visa (например) утверждается в самой «Визе».
Но есть основополагающие вещи, которые есть на любой карте.
1. Магнитная полоса (может отсутствовать).
На магнитной полосе находятся 1, 2 или 3 дорожки с данными.
На первой полосе (специалисты называют её «track 1») записан PAN карты и имя её держателя (если карта именная). Сразу объясню. Имя держателя (если оно есть) написано также на лицевой стороне карты.
Примечание. Вместо имени держателя может быть название организации для корпоративных карт.
PAN (Primary Account Number) – номер карты. «Стандартная» его длина – 16 цифр. Но в реальности он может быть от 7 до 19 цифр. Последняя цифра в номере карты – проверочная. Вы можете посчитать её сами, используя алгоритм сложения по модулю 10 (если интересно, могу его описать).
Карта может быть и не именная (например, Visa Instant Issuer).
На второй полосе карты находится главная информация («track 2»). Она состоит из PAN (номера карты), Expiration Date (дата, по которую включительно карта действительна), Service Code (сервисный код для работы программы терминала или банкомата с картой), Pin Verification Key Indicator, PVV (Pin Verification Value) и CVV1/CVC1.
Расскажу про эти данные.
Expiration Date – срок действия карты. Он также написан на её лицевой части после слов «VALID THRU» или «GOOD THRU». Состоит из двух частей: месяца и года. Обратите внимание, что срок дан «включительно». То есть, написан последний месяц, когда карта должна будет работать. Кроме того, она может иногда и кое-где работать и после его окончания. Бывают бессрочные карты (с «неограниченным» сроком действия).
PVV и Pin Verification Key Indicator – специфичные параметры, используемые для проверки вашего pin-кода.
Всё, что написано после PVV на track 2, называют CVV1 (Card Verification Value) (Visa) или CVC1 (Card Verification Code) (MasterCard).
Иногда на картах может быть и 3-я полоса («track3»). Наверное, зачем-то она и нужна…
Для обслуживания карты в POS-терминале или банкомате обязательно нужен track 2. Данные track 1 часто являются не обязательными (не говоря уж про track 3).
POS (Point Of Sale)-терминал – общее название устройств для приёма банковских карт. Наиболее в мире распространены терминалы фирм Hypercom, Verifone и Ingenico (причём последнюю фирму даже проверка орфографии в Word-е не знает).
Теперь, когда мы разобрались, что записано на полосе, опишу, что обязательно должно быть на лицевой стороне карты.
2. Лицевая сторона карты.
На лицевой стороне карты обязательно должен быть написан номер. Раньше часто его писали не полностью (для Visa Electron, например). Но первые и последние 4-ре цифры должны были присутствовать обязательно.
Первые 4-ре цифры – это BIN (Bank Identification Number) банка. Он пишется на лицевой стороне дважды (не для всех платёжных систем):
BIN выдаётся банку платёжной системой и является уникальным для данного банка. Все карточки, выпущенные банком для этой платёжной системы имеют одинаковый BIN. По первой цифре BIN можно определить платёжную систему (с некоторой степенью достоверности):
3 – AmeEx
4 – Visa
5 – MasterCard
6 – Maestro
На самом деле, это – не совсем так. Банков, выпускающих карты Visa уже давно больше 1000. Поэтому для банка и типа карты важны первые 6-ть цифр. А почему дублируются только первые 4? По стандарту. Описывая BIN нашёл у себя в кошельке 2 карты разных банков, имеющих одинаковые первые 4-ре цифры.
Если интересно, можете проверить первые 6-ть цифр вашего (или – не вашего) PAN-a по этой ссылке:
http://www.binbase.com/csv.php?module=search
(необходимо вводить первые 6-ть цифр номера карты без пробелов и чёрные цифры или буквы )
К сожалению, не больше 3-х раз в день.
Последние 4-ре цифры иногда используются для подтверждения подлинности магнитной полосы: кассир их вводит в терминал и таким образом терминал проводит проверку, что PAN на track 2 карты не был переписан.
Кроме номера, на лицевой стороне карты должна присутствовать Expiration Date.
Кроме того, там должен находиться логотип платёжной системы.
Дальше всё зависит от типа карты. Для Visa Classic, например, обязательно должна быть голограмма с голубем. Этого же голубя можно увидеть, посмотрел на лицевую сторону карты в ультрафиолете.
Всё остальное, что есть на карте – по желанию банка. Например, на одной карте у меня была написана дата выпуска карты, на другой – приставка «MR» перед именем «ROSTISLAV», на третьей есть название фирмы, где я работал, а на четвёртой не было имени, на пятой – логотипа и/или названия банка. Но номер, Expiration Date и логотип платёжной системы есть на всех картах.
Цифры и буквы на лицевой стороне карты могут быть «выдавлены». Или – эмбоссированы. Машина, которая это делает, так и называется «эмбоссер». С помощью таких машин в банках и персонализируют («выпускают») карты из заготовок.
Если карта эмбоссирована, её могут принять к оплате в магазине не только с помощью pos-терминала, но и с помощью импринтера. Москвичи, оформлявшие привязку карты к номеру счёта в МТС, могли видеть эту чудо машину. После «прокатки» карты в импринтере данные с её лицевой стороны копируются на специальный чек. Один чек отдаётся вам, второй – продавцу, третий посылается в банк обычной почтой или другим образом.
Пришло время перевернуть карту и посмотреть на её обратную сторону.
3. Обратная сторона карты.
Там, как правило, есть место, где должен находиться образец вашей подписи.
И кроме подписи там есть какие-то циферки. Они называются CID (Card ID). Его ввод требуется при оплате через Интернет и некоторых других случаях.
Если код из 3-х цифр, то он называется «CVV2» (Visa) или «CVC2» (MasterCard).
Замечу, что для карт AmEx тоже есть такой код. Называется он «Unique Card Code», состоит из 4-х цифр и находится под номером карты на её лицевой стороне:
Как правило перед CVV2/CVC2 находятся последние 4-ре цифры номера карты (как и на лицевой стороне).
Кроме этого, на обратной стороне карты может быть куча разных надписей, логотипов и т.д.
А кто сделал карту, которую вы держите? В России большинство карт производства ROSAN.
А в следующий раз, если соберусь, расскажу, чем так хороши чиповые карты, зачем нужны и как работают.
Как работают денежные переводы с карты на карту
Несмотря на то, что популярность данного вида переводов с каждым годом растёт все больше, в интернете очень мало информации о том как они работаю «изнутри» и в этой статье я простым языком расскажу что такое p2p-переводы, какие они бывают и как они устроены.
Переводы с карты на карту (они же p2p, card2card, c2c) – это способ перевода денег в Интернете между физическими лицами с использованием реквизитов банковских карт. Для перевода необходимо иметь свою банковскую карту (и желательно деньги на ней) и знать номер карты получателя.
Перевести деньги с карты на карту можно практически в любом интернет-банкинге, но если у вашего банка такой функции нет, то можно воспользоваться сторонними сервисами (гуглим «переводы с карты на карту»).
Виды p2p-переводов
Внутренние — переводы с банковской карты, выпущенной в российском банке на банковскую карту, выпущенную в российском банке.
Трансграничные — переводы с банковской карты, выпущенной в российском банке на банковскую карту, выпущенную в зарубежном банке (например, в Украине). Немногие банки предоставляет такую услугу, комиссия при переводе за границу как правило намного выше (в среднем 2% + 150 RUB и плюс еще валютная конвертация), а лимиты на переводы ниже.
При трансграничных переводах деньги списываются с вашей карты в рублях, конвертируются по курсу международной платежной системы VISA\Mastercard (как правило курсы МПС не сильно отличаются от ЦБ, узнать точные курсы МПС можно воспользовавшись калькуляторами: Mastercard VISA) в валюту платежной системы (евро или доллар), после чего происходит еще одна конвертация в местную валюту по курсу банка выпустившего карту получателя (тут уже вы где-то 0.5% потеряете, но можете и больше, все зависит от жадности банка). Например, при переводе с российской карты на украинскую будет две конвертации — RUB->USD\EUR->UAH.
Совершать перевод на российских сервисах с использованием карты отправителя выпущенной за границей нельзя. Также нельзя совершать перевод с российской карты на карты локальных платежных систем, таких как белорусская «Белкарт» или китайская «UnionPay», т.е. карта получателя должна быть либо VISA либо Mastercard.
Как это работает?
Для начала давайте рассмотрим участников процесса:
Банк-эмитент карты отправителя и карты получателя, т.е. тот банк который выпустил карту.
Банк-эквайер — банк осуществляющий прием реквизитов банковских карт и осуществляющий процессинг перевода — взаимодействие с платежными системами, проверку на мошенничество и тд. Банк-эмитент и банк-эквайер могут быть одним и тем же банком.
Платежная Система. Когда мы совершаем перевод с карты на карту и вводим реквизиты карт отправителя и получателя, банк-эквайер не знает, что это за карты и каким банкам они принадлежат и обращается в ПС (т.к. у ПС есть юридические взаимоотношения со всеми банками членами ПС и вся информация о том какие карты какими банками были выпущены).
Также ПС выполняет функции клиринга и т.к. деньги фактически приходят на счет в банке только на следующий день — является гарантом того, что деньги точно придут, что позволяет зачислять деньги на карту физ. лицам мгновенно не ожидая завершения расчетов.
ПС бывают международные (VISA, Mastercard и т.д.) и локальные (Белкарт, Элкарт и тд).
Сервис-провайдеры (IPSP). Представьте, что вы не очень крупный банк и хотите предоставить своим клиентам возможность переводить деньги с карты на карту у себя в интернет-банкинге. Для этого вам потребуется:
Верхнеуровнево процесс перевода выглядит следующим образом:
1. Отправитель вводит реквизиты перевода (данные карт, сумму и т.д.)
2,3. Реквизиты передаются в банк-эквайер (либо напрямую, либо через сервис-провайдера)
4. Банк-эквайер инициирует перевод обращаясь в платежную систему и пересылая ей реквизиты перевода
5. Платежная система определяет по номеру карты банк-эмитент карты отправителя и отправляет в банк запрос на перевод
6. Банк-эмитент проводит авторизацию – перенаправляет отправителя на страницу ввода 3DS (смс или push-уведомление с кодом)
7. Отправитель вводит проверочный код
8. Банк-эмитент карты отправителя отправляет ответ в платежную систему о том, что авторизация проведена успешно
9. Платежная система отправляет запрос в банк-эмитент карты получателя на зачисление денежных средств на карту получателя
10. Банк-эмитент карты получателя зачисляет деньги на расчетный счет получателю
Когда вы увидели надпись об успешном переводе (и у вас деньги списались, а получателю начислились), на самом деле деньги еще никуда не ушли, успешно прошла только авторизация. Деньги уйдут на следующий день, после того как в конце операционного дня ПС проведет клиринг и сообщит банку-эмитенту карты отправителя, что ему необходимо отправить деньги в банк-эмитент карты получателя, а также выставит отдельный счет для оплаты комиссии в пользу ПС. Именно поэтому иногда переводы задерживаются, так как некоторые банки ждут завершения фактических расчетов, которые происходят только на следующий день.
Банковский клиринг — это взаимозачет, выглядит следующим образом:
Юридические артефакты
Оферта — это договор между физическим лицом и банком-эквайером на совершение p2p-перевода. Когда вы совершаете перевод вы проставляете галочку о том, что соглашаетесь с условиями оферты (иногда она бывает проставлена по умолчанию). Если у вас возникнут проблемы с переводом, то де-юре вам нужно обращаться в банк-эквайер по реквизитам указанным в оферте. Де-факто первым делом лучше попробовать воспользоваться контактами техподдержки сервиса в котором вы совершали перевод.
Обращаю внимание что если вы переводите деньги, например, на сайте банка «А» то в оферте, особенно у маленьких банков и у финансовых сервисов может быть указан другой банк — «Б», и юридически вы предъявить в банк «А» ничего не сможете, так как услугу по переводу вам оказывал в данном случае банк «Б».
ФЗ-161 «О национальной платежной системе» — этот ФЗ, который должны соблюдать все банки-эквайеры, следит за соблюдением данного закона ЦБ РФ. Если вас как физ.лицо обидел какой-то банк, например, вы совершили перевод с карты на карту и он не дошел в течении 5 календарных дней до получателя и деньги не вернулись (это максимальный срок по данному ФЗ), а банк отказывается вам помогать в решении данного вопроса, то вы можете написать жалобу в ЦБ — это может помочь.
За что мы платим комиссию
Комиссия за p2p-перевод состоит из:
На комиссии также можно сэкономить, воспользовавшись Системой Быстрых Платежей, но это уже тема для отдельной статьи.