Kerberos
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IDv :告诉TGS用户访问的应用服务器V
AuthenticatorC:由客户端产生认证符,证明票据有效性
Authenticatorc = E(Kc,tgs, [IDC||ADC||TS3])
2015年1月12日
(4) TGS C:
E(Kc,tgs,[Kc,v||IDv||TS4||Ticketv])
Tickettgs = E(Ktgs,[ IDc || ADc || IDtgs || TS1 || Lifetime1]) TicketV = E(Kv, [ IDc || ADc || IDs || TS2 || Lifetime2])
认证过程总结
(1) 客户通过向AS发送用户ID、TGS ID来请求一张代 表该用户的TGT。 (2) AS发回一张加密过的票据作为响应,加密密钥是由 用户口令导出的散列码。 (3) 响应到达客户端后,客户端提示用户输入口令,产 生密钥,解密报文。口令正确,票据正确解密,验证 了用户的身份。 (4)客户端代表用户请求一张服务许可票据。
2015年1月12日
• 票据许可服务交换:获得服务许可票据
(3)C TGS: IDv ||Tickettgs ||Authenticatorc
Tickettgs = E(Ktgs, [Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])
Tickettgs :使TGS确信该用户已通过AS的认证
2015年1月12日
Kerberos的基本认证过程
思想: 引入可信任的第三方(Kerberos服务器),在客户端访问服 务器之前,必须从Kerberos获得许可证。 kerberos AS 1
基本步骤:
3 服务器
2
1.C->AS:IDc || Pc || IDv 2. AS -> C : Ticket 3. C ->S : IDc|| Ticket
2015年1月12日
Kerberos Realm
一. Kerberos环境 1. 一个Kerberos服务器 2. 多个客户端 3. 多个应用服务器
Kerberos数据库 用户ID
应用服务器ID 密钥的版本
用户口令散列码
与应用服务器的共享密钥 票据的最大生存期等…
二. Kerberos环境必须满足的条件 1. Kerberos服务器数据库必须包含所有参与用户的ID 和其口令的散列码。所有用户都必须向Kerberos服务 器注册。 2. Kerberos服务器必须与每个应用服务器共享唯一的密 钥。 满足上述条件的环境称为Kerberos Realm。
第14章 Kerberos认证
2015年1月12日
认证的依据: 1.something the user knows(所知) 密码、口令等 2.something the user possesses(所拥有) 身份证、护照、密钥盘等 3.something the user use(how he behaves) 指纹、笔记、虹膜、DNA、声音等 常用的认证协议: PAP:Password Authentication Protocol(PPP使用) CHAP:Challenge Authentication Protocol(PPP使用) Kerberos:基于对称密码体制的认证协议 X.509:基于公钥密码体制的认证标准(证书标准)
AS TGS 4 服务器 5 客户端
kerberos
3
2. 票据可重用, 设置生命期
2 1
kerberos
AS TGS
4
3
2
1
服务器
5 客户端
1. C AS : IDc || IDtgs kc的生成:为了验证用 2. AS C : E(Kc ,Tickettgs ] 户身份,通常由用户 3. C TGS: IDc||IDv||Tickettgs 口令生成kc。 4. TGSC: Ticketv 5. CV: IDc || Ticketv
Kerberos协议:基于对称密码体制的认证协议。1988年 由MIT开发,用于开放环境下客户端与服务器的相互认 证。 思想:引入可信第三方来实现客户端和服务器认证。 应用层协议,端口号88,可以基于UDP,也可以基于 TCP。
Kerberos解决的问题: 1. 服务器应能够限制非授权用户的访问 2. 一个客户端上的用户不能假冒另一个用户操作 3. 一个工作站不能改变IP地址,假冒另一个工作站操作 4. 防止信息截获和重放
4. 返回访问远程TGS的TGT: E(Kc,tgs ,[Kc,tgsrem||IDtgsrem||TS4 || Tickettgsrem])
5. 请求访问远程服务器的票据: IDvrem||Tickettgsrem||Authenticatorc
6. 返回访问远程服务器的票据: E(Kc,tgsrem [Kc,vrem||IDvrem||TSb||Ticketvrem])
2015年1月12日
应用: 1. v5是Windows2000/2003中最基本的安全协议。 2. 用户登录Windows 2000/2003系统时,采用的默认认 证方式是Kerberos,如果没有KDC,使用NTLM。具 体细节见: http://bbs.youngzsoft.com/archive/index.php/t-232.html 3. Linux和Unix也支持该协议。
AS TGS
2015年1月12日
RealmA 服务器 7
kerberos
共享密钥
kerberos
RealmB 1 3 4 2 客户端
AS TGS 6
AS TGS
5
1.请求访问本地TGS的TGT: IDc || IDtgs || TS1
2. 返回访问本地TGS的TGT: E(kc,[Kc,tgs || IDtgs || TS2 || Lifetime2 ||Tickettgs]) 3. 请求访问远程TGS的TGT: IDtgsrem||Tickettgs||Authenticatorc
2015年1月12日
认证过程总结
(5)TGS 对收到的 TGT进行解密,通过检查TGS ID来 验证解密是否成功。 检查票据的生存期,确保没有过期。 比较用户ID和网络地址与通过 AS 认证用户的信息是 否一致。 (6) 若允许用户访问S,TGS 发回一张该Tickets。 (7) 客户端 C 代表用户请求某项服务。向 S 发送用户ID 和 TicketS 。应用服务器解密票据。通过检查 IDS来 验证解密是否成功。并检查票据的生存期,确保没有 过期。比较用户ID和网络地址与通过 TGS 认证用户 的信息是否一致。一致则向用户提供服务。
2015年1月12日
客户端
Ticket=E(Kv,[IDc||ADc||IDv])
问题: 1. 用户每次访问一个新的服务就需要一个新的票据 2. 多次使用Pc容易造成Pc泄露。
解决: 1. 引入TGS(票据授权服务器),向已经通过TGS认证 的用户发放服务票据。C首先向AS请求访问TGS的 TGT(票据授权票据),之后用这个票据向TGS请求访问 S的票据。
Ticketv = E(Kv,[Kc,v||IDC||ADC||IDv||TS4||Lifetime4])
Ticketv :客户用来访问服务器V的票据 ADC :防止非法用户在另一台工作站上使用该票据 TS4 :通知服务器此票据产生时间。
2015年1月12日
• 客户/服务器认证交换:获得服务 (5) C V: Ticketv || Authenticatorc (6) V C: E(Kc,v, [TS5 + 1]) (for mutual authentication) Ticketv = E(Kv, [Kc,v||IDc||ADc||IDv||TS4||Lifetime4]) Authenticatorc = E(Kc,v,[IDc||ADC||TS5]) Kc,v :使客户端确信该报文来自V,仅有客户和服务器知道的密钥加密以防篡改 Ticketv :使服务器V确信该用户已经通过AS的验证 K c,v :客户端获得会话密钥的副本;用来加密认证符,以认证票据 Authenticatorc:由客户端产生认证符,证明票据有效性 TS4:由通知服务器该票据发出的时间
2015年1月12日
问题:票据明文发送,如何防止截获和重放攻击? 解决:加入认证符(Authenticator) 认证符:使用会话密钥加密的时间戳
2015年1月12日
Kerberos v4认证
• 认证服务交换:获得TGT
(1)C AS: IDc || IDtgs ||TS1 (2)AS C: E(Kc,[Kc,tgs||IDtgs||TS2||Lifetime2||Tickettgs]) Tickettgs = E(Ktgs, [Kc,tgs||IDc||ADc||IDtgs||TS2||Lifetime2])
• 认证转发
– V4不允许发放给客户端的证书转发给其他主机,并由其他客户使用; – V5支持;
• 域间认证
– V4在N个域间互操作需要N2阶的Kerberos-Kerberos关系;
• 其他技术缺陷
– 双重加密,浪费计算资源;
Ekc[Kc,tgs || IDtgs || TS2 || Lifetime2 ||Tickettgs]→ Ekc[Kc,tgs || IDtgs || TS2 || Lifetime2 ] || Tickettgs
– PCBC【传播密码分组连接】加密,非标准做法同时提供完整性检查, 界定不清晰; – 会话密钥,可能存在重放会话风险; – 口令攻击,两个版本都存在,但V5的预认证机制增加了攻击难度;
2015年1月12日
Kerberos v5新增参数
Kerberos名字来源:是希腊神话中守卫冥王大 门的看门狗。 三头: 认证:Authentication 簿计:Accounting 审计:Audit 目标:守卫网络之门。目前仅实现了第一头。
发展历史:
1. 1988年,由MIT开发,Athena项目的产物。 2. 目前已经由v1发展到v5,前三个版本仅用于 实验室内部,v4得到了广泛的应用。 3. v5从1989年开始设计,到1993年确定成为标 准的kerberos(RFC1510)。
2015年1月12日
跨Realm认证: 用户可以访问其它Realm中的服务器。 前提 :每个互操作Realm中的Kerberos服务器要与另一 Realm中的Kerberos服务器共享唯一的密钥,它们必 须相互注册。
RealmA 服务器
kerberos
共享密钥
kerberos
RealmB 客户端
AS TGS
• 消息字节序
– V4由发送方选择字节顺序,并对消息进行标注; – V5采用抽象语法表示法1(ASN.1)和基本编码规则(BER);
• 票据有效期
– V4采用8bit值编码,以5分钟为一个基本单位,可表示最长 1280分钟(约21小时); – V5可有精确的开始和结束时间,即支持任意有效期;
2015年1月12日
Kerberos 4参数列表
• • • • • • • • • • • C = Client AS = authentication server V = server IDc = identifier of user on C IDv = identifier of V Pc = password of user on C ADc = network address of C Kv = secret encryption key shared by TGS an V TS = timestamp || = concatenation Lifetime = 有效期
2015年1月12日
7. 请求远Байду номын сангаас服务器的服务:Ticketvrem || Authenticatorc
Kerberos v4/v5差别
• 加密系统依赖性
– V4使用DES, 而且是非标准的PCBC; – V5采用加密类型标识,支持任何类型加密技术;
• 互联网协议依赖性
– V4仅支持IP地址,不支持其他类型; – V5标识地址类型和长度,支持任何网络地址;