《第十三讲Kerberos认证协议与X509》由会员分享,可在线阅读,更多相关《第十三讲Kerberos认证协议与X509(43页珍藏版)》请在金锄头文库上搜索。
1、第十三讲. Kerberos认证协议与X.509上海交通大学计算机科学系1. 1. 密钥管理密钥管理 所有的密码系统都存在:如何安全可靠地分配密钥许多情况下, 出现的安全问题不是因为密码算法被破,而是密钥分配系统被破 理想的情况是,密钥分配协议应得到形式化验证,目前已有这方面的结果2. Physical Delivery传统的物理方法秘密传送3. 3. 认证密钥服务器认证密钥服务器第三方可信的在线服务器服务器与每个客户有个公享秘密钥向客户分发密钥 可以利用对称密钥算法 Kerberos4. Kerberos认证服务协议是一项鉴别协议解决的问题:在一个公开的分布式环境中,工作站上的用户希望访问分
2、布在网络中的服务器上的服务服务器希望能够限制授权用户的访问,并能对服务请求进行鉴别。5.5.KerberosKerberos使用的加密体制Kerberos不是为每一个服务器构造一个身份认证协议,而是提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。Kerberos采用传统加密算法(无公钥体制)常用版本:Kerberos Version4和Version5 (RFC1510)6. Kerberos的解决方案在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。总体方案是提供一个可信第三方的认证服务。7. Kerberos系统满足的
3、要求安全。网络窃听者不能获得必要信息以假冒其它用户;Kerberos应足够强壮以至于潜在的敌人无法找到它的弱点连接。可靠。Kerberos应高度可靠,并且应借助于一 个分布式服务器体系结构,使得一个系统能够备份另一个系统。透明。理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。可伸缩。系统应能够支持大数量的客户和服务器8. Kerberos Version4引入一个信任的第三方认证服务,采用一个基于Needham & Schroeder协议。采用DES,精心设计协议,提供认证服务。9.一个简单的认证对话引入认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据库中。另外,A
4、S与每一个服务器共有一个唯一的保密密钥。这些密钥已经通过物理上或以更安全的手段分发考虑以下假定的对话:考虑以下假定的对话:(1) C AS: IDC | PC | IDV(2) AS C: Ticket(3) C V : IDC | TicketTicket = EKVIDC | ADC | IDVIDV: identifier of VPC: password of user on CADC: network address of CKV: AS与与V共有的保密密钥共有的保密密钥CVAS(1)(2)(3)ADC防止何种攻击?防止何种攻击?考虑以下假定的对话:考虑以下假定的对话:(1) C A
5、S: IDC | PC | IDV(2) AS C: Ticket(3) C V : IDC | TicketTicket = EKVIDC | ADC | IDVIDV: identifier of VPC: password of user on CADC: network address of CKV: AS与与V共有的保密密钥共有的保密密钥CVAS(1)(2)(3)ADC防止何种攻击?防止何种攻击?其中:其中: C : client AS : Authentication Server V : server IDC: identifier of user on C 10.上述对话存在的
6、问题两个主要问题希望用户输入口令的次数最少。口令以明文传送会被窃听。解决办法票据重用(ticket reusable)票据需可服务器(ticket-granting server,TGS)改进后的假想的对话:改进后的假想的对话:用户登录的每次对话用户登录的每次对话:(1) C AS : IDC | IDtgs(2) AS C : EKCTickettgs每种服务类型一次:每种服务类型一次:(3) C TGS : IDC | IDv | Tickettgs(4) TGS C : TicketV每种服务会话一次:每种服务会话一次:(5) C V : IDC | TicketVTickettgs =
7、 EKtgsIDC|ADC|IDtgs|TS1|Lifetime1TicketV = EKVIDC|ADC|IDV|TS2|Lifetime2 CVAS(1)(2)(3)TGS(4)(5)Kerberos11.方案的详细描述用户向AS请求代表该用户的票据许可票据。 AS发回加密的票据,密钥由口令导出(Why?)票据许可票据包含用户ID、网络地址、TGS的ID、时戳与生存期(Why?)。用户请求服务许可票据。TGS验证,如通过则发服务许可票据。用户使用服务许可票据请求服务。改进方案仍存在的问题与与TGSTGS相关的生存期问题;相关的生存期问题;太长则?太短则?如何应付票据的过期使太长则?太短则?
8、如何应付票据的过期使用?用?需要服务器向客户进行认证其本身;需要服务器向客户进行认证其本身;假的服务器假的服务器12. 12. KerberosKerberos V4 V4 的认证对话的认证对话解决方案会话密钥(session key)AS用安全方式向用户和TGS各自提供一块秘密信息,然后用户也以安全方式向TGS出示该秘密来证明自己的身份。这个秘密就是会话密钥13.13.KerberosKerberos V4 V4报文交换总结(报文交换总结(1 1)认证服务交换:获得票据许可票据认证服务交换:获得票据许可票据(1) C AS : IDC | IDtgs | TS1(2) AS C : EKCK
9、c,tgs | IDtgs | TS2 | Lifetime2 | TickettgsTickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2 | Lifetime2KerberosKerberos V4 V4报文交换总结(报文交换总结(2 2)票据许可服务交换:获得服务许可票据票据许可服务交换:获得服务许可票据(3) C TGS : IDV | Tickettgs | Authenticatorc(4) TGS C : EKc,tgsKc,v | IDV | TS4 | TicketvTickettgs = EKtgsKc,tgs| IDC| AD
10、C| IDtgs | TS2 | Lifetime2Ticketv = EKVKc,v|IDC|ADC| IDv|TS4|Lifetime4Authenticatorc = EKc,tgsIDc|ADc|TS3Kerberos V4报文交换总结(3)客户客户/服务器认证交换:获得服务服务器认证交换:获得服务(5) C V : Ticketv | Authenticatorc(6) V C : EKc,vTS5+1 ( for mutual authentication)Ticketv = EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc = EKc
11、,vIDc|ADc|TS5 14. 公开公证或证书机构 可信的离线服务器 server 有个公开的公钥 server 对每个用户签名公钥证书利用公钥加密 15. 要素与基本原理(a) 认证服务交换认证服务交换Message(1)Client 请求请求 ticket-granting ticket IDC :告诉告诉AS本本client端的端的用户标识;用户标识; IDtgs :告诉告诉AS用户请求访问用户请求访问TGS; TS1 :让让AS验证验证client端的时钟是与端的时钟是与AS的时钟同步的;的时钟同步的;Message(2)AS返回返回ticket-granting ticket E
12、KC :基于用户口令的加密,使得基于用户口令的加密,使得AS和和client可以验证口令,可以验证口令,并保护并保护Message(2)。 Kc,tgs :session key的副本,由的副本,由AS产生,产生,client可用于在可用于在AS与与client之间信息的之间信息的安全交换,而不必共用一个永久的安全交换,而不必共用一个永久的key。 IDtgs :确认这个确认这个ticket是为是为TGS制作的。制作的。 TS2 :告诉告诉client该该ticket签发的时间。签发的时间。 Lifetime2:告诉告诉client该该ticket的有效期;的有效期; Tickettgs:cl
13、ient用来访问用来访问TGS的的ticket。16. 基本原理(续)(b) 票据许可服务交换票据许可服务交换Message(3)client 请求请求service-granting ticket IDv:告诉告诉TGS用户要访问服务器用户要访问服务器V; Tickettgs :向向TGS证实该用户已被证实该用户已被AS认证;认证;Authenticatorc:由由client生成,用于验证生成,用于验证ticket;Message(4)TGS返回返回service-granting ticket EKc,tgs :仅由仅由C和和TGS共享的密钥;用以保护共享的密钥;用以保护Message(
14、4); Kc,tgs: session key的副本,由的副本,由TGS生成,供生成,供client和和server之间之间信息的安全交换,而无须共用一个永久密钥。信息的安全交换,而无须共用一个永久密钥。 IDv :确认该确认该ticket是为是为server V签发的;签发的; TS4 : 告诉告诉client该该ticket签发的时间;签发的时间; TicketV :client用以访问服务器用以访问服务器V的的ticket; Tickettgs:可重用,从而用户不必重新输入口令;可重用,从而用户不必重新输入口令; EKtgs :ticket用只有用只有AS和和TGS才知道的密钥加密,以预
15、防篡才知道的密钥加密,以预防篡改;改; Kc,tgs :TGS可用的可用的session key副本,用于解密副本,用于解密authenticator,从而从而认证认证ticket; IDc : 指明该指明该ticket的正确主人;的正确主人;17 基本原理客户客户/服务器鉴别交换服务器鉴别交换:Message(5)client 请求请求服务服务 Ticketv :向向服务器服务器证实该用户已被证实该用户已被AS认证;认证; Authenticatorc:由由客户客户生成,用于验证生成,用于验证ticket有效;有效;Message(6)客户对服务器的可选认证客户对服务器的可选认证 Ekc,v
16、 :使使C确认报文来自确认报文来自V; TS51: 使使C确信这不使报文重放;确信这不使报文重放; TicketV :client用以访问服务器用以访问服务器V的的ticket; EKv : 用只有用只有AS和和TGS才知道的密钥加密的票据,以预才知道的密钥加密的票据,以预 防篡改;防篡改; Kc,v: 用户的会话密钥副本;用户的会话密钥副本; IDc : 票据的合法用户;票据的合法用户; ADc: 防止非法使用;防止非法使用; IDv: 使服务器确信解密正确;使服务器确信解密正确;18.18.KerberosKerberos领域和多个域服务领域和多个域服务一个完整的Kerberos环境(域)
17、包括一个Kerberos服务器,一组工作站,和一组应用服务器,满足下列要求:Kerberos服务器必须在其数据库中拥有所有参与用户的ID(UID)和口令散列表。所有用户均在Kerberos服务器上注册。Kerberos服务器必须与每一个服务器之间共享一个保密密钥。所有服务器均在Kerberos服务器上注册。19.不同域间的鉴别机制条件:每一个辖区的每一个辖区的Kerberos Kerberos 服务器与其它辖区内服务器与其它辖区内的的KerberosKerberos服务器之间共享一个保密密钥。两服务器之间共享一个保密密钥。两个个KerberosKerberos服务器互相注册。服务器互相注册。2
18、0.获得另一领域中的认证服务分三步骤:(1)获得本地TGS的访问权;(2)请求一张远程TGS的票据许可票据;(3)向远程TGS申请其领域内的服务许可票据细节描述:细节描述:(1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs(3) C TGS:IDtgsrem | Tickettgs | Authenticatorc(4) TGS C: EKc,tgsKc,tgsrem | IDtgsrem | TS4 | Tickettgsrem(5) C TGSrem: IDvrem
19、| Tickettgsrem | Authenticatorc(6) TGS C: EKc,tgsremKc,vrem | IDvrem | TSb | Ticketvrem(7) C Vrem:Ticketvrem | AuthenticatorcCASTGSTGSremVrem(1)(2)(3)(4)(5)(6)(7)21. Kerberos Version 5改进version 4 的环境缺陷加密系统依赖性,需DESInternet协议依赖性,需IP地址消息字节次序(不明确字节顺序)Ticket的时效性(可能太短)认证转发,用户的认证不能转发到其它主机或用户。域间认证,22. 公钥证书公
20、钥管理包括公钥证书的使用证书将用户身份与公钥绑定也包括其他信息:有效期、使用权限所有内容有可信中心签名 (CA) 假设任何人可以得到或已知CA的公钥,并验证证书23. X.509 鉴别服务CCITT X.500 一部分,目录服务标准X.509 定义了认证服务框架 这种目录可以存储证书 定义了利用证书的认证协议使用公钥密码与数字签名 推荐使用RSA (不是标准)24. X.509 证书证书由证书授权 (CA) 机构发送:each certificate contains: version (1, 2, or 3) serial number (unique within CA) identify
21、ing certificate signature algorithm identifier issuer X.500 name (CA) period of validity (from - to dates) subject X.500 name (name of owner) subject public-key info (algorithm, parameters, key) issuer unique identifier (v2+) 25. X.509 证书(续)subject unique identifier (v2+) extension fields (v3) signa
22、ture (of hash of all fields in certificate) notation: CA means CA has signed certificate details for User 26. 证书证书 扩展项扩展项 证书中,其它信息是有必要的如: email address/URL, policy details, usage constraints etc 参见 SSL的使用27. 27. 证书性质证书性质任何能够访问CA的用户,可以得到CA上的任何证书只有 CA 能够修改证书 因为证书不能伪造,证书可以放在目录中 28. CA 分层结构 如果两个用户享有一个共同
23、的CA,他们可以得到CA的一个相同的公钥若不是一个CA,则需要CA分层利用证书链验证其它CA 每个 CA 有对客户的证书和其上一级CA的证书 每个用户相信更高层的CAS 能够使得任何CA的用户验证其它CA签发的任何证书29. CA 分层A acquires B certificate following chain: XWVYZ B acquires A certificate following chain: ZYVWX 30. 认证流程X.509 包括三种认证形式: 单向认证(One-Way Authentication )双向认证(Two-Way Authentication )三向认证
24、(Three-Way Authentication )31. 单向认证1 个消息 ( A-B): AtA, rA, B, sgnData, EkUbKab 验证A的身份及消息来源于 发送到 B 包括内容: timestamp, nonce, Bs identity signed by A 32. 双向认证2 消息 (A-B, B-A) AtA, rA, B, sgnData, EkUbKab BtB, rB, A, rA, sgnData, EkUaKba 33. 三向认证3 messages (A-B, B-A, A-B) AtA, rA, B, sgnData, EkUbKab BtB, rB, A, rA, sgnData, EkUaKba ArB34. 小结密钥管理问题 X.509 证书与 CAs