顔アンチスプーフィングとは
顔アンチスプーフィングは、顔認証システムに対するプレゼンテーション攻撃に関連する指標を評価します。プレゼンテーション攻撃では、端末の前にいる本人の代わりに、印刷写真、動画を表示したスマートフォン、3D マスク、AI 生成の deepfake 動画などをカメラに提示します。
アンチスプーフィング制御がなければ、顔認識は画像同士の比較だけになる場合があります。顔だけを比較するシステムは、写真やリプレイの影響を受ける可能性があります。ライブネスとアンチスプーフィングの結果は、PIN、ドメイン制限、バックエンド側のアクセス制御と組み合わせて使用してください。
FACEIO はライブネス検出、顔スプーフィング保護、疑わしい試行を示す fioErrCode.PAD_ATTACK に対応します。アプリケーション所有者は FACEIO Console でセキュリティ設定を確認し、失敗したチェックをバックエンドで適切に処理したうえで、セキュリティのベストプラクティスとプライバシーのベストプラクティスに従って本番導入を準備する必要があります。
プレゼンテーション攻撃の種類
顔認証に対するプレゼンテーション攻撃には複数の種類があり、評価すべき指標も異なります。まず攻撃経路を把握し、アプリケーションのセキュリティ制御に反映します。
印刷写真による攻撃
攻撃者が対象ユーザーの印刷写真をカメラに提示します。顔比較だけに依存するシステムを狙う単純な攻撃です。FACEIO はライブネスとアンチスプーフィングの指標を評価し、写真による試行の疑いがある場合は PAD_ATTACK を返すことがあります。
画面リプレイ攻撃
攻撃者が録画済み動画や写真をスマートフォン、タブレット、モニターに表示してカメラへ提示します。ライブネスとアンチスプーフィングのチェックは、画面表示やリプレイに関連する指標を評価します。
3D マスク攻撃
対象者の顔を模した物理的な 3D マスクをカメラに提示します。顔比較だけに依存するシステムは影響を受ける可能性があるため、ライブネスとアンチスプーフィングの結果を他のアプリケーション制御と組み合わせて評価します。
deepfake 動画の注入
AI 生成動画は、物理カメラを経由せず、仮想カメラドライバーからブラウザへ直接入力される場合があります。FACEIO は疑わしい合成動画やリプレイに関連するアンチスプーフィング指標を評価します。リアルタイムの Web 会議では、 Meeting Shield が Google Meet、Zoom Web、Teams Web で合成動画のリスクシグナルを報告します。
仮想カメラの悪用
仮想カメラソフトウェアは、ブラウザ上の会議や認証フローへ動画ソースを入力できます。顔認証の脅威モデルでは、この経路も考慮してください。FACEIO のアンチスプーフィング制御は、PIN 確認、ドメイン制限、セキュリティガイドに記載されたサーバー側の制御と組み合わせてください。
ライブネス検出の方式
ライブネス検出は、提示された物体ではなく、本人がその場にいることを示す指標を評価します。一般的にはアクティブ方式、パッシブ方式、またはその組み合わせが使用されます。FACEIO の標準 Web フローでは専用の生体認証ハードウェアは不要です。
アクティブライブネス検出
ユーザーに、まばたき、顔の向きの変更、笑顔、画面上の指示への対応など、簡単な操作を求めます。応答から自然な動きのパターンを評価します。操作が一つ増えますが、印刷写真やマスクなどの静止物に対する指標として利用できます。
パッシブライブネス検出
パッシブライブネスは、ユーザーに特定の操作を求めずにキャプチャの指標を評価します。使用されるシグナルと動作は、設定した認識フローと撮影条件によって異なります。
FACEIO は登録と認証のフローでライブネスおよびアンチスプーフィングのチェックに対応します。 FACEIO Console ↗で設定を確認し、再試行、代替アクセス、PIN 確認、サポートへの引き継ぎ方法を定めてください。
PAD_ATTACK の処理方法
登録または認証中に FACEIO のフローがプレゼンテーション攻撃の疑いを検出すると、fioErrCode.PAD_ATTACK エラーコードを返します。アプリケーションは、enroll() または authenticate() の catch() ブロックでこのエラーを受け取ります。
PAD_ATTACK を通常のログイン失敗と同じ扱いにしない
顔照合の不一致と PAD_ATTACK の結果は異なるイベントです。後者は、フローがプレゼンテーション攻撃の疑いを検出したことを示します。イベントの記録、再試行制限、代替手段への誘導など、別の処理経路を用意してください。
イベントをサーバー側で記録する
PAD_ATTACK をアカウントアクセスやリスク評価に使用する場合は、タイムスタンプ、 Facial ID、アプリケーションのコンテキスト、結果を記録します。顔画像や生体認証ハッシュはログに保存しないでください。 FACEIO Webhooks とアプリケーション監視を使用して、繰り返し発生する失敗を確認します。
詳細なエラー情報を表示しない
どのアンチスプーフィングシグナルが失敗したかをユーザーへ表示しないでください。詳細な情報は攻撃の調整に利用される可能性があります。「確認を完了できませんでした。もう一度お試しください。」などの一般的なメッセージを表示し、失敗が続く場合は別の手順へ誘導します。
試行回数を制限して別の手順へ移行する
PAD_ATTACK が設定した回数に達した場合は、アカウントの一時ロック、別の認証方法、手動確認などへ移行します。試行回数の制限と組み合わせ、繰り返される試行を抑えます。
ブラウザ顔認証のアンチスプーフィング
従来の生体認証アンチスプーフィングでは、3D 深度カメラ、赤外線センサー、専用セキュアエンクレーブなどのハードウェアが使われることがあります。標準的な Web カメラ環境では利用できないため、FACEIO はブラウザの標準カメラ API と fio.js の統合フローを使用します。
これにより、最新ブラウザと前面カメラを備えたデスクトップ、ノート PC、タブレット、スマートフォンでチェックを実行できます。標準の FACEIO Web フローでは、ネイティブアプリ、端末固有 SDK、専用の生体認証ハードウェアは不要です。
ブラウザでの撮影条件は、照明、カメラ品質、ネットワーク、端末角度によって変わります。品質エラー、再試行、代替アクセス、疑わしい結果が続いた場合の処理をアプリケーション側で明確に定めてください。
deepfake と従来のアンチスプーフィング
従来のアンチスプーフィングは、写真、画面、マスクなどの物理的な提示物を対象とします。deepfake は AI で生成された動画であり、物体をレンズの前に置かず、仮想カメラから入力される場合があります。
FACEIO は認証中に、疑わしい合成動画、リプレイ、仮想カメラに関連する指標を評価します。アプリケーション所有者は、PIN 確認、バックエンド側の認可、試行回数制限、イベント監視と組み合わせてください。
認証時のスプーフィングとは異なる合成動画リスクを扱うリアルタイム Web 会議では、 Meeting Shield は Google Meet、Zoom Web、Teams Web に表示される会議映像を分析する Chrome 拡張機能です。法科学的な結論ではなくリスクシグナルを報告します。FACEIO の認証制御は登録とログインのフローで動作します。
本番環境向けアンチスプーフィングチェックリスト
顔認証を公開する前に、ライブネスの失敗やプレゼンテーション攻撃の疑いへアプリケーションがどう対応するかを定めます。このチェックリストは セキュリティのベストプラクティス と併せて確認してください。
- ライブネスと顔スプーフィング保護を確認する FACEIO Console ↗ で本番公開前に設定を確認します。
-
PAD_ATTACKを通常のエラーとは別に処理します。 イベントを記録し、単純な再試行として扱わないでください。 - スプーフィング試行を制限する IP および Facial ID 単位で制限し、繰り返される試行を抑えます。
- アンチスプーフィングイベントをサーバー側で記録する 顔画像や生体認証ハッシュを保持せず、確認に必要なコンテキストを記録します。
- 詳細なエラー情報を表示しない 失敗したシグナルを外部へ明らかにしないでください。
- ドメイン制限と組み合わせる Public ID を使用できるサイトを制限します。
- PIN ポリシーと組み合わせる 必要なフローでは、顔認証後にユーザーが確認する追加要素として PIN を要求します。
- 代替手段を用意する カメラ、照明、端末条件によって処理を完了できない正規ユーザー向けに別の手段を提供します。
PIN ルール、ドメイン制限、REST API、Webhook を含む本番向け設定については、セキュリティガイドのライブネスと顔スプーフィング保護およびREST API リファレンスを参照してください。
アンチスプーフィングの開発者向けリソース
次の FACEIO リソースを使用して、ライブネス設定、 PAD_ATTACKの処理、プライバシー要件、ブラウザフローとバックエンドの接続を確認してください。
よくある質問
顔アンチスプーフィングとは何ですか?
顔アンチスプーフィングは、顔認証システムに対して使用される写真、画面リプレイ、マスク、deepfake 動画など、プレゼンテーション攻撃に関連する指標を評価します。結果はアプリケーション側のセキュリティ制御と組み合わせてください。
プレゼンテーション攻撃(PAD)とは何ですか?
プレゼンテーション攻撃は、本人の代わりに物体をカメラへ提示して顔認識システムを欺こうとする試みです。FACEIO は疑わしい試行をフローが検出した場合に PAD_ATTACK を返すことがあります。
deepfake は顔認証への脅威になりますか?
deepfake や仮想カメラ入力は顔認証システムの脅威になり得ます。FACEIO は認証中にアンチスプーフィング指標を評価し、リアルタイム Web 会議では Meeting Shield が対応する会議で合成動画のリスクシグナルを報告します。すべての攻撃を特定できる検出システムはありません。
ライブネス検出に専用ハードウェアは必要ですか?
いいえ。FACEIO のライブネス検出は、標準 Web カメラまたは前面カメラを使用してブラウザで動作します。3D センサー、赤外線カメラ、専用の生体認証ハードウェアは不要です。
PAD_ATTACK エラーはどのように処理しますか?
PAD_ATTACK の結果は通常のログイン失敗とは別に扱います。イベントをサーバー側で記録し、失敗したシグナルの詳細は表示せず、繰り返される失敗を再試行制限、代替アクセス、または手動確認へ振り分けます。
関連ガイド
アンチスプーフィング制御を設定する
FACEIO アプリを作成し、ライブネス、PIN、顔スプーフィング保護の設定を確認して、統合フローとバックエンドで PAD_ATTACK を処理します。本番公開前に、セキュリティのベストプラクティス、プライバシーのベストプラクティス、統合ガイドを確認してください。