nonce与时间戳

nonce是为了防止重放攻击产生的。nonce是服务器产生的随机数,当客户端第一次发出请求时,获取nonce,将其与原文一起进行加密,进行发送。服务器使用同样的算法进行加密,与客户端发送过来的密文进行对比,若用户名一样则证明消息的有效性。若发现该nonce在数据库中已经存在,则该请求可能为恶意请求。

但是由于nonce是随机产生的,所以可能会存在重复,针对此情况,出现了时间戳。

时间戳是服务器根据当前的时间产生的一个字符串。时间戳与nonce一起使用,这样,即使产生的nonce随机相同,但是由于时间不同,产生的字符串也不相同。时间戳要求通信系统中双方具有同步时钟。

但是随着时间的增加,数据库中的存储的数据会非常多,因此需要设置一个“过期时间”。但是若设置过期时间为一天,则攻击者可以将截获的消息在第二天再发送,这样此时的时间戳已经从数据库中清理,则会被认为是有效的。

发布了36 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/GJ_007/article/details/103016192