Kerberos网络认证协议深度解析
1. 引言
在开放的网络计算环境中,用户可获取各种信息资源和服务。但服务提供商需确认用户身份,而让用户维护多种加密认证既不现实也不经济,未加密密码传输还易遭受“嗅探”攻击。为解决这些网络安全问题,麻省理工学院(MIT)引入了Kerberos协议,它通过可信第三方在用户和资源服务器之间颁发共享会话密钥。
2. Kerberos概述
2.1 基本概念
- Kerberos是MIT Athena项目的一部分,协议旨在提供强认证,使客户端和服务器能在不安全网络中相互证明身份,认证后还可加密通信,保障隐私和数据完整性。它基于传统加密(私钥加密),PKINIT是Kerberos 5的扩展,增加了公钥认证和一定复杂度。
- 基本Kerberos会话通常从用户登录系统开始,触发客户端进程处理认证请求。客户端进程与三种主体交互:认证服务器(AS)、票据授予服务器(TGS)和应用服务器(S)。AS和TGS组成密钥分发中心(KDC)。
2.2 认证流程
- 用户通过获取“票据授予票据”(TGT)从AS,再向TGS出示TGT获取“服务票据”(ST),用ST向应用服务器认证。TGT有效期可能为一天,可用于从TGS获取多个应用服务器的ST,而单个ST有效期仅几分钟,用于单个应用服务器。
- 认证服务交换在每次登录会话中仅发生一次,用户无需每次启动使用Kerberos的应用都重新登录。委托功能允许服务模拟已认证客户端,减轻用户向多个服务认证的负担。