无需登录 数据私有 本地保存

JWT 调试器增强版 - 签名验证与有效期检查

65
0
0
0

以下术语与JWT调试器增强版的使用密切相关,理解这些概念将帮助您更好地调试和验证JWT Token。

JWT (JSON Web Token)

一种开放标准(RFC 7519),用于在各方之间安全地传输信息。JWT由三部分组成:Header(头部)、Payload(负载)和Signature(签名),各部分通过点号分隔。JWT广泛应用于身份认证、授权和信息交换场景。

与工具关系:本工具的核心功能就是解码和验证JWT,粘贴Token后即可看到三部分的详细内容。

Header(头部)

JWT的第一部分,包含令牌的元数据信息。通常包含两个字段:"alg"(algorithm)表示签名算法,"typ"(type)表示令牌类型。Header经过Base64URL编码后构成JWT的第一段。

与工具关系:工具会自动解码Header并高亮显示算法类型,帮助您确定使用哪种密钥进行验证。

Payload(负载)

JWT的第二部分,包含Claims(声明)信息。Claims是关于实体(通常是用户)和附加元数据的断言。分为注册Claims(如exp、iat)、公开Claims和私有Claims三类。

与工具关系:工具会以表格形式清晰展示所有Claims,并将时间戳转换为可读格式,方便分析用户信息和权限。

Signature(签名)

JWT的第三部分,用于验证Token的完整性和真实性。签名通过对编码后的Header、编码后的Payload、密钥以及Header中指定的算法进行计算生成。任何对JWT内容的篡改都会导致签名验证失败。

与工具关系:输入正确的密钥后,工具会重新计算签名并与原签名对比,确认Token是否被篡改。

HS256 (HMAC-SHA256)

使用HMAC算法和SHA-256哈希的对称加密签名方式。发送方和接收方共享同一个密钥(Secret),既能验证Token完整性,也能验证发送方身份。适用于同一服务内部的Token签发。

与工具关系:验证HS256 Token时,需要输入与签发方相同的Secret密钥。

RS256 (RSA-SHA256)

使用RSA算法和SHA-256哈希的非对称加密签名方式。签发方使用私钥签名,验证方使用公钥验证。私钥保密,公钥可公开分发。适用于跨服务、跨组织的Token验证场景。

与工具关系:验证RS256 Token时,需要输入RSA公钥(以-----BEGIN PUBLIC KEY-----开头)。

ES256 (ECDSA-SHA256)

使用椭圆曲线数字签名算法(ECDSA)和SHA-256哈希的签名方式。相比RSA,ECDSA在相同安全强度下使用更短的密钥,生成的签名也更小,性能更高。常用于IoT设备和移动端。

与工具关系:验证ES256 Token时,需要输入椭圆曲线公钥(以-----BEGIN PUBLIC KEY-----开头)。

none算法

一种特殊的"签名"方式,表示Token没有签名。这在某些场景下被恶意利用:攻击者修改Header将alg设为none,服务器可能错误地跳过签名验证。这是JWT安全的重大隐患。

与工具关系:工具会检测到none算法并显示安全警告,提醒您检查服务器是否正确处理了这种情况。

exp (Expiration Time)

注册Claim,表示JWT的过期时间。值是Unix时间戳(自1970-01-01 00:00:00 UTC以来的秒数)。Token过期后应被拒绝使用。通常与Refresh Token配合实现Token刷新机制。

与工具关系:工具自动将exp转换为可读时间,并计算剩余有效时间,高亮显示过期状态。

nbf (Not Before)

注册Claim,表示JWT的生效时间(Not Before)。Token在nbf时间之前应被拒绝使用。可用于实现Token的延迟生效或时间窗口控制。

与工具关系:工具显示nbf时间并标注当前Token是否已生效,帮助排查"Token未生效"的错误。

iat (Issued At)

注册Claim,表示JWT的签发时间(Issued At)。记录Token创建的时间点,可用于审计、日志分析和Token有效期计算。与exp结合可得出Token的总有效期。

与工具关系:工具显示签发时间并计算Token已使用时长,帮助分析Token使用情况。

Base64URL编码

JWT使用的编码方式,是Base64编码的URL安全变体。将"+"替换为"-","/"替换为"_",并移除末尾的"="填充符。这样编码后的字符串可以直接在URL中传输,不会引起解析问题。

与工具关系:工具自动处理Base64URL解码,您看到的是解码后的原始JSON内容。