Liveness Detection
生体認証において、撮影対象が生きている本人であることを確認する技術。写真・動画・マスクなどによるなりすましを防止する。
概要
顔認証を用いたeKYCでは、本人の写真を使った「なりすまし」が脅威となる。Liveness Detectionは、カメラの前にいるのが実在する人物であり、写真や動画ではないことを検証する技術。
攻撃手法(Presentation Attack)
1. 写真攻撃(Photo Attack)
プリントした写真をカメラにかざす。
攻撃者
↓
本人の写真(プリント/スマホ画面)
↓
カメラ
2. 動画攻撃(Video Replay Attack)
スマホやタブレットで動画を再生。
攻撃者
↓
本人の動画(スマホ/タブレット)
↓
カメラ
3. 3Dマスク攻撃
高精度な立体マスクを装着。
攻撃者
↓
3Dプリントされたマスク
↓
カメラ
4. ディープフェイク攻撃
AIで生成した合成顔をリアルタイム表示。
攻撃者
↓
ディープフェイク生成(リアルタイム)
↓
カメラ
Liveness Detection の方式
パッシブ型(Passive Liveness)
ユーザーに特別なアクションを求めず、単一画像や動画から自動判定。
1. テクスチャ解析
画像のテクスチャから、本物の肌か写真かを判定。
画像入力
↓
LBP(Local Binary Pattern)抽出
↓
SVM/CNN分類器
↓
本物 / 偽物
2. モアレパターン検出
スマホ画面やプリント写真に現れるモアレを検出。
画像のフーリエ変換
↓
高周波成分解析
↓
モアレあり → 偽物
3. 微細な動き検出
瞬き、まばたき、微表情などの自然な動きを検出。
動画フレーム(30fps以上)
↓
オプティカルフロー解析
↓
自然な動きあり → 本物
4. 反射・影解析
顔の立体構造による光の反射や影を解析。
顔画像
↓
反射パターン抽出
↓
平面(写真) / 立体(本物)
アクティブ型(Active Liveness)
ユーザーに特定のアクションを指示し、その応答を検証。
1. ランダムチャレンジ
予測不可能な指示をランダムに出す。
システム: 「右を向いてください」
↓
ユーザーが右を向く
↓
動きを検証 → 本物
2. まばたき検出
「まばたきしてください」と指示。
目の状態を追跡
├─ 開眼 → 閉眼 → 開眼
└─ → 本物
3. 笑顔検出
「笑ってください」と指示。
表情認識
├─ 無表情 → 笑顔
└─ → 本物
4. 音声応答
「画面に表示された数字を読み上げてください」
ランダムな数字表示
↓
音声認識
↓
一致 → 本物
高度なLiveness Detection
デプス情報(Depth Information)
3Dセンサーで奥行き情報を取得。
ToF(Time of Flight)カメラ
赤外線の反射時間から距離を計測。
赤外線LED発光
↓
対象物に反射
↓
ToFセンサーが受光
↓
奥行きマップ生成
↓
平面(写真) / 立体(本物)
ステレオカメラ
2つのカメラで視差から奥行きを推定。
左カメラ画像 + 右カメラ画像
↓
ステレオマッチング
↓
デプスマップ生成
↓
立体構造の検証
赤外線(IR/NIR)カメラ
可視光カメラでは検出困難な特徴を捉える。
近赤外線LED照射
↓
NIRカメラで撮影
↓
肌の反射率解析
↓
本物の肌 / 写真
AI/深層学習
大量のデータで学習したモデルで判定。
学習データ
本物の顔動画(数千〜数万人)
偽物の攻撃動画(写真、画面、マスク)
↓
CNN/Transformerで学習
↓
Liveness分類器
ディープフェイク検出
動画フレーム
↓
時系列解析(LSTM/Transformer)
↓
不自然な動き・テクスチャを検出
↓
ディープフェイク / 本物
eKYCでの実装
ヘ方式(マイナンバーカード)
1. マイナンバーカードのICチップから顔写真読取
2. ユーザーがスマホで自撮り(Liveness Detection実行)
├─ パッシブ型: 動画から自然な動きを検出
├─ アクティブ型: 「まばたき」などの指示
└─ デプス: 一部のスマホでToF利用
3. 2つの顔画像をAIで照合
4. 本人確認完了
ホ方式(本人確認書類)
1. 運転免許証等の顔写真を撮影
2. ユーザーが自撮り(Liveness Detection実行)
3. 2つの顔画像を照合
4. 本人確認完了
パッシブ vs アクティブ
| 観点 | パッシブ型 | アクティブ型 |
|---|---|---|
| UX | 良い(自然) | 悪い(手間) |
| セキュリティ | 中〜高 | 高 |
| 実装コスト | 低 | 中 |
| 誤検知 | やや高い | 低い |
| 高齢者対応 | 良い | 難しい |
| アクセシビリティ | 良い | 制約あり |
トレンド
最近はパッシブ型が主流。UXを損なわず、AIの精度向上により十分なセキュリティを確保できるため。
精度評価指標
APCER(Attack Presentation Classification Error Rate)
攻撃を本物と誤判定する確率。低いほど良い。
APCER = 攻撃が本物と判定された回数 / 攻撃試行回数
BPCER(Bona Fide Presentation Classification Error Rate)
本物を攻撃と誤判定する確率。低いほど良い。
BPCER = 本物が攻撃と判定された回数 / 本物の試行回数
ISO/IEC 30107
Liveness Detectionの国際標準。攻撃手法(PAI: Presentation Attack Instrument)とその検出性能を規定。
実装上の課題
UXとセキュリティのトレードオフ
- 厳格な検証: 攻撃を防げるが、本人も弾かれる(BPCER↑)
- 緩い検証: 本人は通るが、攻撃も通る(APCER↑)
環境要因
- 照明: 暗い場所、逆光
- カメラ性能: 低解像度、ピンボケ
- ユーザー: 眼鏡、マスク、帽子
高齢者・障がい者対応
- まばたき: 難しい場合がある
- 指示理解: アクティブ型は理解が必要
- 動作: 頭を動かすのが困難
今後の展望
マルチモーダル認証
顔認証 + 声紋 + 行動パターン
↓
総合的なLiveness判定
オンデバイスAI
スマホ内のNPU/Neural Engine
↓
サーバー不要のLiveness Detection
↓
プライバシー保護+低遅延
継続的Liveness
認証時のみでなく、セッション中も継続的に検証
↓
リアルタイム異常検知
FIDO2統合
プラットフォーム認証器(Face ID等)
├─ Apple/Google独自のLiveness Detection
└─ サービス側は結果のみ受取
関連
- [[顔認証]] - Liveness Detectionの対象技術
- eKYC - 主要な利用シーン
- 犯収法 - 法的根拠
- [[マイナンバーカード]] - ヘ方式での利用
- リスクベースアプローチ - 必要なセキュリティレベルの選択
- FIDO2 - 統合の可能性