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

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

  • アーキテクチャのセキュリティ: カーネルまたはプラットフォームの侵害に対する、生体認証パイプラインの耐性。カーネルとプラットフォームが侵害されても、生の生体認証データの読み取りまたはパイプラインへの合成データの挿入によって認証の判断に影響を及ぼすことが可能でなければ、パイプラインは安全であると見なされます。
  • 生体認証セキュリティ パフォーマンス: 生体認証セキュリティ パフォーマンスは、生体認証の Spoof Acceptance Rate(SAR)、False Acceptance Rate(FAR)と、該当する場合は Imposter Acceptance Rate(IAR)によって測定されます。SAR は Android 9 で導入された指標で、物理的なプレゼンテーション攻撃に対する生体認証の耐性を測定します。生体認証を測定する場合は、以下のプロトコルに沿って行う必要があります。

Android では、3 種類の指標を使用して生体認証セキュリティ パフォーマンスを測定します。

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

信頼エージェント

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

生体認証クラス

生体認証セキュリティは、アーキテクチャのセキュリティ テストとスプーフィング可能性テストの結果を使用して分類されます。生体認証の実装は、クラス 3(旧称「」)、クラス 2(旧称「」)、クラス 1(旧称「利便性」)のいずれかに分類できます。下の表に、各生体認証クラスの一般的な要件をまとめます。

詳しくは、現在の Android CDD をご覧ください。

生体認証クラス 指標 生体認証パイプライン 制約
クラス 3
(旧称「強」)
すべての PAI の SAR: 0~7%

レベル A PAI の SAR:
<=7%

レベル B PAI の SAR:
<=20%

個々の PAI の SAR: <= 40%(<= 7% を強く推奨)

FAR: 1/50k

FRR: 10%
セキュリティ
  • 最長 72 時間後にプライマリ認証(PIN、パターン、パスワードなど)にフォールバック
  • API をアプリに公開できる(例: BiometricPrompt API または FIDO2 API との統合を使用)
  • BCR の提出が必要
クラス 2
(旧称「弱」)
すべての PAI の SAR: 7~20%

レベル A PAI の SAR:
<=20%

レベル B PAI の SAR:
<=30%

個々の PAI の SAR: <= 40%(<= 20% を強く推奨)

FAR: 1/50k

FRR: 10%
セキュリティ
  • 最長 24 時間後にプライマリ認証にフォールバック
  • 4 時間のアイドル タイムアウトまたは 3 回の不正な試みでプライマリ認証にフォールバック
  • BiometricPrompt と統合できるが、キーストアとの統合(たとえばアプリの認証にバインドされた鍵を解放するため)はできない
  • BCR の提出が必要
クラス 1
(旧称「利便性」)
すべての PAI の SAR: 20~30%

レベル A PAI の SAR:
<=30%

レベル B PAI の SAR:
<=40%

個々の PAI の SAR: <= 40%(<= 30% を強く推奨)

FAR: 1/50k

FRR: 10%
安全かそうでないか
  • 最長 24 時間後にプライマリ認証にフォールバック
  • 4 時間のアイドル タイムアウトまたは 3 回の不正な試みでプライマリ認証にフォールバック
  • API をアプリに公開できない
  • Android 11 以降は BCR の提出が必要
  • Android 13 以降は SAR のテストが必要
  • 一時的なクラスは今後なくなる可能性あり

クラス 3、クラス 2、クラス 1 のモダリティの比較

生体認証セキュリティ クラスは、安全なパイプラインの有無と 3 つの受け入れ率(FAR、IAR、SAR)に基づいて割り当てられます。なりすまし攻撃がない場合は、FAR と SAR のみが考慮されます。

すべてのロック解除モダリティに適用される測定の詳細については、Android 互換性定義ドキュメント(CDD)をご覧ください。

顔認証と虹彩認証

評価プロセス

評価プロセスは 2 つのフェーズで構成されます。調整フェーズでは、特定の認証ソリューションに対する最適なプレゼンテーション攻撃(つまり、調整位置)を決定します。テストフェーズでは、調整位置を使用して複数回攻撃を行い、攻撃が成功した回数を評価します。Android デバイスと生体認証システムのメーカーは、最新のテストのガイダンスについてこちらのフォームからお問い合わせください。

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

調整フェーズ

