セキュリティ · 認証・認可

JWT を分解する

JWT を分解して、alg 混同や弱鍵の危うさを見ます。対象は自分で作ったトークンだけです。

実習
ブラウザ内で完結
環境構築
重さ 1 / 3
前提
sec-http 修了
倫理
第0章の法と倫理ゲートへの同意が必須です。

読み込み中…

JWT を3つの部品に分解し、デコード・署名・検証の仕組みと、その検証を甘くする実装(alg:none・alg 混同・弱い鍵)の危うさを見ます。触るのは、すべて自分で作ったトークンだけです。

章の一覧

  1. 未完了第0章はじめに — トークンを、開けてみる前にJWTがどこで使われるかと、このコースが自作トークンだけを扱うことを確認します。試食で見た「デコードできる」を出発点に、法と倫理ゲートに同意します。約4分次はここ
  2. 未完了第1章分解する — 3つの部品と、読める中身JWTがヘッダ・ペイロード・署名の3部品からなり、最初の2つはbase64urlエンコードなだけで誰でも読めることを、手元で確かめます。JWTは暗号化ではないと体で理解します。約9分次はここ
  3. 未完了第2章署名と検証 — 改ざんを止めているものnode:crypto でHS256のJWTを自分で作り、検証します。ペイロードを書き換えると検証が落ちること、正しく再署名するには鍵が要ることを、手元で確かめます。約11分次はここ
  4. 未完了第3章危うい実装 — alg:none・alg 混同・弱い鍵署名の検証を甘くする3つの実装を、自作トークンで確かめます。alg:none受理と弱鍵ブルートフォースを実演し、alg混同を原理で理解し、algはサーバが固定・鍵は強く、で直します。約13分次はここ
  5. 未完了第4章まとめ — 読める・止める・甘くなるデコード・署名検証・危うい実装を畳みます。JWTの3つの事実と正しい検証の原則を持って、認証・セッションの全体像へ進みます。約3分次はここ

詰まったときはお助けページへ。章ごとのファイル一式をダウンロードして、途中から再開できます。