パスキーって結局なに? 二段階認証より安全と言われる理由を調べてみた

にくたま
にくたま

@nikutama ・ 15本

サムネイル

この記事のダイジェスト版はPodcastでも視聴いただけます。

最近、いろいろなWebサービスで「パスキーを作成してください」みたいな案内を見かけるようになりました。

GoogleやAmazonなど、大手サービスでも導入が進んでいますね。

スマホの顔認証や指紋認証で簡単にログインできるので、便利だなとは思うんですが。

これ、具体的にどういう仕組みなのか、ちゃんと理解している人って意外と少ないんじゃないでしょうか。

私も最初は、なんとなく設定しているだけでした。

そもそも、パスキーと顔認証って何が違うの?

今までのパスワードと二段階認証ではダメなの?

しかも、パスキーは二段階認証よりも安全だという話まであります。

本当なんでしょうか。

最近は企業への不正アクセスや個人情報流出のニュースも多いので、セキュリティについて改めて知っておきたいところです。

ということで今回は、パスキーの仕組みについて、できるだけわかりやすく調べてみました。

そもそもパスキーって何なの?

まず結論から言うと、パスキーはパスワードに代わる、新しいログイン方法です。

従来のパスワードは、自分で決めた文字列をサービス側に送って、それが正しければログインできるという仕組みですよね。

一方、パスキーではパスワードを入力する必要がありません。

代わりに、スマホやパソコンなどに保存された特別な「鍵」を使ってログインします。

その鍵を使うときに、顔認証や指紋認証、スマホのPINコードなどで本人確認をするわけです。

なので、利用者から見ると、顔認証をするだけでログインできてしまいます。

ただし、ここで一つ重要なポイントがあります。

パスキーと顔認証は、同じものではありません。

顔認証は、あくまでスマホの中にある鍵を使っていいかどうかを確認するための仕組みです。

パスキーの本体は、その裏側にある暗号技術なんですね。

ちなみに、顔認証で使う顔のデータが、ログインするたびにWebサービスへ送信されているわけでもありません。

基本的に本人確認は端末側で行われます。

ここも、パスキーの重要な特徴です。

パスキーの仕組みを「特別なサインペン」で考えてみる

ここからが少し面白いところです。

パスキーには「公開鍵」と「秘密鍵」という、二つの鍵が登場します。

いきなり難しい言葉が出てきましたが、今回は「特別なサインペン」にたとえて説明してみたいと思います。

例えば、Amazonでパスキーを作成したとします。

すると、公開鍵と秘密鍵という、ペアになった二つの鍵が作られます。

それぞれの役割は、こんなイメージです。

  • 秘密鍵: 自分だけが持っている、特別なサインペン
  • 公開鍵: そのサインペンで書かれたサインが、本物かどうかを確認できる道具

秘密鍵は、自分のスマホなどに保存されます。

一方、公開鍵はAmazon側に登録されます。

ここで重要なのは、秘密鍵、つまり特別なサインペンそのものはAmazonには渡さないということです。

Amazonが持っているのは、サインが本物かどうかを確認するための公開鍵だけ。

では、秘密鍵を送らずに、どうやってログインするのでしょうか。

例えば、Amazonにパスキーでログインするとします。

まず、Amazon側がスマホに対して、

「今回の確認番号は837291です。あなたが本人なら、この番号にサインしてください」

というように、確認用の番号を送ります。

実際には6桁の番号ではなく、ランダムなデータが使われます。また、このやり取りはスマホとサービスの間で自動的に行われるため、私たちの画面に番号が表示されるわけではありません。あくまで仕組みを説明するためのイメージです。

するとスマホは、顔認証などで持ち主を確認してから、秘密鍵という特別なサインペンを使って、確認番号にサインします。

このサインが「電子署名」と呼ばれるものです。

そして、スマホは作成した電子署名と、確認に必要なデータをAmazonに送り返します。

Amazon側は、最初に登録した公開鍵を使って、そのサインが本物かどうかを確認します。

正しいサインだと確認できれば、ログイン成功です。

