Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

生体認証を用いたロック解除のセキュリティ測定

Android と互換性があると見なされるには、デバイスの実装が Android 互換性定義ドキュメント(CDD)に示された要件を満たす必要があります。Android 10 の CDD では、アーキテクチャのセキュリティスプーフィング可能性を使用して、生体認証の実装のセキュリティを評価します。

  • アーキテクチャのセキュリティ: カーネルやプラットフォームの侵害に対する、生体認証パイプラインの耐性です。カーネルとプラットフォームが侵害されても、生の生体認証データを読み取ったり、パイプラインに合成データを挿入したりして認証の判断に影響を与えることがない場合、パイプラインは安全であるとみなされます。
  • スプーフィング可能性: スプーフィング可能性は、生体認証の Spoof Acceptance Rate(SAR)によって測定されます。SAR は Android 9 で導入された指標で、専門の攻撃者に対する生体認証の耐性を測定します。生体認証を測定する場合は、以下の手順に従う必要があります。

Android では、3 種類の指標を使用して生体認証の実装の強度を測定します。

  • Spoof Accept Rate(SAR): 生体認証モデルが、過去に記録された既知の正確なサンプルを受け入れる確率の指標を定義します。たとえば、音声によるロック解除では、「OK Google」を録音したサンプルでユーザーのスマートフォンのロックを解除する確率が測定されます。このような攻撃をスプーフィング攻撃と呼びます。
  • Imposter Accept Rate(IAR): 既知の正しいサンプルを模倣した入力を生体認証モデルが受け入れる確率の指標を定義します。たとえば、Smart Lock の信頼できる音声(音声によるロック解除)のメカニズムでは、ユーザーの声を模倣(似た口調、アクセントなど)する他のユーザーがデバイスのロックを解除できる頻度を測定します。こういった攻撃は、なりすまし攻撃と呼ばれます。
  • False Accept Rate(FAR): モデルがランダムに選択された入力を誤って受け入れる頻度の指標を定義します。これは有用な測定ではあるものの、対象となる攻撃にモデルがどれくらい耐えられるかを評価するのに十分な情報ではありません。

信頼エージェント

Android 10 では、信頼エージェントの動作が変更されました。信頼エージェントはデバイスのロック解除はできず、ロック解除されているデバイスのロック解除期間のみ延長できます。認識済みの顔は、Android 10 ではサポートが終了しています。

階層型認証

生体認証セキュリティは、アーキテクチャのセキュリティ テストとスプーフィング可能性テストの結果を使用して分類されます。生体認証の実装は、利便性のいずれかに分類できます。次の表は、各階層を示しています。

生体認証の階層 指標 生体認証パイプライン 制約
SAR: 0~7%
FAR: 1/50 K
FRR: 10%
セキュア
  • プライマリ認証へのフォールバックの 72 時間前(PIN、パターン、パスワードなど)
  • API をアプリケーションに公開可能(例: BiometricPrompt API や FIDO2 API との統合を使用)
  • BCR の提出が必要

(新しいデバイス)
SAR: 7~20%
FAR:1/50 k
FRR: 10%
セキュア
  • メインの認証へのフォールバックの 24 時間前
  • メインの認証へのフォールバック前の 4 時間のアイドル タイムアウト、または 3 回の不正な試み
  • BiometricPrompt との統合は可能だが、キーストアとの統合は不可(例: アプリの認証にバインドされた鍵を解放するため)
  • BCR の提出が必要

(デバイスのアップグレード)
SAR: 7~20%
FAR:1/50 k
FRR: 10%
非セキュア / セキュア
  • メインの認証へのフォールバックの 24 時間前を強く推奨
  • メインの認証へのフォールバック前の、4 時間のアイドル タイムアウトまたは 3 回の不正な試みを強く推奨
  • パイプラインがセキュアな場合、BiometricPrompt との統合が可能だが、キーストアとの統合は不可(例: アプリの認証バインドされた鍵を解放するため)
  • BCR の提出が必要
