サイレントネットワーク認証とは〜Twilio Verifyの新機能
読む所要時間: 12 分
サイレントネットワーク認証(SNA)は、エンドユーザー、アカウント、トランザクションを保護するための安全なID認証の一形態で、ユーザーを待たせたりアプリから離脱させたりするユーザー体験面の懸念も最小化されるスグレモノです。SNAは、通信事業者との直接接続を利用し、ユーザーの入力を必要とせずにバックグラウンドで電話番号の所有を確認します。数桁のワンタイムパスコードや認証アプリをダウンロード・起動する必要がないため、フィッシング等の詐欺が行われることもありません。このため、SNAは(ハッカー等による)ソーシャルエンジニアリングの影響を受けず、ユーザーフレンドリーなソリューションであり続けています。
サイレントネットワーク認証は、通信事業者がネットワーク上の携帯電話通話やデータセッションの認証に使用するのと同じシステム上に構築されているため、お客様の事業視点からは、認証された各電話番号に対して高いレベルの保証が得られます。
基盤となる認証システムが標準化されており、信頼性が高い一方で、Twilio Verifyのサイレントネットワーク認証チャネルのようなAPIを介して、この種の認証をビジネス利用することは比較的新しいテクノロジー展開とされています。ちなみにSNAは、「Phone Number Verification」(PNV)や「Header Authentication」(ヘッダー認証)と呼ばれることもあります。
このブログ記事では、SNAとは何か、どのように機能するか、そしてユーザー体験面で摩擦のない認証が貴社ビジネスにとって良い選択肢となりうるか否かについて説明します。
サイレントネットワーク認証(SNA)の最大の魅力は、認証プロセスがバックグラウンドで行われることです。
まず、ユーザーがログイン情報を提供します。これは電話番号か電子メールアドレスのようなもので、電話番号ではない場合、アプリケーションデータベース内で電話番号にリンクされているとの前提に立ちます。
ステップ2は任意ですが、キャリアとの直接接続と認証に1~4秒*かかることがあります。(それでもワンタイムパスコードのフローよりはるかに速いです!)そのため、ユーザーが待っている間に何らかの進捗を表示し、バックグラウンドで認証処理中であることをユーザーに知らせることをお勧めします。
モバイルネットワークがユーザーを認証したら、サイトやアプリケーションのコンテンツにリダイレクトさせることができます。
サイレントネットワーク認証(SNA)は、サインアップ時、ログイン時、トランザクション時に、ユーザーのSIM(加入者IDモジュール)がモバイルネットワークにアクティブに接続されており、スプーフィングやクローンされていないことを確認するために使用されます。SNAの技術は、標準化されたGSM(Global System for Mobile Communications)認証の上に構築されています。
ログイン時やチェックアウト時など、アプリケーション駆動でユーザーがSNAを起動すると、ブラウザまたはモバイルアプリは、デバイス上でモバイルデータセッションを開始します。SNAのベースとなるGSM認証の要件として、Wi-Fiではなくモバイルデータを使用してSNAが実行される必要があります[1]。
ここでは、GSM認証とSNAが技術レベルでどのように機能するかの概要を説明します。
ステップ1:
モバイルネットワーク(キャリア; 図の左側)は、ユニークな認証キー(図中の Ki)を持つSIMをアクティブにします。これは、ユーザーが新しいSIMカードを入手したとき(例: スマホを購入したとき)に起こります。両者はこの固有のキーを持ちますが、ネットワーク上で共有されることはありません。
ステップ2:
SNAは認証チャレンジを開始します。モバイルネットワークは、128ビットの乱数(図中の RAND)をネットワーク上でSIMに送信します。
これで、モバイルネットワークとSIMの両方が、認証キー(Ki)と乱数(RAND)の2つの重要な情報を持つことになります。
ステップ3:
SIMとモバイルネットワークの両方が、KiとRANDを一方向性関数の入力として使用します。この一方向性関数の出力は「署名付き応答」(SRES)です。
ステップ4:
SIMはそのSRESをモバイルネットワークに送り返します。
ステップ5:
モバイルネットワークは、2つのSRESが一致するかどうかを確認します。一致した場合に、ユーザーは認証されます。
この形式の共通鍵暗号方式は、攻撃者がSRESを詐称することを非常に困難にしており、この認証方式を安全かつ決定論的なものにしています。SNAは、Twilio AuthyやGoogle Authenticatorのような認証アプリ(TOTP)と同レベルのセキュリティを有します。
SIMが認証されるために、ユーザーは何も行う・入力する必要がないことに注意してください。すべての処理はバックグラウンドで行われます。これこそ、企業とエンドユーザーの両方が求める、安全でシームレスな認証体験なのです。
SNAを実装する際のTwilio VerifyのAPIレイヤーの詳細については、ドキュメントを確認してください。
サイレントネットワーク認証(SNA)は、次のような場合に有効な認証方法です。
1. ワンタイムパスワードのユーザー体験を更に簡素化する
SNAは、ユーザーによる追加入力を必要とせずに電話番号の所有を確認する唯一の方法です。以下のアニメーションで、ワンタイムパスコードベースのSMS認証(左側)とSNA(右側)の比較してください。
2. 認証関連のカスタマーサポートコストを削減
ユーザーが認証プロセスで大きな摩擦を感じた場合、その努力を放棄するか、サポートに問い合わせることになり、どちらも事業上のコストになります。SNAのユーザー体験の高さは、ユーザーがパスワードを覚えたり、OTPが通知されるのを待ったり、アプリケーションをダウンロードしたりする必要がないことを意味し、コストと時間の節約につながります。
3. アカウントセキュリティの向上
SMS認証(英語ブログ)は、導入が簡単で、すぐに利用でき、他地域展開も可能なため、ビジネスで好まれています。しかし、ワンタイムパスワードはフィッシングされる可能性があります。可能な限りSNAを既定の選択肢にすることでこのリスクを排除し、アプリとユーザーのセキュリティを強化することができます。その後、SMS認証とSIMスワップ検出*を組み合わせて、シームレスな認証体験を実現することができます。
(* 日本語編集上の補足: 日本国内では未だ利用できません。)
どの認証方法にも長所と短所があります。SNAは摩擦のない素晴らしい認証体験を提供しますが、すべての状況でうまく動作する訳ではありません。留意すべき点は以下のとおりです。
1. 携帯電話網上でモバイルデバイスを使用する必要があります(Wi-Fi経由では動作しません)
SNAが機能するためには、セッションがモバイルデータを使用して、基盤となるGSM認証プロセスを起動する必要があります。Wi-Fiはモバイルデータをバイパスするため、SNAはWi-Fi上では動作しません。モバイルアプリケーションからモバイルデータを介してリクエストを行うように強制することはできますが、SafariやChromeなどのモバイルブラウザを使用している場合は、ユーザーにWi-Fiを無効にするように注意喚起する必要があります。
2. 追加で必要なキャリアの承認
SNAのビジネス利用を有効にするため、キャリアは各事業者から詳細情報を提出いただく必要があります。Twilioはこの申請・登録プロセスを可能な限りシームレスにするために、お客様企業をガイドいたします。このプロセスは最短で24時間ほどで完了しますが、キャリアによっては最長で3週間ほど掛かる場合もあります。
3. SNAは特定の国でのみ利用可能
Twilio VerifyのSNA機能は、2022年9月末までに、米国、カナダ、英国、ドイツ、フランス、スペイン、カナダ、インド、インドネシアなど、30カ国で利用可能になる予定です。Twilioにおける地理的な対応範囲については、お問い合わせください。
4. デュアルSIMカード搭載の端末は追加設定が必要
一部のユーザーは、デュアルSIMデバイスを持っています(=2つの異なるデータネットワークを使用することができます)。Verify APIはデュアルSIMのチェックを内蔵していますが、正しいネットワークでユーザーを認証するために、アクティブなデータセッションのIPアドレスが必要となります。このような特殊なケースをどのように扱うか等については、お問い合わせください。
5. 複数のAPIエンドポイントへの対応(データレジデンシー要件への対応)
インド、インドネシア、EEA(欧州経済領域)の規制当局は、すべてのデータを国内に所在させることを要求しています。そのため、Twilioはこれらの地域ごとにAPIのURLを持っています(APIの構造は同じで、URLのいち部分が異なるだけ)。データセンター地域の拡大を進めるにつれ、このデータレジデンシー対応の地域リストは増えていく方向性にあります。
Verify APIの実装の詳細については、ドキュメントを確認してください。評価利用に値するとの判断ができれば、ぜひ弊社までお問い合わせいただき、構築を開始してください。
また、アカウントセキュリティに関する以下のベストプラクティスも併せて確認してください。
- ユーザー新規登録時の電話番号検証のベストプラクティス(英語ブログ)
- SMSの2要素認証で再試行ロジックを管理するためのベストプラクティス(英語ブログ)
- Twilio Lookup APIのモバイルインテリジェンスパッケージ(英語ブログ)
コミュニケーションの未来を創造しましょう!