生体認証
Biometrics
指紋や顔などの身体的特徴、または行動的特徴を使って本人かどうかを照合する認証方式です。覚える負担を減らせますが、誤判定や偽装への対策、認証できないときの代替手段も必要です。
🐾 猫で例えると?
アメショが茶トラの匂いを確かめる姿は、「相手の特徴を読み取り、覚えている特徴と照合する」生体認証のイメージです。ただし、実際の生体認証は特徴の一致度を使う確率的な判断であり、特徴が固有だから絶対に偽装できない、という意味ではありません。
💻 IT現場における「生体認証」とは?
ITシステムにおいて生体認証は、従来の「知識認証(パスワード)」や「所有物認証(ICカード)」に代わる、あるいはこれらと組み合わせる「多要素認証」の核として利用されています。特にスマートフォンやPCのログイン、金融サービスの本人確認(eKYC)などで急速に普及しました。
登録時の特徴をテンプレートとして保持し、今回読み取った特徴との一致度を評価します。テンプレートの保護方法や保存場所は方式ごとに異なり、数値に変換しただけで漏洩リスクがなくなるわけではありません。
⚠️ 生体認証の仕組みと注意点
生体認証を導入する上で、システムエンジニアが必ず意識すべき2つの指標があります。それは「他人受入率(FAR)」と「本人拒否率(FRR)」です。
精度のバランス(FAR vs FRR)
他人を誤って本人と認めてしまう確率(FAR)を下げようと厳格にしすぎると、今度は本人が認証に失敗する確率(FRR)が上がってしまい、利便性が損なわれます。現場では、用途に合わせてこの閾値を最適に設定する必要があります。
// WebAuthnを利用するHTTPSサイトの認証開始部分のみ
// サーバー発行の使い捨てchallenge等をバイナリに復元済みとする
const credential = await navigator.credentials.get({
publicKey: {
challenge: challengeBytes,
allowCredentials: [{ id: credentialIdBytes, type: "public-key" }],
userVerification: "required" // 生体認証またはPIN等の本人確認
}
});
// この後、応答をサーバーへ送り署名・challenge・origin等を検証する WebAuthnのuserVerificationは指紋や顔だけを指定する設定ではなく、PIN等でも満たせます。生体認証を使う場合、その照合は認証器側で行われ、生体情報自体はWebサイトへ送られません。サーバーが受け取る署名付き応答を検証して初めてログインを成立させます。
🛠️ 生体認証を賢く使うためのポイント
生体認証は万能ではありません。導入・利用の際は以下のリスクを考慮する必要があります。
- 特徴データを慎重に保護する: 顔や指紋はパスワードのように容易に交換できません。既存の認証器や標準方式を活用し、サイトが生体画像を不要に収集・保管しない設計を検討します。
- 物理的な状態の影響: 怪我による指紋の消失、メガネやマスクによる顔認証の失敗、加齢による変化など、認証できなくなるケースを想定し、バックアップ(暗証番号など)を必ず用意します。
- 高精度な偽装(なりすまし): 高精細な写真や3Dマスク、シリコン製の偽造指紋などへの対策(生体検知機能:Liveness Detection)が備わっているかを確認しましょう。
匂いで相手を確かめる猫のように、生体認証は特徴の照合を使います。顔や指紋で入れないときの代替手段と、その手段で第三者に入られないための保護まで確認しましょう。普段の認証と、失敗したときの復旧を一緒に考えることが大切です。