パスキー(Passkey)について➁

2026/11/02

,(*) : 筆者

: ChatGPT

: Gemini

: Claude

: Notebook

概要

2025年5月にパスキーについて記事を書いた。その時はSBI証券の不正アクセス・口座乗っ取りがあり、将来はパスキー導入が進むだろう、と書いた。

2026年後半になってハッカーによるサイトへの不正アクセスで個人情報が盗み取られる事件が急増し2026年4月から10月末まで、のべ2億6千万人の個人情報が盗み取られといわれる(朝日新聞)。特にAIによるセキュリティホールの発見、ユーザー情報の悪用、フィッシングの手口の巧妙化などにより、にわかにパスキーが注目されている。

今回は、前の記事で説明したパスキーの仕組みを整理し少しでも理解してこれまでのパスワード認証とは異なること理解する。

以下、ChatGPT, Clasudeとの対話生成記事の紹介。

パスキー(Passkey)とは?

パスキーとは、パスワードの代わりに使えるより安全で便利な認証方法です。ユーザーがIDやパスワードを入力する代わりに、指紋認証・顔認証・PINコードなど、デバイスに保存された認証情報でログインします。

パスキーの仕組み

(Google) パスキーは「公開鍵暗号方式」という技術をベースにしています。 主なメリット

🔑 主テーマ: パスキー(Passkey)によるFIDO(*)認証の流れ

*FIDO: Fast IDentity Online パスワードを使わない認証技術の標準規格 🧩 各構成要素の意味
要素 説明
ユーザー本人認証を行う人物
ブラウザFIDO認証のトリガーとなるアプリ(Chrome/Edgeなど)WebAuthn API(*)を通じて認証器(Authenticator)と通信
Relying Party(RP)認証を要求するサービス側。例:Google、Dropbox、Microsoftなど
FIDO サーバー RPの一部または委託されている認証処理専用サーバー。公開鍵の保存や検証を担当
内部認証器秘密鍵を持つローカルデバイス。TPM(*)搭載PC
外部認証器USB/NFC/Bluetoothなどで接続されたセキュリティキー
クラウドプロバイダーApple/Google/Microsoft など、パスキーをクラウド同期
(*)WebAuthn API : ブラウザ経由でパスワードを使わない安全な本人認証(パスワードレス認証)を実現するための標準化されたWeb API (*)TPM : Trusted Platform Module パソコンのマザーボードに組み込まれるか、CPUに内蔵されたセキュリティ専用の半導体チップ。暗号化キーやパスワードの生成・安全な保管に使う。
パスキー説明

(作図:筆者)

🔁 流れの説明(番号順) その他の構成要素 🔐 CTAP2:ブラウザと認証器間の通信プロトコル(外部認証器用、Bluetooth/NFC対応)。 ☁️ クラウドプロバイダー:ユーザーが複数デバイスでパスキーを使うために、秘密鍵情報を暗号化してクラウドで同期。 例:iCloud Keychain, Google Password Manager 補足: 認証器のタイプ
タイプ内容
内部認証器スマホやPC内蔵(Face ID, Windows Helloなど)
外部認証器YubiKeyやスマホアプリ(Bluetooth/NFC/USB)
他の認証デバイス別デバイスで生成された認証情報をクラウド経由で利用可能にする
☁️ 補足:クラウド同期(図下部)  ・ 認証器(たとえばスマホ)同士で認証情報(鍵)をクラウド経由で同期  ・これにより、別のデバイスからもログイン可能になる(クロスデバイスパスキー) ✅ まとめ
要素内容
🔐 本人確認ステップ④で顔・指紋・PINなどによって実施
🧠 鍵の仕組み秘密鍵はデバイス内、公開鍵はFIDOサーバーで検証用に保存
🌐 通信の流れ ユーザー → RP → FIDOサーバー → 認証器 → 戻ってくる一連の認証処理
パスキーは「パスワードレス時代」の鍵です。 GoogleやApple、Microsoftが標準化団体(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(楕円曲線デジタル署名アルゴリズム) である。 この ECDSA は、署名と検証の処理に ECC(楕円曲線暗号) という公開鍵暗号の技術を用いることで、短い鍵長でも強固なセキュリティを実現している。 この仕組みは、近年注目されているパスキー(Passkey)の基盤にもなっており、ユーザーは秘密鍵を端末に安全に保持したまま、公開鍵を使って認証を受けられる。 つまり、ECC は ECDSA を支える暗号技術であり、ECDSA はデジタル署名を実現する方式であり、パスキーはその仕組みを利用して安全な認証を実現する応用技術である。

この仕組みの要点はECDSA(楕円曲線署名アルゴリズム)という暗号手法を用いていること。サーバーは秘密鍵を知らなくても、公開鍵があれば署名が正当か判定できる。

楕円曲線暗号(wikipedia)

公開鍵だけで認証できる仕組み(RSA)

デジタル署名アルゴリズムである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 が巨大なため、この分解が事実上不可能で、そこが安全性の根拠になる。 🔁 まとめ(この鍵の背景)

項目値内容
素数 p3 秘密
素数 q11秘密
モジュラス n33 p x q (公開)
公開鍵 e 3gcd(e, φ(n)) = 1
秘密鍵 d7e x d ≡ 1 mod 20
*gcd(a,b) : 2つ以上の整数の公約数の中で最大のもの

実際に使われるnの例: n = 251959084756578934940271832400483985714292821262040320277771378360436620... ...045563579248406678325141441973568548161361157352552133475741849468438523323907394143 617桁以上の10進数 で構成され、素因数分解は現代のコンピュータでは事実上不可能です。

感想

パスキーを設定しても、従来のパスワードは残る。普段はパスキーでログインし、パスワードは強いものに変えて、パスワードマネージャーに保管しておく予備の鍵として扱うと、管理の負担が軽くなる。パスワードに加えて、2段階認証も設定しておくと安心である。 パスキーが使えない場面でも、パスワードだけで不正にログインされるのを防げる。

パスキーが普及してくると必ずSNSなどに「パスキーでも突破される」などと見出しでクリック狙いの記事が出るが、全部がパスキー自体の問題ではなく他の原因で不法侵入されたもの。

FIDOアライアンスは世界で約50億個のパスキーが導入されていると推計している。パスキーの暗号そのものが攻撃されて悪用されたという報告はないというが、周辺の仕組みや実装を突く攻撃や脆弱性は、いくつも報告されている。例としてマルウェアがログイン時に偽のエラーを出し、新しいパスキーの作成を促し、従うと、攻撃者が管理するパスキーが登録される。(Claude)

戻る