跳到主要内容
ecdsa.com

PASETO(平台无关的安全令牌)

一种令牌格式,旨在成为比 JOSE 更简单的替代方案,用版本化协议取代可协商的算法:v4.public 令牌使用 Ed25519 签名,v4.local 令牌使用 XChaCha20 加密并以带密钥的 BLAKE2b 认证。
其他写法PASETOPlatform-Agnostic SEcurity TOkensv4.publicv4.localPASERK

令牌的形式是 version.purpose.payload,可选附加 .footer,例如 v4.public.…。每个版本都固定了自己的密码算法:v3 使用 NIST 算法(public 令牌用 ECDSA P-384;local 令牌用 AES-256-CTR 配合 HMAC-SHA384),v4 使用 Ed25519 以及 XChaCha20 配合 BLAKE2b-MAC。预认证编码(PAE)把头部、载荷、页脚和可选的隐式断言(参与认证但不传输的上下文,例如租户 ID)绑定在一起,作为签名或 MAC 计算的输入。

没有可被滥用的 alg 头部,也没有 none;版本和用途前缀还能防止 local 密钥被用于 public 令牌。密钥用 PASERK 序列化(k4.public…、k4.local…)。载荷使用 JWT 风格的注册声明(exp、iss、aud,以 ISO 8601 时间或普通字符串表示)。

PASETO 不是 IETF 标准(规范位于 github.com/paseto-standard/paseto-spec),其库、工具链和身份提供商支持都不如 JWT 丰富。按照 RFC 8725 固定算法来验证的 JWT,能提供大部分相同的安全性。PASETO 解码器在本地解析令牌。

标准与参考资料

全部术语