SecCourse-05安全基础二.ppt

上传人:本田雅阁 文档编号:2894535 上传时间:2019-06-02 格式:PPT 页数:64 大小:444.02KB
返回 下载 相关 举报
SecCourse-05安全基础二.ppt_第1页
第1页 / 共64页
SecCourse-05安全基础二.ppt_第2页
第2页 / 共64页
SecCourse-05安全基础二.ppt_第3页
第3页 / 共64页
SecCourse-05安全基础二.ppt_第4页
第4页 / 共64页
SecCourse-05安全基础二.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《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

19、2:30 06/08/96 05:49:19 host/daffodil.mit.eduATHENA.MIT.EDU 06/07/96 20:24:18 06/08/96 05:49:19 krbtgt/FUBAR.ORGATHENA.MIT.EDU 06/07/96 20:24:18 06/08/96 05:49:19 host/trillium.fubar.orgATHENA.MIT.EDU shell%,kpasswd,修改口令,shell% kpasswd Old password for david: - Type your old password. New Password fo

20、r david: - Type your new password. Verifying, please re-enter New Password for david: - Type the new password again. Password changed. shell%,Kerberos应用: telnet,shell% telnet daffodil.mit.edu Trying 128.0.0.5 . Connected to daffodil.mit.edu. Escape character is . NetBSD/i386 (daffodil) (ttyp3) login

21、: david Password: - david types his password here Last login: Fri Jun 21 17:13:11 from trillium.fubar.org Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. NetBSD 1.1: Tue May 21 00:31:42 EDT 1996 Welcome to NetBSD! shell%,

22、Kerberos应用: rlogin,shell% rlogin daffodil.mit.edu -l david Password: - david types his password here Last login: Fri Jun 21 10:36:32 from :0.0 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. NetBSD 1.1: Tue May 21 00:31:4

23、2 EDT 1996 Welcome to NetBSD! shell%,Kerberos应用: ftp,shell% ftp daffodil.mit.edu Connected to daffodil.mit.edu. 220 daffodil.mit.edu FTP server (Version 5.60) ready. 334 Using authentication type GSSAPI; ADAT must follow GSSAPI accepted as authentication type GSSAPI authentication succeeded Name (da

24、ffodil.mit.edu:jennifer): 232 GSSAPI user jenniferATHENA.MIT.EDU is authorized as jennifer 230 User jennifer logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp protect private 200 Protection level set to Private. ftp cd jennifer/MAIL 250 CWD command successful. ftp get R

25、MAIL 227 Entering Passive Mode (128,0,0,5,16,49) 150 Opening BINARY mode data connection for RMAIL (361662 bytes). 226 Transfer complete. 361662 bytes received in 2.5 seconds (1.4e+02 Kbytes/s) ftp quit shell%,其他Kerberos命令,kdestroy rsh ksu rcp,Kerberos配置文件,krb5.conf, Kerberos配置信息,例如,libdefaults tick

26、et_lifetime = 600 default_realm = ATHENA.MIT.EDU default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc realms ATHENA.MIT.EDU = kdc = kerberos.mit.edu kdc = kerberos-1.mit.edu kdc = kerberos-2.mit.edu admin_server = kerberos.mit.edu default_domain = mit.e

27、du FUBAR.ORG = kdc = kerberos.fubar.org kdc = kerberos-1.fubar.org admin_server = kerberos.fubar.org domain_realm .mit.edu = ATHENA.MIT.EDU mit.edu = ATHENA.MIT.EDU,Kerberos配置文件,kdc.conf, KDC的配置,例如,kdcdefaults kdc_ports = 88 realms ATHENA.MIT.EDU = kadmind_port = 749 max_life = 10h 0m 0s max_renewab

28、le_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 supported_enctypes = des3-hmac-sha1:normal des-cbc-crc:normal des-cbc-crc:v4 kdc_supported_enctypes = des3-hmac-sha1:normal des-cbc-crc:normal des-cbc-crc:v4 logging kdc = FILE:/usr/local/var/krb5kdc/kdc.log admin_server = FILE:/usr/local/var/kr

29、b5kdc/kadmin.log,Kerberos缺省端口配置,ftp 21/tcp # Kerberos ftp and telnet use the telnet 23/tcp # default ports kerberos 88/udp kdc # Kerberos V5 KDC kerberos 88/tcp kdc # Kerberos V5 KDC klogin 543/tcp # Kerberos authenticated rlogin kshell 544/tcp cmd # and remote shell kerberos-adm 749/tcp # Kerberos

