mcpField
I
implementing-jwt-signing-and-verification

implementing-jwt-signing-and-verification

github.com/mukul975セキュリティ35.2k243 回インストール8 週間前に更新
リポジトリ

implementing-jwt-signing-and-verification について

開発者やセキュリティ評価担当者向けの、JWT署名と検証を実装するスキルです。複数のアルゴリズム、クレーム検証、鍵のローテーションと一般的な攻撃への対策を扱います。

主な機能

  1. 01複数アルゴリズムでのJWT署名
  2. 02署名と標準クレームの検証
  3. 03有効期限とオーディエンスの確認
  4. 04アルゴリズム混同とnone攻撃への対策
  5. 05JWK Setsによる鍵ローテーション
  6. 06認証ミドルウェアの構築

活用シーン

  1. 01WebアプリケーションのJWT認証実装
  2. 02改ざん済みまたは期限切れトークンの拒否
  3. 03分散システムの鍵ローテーション設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill implementing-jwt-signing-and-verification

インストール後、Claude Code で/implementing-jwt-signing-and-verificationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

詳細

JWT の署名と検証の実装

概要

RFC 7519 で定義されている JSON Web Token(JWT)は、ウェブアプリケーションでの認証と認可に使用される、コンパクトで URL セーフなトークンです。このスキルでは、HMAC-SHA256、RSA-PSS、EdDSA アルゴリズムを使用した安全な JWT 署名の実装に加え、検証、トークンの有効期限、クレームの検証、および一般的な JWT 攻撃(アルゴリズムの混同、none アルゴリズム、鍵のインジェクション)への防御を扱います。

使用する場面

  • 環境に JWT の署名と検証機能を実装、デプロイ、または設定するとき
  • コンプライアンス要件に沿ったセキュリティ制御を確立するとき
  • この領域のセキュリティアーキテクチャを構築または改善するとき
  • この実装を必要とするセキュリティ評価を実施するとき

前提条件

  • 暗号技術の概念とツールに関する知識
  • 安全に実行できるテスト環境またはラボ環境へのアクセス
  • 必要な依存関係をインストール済みの Python 3.8 以降
  • テスト活動に必要な適切な許可

目標

  • HS256、RS256、ES256、EdDSA による JWT 署名を実装する
  • JWT 署名を検証し、標準クレームを検証する
  • トークンの有効期限、not-before、有効対象の検証を実装する
  • アルゴリズムの混同攻撃と none アルゴリズム攻撃を防御する
  • JWK Set を使用した JWT 鍵のローテーションを実装する
  • 完全な認証ミドルウェアを構築する

主な概念

JWT アルゴリズム
アルゴリズム種類鍵セキュリティレベル
HS256対称(HMAC)共有シークレット128 ビット
RS256非対称(RSA)RSA 鍵ペア112 ビット
ES256非対称(ECDSA)P-256 鍵ペア128 ビット
EdDSA非対称(Ed25519)Ed25519 鍵ペア128 ビット
一般的な JWT 攻撃
  • アルゴリズムの混同:RS256 から HS256 に切り替え、公開鍵を HMAC シークレットとして使用する
  • none アルゴリズム:署名検証を回避するために alg=none を設定する
  • 鍵のインジェクション:JWK ヘッダーに鍵を埋め込む
  • 弱いシークレット:短い HMAC シークレットを総当たりで解読する
  • トークンのリプレイ:有効期限のない有効なトークンを再利用する

セキュリティに関する考慮事項

  • アルゴリズムヘッダーは必ず許可リストと照合して検証してください
  • 本番環境では alg=none を決して受け入れないでください
  • 分散システムでは非対称アルゴリズム(RS256、ES256)を使用してください
  • 有効期限を短く設定してください(アクセストークンは 15 分)
  • トークンの更新メカニズムを実装してください
  • シークレットは安全に保管してください(ソースコード内には保管しないでください)

検証基準

  • JWT の署名により、すべてのアルゴリズムで有効なトークンが生成される
  • 署名検証により、改ざんされたトークンが拒否される
  • 有効期限切れのトークンが拒否される
  • アルゴリズムの混同攻撃が防止される
  • none アルゴリズムが拒否される
  • JWK 鍵のローテーションが正しく機能する
  • クレーム検証により、必須クレームがすべて強制される

コメント