利便性(新しいデバイス) SAR: >20%
FAR: 1/50 K
FRR: 10%
非セキュア / セキュア
  • メインの認証へのフォールバックの 24 時間前
  • メインの認証へのフォールバック前の、4 時間のアイドル タイムアウトまたは 3 回の不正な試み
  • アプリケーションへの API の公開は不可
  • Q の後に一時的な階層がなくなる可能性あり
利便性
(デバイスのアップグレード用)
SAR: >20%
FAR: 1/50 K
FRR: 10%
非セキュア / セキュア
  • メインの認証へのフォールバックの 24 時間前を強く推奨
  • プライマリ認証へのフォールバック前の、4 時間のアイドル タイムアウトまたは 3 回の不正な試みを強く推奨
  • アプリケーションへの API の公開は不可
  • Q の後に一時的な階層がなくなる可能性あり

強、弱、利便性モダリティ

ロック解除モダリティの評価基準は、FAR、IAR、SAR の 3 つの認識率の組み合わせです。なりすまし攻撃がない場合は、FAR と SAR のみが考慮されます。
すべてのロック解除モダリティに適用される測定に関して詳しくは、Android 互換性定義ドキュメント(CDD)をご覧ください。

顔認証と虹彩認証

評価プロセス

評価プロセスは 2 つのフェーズで構成されています。調整フェーズでは、特定の認証ソリューションに対する最適なプレゼンテーション攻撃(調整位置)を決定します。テストフェーズでは、調整位置を使用して複数回攻撃を行い、攻撃が成功した回数を評価します。

SAR は、システム上の最大の弱点に対する攻撃のみを使用して測定される必要があるため、最初に調整位置を決定することが重要です。

調整プロセス

顔認証と虹彩認証では、テストフェーズで最適な値を確保するために、3 つのパラメータを最適化する必要があります。

  • プレゼンテーション媒体は、スプーフィングの実際の出力媒体です。現在、次の媒体がその対象とみなされています。
    • 2D
      • 印刷された写真
      • モニターやスマートフォンのディスプレイに表示された写真
      • モニターやスマートフォンのディスプレイに表示された動画
    • 3D
      • 3D プリンタ製のマスク
  • プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる、媒体や環境の追加の操作に関連しています。操作には次のようなものがあります。
    • 印刷された写真を少し折って頬の部分が曲がるようにすると(奥行きを多少再現できるため)、2D の顔認証ソリューションを突破しやすくなる場合があります。
    • 照明条件をいろいろ変えて、スプーフィングが成功しやすい環境を作る
    • レンズに汚れやしみを少し付ける
    • スマートフォンを縦向きにするか横向きにするかによって、スプーフィングの成功率が変わるかどうかを確認する
  • 多様な被験者のパフォーマンス(またはその欠如)は、特に機械学習に基づく認証ソリューションに関連しています。さまざまな性別や民族の被験者を対象として調整フローをテストすることで、母集団全体のセグメントのパフォーマンスが大幅に悪化する可能性がありますが、これはこのフェーズで調整すべき重要なパラメータでもあります。

スプーフィング テストでは、システムが有効なリプレイ攻撃やプレゼンテーション攻撃を受け入れるかどうかをテストします。スプーフィング対策やプレゼンテーション攻撃検出(PAD)が実装されていない、または無効になっている場合、生体認証検証プロセスで有効な生体認証要求として渡せるだけの十分なプレゼンテーション媒体が必要です。スプーフィング対策や PAD 機能のない生体認証検証プロセスに合格できないプレゼンテーション媒体は、スプーフィングとして無効であり、その媒体を使用するすべてのテストは無効です。スプーフィング テストの実施者は、テストで使用されるプレゼンテーション媒体や人工物が、この基準を満たすことを示す必要があります。