30、5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw krb5_prop 754/tcp # Kerberos slave propagation eklogin 2105/tcp # Kerberos auth. & encrypted rlogin krb524 4444/tcp # Kerberos 5 to 4 ticket translator,Kerberos协议的实现MS版本,Kerberos代替Windows NT的NT LM认证协议,是Win2000的默认认证协议,也是Windows 2000分布式

31、安全服务的一部分 与Windows 2000的目录服务集成在一起 Kerberos数据库是AD的一部分 与系统的授权数据信息结合在一起 对MIT Kerberos作了扩展,也不完全兼容,Win2k Kerberos的实现形式,形式: Security Service Provider (SSP) Security Support Provider Interface (SSPI) 对上层应用透明,Win2k Kerberos的Ticket结构,Ticket交换,登录,访问远程服务,Win2k Kerberos Delegation,Server S代表客户申请一个新的ticket 利用tick

32、et的FORWARD标志特性,Win2k Kerberos跨域认证,关于Win2k Kerberos,功能 实现了可传递的域信任关系 实现了服务的delegation 与其他的系统服务之间的集成 兼容性问题 与MIT采用的默认算法不同, 不过,可以协商 MIT使用DES,MS使用RC4 口令的散列算法不同 MIT使用一个string-to-key算法,MS使用MD4 授权域信息不兼容 安全个体的映射关系,IPSec,网络层安全性 着眼:真实性(认证)、完整性和保密性 好处:对于应用层透明 可以针对链路,也可以针对最终用户 可以实现在防火墙或者路由器上 弥补IPv4在协议设计时缺乏安全性考虑的不

33、足 IETF成立专门的WG标准化IPSec 目前已有一系列的RFC和Internet Draft 文档结构复杂,IP Security示意图,IPSec的应用,通过Internet建立分支机构 通过Internet远程访问企业内部网络 合作伙伴之间通过Internet建立信任关系 也可用于电子商务应用 IPSec最常见的应用VPN,IPSec的内容,协议包括两大部分 AH: Authentication Header ESP: Encapsulating Security Payload 密钥管理(Key Management) SA(Security Association) ISAKMP定

34、义了密钥管理框架 IKE是目前正式确定的密钥交换协议,SA(Security Association),基本概念 是发送者和接收者两个IPSec系统之间的一个简单的单向逻辑连接,是与给定的一个网络连接或一组网络连接相关联的安全信息参数集合 因为SA是单个方向的,所以,对于一个双向通信,则需要两个SA SA与IPSec系统中实现的两个数据库有关 安全策略数据库 安全关联数据库,AH(Authentication Header),为IP包提供数据完整性和认证功能 利用MAC码实现认证,双方必须共享一个密钥 认证算法由SA指定 两种认证模式: 传输模式:不改变IP地址,插入一个AH 隧道模式:生成一

35、个新的IP头,把AH和原来的整个IP包放到新IP包的净荷数据中,AH两种模式示意图,ESP(Encapsulating Security Payload),提供保密功能,也可以提供认证服务 将需要保密的用户数据进行加密后再封装到IP包中,ESP只认证ESP头之后的信息 认证算法也由SA指定 也有两种模式:传输模式和隧道模式,ESP两种模式示意图,经认证的数据,经加密的数据,(1) 传输模式,参考资料,书 William Stallings, Cryptography and network security: principles and practice, Second Edition 文章

36、 RFC 1510 Bel90. S. M. Bellovin and M. Merritt, Limitations of the Kerberos Authentication System, Computer Communications Review 20(5), pp. 119-132 (October 1990). John T. Kohl, B. Clifford Neuman, Theodore Y. Tso, “The Evolution of the Kerberos Authentication Service”, Proceedings of the Spring 19

37、91 EurOpen Conference B. Clifford Neuman and Theodore Tso, “Kerberos: An Authentication Service for Computer Networks”, IEEE Communications Magazine, Volume 32, Number 9, pages 33-38, September 1994. David Chappel, “Exploring Kerberos, the Protocol for distributed security in Windows 2000”, Microsoft systems Journal, Aug. 1999 Web站点 http:/web.mit.edu/kerberos/www/,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1