Kerberos 认证协议的分析与改进.doc_第1页
Kerberos 认证协议的分析与改进.doc_第2页
Kerberos 认证协议的分析与改进.doc_第3页
Kerberos 认证协议的分析与改进.doc_第4页
Kerberos 认证协议的分析与改进.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品论文kerberos 认证协议的分析与改进卓见,孙斌(北京邮电大学信息安全中心,北京 100876)5摘要:kerberos 是一个研究较多、应用广泛且较成熟的身份认证协议;但是它也存在着一些 局限性和缺陷。本文首先阐述 kerberos 认证流程,并分析该协议存在的安全缺陷。介绍了pki 和 usbkey 双因子认证技术,最后提出通过 pki 和 usbkey 双因子认证技术改善基于kerberos 认证协议的认证系统。改进后的 kerberos 认证协议保证了原 kerberos 协议的优点10的同时有效地解决了时间同步、密钥管理、口令猜测和重放攻击等安全问题。关键词:kerberos;usbkey;pki;认证协议;对称密码体制中图分类号:tp393analysis and improvement of the kerberos authentication15protocolzhuo jian, sun bin(information security centre, beijing university of posts and telecommunications, beijing100876)abstract: kerberos protocol is the most important practical authentication protocol which is20wildly researched and used, but it also has some limitations and shortcomings. this paper begins by describing the kerberos authentication process, and analyzes the safety defects of theprotocol.then the paper brifely introduces the pki and usbkey two-factor authentication technology,through the use of pki and usbkey two-factor authentication technology to improve the kerberos authentication protocol based authentication system.the improved kerberos25authentication protocol not only ensure the advantages of the original kerberos protocol but alse solve the problem of time synchronization, key management, password guessing and replay attacks and other security issues.key words: kerberos; usbkey; pki; authentication protocol; symmetric key cryptosystem300引言kerberos 协议1 2以希腊神话中的条凶猛的三头保卫神犬 kerberos 命名,kerberos 到目 前为止共有 5 个版本,其中 1、2、3 版为实验版;在 1980 年末发布了 steve miller 和 clifford neumann 设计的 kerberos 版本 4;在 1993 年发布了 john kohl 和 clifford neumann 设计的 kerberos 版本 5;于 2005 年 7 月麻省理工学院(mit)就 kerberos v5 协议推出了改进的35kerberos 协议规范。kerberos 身份验证方案适用于存在攻击、窃取、破坏等开放的不安全的 网络中,是一种 c/s 结构的可结合多种身份验证技术为一体的身份验证方案。在云计算、物 联网、4g 时代以及无线终端设备(例如,手机、pad 等)广泛普及的无线网络新兴时代, kerberos 身份验证有着更加广阔的应用场景。kerberos 是一个研究较多、应用广泛且较成熟 的身份认证协议;但是它也存在着一些局限性和缺陷。本文首先阐述 kerberos 认证流程,40并分析该协议存在的安全缺陷。介绍了 pki 和 usbkey 双因子认证技术,最后提出通过 pki 和 usbkey 双因子认证技术改善基于 kerberos 认证协议的认证系统。改进后的 kerberos 认 证协议保证了原 kerberos 协议的优点的同时有效地解决了时间同步、密钥管理、口令猜测作者简介:卓见(1987-),女,硕士研究生,主要研究方向:信息安全通信联系人:孙斌(1967-),女,副教授,主要研究方向:多媒体通信与网络安全. e-mail: - 8 -和重放攻击等安全问题。451kerberos 协议介绍1.1kerberos 模型kerberos 认证模型3包含四个实体,如图 1 所示:(1)client:用户终端;(2)server:业务服务器;50(3)as:认证服务器;(4)tgs:票据发放服务器。kdc(key distribution center) :密钥分配中心,它由 as 和 tgs 组成的,用来提供会 话密钥以及票据。tgsc_tgs_reqc_tgs_repc_as_reqasc_as_repclientc_s_reqc_s_repserver55图 1. kerberos 认证流程figure 1. authentication process of the kerberos protocol四个实体及实体间的密钥:(1)kc:用户终端 client 的密钥;60(2)ks:业务服务器 server 的密钥;(3)kas:认证服务器 as 的密钥;(4)ktgs:票据发放服务器 tgs 的密钥。(5)kc.tgs:用户终端 client 和票据发放服务器 tgs 共享的会话密钥。(6)kc.s:用户终端 client 和业务服务器 server 共享的会话密钥。65如图 1 所示,kerberos 协议4认证过程由以下六个步骤组成:(1)c_as_req:c,tgs,timestamp,ip用户终端 client 向认证服务器 as 以明文方式发送消息,申请对票据发放服务器 tgs的访问请求。该明文消息中含有用户终端 client 的身份信息。(2)c_as_rep:kc.tgs,tc.tgskc70认证服务器 as 收到用户终端 client 请求消息,密钥分发中心 kdc 数据库4验证用户终端 client 的身份,认证服务器 as 本身就是一个密钥分发中心 kdc,验证通过后认证服 务器 as 随机产生的用户终端 client 与票据发放 tgs 间会话密钥为 kc.tgs 和发送给 tgs 的 认证票据 tgt,该消息用用户终端 client 的密钥 kc 加密。其中 tc.tgs 为tgs,c,timestamp,ip, lifetime,kc.tgsktgs。用户终端 client 接收到认证服务器 as 的回复,用用户终端的密钥 kc75解密报文得到用户终端 client 和票据发放服务器 tgs 之间的会话密钥 kc.tgs 和票据 tc.tgs, 但是用户终端 client 是无法获知该票据对应的明文内容的。(3)c_tgs_req:s,tc.tgsktgs,ac.tgs用户终端 client 向票据发放服务器 tgs 发送访问应用服务器 s 的请求,其中认证符ac.tgs 为c,timestamp,ipkc.tgs,票据发放服务器 tgs 接收到该消息用自己的密钥 ktgs80进行解密,获取与用户终端 client 的会话密钥 kc.tgs。票据发放服务器 tgs 用 kc.tgs 解密 认证符 ac.tgs,然后对比,这样就能验证票据发放服务器 tgt 真实性。(4)c_tgs_rep:kc.s,tc.skc.tgs票据发放服务器 tgs 验证用户终端 client 身份通过后,票据发放服务器 tgs 随机产生 与业务服务器 s 之间的会话密钥 kc.s 和访问业务服务器 s 的票据 tc.s,并用会话密钥 kc.tgs85加密发送给用户终端 client。其中 tc.s=s,c,timestamp,ip,lifetime,kc.sks。用户终端 client 接收到票据发放服务器tgs 的应答消息,用会话密钥 kc.tgs 进行解密操作得到票据 tc.s 和共享密钥 kc.s。(5)c_s_req:s,tc.s,ac.s9095100认证符 ac.s 为c,addr,timestampkc.s。业务服务器 s 接收到该消息,用自身的密钥ks 对票据 tc.s 解密获取共享密钥 kc.s 等消息,再用刚获取的 kc.s 对验证符 ac.s 解密;再 将票据 tc.s,认证符 ac.s 解密的消息一一对比,用来确认票据 tc.s 的实际持有者用户终端 c 与票据 tc.s 的发送者为同一实体。这样用户终端 client 的就身份就被验证成功。(6)c_s_rep:timestamp+1kc.s业务服务器 s 对用户终端 client 的身份合法性进行验证以后,时间戳 timetamp 加上 1 用共享密钥 kc.s 加密后发送给用户终端 client。用户终端 client 收到消息用共享密钥 kc.s 解密,对新的时间戳 timestamp 进行验证,对业务服务器 s 的认证是通过时间戳 timestamp 的有效性。1.2kerberos 协议的缺陷分析kerberos 协议能提供身份认证和数据保密性,但它具有局限性;kerberos 认证协议的局 限性,主要表现在以下几个方面:(1)重放攻击:在 kerberos 认证方案中,引入了时间戳 timestamp 来对重放攻击进行遏止,但是票据有生命周期 lifetime,在其生命周期的有效时间内仍然可以使用。如果收到消息的 时间是在规定允许的范围之内,那么就认为该消息具有新鲜性。但是,在得到许可证后的攻 击者可以发送伪造的消息,这样的话,在允许的时间内是很难发现的。105110115(2)口令猜测攻击:原始 kerberos 认证方案采用对称密钥加密方式,这种密钥加密方式具有局限性。当 client 向 as 发送请求报文,以获取访问 tgs 的票据时;as 发往客户终端 client 的消息是由用户终端 client 产生的密钥 kc 来加密的。采用单向 hash 函数对 client 口 令进行加密后得到的是客户的密钥,这样一来,攻击者完全可以对大量的票据信息进行收集, 通过计算和密钥分析方式进行口令猜测。(3)密钥存储问题:kerberos 认证中心要存储大量的共享密钥,对密钥进行管理和更新都 有很大的难度,为此将付出极大的系统代价来保障整个系统安全。(4)时间同步缺陷:kerberos 协议要求是基于网络中时钟同步,要实现大型分布式系统的 时间同步很困难5。2pki 与 usbkey 技术2.1usbkey 双因子身份认证120125130135usbkey 从智能卡技术上发展而来,是结合了密码学技术、智能卡技术和 usb 技术的新一代身份认证产品。usbkey 的内嵌芯片和芯片操作系统(cos)需要提供私钥的生成、安 全存储和公钥密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,usbkey 成为数字证书和签名私钥的安全载体。由于数字证书包括证书拥有者的个人信息、证书拥有 者的公钥、公钥的有效期、颁发数字证书的 ca、ca 的数字签名等,所以网上双方经过相 互验证数字证书后,即可确认对方身份的合法性。在进行数字签名时,用来签名的私钥在 key 中产生并保存在 key 中,任何情况不能读出,签名的过程在 key 中完成,比传统方式 下在主机端用私钥实现签名更安全可靠。每一个 usbkey 都具有硬件 pin 码保护,pin 码和硬件构成了用户使用 usbkey 的两 个必要因素。即所谓双因子认证,用户只有同时取得保存了相关认证信息的 usbkey 和用 户 pin 码,才可以登录系统6。即使用户的 pin 码被泄漏,只要用户持有的 usbkey 不被 盗取,合法用户的身份就不会被仿冒;如果用户的 usb key 遗失,拾到者由于不知道用户 pin 码,也无法仿冒合法用户的身份。2.2pki 公开密钥体系pki(public key infrastructure)即公开密钥体系7,是一种遵循既定标准的密钥管理平台, 能够为网络应用透明地提供采用加密和数字签名等密码服务所需要的密钥和证书管理体系。 pki 提供了四种主要的安全功能:保密性,保证信息的私有性;完整性,保证信息没有被篡 改;真实性,证明一个人或一个应用的身份;不可否认性,保证信息不能被否认。pki 最 主要的任务就是确立可信任的数字身份,而这些身份可以被用来和密码机制相结合,提供认 证、授权或者数字签名验证等服务,这些服务的用户可以在相当程度上确信自己没有被误导。140145这个可信任的数字身份通过公钥证书来实现,公钥证书(x.509 证书)8是用户身份和他所 持有的公钥的结合。首先,由一个可信任的权威机构 ca 来证实用户的身份,然后该 ca 对用户身份和公钥的散列值进行数字签名,以证明该公钥的确属于该用户。一个实用的 pki体系必须充分考虑互操作性和可扩展性。它所包含的认证机构(certificate authority,ca)、 注册机构(registration authority,ra)、密钥(key)与证书(certificate)管理、密钥备 份及恢复、撤销系统等功能模块应该有机地结合在一起。ca 中心,又称为数字证书认证中 心,在 pki 体系中,认证中心 ca 是整个 pki 体系中各方都承认的一个值得信赖的公正的 第三方机构,专门解决公钥体系中公钥的合法性问题。ca 的主要功能是签发证书和管理证 书。具体包括用户注册、证书签发、证书撤销、密钥恢复、密钥更新、证书使用和安全管理 等。3运用pki和usbkey技术改进kerberos认证协议3.1 改进后 kerberos 认证模型150如图 2 所示,改进后的认证协议有五个实体:(1)client:用户终端,用 usbkey 保存用户数字证书的公私密钥对。(2)server:业务服务器。(3)ca:证书认证中心,采用 pki 公钥基础设施。(4)as:认证服务器。(5)tgs:票据发放服务器。ascaclienttgsserver155160图 2. 改造后的 kerberos 认证实体figure 2. authentication entity of the kerberos protocol after modification改进后的认证协议实体间的共享密钥:(1)kc.as: client 和 as 的共享密钥。(2)kc.tgs:client 和 tgs 的共享密钥。(3)kc.s:client 和 server 的共享密钥。实体的公私钥表示:(1)client 的公私钥分别为 pubkc 和 prvkc。(2)as 的公私钥分别为 pubkas 和 prvkas。(3)server 的公私钥分别为 pubks 和 prvks。165(4)tgs 的公私钥分别为 pubktgs 和 prvktgs。(5)nonce 为不重数,即不重复使用的大随机数。3.2 改进后 kerberos 认证流程改进后的 kerberos 认证协议,具体认证流程如图 3 所示:tgs(3)c_tgs_req (4)c_tgs_rep(1)c_as_reqas(2)c_as_repclient(5)c_s_req(6)c_s_repserver170175180185190ca图 3. 改造后的 kerberos 认证流程figure 3. authentication process of the kerberos protocol after modification(1)c_as_req: c, address, tgs,kc.as,nonce1prvkcpubkas原 kerberos 协议,用户终端 client 向认证服务器 as 发送明文请求,因此无法验证用户 终端 client 的身份。在运用 pki 公钥技术改进的 kerberos 认证协议中,用户终端 client 向 认证服务器 as 发送请求消息,使用认证服务器 as 的公钥 pubkas 加密后发送给认证服务 器 as,确保只有认证服务器 as 才能解开。nonce1 为不重数,即不重复使用的大随机数, 并且随票据服务器 tgs 标识 tgs 和用户终端 client 和认证服务器 as 的共享密钥 kc.as 用 client 的私钥 prvkc 签名;as 收到该消息后,使用用户终端 client 的公钥 pubkc 验证用户 终端 client 的身份。改进的认证协议传输不重复的大随机数 nonce1 而不传输 timestamp 可以 避免原 kerberos 认证系统对时间同步的要求。(2)c_as_rep: kc.tgs,tgs, nonce1+1kc.as,tgt tgt=as,c,tgs,addr,lifetime,kc.tgs prvkaspubktgs认证服务器 as 生成用户终端 client 和票据发放服务器 tgs 通信的会话密钥 kc.tgs,并将 nonce1 加 1,随同票据发放服务器 tgs 的标识 tgs 一同用 kc.as 加密。组织消息c,tgs,addr,lifetime,kc.tgs用认证服务器 as 的私钥 prvkas 签名,并使用票据发放服务器 tgs 的公钥 pubktgs 加密消息。用户终端 client 收到该回复消息时,用用户终端 client 的私钥 prvkc 解密获得 kc.tgs。(3)c_tgs_req:s,addr,lifetime,nonce2kc.tgs,tgt tgt=as,c,tgs,addr,lifetime,kc.tgsprvkaspubktgs195用户终端 client 向票据发放服务器 tgs 发送访问业务服务器 s 的请求消息,该消息包括票据 tgt。票据发放服务器 tgs 收到该请求消息后用自己的私钥 prvktgs 解密票据 tgt, 在根据得到的认证服务器标识 as 选择对应的认证服务器 as 的私钥 prvkas 验证,验证成功 后便可以获取会话密钥 kc.tgs,tgs 在利用刚刚解密获取的 kc.tgs 解密s,addr,lifetime,nkc.tgs 获取 s,addr,lifetime 和 nonce2。(4)c_tgs_rep:s,kc.s,nonce2+1 kc.tgs,tsts=tgs,s,c,addr,kc.s,lifetime prvktgspubks200205210215票据发放服务器 tgs 向用户终端 client 发送应答消息,票据发放服务器 tgs 产生用户终端 client 和业务服务器 s 之间通信的会话密钥 kc.s,并将 nonce2 加 1,随同业务服务器 的标识 s 用用户终端 client 和票据发放服务器 tgs 之间的共享密钥 kc.tgs 加密。同时产生 用户终端 client 用于访问业务服务器 s 的票据 ts。该票据使用业务服务器 s 的公钥 pubks 加密,确保只有正确的业务服务器 s 才能解开经过 tgs 服务器的签名。(5)c_s_req:c,addr,lifetime,nonce3kc.s,tsts=tgs,s,c,addr,kc.s,lifetime prvktgspubks用户终端 client 向业务服务器 s 发送认证符c,addr,lifetime,nkc.s 和票据 ts。业务服务 器 s 用私钥 prvks 解密票据 ts,再根据得到的票据发放服务器的标识 tgs 选择对应的票据发 放服务器的公钥 pubktgs 验证 tgs 身份,成功验证后获取如下信息 s,c,addr,kc.s,lifetime, 用刚刚解密获得的 kc.s 解密认证符c,addr,lifetime, nonce3kc.s,获取消息 c,addr,lifetime, nonce3。将二者解密得到的消息作比对,验证消息的发送者和持有者为同一人。(6)c_s_rep:nonce3+1kc.s业务服务器 s 验证消息的持有者即为消息的发送者时, 将 nonce3 加 1 后用用户终端 client 和业务服务器之间的通信密钥 kc.s 加密后发送给用户终 端 client。3.3 改进后 kerberos 授权票据验证性能分析改进后的 kerberos 认证方案有效地克服了身份认证中要求严格的的时间同 步;采用 pki 技术以及有时限的会话密钥等统一进行密钥管理有效地避免了 kerberos 中 kde 密钥分发管理等问题;采用智能卡 usbkey 技术实现了防止口 令猜测攻击以及重放攻击等安全缺陷,其中授权票据验证性能指标分析如下:表 1会话密钥的性能指标表tab.1 the session key performance indicator加密密钥长度加密数据大小平均时间硬件环境128 位128 位10m100m1.745s17.519sintel 奔腾双核 e2200cpu 主频:2200mhz128 位1g193.323s内存大小:1024mb ddrii128 位10m1.745s220从流程上看,授权票据对业务系统的性能影响主要是一次授权票据验证的解析延时。表 3-1 列出了会话密钥的性能指标:225230235因此如果以一个授权票据大小为 5k 的数据量来算的话,一次解密的时间大概是 0.87ms。业务服务器验证完一次授权票据需要解密一个授权票据和一次认 证票据,认证票据的大小只有几十个字节,解密的时间大概在 1ms 左右。所以 一次授权票据验证的时间在 1.5ms 以内。4结论综上,改进后的认证协议有如下优点:(1)保持了对主机不要求主机操作系统以及是否被授信,以及人适用于存在攻击、窃取 等不安全的公开网络传输的优点。(2)采用 pki 公钥密码技术,引入专用 ca 对密钥的产生、存储、管理、更新等工作进 行管理。有效的防止了原 kerberos 协议的 kdc 被攻破后整个系统便攻破的危险性,系统的 安全性有了较好的保障。(3)采用 usbkey 智能卡存储用户密钥,usbkey 双因子认证,大大提高了登录系统的安 全性。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论