版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络与信息安全
安全基础(二)潘爱民,北京大学计算机研究所http://www.icst.pku.edu.cn/InfoSecCourse内容Kerberos协议Kerberos中ticket的flagKerberos实现MITReleaseWin2kKerberosIPSec简介Kerberos认证协议历史80年代中期是MIT的Athena工程的产物版本前三个版本仅用于内部第四版得到了广泛的应用第五版于1989年开始设计RFC1510,1993年确定标准Kerberos解决的问题认证、数据完整性、保密性作为一种认证协议特点基于口令的认证协议利用对称密码技术建立起来的认证协议可伸缩性——可适用于分布式网络环境环境特点User-to-serverauthentication密钥存储方案Kerberos协议中一些概念KerberosModel基本的ticket交换Client->KDCc(客户的id),s(服务器的id),n(nonce)KDC->Client{Kc,s,n}Kc,{Tc,s}KsClient->Server{Ac}Kc,s,{Tc,s}Ks基本的ticket交换的问题客户个体密钥Kc的频繁使用Kc的使用对于用户尽可能透明可伸缩性方案引入TGS(Ticket-grantingserver)附加的ticket交换引入TGS(Ticket-grantingservice)两种ticketTGT:
{Tc,tgs}KtgsServiceticket:
{Tc,s}Ks支持可伸缩性的两个概念TGSTicket-grantingserviceRealm(域)与domain的区别?每一个安全个体都与一个realm相联系从安全性意义上来,是指信任边界Kerberos中ticket示意图Kerberos消息(1)Client->AuthenticationServer(KDC)Options:KDCOptionsIDc:principal’snameRealmc:client’srealmIDtgs:TGS’snameTimes(from,till,rtime)Nonce1可选的扩展信息Kerberos消息(2)AuthenticationServer(KDC)->ClientRealmcIDcTickettgsEncryptedData(withKc)Kc,tgsTimes(LastReq,Key-expiration*,Authtime,Starttime*,Endtime,Renew-till*)Nonce1RealmtgsIDtgsTickettgs信息EncryptedwithKtgsFlagsKc,tgsRealmcIDcADcTimesKerberos消息(3)C->TGSOptions:KDCOptionsIDv:Server’snameTimes(from*,till,rtime*)Nonce2TickettgsAuthenticatorcAuthenticatorEncryptedwithKc,tgsIDcRealmcTS1用途是服务器可用来认证Ticket的有效性TS可告诉服务器客户机当前的时间Kerberos消息(4)TGS->CRealmcIDcTicketvEncryptedData(withKc,tgs)Kc,vTimesNonce2RealmvIDvTicketv信息EncryptedwithKvFlagsKc,vRealmcIDcADcTimesKerberos消息(5)C->ServerOptionsTicketvAuthenticatorcAuthenticaor:EncryptedwithKc,vRealmcIDcTS2SubkeySeq#Kerberos消息(6)Server->C(optional)
仅用于双向认证EncryptedData(withKc,v)TS2SubkeySeq#Ticket交换中的flagsINITIAL是由AS发出的ticketRENEWABLE告诉TGS,当这个ticket过期之后,它可以用来获得一个新的ticketMAY-POSTDATE告诉TGS,以后可以根据这个ticket(TGT),发出一个postdate的ticketPOSTDATED表示这个ticket已经被postdatedticket中的flags(续)INVALIDTicket已经无效,用之前必须先使它有效PROXIABLE告诉TGS,根据所出示的ticket,发出一个地址不同的新ticketPROXY表示这是一个proxyticketFORWARDABLE告诉TGS,根据这个TGT,发出一个地址不同的新ticketFORWARDED表明这个ticket是一个forwardedticketINITIALPRE-AUTHENT&HW-AUTHENTAS可以要求在发出ticket之前,先认证客户,因此,客户必须提供一个预认证数据块,比如,包含随机数、时间戳,等,然后用客户的私钥加密如果客户没有提供AS所要求的预认证数据,则AS返回一个KDC_ERR_PREAUTH_FAILE消息如果AS在认证的时候,要求硬件认证支持,则可以指定HW-AUTHEN标记RENEWABLE如果一个ticket设置了RENEWABLE,则它包含两个过期时间一个是当前ticket的过期时间另一个是最终的过期时间客户可以请求一个新的ticket,只要在最终的过期时间之内,TGS都可以发出新的ticket,其中过期时间往后延长好处如果一个ticket被偷,TGS可以拒绝发出新的ticketPOSTDATED和INVALID客户可以先用MAY-POSTDATE向AS请求一个TGT然后,客户利用这个TGT,可以申请一些同时包含POSTDATED和INVALID的tickets,用于以后的会话过程客户在使用之前,通过VALIDATEoption,先请求TGS使INVALIDticket有效用处:比如在一个处理时间很长的任务中PROXIABLE和PROXYPROXIABLE告诉TGS,根据所出示的ticket,发出一个地址不同的新ticketPROXY表示这是一个proxyticket用处允许客户把一个proxy传递给server,让这个proxy代替自己完成特定的任务原理通过网络地址来认证客户FORWARDABLE&FORWARDED告诉TGS,根据这个TGT,发出一个地址不同的新ticketFORWARDED表明这个ticket是一个forwardedticket其实也是proxy的一种情形可以完全代替客户的身份一个用途在跨域认证的时候,客户可以把这样的ticket出示给其他域的TGS,这使得客户可以访问其他域的服务器Cross-realm认证Kerberos4支持跨realm认证Cross-realm认证(续)Kerberos5支持跨realm认证提供了可伸缩能力Kerberos数据库KDC必需一个数据库,保存以下基本信息Name:principal’sidentifierKey:principal’ssecretkeyP_kvno:principal’skeyversionMax_life:maximumlifetimeforticketsMax_renewable_life:其他的扩展fields数据库的实现取决于具体的Kerberos实现,它可以与KDC位于不同的服务器,但是要保证安全性Kerberos:数据完整性和私有性完整性对每一个包计算检验和,并加密HMAC算法私有性既然客户和服务器已经有了共享随机密钥,那么私有性就很容易保证Kerberos中加密算法规范具体的算法可以在参数中指定NULLEncryptionsystemDESinCBCmodewithaCRC-32checksumDESinCBCmodewithaMD4checksumDESinCBCmodewithaMD5checksum……关于Kerberos的一些讨论重放攻击Cachingauthenticators时间服务口令猜测攻击数据加密算法的分离……参考:Bel90.S.M.BellovinandM.Merritt,
‘‘LimitationsoftheKerberosAuthenticationSystem,’’
ComputerCommunicationsReview20(5),
pp.119-132(October1990).Kerberos的实现——MITreleaseMIT提供了完整的Kerberos实现目前的最新版本为1.2源码开放是其他厂商的重要参考支持各种平台(包括Windows)同时提供了各种工具(k系列)kadmin管理Kerberos数据库,功能有显示principal的属性获得principal列表增加、删除或者修改principal修改口令策略管理Kadmin举例kdb5_util功能把kerberos数据库dump出来恢复kerberos数据库创建或者删除一个kerberos数据库kinitkinit获得一个ticket例如klist列出所有的ticketsshell%klistTicketcache:/tmp/krb5cc_ttypaDefaultprincipal:jennifer@ATHENA.MIT.EDU
ValidstartingExpiresServiceprincipal06/07/9619:49:2106/08/9605:49:19krbtgt/ATHENA.MIT.EDU@ATHENA.MIT.EDU06/07/9620:22:3006/08/9605:49:19host/daffodil.mit.edu@ATHENA.MIT.EDU06/07/9620:24:1806/08/9605:49:19krbtgt/FUBAR.ORG@ATHENA.MIT.EDU06/07/9620:24:1806/08/9605:49:19host/trillium.fubar.org@ATHENA.MIT.EDUshell%kpasswd修改口令Kerberos应用:telnetKerberos应用:rloginKerberos应用:ftpshell%ftpdaffodil.mit.eduConnectedtodaffodil.mit.edu.220daffodil.mit.eduFTPserver(Version5.60)ready.334UsingauthenticationtypeGSSAPI;ADATmustfollowGSSAPIacceptedasauthenticationtypeGSSAPIauthenticationsucceededName(daffodil.mit.edu:jennifer):232GSSAPIuserjennifer@ATHENA.MIT.EDUisauthorizedasjennifer230Userjenniferloggedin.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>protectprivate200ProtectionlevelsettoPrivate.ftp>cd~jennifer/MAIL250CWDcommandsuccessful.ftp>getRMAIL227EnteringPassiveMode(128,0,0,5,16,49)150OpeningBINARYmodedataconnectionforRMAIL(361662bytes).226Transfercomplete.361662bytesreceivedin2.5seconds(1.4e+02Kbytes/s)ftp>quitshell%
其他Kerberos命令kdestroyrshksurcpKerberos配置文件krb5.conf,Kerberos配置信息,例如[libdefaults]ticket_lifetime=600default_realm=ATHENA.MIT.EDUdefault_tkt_enctypes=des3-hmac-sha1des-cbc-crcdefault_tgs_enctypes=des3-hmac-sha1des-cbc-crc
[realms]ATHENA.MIT.EDU={kdc=kerberos.mit.edukdc=kerberos-1.mit.edukdc=kerberos-2.mit.eduadmin_server=kerberos.mit.edudefault_domain=mit.edu}FUBAR.ORG={kdc=kerberos.fubar.orgkdc=kerberos-1.fubar.orgadmin_server=kerberos.fubar.org}
[domain_realm].mit.edu=ATHENA.MIT.EDUmit.edu=ATHENA.MIT.EDU
Kerberos配置文件kdc.conf,KDC的配置,例如[kdcdefaults]kdc_ports=88
[realms]ATHENA.MIT.EDU={kadmind_port=749max_life=10h0m0smax_renewable_life=7d0h0m0smaster_key_type=des3-hmac-sha1supported_enctypes=des3-hmac-sha1:normaldes-cbc-crc:normaldes-cbc-crc:v4kdc_supported_enctypes=des3-hmac-sha1:normaldes-cbc-crc:normaldes-cbc-crc:v4}
[logging]kdc=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/tcpcmd#andremoteshellkerberos-adm749/tcp#Kerberos5admin/changepwkerberos-adm749/udp#Kerberos5admin/changepwkrb5_prop754/tcp#Kerberosslavepropagationeklogin2105/tcp#Kerberosauth.&encryptedrloginkrb5244444/tcp#Kerberos5to4tickettranslatorKerberos协议的实现——MS版本Kerberos代替WindowsNT的NTLM认证协议,是Win2000的默认认证协议,也是Windows2000分布式安全服务的一部分与Windows2000的目录服务集成在一起Kerberos数据库是AD的一部分与系统的授权数据信息结合在一起对MITKerberos作了扩展,也不完全兼容Win2kKerberos的实现形式Win2kKerberos的Ticket结构Ticket交换登录访问远程服务Win2kKerberosDelegationServerS代表客户申请一个新的ticket利用ticket的FORWARD标志特性Win2kKerberos跨域认证关于Win2kKerberos功能实现了可传递的域信任关系实现了服务的delegation与其他的系统服务之间的集成兼容性问题与MIT采用的默认算法不同,不过,可以协商
MIT使用DES,MS使用RC4口令的散列算法不同
MIT使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆伊犁哈萨克自治州部分学校2025-2026学年高一下学期期末学情质量监测政治试题(文字版含答案)
- 年产350套矿用矿车生产项目可行性研究报告
- 茶叶科技成果转化中心可行性研究报告
- 四川成都八年级语文上册期中复习《写作》专项练习题
- Unit 5 Do you like pears匹配题-三年级英语下学期(人教PEP版)
- 2026人教版九年级英语上册课文翻译+原文
- 《模板的应用》课件
- 2026年江苏省部编版初中历史八年级上册第7章世界历史综合测试卷
- 农民信箱万村联网工程培训教程
- 化工传递作业题解答
- 新版(2026秋)人教版(新教材)六年级数学上册全册教案合集
- 初中数学八年级上册《因式分解》单元教案
- 2026磷化集团 面试题及答案
- 新生儿脑出血外科治疗
- 2026人教版五年级数学上册第一单元第1课《观察简单组合体(1)》课件
- 2026年秋季冀人版小学科学四年级上册教学计划
- 领取现金协议书样本
- 2026-2030中国心律管理系统行业市场发展趋势与前景展望战略分析研究报告
- 2026中级注册安全工程师《安全生产技术基础》培训课件
- 广东能源微藻减排转化利用火电机组二氧化碳产业化示范工程项目环境影响报告表
- 2026年湖北省科技信息专业技术职务水平能力考试(科技信息)自测试题及答案解析
评论
0/150
提交评论