巨瑜芳
中国矿业大学,江苏 徐州 221000
Kerberos一种为网络通信提供可信第三方服务的面向开放系统的认证机制,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。它通过传统的密码技术执行认证服务的。
Kerberos是由用户,服务器,认证服务器(AS),票据授予服务器(TGS)等组成。整个的Kerberos认证过程中用到两类凭证:票据和识别码来验证用户的身份,两种证书都需加密,但加密的密钥不同。票据用来安全的在认证服务器和用户请求的服务之间传递用户的身份。识别码则是提供用户的信息与票据中的信息进行比较来验证票据中的用户就是他所声称的用户。
Kerberos认证过程可分为3个阶段:
1)客户向认证服务器(AS)发送请求,要求得到某服务器的证书,然后AS将包含访问票据授予服务器的票据以及请求的服务器的标识码时间戳等信息发送给用户作为响应。其中票据是用TGS的公钥加密。
(1)C → AS :IDC‖IDtgs‖TS1
(2)AS → C :EKc[ KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs]
其中 :Tickettgs=EKtgs[ KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2]
2)票据许可服务器的交互,用于获取服务许可票据。用户将请求的服务器的标识以及第一步得到的票据和自己的识别码发送给TGS,TGS验证用户的信息并将用户访问请求服务器的密钥KC,S,以及访问请求服务器的票据发送给用户。
(1)C → TGS :IDS‖Tickettgs‖AUC
(2)TGS → C :EKc,tgs[ KC,S‖IDS‖TS4‖TicketS]
其中:
3)用户持第二步收到的票据向服务器请求服务。整个的验证过程结束。
其中:
其中ID:用户标识,AD:用户网络地址,TS:时间戳,LT:生存时间,Ka:a的私有密钥,Ka,b:a,b的会话密钥。
但是Kerberos认证协议还存在一定的局限性
1) 口令猜测攻击。用户联机时通过用户平台键入口令获得与认证服务器共享的密钥。口令很容易被窃听和截取,入侵者可以记录下联机会话,通过计算密钥分析记录下的会话进行口令猜测攻击。它使用DES作为协议的基础,这就带来了密钥交换存储以及管理的困难,N个用户想同时通信,就需要N*(N-1)/2个密钥,没有提供有效抵御口令猜测攻击的手段,同时还存在钟同步问题。
2)系统程序的安全性、完整性问题。实际上,最严重的攻击是恶意软件攻击。Kerberos认证协议依赖于Kerberos软件的绝对可信,而攻击者可以用执行Kerberos协议和记录用户口令的软件来代替所有用户的Kerberos软件,达到攻击目的。如果装有Kerberos的平台的安全遭到损害,Kerberos的安全性也将部分或全部丧失。
针对以上问题可通过在终端平台加入TPM(TPM是一个含有密码运算部件和存储部件的小型片上的系统,由CPU、存储器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成),使得在平台向AS请求Kerberos认证时,不需要输入用户口令,而是对平台的可信测量值用AIK私钥进行签名,AS通过向可信第三方Privacy–CA验证用户平台的签名,并把平台提供的平台可信性测量值与Kerberos认证系统中保存的该平台的可信测量值比较,若一致,则通过认证,否则拒绝。这样避免了口令猜测攻击,并且保证终端平台的完整性,没有受到恶意软件的攻击。
用TPM增强Kerberos安全性的步骤如下:
首先,建立一个信任根:信任根的可信性由物理安全和管理安全确保。
其次,建立一条信任链:从信任根开始到硬件平台、到BIOS、到操作系统,一级测量认证一级,一级信任一级,从而把这种信任扩展到整个计算机系统。此过程中的日志将会被存储到存储器中,每一步的测量值将会存储到TPM中。最后,把日志及TPM中的各种测量值报告给操作系统(OS),由操作系统综合日志及测量值判断此平台是否符合可信标准,若可信,再把这种信任传递到应用,最后传递到Kerberos认证的网络中。
通过向Kerberos认证中心嵌入TPM,使得通过Kerberos认证的用户平台进入网络时都是可信的,并且加强了Kerberos认证时无条件信任的第三方Kerberos认证中心的安全性。为Kerberos认证协议的广泛应用提供了强有力的技术支持。
[1]曹天杰,张永平,毕方明.计算机系统安全.第2版.高等教育出版社,2009.
[2]文铁华,谷士文.增强Kerberos协议安全性的改进方案2003.
[3]RFC1510-The Kerberos NetWork AuthenticationService(V5).