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. 05通过 JWK Sets 轮换密钥
  6. 06构建认证中间件

适用场景

  1. 01为 Web 应用实现 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 安全的令牌,用于 Web 应用中的身份验证和授权。本技能涵盖使用 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 密钥轮换正常工作
  • 声明校验会强制要求所有必需的声明

评论

支持 Markdown