Найти в Дзене
Hiplabs

Идентификация пользователя банковской карты в платежном сервисе и все, что нужно о ней знать. 1 часть

FinTech является для нас одной из ключевых сфер в разработке. Поэтому мы часто работаем с терминалами, картами и прочим софтом, относящимся к банкам. Чтобы рассказать о некоторых особенностях работы с fintech-проектами, мы совместно с коллегами решили сделать небольшой цикл статей, посвященный всему, с чем сталкивались в своей работе. В данном случае это будут статьи по автоматизации банковских карт с платежными сервисами. В этой статье затронем все, что связано с идентификацией пользователя. Так как она превышает нужное количество символов, мы поделили её на три части. Идентификация пользователей необходима для организации доступа к аккаунтам и персональным данным. На рынке распространено несколько способов аутентификации. Какой будете использовать вы, зависит от вашей целевой аудитории, требований регуляторов, стандартов принятых в отрасли, стоимости каждой авторизации и ряда других факторов. Также бизнес вынужден балансировать между удобством идентификации для клиента и сохранностью

FinTech является для нас одной из ключевых сфер в разработке. Поэтому мы часто работаем с терминалами, картами и прочим софтом, относящимся к банкам. Чтобы рассказать о некоторых особенностях работы с fintech-проектами, мы совместно с коллегами решили сделать небольшой цикл статей, посвященный всему, с чем сталкивались в своей работе. В данном случае это будут статьи по автоматизации банковских карт с платежными сервисами.

В этой статье затронем все, что связано с идентификацией пользователя. Так как она превышает нужное количество символов, мы поделили её на три части.

Идентификация пользователей необходима для организации доступа к аккаунтам и персональным данным. На рынке распространено несколько способов аутентификации. Какой будете использовать вы, зависит от вашей целевой аудитории, требований регуляторов, стандартов принятых в отрасли, стоимости каждой авторизации и ряда других факторов. Также бизнес вынужден балансировать между удобством идентификации для клиента и сохранностью данных.

Каким образом происходит идентификация?

В качестве логина для авторизации и регистрации чаще всего на рынке предлагается использовать личный номер телефона клиента. Иногда предлагается использовать e-mail, но при этом могут возникнуть следующие проблемы:

  • Клиенту будет неудобно получать коды двухфакторной авторизации. (Двухфакторная аутентификация или 2FA – это метод проверки личности пользователя, при котором два из трех возможных факторов аутентификации объединяются для предоставления доступа к веб-сайту или приложению). Часто пользователи даже могут не иметь настроенной почты на мобильном телефоне. Также, по данным аналитики, канал электронной почты становится все менее популярным для каждого последующего поколения пользователей в качестве средства получения уведомлений.
  • У пользователя может быть несколько e-mail адресов, при очередном входе в личный кабинет он может испытывать затруднения, вспоминая, какую именно почту он использовал в этом сервисе.

Рассмотрим плюсы и минусы авторизации с помощью e-mail.

Главный плюс в том, что нет необходимости платить за СМС или входящий звонок. По стоимости такая авторизация либо бесплатна (если интегрирован свой mail сервер), либо очень дешево при использовании почтовых сервисов (например, mailgun).

Минусов больше:

  1. Не всем пользователям удобно в момент авторизации получить e-mail, переключиться между приложениями, искать полученное письмо (которое может еще и попасть в спам).
  2. Чаще всего e-mail адреса меньше защищены. Если клиент не использует двухфакторную аутентификацию, то аккаунт можно взломать.
  3. Легко создать огромное количество e-mail и зарегистрировать большое количество фейковых аккаунтов.

Общепринятым безопасным методом аутентификации является двухфакторная авторизация (2FA), которая включает отправку кода авторизации и ввода пароля:

1 - Клиент через СМС получает код авторизации (обычно он представляет собой комбинацию 4-6 цифр).

2 - Клиент вводит пароль, указанный при регистрации.

Альтернативой СМС могут быть:

  1. Вызов на номер телефона клиента. Код может быть продиктован, либо кодом будут  последние цифры номера телефона, с которого совершается вызов. Эти способы дешевле чем отправка СМС в среднем в 3 раза. В случае, если до клиента не получилось дозвониться, этот способ обеспечивает большую уверенность в безопасности передачи данных для авторизации. При отправке СМС нет гарантий, что клиент получил сообщение: часть СМС не приходит, например, из-за ограничений мобильных операторов. В случае со звонком, мы получаем данные о том, что абонент не смог ответить, и только после этого отправляем СМС, как альтернативный вариант передачи кода.
  2. В случае, если авторизация происходит в веб-версии, и при этом пользователь уже авторизован в мобильной версии, можно отправить в приложение пуш-уведомление с кодом вместо СМС для экономии денежных средств.

