跳到主要内容

1. 引言

1. 引言 (Introduction)

JSON Web Signature (JWS) 使用基于 JSON 的 [RFC7159] 数据结构表示由数字签名或消息认证码 (Message Authentication Code, MAC) 保护的内容. JWS 加密机制为任意八位字节序列提供完整性保护. 关于数字签名与 MAC 之间差异的讨论, 见第 10.5 节.

本文定义了两种密切相关的 JWS 序列化形式. JWS Compact Serialization 是一种紧凑且 URL 安全的表示形式, 面向空间受限的环境, 例如 HTTP Authorization 头部和 URI 查询参数. JWS JSON Serialization 将 JWS 表示为 JSON 对象, 并允许对同一内容应用多个签名和/或 MAC. 两者共享相同的密码学基础.

与本规范一起使用的加密算法和标识符在单独的 JSON Web Algorithms (JWA) [JWA] 规范以及该规范定义的 IANA 注册表中描述. 相关的加密能力在单独的 JSON Web Encryption (JWE) [JWE] 规范中描述.

本规范定义的名称都很短, 因为其核心目标之一是使生成的表示形式保持紧凑.

1.1 记法约定 (Notational Conventions)

本文中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" 和 "OPTIONAL" 应按 "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119] 中的描述解释. 只有当这些术语全部以大写字母出现时, 才应采用该解释.

BASE64URL(OCTETS) 表示按第 2 节定义对 OCTETS 进行 base64url 编码的结果.

UTF8(STRING) 表示 STRING 的 UTF-8 [RFC3629] 表示形式中的八位字节, 其中 STRING 是由零个或多个 Unicode [UNICODE] 字符组成的序列.

ASCII(STRING) 表示 STRING 的 ASCII [RFC20] 表示形式中的八位字节, 其中 STRING 是由零个或多个 ASCII 字符组成的序列.

两个值 A 和 B 的拼接表示为 A || B.