- 「パスキー」は、パスワードに代わる新しい認証方法で、秘密鍵と公開鍵のペアを使用します。
- この方法は、フィッシング攻撃に強く、生体認証と組み合わせることで高いセキュリティと利便性を提供します。
- パスキーは同期サービスを通じて複数のデバイスで使用でき、将来的にオンライン認証の標準となる可能性があります。
フィッシング攻撃が「割に合わなく」なって、迷惑メールが減ってくれるといいなぁ。
1. 「パスキー」とは何か
インターネットを見ていたら「パスキー」を登録しなさい、って出てきたんだけど、したほうがいい?
「パスキー(Passkey)」は、秘密鍵と公開鍵という2つのデジタルデータのペアを使って認証する方法です。
従来のパスワードに代わる新しい認証方法です。
- 秘密鍵はスマートフォンの中の「安全な保管庫」に保存されます。
- 公開鍵はウェブサイトに渡して保管してもらいます。
パスワードと違ってパスキーのデータは、ユーザーが直接 目にすることはありません。
これは、家の鍵でもふだんは細かな形を見ないのと一緒です。
そのサイトでのパスキーの登録が済んでいれば、ログインは簡単。
パスキーを使うと、もうパスワードを覚えなくていいの?
パスキーを使うと、全部ではないものの、かなりパスワードの管理を減らせます。
私は、銀行の通帳アプリを開くたびに顔認証によるロック解除がワンステップあります。
といっても、画面を見ているだけですぐに済むので手間はありません。
1-1. パスキーは盗まれにくい
パスキーは、FIDO Allianceによって標準化が進められ、主要なテクノロジー企業がサポートを表明しています。
この方法の特徴は、公開鍵暗号技術と生体認証と組み合わせていることです。
- 公開鍵暗号方式:
デバイス上で秘密鍵と公開鍵のペアを生成します。
秘密鍵はデバイスに安全に保存され、公開鍵はサーバーに登録されます。 - 生体認証との連携:
指紋認証やFace IDなどの生体認証と組み合わせて使用されます。 - パスワードレス:
ユーザーが覚える必要のある長い文字列がなくなります。
パスキーの最大のメリットは、「だまされても盗まれにくい」ことです。
生活の中でオンラインでのやり取りが増えました。
そこで、より安全に認証する方法が重要になっています。
- 長年、パスワードが主流でしたが、他人に知られてしまうだけで簡単になりすまされてしまうという「脆さ」もあります。
- そこで「二要素認証(2FA)」が出てきました。
しかし、この方法はちょっと手間があり、毎回のログインでするのは大変。
ついログアウトせずにそのまま使うことも増えてしまいます。 - そこで、さらに「パスキー」という新しい認証方法が考えられました。
これが、ログインページのあとに選択肢として出てくることが増えてきたのです。
パスキーは、設定後は非常に使いやすく、多くの場合ワンステップで認証が完了します。
二要素認証の利点を維持しながら、より便利で安全な認証方法を提供しようと考えられました。
2. パスキーを設定するときに何が起こっているのか?
「パスキー」の登録って、つまり何をどこに登録したことになっているの?
パスキーは鍵のペアで、秘密鍵がデバイス内に、公開鍵がウェブサイト側に保存されます。
ウェブサイトにアクセスしたとき、パスキーをまだ設定していない新しいデバイスの場合、認証プロセスの途中で「パスキーの設定」の提案があることがあります。
新しいデバイスでアカウントにアクセスする際、まずは従来の方法(パスワードや二段階認証など)で認証を行います。
サイト側で認証を完了すると、「新しいデバイスでパスキーを設定する」という選択肢が提示されます。
パスキーを設定しようとすると、同時にパスキーに生体認証(指紋認証やFace IDなど)を関連付けるよう求められます。
無視して「後で」「スキップ」などとしてもよいですが、ここではパスキーの設定に進んでみます。
2-1. 暗号鍵のペアを作る
同意すると、まずデバイス内では新しい鍵ペア(公開鍵と秘密鍵)が生成されます。
生成された秘密鍵は、ハードウェアで保護された領域に保存されます(デバイスの「セキュアエンクレーブ1」や「信頼できるプラットフォームモジュール(TPM)2」など。
この秘密鍵は、デバイスから直接エクスポートされることはありません。
新しく生成された公開鍵だけがサーバーに送信され、自分のアカウントと関連付けられます。
このとき、ほかのデバイスでスムーズにログインするために、同期サービスにも「新しいパスキーに関する情報(メタデータ)」を追加できます(iCloudキーチェーンやGoogle Passwordマネージャーなど)。
これで、パスキーの設定は完了です。
これ以降は、そのスマホなら生体認証だけでログインできるようになりました。
パスキーは、そのウェブサイトやアプリに特化したものなので、他のサイトでは使用できません。これがフィッシング攻撃への耐性を高めている理由の一つです。
2-2. パスキーでの認証の仕組み
パスキーを使った認証の基本的な流れについて説明します。
まず、ユーザーがウェブサイトやアプリにログインしようとします。
この時点で、ユーザーは自分のデバイス(スマートフォンやパソコンなど)を使用します。
次に、ログイン先のサーバーが「チャレンジ」と呼ばれる特別なデータをユーザーのデバイスに送ります。
このチャレンジは、認証のために必要な情報です。
ユーザーのデバイスは、受け取ったチャレンジに対して秘密鍵を使って署名をします。
最後に、サーバーは受け取った署名を公開鍵で確認します。
この確認作業によって、ユーザーが本人であることを認証します。
2-3. パスキーは「オプション」
生体認証って、指紋や顔を使うってことだけど、怪我したらログインできなくなっちゃうんじゃない?
多くのサイトは、「パスキー」だけでなく、従来のパスワード認証(や二段階認証)も用意しています。
完全にパスワード認証をやめるわけではありません。
大事なものはふだんはしまっておけば、盗まれにくくなります。
パスワード認証は緊急時に限ることで、リスクを減らしているのです。
3. パスキーは公開鍵暗号技術
要素 | 内容 | 保存場所 | 説明 |
---|---|---|---|
秘密鍵 | 暗号化された個人キー | ユーザーのデバイス | デバイスのセキュアエンクレーブや信頼できるプラットフォームモジュール(TPM)に安全に保存されます。 外部に出ることはありません。 |
公開鍵 | 秘密鍵に対応する公開キー | サービス提供者のサーバー | ユーザーアカウントと関連付けられて保存されます。 認証時に使用されます。 |
ユーザー情報 | ユーザー名、 メールアドレスなど | サービス提供者のサーバー | 公開鍵と関連付けられて保存されます。 |
生体認証データ | 指紋、 顔データなど | ユーザーのデバイス | デバイスの安全な領域に保存され、外部に送信されることはありません。 パスキーの使用時に照合されます。 |
メタデータ | パスキーの使用履歴、 デバイス情報など | クラウドサービス(iCloudキーチェーンなど) | 暗号化された形で保存され、デバイス間の同期に使用されます。実際の鍵情報は含まれません。 |
アカウント復旧情報 | 回復用メールアドレス、セキュリティ質問の回答など | サービス提供者のサーバー | パスキーを紛失した場合のアカウント回復に使用されます。 |
パスキーの登録は単一の情報を一箇所に保存するのではなく、複数の要素を適切に分散して保存することで成り立っています。
3-1. 二要素認証との比較
パスキーと二要素認証(2FA)は、どちらもセキュリティを向上させる認証方法ですが、アプローチが異なります。
二要素認証では、通常、「知っているもの」(パスワード)と「所有しているもの」(スマートフォンなど)を組み合わせます。
従来のパスワードだけの認証よりも安全ですが、それでもSMSの確認コードを傍受されたり、中間者攻撃のリスクは残ります。
パスキー認証では、実質的には複数の要素を組み合わせています。
「所有しているもの」(デバイス)と「本人であるもの」(生体認証)を統合しているからです。
パスキーには、認証先のサイトの情報も含まれるため、偽サイトなどに送ってしまう心配もありません。
SMSハイジャックが目立つようになって来たからかな。
パスキーなら仮にスマホが盗まれてロック解除されなければ大丈夫。
3-2. セキュリティ証明書との比較
なんか、ウェブサイトのセキュリティ証明書と似ているね。
何が違うの?
確かに、パスキーとウェブサイトのセキュリティ証明書(SSL/TLS証明書)の仕組みは似ています。
でも、その方向は真逆なんです。
ウェブサイトのセキュリティ証明書は、そのサイトが信頼できることを示すために使われます。
一方、パスキーはユーザー個人の認証に使用されます。
セキュリティ証明書に比べて、パスキーの普及が遅れたのはどうして?
解決する問題の緊急性と重要性
「緊急性」の違いが最も本質的な要因だと考えられます。
SSLは、「インターネット上の通信セキュリティ」という喫緊の課題に対応するものでした。
オンラインでの情報のやり取りや取引が増える中、データの盗聴や改ざんを防ぐ必要性は極めて高く、早急な対応が求められました。
一方、パスキーが解決しようとしている「認証」の問題は、既存のパスワード認証でも、ある程度のセキュリティは確保できていました。
そのため、、SSLほどの緊急性はなかったのです。
技術的な複雑さとシステム全体への影響
また、セキュリティ証明書は主にサーバー側の変更で済みました。
ブラウザが自動的に処理してくれるため、ユーザーは「安全な接続」というアイコンを確認するだけで良かったのです。
一方、パスキーはユーザー認証を根本的に変更します。
企業は認証システムを根本から変更する必要があり、ユーザーも新しい認証方法を理解する必要があります。
パスキーでは秘密鍵はユーザー端末に保存されるからです。
秘密鍵を安全に運用するために生体認証との統合やデバイス間の同期など、より複雑な技術的課題がありました。
人々の習慣や企業のシステムを変えることは、技術的な課題以上に時間がかかる場合があります。
SSLとパスキーの普及速度の違いを生み出したのは、この違いです。
4. パスキーの同期とメタデータ
もし、スマートフォンをなくしちゃったら、パスキーはどうなるの?
アカウントにログインできなくなっちゃうの?
二要素認証では、デバイスを失くした場合のリカバリーが難しい場合がありました。
その点、パスキーはスムーズに新しいデバイスに移行できます。
パスキーの重要な要素である「同期の仕組み」について考えてみます。
ちなみに、パスキーは同期サービスを前提とはしていません。
同期サービスを使用しない場合、各デバイスのパスキーは完全に独立に存在することになります。
ただ、同期サービスと連携するとはパスキーはとても便利になります。
4-1. 秘密鍵がなくても本人確認ができればよいわけ
パスキーが簡単に移行できるのは便利だろうけど、コピーできたら危ないんじゃない?
まず、秘密鍵そのものが同期サービスに送られるわけではありません。
これは、スマートフォンの「セキュアエンクレーブ」から取り出せません。
自分の持っているほかのスマートフォンでも新しい鍵ペアを生成するのですが、そのために必要になるのが、パスキーの同期サービスと「メタデータ」。
Apple iCloudキーチェーンやGoogle Passwordマネージャーなどのクラウドサービスが、パスキーの同期を管理しています。
パスキーを設定するときに、同期サービスにも暗号化されたメタデータを保存しました。
メタデータには、どのアカウントにどのパスキーが関連付けられているかという情報が含まれます。
パスキーのメタデータは、自分のアカウント(たとえば、Googleアカウント)でサインインしているほかのデバイスにも知らされます。
すると、そのデバイスでもこのメタデータをもとに、それぞれ新しいパスキーのペア(公開鍵と秘密鍵)が作ります。
この新しい公開鍵がサーバーに登録され、既存のパスキーと関連付けられます。
新しいデバイスで初期設定などでアカウントにサインインしたときにも、メタデータは同期されます。
そこで、そのデバイスにも固有の新しい鍵ペアが生成されます。
この方法により、各デバイスは独自の秘密鍵を持ち、一つのデバイスが侵害されても他のデバイスのセキュリティは維持されます。
4-2. 信頼の連鎖
これって、Googleアカウントを乗っ取られたら、 パスキーで登録しているほかのサービスも危ないんじゃない?
そのとおりです。
同期サービスの認証は、その後の全てのパスキー使用の信頼性の基礎となります。
もし、この最初の認証(この場合はGoogleアカウントやApple ID)が信頼できないものであれば、その後のパスキーを使用した認証も信頼できなくなってしまいます。
攻撃者がユーザーのGoogleアカウントに不正アクセスすると、パスキーメタデータにアクセスできてしまうおそれがあります。
これは、システム全体を脅かす危険です。
そのため、多くの同期サービスは多要素認証(MFA)を採用しています。
また、多くのサービスでは、パスキーを使用する際に追加の認証(生体認証など)を要求することで、不正使用のリスクを軽減しています。
一応、パスワードだけではパスキーは盗めないんだね。
もちろん、ユーザー側が同期サービスのセキュリティを真剣に考えるのが大前提です。
強力なパスワードの使用、MFAの有効化、セキュリティ通知の確認など、設定しなければ約に立たないからです。
「パスキー」は、新しい技術のため、全てのサービスでサポートされているわけではありません。
今後、パスキーの普及が進むにつれ、オンライン認証の風景が大きく変わる可能性があります。
セキュリティと利便性の両立を目指すパスキーは、デジタル時代の新たな認証標準となる潜在性を秘めています。
(補足)
- セキュアエンクレーブは、デバイス内の隔離された安全な領域で、機密データや重要な処理を保護するために設計されています
- コンピューターシステムに組み込まれた専用マイクロコントローラーで、ハードウェアベースのセキュリティ機能を提供します