わかったつもりになろう、パスキー(Passkeys)

目次
酔っ払ってる時に考えたことは実行しないのが吉です。
この記事は、社内イベント「お茶会」での発表内容をもとにまとめたものです。
今回は弊社の takano が「パスキー(Passkeys)」について話しました。
近年、パスワードの管理がますます煩雑になり、セキュリティリスクも高まっています。
そんな中で注目されているのが、パスワードを使わずにログインできる「パスキー(Passkeys)」 という新しい認証技術です。
パスキーを使えば、指紋認証や顔認証、あるいはデバイスのPINコードを利用することで、より安全で、より簡単にログインできるようになります。
本記事では、技術的な細かい部分には踏み込みすぎず、「わかったつもりになれる」くらいの理解を目指してパスキーについて解説します。
詳しく知りたい方は、こちらの公式ドキュメントをご覧ください。
- パスキーの概要(公式サイト)
https://www.passkeys.com/jp/passkey-toha - Googleのパスキー開発者向けドキュメント
https://developers.google.com/identity/passkeys?hl=ja
01 パスキーとは
パスキー(Passkeys)とは、パスワードに代わる新しい認証方法 です。
これまで、オンラインサービスへのログインには 「パスワード」 が必須でしたが、パスキーを使えばパスワードなしでより簡単、かつ安全にログインできるようになります。
認証には以下の方法を使用。
- 指紋認証(Touch ID など)
- 顔認証(Face ID など)
- PINコードやパターン認証
これらを使うことで 1 ステップで認証が完了し、パスワードを覚える必要も、入力する手間もなくなります。
なぜパスキーが注目されているのか
従来のパスワード認証には、以下のような課題がありました。
- パスワードの使い回しによるリスク:一度流出すると他のサービスにも影響
- フィッシング攻撃の危険性:偽のログイン画面でパスワードを盗まれる
- 多要素認証(MFA)の手間:SMS認証やアプリのワンタイムパスワードが煩雑
パスキーは 1 ステップで多要素認証の要件を満たしつつ、これらの問題を解決できます。
パスワードの入力が不要になるだけでなく、フィッシング攻撃にも強く、認証の手間を減らせることが特徴です。
システムを設計する方は、パスキーという選択肢を知っておくことで、「使いやすさ」と「安全性」を両立する認証方法を提案できるようになるので、知っておいて損はありません。
02 パスキーの技術的な話
ここからは技術者向けにもう少し突っ込んだ話をしていきたいと思います。
パスキーとは、一言で言ってしまうと公開鍵暗号方式を使った認証技術になります。
従来のパスワード認証とは異なり、サーバーに秘密の情報(パスワードなど)を保存しないのが特徴です。
認証の流れは次のようになっています。
- ユーザーがパスキーを登録するとき
- デバイス内で秘密鍵と公開鍵のペアを生成
- 公開鍵はサーバーに保存される
- 秘密鍵はデバイス内に安全に保管される
- ユーザーがログインするとき
- サーバーがチャレンジ(ランダムなデータ)を送信
- デバイスが秘密鍵で署名して返す
- サーバーは保存している公開鍵で署名を検証し、本人確認を行う
パスキーの認証では、秘密鍵で署名されたデータは、ペアとなる公開鍵でのみ検証できるという特性を利用。
この方式により、パスワードを使用せずに安全な認証を実現できます。
パスキーの認証は公開鍵暗号方式に基づいています。
理解を深めるために、まずは公開鍵暗号の基本を押さえておきましょう。
- 秘密鍵で暗号化したデータは、ペアとなる公開鍵でのみ復号化できる
- 公開鍵で暗号化したデータは、ペアとなる秘密鍵でのみ復号化できる
この仕組みを使うことで、「本人しか持っていない秘密鍵」で認証しながら、サーバー側には秘密鍵を渡さないことが可能になります。
※ 公開鍵暗号については、過去にまとめた記事がありますので、詳しく知りたい方はそちらもご覧ください。
FIDO
パスキーは、FIDO(Fast IDentity Online) という認証技術の標準規格に基づいています。
FIDOは、パスワードを使わずに安全な認証を行うための技術です。
パスキーは、その中でも最新の FIDO2に準拠しており、様々なデバイスやブラウザで利用できるようになっています。
WebAuthn
WebAuthn(Web Authentication)は、FIDO2の一部として定められたWeb APIです。
これにより、ブラウザやWebサービスでパスキーを利用した認証を実装できます。
主要なブラウザ(Chrome、Safari、Edge など)や、各OS(Windows、macOS、iOS、Android)でサポートされています。
FIDO や WebAuthn については、技術仕様まで細かく説明しませんが、パスキーを理解する上で知っておいた方がよい概念です。ですが、とりあえず言葉の定義だけわかっておけば、わかった「つもり」にはなれます。
03 パスキーについて知っておくこと
ここまで、パスキーの基本的な動作や技術について説明してきました。
ただ、実際に使う上で、これ以外にも知っておくと役立つポイントがあります。
①パスキーはユーザーが選択するものではない
パスキーは OSやブラウザが管理するため、ユーザーが自由に選択して使うものではありません。
また、パスキーは登録したドメインと一致しないと使えないため、フィッシング攻撃に対して強固な防御を備えているという特徴があります。
②パスキーはサイトごとに異なる
パスキーは サイトごとに個別に生成されるため、同じパスキーを複数のサイトで使うことはありません。
これにより、パスキーを利用したサイト間でユーザーを追跡することはできません。
③パスキーはバックアップ・同期される
パスキーは デバイスに保存されるだけでなく、クラウド上でバックアップ・同期されます。
- Android → Google パスワードマネージャーに保存
- iOS → Apple キーチェーンに保存
- Windows → Microsoft アカウントで同期
これらは E2E(エンドツーエンド)暗号化により保護されており、基本的に紛失しても復旧可能です。
また、同期のためにパスフレーズ(PINコード)を求められることがあります。これは復旧時に必要となるため、必ず覚えておきましょう。
④共有PCや他のデバイスで使う際の注意
パスキーはデバイスに保存されるため、共有PCでの使用には注意が必要です。
例えば、以下のケースでは 他の人がパスキーを使えてしまう可能性があります。
- OSのユーザーアカウントを分けていない場合
- ブラウザのプロファイルを使い分けていない場合
また、普段とは異なるデバイスでログインする際は、スマートフォンが近くにあることを認識して、PCでのログインが可能です。
- Bluetoothを利用し、PCでのログインを許可できる
- スマホのロック解除を本人確認として利用するため、安全性を維持できる
パスキーは、デバイスをまたいだ認証にも対応しているため、適切に管理すれば利便性とセキュリティを両立できます。
04 実装とデモ
パスキーの動作を確認するため、参考資料をもとにデモページを作成し、以下の手順で検証を行いました。

