Weryfikacja numerów telefonów

Użyj interfejsu Phone Number Verification API, aby pobrać zweryfikowany numer telefonu od operatora komórkowego użytkownika w sposób odporny na phishing. Jest to szybsza, bezpieczniejsza i bardziej opłacalna metoda weryfikacji, która nie wymaga haseł jednorazowych wysyłanych SMS-em.

Przegląd

Tradycyjna weryfikacja telefoniczna opiera się głównie na hasłach jednorazowych wysyłanych SMS-em. Weryfikacja SMS-em powoduje problemy dla użytkowników i opóźnienia w dostarczaniu. Jest też podatna na wymianę lub przechwycenie karty SIM i wiąże się ze znacznymi opłatami telekomunikacyjnymi.

Interfejs API do weryfikacji numeru telefonu na Androidzie rozwiązuje te problemy, wykorzystując cyfrowe dane uwierzytelniające. Zamiast wysyłać SMS-a, aplikacja prosi o token cyfrowy bezpośrednio przez Credential Manager na Androidzie. Gdy użytkownik wyrazi zgodę na udostępnienie tego tokena, backend aplikacji wymienia go z agregatorem sieci komórkowej lub operatorem komórkowym, aby uzyskać zweryfikowany numer telefonu.

Proces pobierania zweryfikowanego numeru telefonu

Aby pobrać zweryfikowany numer telefonu, wykonaj te czynności:

  • Aplikacja wysyła do interfejsu Digital Credentials API żądanie dotyczące numeru telefonu.
  • Pojawi się dolny arkusz Menedżera danych logowania, aby potwierdzić udostępnienie numeru telefonu.
  • Interfejs API pobiera zaszyfrowany token TS.43 od operatora użytkownika, uwierzytelniając kartę SIM.
  • Credential Manager udostępnia token aplikacji. Aplikacja wysyła token do serwera aplikacji, który wymienia go z punktem końcowym agregatora lub operatora komórkowego. Wtedy też mogą zostać naliczone opłaty za połączenia telefoniczne.
  • Agregator lub operator zwraca zweryfikowany numer telefonu do aplikacji.
Obraz pokazujący proces weryfikacji numeru telefonu.
Rysunek 1. Weryfikacja numeru telefonu.

Główne zalety

Ten interfejs API zapewnia wiele korzyści:

  • Niższe koszty weryfikacji – płacisz tylko za weryfikacje, które dotarły do Twojej aplikacji, co zmniejsza koszty dostarczania.
  • Bezpieczniejsze i bardziej uproszczone środowisko użytkownika – użytkownicy zatwierdzają prośbę na dolnej planszy systemowej jednym kliknięciem, zamiast wyświetlać SMS-y z hasłami jednorazowymi poza aplikacją. Eliminuje to też możliwość wyłudzania informacji przez SMS-y.
  • Wyższe współczynniki konwersji – błędy i opóźnienia w dostarczaniu SMS-ów są głównymi przyczynami rezygnacji. Bezpośrednia weryfikacja przez operatora całkowicie omija przesyłanie SMS-ów, co prowadzi do wyższych współczynników realizacji.
  • Potwierdzenie tożsamości – weryfikuje fizyczną kartę SIM lub eSIM aktywną na urządzeniu z Androidem, zapewniając, że tożsamość jest bezpośrednio powiązana z aktywną subskrypcją u operatora.

Prywatność i bezpieczeństwo

Funkcja weryfikacji telefonicznej na Androidzie jest oparta na otwartych standardach i zabezpieczeniach kryptograficznych wspieranych sprzętowo.

Najważniejsze standardy bezpieczeństwa:

  • Standard GSMA TS.43: ustandaryzowany protokół operatora do potwierdzania tożsamości i generowania tokenów.
  • SD-JWT VC (Selective Disclosure JWT Verifiable Credential): zapewnia integralność danych uwierzytelniających i selektywne ujawnianie danych.
  • Protokół OpenID4VP: standardowa specyfikacja branżowa dotycząca żądania weryfikowalnych danych uwierzytelniających.

Kryptograficzna liczba jednorazowa i powiązania kluczy

Każda prośba o weryfikację zawiera wygenerowaną przez serwer liczbę jednorazową i podpis powiązany z kluczem. Te elementy zapobiegają atakom typu replay, manipulacjom typu person-in-the-middle (PiTM) i podszywaniu się pod dane logowania.

Pełne szyfrowanie

Android Telephony szyfruje token TS.43 zwracany do aplikacji klienckiej. Tylko autoryzowany punkt końcowy agregatora lub operatora komórkowego może go odszyfrować, co gwarantuje, że system nie ujawni nieprzetworzonych danych logowania użytkownika podczas przesyłania.

Przejrzysta zgoda użytkownika

Android wyświetla dolną planszę Credential Manager, która informuje użytkownika, jakie dokładnie informacje o tożsamości są udostępniane, zanim jakiekolwiek dane zostaną przesłane do aplikacji.

Dalsze kroki

Aby wdrożyć tę funkcję w aplikacji, zapoznaj się z przewodnikiem po implementacji.