虹彩

  • プレゼンテーション媒体は、スプーフィングの実際の出力媒体です。現在、次の媒体がその対象とみなされています。
    • 印刷された、虹彩がはっきりと写った顔の写真
    • モニターやスマートフォンのディスプレイに表示された、虹彩がはっきり写った顔の写真または動画
    • 義眼
  • プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる、媒体や環境の追加の操作に関連しています。たとえば、コンタクト レンズを印刷された写真の上に置くか、目の写真や動画が表示されたディスプレイの上に置くと、虹彩分類システムを欺きやすくなり、虹彩認証システムを回避できる確率が高くなります。
  • 多様な被験者のパフォーマンスは、特に機械学習に基づく認証ソリューションに関連しています。虹彩ベースの認証では、虹彩の色ごとにスペクトル特性が異なる可能性があるため、さまざまな色をテストすることで、母集団全体のセグメントにおけるパフォーマンスの問題を明らかにできます。

テストフェーズ

テストフェーズでは、前のフェーズで得られた最適なプレゼンテーション攻撃を使用して、ソリューションの耐性を実際に測定します。

テストフェーズでの試行回数のカウント

顔(本物または偽物)を提示して、スマートフォンからフィードバック(アンロックされるかメッセージが表示される)を受け取るまでの時間を、1 回の試行としてカウントします。スマートフォンがマッチングを試みるのに十分なデータを集められなかった場合は、SAR の計算に使用する合計試行回数に含めないものとします。

評価手順

登録

顔認証または虹彩認証の調整フェーズを開始する前に、デバイスの設定に移動し、既存の生体認証プロファイルをすべて削除します。 既存のプロファイルをすべて削除したら、調整とテストに使用する顔または虹彩で新しいプロファイルを登録します。新しい顔や虹彩のプロファイルの追加は明るい場所で行い、デバイスを登録対象の顔の正面に、20 cm~80 cm 離して置くことが重要です。

調整フェーズ

プレゼンテーション媒体を準備します。

  • 登録フローと同じ照明条件、角度、距離で、登録済みの顔の写真または動画を高画質で撮影します。
  • 紙に印刷する場合、次のようにします。
    • 顔の輪郭に沿って紙を切り取り、紙のマスクを作成します。
    • 両頬の部分でマスクを曲げ、対象の顔の湾曲を模倣します。
    • テスト担当者の目が見えるように、目の部分を切り取ってのぞき穴を作ります。これは生体検知の手段としてまばたきを使用するソリューションに対して有効です。
  • 前述したプレゼンテーション形式の操作を調整フェーズで試して、成功率に影響を与えるどうかを確認します。

虹彩

  • 登録フローと同じ照明条件、角度、距離で、虹彩がはっきり写るように、登録済みの顔の写真または動画を高解像度で撮影します。
  • コンタクト レンズを付けた場合と外した場合の両方を試し、どちらの場合にスプーフィングが成功しやすいかを確認します。

調整フェーズの実行

基準位置
  • 基準位置: 基準位置は、プレゼンテーション媒体をデバイスの正面に、適切な距離(20~80 cm)で配置することで決定されます。その際、デバイスから媒体がはっきり見え、それ以外のもの(媒体のスタンドなど)は一切見えないようにする必要があります。
  • 水平基準面: 媒体が基準位置にあるときに、デバイスと媒体の間の水平面が水平基準面となります。
  • 垂直基準面: 媒体が基準位置にあるとき、デバイスと媒体の間の垂直面が垂直基準面となります。
基準面
図 1: 基準面
垂直弧

基準位置を決定し、デバイスから基準位置と同じ距離を維持しながら、垂直弧内で媒体をテストします。同じ垂直面内で、デバイスと水平基準面の間に 10 度の角度をつけて媒体を持ち上げ、顔認証をテストします。

10 度単位でデバイスを上に移動しながら、デバイスの視野から媒体が消えるまでテストを続けます。デバイスのロック解除が成功した位置をすべて記録します。次に水平基準面より下の弧に媒体を移動して、この手順を繰り返します。弧テストの例については、下の図 3 を参照してください。

水平弧

