设想:
Web 服务生产者只有密码的 SHA-1 哈希值存储在数据库中。我们需要使用用户名/密码组合来验证 Web 服务用户。
Web 服务安全用户名令牌配置文件允许我们为此添加soap 标头:
WSS: SOAP Message Security 文档中引入了该元素,作为提供用户名的一种方式。
在元素内,可以指定一个元素。PasswordText 和 PasswordDigest 类型的密码不限于实际密码,尽管这是一种常见情况。 (146-151)
PasswordText 密码类型意味着密码以纯文本形式通过网络发送,如果我们不使用传输级安全机制,这是一个安全问题。PasswordDigest 避免发送纯文本密码并发送哈希。但是为了避免重放攻击(即攻击者使用窃听来捕获散列密码并通过另一个请求重新发送),PasswordDigest 在计算散列之前为密码添加时间戳和随机数。此添加导致以下限制:
请注意,只有在请求者和接收者都可以使用纯文本密码(或等效密码)时,才能使用 PasswordDigest。(196-197)
但在我们的例子中,我们没有纯文本密码。我的问题是:我们还有什么替代方法可以在服务器上提供纯文本密码?