つまり、流れとしてはこんな感じです。

  1. Amazon: 毎回違う確認番号をスマホに送る
  2. スマホ: 秘密鍵(特別なサインペン)を使って電子署名を作る
  3. スマホ → Amazon: 確認番号を含むデータと電子署名をセットで送る
  4. Amazon: 今回の確認番号かどうか、電子署名が本物かどうかを確認する
  5. 認証成功! ログインできる
記事の画像

ここで重要なのは、秘密鍵そのものはAmazonに送られていないということです。

Amazonが受け取るのは、秘密鍵を使って作られた電子署名だけ。

しかも、確認番号はログインするたびに変わります。

なので、仮に誰かが前回の電子署名をコピーしたとしても、次のログインでは使えないわけです。

ちなみに、これらの処理はスマホとサービスの間で自動的に行われます。

私たちが確認番号を入力したり、サインを書いたりする必要はありません。

顔認証や指紋認証などをするだけで、裏側ではこんな仕組みが動いているんですね。

従来のパスワードは、秘密の合言葉を相手に伝えて本人確認する方式。パスキーは、秘密を教えずに本人であることを証明する方式。

これが、パスワードとパスキーの大きな違いです。

理解がさらに深まる、違う角度の喩え話

パスキー = 【秘密鍵:自分だけの「ハンコ」】+【公開鍵: 役所に預けた「ハンコ見本」】

  1. 役所(Amazon)登録時あなたが自分専用のAmazon用のハンコ(秘密鍵)を作ります。ハンコ本体は自分のスマホから出しません。役所(Amazon)にはハンコの見本(公開鍵)だけ渡します。
  2. ログイン役所(Amazon)が「この紙にハンコを押して」と、毎回違う紙を出してきます。あなたがスマホの中のハンコ(秘密鍵)で押して返すと、役所(Amazon)はハンコの見本(公開鍵)と照らし合わせて「本人だ」と分かります。
  3. スマホのロック解除ハンコを使う前に、指紋や顔で「本人が使っているか」をスマホが確認します。これはスマホの中だけで行われ、生体認証情報は誰にも送られません。

なぜ安全?

  • 役所(Amazon)にあるのは「ハンコ見本」だけ。盗まれたとしてもハンコは作れません。
  • 毎回違う紙に押すので、前回の押印を盗んでも使えません。
  • 偽の役所(Amazon)に行っても、ハンコは本物の役所(Amazon)の紙にしか反応しないので、だまされません。

これって「ゼロ知識証明」と似ていない?

ここまで調べていて、ふと気になったことがあります。

この仕組み、「ゼロ知識証明」と似てる気がする。

ゼロ知識証明というのは、暗号技術の一つで、英語ではゼロ・ナレッジ・プルーフ、略してZKPと呼ばれています。

名前からして難しそうですよね。

でも、基本的な考え方は面白いんです。

「秘密の中身を明かさずに、あることが正しいと相手に証明する」

という仕組みなんですね。

例えば、こんな場面を想像してみてください。

あなたは、ものすごく難しいパズルの答えを知っています。

でも、その答えをほかの人には教えたくありません。

一方、相手はあなたが本当に答えを知っているのか確かめたい。

普通なら、答えを見せてしまうのが手っ取り早いですよね。

でも、答えを見せてしまったら秘密ではなくなってしまいます。

そこで登場するのがゼロ知識証明です。

答えそのものは一切見せずに、ちゃんと答えを知っていることだけを相手に納得してもらう。

そんなことを、数学的な仕組みを使って実現するわけです。

これ、ちょっと不思議ですよね。

もっと身近な例で考えると、年齢確認なんかもわかりやすいと思います。

例えば、お店に対して「私は18歳以上です」と証明したいとします。

今なら、運転免許証などの身分証明書を見せることがありますよね。

でも、免許証には生年月日だけでなく、名前や住所など、いろいろな個人情報が書かれています。

お店としては、18歳以上かどうかだけわかれば十分なはずです。

