- 可以在三种摘要首部中提供 qop 字段:WWW-Authenticate、Authorization 和 Authentication-Info。
- 通过 qop 字段,客户端和服务器可以对不同类型及质量的保护进行协商。比如,即便会严重降低传输速度,有些事务可能也要检查报文主体的完整性。
- 服务器首先在 WWW-Authenticate 首部输出由逗号分隔的 qop 选项列表。然后客户端从中选择一个它支持且满足其需求的选项,并将其放在 Authorization 的 qop 字段中回送给服务器。
- qop 字段是可选的,但只是在后向兼容原有 RFC 2069 规范的情况下才是可选的。现代所有的摘要实现都应该支持 qop 选项。
- RFC 2617 定义了两种保护质量的初始值:表示认证的 auth,带有报文完整性保护的认证 auth-int。将来可能还会出现其他 qop 选项。
1. 报文完整性保护
- 如果使用了完整性保护(qop=”auth-int”),H(实体的主体部分)就是对实体主体部分,而不是报文主体部分的散列。
- 对于发送者,要在应用任意传输编码方式之前计算。
- 对于接收者,则应在去除所有传输编码之后计算。
- 注意,对于任何含有多部份的内容类型来说,多部分的边界和每部分中嵌入的首部都要包含在内。
2. 摘要认证首部
- 摘要认证比基本认证多了可选的 Authorization-Info 首部,这个首部是在成功认证之后发送的,用于实现三步握手机制,并传送下一个随机数。
- 下表给出了基本认证和摘要认证的首部:
- 首部的具体指令在 RFC 2617 中有描述。
1. 摘要 WWW-Authenticate 首部的指令
2. 摘要 Authorization 首部的指令