コース目次 / 第4章

まとめ — 読める・止める・甘くなる

デコード・署名検証・危うい実装を畳みます。JWTの3つの事実と正しい検証の原則を持って、認証・セッションの全体像へ進みます。

第4章 / 全5章目安 約3分この章のゴール: JWTの要点を畳み、認証・セッションのコースへの道筋を持つ

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

この章で卒業です。

この章はまだ完了していません。