Phone Number Verification API を使用して、ユーザーの携帯通信会社からフィッシングに強い方法で電話番号の確認を取得します。これは、SMS で送信されるワンタイム パスワード(OTP)に依存しない、より高速で安全、かつ費用対効果の高い確認方法です。
概要
従来の電話認証は、SMS ベースのワンタイム パスワード(OTP)に大きく依存しています。SMS 認証は、ユーザーの不満や配信の遅延の原因となります。また、SIM スワップや傍受に対して脆弱であり、多額の通信料金が発生します。
Android の電話番号確認 API は、デジタル認証情報を活用することで、こうした課題を解決します。アプリは SMS を送信する代わりに、Android の認証情報マネージャーを介してデジタル トークンを直接リクエストします。ユーザーがこのトークンの共有に同意すると、アプリのバックエンドはこのトークンを携帯通信会社またはモバイル キャリアと交換して、確認済みの電話番号を取得します。
確認済みの電話番号の取得フロー
確認済みの電話番号を取得する手順は次のとおりです。
- アプリが Digital Credentials API に電話番号をリクエストします。
- 認証情報マネージャーのボトムシートが表示され、電話番号の共有を確認します。
- API は、SIM カードを認証して、ユーザーの携帯通信会社から暗号化された TS.43 トークンを取得します。
- 認証情報マネージャーは、トークンをアプリと共有します。アプリはトークンをアプリサーバーに送信し、アプリサーバーはトークンをアグリゲータまたは携帯通信会社のエンドポイントと交換します。このとき、電話料金も発生します。
- アグリゲータまたは携帯通信会社が、確認済みの電話番号をアプリに返します。
主なメリット
この API には次のようなメリットがあります。
- 確認費用の削減 - アプリに到達した確認に対してのみ課金されるため、配信費用が削減されます。
- より安全で合理化されたユーザー エクスペリエンス - ユーザーは、アプリ外で SMS OTP を確認する代わりに、1 回タップするだけでシステム ボトムシート プロンプトを承認できます。これにより、SMS フィッシングの可能性も排除されます。
- コンバージョン率の向上 - SMS の配信エラーや遅延は、ユーザーが離脱する主な原因です。携帯通信会社による直接確認では、SMS の送信が完全に省略されるため、完了率が向上します。
- ID 保証 - Android 搭載デバイスで有効な実際の物理 SIM / eSIM を検証し、ID が有効な携帯通信会社のサブスクリプションに直接関連付けられていることを確認します。
セキュリティとプライバシー
Android の電話認証機能は、オープン スタンダードとハードウェア格納型の暗号セキュリティを基盤としています。
主なセキュリティ標準:
- GSMA TS.43 標準: ID アサーションとトークン生成のための標準化された携帯通信会社プロトコル。
- SD-JWT VC(Selective Disclosure JWT Verifiable Credential): 改ざん防止の認証情報の完全性と選択的なデータ開示を保証します。
- OpenID4VP プロトコル: 検証可能な認証情報をリクエストするための業界標準の仕様。
暗号ノンスと鍵バインディング
各検証リクエストには、サーバー生成のノンスと鍵バインディング署名が含まれます。これらの要素により、リプレイ攻撃、中間者(PiTM)改ざん、認証情報のなりすましを防ぐことができます。
エンドツーエンドの暗号化
Android Telephony は、クライアント アプリに返される TS.43 トークンを暗号化します。復号できるのは、承認されたアグリゲータまたは携帯通信会社のエンドポイントのみです。これにより、転送中にシステムが未加工のユーザー認証情報を公開しないようにします。
透明性の高いユーザーの同意
Android では、認証情報マネージャーのボトムシートが表示され、アプリにデータが送信される前に、共有される ID 情報がユーザーに正確に通知されます。
次のステップ
この機能をアプリに実装するには、実装ガイドをご覧ください。