媒体を基準位置に戻してから、垂直基準面に対して 10 度の角度がつくように水平面に沿って移動します。この新しい位置で垂直弧テストを行います。媒体を水平面に沿って 10 度単位で移動し、新しい位置ごとに垂直弧テストを行います。

水平弧に沿ったテスト
図 1: 垂直弧と水平弧に沿ったテスト

弧テストは、デバイスの左右と上下で 10 度ずつ繰り返す必要があります。

最も信頼性の高いロック解除結果が得られる位置が、2D スプーフィングの調整位置です。

3D の調整フェーズ

3D 媒体の調整は、3D プリントされた媒体(マスクなど)を使用する以外は 2D 媒体の調整フェーズと同じです。2D 媒体の調整用の手順に沿って、3D 媒体の調整位置を決定します。

テストの多様性

顔や虹彩のモデルは、性別や民族によってパフォーマンスが異なる場合があります。さまざまな顔を使用してプレゼンテーション攻撃を調整することで、パフォーマンスのギャップを発見する機会を最大化します。

テストフェーズ

調整フェーズの最後に、2D と 3D のスプーフィング可能性をテストするための 2 つの調整位置(2D と 3D)が得られるはずです。調整位置を決定できない場合は、基準位置を使用します。テスト方法は 2D と 3D で共通であり、非常に簡単です。

  • 登録対象の顔に関する条件として、E >= 10 とし、一意の顔を少なくとも 5 つ含めるようにします(最小テストの場合、5 つの一意の顔を 2 回繰り返します)。
    • 顔 / 虹彩を登録します。
    • 前のフェーズで得られた調整位置を使用して、ロック解除(U)を試行し、前のセクションで説明したとおり試行回数をカウントし、U >= 10 になるようにします。成功したロック解除数(S)を記録します。
    • 次に、SAR を以下のように(2D と 3D で別々に)測定できます。

上記の各要素の意味は次のとおりです。

  • E = 登録数
  • U = 登録ごとのロック解除試行回数
  • Si = 登録 i の成功したロック解除の数

統計的に有効な誤差率のサンプルを得るために必要な反復: 大文字の N より下のすべてに対する 95% の信頼仮定

誤差 被験者ごとに必要なテストの反復
1% 9,595
2% 2,401
3% 1,067
5% 385
10% 97

所要時間(1 回の試行につき 30 秒、5 人の被験者)

誤差 合計時間
1% 399 時間
2% 100 時間
3% 44.5 時間
5% 16.4 時間
10% 4.0 時間

2~12% という母集団における真の誤差率が得られるように、5% の誤差を目標にすることをおすすめします。

範囲

このプロセスは、主に対象ユーザーの顔の複製に対する顔認証の耐性をテストするために設定されています。LED や、原本として機能するパターンを使用する、複製ベースではない攻撃には対応していません。このような攻撃が、奥行きベースの顔認証システムに対して有効であることはまだ証明されていませんが、理論的には否定できません。将来の研究でこの攻撃が有効であると証明される可能性は、十分にあると考えられます。その時点で、そうした攻撃に対する耐性を測定できるように、この手順を改訂します。

指紋認証

Android 10 では、偽の指紋に対する耐性として、Spoof Acceptance Rate(SAR)の測定に従い 7% 以下という最小限の基準を設定しています。このブログ記事で、7% という数字の根拠が簡単に説明されています。

評価プロセス

評価プロセスは 2 つのフェーズで構成されています。調整フェーズでは、特定の指紋認証ソリューションに対する最適なプレゼンテーション攻撃(つまり、調整位置)を決定します。テストフェーズでは、調整位置を使用して複数回攻撃を行い、攻撃が成功した回数を評価します。

調整プロセス

