パスキー認証の仕組みをわかりやすく解説|秘密鍵・公開鍵・生体認証の関係とは?

ネットワークセキュリティ

パスワード不要の認証方式として注目されている「パスキー認証」ですが、公開鍵暗号や認証器という言葉が出てくるため、仕組みが難しく感じる人も少なくありません。

特に「指紋認証や顔認証はサーバ側に送られているのか」「秘密鍵はどこに保存されるのか」といった疑問を持つ人は多いです。

この記事では、パスキー認証の基本構造から、認証器・秘密鍵・公開鍵・生体認証の役割まで、初心者にもわかりやすく整理して解説します。

パスキー認証の基本構造とは

パスキー認証は、公開鍵暗号方式を利用したログイン技術です。

従来のように「IDとパスワードをサーバへ送る」のではなく、ユーザー端末側で秘密鍵を使って署名を行い、その署名をサーバ側が公開鍵で検証します。

役割 保存場所 外部送信
秘密鍵 ユーザー端末 送信されない
公開鍵 サーバ側 登録時に送信
署名 毎回生成 認証時に送信

最も重要なのは「秘密鍵が外へ出ない」ことです。

認証器とは何か

パスキーでは「認証器(Authenticator)」という存在が重要になります。

認証器とは、秘密鍵を安全に保管し、署名処理を行う機能や装置のことです。

代表的な認証器

  • iPhoneやAndroidスマホ内部
  • Windows Hello搭載PC
  • MacのTouch ID
  • USBセキュリティキー
  • TPMやSecure Enclave

つまり、最近のスマホやPCは既に認証器を内蔵している場合が多いです。

パスキー登録時に起きていること

パスキー登録時には、認証器内部で鍵ペアが生成されます。

具体的には以下の流れです。

  1. サイトがパスキー登録要求を送る
  2. 認証器が秘密鍵と公開鍵を生成
  3. 秘密鍵は端末内へ保存
  4. 公開鍵だけをサーバへ送信

ここで秘密鍵は外部に送信されません。

そのため、サーバが漏洩しても秘密鍵そのものは盗まれません。

ログイン時の流れ

認証時には、サイト側から「チャレンジ」と呼ばれるランダムデータが送られます。

認証器は秘密鍵を使って、そのチャレンジに対する署名を生成します。

その署名をサーバへ送り、サーバ側は保存済みの公開鍵で検証します。

一致すれば本人と判断され、ログイン成功になります。

重要なポイント

パスワードそのものはネットワーク上を流れません。

さらに、生体情報もサーバ側へ送信されません。

指紋認証や顔認証の役割

質問にある理解の通り、指紋認証や顔認証は「認証器を使える状態にするためのロック解除」に近い役割です。

つまり、生体認証そのものがWebサイトへ送られるわけではありません。

これは非常に重要なポイントです。

機能 役割
指紋認証・顔認証 認証器の解除
秘密鍵 署名生成
公開鍵 署名検証

そのため、生体情報漏洩リスクを減らせるのもパスキーの特徴です。

なぜサイトごとに別の鍵になるのか

パスキーでは、通常サイトごとに別の鍵ペアが生成されます。

例えば、Aサイト用の秘密鍵とBサイト用の秘密鍵は別物です。

そのため、あるサイトから情報が漏れても、他サイトへの影響を減らせます。

従来の「同じパスワード使い回し問題」を防ぎやすくなっています。

パスキー認証がフィッシングに強い理由

パスキーは、アクセス先ドメインも認証対象に含めるため、偽サイトでは署名検証に失敗します。

つまり、本物そっくりのフィッシングサイトへ誘導されても、通常は認証できません。

これが従来パスワード方式との大きな違いです。

補足したいポイント

質問内容の理解はかなり正確ですが、補足すると「秘密鍵そのものを使う」というより、「秘密鍵で署名演算を行う」という表現の方が厳密です。

また、署名対象にはサイト側チャレンジやドメイン情報などが含まれます。

そのため、単純に「秘密鍵で暗号化している」だけではありません。

クラウド同期されるパスキーもある

最近はApple iCloudキーチェーンやGoogle Password Managerなどを使い、パスキーをクラウド同期するケースも増えています。

これにより、新しいスマホへ機種変更してもパスキーを引き継げます。

ただし、この場合でも秘密鍵は暗号化された状態で保護されています。

まとめ

パスキー認証は、認証器内で秘密鍵を管理し、公開鍵暗号方式によって本人確認を行う仕組みです。

指紋認証や顔認証は、認証器のロック解除のために使われるだけで、生体情報自体がサイトへ送信されるわけではありません。

秘密鍵が外部へ出ないこと、サイトごとに鍵が分離されること、フィッシング耐性が高いことが、パスキー認証の大きな特徴です。

質問内容の理解はかなり本質を押さえており、補足するとすれば「署名演算」と「ドメイン検証」の部分を加えると、より正確な理解になります。

コメント

タイトルとURLをコピーしました