顔認証と虹彩認証では、テストフェーズ用の最適な値を得るために、プレゼンテーション攻撃手段(PAI)、プレゼンテーション形式、多様な被験者に対するパフォーマンスという 3 つのパラメータを調整フェーズにおいて最適化する必要があります。


  • プレゼンテーション攻撃手段(PAI)は物理的な偽物です。現在のところ、生体認証テクノロジーに関係なく次の種類の PAI が対象となります。
    • 2 次元 PAI
      • 印刷された写真
      • モニターやスマートフォンのディスプレイに表示された写真
      • モニターやスマートフォンのディスプレイに表示された動画
    • 3 次元 PAI
      • 3D プリントされた仮面
  • プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる PAI または環境の追加の操作に影響します。そうした操作の例を以下に示します。
    • 印刷された写真を少し折り曲げて頬の部分を湾曲させる(これによって奥行きが多少再現され、2 次元の顔認証ソリューションを突破しやすくなる場合があります)
    • スプーフィングが成功しやすい環境を作るため、照明条件をさまざまに変える
    • レンズに汚れやしみを少し付ける
    • スマートフォンを縦向きにするか横向きにするかによって、スプーフィングの成功率が変わるかどうかを確認する
  • 多様な被験者に対するパフォーマンス(またはその欠如)は、特に機械学習に基づく認証ソリューションに影響します。性別や年齢層の異なるさまざまな人種 / 民族の被験者を対象として調整フローをテストすると、母集団全体のセグメントのパフォーマンスが大幅に悪化することがあります。これは、このフェーズで調整すべき重要なパラメータです。
スプーフィング テストでは、システムが有効なリプレイ攻撃またはプレゼンテーション攻撃を受け入れるかどうかをテストします。スプーフィング対策またはプレゼンテーション攻撃検出(PAD)が実装されていない場合、または無効になっている場合に、生体認証検証プロセスで有効な生体認証要求として十分にパスする PAI が必要です。スプーフィング対策機能または PAD 機能のない生体認証検証プロセスをパスできない PAI は PAI として無効であり、その種の PAI を使用するテストはすべて無効です。スプーフィング テストの実施者は、テストで使用する PAI がこの条件を満たすことを示す必要があります。
虹彩
  • プレゼンテーション攻撃手段(PAI)は物理的な偽物です。現在のところ、次の種類の PAI が対象となります。
    • 虹彩がはっきり写っている、印刷された顔の写真
    • 虹彩がはっきり写っている、モニターやスマートフォンのディスプレイに表示された顔の写真または動画
    • 義眼
  • プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる PAI または環境の追加の操作に影響します。たとえば、コンタクト レンズを印刷された目の写真の上に置くか、目の写真または動画が表示されたディスプレイの上に置くと、虹彩分類システムを欺きやすくなり、虹彩認証システムを迂回できる確率が高くなります。
  • 多様な被験者に対するパフォーマンスは、特に機械学習に基づく認証ソリューションに影響します。虹彩ベースの認証では、虹彩の色によってスペクトル特性が異なるため、さまざまな色をテストすることで、母集団全体のセグメントにおけるパフォーマンスの問題を顕在化できます。

テストの多様性

顔モデルと虹彩モデルは、性別、年齢層、人種や民族によってパフォーマンスが異なる場合があります。さまざまな顔を使用してプレゼンテーション攻撃を調整することで、パフォーマンスの差異を最も発見しやすくしてください。

テストフェーズ

テストフェーズでは、前のフェーズで最適化されたプレゼンテーション攻撃を使用して、生体認証セキュリティ パフォーマンスを測定します。

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

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

評価手順

登録

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

調整フェーズ

各 PAI の種類ごとに調整フェーズを実行します。これは種類ごとにサイズなどの特性が異なり、テストの最適条件に影響を及ぼす可能性があるためです。次のように PAI を準備します。


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

調整フェーズの実施

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

図 1. 基準面

垂直弧

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

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

水平弧

PAI を基準位置に戻し、垂直基準面に対して 10 度の角度をつけて、水平面に沿って移動します。この新しい位置で垂直弧テストを行います。水平面に沿って 10 度ずつ PAI を移動し、新しい位置ごとに垂直弧テストを行います。

水平弧に沿ったテスト

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

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

最終的に最も信頼性の高いロック解除結果が得られた位置が、その種の PAI(2 次元 PAI、3 次元 PAI)の調整位置です。