だったら、名前や住所、正確な生年月日は教えずに、「18歳以上であること」だけを証明できたら便利ですよね。

ゼロ知識証明は、そういった用途にも応用できる技術なんです。

ただし、この例を実現するには、年齢情報を信頼できる形で登録する仕組みなども必要になります。

ゼロ知識証明だけで、本人の年齢が勝手にわかるわけではありません。

パスキーとゼロ知識証明は何が違う?

さて、話をパスキーに戻します。

パスキーも、秘密鍵そのものを相手に渡さずに、正しい秘密鍵を持っていることを証明しますよね。

ゼロ知識証明も、秘密そのものを明かさずに、あることが正しいと証明します。

ということは、パスキーもゼロ知識証明の一種なのか?

と思ったんですが、ここは少し違うようです。

パスキーは、一般的にはゼロ知識証明を使っているわけではありません。

パスキーで使われるのは、公開鍵暗号を利用した電子署名という仕組みです。

先ほどの「特殊な印鑑」の例ですね。

秘密の印鑑は渡さないけれど、その印鑑で作られた署名を見せて、本物だと確認してもらう。

一方、ゼロ知識証明は、証明したいことが正しいという事実以外の情報を明かさない、という点まで数学的に保証しようとする仕組みです。

もう少しざっくり言うと、

  • パスキー: 秘密の印鑑で本物の署名を作って証明する
  • ゼロ知識証明: パズルの答えを見せず、答えを知っていることだけを証明する

こんな違いがあります。

パスキーの電子署名では、署名を確認するための情報も相手に渡します。

そのため、秘密鍵を見せないという点は共通していても、ゼロ知識証明と同じ数学的な性質を持っているわけではありません。

ただ、個人的に面白いと思ったのが、どちらも根本にある発想はよく似ているということです。

「信用してもらうために、秘密そのものを相手に教える必要はない」

という考え方ですね。

従来のパスワード認証とは、かなり発想が違います。

今後、こうした暗号技術がもっと身近なサービスで使われるようになれば、必要以上に個人情報を渡さなくても済む場面が増えていくのかもしれません。

これは、なかなか面白い技術の進化だと思いました。

じゃあ、サービス側が不正アクセスされても大丈夫なの?

ここで気になるのが、最近ニュースになっている個人情報流出の問題です。

従来のパスワード認証では、サービス側がパスワードを確認するための情報を保存しています。

通常はパスワードそのものではなく、ハッシュ化※された情報などを保存しているんですが、それでも漏えいすれば危険です。

ハッシュ化:元に戻せない不可逆な変換技術

弱いパスワードが推測されたり、使い回しているパスワードが別のサービスで悪用されたりする可能性があります。

一方、パスキーの場合、サービス側に登録されているのは公開鍵です。

公開鍵が流出しても、それだけで秘密鍵を作り出すことは、現在の適切な暗号技術では現実的にできません。

つまり、仮にサービス側が不正アクセスされても、公開鍵を盗まれただけでは、攻撃者はその人になりすましてログインできないわけです。

これはかなり大きなメリットですよね。

ただし、誤解してはいけないのが、パスキーを使っていれば個人情報が流出しない、というわけではないことです。

サービス側に保存されている氏名や住所、クレジットカード情報などは、別の弱点を突かれれば流出する可能性があります。

あくまでパスキーが強くしてくれるのは、主にログイン時の本人確認の部分です。

ここは分けて考える必要がありますね。

パスキーがフィッシング詐欺に強いのはなぜ?

もう一つ、パスキーの大きな特徴があります。

それが、フィッシング詐欺に強いということです。

フィッシング詐欺というのは、本物そっくりの偽サイトを作って、パスワードなどを盗み取る手口ですね。

例えば、Amazonそっくりの偽サイトがあったとします。

見た目は本物とほとんど同じ。

そこで利用者が間違えてパスワードを入力してしまうと、そのパスワードは攻撃者に知られてしまいます。

さらに、SMSなどで届いた二段階認証の確認コードまで入力させられたら、攻撃者がその情報を利用してログインしてしまうこともあります。

