SecCourse-05安全基础二.ppt
《SecCourse-05安全基础二.ppt》由会员分享,可在线阅读,更多相关《SecCourse-05安全基础二.ppt(64页珍藏版)》请在三一文库上搜索。
1、网络与信息安全 安全基础 (二),潘爱民,北京大学计算机研究所 http:/ Kerberos中ticket的flag Kerberos实现 MIT Release Win2k Kerberos IPSec简介,Kerberos认证协议,历史 80年代中期 是MIT的Athena工程的产物 版本 前三个版本仅用于内部 第四版得到了广泛的应用 第五版于1989年开始设计 RFC 1510, 1993年确定 标准Kerberos 解决的问题 认证、数据完整性、保密性,作为一种认证协议,特点 基于口令的认证协议 利用对称密码技术建立起来的认证协议 可伸缩性可适用于分布式网络环境 环境特点 User-
2、to-server authentication 密钥存储方案,Kerberos协议中一些概念,Principal(安全个体) 被认证的个体,有一个名字(name)和口令(password) KDC(Key distribution center) 是一个网络服务,提供ticket和临时的会话密钥 Ticket 一个记录,客户可以用它来向服务器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信息。Ticket 中的大多数信息都被加密,密钥为服务器的密钥 Authenticator 一个记录,其中包含一些最近产生的信息,产生这些信息需要用到客户和服务器之间共享的会话密钥 Cre
3、dentials 一个ticket加上一个秘密的会话密钥,Kerberos Model,基本的ticket交换 Client - KDC c(客户的id), s(服务器的id), n(nonce) KDC - Client Kc,s, nKc, Tc,sKs Client - Server AcKc,s, Tc,sKs,基本的ticket交换的问题,客户个体密钥Kc的频繁使用 Kc的使用对于用户尽可能透明 可伸缩性 方案 引入TGS(Ticket-granting server),附加的ticket交换,引入TGS(Ticket-granting service) 两种ticket TGT:
4、Tc,tgsKtgs Service ticket: Tc,sKs,支持可伸缩性的两个概念,TGS Ticket-granting service Realm(域) 与domain的区别? 每一个安全个体都与一个realm相联系 从安全性意义上来,是指信任边界,Kerberos中ticket示意图,Kerberos消息(1),Client - Authentication Server(KDC) Options: KDCOptions IDc: principals name Realmc: clients realm IDtgs: TGSs name Times(from, till, rt
5、ime) Nonce1 可选的扩展信息,Kerberos消息(2),Authentication Server(KDC) - Client Realmc IDc Tickettgs EncryptedData(with Kc) Kc,tgs Times(LastReq, Key-expiration*, Authtime, Starttime*, Endtime, Renew-till*) Nonce1 Realmtgs IDtgs,Tickettgs信息,Encrypted with Ktgs Flags Kc,tgs Realmc IDc ADc Times,Kerberos消息(3),C
6、 - TGS Options: KDCOptions IDv: Servers name Times(from*, till, rtime*) Nonce2 Tickettgs Authenticatorc,Authenticator,Encrypted with Kc,tgs IDc Realmc TS1 用途是 服务器可用来认证Ticket的有效性 TS可告诉服务器客户机当前的时间,Kerberos消息(4),TGS - C Realmc IDc Ticketv EncryptedData(with Kc,tgs) Kc,v Times Nonce2 Realmv IDv,Ticketv信
7、息,Encrypted with Kv Flags Kc,v Realmc IDc ADc Times,Kerberos消息(5),C - Server Options Ticketv Authenticatorc Authenticaor: Encrypted with Kc,v Realmc IDc TS2 Subkey Seq#,Kerberos消息(6),Server - C(optional) 仅用于双向认证 EncryptedData(with Kc,v) TS2 Subkey Seq#,Ticket交换中的flags,INITIAL 是由AS发出的ticket RENEWABLE
8、 告诉TGS,当这个ticket过期之后,它可以用来获得一个新的ticket MAY-POSTDATE 告诉TGS,以后可以根据这个ticket(TGT),发出一个postdate的ticket POSTDATED 表示这个ticket已经被postdated,ticket中的flags(续),INVALID Ticket已经无效,用之前必须先使它有效 PROXIABLE 告诉TGS, 根据所出示的ticket,发出一个地址不同的新ticket PROXY 表示这是一个proxy ticket FORWARDABLE 告诉TGS,根据这个TGT,发出一个地址不同的新ticket FORWARD
9、ED 表明这个ticket是一个forwarded ticket,INITIAL,表明一个ticket是由AS发出的 有的应用服务要求客户必须知道password,那么它可以要求只接受包含INITIAL标记的ticket 例如,修改口令的应用服务,PRE-AUTHENT & HW-AUTHENT,AS可以要求在发出ticket之前,先认证客户,因 此,客户必须提供一个预认证数据块,比如,包含随机数、时间戳,等,然后用客户的私钥加密 如果客户没有提供AS所要求的预认证数据,则AS返回一个KDC_ERR_PREAUTH_FAILE消息 如果AS在认证的时候,要求硬件认证支持,则可以指定HW-AUT
10、HEN标记,RENEWABLE,如果一个ticket设置了RENEWABLE,则它包含两个过期时间 一个是当前ticket的过期时间 另一个是最终的过期时间 客户可以请求一个新的ticket,只要在最终的过期时间之内,TGS都可以发出新的ticket,其中过期时间往后延长 好处 如果一个ticket被偷,TGS可以拒绝发出新的ticket,POSTDATED和INVALID,客户可以先用MAY-POSTDATE向AS请求一个TGT 然后,客户利用这个TGT,可以申请一些同时包含POSTDATED和INVALID的tickets,用于以后的会话过程 客户在使用之前,通过VALIDATE opti
11、on,先请求TGS使INVALID ticket有效 用处: 比如在一个处理时间很长的任务中,PROXIABLE和PROXY,PROXIABLE告诉TGS, 根据所出示的ticket,发出一个地址不同的新ticket PROXY表示这是一个proxy ticket 用处 允许客户把一个proxy传递给server, 让这个proxy代替自己完成特定的任务 原理 通过网络地址来认证客户,FORWARDABLE &FORWARDED,告诉TGS,根据这个TGT,发出一个地址不同的新ticket FORWARDED表明这个ticket是一个forwarded ticket 其实也是proxy的一种情
12、形 可以完全代替客户的身份 一个用途 在跨域认证的时候,客户可以把这样的ticket出示给其他域的TGS,这使得客户可以访问其他域的服务器,Cross-realm认证,Kerberos 4支持跨realm认证,Cross-realm认证(续),Kerberos 5支持跨realm认证 提供了可伸缩能力,Kerberos数据库,KDC必需一个数据库,保存以下基本信息 Name: principals identifier Key: principals secret key P_kvno: principals key version Max_life: maximum lifetime for
13、 tickets Max_renewable_life: 其他的扩展fields 数据库的实现取决于具体的Kerberos实现 ,它可以与KDC位于不同的服务器,但是要保证安全性,Kerberos: 数据完整性和私有性,完整性 对每一个包计算检验和,并加密 HMAC算法 私有性 既然客户和服务器已经有了共享随机密钥,那么私有性就很容易保证,Kerberos中加密算法规范,具体的算法可以在参数中指定 NULL Encryption system DES in CBC mode with a CRC-32 checksum DES in CBC mode with a MD4 checksum D
14、ES in CBC mode with a MD5 checksum ,关于Kerberos的一些讨论,重放攻击 Caching authenticators 时间服务 口令猜测攻击 数据加密算法的分离 ,参考:Bel90. S. M. Bellovin and M. Merritt, Limitations of the Kerberos Authentication System, Computer Communications Review 20(5), pp. 119-132 (October 1990).,Kerberos的实现MIT release,MIT提供了完整的Kerbero
15、s实现 目前的最新版本为1.2 源码开放 是其他厂商的重要参考 支持各种平台(包括Windows) 同时提供了各种工具(k系列),kadmin,管理Kerberos数据库,功能有 显示principal的属性 获得principal列表 增加、删除或者修改principal 修改口令 策略管理,Kadmin举例,shell% kadmin kadmin: getprinc jennifer/root Principal: jennifer/rootATHENA.MIT.EDU Key version: 3 Maximum life: 1 day 00:00:00 Maximum renewab
16、le life: 7 days 00:00:00 Master key version: 1 Expires: Mon Jan 18 22:14:07 EDT 2038 Password expires: Mon Sep 19 14:40:00 EDT 1996 Password last changed: Mon Jan 31 02:06:40 EDT 1996 Last modified: by joeadmin/adminATHENA.MIT.EDU on Wed Jul 13 18:27:08 EDT 1996 Attributes: DISALLOW_FORWARDABLE, DIS
17、ALLOW_PROXIABLE, REQUIRES_HW_AUTH Salt type: DEFAULT kadmin:,kdb5_util,功能 把kerberos数据库dump出来 恢复kerberos数据库 创建或者删除一个kerberos数据库,kinit,kinit 获得一个ticket 例如,shell% kinit Password for jenniferATHENA.MIT.EDU: - Type jennifers password here. shell% 如果口令不正确,则: shell% kinit Password for jenniferATHENA.MIT.ED
18、U: - Type the wrong password here. kinit: Password incorrect shell%,klist,列出所有的tickets,shell% klist Ticket cache: /tmp/krb5cc_ttypa Default principal: jenniferATHENA.MIT.EDU Valid starting Expires Service principal 06/07/96 19:49:21 06/08/96 05:49:19 krbtgt/ATHENA.MIT.EDUATHENA.MIT.EDU 06/07/96 20:2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SecCourse 05 安全 基础
链接地址:https://www.31doc.com/p-2894535.html