网络层Kerberos身份认证方案
2015年3月17日 15:37 作者:周振波 吉林化工学院 信息中心 吉林吉林周振波 吉林化工学院 信息中心 吉林吉林 132022
【文章摘要】
Kerberos 是IETF 发布的一种身份认证标准协议,目前最新的版本是V5。它采用对称密钥方案,该协议应用非常广泛,特别是在Windows 系统中,包括Windows 系统的内部网络登录目前也主要采用的是Kerberos 协议。Kerberos 认证协议主要是在系统层中得到广泛的应用,本文将全面系统地介绍这种得到广泛应用的身份认证协议的工作原理以及协议体系结构。
【关键词】
身份认证机制;物理结构;交换消息; 身份认证的启用和策略配置
身份认证是系统安全的一个基础方面,它用来确认尝试登录域或访问网络资源的任何用户的身份。Kerberos 可用来为网络上的各种服务器提供认证服务,使得口令不再是以明文方式在网络上传输,并且连接之间的通信时加密的。Kerberos 是对称加密机制,它运行在独立于任何客户机或服务器的服务器之上。对称式加密机制的定义为加密与解密时使用的是相同secret key,非对称加密机制中加密与解密时使用的是不同的secret key。对称加密机制中的密钥必须在事前透过其他的安全管道来交换,唯有在通信双方共享密钥的条件下,才能进行对称式密钥的认证。无论使用何种网络系统,网管人员需要以网络以外的安全途径告知新使用者的账号和密码,使用者才能使用此账号和密码来登入网络进行认证。
Kerberos 身份认证机制主要体现在其用于访问网络服务的票证,其中包含认证符,经过加密的数据,同时包括加密的密码。除了输入密码或智能卡凭据外,整个身份认证过程对用户都是不可见的。Kerberos 中一项重要服务是密钥分布中心,它是作为通信双方信任的第三方,身份认证的任务就是由它负责的。Kerberos 中主要有两类密钥,即长期密钥和短期密钥。长期密钥通常是指密码,一般来说不会经常更改密码;短期密钥一般是指具体会话过程中使用的会话密码。长期密钥可能长期内保持不变,其使用是有原则的,那就是被长期密钥加密的数据不应该在网络上传输,原因很简单,一旦这些被长期密钥加密的数据包被恶意的网络监听者截获,则黑客就可能通过计算获得你用于加密的长期密钥,因为任何加密算法都不可能做到绝对保密。另一种短效密钥来加密需要进行网络传输的数据,由于这种密钥只在一段时间内有效,即使加密的数据包被黑客截获,等他把Key 计算出来的时候,这个Key 早就已经过期了,相对来说安全很多。
票证是Kerberos 身份认证的主要组成部分,Kerberos 消息用来请求和释放票证。在其身份认证中包括两种类型的票证,票证许可票证TGT 和服务器票证ST。TGT 是指密钥分发中心KDC 在接收到请求后提供身份认证服务,验证请求者是否有资格获取票证。ST 是指KDC 在接收到请求后提供票证许可服务,验证请求者是否有访问对应服务或服务器的资格。票证请求内容包括以下两个即请求属性,如票据证是否可更新的和请求加密和方法。KDC 仅简单提供票证许可服务,但它不保证信息准确到达目标地址。即使KDC 消息进行了错误的质询,也没有任何影响,仅知道客户端密钥的人才能可以解密客户端会话密钥副本,知道服务器密钥的人可以读取票证中的信息。服务器并不存储与客户端通信的会话密钥,会话密钥是由客户端在其凭证缓存中为服务器管理的,而且在每次需要访问服务器时,都是以会话密钥向服务器提供票证,当服务器接收到来自客户端的服务票证时,服务器可以使用KDC 与服务器共享的密钥来解密票证, 取出会话密钥,当服务器不再需要会话密钥时,则可以丢弃它。客户端不需要在每次访问同一个服务器时返回去向KDC 索要票证,因为服务票证可以重复使用。为了预防有人非法复制票证,KDC 会在票证的数据结构中为服务票证设定有效期限。票证的有效期是多长,要视领域中的策略设置而定,尽管RFC 建议最大的票证有效期为一天,但在有些系统的Kerberos 协议功能中,默认的最长票证时间是十个小时,满足了最普通的单次登录时间长度,因为当用户注销登录后,凭证缓存中就会自动清除所有与之有关的票证,包括会话密钥。客户端/ 服务器身份认证交换包括应用服务器请求和应用服务器响应两条消息。在客户端已经请示并且从AS 中接收到了TGT,请求并从TGS 中接收到了服务器票证后,客户端准备发送这个服务票证给目标服务器,如果目标服务器需要用户到用户身份认证,则原来的服务票证连同目标服务器的TGT 一起被拒收,客户端将发送新的一条客户端和目标服务器共享的会话密钥加密的认证符(KRB_ AP_REQ)消息来包含目标服务器的TGT, 并请求一个新的服务票证,并用包括目标服务器的TGT 的会话密钥加密,替代原来用来加密的目标服务器的保密密钥。应用服务器响应这条消息是可选的,仅在需要进行相互身份认证时发送,如果被请求了,则目标服务器将从认证符中取出客户端计算机时间戳,并用TGS 为客户端和目标服务器消息中提供的会话密钥进行加密,然后发送到客户端。大多数Windows 服务是需要相互身份认证的。
发送相互身份认证消息的目的就是为了使客户端验证服务器身份。相互身份认证过程如下:服务器通过KRB_AP_ REQ 消息接收服务票证和认证符;服务器使用它的保密密钥解密票证;服务器从票证中找回会话密钥;服务器用会话密钥解密认证符;服务器从认证符中解密客户端时间戳;服务器创建相互身份认证信息,包括客户端时间戳,并用会话密钥加密这个消息,然后以KRB_AS_REP 消息形式发送给客户端;客户端用会话密钥解密消息,把消息中的时间戳与自己原来所发送的应用服务器请求消息中的时间戳进行比较,如果一致,则认为服务器是真实的,并开始对服务器的访问。
Kerberos V5 身份认证协议在安装期间为所有加入Windows Server 2003 或Windows 2000 域的计算机默认启用。Kerberos 对域内的资源和驻留在受信任的域中的资源提供单一登录,所以一般不需要手动启用Kerberos 策略,除非在此之前你手动禁用了Kerberos 策略。可通过那些作为账户策略一部分的Kerberos 安全设置来控制Kerberos 配置的某些方面。作为管理员可以使用默认的Kerberos 策略,也可以更改它以适应环境的需要。使用Kerberos V5 进行成功的身份认证要求客户端和服务器计算机都必须运行Windows 2000、Windows Server2003 家族或Windows XP Professional 操作系统。如果客户端系统尝试向运行其他版本的Windows 操作系统的服务器进行身份认证,那么将使用NTLM 协议作为身份认证机制。使用Kerberos 进行身份认证的计算机必须使其时间设置在5 分钟内与常规时间服务同步,否则身份认证失败。运行Windows 2000、Windows Server2003 家族或Windows XP Professional 的计算机将使用域控制器作为网络时间服务来自动更新当前时间。Kerberos 策略用于域用户账户,不存在于本地计算机策略中,主要包括强制用户登录限制,服务票证最长寿命,用户票证最长寿命,用户票证续订最长寿命,计算机时钟同步的最大容差。
【参考文献】
[1] 王达. 网络工程师必读. 网络安全系统设计. 北京:电子工业出版社
[2] 刘晓辉. 网络设备规划配置与管理大全第2 版. 北京:电子工业出版社
【作者简介】
周振波,1970.10, 男, 吉林省磐石市 汉族, 研究生 高级实验师 ,工作单位:吉林化工学院信息中心 研究方向:计算机网络, 多媒体教学。067