ところが、パスキーの場合は事情が違います。

パスキーは、登録したWebサイトと結びついているんですね。

例えば、本物のAmazon用に作ったパスキーは、まったく別の偽サイトのドメインでは使えません。

見た目がどれだけ似ていても、ブラウザやスマホの仕組みによって、そのサイト用のパスキーではないと判断されます。

なので、偽サイトに本物のパスキーを使ってログインしてしまう、ということを防ぎやすくなっているわけです。

これ、かなり画期的だと思いませんか。

従来は「怪しいリンクを開かないようにしましょう」「URLをよく確認しましょう」といった、利用者の注意に頼る部分も大きかったんですよね。

もちろん今でも注意は必要ですが、パスキーでは仕組みそのものが、偽サイトでの認証を防いでくれるわけです。

二段階認証よりも安全って本当?

さて、ここが今回一番気になっていたところです。

パスキーは二段階認証よりも安全なのか。

調べてみると、答えは、

SMSや認証アプリの確認コードを使う一般的な二段階認証と比べると、パスキーのほうが安全性に優れる部分がある。

ということでした。

ただし、すべての二段階認証よりも必ず安全、というわけではありません。

そもそも二段階認証というのは、ログイン時に二つの段階で本人確認をする仕組みです。

例えば、パスワードを入力したあとに、SMSで届いた6桁の確認コードを入力する。

これも二段階認証ですよね。

でも、先ほど説明したように、偽サイトに両方を入力してしまえば、攻撃者に悪用される可能性があります。

一方、パスキーなら偽サイトでは認証が成立しないように設計されています。

この違いが非常に大きいんです。

さらに面白いのが、パスキーは一回の操作で、実質的に二つの要素を確認できる場合があることです。

一つは、パスキーを保存しているスマホなどを持っていること。

もう一つは、そのスマホで指紋認証や顔認証、PINコードによって本人確認をすること。

つまり、

「持っているもの」と「自分しか知らない情報、または自分の身体的な特徴」

を組み合わせているわけです。

このため、端末側での本人確認を必須とするパスキー認証は、一回の操作でも多要素認証として機能します。

ただし、パスキーの利用時に必ず本人確認が求められるかなど、細かな動作はサービスや設定によって異なります。

また、二段階認証にも、物理的なセキュリティキーを使ったフィッシングに強い方式があります。

なので、

「パスキーは二段階認証の完全上位互換」

と考えるのは、ちょっと違うんですね。

正確には、パスキーは、従来のパスワードと確認コードを組み合わせる方式の弱点を、別の仕組みで解決しようとしている認証方法、ということです。

でも、スマホをなくしたらログインできなくなるのでは?

ここまで聞くと、かなり安全そうなパスキーですが、一つ疑問が出てきます。

パスキーはスマホの中に保存されているわけですよね。

じゃあ、スマホをなくしたらどうなるの?

これは結構気になります。

実はパスキーには、大きく分けると二つのタイプがあります。

一つは、特定の端末だけに保存するタイプ。

もう一つは、クラウドを使って複数の端末で同期できるタイプです。

例えばiPhoneであれば、Appleのパスワード管理機能を利用して、iPhoneやMacなどの間でパスキーを同期できます。

AndroidやChromeでも、Googleパスワードマネージャーなどが対応しています。

こうした同期型のパスキーなら、スマホを買い替えても、必要な本人確認や復旧手続きを済ませることで、新しい端末で使えるようになります。

同期される情報は暗号化されていて、保存先のサービス提供者が簡単に秘密鍵を読み取れないような仕組みが使われています。

一方、特定の端末にだけ保存されるタイプでは、その端末をなくすと別の方法でのログインや再登録が必要になることがあります。

つまり、どこにパスキーを保存したかによって、紛失時の対応も変わってくるわけですね。

また、同期型であっても、クラウド側のアカウントに入れなくなれば復旧が難しくなる場合があります。

なので、パスキーの安全性だけでなく、保存先のアカウントや復旧手段をきちんと管理しておくことも大切です。

