,(*) : 筆者
: ChatGPT
: Gemini
: Claude
: Notebook
,(*) : 筆者
: ChatGPT
: Gemini
: Claude
: Notebook

2025年5月にパスキーについて記事を書いた。その時はSBI証券の不正アクセス・口座乗っ取りがあり、将来はパスキー導入が進むだろう、と書いた。
2026年後半になってハッカーによるサイトへの不正アクセスで個人情報が盗み取られる事件が急増し2026年4月から10月末まで、のべ2億6千万人の個人情報が盗み取られといわれる(朝日新聞)。特にAIによるセキュリティホールの発見、ユーザー情報の悪用、フィッシングの手口の巧妙化などにより、にわかにパスキーが注目されている。
今回は、前の記事で説明したパスキーの仕組みを整理し少しでも理解してこれまでのパスワード認証とは異なること理解する。
以下、ChatGPT, Clasudeとの対話生成記事の紹介。
パスキーとは、パスワードの代わりに使えるより安全で便利な認証方法です。ユーザーがIDやパスワードを入力する代わりに、指紋認証・顔認証・PINコードなど、デバイスに保存された認証情報でログインします。
パスキーの仕組み
(Google) パスキーは「公開鍵暗号方式」という技術をベースにしています。
| 要素 | 説明 |
|---|---|
| ユーザー | 本人認証を行う人物 |
| ブラウザ | FIDO認証のトリガーとなるアプリ(Chrome/Edgeなど)WebAuthn API(*)を通じて認証器(Authenticator)と通信 |
| Relying Party(RP) | 認証を要求するサービス側。例:Google、Dropbox、Microsoftなど |
| FIDO サーバー | RPの一部または委託されている認証処理専用サーバー。公開鍵の保存や検証を担当 |
| 内部認証器 | 秘密鍵を持つローカルデバイス。TPM(*)搭載PC |
| 外部認証器 | USB/NFC/Bluetoothなどで接続されたセキュリティキー |
| クラウドプロバイダー | Apple/Google/Microsoft など、パスキーをクラウド同期 |

