用 nonce 避免回放攻击

作者:vkvi 来源:ITPOW(原创) 日期:2009-5-22

nonce [ nɔns ],意为:眼下、当前;只发生一次的、暂时的。

在加密中也有个 nonce,用来避免回放攻击。它通常是基于时间戳或足够大的随机数或伪随机数。

nonce

如上图,客户端先从服务器端获得一个 nonce,然后将密码和 nonce 密码混合起来进行 hash 运算,上图中还加上了客户端创建的 cnonce。服务器端收到 hash 结果后,会根据 nonce、cnonce、服务器端的 password 进行 hash 运算,然后与客户端传上来的 hash 结果进行比较。

在普通的 HTTP 传输中,内容可能会被侦听,但密码和 nonce、cnonce 一起进行了 hash 运算,所以要从其中把密码破解出来极其困难。那么可不可以进行回放攻击呢?由于服务器端收到客户端发来的 hash 结果后,会认定 nonce 不再有效,这个认定可能是基于时间来判断的,也可能是服务器端程序设定的让 nonce 只使用一次,所以侦听者回放时,nonce 不再有效,回放攻击也就失败。

相关阅读

相关文章