Важно реализовать механизм проверки доставки пуш-уведомления. Если пуш-уведомление не доставлено в течении 5-10 секунд, то необходимо отправить СМС, как было описано выше.

Ниже делимся с вами приложениями для двухфакторной аутентификации, которые дополнительно помогают защитить доступ.

Дополнительный фактор авторизации с использованием инструментов, реализующих OATH TOTP (Time-based One-time Password)

Приложения-аутентификаторы работают следующим образом:

  • клиент устанавливает какое-либо приложение из списка выше для двухфакторной аутентификации;
  • в настройках выбирает двухфакторную авторизацию через данное приложение;
  • сервис генерирует QR или текстовый код, который сканируется или вводится в приложении;
  • клиент сканирует код приложением, и оно начинает каждые 30 секунд создавать новый одноразовый код, который нужно ввести на сервисе для авторизации.

Для повышенной безопасности можно использовать железные аутентификаторы. Это аппаратные токены стандарта U2F (Universal 2nd Factor), созданные FIDO Alliance. Данные токены нужно самостоятельно выдавать своим клиентам, сконфигурировав их перед этим под клиентские данные.

Для того, чтобы воспользоваться токеном, необходимо подключить U2F-токен и зарегистрировать в сервисе. В дальнейшем для авторизации с помощью токена необходимо также подключить его к устройству, зайти в интересующий сервис и нажать на токене кнопку (в зависимости от токена у вас могут запросить ввод пин-кода или отсканировать отпечаток пальца). Авторизационные данные передаются в сервис.

U2F-устройства могут иметь разный способ подключения:

• USB — для подключения к компьютерам. Помимо обычного USB-A бывают «ключи» с USB-C.

• NFC — для использования со смартфонами и планшетами на Android, у которых есть NFC-датчик.

• Bluetooth — понадобится на тех мобильных устройствах, где нет NFC. К примеру, аутентификатор с Bluetooth используется на iPhone: несмотря на то, что в iOS уже разрешили приложениям использовать NFC (до 2018 года это было позволено только Apple Pay), разработчики большинства совместимых с U2F приложений еще не воспользовались этой возможностью. У Bluetooth-аутентификаторов есть пара минусов: их нужно заряжать, подключение занимает гораздо больше времени и может быть нестабильным.

С какими проблемами можно столкнуться?

  1. Проблемы с доставкой СМС с кодом авторизации до клиентов.

Причина 1 – неправильно сконфигурирован сервис для отправки СМС. Часть провайдеров мобильной связи требуют дополнительных соглашений, без которых отправка сообщений невозможна.

Причина 2 – различные страны могут требовать разные разрешения на отправку.

Как решить данную проблему?

Способ 1 – при каждом выпуске обновления необходимо проводить полное тестирование системы, включая отправку СМС. Для этого мы рекомендуем приобрести для тестирования или брать на время мобильные номера в странах, где у вас находятся большинство ваших клиентов.

Способ 2 – перед релизом ваших сервисов произвести исследование по требованиям мобильных операторов тех стран, где будут находиться ваши целевые клиенты, и выполнить их все. Либо вместо СМС реализовать вызов с диктовкой кода (или кодом будет последние цифры номера).

  1. Фрод на отправку СМС

Причина 1 – происходит для дестабилизации работы сервиса, так как это может заблокировать возможность пользователей авторизоваться.

Причина 2 – делается, чтобы потратить бюджет, выделенный на СМС. Этим в том числе могут пользоваться сами СМС-сервисы для увеличения своей доходности.

Как решить данную проблему?

Способ 1 – настроить лимиты на бюджеты, которые в день или в час тратятся на отправку СМС.

Способ 2 – в рамках разрабатываемого сервиса реализовать функции отслеживания:

  • количества запросов СМС с одного номера, установить ограничение на количество отправленных СМС;
  • количество запросов с одного IP-адреса и блокировка при отклонении от +/- стандартного количества запросов в определенный промежуток времени;
  • мониторинг и отправка уведомления в случае внезапного увеличения числа отправляемых смс.
  1. DDos-атаки на авторизационные методы

Причина 1 – блокировка работы вашего сервиса конкурентами или кем-то, кто может потребовать выкуп за прекращение DDos-атаки.

Причина 2 – попытка взлома сервиса для получения доступа к приватным данным или к управлению сервисом.