コース目次 / 第4章
まとめ — 読める・止める・甘くなる
デコード・署名検証・危うい実装を畳みます。JWTの3つの事実と正しい検証の原則を持って、認証・セッションの全体像へ進みます。
JWT を3つの部品に分解し、中身が誰でも読めること・署名だけが改ざんを止めていること・その検証を甘くする実装が危ういことを、自作トークンで確かめました。
JWT・3つの事実
1. 読める。ヘッダとペイロードは base64url なだけ。鍵なしで誰でもデコードできる → 秘密を入れない。
2. 署名が、止める。ペイロードを書き換えると署名が合わなくなる。正しい署名には鍵が要る → 署名だけが改ざんの砦。
3. 甘くすると、崩れる。alg:none 受理・弱い鍵・alg 混同は、その砦を無効にする → 検証を厳格に。
正しい検証・早見表
| 甘い実装 | どうなる | 直し |
|---|---|---|
| alg をトークンから信じる | none や混同で偽造が通る | alg はサーバが固定。違えば拒否 |
| 鍵が弱い | 辞書・総当たりで鍵が割れる | 鍵は長くランダム(32B以上) |
| exp を見ない | 期限切れトークンが通る | 有効期限を必ず確認 |
| 秘密をペイロードに入れる | 中身が読まれる | JWT に秘密を入れない |
一言に畳むと——トークンの自己申告(alg)を信じず、鍵を強くし、期限を見る。そして中身は隠れていないと心得る。この4つで、既知の JWT 攻撃の大半は塞がります。手で検証するより実績あるライブラリを使うのが基本ですが、これらの設定はあなたが選ぶ——仕組みを知った今、正しく選べます。
次の道 — 認証とセッションの診断
JWT は、認証・セッションという大きな絵の一部でした。次は「認証とセッションの診断」で、Cookie・セッション・CSRF・OAuth / OIDC と合わせて、「あなたが誰であるか」を運ぶ仕組み全体の壊れ方を扱います。JWT で見た「自己申告を信じない」「砦を甘くしない」は、そこでも一貫して効きます。
このコースで作り・偽造したのは、すべて自分のトークンでした(法と倫理)。実在サービスのトークンを偽造して使えば不正アクセスです。仕組みを学ぶことと、それを許された場所でだけ使うことは、いつも対で持ちます。
お疲れさまでした。JWT は、もうあなたにとって「意味のない長い文字列」ではありません。中も、守りも、その綻びも、見えています。
こうなっていればOK
この章で卒業です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。