テストフェーズ

調整フェーズの終了時点で、PAI の種類ごとに 1 つの調整位置が決定されます。調整位置を決定できない場合は、基準位置を使用します。テスト方法は 2 次元 PAI と 3 次元 PAI で共通です。

  • 登録する顔の総数を E >= 10 とし、異なる顔を少なくとも 10 個含めます。
    • 顔または虹彩の登録
    • 前のフェーズで得られた調整位置を使用して、ロック解除を U 回試行します。前のセクションで説明した方法で試行回数をカウントし、U >= 10 になるようにします。成功したロック解除数(S)を記録します。
    • SAR は以下のように算出できます。
$$ \displaystyle SAR = \frac{\displaystyle\sum_{i=1}^{E}{S_i} }{(U * E)}\ {* 100\%} $$

ここで:

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

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

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

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

誤差 合計時間
1% 799.6 時間
2% 200.1 時間
3% 88.9 時間
5% 32.1 時間
10% 8.1 時間

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

範囲

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

指紋認証

Android 9 では、PAI に対する最小限の耐性として、Spoof Acceptance Rate(SAR)が 7% 以下という基準を設定しました。7% という具体的な数値の根拠については、こちらのブログ投稿に簡単な説明があります。

評価プロセス

評価プロセスは 2 つのフェーズで構成されます。調整フェーズでは、特定の指紋認証ソリューションに対する最適なプレゼンテーション攻撃(つまり、調整位置)を決定します。テストフェーズでは、調整位置を使用して複数回攻撃を行い、攻撃が成功した回数を評価します。Android デバイスと生体認証システムのメーカーは、最新のテストのガイダンスについてこちらのフォームからお問い合わせください。

調整フェーズ

指紋認証では、テストフェーズ用の最適な値を得るために、プレゼンテーション攻撃手段(PAI)、プレゼンテーション形式、多様な被験者に対するパフォーマンスという 3 つのパラメータを最適化する必要があります。

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

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

テストフェーズ

テストフェーズでは、生体認証セキュリティ パフォーマンスを測定します。少なくとも、テストは非協力的な方法で行う必要があります。つまり、収集するすべての指紋を別の表面から採取します。協力を得て被験者の指の型を取るなど、被験者が指紋の収集に積極的に関与するのではありません。後者は許容されますが、必須ではありません。

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

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

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

評価手順

登録

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

調整フェーズ

光学式 FPS

超音波式と静電容量式の調整フェーズに似ていますが、対象ユーザーの指紋の 2 次元 PAI と 2.5 次元 PAI の両方を使用します。

  • 表面から潜在指紋を採取します。
  • 2 次元 PAI でテストします。
    • 採取した指紋をセンサーに当てます。
  • 2.5 次元 PAI でテストします。
    • 指紋の PAI を作成します。
    • PAI をセンサーに当てます。
超音波式 FPS

超音波式の調整では、対象者の潜在指紋を採取します。たとえば、指紋粉末で採取された指紋や印刷された指紋を使用します。スプーフィングの成功率を高めるために指紋画像を手作業でレタッチしても構いません。

対象の潜在指紋を採取したら、PAI を作成します。

静電容量式 FPS

静電容量式の調整では、前述の超音波式の調整と同じ手順を行います。

テストフェーズ

  • FRR / FAR の計算で使用したものと同じパラメータを使用し、少なくとも 10 人を登録します。
  • 個人ごとに PAI を作成します。
  • SAR は以下のように算出できます。
$$ \displaystyle SAR = \frac{\displaystyle\sum_{i=1}^{E}{S_i} }{(U * E)}\ {* 100\%} $$

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

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

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

誤差 合計時間
1% 799.6 時間
2% 200.1 時間
3% 88.9 時間
5% 32.1 時間
10% 8.1 時間

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

範囲

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

一般的な考慮事項

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

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

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

既知の攻撃を使用する

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

新しい攻撃を予測する

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

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

指紋

IAR 不要。
SAR
  • 対象者の指紋の型を使用して、2.5 次元 PAI を作成します。
  • 測定精度は指紋の型の品質に左右されるため、歯科用シリコーンを使用することをおすすめします。
  • テストのセットアップでは、型で作成した偽の指紋がデバイスのロックを解除できる頻度を測定します。

顔と虹彩

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

音声

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