パスキーとはなにか

インフラ技術者の雑記
従来用いられてきたIDとパスワードによる認証は、なりすました偽サイトへの情報漏洩や複雑なパスワードを記憶する必要があるなど課題がありました。
今回ご紹介するパスキーは、このような課題を解決するために規格化され導入が進んでいる技術になります。
1.パスキーの概要
パスキー(Passkeys)は、パスワードレス認証の推進団体「FIDO Alliance(ファイド アライアンス)」とWeb規格の標準化団体「W3C」が制定した規格です。
認証技術としてはFIDO2※を採用しています。
IDとして使われるメールアドレス(Apple、Google、Microsoftアカウント)と、生体認証を行える端末さえあれば利用可能です。
※FIDOとは:
「素早いオンライン認証」を意味する「Fast IDentity Online」の略。
詳細は下記参照。
2.従来のパスワード方式との違い
パスワード方式
IDとパスワードのペアが正しく入力されているかをチェックしてログインするため、パスワードが漏洩する危険性があります。
パスキー
IDと生体認証を搭載したスマートフォンで本人確認をしてログインします。
パスワードは不要です。
3.パスキーに置き換えていくことのメリット・デメリット
メリット
- フィッシングやなりすまし、流出などのセキュリティ問題を解決
- パスワードが存在しないため盗むことが不可能になる
- 生体認証を採用しているため、ログインは本人に限る
- パスワードを覚えておく必要が無くなる
- すばやいログインが可能になる
デメリット
- パスキーに対応しているサイトが少ない
- 異なる「サービスアカウント」間では端末間同期はできない
- OSアップデートしていない(できない)端末の場合、パスキーを利用できない
- iOS:16.1以降
- Android:2023年4月版「Google システム アップデート」以降
- 端末自体がパスキーに対応している必要がある
4.技術的な内容の深堀
FIDO2認証
最初のログイン時にアカウント、サイトに紐付いた一意の公開鍵を生成してサーバ側に登録し、端末側には対となる秘密鍵を保管します。
ログイン時は、生体認証で秘密鍵を取り出し、サーバから送信されるデータに署名をして応答します。
サーバ側がペアの公開鍵で署名を検証してログインを許可します。
- 端末内にクレデンシャルを保管
- セキュアな実行環境であるTEE(Trusted Execution Environment)やセキュアエレメント(SE)といった安全な領域に秘密鍵を保管
TEE
現金や貴金属など特に大切なものを保管するための金庫のように、スマートフォンなどの装置内に設けられた安全な領域のことを指します。
TEE内のコードやデータは外部から隔離され、完全性を保つために保護されます。
セキュアエレメント
外部からの解析攻撃に耐えるセキュリティ能力を持った半導体製品の総称です。
TEEと似た概念・用語ですが、セキュアエレメントはハードウェアであり、TEEはソフトウェアとハードウェアを組み合わせて実現される仕組みとなります。
パスキー
狭義ではFIDOクレデンシャルを複数の端末で同期する技術のことを指します。
同じアカウントを登録した端末間でクレデンシャルが同期できます(Microsoftアカウント、Apple ID、Googleアカウントなど)。
広義では同期したクレデンシャルを使い、FIDO認証でログインする仕組みを示します。
一般ユーザーに伝わりやすいよう、パス”ワード”→パス”キー”と表現したと言われています。
5.所感
- ほんの数秒でログイン可能(10秒もかからない)
- パスワードを入力する(決める)手間が無いためログインがかなり楽
- パスワード認証の場合、サイトごとにパスワード規則が異なり、一貫したパスワードでログインすることができなかった
- パスワード自体が存在しないため、パスワードを忘れたことによるサイトの離脱率がかなり減るかもしれない
- 年配の方でも簡単にログインが可能になる