挑战应答认证机制

我又回来了,最近写疫情数据可视化有些上头。
这篇博客内容不多,把《Kerberos认证协议》更新了一下,然后看到一句话“每当有想学习的念头,都有可能是未来的你在向你求救”,哇哇哇震撼了!
今天老师上课提了“挑战应答”,我感觉这个名词挺熟悉的,但一下子想不起来到底是干啥的。

简单来说就是在该认证机制中,客户端向服务器端发起认证请求,认证者(服务器)每次向被认证者(客户端)发送一个不同的“挑战”字串,客户端收到这个“挑战”字串后,按照双方事先协商好的方法应答,回答得到,挑战成功。
过程比如:

  1. 客户向认证服务器发出请求,要求进行身份认证;
  2. 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步处理;
  3. 认证服务器内部产生一个随机数,作为”提问”,发送给客户;
  4. 客户将用户口令和随机数合并,使用单向Hash函数(例如MD5算法)生成一个字节串作为应答;
  5. 认证服务器将应答串与自己的计算结果比较,若二者相同,则通过一次认证;否则,认证失败;
  6. 认证服务器通知客户认证成功或失败

比如我们在设置密保问题然后之后找回密码时是这样的。