Android に対応していると見なされるには、デバイスの実装が Android 互換性定義ドキュメント(CDD)に示された要件を満たす必要があります。Android 10 の 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 11 デバイスの各クラスを下表に示します。
生体認証クラス | 指標 | 生体認証パイプライン | 制約 |
---|---|---|---|
クラス 3 (旧称「強」) |
SAR: 0~7% FAR: 1/50,000 FRR: 10% |
セキュア |
|
クラス 2 (旧称「弱」) |
SAR: 7~20% FAR: 1/50,000 FRR: 10% |
セキュア |
|
クラス 1 (旧称「利便性」) |
SAR: 20% 超 FAR: 1/50,000 FRR: 10% |
非セキュア / セキュア |
|
クラス 3、クラス 2、クラス 1 のモダリティ
生体認証セキュリティ クラスは、安全なパイプラインの有無と 3 つの受け入れ率(FAR、IAR、SAR)に基づいて割り当てられます。なりすまし攻撃がない場合は、FAR と SAR のみが考慮されます。
すべてのロック解除モダリティに適用される測定の詳細については、Android 互換性定義ドキュメント(CDD)をご覧ください。
顔認証と虹彩認証
評価プロセス
評価プロセスは 2 つのフェーズで構成されます。調整フェーズでは、特定の認証ソリューションに対する最適なプレゼンテーション攻撃(つまり、調整位置)を決定します。テストフェーズでは、調整位置を使用して複数回攻撃を行い、攻撃が成功した回数を評価します。Android デバイスと生体認証システムのメーカーは、最新のテストのガイダンスについてこちらのフォームからお問い合わせください。
SAR は、システム上の最大の弱点に対する攻撃のみを使用して測定する必要があるため、最初に調整位置を決定することが重要です。
調整フェーズ
顔認証と虹彩認証では、テストフェーズ用の最適な値を得るために、プレゼンテーション攻撃手段(PAI)、プレゼンテーション形式、多様な被験者に対するパフォーマンスという 3 つのパラメータを調整フェーズにおいて最適化する必要があります。
顔
|
虹彩
|
テストの多様性
顔モデルと虹彩モデルは、性別、年齢層、人種や民族によってパフォーマンスが異なる場合があります。さまざまな顔を使用してプレゼンテーション攻撃を調整することで、パフォーマンスの差異を最も発見しやすくしてください。
テストフェーズ
テストフェーズでは、前のフェーズで最適化されたプレゼンテーション攻撃を使用して、生体認証セキュリティ パフォーマンスを測定します。
テストフェーズでの試行回数のカウント
顔(本物または偽物)を提示し、スマートフォンからフィードバック(ロック解除されるかユーザーへのメッセージが表示される)を受け取るまでの時間を 1 回の試行としてカウントします。スマートフォンが照合を試みるのに十分なデータを得られなかった場合は、SAR の計算に使用する合計試行回数に含めないものとします。
評価手順
登録
顔認証または虹彩認証の調整フェーズを開始する前に、デバイス設定に移動して既存の生体認証プロファイルをすべて削除します。既存のプロファイルをすべて削除したら、調整とテストに使用する顔または虹彩で新しいプロファイルを登録します。新しい顔または虹彩のプロファイルの追加は明るい場所で行い、登録する顔の正面にデバイスを 20 cm から 80 cm 離して置くことが重要です。
調整フェーズ
調整フェーズは 2 回以上実施します。1 回以上は 2 次元の PAI の種類に実施し、3 次元の PAI の種類についても 1 回以上実施します。このフェーズでは、少なくとも 2 次元の PAI の種類と、3 次元の PAI の種類には、それぞれ個別に調整した位置を決定するのが最小要件です。PAI の種類ごとに調整することをおすすめしますが、必須ではありません。次のように PAI を準備します。
顔
|
虹彩
|
調整フェーズの実施
基準位置
- 基準位置: 基準位置は、デバイスの正面に適切な距離(20~80 cm)をとって PAI を置くことで決定されます。その際、デバイスから PAI がはっきり見え、それ以外のもの(PAI のスタンドなど)は一切見えないようにする必要があります。
- 水平基準面: PAI が基準位置にあるときのデバイスと PAI の間の水平面が水平基準面になります。
- 垂直基準面: PAI が基準位置にあるときのデバイスと PAI の間の垂直面が垂直基準面になります。
垂直弧
基準位置を決定し、デバイスからの距離を基準位置と同じに保って、垂直弧内で PAI をテストします。同じ垂直面内で、デバイスと水平基準面の間に 10 度の角度をつけて PAI を持ち上げ、顔認証をテストします。
PAI を 10 度ずつ上に移動し、デバイスの視野から PAI が消えるまでテストを続けます。デバイスのロック解除が成功した位置をすべて記録します。次に、水平基準面より下の弧に PAI を移動して、この手順を繰り返します。弧テストの例については、下の図 3 を参照してください。
水平弧
PAI を基準位置に戻し、垂直基準面に対して 10 度の角度をつけて、水平面に沿って移動します。この新しい位置で垂直弧テストを行います。水平面に沿って 10 度ずつ PAI を移動し、新しい位置ごとに垂直弧テストを行います。
弧テストは、デバイスの左右と上下で 10 度ずつ位置を変えて繰り返す必要があります。
最終的に最も信頼性の高いロック解除結果が得られた位置が、その種の PAI(2 次元 PAI、3 次元 PAI)の調整位置です。
テストフェーズ
調整フェーズを終えると、2 つの調整位置(2 次元 PAI で 1 つ、3 次元 PAI で 1 つ)が得られます。調整位置を決定できない場合は、基準位置を使用します。テスト方法は 2 次元 PAI と 3 次元 PAI で共通です。
- 登録する顔の総数を E >= 10 とし、異なる顔を少なくとも 10 個含めます。
- 顔または虹彩の登録
- 前のフェーズで得られた調整位置を使用して、ロック解除を U 回試行します。前のセクションで説明した方法で試行回数をカウントし、U >= 10 になるようにします。成功したロック解除数(S)を記録します。
- SAR は以下のように算出できます。
ここで
- 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 グルーオール
- ラテックス塗料
- 光学式指紋認証センサー(FPS)
- プレゼンテーション形式は、スプーフィングの成功率を高めるために行われる 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 は以下のように算出できます。
統計的に有効な誤差率のサンプルを得るために必要な反復: ラージ 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 |
|
顔と虹彩
IAR | 下限は SAR によって取得されるため、別途測定する必要はありません。 |
SAR |
|
音声
IAR |
|
SAR |
|