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

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 ではサポートが終了しています。

階層型認証

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

生体認証の階層 指標 生体認証パイプライン 制約
クラス 3 - 強 SAR: 0~7%
FAR: 1/50,000
FRR: 10%
セキュア
  • 72 時間後にプライマリ認証(PIN、パターン、パスワードなど)にフォールバック
  • API をアプリに公開できる(例: BiometricPrompt API または FIDO2 API との統合を使用)
  • BCR の提出が必要
クラス 2 - 弱
(新しいデバイス)
SAR: 7~20%
FAR: 1/50,000
FRR: 10%
セキュア
  • 24 時間後にプライマリ認証にフォールバック
  • 4 時間のアイドル タイムアウトまたは 3 回の不正な試みでプライマリ認証にフォールバック
  • BiometricPrompt と統合できるが、キーストアとの統合(たとえばアプリの認証にバインドされた鍵を解放するため)はできない
  • BCR の提出が必要
クラス 2 - 弱
(デバイスのアップグレード)
SAR: 7~20%
FAR: 1/50,000
FRR: 10%
非セキュア / セキュア
  • 24 時間後にプライマリ認証にフォールバックすることを強く推奨
  • 4 時間のアイドル タイムアウトまたは 3 回の不正な試みでプライマリ認証にフォールバックすることを強く推奨
  • パイプラインがセキュアな場合は BiometricPrompt と統合できるが、キーストアとの統合(たとえばアプリの認証にバインドされた鍵を解放するため)はできない
  • BCR の提出が必要
クラス 1 - 利便性(新しいデバイス) SAR: 20% 超
FAR: 1/50,000
FRR: 10%
非セキュア / セキュア
  • 24 時間後にプライマリ認証にフォールバック
  • 4 時間のアイドル タイムアウトまたは 3 回の不正な試みでプライマリ認証にフォールバック
  • API をアプリに公開できない
  • Q の後に一時的な階層がなくなる可能性あり
クラス 1 - 利便性
(デバイスのアップグレード用)
SAR: 20% 超
FAR: 1/50,000
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)を記録します。
    • 以上により、(2D と 3D で別々に)SAR の測定値を以下のように算出できます。

ここで

  • 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 種類の素材(ゼラチン、シリコン、木工用接着剤など)を使用して作成する必要があります。
    • 指紋の型を作成します。
    • 成形された指紋をセンサーに当てます。
光学式

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

容量式

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

テストフェーズ

  • FRR / FAR の計算に使用したのと同じパラメータを使用し、少なくとも 10 人から 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 つのマイクを使用する場合とは大きく異なります。正確な指標を収集するには、ハードウェアがインストールされた実際のデバイスでテストを行い、デバイスで使用されているハードウェアと同じ失敗を再現する必要があります。

既知の攻撃を使用する

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

新しい攻撃を予測する

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

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

指紋

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

顔と虹彩

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

音声

IAR
  • テスト参加者が陽性のサンプルを聞いて模倣する設定を使用してテストします。
  • FAR が高い抑揚または口調を含むエッジケースを確実にカバーするため、性別と口調が異なる多様なテスト参加者でモデルをテストします。
SAR
  • 対象者の音声の録音でテストします。
  • ある程度高品質の録音を使用しないと、正しい結果が得られません。