驗證電話號碼

使用 Phone Number Verification API,以防網路釣魚的方式,從使用者的行動電信業者擷取已驗證的電話號碼。這種驗證方法更快速、安全且符合成本效益,不需依賴透過簡訊傳送的動態密碼 (OTP)。

總覽

傳統的電話驗證高度仰賴簡訊動態密碼 (OTP)。簡訊驗證會造成使用者不便和傳送延遲。此外,這種方法容易受到 SIM 卡交換或攔截攻擊,且會產生高額電信費用。

Android 的電話號碼驗證 API 運用數位憑證,解決了這些難題。應用程式不會傳送簡訊,而是直接透過 Android 的 Credential Manager 要求數位權杖。使用者同意分享這個權杖後,應用程式後端會與行動匯總商或行動電信業者交換這個權杖,擷取已驗證的電話號碼。

已驗證電話號碼擷取流程

請按照下列步驟擷取已驗證的電話號碼:

  • 應用程式向 Digital Credentials API 要求電話號碼。
  • Credential Manager 底部功能表會顯示,確認是否要分享電話號碼。
  • API 會驗證 SIM 卡,從使用者的電信業者擷取加密的 TS.43 權杖。
  • Credential Manager 會將權杖提供給應用程式。應用程式會將權杖傳送至應用程式伺服器,伺服器會與匯總工具或行動電信業者端點交換權杖。這也是產生電話費用的時機。
  • 匯總工具或電信業者會將已驗證的電話號碼傳回應用程式。
圖片:顯示電話號碼驗證的使用者體驗。
圖 1. 電話號碼驗證使用者體驗。

主要優點

這個 API 有許多優點:

  • 降低驗證成本:您只需為傳送至應用程式的驗證付費,降低傳送成本。
  • 更安全、更流暢的使用者體驗:使用者只要輕觸一下,即可核准系統底部功能表提示,不必在應用程式外查看簡訊動態密碼。這也能杜絕簡訊網路釣魚的可能性。
  • 轉換率更高:簡訊傳送失敗和延遲是使用者放棄驗證的主要原因。直接電信業者驗證可完全略過簡訊傳送,進而提高完成率。
  • 身分驗證:驗證 Android 裝置上實際使用的實體 SIM 卡/eSIM,確保身分直接與有效的電信業者訂閱方案連結。

安全性和隱私權

Android 的電話驗證功能是以開放標準和採用專屬硬體的加密編譯安全機制為基礎。

重要安全標準:

  • GSMA TS.43 標準:用於身分聲明和權杖產生的標準化電信業者通訊協定。
  • SD-JWT VC (選擇性揭露 JWT 可驗證憑證):確保憑證完整性,防止竄改,並選擇性揭露資料。
  • OpenID4VP 通訊協定:要求可驗證憑證的業界標準規格。

加密編譯 Nonce 和金鑰繫結

每項驗證要求都包含伺服器產生的 Nonce 和金鑰繫結簽章。這些元素可防範重放攻擊、中間人 (PiTM) 竄改和憑證假冒。

端對端加密

Android Telephony 會加密傳回用戶端應用程式的 TS.43 權杖。只有授權的集結網站或行動電信業者端點可以解密,確保系統不會在傳輸過程中公開原始使用者憑證。

公開透明的使用者同意聲明

Android 會顯示 Credential Manager 底部功能表,在任何資料傳輸至應用程式前,明確告知使用者要分享哪些身分資訊。

後續步驟

如要在應用程式中導入這項功能,請參閱導入指南。