指紋認証では、テストフェーズで最適な値を確保するために、3 つのパラメータを最適化する必要があります。

  • プレゼンテーション媒体は、スプーフィングの実際の出力媒体です。たとえば、印刷された指紋や成形レプリカはすべてプレゼンテーション媒体です。スプーフィングに使用する素材として、次のものを強くおすすめします。
    • 光学式
      • コピー用紙、または非導電性インクを使用した透明フィルム
      • Knox ゼラチン
      • ラテックス塗料
      • Elmer's グルーオール
    • 容量式
      • コピー用紙、または導電性インクを使用した透明フィルム
      • Knox ゼラチン
      • Elmer's カーペンターズ インテリア ウッドグルー
      • Elmer's グルーオール
      • ラテックス塗料
    • 超音波式
      • コピー用紙、または非導電性インクを使用した透明フィルム
      • Knox ゼラチン
      • Elmer's カーペンターズ インテリア ウッドグルー
      • Elmer's グルーオール
      • ラテックス塗料
  • プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる、媒体や環境の追加の操作に関連しています。たとえば、3D レプリカを作成する前に、指紋の高解像度画像をレタッチまたは編集します。
  • 多様な被験者のパフォーマンスは、特にアルゴリズムのチューニングに関係があります。さまざまな性別や民族の被験者を対象として調整フローをテストすることで、母集団全体のセグメントのパフォーマンスが大幅に悪化する可能性がありますが、これはこのフェーズで調整すべき重要なパラメータでもあります。
テストの多様性

指紋リーダーは、性別や民族によってパフォーマンスが異なる場合があります。母集団のごく一部の被験者は認識されにくい指紋を持つため、認識やスプーフィング テストにとって最適なパラメータを決定するには、さまざまな指紋を使用する必要があります。

テストプロセス

テストフェーズでは、ソリューションの耐性を実際に測定します。 テストは非協力的な方法で行う必要があります。これは、型取りのように被験者が指紋の収集に積極的に関わるのではなく、別の表面から指紋を採取して収集することを意味します。

テストフェーズでの試行回数のカウント

センサーに指紋(本物または偽物)を提示してから、スマートフォンからフィードバック(アンロックされるか、メッセージが表示されるか)を受け取るまでの時間を、1 回の試行としてカウントします。

スマートフォンがマッチングを試みるのに十分なデータを集められなかった場合は、SAR の計算に使用する合計試行回数に含めないものとします。

評価手順

登録

指紋認証の調整フェーズを開始する前に、デバイスの設定に移動し、既存の生体認証プロファイルをすべて削除します。既存のプロファイルをすべて削除したら、調整とテストに使用する指紋で新しいプロファイルを登録します。画面に表示される指示に沿って操作し、プロファイルが正常に登録されたことを確認します。

調整フェーズ

超音波式

これは光学式と容量式の調整フェーズに似ていますが、対象ユーザーの指紋の印刷と 3D 型の両方を使用します。

  • 表面から潜在指紋を採取します。
  • 紙に印刷された指紋などのプレゼンテーション媒体でテストします。
    • 採取した指紋をセンサーに当てます。
  • 3D 型でテストします。偽の指紋は、1 人につき少なくとも 4 種類の素材(ゼラチン、シリコン、木工用接着剤など)を使用して作成する必要があります。
    • 指紋の型を作成します。
    • 成形された指紋をセンサーに当てます。
光学式

光学式の調整では、対象者の潜在指紋を採取します。たとえば、指紋パウダーで採取された指紋、または印刷された指紋のコピーを使用するか、スプーフィングの成功率を高めるために指紋画像を手作業でレタッチすることも可能です。

容量式

容量式の調整では、上記の光学式の調整と同じ手順を行いますが、潜在指紋の採取後に指紋の型を作ります。

テストフェーズ

  • 少なくとも 10 人を用意し、FRR / FAR の計算に使用したのと同じパラメータを使用して、1 つの指紋を登録します。
  • 上記の方法に従い、1 人につき 4 種類以上の素材を使用して、4 つ以上の偽の指紋を作成します。
  • 1 人につき 5 回ずつ、別々の偽の指紋を使用してロック解除を試します。

統計的に有効な誤差率のサンプルを得るために必要な反復: 大文字の N より下のすべてに対する 95% の信頼仮定

誤差 被験者ごとに必要なテストの反復
1% 9,595
2% 2,401
3% 1,067
5% 385
10% 97

