自己整理的Kerberos认证原理,Kerberos是Windows的主要认证机制
Kerberos认证原理图
- 认证服务器根据用户名找到用户密码
- 生成一个票据授权票和与客户共享的密码A
- 使用用户的密码将 数据A= [票据授权票+一个共享密码(密码A)] 加密用户获得数据A,输入自己的密码,使用输入的密码来解开数据A,如果密码正确,获得票据授权票和共享密码A.
- 用户使用共享密码A将[用户名+用户IP地址]加密生成一个验证器A.
- 用户需要使用服务器A的服务A,向认证服务器提出索票请求。向认证服务器发送数据B=[验证器+票据授权票+服务A名+用户+用户地址.]
- 认证服务器收到数据,解开票据授权票获得共享密码A,使用密码A解开验证器,认证是否是真实用户。成功以后,认证服务器生成一个服务A的票,并且生成一个与服务A共享的密码B.最后向客户发送数据C=[密码B+服务A的票]
- 用户获得数据B后,使用密码B生成验证器B
- 用户向服务器A发送数据D=[验证器B+服务A的票]
- 服务器A接受数据D,获得服务A的票,并且获得共享密码B,使用密码B解开验证器B
- 使用验证器的用户名和地址核对是否是授权用户,如果是提供服务A
注:由于验证器是不能从用的,所以在短时间内会失效,但是对于票来说是有自己的有效期的,所以用户在获得其他服务的票或者继续使用服务A的时候,都无需再次的输入口令,再次的获得票,可直接使用。由于验证器是会过期的,所以如果有人拷贝数据的话,数据会在短时间内失效,起到安全的作用。
注:票是用服务的密码加密的
用户输入用户名,把用户名传送给认证服务器