《网络与信息安全安全基础 (二).ppt》由会员分享,可在线阅读,更多相关《网络与信息安全安全基础 (二).ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络与信息安全网络与信息安全安全安全基础基础(二二)潘爱民,北京大学计算机研究所潘爱民,北京大学计算机研究所http:/ ReleaseWin2k KerberosuIPSec简介简介Kerberos认证协议认证协议u历史历史80年代中期年代中期是是MIT的的Athena工程的产物工程的产物版本版本前三个版本仅用于内部前三个版本仅用于内部第四版得到了广泛的应用第四版得到了广泛的应用第五版于第五版于1989年开始设计年开始设计RFC 1510,1993年确定年确定标准标准Kerberosu解决的问题解决的问题认证、数据完整性、保密性认证、数据完整性、保密性作为一种认证协议作为一种认证协议u特点特
2、点基于口令的认证协议基于口令的认证协议利用对称密码技术建立起来的认证协议利用对称密码技术建立起来的认证协议可伸缩性可伸缩性可适用于分布式网络环境可适用于分布式网络环境环境特点环境特点User-to-server authentication密钥存储方案密钥存储方案Kerberos协议中一些概念协议中一些概念uPrincipal(安全个体安全个体)被认证的个体,有一个名字被认证的个体,有一个名字(name)和口令和口令(password)uKDC(Key distribution center)是一个网络服务,提供是一个网络服务,提供ticket和临时的会话密钥和临时的会话密钥uTicket一个
3、记录,客户可以用它来向服务器证明自己的身份,其中包一个记录,客户可以用它来向服务器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信息。括客户的标识、会话密钥、时间戳,以及其他一些信息。Ticket 中的大多数信息都被加密,密钥为服务器的密钥中的大多数信息都被加密,密钥为服务器的密钥uAuthenticator一个记录,其中包含一些最近产生的信息,产生这些信息需要一个记录,其中包含一些最近产生的信息,产生这些信息需要用到客户和服务器之间共享的会话密钥用到客户和服务器之间共享的会话密钥uCredentials一个一个ticket加上一个秘密的会话密钥加上一个秘密的会话密钥Ker
4、beros Modelu基本的基本的ticket交换交换Client-KDCc(客户的客户的id),s(服务器的服务器的id),n(nonce)KDC-ClientKc,s,nKc,Tc,sKsClient-ServerAcKc,s,Tc,sKs基本的基本的ticket交换的问题交换的问题u客户个体密钥客户个体密钥Kc的频繁使用的频繁使用uKc的使用对于用户尽可能透明的使用对于用户尽可能透明u可伸缩性可伸缩性u方案方案引入引入TGS(Ticket-granting server)附加的附加的ticket交换交换u引入引入TGS(Ticket-granting service)u两种两种tick
5、etTGT:Tc,tgsKtgsService ticket:Tc,sKs支持可伸缩性的两个概念支持可伸缩性的两个概念uTGSTicket-granting serviceuRealm(域域)与与domain的区别?的区别?每一个安全个体都与一个每一个安全个体都与一个realm相联系相联系从安全性意义上来,是指信任边界从安全性意义上来,是指信任边界Kerberos中中ticket示意图示意图Kerberos消息(消息(1)uClient-Authentication Server(KDC)Options:KDCOptionsIDc:principals nameRealmc:clients r
6、ealmIDtgs:TGSs nameTimes(from,till,rtime)Nonce1可选的扩展信息可选的扩展信息Kerberos消息(消息(2)uAuthentication Server(KDC)-ClientRealmcIDcTickettgsEncryptedData(with Kc)Kc,tgsTimes(LastReq,Key-expiration*,Authtime,Starttime*,Endtime,Renew-till*)Nonce1RealmtgsIDtgsTickettgs信息信息uEncrypted with KtgsFlagsKc,tgsRealmcIDcA
7、DcTimesKerberos消息(消息(3)uC-TGSOptions:KDCOptionsIDv:Servers nameTimes(from*,till,rtime*)Nonce2TickettgsAuthenticatorcAuthenticatoruEncrypted with Kc,tgsIDcRealmcTS1u用途是用途是服务器可用来认证服务器可用来认证Ticket的有效性的有效性TS可告诉服务器客户机当前的时间可告诉服务器客户机当前的时间Kerberos消息(消息(4)uTGS-CRealmcIDcTicketvEncryptedData(with Kc,tgs)Kc,vTi
8、mesNonce2RealmvIDvTicketv信息信息uEncrypted with KvFlagsKc,vRealmcIDcADcTimesKerberos消息(消息(5)uC-ServerOptionsTicketvAuthenticatorcuAuthenticaor:Encrypted with Kc,vRealmcIDcTS2SubkeySeq#Kerberos消息(消息(6)uServer-C(optional)仅用于双向认证仅用于双向认证EncryptedData(with Kc,v)TS2SubkeySeq#Ticket交换中的交换中的flagsuINITIAL是由是由AS
9、发出的发出的ticketuRENEWABLE告诉告诉TGS,当这个当这个ticket过期之后,它可以用过期之后,它可以用来获得一个新的来获得一个新的ticketuMAY-POSTDATE告诉告诉TGS,以后可以根据这个以后可以根据这个ticket(TGT),发出一个发出一个postdate的的ticketuPOSTDATED表示这个表示这个ticket已经被已经被postdatedticket中的中的flags(续续)uINVALIDTicket已经无效,用之前必须先使它有效已经无效,用之前必须先使它有效uPROXIABLE告诉告诉TGS,根据所出示的根据所出示的ticket,发出一个地址不同
10、的发出一个地址不同的新新ticketuPROXY表示这是一个表示这是一个proxy ticketuFORWARDABLE告诉告诉TGS,根据这个根据这个TGT,发出一个地址不同的新发出一个地址不同的新ticketuFORWARDED表明这个表明这个ticket是一个是一个forwarded ticketINITIALu表明一个表明一个ticket是由是由AS发出的发出的u有的应用服务要求客户必须知道有的应用服务要求客户必须知道password,那么它可以要求只接受包含那么它可以要求只接受包含INITIAL标记的标记的ticketu例如,修改口令的应用服务例如,修改口令的应用服务PRE-AUTH
11、ENT&HW-AUTHENTuAS可以要求在发出可以要求在发出ticket之前,先认证客户,因之前,先认证客户,因 此,客户必须提供一个预认证数据块,比如,包此,客户必须提供一个预认证数据块,比如,包含随机数、时间戳,等,然后用客户的私钥加密含随机数、时间戳,等,然后用客户的私钥加密u如果客户没有提供如果客户没有提供AS所要求的预认证数据,则所要求的预认证数据,则AS返回一个返回一个KDC_ERR_PREAUTH_FAILE消消息息u如果如果AS在认证的时候,要求硬件认证支持,则在认证的时候,要求硬件认证支持,则可以指定可以指定HW-AUTHEN标记标记RENEWABLEu如果一个如果一个ti
12、cket设置了设置了RENEWABLE,则则它包含两个过期时间它包含两个过期时间一个是当前一个是当前ticket的过期时间的过期时间另一个是最终的过期时间另一个是最终的过期时间u客户可以请求一个新的客户可以请求一个新的ticket,只要在最只要在最终的过期时间之内,终的过期时间之内,TGS都可以发出新的都可以发出新的ticket,其中过期时间往后延长其中过期时间往后延长u好处好处如果一个如果一个ticket被偷,被偷,TGS可以拒绝发出新的可以拒绝发出新的ticketPOSTDATED和和INVALIDu客户可以先用客户可以先用MAY-POSTDATE向向AS请求请求一个一个TGTu然后,客户
13、利用这个然后,客户利用这个TGT,可以申请一些可以申请一些同时包含同时包含POSTDATED和和INVALID的的tickets,用于以后的会话过程用于以后的会话过程u客户在使用之前,通过客户在使用之前,通过VALIDATE option,先请求先请求TGS使使INVALID ticket有效有效u用处:用处:比如在一个处理时间很长的任务中比如在一个处理时间很长的任务中PROXIABLE和和PROXYuPROXIABLE告诉告诉TGS,根据所出示的根据所出示的ticket,发出一个地址不同的新发出一个地址不同的新ticketuPROXY表示这是一个表示这是一个proxy ticketu用处用处
14、允许客户把一个允许客户把一个proxy传递给传递给server,让这个让这个proxy代替自己完成特定的任务代替自己完成特定的任务u原理原理通过网络地址来认证客户通过网络地址来认证客户FORWARDABLE&FORWARDEDu告诉告诉TGS,根据这个根据这个TGT,发出一个地址发出一个地址不同的新不同的新ticketuFORWARDED表明这个表明这个ticket是一个是一个forwarded ticketu其实也是其实也是proxy的一种情形的一种情形可以完全代替客户的身份可以完全代替客户的身份u一个用途一个用途在跨域认证的时候,客户可以把这样的在跨域认证的时候,客户可以把这样的ticke
15、t出示给其他域的出示给其他域的TGS,这使得客户可以访问这使得客户可以访问其他域的服务器其他域的服务器Cross-realm认证认证uKerberos 4支持跨支持跨realm认证认证Cross-realm认证认证(续续)uKerberos 5支持跨支持跨realm认证认证提供了可伸缩能力提供了可伸缩能力Kerberos数据库数据库uKDC必需一个数据库,保存以下基本信息必需一个数据库,保存以下基本信息Name:principals identifierKey:principals secret keyP_kvno:principals key versionMax_life:maximum
16、lifetime for ticketsMax_renewable_life:u其他的扩展其他的扩展fieldsu数据库的实现取决于具体的数据库的实现取决于具体的Kerberos实现实现,它可以与,它可以与KDC位于不同的服务器,但是位于不同的服务器,但是要保证安全性要保证安全性Kerberos:数据完整性和私有性数据完整性和私有性u完整性完整性对每一个包计算检验和,并加密对每一个包计算检验和,并加密HMAC算法算法u私有性私有性既然客户和服务器已经有了共享随机密钥,既然客户和服务器已经有了共享随机密钥,那么私有性就很容易保证那么私有性就很容易保证Kerberos中加密算法规范中加密算法规范u
17、具体的算法可以在参数中指定具体的算法可以在参数中指定NULL Encryption systemDES in CBC mode with a CRC-32 checksumDES in CBC mode with a MD4 checksumDES in CBC mode with a MD5 checksum关于关于Kerberos的一些讨论的一些讨论u重放攻击重放攻击uCaching authenticatorsu时间服务时间服务u口令猜测攻击口令猜测攻击u数据加密算法的分离数据加密算法的分离u参考:Bel90.S.M.BellovinandM.Merritt,Limitationsoft
18、heKerberosAuthenticationSystem,Computer Communications Review 20(5),pp.119-132(October1990).Kerberos的实现的实现MIT releaseuMIT提供了完整的提供了完整的Kerberos实现实现目前的最新版本为目前的最新版本为1.2源码开放源码开放是其他厂商的重要参考是其他厂商的重要参考支持各种平台支持各种平台(包括包括Windows)同时提供了各种工具(同时提供了各种工具(k系列)系列)kadminu管理管理Kerberos数据库,功能有数据库,功能有显示显示principal的属性的属性获得获得
19、principal列表列表增加、删除或者修改增加、删除或者修改principal修改口令修改口令策略管理策略管理Kadmin举例举例shell%kadminkadmin:getprincjennifer/rootPrincipal:jennifer/rootATHENA.MIT.EDUKeyversion:3Maximumlife:1day00:00:00Maximumrenewablelife:7days00:00:00Masterkeyversion:1Expires:MonJan1822:14:07EDT2038Passwordexpires:MonSep1914:40:00EDT199
20、6Passwordlastchanged:MonJan3102:06:40EDT1996Lastmodified:byjoeadmin/adminATHENA.MIT.EDUonWedJul1318:27:08EDT1996Attributes:DISALLOW_FORWARDABLE,DISALLOW_PROXIABLE,REQUIRES_HW_AUTHSalttype:DEFAULTkadmin:kdb5_kdb5_utilutilu功能功能把把kerberos数据库数据库dump出来出来恢复恢复kerberos数据库数据库创建或者删除一个创建或者删除一个kerberos数据库数据库kin
21、itukinit获得一个获得一个ticket例如例如shell%kinitPasswordforjenniferATHENA.MIT.EDU:-Typejenniferspasswordhere.shell%如果口令不正确,则如果口令不正确,则:shell%kinitPasswordforjenniferATHENA.MIT.EDU:-Typethewrongpasswordhere.kinit:Passwordincorrectshell%klistu列出所有的列出所有的ticketsshell%klistTicketcache:/tmp/krb5cc_ttypaDefaultprincip
22、al:jenniferATHENA.MIT.EDUValidstartingExpiresServiceprincipal06/07/9619:49:2106/08/9605:49:19krbtgt/ATHENA.MIT.EDUATHENA.MIT.EDU06/07/9620:22:3006/08/9605:49:19host/daffodil.mit.eduATHENA.MIT.EDU06/07/9620:24:1806/08/9605:49:19krbtgt/FUBAR.ORGATHENA.MIT.EDU06/07/9620:24:1806/08/9605:49:19host/trilli
23、um.fubar.orgATHENA.MIT.EDUshell%kpasswd u修改口令修改口令shell%kpasswdOldpasswordfordavid:-Typeyouroldpassword.NewPasswordfordavid:-Typeyournewpassword.Verifying,pleasere-enterNewPasswordfordavid:-Typethenewpasswordagain.Passwordchanged.shell%Kerberos应用应用:telnetshell%telnetdaffodil.mit.eduTrying128.0.0.5.Co
24、nnectedtodaffodil.mit.edu.Escapecharacteris.NetBSD/i386(daffodil)(ttyp3)login:davidPassword:-davidtypeshispasswordhereLastlogin:FriJun2117:13:11fromtrillium.fubar.orgCopyright(c)1980,1983,1986,1988,1990,1991,1993,1994TheRegentsoftheUniversityofCalifornia.Allrightsreserved.NetBSD1.1:TueMay2100:31:42E
25、DT1996WelcometoNetBSD!shell%Kerberos应用应用:rloginshell%rlogindaffodil.mit.edu-ldavidPassword:protectprivate200ProtectionlevelsettoPrivate.ftpcdjennifer/MAIL250CWDcommandsuccessful.ftpgetRMAIL227EnteringPassiveMode(128,0,0,5,16,49)150OpeningBINARYmodedataconnectionforRMAIL(361662bytes).226Transfercompl
26、ete.361662bytesreceivedin2.5seconds(1.4e+02Kbytes/s)ftpquitshell%其他其他Kerberos命令命令ukdestroyurshuksuurcpKerberos配置文件配置文件ukrb5.conf,Kerberos配置信息,例如配置信息,例如libdefaultsticket_lifetime=600default_realm=ATHENA.MIT.EDUdefault_tkt_enctypes=des3-hmac-sha1des-cbc-crcdefault_tgs_enctypes=des3-hmac-sha1des-cbc-cr
27、crealmsATHENA.MIT.EDU=kdc=kerberos.mit.edukdc=kerberos-1.mit.edukdc=kerberos-2.mit.eduadmin_server=kerberos.mit.edudefault_domain=mit.eduFUBAR.ORG=kdc=kerberos.fubar.orgkdc=kerberos-1.fubar.orgadmin_server=kerberos.fubar.orgdomain_realm.mit.edu=ATHENA.MIT.EDUmit.edu=ATHENA.MIT.EDUKerberos配置文件配置文件ukd
28、c.conf,KDC的配置,例如的配置,例如kdcdefaultskdc_ports=88realmsATHENA.MIT.EDU=kadmind_port=749max_life=10h0m0smax_renewable_life=7d0h0m0smaster_key_type=des3-hmac-sha1supported_enctypes=des3-hmac-sha1:normal des-cbc-crc:normaldes-cbc-crc:v4kdc_supported_enctypes=des3-hmac-sha1:normaldes-cbc-crc:normaldes-cbc-cr
29、c:v4loggingkdc=FILE:/usr/local/var/krb5kdc/kdc.logadmin_server=FILE:/usr/local/var/krb5kdc/kadmin.logKerberos缺省端口配置缺省端口配置ftp21/tcp#Kerberosftpandtelnetusethetelnet23/tcp#defaultportskerberos88/udpkdc#KerberosV5KDCkerberos88/tcpkdc#KerberosV5KDCklogin543/tcp#Kerberosauthenticatedrloginkshell544/tcpcm
30、d#andremoteshellkerberos-adm749/tcp#Kerberos5admin/changepwkerberos-adm749/udp#Kerberos5admin/changepwkrb5_prop754/tcp#Kerberosslavepropagationeklogin2105/tcp#Kerberosauth.&encryptedrloginkrb5244444/tcp#Kerberos5to4tickettranslatorKerberos协议的实现协议的实现MS版本版本uKerberos代替代替Windows NT的的NT LM认证认证协议,是协议,是Win
31、2000的默认认证协议,也是的默认认证协议,也是Windows 2000分布式安全服务的一部分分布式安全服务的一部分u与与Windows 2000的目录服务集成在一起的目录服务集成在一起Kerberos数据库是数据库是AD的一部分的一部分u与系统的授权数据信息结合在一起与系统的授权数据信息结合在一起u对对MIT Kerberos作了扩展,也不完全兼容作了扩展,也不完全兼容Win2k Kerberos的实现形式的实现形式u形式:形式:Security Service Provider(SSP)Security Support Provider Interface(SSPI)u对上层应用透明对上层
32、应用透明Win2k Kerberos的的Ticket结构结构Ticket交换交换u登录登录u访问远程服务访问远程服务Win2k Kerberos DelegationuServer S代表客户申请一个新的代表客户申请一个新的ticketu利用利用ticket的的FORWARD标志特性标志特性Win2k Kerberos跨域认证跨域认证关于关于Win2k Kerberosu功能功能实现了可传递的域信任关系实现了可传递的域信任关系实现了服务的实现了服务的delegation与其他的系统服务之间的集成与其他的系统服务之间的集成u兼容性问题兼容性问题与与MIT采用的默认算法不同采用的默认算法不同,不过
33、,可以协商不过,可以协商MIT使用使用DES,MS使用使用RC4口令的散列算法不同口令的散列算法不同MIT使用一个使用一个string-to-key算法,算法,MS使用使用MD4授权域信息不兼容授权域信息不兼容安全个体的映射关系安全个体的映射关系IPSecu网络层安全性网络层安全性着眼:真实性着眼:真实性(认证认证)、完整性和保密性完整性和保密性好处:对于应用层透明好处:对于应用层透明可以针对链路,也可以针对最终用户可以针对链路,也可以针对最终用户可以实现在防火墙或者路由器上可以实现在防火墙或者路由器上弥补弥补IPv4在协议设计时缺乏安全性考虑的不在协议设计时缺乏安全性考虑的不足足uIETF成
34、立专门的成立专门的WG标准化标准化IPSec目前已有一系列的目前已有一系列的RFC和和Internet Draft文档结构复杂文档结构复杂IP Security示意图示意图IPSec的应用的应用u通过通过Internet建立分支机构建立分支机构u通过通过Internet远程访问企业内部网络远程访问企业内部网络u合作伙伴之间通过合作伙伴之间通过Internet建立信任关系建立信任关系u也可用于电子商务应用也可用于电子商务应用uIPSec最常见的应用最常见的应用VPNIPSec的内容的内容u协议包括两大部分协议包括两大部分AH:Authentication HeaderESP:Encapsulat
35、ing Security Payloadu密钥管理密钥管理(Key Management)SA(Security Association)ISAKMP定义了密钥管理框架定义了密钥管理框架IKE是目前正式确定的密钥交换协议是目前正式确定的密钥交换协议SA(Security Association)u基本概念基本概念是发送者和接收者两个是发送者和接收者两个IPSec系统之间的一个系统之间的一个简单的单向逻辑连接,是与给定的一个网络简单的单向逻辑连接,是与给定的一个网络连接或一组网络连接相关联的安全信息参数连接或一组网络连接相关联的安全信息参数集合集合因为因为SA是单个方向的,所以,对于一个双向是单
36、个方向的,所以,对于一个双向通信,则需要两个通信,则需要两个SAuSA与与IPSec系统中实现的两个数据库有关系统中实现的两个数据库有关安全策略数据库安全策略数据库安全关联数据库安全关联数据库AH(Authentication Header)u为为IP包提供数据完整性和认证功能包提供数据完整性和认证功能u利用利用MAC码实现认证,双方必须共享一个码实现认证,双方必须共享一个密钥密钥u认证算法由认证算法由SA指定指定u两种认证模式:两种认证模式:传输模式:不改变传输模式:不改变IP地址,插入一个地址,插入一个AH隧道模式:生成一个新的隧道模式:生成一个新的IP头,把头,把AH和原来和原来的整个的
37、整个IP包放到新包放到新IP包的净荷数据中包的净荷数据中AH两种模式示意图两种模式示意图传输模式隧道模式ESP(Encapsulating Security Payload)u提供保密功能,也可以提供认证服务提供保密功能,也可以提供认证服务u将需要保密的用户数据进行加密后再封装将需要保密的用户数据进行加密后再封装到到IP包中,包中,ESP只认证只认证ESP头之后的信息头之后的信息u认证算法也由认证算法也由SA指定指定u也有两种模式:传输模式和隧道模式也有两种模式:传输模式和隧道模式ESP两种模式示意图两种模式示意图OrigIPHdrESPhdrTCPDataESPtrlrESPauthESPh
38、drESPauthESPtrlrDataTCPOrigIPhdrNewIPHdr经认证的数据经加密的数据(2)隧道模式经认证的数据经加密的数据(1)传输模式参考资料参考资料u书书William Stallings,Cryptography and network security:principles and practice,Second Editionu文章文章RFC 1510Bel90.S.M.BellovinandM.Merritt,LimitationsoftheKerberosAuthenticationSystem,Computer Communications Review 2
39、0(5),pp.119-132(October1990).John T.Kohl,B.Clifford Neuman,Theodore Y.Tso,“The Evolution of the Kerberos Authentication Service”,Proceedings of the Spring 1991 EurOpen ConferenceB.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.1999uWeb站点站点http:/web.mit.edu/kerberos/www/
限制150内