Kerberos: The Network Authentication Protocol
1 引言
- 0编写目的
针对DataIDE和C70集群中均采用kerberos进行通讯安全认证,为方便日后对kerberos的学习,形成文档。
- 1kerberos简介
Kerberos简单来说就是一个用于安全认证第三方协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的通信,适用于client/server模型,由MIT开发和实现。
- 2Kerberos的神秘之处
它并不要求通信双方所在的网络环境是安全的,即使通信过程中数据被截取或者篡改依然不会影响它的正常工作,它提供的认证是双向的,不仅能保证Server不被错误的Client使用,同时也能保证Client不使用错误的Server。同时Kerberos又严重依赖于时间,时间戳也是Kerberos用来保证通信安全的重要手段,这个一般通过通信双方同时访问同一个时间服务器来实现。Kerberos也能达到单点登录的效果,即当Client通过了Kerberos server的认证后,便可以访问多个Real Server。
2 Kerberos原理浅析
2.1 流程
在实际的应有场景中通常有三个角色,即需要访问服务的Client,提供服务的Application Server,以及提供安全认证的第三方Kerberos服务器KDC(Key Distribution Center)。它们彼此之间的认证、通信的数据流如下图所示,为方便理解,加了一个实体图
- 名词解释
- KDC 全称:key distributed center
作用:整个安全认证过程的票据生成管理服务,包含两个服务AS和TGS
- AS 全称:authentication service
作用:为client生成TGT的服务
- TGS 全称:ticket granting service
作用:为client生成某个服务的ticket
- AD 全称:account database