このデモページでは、ユーザー作成後にパスキーを登録し、保存したパスキーを使ってログインするまでの流れを確認できます。
センシティブな内容を含むため、コードの詳細は割愛しますが、実際に試したところ問題なく動作しました。
デモの手順
- 実装の確認
- 参考資料をもとにパスキーを利用するコードを作成し、動作を確認。
- パスキーの登録と保存
- ユーザーがパスキーを作成し、デバイスに保存。
- 登録状況の確認
- パスキーが正しく保存されているかをチェック。
- 通信内容の確認
- ブラウザの開発ツールを使用し、サーバーとの通信を確認。
- パスキーでログイン
- 保存したパスキーを利用して認証を試す。
- 各デバイスでの動作確認
- Mac、Android、iPhoneでの動作を検証。
今回のデモでは、以下の資料を参考に実装を行いました。
- 認証順実装ドキュメント
https://web.dev/articles/passkey-registration - 利順実装ドキュメント
https://web.dev/articles/passkey-form-autofill - 公開鍵情報を検証するためのサーバーライブラリ
https://github.com/yackermann/awesome-webauthn
05 まとめ
パスキーは、パスワードを使わずに安全な認証を実現できる新しい技術です。
フィッシング耐性があり、多要素認証の要件も満たせるため、今後さらに普及が進んでいくと考えられます。
また、既存のパスワード認証と併用しながら導入できるため、試してみやすいのも魅力です。
エンジニアの方は、実装を試してみると、新しい認証の仕組みをより深く理解できると思います。
パスキーを活用した認証についてご相談があれば、ぜひ弊社までお問い合わせください。

S2ファクトリー株式会社
様々な分野のスペシャリストが集まり、Webサイトやスマートフォンアプリの企画・設計から制作、システム開発、インフラ構築・運用などの業務を行っているウェブ制作会社です。
実績
案件のご依頼、ご相談、その他ご質問はこちらからお問い合わせください。