(作図:筆者)
| タイプ | 内容 |
|---|---|
| 内部認証器 | スマホやPC内蔵(Face ID, Windows Helloなど) |
| 外部認証器 | YubiKeyやスマホアプリ(Bluetooth/NFC/USB) |
| 他の認証デバイス | 別デバイスで生成された認証情報をクラウド経由で利用可能にする |
| 要素 | 内容 |
|---|---|
| 🔐 本人確認 | ステップ④で顔・指紋・PINなどによって実施 |
| 🧠 鍵の仕組み | 秘密鍵はデバイス内、公開鍵はFIDOサーバーで検証用に保存 |
| 🌐 通信の流れ | ユーザー → RP → FIDOサーバー → 認証器 → 戻ってくる一連の認証処理 |
パスキー作成の例としてGoogleアカウントに設定する手順を説明する。ここで作るパスキーは、Googleアカウントにログインするためのもの。Gmail、YouTube、Googleドライブなど、Googleのサービスを使うときに、パスワードの代わりになる。他の会社のサイトにログインするには、そのサイトごとに別のパスキーを作る必要がある。
Googleアカウントにパスキー(Passkey)を設定する手順を、以下にわかりやすく説明する。 ✅ 前提条件(準備) 対応ブラウザ・デバイス: Google Chrome, Microsoft Edge, Safari, Firefox(最新版) Windows 10/11, macOS, Android 9以降, iOS 16以降 必要なもの: Google アカウント ・ 指紋認証/顔認証/PIN対応のスマホやPC ・ 同期用にGoogleアカウントでログインしたデバイス(例:Android + Chrome) 🔧 設定手順(パソコン or スマホどちらでもOK) 📌 ステップ1:パスキー設定ページへアクセス 以下のURLにアクセスします: 🔗 https://g.co/passkeys または 🔗https://myaccount.google.com/security →「パスキー」セクション 📌 ステップ2:パスキーを追加 1. 「パスキーを作成」または「パスキーを使ってログイン」をクリック 2. 使用している端末の生体認証またはPINで認証します 3. 成功すると、「このデバイスでパスキーが作成されました」と表示されます 📌 ステップ3:設定完了を確認 登録が完了すると、設定画面にこのように表示されます: このデバイスのパスキー Chrome(Windows 11) 作成日:2025年5月18日 必要に応じて他の端末でも同じように登録可能です。 💡 補足情報 パスキーを複数の端末で使いたい場合 → 各端末で同じ手順を繰り返して設定(Googleアカウント同期が必要) パスワードとの併用も可能 → パスキーを設定しても、パスワード認証も引き続き使えます(併用設定) パスキーを削除したい場合 → 同じ画面から「このパスキーを削除」をクリックすればOK 🧪 パスキーが使えるか確認するには? 1. ログイン画面に「パスキーでログイン」や「Windows Helloで続行」などの表示があるか 2. 各サービスのセキュリティ設定に「パスキーを登録」「生体認証」などの項目があるか 🛠 パスキーが使える認証基盤 ・ FIDO2 / WebAuthn に準拠していれば、理論上どのサイトでも対応可能です。 ・ 日本国内企業や公共機関も、2025年以降徐々に導入を始めています(例:証券会社・ECサイトなど)
| デバイス / OS | 保存場所の名称 | 解説 |
|---|---|---|
| Windows 10/11 | TPM(Trusted Platform Module)または Windows Hello キーストア | ハードウェア内の安全な領域。PINや指紋で解錠。端末固定型。 |
| macOS | 同期型はiCloudキーチェーンで暗号化して同期、端末固定型はSecure Enclaveに保管 | 端末固定型はAppleシリコンの安全なチップ領域に格納。 |
| iPhone / iPad | 同期型はiCloudキーチェーンで暗号化して同期、端末固定型はSecure Enclaveに保管 | 同上 |
| Android | Trusted Execution Environment (TEE) または StrongBox | 機種によって異なるが、いずれも強固なハードウェア領域。 |
| クラウド(Google) | Googleパスワードマネージャー | Androidの標準の保存先。Chromeを使うWindows、macOS、iOSでも利用可能。暗号化してGoogleアカウントに同期し、復号には画面ロックまたはGoogleパスワードマネージャーのPINが必要。Google自身は中身を読めない。 |
| クラウド(Apple) | iCloudキーチェーン(パスワード) | iPhone、iPad、Macの標準の保存先。暗号化してiCloudで同期。Apple IDでの認証と端末のパスコードで保護される。 |
| クラウド(Microsoft) | Microsoftアカウント連携(Edge、Windows) | 環境やバージョンによって対応状況が異なる。公開前に公式情報で要確認。 |
| パスワード管理アプリ(サードパーティ製) | アプリ内の暗号化ストレージ | 例:1Password、Bitwarden、Dashlaneがローカルに保管・同期。 |
デジタル署名は、データの真正性や改ざんの有無を確認するための仕組みであり、その中でも高い安全性と効率性を備えた署名方式の一つが ECDSA(楕円曲線デジタル署名アルゴリズム) である。
この ECDSA は、署名と検証の処理に ECC(楕円曲線暗号) という公開鍵暗号の技術を用いることで、短い鍵長でも強固なセキュリティを実現している。 この仕組みは、近年注目されているパスキー(Passkey)の基盤にもなっており、ユーザーは秘密鍵を端末に安全に保持したまま、公開鍵を使って認証を受けられる。 つまり、ECC は ECDSA を支える暗号技術であり、ECDSA はデジタル署名を実現する方式であり、パスキーはその仕組みを利用して安全な認証を実現する応用技術である。
この仕組みの要点はECDSA(楕円曲線署名アルゴリズム)という暗号手法を用いていること。サーバーは秘密鍵を知らなくても、公開鍵があれば署名が正当か判定できる。
デジタル署名アルゴリズムであるECDSAは図や概念が難しいので、ここでは原理が同じで計算が追いやすいRSAで説明する(WebAuthnではRSAも使える)。
🔐【簡易モデルで理解する】署名と検証の仕組み(mod演算編) ここでの説明は実際のRSA暗号方式を簡略化した概念理解用モデル。RSAは1977年に開発された暗号で現代でもWebブラウザやインターネットバンキング、eメールなど、さまざまなシーンの暗号方式で活用されている。
| 項目 | 記号(値) | 説明 |
|---|---|---|
| 秘密鍵 | d = 7 | decryption : (復号)秘密に保持される。(サインに使う |
| 公開鍵 | e = 3 | encryption : (暗号化) 公開される。(検証に使う) |
| モジュラス | n = 33 | number : 公開鍵と秘密鍵で共通の法。 |
| メッセージ | (m = 4 ) | 暗号化・復号の対象となる元のランダムデータ。 |
| 署名 | (s = 16) | signature : 計算値、デジタル署名に使われる値。m = 4 の場合 |
| 参考): 逆元 | d⁻¹ | mod演算での逆元。dとeが逆元関係にある(d × e ≡ 1 mod φ(n))* ≡ : 合同 |
| 項目 | クライアント | サーバー |
|---|---|---|
| チャレンジ | ⬅️ランダムなメッセージ m = 4 を送信(チャレンジ) | |
| 署名 | 秘密鍵 d = 7 を使って、署名値 s を計算 :
s = m^d mod n
= 4^7 mod 33
= 16384 mod 33
= 16
s = 16を返す➡️
(* 計算式: ^は累乗 s = 16384÷33 の余り = (496 余り) 16 ✅ modは余りだけを取り出す ) | |
| 検証 | 署名 s = 16 と公開鍵 e = 3 を使って、 元のメッセージ m = 4 と一致するかを確認: m' = s^e mod 33 = 16^3 mod 33 = 4096 mod 33 = 4 → m' = 4 = m ✅ 署名は正しい(=この署名は、秘密鍵 d によって行われたものと認証) | |
| 認証 | 認証要求元へ⬅️ユーザー認証完了と判断 |
参考) : 秘密鍵と公開鍵の関係。RSA では、2 つの大きな素数 p, q から n = pq を作り、φ(n) = (p − 1)(q − 1) を計算。公開鍵 e と秘密鍵 d は、exd ≡ 1 (mod φ(n)) となるように選ぶ。 法と合同 : 2つの整数 a と b が、ある整数 c を法として合同であるとは、a と b を c で割った余りが等しいことを意味する。この関係は、a ≡ b (mod c) と表記する。 例: 7 を 3 で割った余りは 1、4 を 3 で割った余りも 1 。したがって、7 と 4 は 3 を法として合同であり、7 ≡ 4 (mod 3) と表する。 10 を 3 で割った余りは 1 。したがって、10 ≡ 1 (mod 3) と表する。 「法」は割る数、「合同」は割った余りが等しいことを表す概念で、これらの概念は整数の性質を理解する上で重要な役割を果たす。
💡 なぜ mod を使うの? nの素因数分解が難しいこと mod を使った演算は「元に戻すのが困難」な性質を持ち、なりすまし防止になる。「モジュラス n = 33 がどうして成り立つのか」を証明。 ✅ ステップバイステップで証明:モジュラス n = 33 🔹 1. n を素因数分解して p, q を見つける 33 = 3 x 11 * p = 3 * q = 11 この2つの素数から n を再構成できます: 🔹 2. トーシェント関数 φ(n) *を計算 次に、秘密鍵 d を作るために必要な値 φ(n) を求めます: φ(n) = (p - 1)(q - 1) = (3 - 1)(11 - 1) = 2 x 10 = 20 (*)トーシェント関数(オイラーのφ関数)φ(n) は、1 から n までの整数のうち、n と互いに素なもの(最大公約数が 1)の個数を表す関数 3の倍数11個と11の倍数3個と33がダブルので1個引いて1, 2, 4, 5, 7, 8, 10, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 29, 31, 32 の20個 🔹 3. 公開鍵 e = 3 に対する秘密鍵 d = 7 を確認 秘密鍵 d は、公開鍵 e に対する「逆元」である必要があります: d x e ≡ 1 mod φ(n) つまり: 7 x 3 = 21 ≡ 1 mod 20 ✅ ( 21÷20の余りは1) よって、この条件を満たしているので、 * d = 7 * e = 3 * n = 33 は一貫した鍵ペアとして成立しています。 *この例は n が小さいので、n = 33 を 3 × 11 と分解でき、φ(33) = 20 が出て、3 × d ≡ 1 (mod 20) を解けば d = 7 が得られる。 公開鍵から秘密鍵を計算できてしまうが実際のRSAでは n が巨大なため、この分解が事実上不可能で、そこが安全性の根拠になる。 🔁 まとめ(この鍵の背景)
| 項目 | 値 | 内容 |
|---|---|---|
| 素数 p | 3 | 秘密 |
| 素数 q | 11 | 秘密 |
| モジュラス n | 33 | p x q (公開) |
| 公開鍵 e | 3 | gcd(e, φ(n)) = 1 |
| 秘密鍵 d | 7 | e x d ≡ 1 mod 20 |
実際に使われるnの例: n = 251959084756578934940271832400483985714292821262040320277771378360436620... ...045563579248406678325141441973568548161361157352552133475741849468438523323907394143 617桁以上の10進数 で構成され、素因数分解は現代のコンピュータでは事実上不可能です。
パスキーを設定しても、従来のパスワードは残る。普段はパスキーでログインし、パスワードは強いものに変えて、パスワードマネージャーに保管しておく予備の鍵として扱うと、管理の負担が軽くなる。パスワードに加えて、2段階認証も設定しておくと安心である。 パスキーが使えない場面でも、パスワードだけで不正にログインされるのを防げる。
パスキーが普及してくると必ずSNSなどに「パスキーでも突破される」などと見出しでクリック狙いの記事が出るが、全部がパスキー自体の問題ではなく他の原因で不法侵入されたもの。
FIDOアライアンスは世界で約50億個のパスキーが導入されていると推計している。パスキーの暗号そのものが攻撃されて悪用されたという報告はないというが、周辺の仕組みや実装を突く攻撃や脆弱性は、いくつも報告されている。例としてマルウェアがログイン時に偽のエラーを出し、新しいパスキーの作成を促し、従うと、攻撃者が管理するパスキーが登録される。(Claude)