Используйте Phone Number Verification API, чтобы получить от оператора мобильной связи подтвержденный номер телефона, защищенный от фишинга. Это более быстрый, безопасный и экономичный способ подтверждения, который не зависит от одноразовых кодов, отправляемых по SMS.
Обзор
Традиционное подтверждение по телефону в основном опирается на одноразовые коды (OTP), отправляемые по SMS. SMS-подтверждение вызывает у пользователей раздражение и задержки доставки. Кроме того, этот способ уязвим к подмене SIM-карты и перехвату, а также требует значительных расходов на телекоммуникации.
API для подтверждения номера телефона в Android решает эти проблемы с помощью цифровых удостоверений. Вместо отправки SMS приложение запрашивает цифровой токен напрямую через Менеджер учетных данных Android. После того как пользователь даст согласие на передачу токена, сервер приложения обменивает его с агрегатором сотовой связи или оператором мобильной связи, чтобы получить подтвержденный номер телефона.
Процесс получения подтвержденного номера телефона
Чтобы получить подтвержденный номер телефона, выполните следующие действия:
- Ваше приложение запрашивает номер телефона через Digital Credentials API.
- Появится нижний экран Менеджера учетных данных, где нужно подтвердить передачу номера телефона.
- API получает зашифрованный токен TS.43 от оператора связи пользователя, выполняя аутентификацию SIM-карты.
- Менеджер учетных данных передает токен вашему приложению. Приложение отправляет токен на сервер приложения, который обменивается токеном с агрегатором или конечной точкой оператора мобильной связи. В этот же момент может взиматься плата за телефонную связь.
- Агрегатор или оператор возвращает подтвержденный номер телефона в ваше приложение.
Основные преимущества
У этого API есть много преимуществ:
- Снижение расходов на подтверждение. Вы платите только за подтверждения, которые доходят до приложения, что снижает расходы на доставку.
- Более безопасное и удобное взаимодействие с пользователем. Пользователи подтверждают запрос в системном нижнем экране одним нажатием, а не просматривают одноразовые коды из SMS за пределами приложения. Это также устраняет возможность SMS-фишинга.
- Более высокий коэффициент конверсии. Сбои и задержки при доставке SMS – основные причины прерывания. Прямое подтверждение у оператора связи позволяет полностью отказаться от SMS, что повышает коэффициент завершения.
- Подтверждение личности. Проверяет физическую SIM-карту или eSIM, активную на устройстве Android, чтобы убедиться, что личность напрямую связана с активной подпиской оператора.
Безопасность и конфиденциальность
Функция подтверждения по телефону в Android основана на открытых стандартах и аппаратной криптографической защите.
Основные стандарты безопасности:
- Стандарт GSMA TS.43. Стандартизированный протокол оператора для подтверждения личности и создания токенов.
- SD-JWT VC (Selective Disclosure JWT Verifiable Credential): Обеспечивает целостность учетных данных с защитой от несанкционированного доступа и выборочное раскрытие информации.
- Протокол OpenID4VP. Отраслевой стандарт для запроса проверяемых учетных данных.
Криптографический одноразовый код и привязка ключей
Каждый запрос на проверку включает одноразовый код, сгенерированный сервером, и подпись, связанную с ключом. Эти элементы предотвращают атаки повторного воспроизведения, атаки типа "человек посередине" и подмену учетных данных.
Сквозное шифрование
Android Telephony шифрует токен TS.43, возвращаемый клиентскому приложению. Расшифровать его может только авторизованный агрегатор или конечная точка оператора мобильной связи. Это гарантирует, что система не раскрывает необработанные учетные данные пользователя во время передачи.
Прозрачное согласие пользователей
Android показывает нижний экран Менеджера учетных данных, на котором пользователь видит, какая именно идентификационная информация передается приложению.
Дальнейшие действия
Чтобы реализовать эту функцию в своем приложении, ознакомьтесь с руководством по внедрению.