阻止重放攻击(replay attack)

利用口令摘要传输用户名和密码虽然可以避免密码被看到,但是阻止不了重放攻击,
应该增加一些随机性或不可预测性,下面介绍这种方法:

一、用户登录时只发送用户名到服务器;
二、服务器检测用户名,如果存在该用户名则生成一个随机挑战(伪随机数生成)然后以明文发送给客户端;
三、客户端接收随机挑战,输入口令并在本地生成口令摘要,然后用口令摘要加密随机挑战(使用对称加密,密钥即是口令摘要),然后发送用户名和加密后的随机挑战给服务器;
四、服务器根据用户名从数据库检索口令摘要,并用它加密之前发送给客户端的随即挑战,如果客户端发送的随机挑战等于服务器加密的随机挑战,则可以判断是用户登录。

猜你喜欢

转载自blog.csdn.net/weixin_42002747/article/details/103642752