1. Introduction (简介)
JSON Web Signature (JWS) 使用基于JSON的 [RFC7159] 数据结构表示使用数字签名 (Digital Signatures) 或消息认证码 (Message Authentication Codes, MACs) 保护的内容. JWS加密机制为任意八位字节序列提供完整性保护 (Integrity Protection). 有关数字签名和MAC之间差异的讨论,请参见第10.5节.
为JWS定义了两种密切相关的序列化方式. JWS紧凑序列化 (JWS Compact Serialization) 是一种紧凑的、URL安全的表示形式,适用于空间受限的环境,例如HTTP Authorization头部和URI查询参数. JWS JSON序列化 (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" (可选) 应按照"RFC中用于指示需求级别的关键词" [RFC2119] 中的描述进行解释. 这种解释仅在这些术语以全大写字母形式出现时适用.
BASE64URL(OCTETS) 表示对OCTETS的base64url编码,按照第2节的规定.
UTF8(STRING) 表示STRING的UTF-8 [RFC3629] 表示的八位字节 (Octets),其中STRING是零个或多个Unicode [UNICODE] 字符的序列.
ASCII(STRING) 表示STRING的ASCII [RFC20] 表示的八位字节,其中STRING是零个或多个ASCII字符的序列.
两个值A和B的连接表示为 A || B.