認証まわりの用語、多すぎませんか?
パスワード、パスコード、パスキー、PIN、暗証番号、認証コード、確認コード、ベリファイコード、ワンタイムパスワード、ワンタイムパスコード、TOTP、OTP、SMS認証、シークレットキー、リカバリーコード、バックアップコード、APIキー、アクセストークン、セッションID、Cookie……。
同じものを違う名前で呼んでいたり、別物なのに似た名前だったり、業界が無駄に名前を増やした結果、利用者から見るとカオスになっています。「パスコードとパスワードって何が違うの?」「TOTPとSMSの6桁は同じ仲間?」と疑問に思ったことがある人も多いはずです。
セキュリティの教科書では認証を次の3要素に分類するのが定番です。
- 知識要素(知っている):パスワードなど
- 所持要素(持っている):スマホ、YubiKey、マイナンバーカードなど
- 生体要素(自身の身体):指紋、顔など
これは「技術をどう組み合わせるか」という設計者・実装者目線の分類です。きれいな分類ですが、使う側からすると「実際に画面で何を入力するのか」「どこに何が保管されているのか」がいまいち見えてきません。
そこでこの記事では、使う側から見たときに何が本質的に同じ仕組みなのかという視点で、認証まわりの用語を5つのグループに整理し直してみました。
- ① 知識で認証する(知ってる派)
- ② 一回限りの使い捨てコードで認証する(使い捨て派)
- ③ 公開鍵暗号で認証する(署名派)
- ④ 身体で認証する(生体派)
- ⑤ ログイン後に裏で使われる認証情報(裏方派)
この分類で見ると、「パスワードとパスキーはぜんぜん違うが、パスコードとパスワードは仲間」「TOTPとSMS認証は近い」「JWTってなに」みたいなことがスッキリ見えてきます。
「認証ってなんとなく分かってるけど、用語が多すぎて整理できない」という人の頭の整理に役立てば嬉しいです。
グループ① 知識で認証する(知ってる派)
本質
本人だけが頭の中に覚えている文字や数字を入力して、保存されているものと一致するかで認証する。
含まれるもの
- パスワード
- パスコード
- PIN
- 暗証番号
- パスフレーズ(長いパスワード)
- 秘密の質問(母の旧姓など)
共通の特徴・弱点
- 漏れたら誰でも本人になりすませる
- フィッシングに弱い(偽サイトに入力させられる)
- サーバーがハッキングされると一気に流出
- 覚えるのが大変なので使い回されがち
ポイント:パスワードとパスコードは仲間
「パスワード」と「パスコード」は別物のような名前ですが、本質は同じです。どちらも「覚えている文字列を入力して照合する」仕組みで、違うのは:
- 文字種(英数字記号か数字のみか)
- 長さ(長いか短いか)
- 使う場面(サイトのログインかデバイスのロックか)
という慣習だけです。技術的に区別する必要はありません。
グループ② 一回限りの使い捨てコードで認証する(使い捨て派)
本質
毎回違う短いコードを発行して、その瞬間だけ有効にする。漏れてもすぐ無効になる。
含まれるもの
- ワンタイムパスワード(OTP)
- ワンタイムパスコード
- TOTP(認証アプリの6桁)
- SMS認証
- メール認証
- 認証コード / 確認コード / ベリファイコード
- リカバリーコード / バックアップコード(緊急用の使い捨て)
共通の特徴
- 30秒〜数分で無効になる
- 一度使ったら使えない
- グループ①より安全だが、フィッシングには依然として弱い(その場で偽サイトに入力させられる)
- TOTPはオフラインで動く、SMS/メールは通信が必要
ポイント:TOTPの仕組み
TOTPは「Time-based One-Time Password」の略で、RFC 6238という公開規格です。仕組みはこうです:
- 登録時にQRコードから秘密の鍵を共有する(サーバーとアプリの両方に保存)
- アプリは「秘密の鍵 + 現在時刻」をハッシュ計算して6桁を生成
- サーバーも独立に同じ計算をする
- 一致すれば本人と認める
通信していないので機内モードでも動くのが特徴です。鍵はサイトごと・アカウントごとに別物が生成されます。
グループ③ 公開鍵暗号で認証する(署名派)
本質
秘密鍵で署名し、公開鍵で検証する。秘密鍵はデバイスから出ない。サイト側には公開鍵しか置かない。
含まれるもの
- パスキー
- SSH鍵認証
- FIDO2 / WebAuthn
- 物理セキュリティキー(YubiKeyなど)
- マイナンバーカード認証(電子証明書)
- クライアント証明書
共通の強み
- サーバーがハッキングされても本人になりすませない(公開鍵が漏れても問題ない)
- フィッシングに強い(ドメインと鍵が紐づくので偽サイトでは動かない)
- 秘密鍵がデバイスから出ない構造
- 仕組み的に最も安全
ポイント:パスキーはSSH鍵認証と同じ仲間
「パスキーって要するに何?」と聞かれたら、エンジニアには 「SSH鍵認証を一般の人でも使えるようにパッケージ化したもの」 と説明するのが一番伝わります。
| パスキー | SSH鍵認証 | |
|---|---|---|
| 秘密鍵の置き場所 | スマホ/PCの中(指紋・顔で守る) | PCの中(パスフレーズで守る) |
| 公開鍵の置き場所 | ログインするサイト | ログインするサーバー |
| 認証方法 | 秘密鍵で署名→公開鍵で検証 | 秘密鍵で署名→公開鍵で検証 |
| 秘密鍵は外に出るか | 出ない | 出ない |
中身の暗号方式は同じです。違うのは「使う場面」と「使いやすさ」だけ。
グループ④ 身体で認証する(生体派)
本質
本人の身体的特徴をセンサーで読み取って、登録されたデータと照合する。
含まれるもの
- 指紋認証
- 顔認証(Face ID、Windows Helloなど)
- 虹彩認証
- 静脈認証
- 声紋認証
共通の特徴
- 忘れない、なくさない
- 入力が一瞬で済む
- 一度漏れたら変更できない(指紋を変えられない)
- 単独では使われず、他のグループの「鍵を使う許可」として機能することが多い
ポイント:生体認証は「補助」が本質
iPhoneでパスキーを使ってログインするとき、こんな流れになります:
- サイトで「パスキーでログイン」を選ぶ
- iPhoneが「Face IDで認証してください」と言う
- 顔をかざす(または、Face IDが使えないときパスコードを入力)
- iPhoneが秘密鍵で署名 → サイトが公開鍵で検証 → ログイン成功
ここで重要なのは:
- 顔やパスコードは「iPhoneの中の秘密鍵を使う許可」をするためのもの
- 実際の認証は秘密鍵による署名でやっている
- 生体は「鍵を使うための鍵」みたいなポジション
つまり生体認証は単独で認証してるわけではなく、他のグループの認証を有効化するスイッチとして働いています。
グループ⑤ ログイン後に裏で使われる認証情報(裏方派)
本質
ログインの後に発行される一時的な認証情報で、その後の通信を本人だと証明する。利用者が直接入力するものではない。
含まれるもの
- アクセストークン
- セッションID
- Cookie(認証用)
- APIキー
- リフレッシュトークン
- JWT(JSON Web Token)
共通の特徴
- ログインの後に使われる
- 自動的にやり取りされる(利用者は意識しない)
- 漏れると有効期間中はなりすまし可能
- 主にシステム側・開発者が扱う領域
ポイント:他のグループとは役割が違う
①〜④は「人がサイトに対して本人を証明する」場面のもの。
⑤は「証明が終わったあと、サイトが利用者を覚えておくため」のもの。
役割がまったく違うので、本質的には別カテゴリとして扱うのが分かりやすいです。
全体の整理表
| グループ | 本質 | 強さ | 主な例 |
|---|---|---|---|
| ① 知識 | 覚えているもの | 弱 | パスワード、パスコード、PIN |
| ② 使い捨て | 毎回違うコード | 中 | TOTP、SMS認証 |
| ③ 署名 | 秘密鍵で署名 | 強 | パスキー、SSH鍵 |
| ④ 生体 | 身体的特徴 | 中(補助) | 指紋、顔 |
| ⑤ トークン | 裏方の認証情報 | (別物) | Cookie、APIキー |
実際の認証はグループの組み合わせ
現代のログインは、たいてい複数のグループを組み合わせています。
例:銀行サイトのログイン
- パスワード(①) + SMS認証(②)
- 違うグループを2つ使うから「二段階」「多要素」と呼ぶ
例:iPhoneでパスキーを使う
- 顔認証(④)で 秘密鍵を使う許可 → パスキー(③)で認証
- 生体は「鍵を使う許可」、本体の認証はパスキー
例:普通のWebサイト
- パスワード(①)でログイン → セッションCookie(⑤)で以降の通信を維持
セキュリティの強さで並べると
本質で並べると、こうなります。
③ 署名(パスキー、SSH鍵) > ② 使い捨て(TOTP) > ① 知識(パスワード)
- 知識(①)は漏れたら終わり
- 使い捨て(②)は漏れても30秒で無効になるが、フィッシングには弱い
- 署名(③)はそもそも漏れない構造、フィッシングにも強い
生体(④)は単独で評価するものではなく、他のグループの「鍵を使う許可」として補助的に働きます。
補足:標準の3要素分類との対応
冒頭で触れた「知識・所持・生体」の3要素分類と、本記事の5グループの対応はこうなります。
| 標準の3要素 | 本記事のグループ |
|---|---|
| 知識要素 | ① 知識 |
| 所持要素 | ② 使い捨て(スマホ・SIM)、③ 署名(YubiKey・パスキー入りスマホ・マイナカード) |
| 生体要素 | ④ 生体 |
| (該当なし) | ⑤ トークン |
標準分類だと「TOTPアプリのスマホ」と「YubiKey」と「パスキー入りスマホ」がぜんぶ「所持要素」になってしまいますが、中身の仕組みはまったく違います。使う側からは:
- TOTP → 表示された6桁を打つ
- YubiKey → USBを挿してタッチ
- パスキー → 指紋か顔
と体験も挙動も別物なので、本質で分けたほうが分かりやすいと思います。
まとめ
- 認証用語は名前が乱立しているが、本質で見ると5グループに集約できる
- ① 知識、② 使い捨て、③ 署名、④ 生体、⑤ トークン
- パスワードとパスコードは同じ仲間(①)
- TOTPとパスキーは別の仲間(② vs ③)
- 指紋認証は単独の認証ではなく、鍵を使う許可(④)
- 実際のログインは複数グループの組み合わせ
- 強さの順は 署名 > 使い捨て > 知識
「これは何のことを言ってるんだ?」と混乱したら、仕組みの本質がどのグループに属するかで考えると整理しやすいです。



