简介
Kerberos是不依赖信道安全的,但需要有一个公认可信赖的第三方的网络认证协议。可用于防止窃听、防止重放、保护数据完整性等场合。它在很多登录鉴权场景上被使用。
关键字
- Authentication Server 认证服务器(AS)
- Ticket Granting Server 票据授权服务器(TGS)
- 大大票:客户端加密组装的包含自身身份信息的票据,一般是用户密码的变形。
- 大票:AS验证大大票合法后,派发的票据。
- 小票:TGS验证大票合法后,派发的具体业务票据。AppSvr验证小票通过后,AppClient才能访问AppSvr。
举个栗子
- AS(出入境管理中心)
- TGS(旅游局代办签证中心)
- 大大票(身份证户口本)
- 大票(护照)
- 小票(签证)
小青青想到A国旅游,拿身份证户口本(大大票)到AS。
AS认证小青青是合法的中国公民,无不良记录,给小青青派发了护照(大票)。
小青青拿着护照到TGS。
TGT认证护照是AS派发的合法护照,给小青青派发了A国的签证(小票)。
小青青拿着签证到A国(AppSvr)。
A国认证签证是TGS派发的合法签证,给小青青的签证盖了个章。
小青青看了下签证盖章,确认是和签证中心相匹配的盖章,确认A国是真的(这一步是客户端验证服务器的合法性,比较少遇到)
小青青过关,进入A国,开始旅行。
过了1年,小青青想到B国旅游,又拿护照到TGS办B国签证。
TGS检查护照是真的,且没有过期,且B国允许中国公民前往,就给小青青派发了B国签证。
其它同上。
又过了N年,小青青想到C国旅游,拿护照到TGT办C国签证。
TGS检查护照是真的,但是过期了,退给小青青。(大票是会过期的,通过time字段)
小青青被告知护照过期了,需要拿身份证户口本到AS重新办本护照。
小青青已经很熟悉流程了,拿着护照办了签证。
小青青突然被通知去出差。
小青青出差回来,拿着B国签证去B国。
B国确认签证是真的,但是过期了,退给小青青;(小票是会过期的)。
小青青被告知签证过期了,只好拿着护照重新去TGS办理签证。
其它同上。
具体流程
Kerberos通过随机生成密钥,加密传递密钥,承上启下使用新老密钥的方式来保证通信安全,有效防止监听和重放。具体如下图:
缺点
- 参与通信的主机的时间需要同步
- 需要一个值得信赖的第三方介入
- AS存储了所有用户的密码,AS的安全关呼用户密码的安全;(存储安全)
参考资料
https://www.zhihu.com/question/22177404
http://blog.csdn.net/b2222505/article/details/79519683
http://blog.csdn.net/b2222505/article/details/72872202