所要時間(1 回の試行につき 30 秒、5 人の被験者)

誤差 合計時間
1% 399 時間
2% 100 時間
3% 44.5 時間
5% 16.4 時間
10% 4.0 時間

2~12% という母集団における真の誤差率が得られるように、5% の誤差を目標にすることをおすすめします。

範囲

このプロセスは、主に対象ユーザーの指紋の複製に対する指紋認証の耐性をテストするために設定されています。このテスト方法は、現在の材料費、入手しやすさ、成形技術に基づいています。新しい材料や技術が実用的になった段階で、それに対する耐性を測定できるようにこの手順を改訂します。

一般的な考慮事項

それぞれのモダリティには異なるテスト設定が必要ですが、すべてに共通する側面があります。

実際のハードウェアでテストする

生体認証モデルが理想的な条件下で、かつモバイル デバイスで実際に表示されるハードウェアとは異なる条件でテストされた場合、正しい SAR / IAR の指標を収集できません。たとえば、無響室で複数のマイクを使用して調整された声をもとに行われるロック解除モデルは、雑音の多い環境で 1 つのマイクで使用する場合とは大きく異なります。正確な指標を収集するには、ハードウェアがインストールされた実際のデバイスでテストを行い、デバイスに表示されるよう失敗する必要があります。

既知の攻撃を使用する

今日使用されている生体認証モダリティの多くはスプーフィング攻撃を受けているため、攻撃方法に関する公開資料が存在します。ここでは、既知の攻撃に対するモダリティのテスト設定の概要を簡単に説明します。可能な限り、ここで説明する設定を使用することをおすすめします。

新しい攻撃を予測する

新たに設定が大幅に改良されたモダリティでは、テスト設定のドキュメントに適切な設定が含まれていない可能性があります。既存のモダリティでは、新たに攻撃が発見された後にテスト設定を調整する必要があります。どちらの場合も、合理的なテストの設定を行う必要があります。このページの最後にあるサイトのフィードバックリンクより、追加できる合理的なメカニズムを設定していたかどうかをお知らせください。

さまざまなモダリティの設定

指紋

IAR 不要。
SAR
  • 対象者の指紋の型を使用して、偽の指紋を作成します。
  • 測定精度は指紋の型の品質に左右されるので、歯科用シリコンを使うとよいでしょう。
  • テスト設定では、型で作成した偽の指紋がデバイスのロックを解除できる頻度を測定します。

顔と虹彩

IAR 下限は SAR によって取得されるため、別途測定する必要はありません。
SAR
  • 対象者の顔写真でテストします。虹彩の場合、通常は顔を近づける必要があります。この機能をユーザーが通常使う距離を真似するためです。
  • 高解像度の写真を使用しないと、正しい結果が得られません。
  • 画像であることがわかるような方法で写真を提示してはいけません。次に例を示します。
    • 画像の枠線が見えないようにする
    • スマートフォンの画面やベゼルが見えないようにする(スマートフォン上に写真がある場合)
    • 誰かが写真を持っている場合は、手が見えないようにする
  • 写真をまっすぐな角度に保てば、センサーの中に入りほかには何も映りません。
  • ユーザーがスマートフォンを顔の前にまっすぐに持った場合を想定して、顔と虹彩は通常、サンプル(顔、虹彩、写真)をカメラに対して鋭角にしたほうが受け入れられやすくなります。この角度でテストすると、そのモデルがスプーフィング攻撃を受けやすいかどうかを判断できます。
  • 顔またが虹彩の画像が、デバイスのロックを解除できる頻度を測定します。

音声

IAR
  • テスト参加者が本物のサンプルを聞いてから模倣しようとする設定でテストします。
  • イントネーションやアクセントが高い FAR を持つエッジケースを確実にカバーするために、性別やアクセントの異なるテスト参加者によるモデルをテストします。
SAR
  • 対象となる音声を録音してテストします。
  • ある程度高品質の録音を使用しないと、正しい結果が得られません。