《[精选]数字签名与认证协议.pptx》由会员分享,可在线阅读,更多相关《[精选]数字签名与认证协议.pptx(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络与信息安全网络与信息安全 Information and Network Security 数字签名与认证协议数字签名与认证协议Digital Signature And Authentication Protocols 数字签名数字签名传统签名的基本特点传统签名的基本特点:能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割签名者不能否认自己的签名签名者不能否认自己的签名签名不能被伪造签名不能被伪造容易被验证容易被验证数字签名是传统签名的数字化数字签名是传统签名的数字化,基本要求基本要求:能与所签文件能与所签文件“绑定绑定签名者不能否认自己的签名签名者不能否认自己的签名签名不能被
2、伪造签名不能被伪造容易被验证容易被验证公钥算法的一个最重要的开展是数字签名。公钥算法的一个最重要的开展是数字签名。数字签名数字签名Message authentication用以保护双方之间的用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定方自身的相互欺骗。假定A发送一个认证的发送一个认证的信息给信息给B,双方之间的争议可能有多种形式:,双方之间的争议可能有多种形式:B伪造一个不同的消息,但声称是从伪造一个不同的消息,但声称是从A收到的。收到的。A可以否认发过该消息,可以否认发过该消息,B无法证明无法证明A确实发了确实发了该消
3、息。该消息。例如:改大金额;股票交易指令亏损后抵赖。例如:改大金额;股票交易指令亏损后抵赖。数字签名应具有的性质数字签名应具有的性质必须能够验证作者及其签名的日期时间;必须能够验证作者及其签名的日期时间;必须能够认证签名时刻的内容;必须能够认证签名时刻的内容;签名必须能够由第三方验证,以解决争签名必须能够由第三方验证,以解决争议;议;因此,数字签名功能包含了认证的功能。因此,数字签名功能包含了认证的功能。数字签名的设计要求数字签名的设计要求签名必须是依赖于被签名信息的一个位串模签名必须是依赖于被签名信息的一个位串模板;板;签名必须使用某些对发送者是唯一的信息,签名必须使用某些对发送者是唯一的信
4、息,以防止双方的伪造与否认;以防止双方的伪造与否认;必须相对容易生成该数字签名;必须相对容易生成该数字签名;必须相对容易识别和验证该数字签名;必须相对容易识别和验证该数字签名;伪造该数字签名在计算复杂性意义上具有不伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个新的消息,也包括对一个给定消息伪造一个数字签名;数字签名;在存储器中保存一个数字签名副本是现实可在存储器中保存一个数字签名副本是现实可行的。行的。两类数字签名函数两类数字签名函数直接数字签名直接数字签名仲裁数字签名仲裁数字签名直接数字
5、签名直接数字签名DDS1 AB:EKRaM提供了认证与签名:提供了认证与签名:只有只有A具有具有KRa进行加密进行加密;传输中无法被篡改;传输中无法被篡改;任何第三方可以用任何第三方可以用KUa 验证签名验证签名1 AB:EKUb EKRaM提供了保密提供了保密KUb、认证与签名、认证与签名KRa:数字签名方案数字签名方案先对消息先对消息M作一个作一个 HM然后发送方用自己的私钥对然后发送方用自己的私钥对HM进行加进行加密,得到签名密,得到签名EKRaHM连同消息连同消息M一起,发送出去一起,发送出去B收到复合的消息之后,把签名提取出来收到复合的消息之后,把签名提取出来B用用A的公钥对签名解密
6、得到的公钥对签名解密得到MB计算所收到消息的计算所收到消息的 H=HM如果如果H=HM,则消息确实是,则消息确实是A产生的产生的问题问题公钥的管理,公钥与身份的对应关系公钥的管理,公钥与身份的对应关系签名的有效性,私钥丧失?签名的有效性,私钥丧失?直接数字签名直接数字签名2 提供认证及数字签名提供认证及数字签名 AB:M|EKRaHM -HM 受到密码算法的保护;受到密码算法的保护;-只有只有 A 能够生成能够生成 EKRaHM 2 提供保密性、认证和数字签名。提供保密性、认证和数字签名。AB:EKM|EKRaHMH|MKRaMDKUaH pareEKRa HM数字签名方案一数字签名方案一AB
7、ERAS 的方案的方案MH|MHMEKRaDKUaMHMH pare数字签名方案二数字签名方案二ABH|EKRaMDKUaMH pareEKRaMEKRaMHEKRaM数字签名方案二数字签名方案二*AB直接数字签名的缺点直接数字签名的缺点验证模式依赖于发送方的保密密钥;验证模式依赖于发送方的保密密钥;发送方要抵赖发送某一消息时,可能会声称其发送方要抵赖发送某一消息时,可能会声称其私有密钥丧失或被窃,从而他人伪造了他的签私有密钥丧失或被窃,从而他人伪造了他的签名。名。通常需要采用与私有密钥安全性相关的行政管通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但理控制手段
8、来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。威胁在某种程度上依然存在。改进的方式例如可以要求被签名的信息包含一改进的方式例如可以要求被签名的信息包含一个时间戳日期与时间,并要求将已暴露的个时间戳日期与时间,并要求将已暴露的密钥报告给一个授权中心。密钥报告给一个授权中心。A的某些私有密钥确实在时间的某些私有密钥确实在时间T被窃取,敌方可被窃取,敌方可以伪造以伪造A的签名及早于或等于时间的签名及早于或等于时间T的时间戳。的时间戳。仲裁数字签名仲裁数字签名引入仲裁者。引入仲裁者。通常的做法是所有从发送方通常的做法是所有从发送方A到接收方到接收方B的签的签名消息首先送到仲裁者名消息首先送到
9、仲裁者S,S将消息及其签名将消息及其签名进行一系列测试,以检查其来源和内容,然进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过后将消息加上日期并与已被仲裁者验证通过的指示一起发给的指示一起发给B。仲裁者在这一类签名模式中扮演敏感和关键的仲裁者在这一类签名模式中扮演敏感和关键的角色。角色。所有的参与者必须极大地相信这一仲裁机制所有的参与者必须极大地相信这一仲裁机制工作正常。工作正常。trusted systema 单密钥加密方式,仲裁者可以看见消息单密钥加密方式,仲裁者可以看见消息1 AS:M|EKASIDA|HM2 SB:EKSBIDA|M|EKASIDA|HM|T
10、A与与S之间共享密钥之间共享密钥KAS,B与与S之间共享密钥之间共享密钥KSB;A:准备消息准备消息M,计算其散列码,计算其散列码HM,用,用A的标识符的标识符IDA 和散列值构成和散列值构成 签名,并将消息及签名经签名,并将消息及签名经KAS加密后发送给加密后发送给S;S:解密签名,用:解密签名,用HM验证消息验证消息M,然后将,然后将IDA,M,签名,和时间戳,签名,和时间戳 一起经一起经KSB加密后发送给加密后发送给B;B:解密:解密S发来的信息,并可将发来的信息,并可将M和签名保存起来。和签名保存起来。解决纠纷:解决纠纷:B:向:向S发送发送 EKSBIDA|M|EKASIDA|HM
11、S:用:用KSB恢复恢复IDA,M,和签名,和签名 EKASIDA|HM,然后,然后用用 KAS解密签名并验证散列码解密签名并验证散列码仲裁数字签名技术仲裁数字签名技术注意:注意:在这种模式下在这种模式下B不能直接验证不能直接验证A的签名,的签名,B认为认为S的消息已认证,只的消息已认证,只 因为它来自因为它来自S。因此,双方都需要高度相信。因此,双方都需要高度相信S:A必须信任必须信任S没有暴露没有暴露KAS,并且没有生成错误的签名,并且没有生成错误的签名EKASIDA|HM B必须信任必须信任S仅当散列值正确并且签名确实是仅当散列值正确并且签名确实是A产生的情况下才产生的情况下才 发送的发
12、送的 EKSBIDA|M|EKASIDA|HM|T 双方都必须信任双方都必须信任S处理争议是公正的。处理争议是公正的。只要只要S遵循上述要求,则遵循上述要求,则A相信没有人可以伪造其签名;相信没有人可以伪造其签名;B相信相信A不不能否认其签名。能否认其签名。上述情况还隐含着上述情况还隐含着S可以看到可以看到A给给B的所有信息,因而所有的窃听者的所有信息,因而所有的窃听者也能看到。也能看到。b 单密钥加密方式,仲裁者不可以看见消息单密钥加密方式,仲裁者不可以看见消息1 AS:IDA|EKABM|EKASIDA|HEKABM2 SB:EKSBIDA|EKABM|EKASIDA|HEKABM|T在这
13、种情况下,在这种情况下,A与与B之间共享密钥之间共享密钥KAB,A:将标识符:将标识符IDA,密文密文 EKABM,以及对,以及对IDA和密文消息的散列码用和密文消息的散列码用 KAS加密后形成签名加密后形成签名发送给发送给S。S:解密签名,用散列码验证消息,这时:解密签名,用散列码验证消息,这时S只能验证消息的密文而不只能验证消息的密文而不 能读取其内容。然后能读取其内容。然后S将来自将来自A的所有信息加上时间戳并用的所有信息加上时间戳并用KSB加加 密后发送给密后发送给B。a和和b共同存在一个共性问题:共同存在一个共性问题:S和发送方联手可以否认签名的信息;和发送方联手可以否认签名的信息;
14、S和接收方联手可以伪造发送方的签名;和接收方联手可以伪造发送方的签名;c 双密钥加密方式,仲裁者不可以看见消息双密钥加密方式,仲裁者不可以看见消息1 AS:IDA|EKRAIDA|EKUB EKRAM2 SB:EKRSIDA|EKUBEKRAM|TA:对消息对消息M双重加密:首先用双重加密:首先用A的私有密钥的私有密钥KRA,然后用,然后用B的公开的公开 密钥密钥KUB。形成一个签名的、保密的消息。然后将该信息以及。形成一个签名的、保密的消息。然后将该信息以及 A的标识符一起用的标识符一起用KRA签名后与签名后与IDA 一起发送给一起发送给S。这种内部、。这种内部、双重加密的消息对双重加密的消
15、息对S以及对除以及对除B以外的其它人都是安全的。以外的其它人都是安全的。S:检查:检查A的公开的公开/私有密钥对是否仍然有效,是,则认证消息。并私有密钥对是否仍然有效,是,则认证消息。并 将包含将包含IDA、双重加密的消息和时间戳构成的、双重加密的消息和时间戳构成的 消息用消息用KRS签名后签名后 发送给发送给B。本模式比上述两个模式具有以下好处:本模式比上述两个模式具有以下好处:1、在通信之前各方之间无须共享任何信息,从而防止了联手、在通信之前各方之间无须共享任何信息,从而防止了联手 ;2、即使、即使KRA 暴露,只要暴露,只要KRS 未暴露,不会有错误标定日期的消息未暴露,不会有错误标定日
16、期的消息 被发送;被发送;3、从、从A发送给发送给B的消息的内容对的消息的内容对S和任何其他人是保密的。和任何其他人是保密的。认证协议认证协议认证协议认证协议安全层次安全层次安全的密码算法安全协议网络安全系统安全应用安全回忆:信息安全的需求回忆:信息安全的需求保密性保密性Confidentiality完整性完整性Integrity系统完整性系统完整性数据完整性数据完整性可用性可用性Availability真实性真实性 authenticity认证认证消息认证消息认证身份认证:验证真实身份和所声称身份相符的过程身份认证:验证真实身份和所声称身份相符的过程认证协议认证协议基于对称密码算法的认证方案
17、基于对称密码算法的认证方案是否需要密钥分发中心是否需要密钥分发中心KDC?对于协议的攻击手法对于协议的攻击手法认证的对象认证的对象消息发送方消息发送方消息本身消息本身基于公钥密码算法的认证方案基于公钥密码算法的认证方案公钥和身份的绑定公钥和身份的绑定基于对称密码算法的认证基于对称密码算法的认证消息认证消息认证MAC码或者码或者HMAC码码前提:存在共享密钥前提:存在共享密钥密钥管理中心密钥管理中心或者用一个密钥交换协议或者用一个密钥交换协议身份认证身份认证依据依据所知:口令、密钥,等所知:口令、密钥,等所有:身份证、智能卡,等所有:身份证、智能卡,等物理标识:指纹、笔迹、虹膜、物理标识:指纹、
18、笔迹、虹膜、DNA,等,等基于口令基于口令证明是否知道口令证明是否知道口令口令的强度口令的强度双方认证双方认证 mutual authentication和单向认证和单向认证 one-way authentication目的:分发密钥、签名有效性,目的:分发密钥、签名有效性,认证方式认证方式两方通讯两方通讯一方发起通讯,另一方应答一方发起通讯,另一方应答双向双向mutual authentication和单向认证和单向认证one-way authentication有第三方介入的认证有第三方介入的认证第三方为可信任方,第三方为可信任方,KDC在线和离线在线和离线其他情形其他情形多方认证多方认证
19、跨域认证跨域认证委托认证模型、信任模型委托认证模型、信任模型认证协议:设计一个协议一认证协议:设计一个协议一假设假设A和和B要进行通讯,要进行通讯,A和和B有一个共享的密钥有一个共享的密钥Kab,如何如何利用这个密钥进行认证,并且商定一个会话密钥利用这个密钥进行认证,并且商定一个会话密钥Ks1 AB:IDA|N12 BA:EKabKs,IDB,fN1,N23 AB:EKsfN2 这里的这里的f函数为某个确定的运算,比方函数为某个确定的运算,比方fx=x+1AKabB1、我是A2、告诉你Ks,以后就用它,别让别人知道 3、好的,我用它试试,可我怎么知道Ks 4、如果你知道Kab,那么你就知道Ks
20、,我就知道你是A认证协议:设计一个协议二认证协议:设计一个协议二假设假设A和和B要进行通讯,要进行通讯,A和和B与与KDC各有一个共享密钥各有一个共享密钥Ka和和Kb,如何如何利用这两个密钥进行认证,并且商定一个会话密钥利用这两个密钥进行认证,并且商定一个会话密钥KsAKDC:IDA|IDB|N1KDCA:EKaKs|IDB|N1|EKbKs,IDAAB:EKbKs,IDA|EKsMAKbB我是A,我想和B通讯 KDC Ka我把必要的信息告诉你我把消息给你,如果你是B,你就可以解开会话密钥Ks,由A送给B的认证信息认证协议中的常用技术一认证协议中的常用技术一时间戳时间戳A收到一个消息,根据消息
21、中的时间戳信息,收到一个消息,根据消息中的时间戳信息,判断消息的有效性判断消息的有效性如果消息的时间戳与如果消息的时间戳与A所知道的当前时间足够接近所知道的当前时间足够接近这种方法要求不同参与者之间的时钟需要同步这种方法要求不同参与者之间的时钟需要同步在网络环境中,特别是在分布式网络环境中,时钟同在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到步并不容易做到一旦时钟同步失败一旦时钟同步失败要么协议不能正常效劳,影响可用性要么协议不能正常效劳,影响可用性availability,造,造成拒绝效劳成拒绝效劳DOS要么放大时钟窗口,造成攻击的时机要么放大时钟窗口,造成攻击的时机时间窗大小
22、的选择应根据消息的时效性来确定时间窗大小的选择应根据消息的时效性来确定认证协议中的常见技术二认证协议中的常见技术二询问询问/应答方式应答方式Challenge/ResponseA期望从期望从B获得一个条件获得一个条件首先发给首先发给B一个随机值一个随机值challengeB收到这个值之后,对它作某种变换,得到收到这个值之后,对它作某种变换,得到response,并送回去,并送回去A收到这个收到这个response,可以验证,可以验证B符合这个条件符合这个条件在有的协议中,这个在有的协议中,这个challenge也称为也称为nonce可能明文传输,也可能密文传输可能明文传输,也可能密文传输这个条
23、件可以是知道某个口令,也可能是其这个条件可以是知道某个口令,也可能是其他的事情他的事情变换例子:用密钥加密,说明变换例子:用密钥加密,说明B知道这个密钥知道这个密钥;简单运算,比方增一,说明简单运算,比方增一,说明B知道这个随机值知道这个随机值常用于交互式的认证协议中常用于交互式的认证协议中双方认证协议双方认证协议最常用的认证协议,该协议使得通信各最常用的认证协议,该协议使得通信各方互相认证鉴别各自的身份,然后交换方互相认证鉴别各自的身份,然后交换会话密钥。会话密钥。基于认证的密钥交换核心问题有两个:基于认证的密钥交换核心问题有两个:保密性保密性时效性时效性 最坏情况下可能导致敌人暴露会话密钥
24、,或成功地冒充其他人;至少也最坏情况下可能导致敌人暴露会话密钥,或成功地冒充其他人;至少也可以干扰系统的正常运行,处理不好将导致系统瘫痪。可以干扰系统的正常运行,处理不好将导致系统瘫痪。常见的消息重放攻击形式有:常见的消息重放攻击形式有:1、简单重放:攻击者简单复制一条消息,以后在重新发送它;、简单重放:攻击者简单复制一条消息,以后在重新发送它;2、可被日志记录的复制品:攻击者可以在一个合法有效的时间、可被日志记录的复制品:攻击者可以在一个合法有效的时间 窗内重放一个带时间戳的消息;窗内重放一个带时间戳的消息;3、不能被检测到的复制品:这种情况可能出现,原因是原始信、不能被检测到的复制品:这种
25、情况可能出现,原因是原始信 息已经被拦截,无法到达目的地,而只有重放的信息到达目息已经被拦截,无法到达目的地,而只有重放的信息到达目 的地。的地。4、反向重放,不做修改。向消息发送者重放。当采用传统对称、反向重放,不做修改。向消息发送者重放。当采用传统对称 加密方式时,这种攻击是可能的。因为消息发送者不能简单加密方式时,这种攻击是可能的。因为消息发送者不能简单 地识别发送的消息和收到的消息在内容上的区别。地识别发送的消息和收到的消息在内容上的区别。消息重放攻击:消息重放攻击:对付重放攻击的一种方法是对付重放攻击的一种方法是 在认证交换中使用一个序数来给每一在认证交换中使用一个序数来给每一个消息
26、报文编号。仅当到的消息序数顺个消息报文编号。仅当到的消息序数顺序合法时才接受之。但这种方法的困难序合法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号。是要求双方必须保持上次消息的序号。1、时间戳:、时间戳:A接受一个新消息仅当该消息包含一个时间戳,该时间戳接受一个新消息仅当该消息包含一个时间戳,该时间戳 在在A看来,是足够接近看来,是足够接近A所知道的当前时间;这种方法要求不同参所知道的当前时间;这种方法要求不同参 与者之间的时钟需要同步。与者之间的时钟需要同步。2、盘问、盘问/应答方式。应答方式。Challenge/ResponseA期望从期望从B获得一个新消息获得一个新消息
27、,首先发给,首先发给B一个临时值一个临时值challenge,并要求后续从,并要求后续从B收到的消息收到的消息 response包含正确的这个临时值。包含正确的这个临时值。对付重放攻击更为一般的方法方法是:对付重放攻击更为一般的方法方法是:时间戳方法似乎不能用于面向连接的应用。时间戳方法似乎不能用于面向连接的应用。1 某些协议需要在各种处理器时钟中维持同步。该协议必须既要容某些协议需要在各种处理器时钟中维持同步。该协议必须既要容 错以对付网络出错,又要安全以对付重放攻击。错以对付网络出错,又要安全以对付重放攻击。2 由于某一方的时钟机制故障可能导致临时失去同步,这将增大攻由于某一方的时钟机制故
28、障可能导致临时失去同步,这将增大攻 击成功的时机。击成功的时机。3 由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟 保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗 的方式来处理:一方面时间窗应足够大以包容网络延迟,另一方的方式来处理:一方面时间窗应足够大以包容网络延迟,另一方 面时间窗应足够小以最大限度地减小遭受攻击的时机。面时间窗应足够小以最大限度地减小遭受攻击的时机。盘问盘问/应答方法不适应非连接性的应用。应答方法不适应非连接性的应用。因为它要求在传输开始之前
29、因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。先有握手的额外开销,这就抵消了无连接通信的主要特点。安全的时间效劳器用以实现时钟同步可能是最好的方法。安全的时间效劳器用以实现时钟同步可能是最好的方法。1、A KDC:IDA|IDB|N12、KDC A:EKakKs|IDB|N1|EKbkKs|IDA3、A B:EKbkKs|IDA4、B A:EKsN25、A B:EKsfN2保密密钥保密密钥Ka和和Kb分别是分别是A和和KDC、B和和KDC之间共享的密钥。之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥本协议的目的就是要安全地分发一个会话密钥Ks给给A和和B
30、。A在第在第2步安全地得到了一个新的会话密钥,第步安全地得到了一个新的会话密钥,第3步只能由步只能由B解密、解密、并理解。第并理解。第4步说明步说明B道道Ks了。第了。第5步说明步说明B相信相信A知道知道Ks并且并且消息不是伪造的。消息不是伪造的。第第4,5步目的是为了防止某种类型的重放攻击。但是,如果敌方步目的是为了防止某种类型的重放攻击。但是,如果敌方能够在第能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。方的运行操作。一个使用一个使用KDC进行密钥分配的方案进行密钥分配的方案 Needham/Schroeder P
31、rotocol上述方法尽管有第上述方法尽管有第4,5步的握手,但仍然有漏洞。步的握手,但仍然有漏洞。假定攻击方假定攻击方C已经掌握已经掌握A和和B之间通信的一个老的会话密钥。之间通信的一个老的会话密钥。C可以在第可以在第3步冒充步冒充A利用老的会话密钥欺骗利用老的会话密钥欺骗B。除非。除非B记住所有记住所有以前使用的与以前使用的与A通信的会话密钥,否则通信的会话密钥,否则B无法判断这是一个重放无法判断这是一个重放攻击。如果攻击。如果C可以中途阻止第可以中途阻止第4步的握手信息,则可以冒充步的握手信息,则可以冒充A在在第第5步响应。从这一点起,步响应。从这一点起,C就可以向就可以向B发送伪造的消
32、息而对发送伪造的消息而对B来来说认为是用认证的会话密钥与说认为是用认证的会话密钥与A进行的正常通信。进行的正常通信。作业:有何安全漏洞?作业:有何安全漏洞?Denning Protocol 对对Needham/Schroeder protocol 的的改进改进:1、A KDC:IDA|IDB2、KDC A:EKaKs|IDB|T|EKbKs|IDA|T3、A B:EKbKs|IDA|T4、B A:EKsN15、A B:EKsfN1|Clock-T|S:ReqChal,Cc S-C:Cs 2.C、S计算会话密钥计算会话密钥 Ks=EPW9.15,EPW0.6,AddCc,Cs 3.3.C:Rc=
33、CredC:Rc=CredKs,CcKs,Cc C-S Authenticate,RcC-S Authenticate,Rc4.4.S:assertS:assertRc=CredRc=CredKs,CcKs,Cc Rs=Cred Rs=CredKs,CsKs,Cs,S-C Rs S-C Rs C:assertC:assertRs=CredRs=CredKs,CsKs,CsFrom From NT Domain Authentication身份认证身份认证身份认证身份认证应用例如应用例如应用例如应用例如身份认证实例身份认证实例身份认证实例身份认证实例-KerberosKerberos引言引言Gr
34、eek Kerberos:古古希腊希腊 故事中一种三个故事中一种三个头的狗,还有一个蛇形尾巴。是地狱之门头的狗,还有一个蛇形尾巴。是地狱之门的守护者。的守护者。Modern Kerberos:意指有三个组成局部的意指有三个组成局部的网络之门的保卫者。网络之门的保卫者。“三头包括:三头包括:认证认证authentication帐目清算帐目清算accounting审计审计audit 认证、数据完整性、保密性认证、数据完整性、保密性!.Kerberos认证协议认证协议历史历史80年代中期年代中期是是MIT.Massachusettes Institute of Technology 麻省理工学院的麻
35、省理工学院的Athena 工程的产工程的产物物 part of Project Athena at MIT版本版本前三个版本仅用于内部前三个版本仅用于内部第四版得到了广泛的应用第四版得到了广泛的应用第五版于第五版于1989年开始设计年开始设计1993年确定年确定标准标准Kerberos解决的问题解决的问题认证、数据完整性、保密性认证、数据完整性、保密性问题问题在一个开放的分布式网络环境中,用户通在一个开放的分布式网络环境中,用户通过工作站访问效劳器上提供的效劳。过工作站访问效劳器上提供的效劳。效劳器应能够限制非授权用户的访问并能够效劳器应能够限制非授权用户的访问并能够认证对效劳的请求。认证对效
36、劳的请求。工作站不能够被网络效劳所信任其能够正确工作站不能够被网络效劳所信任其能够正确地认定用户,即工作站存在三种威胁。地认定用户,即工作站存在三种威胁。一个工作站上一个用户可能冒充另一个用户操作;一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;充另一台工作站工作;一个用户可能窃听他人的信息交换,并用重放攻击一个用户可能窃听他人的信息交换,并用重放攻击获得对一个效劳器的访问权或中断效劳器的运行。获得对一个效劳器的访问权或中断效劳器的运行。Kerberos要解决的问题要解决的问题所有上述问题可
37、以归结为一个非授权用户能所有上述问题可以归结为一个非授权用户能够获得其无权访问的效劳或数据。够获得其无权访问的效劳或数据。不是为每一个效劳器构造一个身份认证协议,不是为每一个效劳器构造一个身份认证协议,Kerberos提供一个中心认证效劳器,提供用提供一个中心认证效劳器,提供用户到效劳器和效劳器到用户的认证效劳。户到效劳器和效劳器到用户的认证效劳。Kerberos采用传统加密算法不用公钥加密采用传统加密算法不用公钥加密。Kerberos Version4和和Version5。信息系统资源保护的动机信息系统资源保护的动机单用户单机系统单用户单机系统:用户资源和文件受到物理用户资源和文件受到物理上
38、的安全保护;上的安全保护;多用户分时系统多用户分时系统:操作系统提供基于用户标操作系统提供基于用户标识的访问控制策略,并用识的访问控制策略,并用logon过程来标识过程来标识用户。用户。Client/Server网络结构网络结构:由一组工作站和一由一组工作站和一组分布式效劳器或中心式效劳器组成。组分布式效劳器或中心式效劳器组成。Client/Server网络结构三种可能的安全方案网络结构三种可能的安全方案相信每一个单独的客户工作站可以保证对相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个效劳器强其用户的识别,并依赖于每一个效劳器强制实施一个基于用户标识的安全策略。制实施一个基于
39、用户标识的安全策略。要求客户端系统将它们自己向效劳器作身要求客户端系统将它们自己向效劳器作身份认证,但相信客户端系统负责对其用户份认证,但相信客户端系统负责对其用户的识别。的识别。要求每一个用户对每一个效劳证明其标识要求每一个用户对每一个效劳证明其标识身份,同样要求效劳器向客户端证明其标身份,同样要求效劳器向客户端证明其标识身份。识身份。Kerberos的解决方案的解决方案在一个分布式的在一个分布式的client/server体系机构中采体系机构中采用一个或多个用一个或多个Kerberos效劳器提供一个认效劳器提供一个认证效劳。证效劳。Kerberos系统应满足的要求系统应满足的要求安全:网络
40、窃听者不能假冒其它用户获得必安全:网络窃听者不能假冒其它用户获得必要信息以;要信息以;Kerberos应足够强壮以至于潜在应足够强壮以至于潜在的敌人无法找到它的弱点连接。的敌人无法找到它的弱点连接。可靠:可靠:Kerberos应高度可靠,并且应借助于应高度可靠,并且应借助于一一 个分布式效劳器体系结构,使得一个系统个分布式效劳器体系结构,使得一个系统能够备份另一个系统。能够备份另一个系统。透明:理想情况下,用户除了要求输入口令透明:理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。以外应感觉不到认证的发生。可伸缩:系统应能够支持大数量的客户和效可伸缩:系统应能够支持大数量的客户和效劳器
41、。劳器。Kerberos协议中一些概念协议中一些概念Principal安全个体安全个体被认证的个体,有一个名字被认证的个体,有一个名字name和口令和口令passwordKDCKey distribution center是一个网络效劳,提供是一个网络效劳,提供ticket和临时的会话密钥和临时的会话密钥Ticket票据票据一个记录,客户可以用它来向效劳器证明自己的身份,其一个记录,客户可以用它来向效劳器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信中包括客户的标识、会话密钥、时间戳,以及其他一些信息。息。Ticket 中的大多数信息都被加密,密钥为效劳器的密中的大多数信
42、息都被加密,密钥为效劳器的密钥钥Authenticator认证认证一个记录,其中包含一些最近产生的信息,产生这些信息一个记录,其中包含一些最近产生的信息,产生这些信息需要用到客户和效劳器之间共享的会话密钥需要用到客户和效劳器之间共享的会话密钥Credentials证书证书一个一个ticket加上一个秘密的会话密钥加上一个秘密的会话密钥Kerberos Version4引入一个信任的第三方认证效劳,它使用引入一个信任的第三方认证效劳,它使用的协议建立在的协议建立在Needham&Schroeder协议协议的基础上。的基础上。采用采用DES,精心设计协议,提供认证效劳。,精心设计协议,提供认证效劳
43、。引入身份认证效劳器引入身份认证效劳器AS,它知道所有用户的口令并将它们存储在,它知道所有用户的口令并将它们存储在一个中央数据库中。一个中央数据库中。AS与每一个效劳器共有一个唯一的保密密钥。这些密与每一个效劳器共有一个唯一的保密密钥。这些密钥已经用物理方式或更安全的方式发出去了。钥已经用物理方式或更安全的方式发出去了。考虑以下假定的对话:考虑以下假定的对话:1 C AS:IDC|PC|IDV2 AS C:Ticket3 C V :IDC|TicketTicket=EKVIDC|ADC|IDV其中:C:clientAS :Authentication Server V :serverIDC:i
44、dentifier of user on C IDV:identifier of VPC:password of user on CADC:network address of CKV:AS与与V共有的保密密钥共有的保密密钥CVAS123一个简单的认证对话在Tiket中:IDC 指明消息由指明消息由C发出发出 ADC 防止用防止用IDC 的名称从另一个工作站转发的名称从另一个工作站转发message3 IDV V可以验证加密的正确性可以验证加密的正确性 更安全的认证对话更安全的认证对话两个主要问题两个主要问题希望用户输入口令的次数最少。每天用希望用户输入口令的次数最少。每天用屡次或访问不同的效
45、劳器屡次或访问不同的效劳器口令以明文传送会被窃听。口令以明文传送会被窃听。解决方法解决方法可重复使用的票据可重复使用的票据 ticket reusable 票据授予效劳器票据授予效劳器 ticket-granting serverTGS每个用户登录会话一次每个用户登录会话一次Once per user logon session1 C AS:IDC|IDtgs(2)AS C:EKCTickettgs TGS:票据授予效劳器(3)KC 由用户口令生成的密钥由用户口令生成的密钥,当回应到达当回应到达C 时客户机提时客户机提(4)示示C 输入口令输入口令,这样就不用传输明文口令这样就不用传输明文口令
46、每个效劳类型一次每个效劳类型一次Once per type of service3 C TGS:IDC|IDv|Tickettgs(4)TGS C:TicketV(5)每个效劳对话一次每个效劳对话一次Once per service session(5)C V:IDC|TicketVTickettgs=EKtgsIDC|ADC|IDtgs|TS1|Lifetime1TicketV =EKVIDC|ADC|IDV|TS2|Lifetime2 KV:AS与与V共有的保密密钥共有的保密密钥 Ktgs:AS与与TGS共有的保密密钥共有的保密密钥 CVAS1 23TGS45Kerberos改进后的假想对
47、话:改进后的假想对话:Kerberos V4 Authentication Dialogue两个问题两个问题与与ticket-granting ticket相关的相关的Lifetime问问题;题;需要效劳器向客户进行认证;需要效劳器向客户进行认证;解决方案解决方案会话密钥会话密钥 session keya Authentication Service Exchange:to obtain ticket-granting ticket 1 C AS:IDC|IDtgs|TS1 2 AS C:EKCKc,tgs|IDtgs|TS2|Lifetime2|TickettgsTickettgs=EKtg
48、s Kc,tgs|IDC|ADC|IDtgs|TS2|Lifetime2b Ticket-granting Service Exchange:to obtain service-granting ticket 3 C TGS:IDV|Tickettgs|Authenticatorc 4 TGS C:EKc,tgsKc,v|IDV|TS4|TicketvTickettgs=EKtgsKc,togs|IDC|ADC|IDtgs|TS2|Lifetime2Ticketv =EKVKc,v|IDC|ADC|IDv|TS4|Lifetime4Authenticatorc=EKc,tgsIDc|ADc|T
49、S3c Client/Server Authentication Exchange:To obtain service 5 C V:Ticketv|Authenticatorc 6 V C:EKc,vTS5+1 for mutual authenticationTicketv=EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc=EKc,vIDc|ADc|TS5 Kerberos Version 4 消息交换小结消息交换小结Summary of Kerberos Version 4 Message Exchangesa Authentication S
50、ervice ExchangeMessage1Client 请求请求 ticket-granting ticket IDC :告诉告诉AS本本client端的用户标识;端的用户标识;IDtgs :告诉告诉AS用户请求访问用户请求访问TGS;TS1 :让让AS验证验证client端的时钟是与端的时钟是与AS的时钟同步的;的时钟同步的;Message2AS返回返回ticket-granting ticket EKC :基于用户口令的加密,使得基于用户口令的加密,使得AS和和client可以验证口令,可以验证口令,并保护并保护Message2。Kc,tgs:session key的副本,由的副本,由