画像ツール一覧

生体認証

Biometrics

セキュリティ

指紋や顔などの身体的特徴、または行動的特徴を使って本人かどうかを照合する認証方式です。覚える負担を減らせますが、誤判定や偽装への対策、認証できないときの代替手段も必要です。

🐾 猫で例えると?

茶トラのおしりを一方的にクンクンとスキャンしているアメショと、認証されるのをじっと待っている茶トラ
生体情報のスキャンと、認証結果を待つプロセスの図

アメショが茶トラの匂いを確かめる姿は、「相手の特徴を読み取り、覚えている特徴と照合する」生体認証のイメージです。ただし、実際の生体認証は特徴の一致度を使う確率的な判断であり、特徴が固有だから絶対に偽装できない、という意味ではありません。

🐾 PR

💻 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サイトへ送られません。サーバーが受け取る署名付き応答を検証して初めてログインを成立させます。

🛠️ 生体認証を賢く使うためのポイント

生体認証は万能ではありません。導入・利用の際は以下のリスクを考慮する必要があります。

匂いで相手を確かめる猫のように、生体認証は特徴の照合を使います。顔や指紋で入れないときの代替手段と、その手段で第三者に入られないための保護まで確認しましょう。普段の認証と、失敗したときの復旧を一緒に考えることが大切です。