Page 333 - HTTP权威指南
P. 333
证其是否匹配。如果客户端反过来用客户端随机数对服务器进行质询,就会创建
客户端摘要。服务器可以预先将下一个随机数计算出来,提前将其传递给客户端,
这样下一次客户端就可以预先发送正确的摘要了。
客户端 服务器
(1)服务器产生随机数
WWW-Authenticate(质询Ď
(2)服务器发送域、随机数和算法
(3)从算法集中选择
一个算法。[产生响应
摘要][产生客户端随机数] (4)客户端发送响应摘要
Authorization(响应)
(5)服务器对摘要进行认
[发送算法][发送客户端随机数]
证[产生rspauth摘要][产生
Authentication-Info(信息) 下一个随机数]
(6)服务器发送下一个随机
(7)客户端验证 数[发送客户端rspauth摘要]
rspauth摘要
图 13-2 摘要认证的握手机制
这些信息中很多是可选的,而且有默认值。为了说明问题,图 13-3 对比了基本认证中
发送的报文(参见图 13-3a 至图 13-3d)与简单的摘要认证实例发送的报文(参见图
13-3e 至图 13-3h)。
现在我们来更详细地探讨摘要认证的内部工作原理。
13.2 摘要的计算
摘要认证的核心就是对公共信息、保密信息和有时限的随机值这个组合的单向摘要。
10
现在我们来看看这些摘要是如何计算出来的。摘要计算通常都是简单易懂的。 附
录 F 提供了示例源代码。
13.2.1 摘要算法的输入数据
摘要是根据以下三个组件计算出来的。
• 由单向散列函数 H(d) 和摘要 KD(s,d) 组成的一对函数,其中 s 表示密码,d 表示
数据。
注 10: 但对初学者来说,可选的 RFC 2617 兼容模式以及规范中背景资料的缺乏,使其变得有些复杂。我
们会努力提供一些帮助。
308 | 第 13 章