パソコンからもスマホのパスキーを使える

もう一つ便利なのが、パソコンからログインするときにも、スマホに保存されたパスキーを使えることです。

例えば、WindowsのパソコンでWebサービスにログインしたいとします。

そのサービスのパスキーはiPhoneに保存されている。

そんな場合でも、対応している環境なら、パソコンに表示されたQRコードをiPhoneで読み取って、顔認証などを使ってログインできます。

近くにスマホがあることを確認するために、Bluetoothを利用する仕組みもあります。

これなら、パソコン側にパスキーを保存していなくてもログインできるわけです。

なお、これは通常のログインで使う仕組みであって、QRコードなら何でも安全という意味ではありません。

知らない人から送られてきたQRコードや、不審なログイン要求を安易に承認しないことは、やはり大切ですね。

じゃあ、パスキーなら絶対安全なの?

ここまでパスキーのメリットを紹介してきましたが、当然ながら完璧というわけではありません。

例えば、スマホそのものを盗まれて、さらにロック解除用のPINコードまで知られてしまった場合。

こうしたケースでは、パスキーを不正に使われるリスクがあります。

また、パスキーでログインしたあとのセッション情報を盗まれたり、サービス側の別の弱点を悪用されたりする可能性もあります。

それに、サービスによっては、パスキーを設定したあとも、従来のパスワードでログインできる場合があります。

その場合、パスキー自体が安全でも、残っているパスワード認証が攻撃される可能性があるんですね。

なので、パスキーを設定したから、ほかのセキュリティ対策は全部不要、というわけではありません。

パスワードが残っているなら使い回しを避ける。

スマホには安全な画面ロックを設定する。

AppleやGoogleなど、パスキーの保存先になるアカウントも厳重に守る。

こういった基本的な対策は、引き続き必要です。

結局、パスキーは使ったほうがいい?

ということで、いろいろ調べてみたんですが。

個人的には、対応しているサービスなら、積極的にパスキーを使っていくのがよさそうだと感じました。

特に大きいのは、やはりフィッシング詐欺への強さですね。

パスワードは、どれだけ複雑にしても、偽サイトに自分で入力してしまえば盗まれる可能性があります。

ところがパスキーは、そもそも偽サイトでは認証が成立しないように設計されています。

さらに、サービス側にログイン用の秘密鍵を預けないという仕組みも、よく考えられているなと思いました。

今回、ゼロ知識証明との共通点についても少し調べてみましたが、そこでも改めて感じたことがあります。

それは、安全性を高めるために、何でも相手に預ける必要はないということです。

今までは、本人であることを証明するために、秘密のパスワードをサービス側に確認してもらうのが当たり前でした。

でも、パスキーでは、その秘密を渡さずに本人確認ができます。

さらにゼロ知識証明のような技術を使えば、将来的には必要な条件だけを証明して、余計な個人情報を渡さずに済む場面も増えるかもしれません。

個人的には、こういった技術の進化はかなり歓迎したいところです。

最近はAIの進化によって、サイバー攻撃が高度化することも心配されています。

そんな時代だからこそ、利用者が頑張ってパスワードを守るだけでなく、仕組みそのものを安全なものに置き換えていく。

パスキーは、そのための重要な技術の一つなんだと思います。

これまで何となく「パスキーを作成する」というボタンを押していた人も、裏側でどんなことが行われているのかを知ると、少し見方が変わるかもしれませんね。

私も今回調べてみて、改めてパスキーの仕組みの面白さがわかりました。

ただ便利なだけではなく、ちゃんと安全になる理由がある。

これから対応サービスが増えていくのは、個人的には楽しみです。

※この記事は2026年10月時点の公開情報をもとにまとめています。パスキーの対応状況や細かな動作は、サービス・端末・OSによって異なります。

参考情報

#パスキー #パスワード #二段階認証 #ゼロ知識証明 #セキュリティ #情報セキュリティ #サイバーセキュリティ #個人情報保護 #IT初心者 #IT知識 #公開鍵暗号 #デジタルリテラシー