数字签名与认证协议_第1页
数字签名与认证协议_第2页
数字签名与认证协议_第3页
数字签名与认证协议_第4页
数字签名与认证协议_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字签名与认证协议数字签名与认证协议数字签名数字签名 传统签名的基本特点传统签名的基本特点: 能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割 签名者不能否认自己的签名签名者不能否认自己的签名 签名不能被伪造签名不能被伪造 容易被验证容易被验证 数字签名是传统签名的数字化数字签名是传统签名的数字化,基本要求基本要求: 能与所签文件能与所签文件“绑定绑定” 签名者不能否认自己的签名签名者不能否认自己的签名 签名不能被伪造签名不能被伪造 容易被验证容易被验证 公钥算法的一个最重要的发展是数字签名。公钥算法的一个最重要的发展是数字签名。数字签名数字签名 Message authentic

2、ation用以保护双方之间的数用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定身的相互欺骗。假定A发送一个认证的信息给发送一个认证的信息给B,双方之间的争议可能有多种形式:,双方之间的争议可能有多种形式: B伪造一个不同的消息,但声称是从伪造一个不同的消息,但声称是从A收到的。收到的。 A可以否认发过该消息,可以否认发过该消息,B无法证明无法证明A确实发了该确实发了该消息。消息。 例如:改大金额;股票交易指令亏损后抵赖。例如:改大金额;股票交易指令亏损后抵赖。数字签名应具有的性质数字签名应具有的性质 必须能够验证作者及其签名

3、的日期时间;必须能够验证作者及其签名的日期时间; 必须能够认证签名时刻的内容;必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议;签名必须能够由第三方验证,以解决争议;因此,数字签名功能包含了认证的功能。因此,数字签名功能包含了认证的功能。数字签名的设计要求数字签名的设计要求 签名必须是依赖于被签名信息的一个位串模板;签名必须是依赖于被签名信息的一个位串模板; 签名必须使用某些对发送者是唯一的信息,以签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;防止双方的伪造与否认; 必须相对容易生成该数字签名;必须相对容易生成该数字签名; 必须相对容易识别和验证该数字签名;必

4、须相对容易识别和验证该数字签名; 伪造该数字签名在计算复杂性意义上具有不可伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签消息,也包括对一个给定消息伪造一个数字签名;名; 在存储器中保存一个数字签名副本是现实可行的。在存储器中保存一个数字签名副本是现实可行的。两类数字签名函数两类数字签名函数 直接数字签名直接数字签名 仲裁数字签名仲裁数字签名直接数字签名(直接数字签名(DDS)(1) AB: EKRaM提供了认证与签名:提供了认证与签名: 只有只有A具有具有KRa进行加密进行加密;

5、传输中无法被篡改;传输中无法被篡改; 任何第三方可以用任何第三方可以用KUa 验证签名验证签名(1) AB: EKUb EKRa(M)提供了保密提供了保密(KUb)、认证与签名、认证与签名(KRa):数字签名方案数字签名方案 先对消息先对消息M作一个摘要作一个摘要H(M) 然后发送方用自己的私钥对然后发送方用自己的私钥对H(M)进行加密,得进行加密,得到签名到签名EKRa(H(M) 连同消息连同消息M一起,发送出去一起,发送出去 B收到复合的消息之后,把签名提取出来收到复合的消息之后,把签名提取出来 B用用A的公钥对签名解密得到的公钥对签名解密得到M B计算所收到消息的摘要计算所收到消息的摘要

6、H=H(M) 如果如果H=H(M),则消息确实是,则消息确实是A产生的产生的 问题问题 公钥的管理,公钥与身份的对应关系公钥的管理,公钥与身份的对应关系 签名的有效性,私钥丢失?签名的有效性,私钥丢失?直接数字签名直接数字签名(2) 提供认证及数字签名提供认证及数字签名 AB: M|EKRaH(M) - H(M) 受到密码算法的保护;受到密码算法的保护; - 只有只有 A 能够生成能够生成 EKRaH(M) (2) 提供保密性、认证和数字签名。提供保密性、认证和数字签名。 AB: EKM|EKRaH(M)H|MKRaMDKUaHcompareEKRa H(M)数字签名方案一数字签名方案一ABE

7、RAS 的方案的方案MH|MH(M)EKRaDKUaMH(M)Hcompare数字签名方案二数字签名方案二ABH|EKRaMDKUaMHcompareEKRa(M)EKRa(M)HEKRa(M)数字签名方案二数字签名方案二*AB直接数字签名的缺点直接数字签名的缺点 验证模式依赖于发送方的保密密钥;验证模式依赖于发送方的保密密钥; 发送方要抵赖发送某一消息时,可能会声称其私发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。有密钥丢失或被窃,从而他人伪造了他的签名。 通常需要采用与私有密钥安全性相关的行政管理控通常需要采用与私有密钥安全性相关的行政管理控制手段来制

8、止或至少是削弱这种情况,但威胁在某制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。种程度上依然存在。 改进的方式例如可以要求被签名的信息包含一个时间改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。个授权中心。 A的某些私有密钥确实在时间的某些私有密钥确实在时间T被窃取,敌方可以被窃取,敌方可以伪造伪造A的签名及早于或等于时间的签名及早于或等于时间T的时间戳。的时间戳。仲裁数字签名仲裁数字签名 引入仲裁者。引入仲裁者。 通常的做法是所有从发送方通常的做法是所有从发送方A到接收方到接

9、收方B的签名消的签名消息首先送到仲裁者息首先送到仲裁者S,S将消息及其签名进行一系将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给期并与已被仲裁者验证通过的指示一起发给B。 仲裁者在这一类签名模式中扮演敏感和关键的角色。仲裁者在这一类签名模式中扮演敏感和关键的角色。 所有的参与者必须极大地相信这一仲裁机制工作所有的参与者必须极大地相信这一仲裁机制工作正常。(正常。(trusted system)(a) 单密钥加密方式,仲裁者可以看见消息单密钥加密方式,仲裁者可以看见消息(1) AS:M|EKAS

10、IDA| H(M)(2) SB:EKSBIDA| M | EKASIDA| H(M) | TA与与S之间共享密钥之间共享密钥KAS,B与与S之间共享密钥之间共享密钥KSB;A:准备消息准备消息M,计算其散列码,计算其散列码H(M),用,用A的标识符的标识符IDA 和散列值构成和散列值构成 签名,并将消息及签名经签名,并将消息及签名经KAS加密后发送给加密后发送给S;S:解密签名,用:解密签名,用H(M)验证消息验证消息M,然后将,然后将IDA,M,签名,和时间戳,签名,和时间戳 一起经一起经KSB加密后发送给加密后发送给B;B:解密:解密S发来的信息,并可将发来的信息,并可将M和签名保存起来。

11、和签名保存起来。解决纠纷:解决纠纷:B:向:向S发送发送 EKSBIDA| M | EKASIDA| H(M) S:用:用KSB恢复恢复IDA,M,和签名(,和签名( EKASIDA| H(M)),然后用),然后用 KAS解解密签名并验证散列码密签名并验证散列码仲裁数字签名技术仲裁数字签名技术注意:注意: 在这种模式下在这种模式下B不能直接验证不能直接验证A的签名,的签名,B认为认为S的消息已认证,只的消息已认证,只 因为它来自因为它来自S。因此,双方都需要高度相信。因此,双方都需要高度相信S: A必须信任必须信任S没有暴露没有暴露KAS,并且没有生成错误的签名,并且没有生成错误的签名EKAS

12、IDA| H(M) B必须信任必须信任S仅当散列值正确并且签名确实是仅当散列值正确并且签名确实是A产生的情况下才产生的情况下才 发送的发送的 EKSBIDA| M | EKASIDA| H(M) | T 双方都必须信任双方都必须信任S处理争议是公正的。处理争议是公正的。只要只要S遵循上述要求,则遵循上述要求,则A相信没有人可以伪造其签名;相信没有人可以伪造其签名;B相信相信A不不能否认其签名。能否认其签名。上述情况还隐含着上述情况还隐含着S可以看到可以看到A给给B的所有信息,因而所有的窃听者的所有信息,因而所有的窃听者也能看到。也能看到。(b) 单密钥加密方式,仲裁者不可以看见消息单密钥加密方

13、式,仲裁者不可以看见消息(1) AS: IDA | EKABM|EKASIDA| H(EKABM)(2) SB:EKSBIDA|EKABM | EKASIDA| H(EKABM) | T在这种情况下,在这种情况下,A与与B之间共享密钥之间共享密钥KAB,A:将标识符:将标识符IDA ,密文密文 EKABM,以及对,以及对IDA和密文消息的散列码用和密文消息的散列码用 KAS加密后形成签名加密后形成签名发送给发送给S。S:解密签名,用散列码验证消息,这时:解密签名,用散列码验证消息,这时S只能验证消息的密文而不只能验证消息的密文而不 能读取其内容。然后能读取其内容。然后S将来自将来自A的所有信息

14、加上时间戳并用的所有信息加上时间戳并用KSB加加 密后发送给密后发送给B。(a)和和(b)共同存在一个共性问题:共同存在一个共性问题:S和发送方联手可以否认签名的信息;和发送方联手可以否认签名的信息;S和接收方联手可以伪造发送方的签名;和接收方联手可以伪造发送方的签名;(c) 双密钥加密方式,仲裁者不可以看见消息双密钥加密方式,仲裁者不可以看见消息(1) AS: IDA | EKRAIDA | EKUB (EKRAM)(2) SB: EKRSIDA| EKUBEKRAM | TA:对消息对消息M双重加密:首先用双重加密:首先用A的私有密钥的私有密钥KRA,然后用,然后用B的公开的公开 密钥密钥

15、KUB。形成一个签名的、保密的消息。然后将该信息以及。形成一个签名的、保密的消息。然后将该信息以及 A的标识符一起用的标识符一起用KRA签名后与签名后与IDA 一起发送给一起发送给S。这种内部、。这种内部、 双重加密的消息对双重加密的消息对S以及对除以及对除B以外的其它人都是安全的。以外的其它人都是安全的。S:检查:检查A的公开的公开/私有密钥对是否仍然有效,是,则认证消息。并私有密钥对是否仍然有效,是,则认证消息。并 将包含将包含IDA、双重加密的消息和时间戳构成的、双重加密的消息和时间戳构成的 消息用消息用KRS签名后签名后 发送给发送给B。本模式比上述两个模式具有以下好处:本模式比上述两

16、个模式具有以下好处:1、在通信之前各方之间无须共享任何信息,从而避免了联手作弊;、在通信之前各方之间无须共享任何信息,从而避免了联手作弊;2、即使、即使KRA 暴露,只要暴露,只要KRS 未暴露,不会有错误标定日期的消息未暴露,不会有错误标定日期的消息 被发送;被发送;3、从、从A发送给发送给B的消息的内容对的消息的内容对S和任何其他人是保密的。和任何其他人是保密的。认证协议认证协议安全层次安全层次安全的密码算法安全协议网络安全系统安全应用安全回顾:信息安全的需求回顾:信息安全的需求 保密性保密性Confidentiality 完整性完整性Integrity 系统完整性系统完整性 数据完整性数

17、据完整性 可用性可用性Availability 真实性真实性 authenticity 认证认证 消息认证消息认证 身份认证:验证真实身份和所声称身份相符的过程身份认证:验证真实身份和所声称身份相符的过程 认证协议认证协议 基于对称密码算法的认证方案基于对称密码算法的认证方案 是否需要密钥分发中心是否需要密钥分发中心(KDC)? 对于协议的攻击手法对于协议的攻击手法 认证的对象认证的对象 消息发送方消息发送方 消息本身消息本身 基于公钥密码算法的认证方案基于公钥密码算法的认证方案 公钥和身份的绑定公钥和身份的绑定基于对称密码算法的认证基于对称密码算法的认证消息认证消息认证MAC码或者码或者HM

18、AC码码前提:存在共享密钥前提:存在共享密钥密钥管理中心密钥管理中心或者用一个密钥交换协议或者用一个密钥交换协议身份认证身份认证依据依据所知:口令、密钥,等所知:口令、密钥,等所有:身份证、智能卡,等所有:身份证、智能卡,等物理标识:指纹、笔迹、虹膜、物理标识:指纹、笔迹、虹膜、DNA,等,等基于口令基于口令证明是否知道口令证明是否知道口令口令的强度口令的强度双方认证双方认证 (mutual authentication)和单向认证和单向认证 (one-way authentication)目的:分发密钥、签名有效性,目的:分发密钥、签名有效性,认证方式认证方式两方通讯两方通讯 一方发起通讯,

19、另一方应答一方发起通讯,另一方应答 双向双向(mutual authentication)和单向认证和单向认证(one-way authentication)有第三方介入的认证有第三方介入的认证 第三方为可信任方,第三方为可信任方,KDC在线和离线在线和离线其他情形其他情形 多方认证多方认证 跨域认证跨域认证 委托认证模型、信任模型委托认证模型、信任模型 认证协议:设计一个协议认证协议:设计一个协议(一一)假设假设A和和B要进行通讯,要进行通讯,A和和B有一个共享的密钥有一个共享的密钥Kab,如何利用如何利用这个密钥进行认证,并且商定一个会话密钥这个密钥进行认证,并且商定一个会话密钥Ks1 A

20、B: (IDA|N1)2 BA: EKabKs,IDB,f(N1),N2)3 AB: EKsf(N2) 这里的这里的f函数为某个确定的运算,比如函数为某个确定的运算,比如f(x)=x+1AKabB1、我是A2、告诉你Ks,以后就用它,别让别人知道 3、 好的,我用它试试,可我怎么知道Ks 4、 如果你知道Kab,那么你就知道Ks,我就知道你是A认证协议:设计一个协议认证协议:设计一个协议(二二)假设假设A和和B要进行通讯,要进行通讯,A和和B与与KDC各有一个共享密钥各有一个共享密钥Ka和和Kb, 如何利用这两个如何利用这两个密钥进行认证,并且商定一个会话密钥密钥进行认证,并且商定一个会话密钥

21、KsAKDC: (IDA|IDB|N1)KDCA: EKaKs|IDB|N1|EKb(Ks,IDA)AB: EKb(Ks,IDA)|EKs(M)AKbB我是A,我想和B通讯 KDC Ka我把必要的信息告诉你我把消息给你,如果你是B,你就可以解开会话密钥Ks,由A送给B的认证信息认证协议中的常用技术认证协议中的常用技术(一一) 时间戳时间戳 A收到一个消息,根据消息中的时间戳信息,判收到一个消息,根据消息中的时间戳信息,判断消息的有效性断消息的有效性 如果消息的时间戳与如果消息的时间戳与A所知道的当前时间足够接近所知道的当前时间足够接近 这种方法要求不同参与者之间的时钟需要同步这种方法要求不同参

22、与者之间的时钟需要同步 在网络环境中,特别是在分布式网络环境中,时钟同步在网络环境中,特别是在分布式网络环境中,时钟同步并不容易做到并不容易做到 一旦时钟同步失败一旦时钟同步失败 要么协议不能正常服务,影响可用性要么协议不能正常服务,影响可用性(availability),造成拒绝服务,造成拒绝服务(DOS) 要么放大时钟窗口,造成攻击的机会要么放大时钟窗口,造成攻击的机会 时间窗大小的选择应根据消息的时效性来确定时间窗大小的选择应根据消息的时效性来确定认证协议中的常见技术认证协议中的常见技术(二二)询问询问/应答方式应答方式(Challenge/Response) A期望从期望从B获得一个条

23、件获得一个条件首先发给首先发给B一个随机值一个随机值(challenge)B收到这个值之后,对它作某种变换,得到收到这个值之后,对它作某种变换,得到response,并送,并送回去回去A收到这个收到这个response,可以验证,可以验证B符合这个条件符合这个条件 在有的协议中,这个在有的协议中,这个challenge也称为也称为nonce可能明文传输,也可能密文传输可能明文传输,也可能密文传输 这个条件可以是知道某个口令,也可能是其他这个条件可以是知道某个口令,也可能是其他的事情的事情变换例子:用密钥加密,说明变换例子:用密钥加密,说明B知道这个密钥知道这个密钥;简单运算,比如增一,说明简单

24、运算,比如增一,说明B知道这个随机值知道这个随机值 常用于交互式的认证协议中常用于交互式的认证协议中双方认证协议双方认证协议 最常用的认证协议,该协议使得通信各方最常用的认证协议,该协议使得通信各方互相认证鉴别各自的身份,然后交换会话互相认证鉴别各自的身份,然后交换会话密钥。密钥。 基于认证的密钥交换核心问题有两个:基于认证的密钥交换核心问题有两个: 保密性保密性 时效性时效性 最坏情况下可能导致敌人暴露会话密钥,或成功地冒充其他人;至少也可以干最坏情况下可能导致敌人暴露会话密钥,或成功地冒充其他人;至少也可以干扰系统的正常运行,处理不好将导致系统瘫痪。扰系统的正常运行,处理不好将导致系统瘫痪

25、。常见的消息重放攻击形式有:常见的消息重放攻击形式有:1、简单重放:攻击者简单复制一条消息,以后在重新发送它;、简单重放:攻击者简单复制一条消息,以后在重新发送它;2、可被日志记录的复制品:攻击者可以在一个合法有效的时间、可被日志记录的复制品:攻击者可以在一个合法有效的时间 窗内重放一个带时间戳的消息;窗内重放一个带时间戳的消息;3、不能被检测到的复制品:这种情况可能出现,原因是原始信、不能被检测到的复制品:这种情况可能出现,原因是原始信 息已经被拦截,无法到达目的地,而只有重放的信息到达目息已经被拦截,无法到达目的地,而只有重放的信息到达目 的地。的地。4、反向重放,不做修改。向消息发送者重

26、放。当采用传统对称、反向重放,不做修改。向消息发送者重放。当采用传统对称 加密方式时,这种攻击是可能的。因为消息发送者不能简单加密方式时,这种攻击是可能的。因为消息发送者不能简单 地识别发送的消息和收到的消息在内容上的区别。地识别发送的消息和收到的消息在内容上的区别。消息重放攻击:消息重放攻击:对付重放攻击的一种方法是对付重放攻击的一种方法是 在认证交换中使用一个序数来给每一个在认证交换中使用一个序数来给每一个消息报文编号。仅当到的消息序数顺序合消息报文编号。仅当到的消息序数顺序合法时才接受之。但这种方法的困难是要求法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号。双方必须保持上

27、次消息的序号。1、时间戳:、时间戳:A接受一个新消息仅当该消息包含一个时间戳,该时间戳接受一个新消息仅当该消息包含一个时间戳,该时间戳 在在A看来,是足够接近看来,是足够接近A所知道的当前时间;这种方法要求不同参所知道的当前时间;这种方法要求不同参 与者之间的时钟需要同步。与者之间的时钟需要同步。2、盘问、盘问/应答方式。(应答方式。(Challenge/Response)A期望从期望从B获得一个新消息获得一个新消息 ,首先发给,首先发给B一个临时值一个临时值(challenge),并要求后续从,并要求后续从B收到的消息(收到的消息( response)包含正确的这个临时值。)包含正确的这个临

28、时值。对付重放攻击更为一般的方法方法是:对付重放攻击更为一般的方法方法是:时间戳方法似乎不能用于面向连接的应用。时间戳方法似乎不能用于面向连接的应用。(1) 某些协议需要在各种处理器时钟中维持同步。该协议必须既要容某些协议需要在各种处理器时钟中维持同步。该协议必须既要容 错以对付网络出错,又要安全以对付重放攻击。错以对付网络出错,又要安全以对付重放攻击。(2) 由于某一方的时钟机制故障可能导致临时失去同步,这将增大攻由于某一方的时钟机制故障可能导致临时失去同步,这将增大攻 击成功的机会。击成功的机会。(3) 由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟由于变化的和不可预见的网络延迟

29、的本性,不能期望分布式时钟 保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗保持精确的同步。因此,任何基于时间戳的过程必须采用时间窗 的方式来处理:一方面时间窗应足够大以包容网络延迟,另一方的方式来处理:一方面时间窗应足够大以包容网络延迟,另一方 面时间窗应足够小以最大限度地减小遭受攻击的机会。面时间窗应足够小以最大限度地减小遭受攻击的机会。盘问盘问/应答方法不适应非连接性的应用。应答方法不适应非连接性的应用。因为它要求在传输开始之前因为它要求在传输开始之前先有握手的额外开销,这就抵消了无连接通信的主要特点。先有握手的额外开销,这就抵消了无连接通信的主要特点。安全的时间服务器用以实现时

30、钟同步可能是最好的方法。安全的时间服务器用以实现时钟同步可能是最好的方法。1、A KDC:IDA|IDB|N12、KDC A:EKakKs|IDB|N1|EKbkKs|IDA3、A B: EKbkKs|IDA4、B A: EKsN25、A B: EKsf(N2)保密密钥保密密钥Ka和和Kb分别是分别是A和和KDC、B和和KDC之间共享的密钥。之间共享的密钥。本协议的目的就是要安全地分发一个会话密钥本协议的目的就是要安全地分发一个会话密钥Ks给给A和和B。A在第在第2步安全地得到了一个新的会话密钥,第步安全地得到了一个新的会话密钥,第3步只能由步只能由B解密、解密、并理解。第并理解。第4步表明步

31、表明B已知道已知道Ks了。第了。第5步表明步表明B相信相信A知道知道Ks并且并且消息不是伪造的。消息不是伪造的。第第4,5步目的是为了防止某种类型的重放攻击。但是,如果敌方步目的是为了防止某种类型的重放攻击。但是,如果敌方能够在第能够在第3步捕获该消息,并重放之,这将在某种程度上干扰破坏步捕获该消息,并重放之,这将在某种程度上干扰破坏B方的运行操作。方的运行操作。一个使用一个使用KDC进行密钥分配的方案进行密钥分配的方案 Needham/Schroeder Protocol上述方法尽管有第上述方法尽管有第4,5步的握手,但仍然有漏洞。步的握手,但仍然有漏洞。 假定攻击方假定攻击方C已经掌握已经

32、掌握A和和B之间通信的一个老的会话密钥。之间通信的一个老的会话密钥。C可以在第可以在第3步冒充步冒充A利用老的会话密钥欺骗利用老的会话密钥欺骗B。除非。除非B记住所有记住所有以前使用的与以前使用的与A通信的会话密钥,否则通信的会话密钥,否则B无法判断这是一个重放无法判断这是一个重放攻击。如果攻击。如果C可以中途阻止第可以中途阻止第4步的握手信息,则可以冒充步的握手信息,则可以冒充A在在第第5步响应。从这一点起,步响应。从这一点起,C就可以向就可以向B发送伪造的消息而对发送伪造的消息而对B来来说认为是用认证的会话密钥与说认为是用认证的会话密钥与A进行的正常通信。进行的正常通信。(作业:有何安全漏

33、洞?)(作业:有何安全漏洞?)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: EKsf(N1)| Clock - T | S: ReqChal, Cc S-C: Cs 2. C、S计算会话密钥计算会话密钥 Ks = E(PW9.15,E(PW0.6,Add(Cc,Cs) 3.3.C: Rc = Cred(Ks,Cc) C: Rc = Cred(Ks,Cc) C-S

34、Authenticate, RcC-S Authenticate, Rc4.4. S: assert(Rc = Cred(Ks,Cc) S: assert(Rc = Cred(Ks,Cc) Rs = Cred(Ks,Cs), Rs = Cred(Ks,Cs), S-C Rs S-C Rs C: assert(Rs = Cred(Ks,Cs)C: assert(Rs = Cred(Ks,Cs)From From NT Domain Authentication身份认证实例身份认证实例-Kerberos引言引言 Greek Kerberos: 古古希腊神话故事中一种三个希腊神话故事中一种三个头的狗

35、,还有一个蛇形尾巴。是地狱之门的头的狗,还有一个蛇形尾巴。是地狱之门的守护者。守护者。 Modern Kerberos: 意指有三个组成部分的网络意指有三个组成部分的网络之门的保卫者。之门的保卫者。“三头三头”包括:包括: 认证认证(authentication) 帐目清算帐目清算(accounting) 审计审计(audit) (认证、数据完整性、保密性认证、数据完整性、保密性)!.Kerberos认证协议认证协议 历史历史 80年代中期年代中期 是是MIT(.Massachusettes Institute of Technology (美国美国)麻省理工学院麻省理工学院)的的Athena

36、 工程的产物工程的产物( part of Project Athena at MIT) 版本版本 前三个版本仅用于内部前三个版本仅用于内部 第四版得到了广泛的应用第四版得到了广泛的应用 第五版于第五版于1989年开始设计年开始设计 1993年确定年确定 标准标准Kerberos 解决的问题解决的问题 认证、数据完整性、保密性认证、数据完整性、保密性问题问题 在一个开放的分布式网络环境中,用户通过工在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。作站访问服务器上提供的服务。 服务器应能够限制非授权用户的访问并能够认证服务器应能够限制非授权用户的访问并能够认证对服务的请求。对服

37、务的请求。 工作站不能够被网络服务所信任其能够正确地认定工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁。用户,即工作站存在三种威胁。 一个工作站上一个用户可能冒充另一个用户操作;一个工作站上一个用户可能冒充另一个用户操作; 一个用户可能改变一个工作站的网络地址,从而冒充另一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一台工作站工作; 一个用户可能窃听他人的信息交换,并用重放攻击获得一个用户可能窃听他人的信息交换,并用重放攻击获得对一个服务器的访问权或中断服务器的运行。对一个服务器的访问权或中断服务器的运行。Kerberos要解决的问题要解决的问题 所有

38、上述问题可以归结为一个非授权用户能够获所有上述问题可以归结为一个非授权用户能够获得其无权访问的服务或数据。得其无权访问的服务或数据。 不是为每一个服务器构造一个身份认证协议,不是为每一个服务器构造一个身份认证协议,Kerberos提供一个中心认证服务器,提供用户到提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。服务器和服务器到用户的认证服务。 Kerberos采用传统加密算法采用传统加密算法(不用公钥加密不用公钥加密)。 Kerberos Version4和和Version5 。信息系统资源保护的动机信息系统资源保护的动机 单用户单机系统单用户单机系统:用户资源和文件受到物理

39、上的用户资源和文件受到物理上的安全保护;安全保护; 多用户分时系统多用户分时系统:操作系统提供基于用户标识的操作系统提供基于用户标识的访问控制策略,并用访问控制策略,并用logon过程来标识用户。过程来标识用户。 Client/Server网络结构网络结构:由一组工作站和一组分由一组工作站和一组分布式服务器或中心式服务器组成。布式服务器或中心式服务器组成。Client/Server网络结构三种可能的安全方案网络结构三种可能的安全方案相信每一个单独的客户工作站可以保证对其用相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一户的识别,并依赖于每一个服务器强制实施一个基

40、于用户标识的安全策略。个基于用户标识的安全策略。 要求客户端系统将它们自己向服务器作身份认证,要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。但相信客户端系统负责对其用户的识别。要求每一个用户对每一个服务证明其标识身份,要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。同样要求服务器向客户端证明其标识身份。Kerberos的解决方案的解决方案 在一个分布式的在一个分布式的client/server体系机构中采体系机构中采用一个或多个用一个或多个Kerberos服务器提供一个认证服务器提供一个认证服务。服务。Kerberos系统应满足

41、的要求系统应满足的要求 安全:网络窃听者不能假冒其它用户获得必要安全:网络窃听者不能假冒其它用户获得必要信息以;信息以;Kerberos应足够强壮以至于潜在的敌应足够强壮以至于潜在的敌人无法找到它的弱点连接。人无法找到它的弱点连接。 可靠:可靠:Kerberos应高度可靠,并且应借助于一应高度可靠,并且应借助于一 个分布式服务器体系结构,使得一个系统能够个分布式服务器体系结构,使得一个系统能够备份另一个系统。备份另一个系统。 透明:理想情况下,用户除了要求输入口令以外透明:理想情况下,用户除了要求输入口令以外应感觉不到认证的发生。应感觉不到认证的发生。 可伸缩:系统应能够支持大数量的客户和服务

42、可伸缩:系统应能够支持大数量的客户和服务器。器。Kerberos协议中一些概念协议中一些概念Principal(安全个体安全个体)被认证的个体,有一个名字被认证的个体,有一个名字(name)和口令和口令(password)KDC(Key distribution center)是一个网络服务,提供是一个网络服务,提供ticket和临时的会话密钥和临时的会话密钥Ticket(票据)(票据)一个记录,客户可以用它来向服务器证明自己的身份,其中包括一个记录,客户可以用它来向服务器证明自己的身份,其中包括客户的标识、会话密钥、时间戳,以及其他一些信息。客户的标识、会话密钥、时间戳,以及其他一些信息。T

43、icket 中的中的大多数信息都被加密,密钥为服务器的密钥大多数信息都被加密,密钥为服务器的密钥Authenticator(认证)(认证)一个记录,其中包含一些最近产生的信息,产生这些信息需要用一个记录,其中包含一些最近产生的信息,产生这些信息需要用到客户和服务器之间共享的会话密钥到客户和服务器之间共享的会话密钥Credentials(证书)(证书)一个一个ticket加上一个秘密的会话密钥加上一个秘密的会话密钥Kerberos Version4 引入一个信任的第三方认证服务,它使用的协引入一个信任的第三方认证服务,它使用的协议建立在议建立在Needham & Schroeder协议的

44、基础协议的基础上。上。 采用采用DES,精心设计协议,提供认证服务。,精心设计协议,提供认证服务。 引入身份认证服务器引入身份认证服务器(AS),它知道所有用户的口令并将它们存储在一个中央数据,它知道所有用户的口令并将它们存储在一个中央数据库中。库中。AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经用物理方式或更安与每一个服务器共有一个唯一的保密密钥。这些密钥已经用物理方式或更安全的方式发出去了。全的方式发出去了。考虑以下假定的对话:考虑以下假定的对话:(1) C AS: IDC | PC | IDV(2) AS C: Ticket(3) C V : IDC | TicketTicket

45、 = EKVIDC | ADC | IDV其中:C: clientAS : Authentication Server V : serverIDC: identifier of user on C IDV: identifier of VPC: password of user on CADC: network address of CKV: AS与与V共有的保密密钥共有的保密密钥CVAS(1)(2)(3)一个简单的认证对话在Tiket中: IDC 指明消息由指明消息由C发出发出 ADC 防止用防止用IDC 的名称从另一个工作站转发的名称从另一个工作站转发message(3) IDV V可以验

46、证加密的正确性可以验证加密的正确性 更安全的认证对话更安全的认证对话 两个主要问题两个主要问题 希望用户输入口令的次数最少。希望用户输入口令的次数最少。(每天用多次或每天用多次或访问不同的服务器访问不同的服务器) 口令以明文传送会被窃听。口令以明文传送会被窃听。 解决办法解决办法 可重复使用的票据可重复使用的票据 (ticket reusable) 票据授予服务器票据授予服务器 (ticket-granting server)(TGS)每个用户登录会话一次每个用户登录会话一次(Once per user logon session)(1) C AS : IDC | IDtgs(2) AS C

47、: EKCTickettgs TGS: 票据授予服务器(3)(KC 由用户口令生成的密钥由用户口令生成的密钥,当回应到达当回应到达C 时客户机提时客户机提(4) 示示C 输入口令输入口令,这样就不用传输明文口令这样就不用传输明文口令)每个服务类型一次每个服务类型一次(Once per type of service)(3) C TGS : IDC | IDv | Tickettgs(4) TGS C : TicketV(5) 每个服务对话一次每个服务对话一次(Once per service session)(5) C V : IDC | TicketVTickettgs = EKtgsIDC

48、|ADC|IDtgs|TS1|Lifetime1TicketV = EKVIDC|ADC|IDV|TS2|Lifetime2 KV: AS与与V共有的保密密钥共有的保密密钥 Ktgs : AS与与TGS共有的保密密钥共有的保密密钥 CVAS(1)(2)(3)TGS(4)(5)Kerberos改进后的假想对话:改进后的假想对话:Kerberos V4 Authentication Dialogue 两个问题两个问题 与与ticket-granting ticket相关的相关的Lifetime问题;问题; 需要服务器向客户进行认证;需要服务器向客户进行认证; 解决方案解决方案 会话密钥会话密钥 (

49、session key)(a) Authentication Service Exchange: to obtain ticket-granting ticket (1) C AS : IDC | IDtgs | TS1 (2) AS C : EKCKc,tgs | IDtgs | TS2 | Lifetime2 | TickettgsTickettgs = EKtgs Kc,tgs | IDC | ADC | IDtgs | TS2 | Lifetime2(b) Ticket-granting Service Exchange: to obtain service-granting tick

50、et (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|TS3(c) Client/Server Authentication Exchange: To obtain service (5) C V

51、: Ticketv | Authenticatorc (6) V C : EKc,vTS5+1 ( for mutual authentication)Ticketv = EKVKc,v|IDc|ADc|IDv|TS4|Lifetime4Authenticatorc = EKc,vIDc|ADc|TS5 Kerberos Version 4 消息交换小结消息交换小结Summary of Kerberos Version 4 Message Exchanges(a) Authentication Service ExchangeMessage(1)Client 请求请求 ticket-grant

52、ing ticket IDC : 告诉告诉AS本本client端的用户标识;端的用户标识; IDtgs :告诉告诉AS用户请求访问用户请求访问TGS; TS1 :让让AS验证验证client端的时钟是与端的时钟是与AS的时钟同步的;的时钟同步的;Message(2)AS返回返回ticket-granting ticket EKC :基于用户口令的加密,使得基于用户口令的加密,使得AS和和client可以验证口令,可以验证口令,并保护并保护Message(2)。 Kc,tgs : session key的副本,由的副本,由AS产生,产生,client可用于在可用于在AS与与client之间信息的

53、安全交换,而不必共用一个永久的之间信息的安全交换,而不必共用一个永久的key。 IDtgs : 确认这个确认这个ticket是为是为TGS制作的。制作的。 TS2 :告诉告诉client该该ticket签发的时间。签发的时间。 Lifetime2:告诉告诉client该该ticket的有效期;的有效期; Tickettgs:client用来访问用来访问TGS的的ticket。 Rationale for the Elements of the Kerberos Version 4 Protocol(b) Ticket-granting Service ExchangeMessage(3)cli

54、ent 请求请求service-granting ticket IDv:告诉告诉TGS用户要访问服务器用户要访问服务器V; Tickettgs :向向TGS证实该用户已被证实该用户已被AS认证;认证;Authenticatorc:由由client生成,用于验证生成,用于验证ticket;Message(4)TGS返回返回service-granting ticket EKc,tgs :仅由仅由C和和TGS共享的密钥;用以保护共享的密钥;用以保护Message(4); Kc,tgs: session key的副本,由的副本,由TGS生成,供生成,供client和和server之间之间信息的安全交

55、换,而无须共用一个永久密钥。信息的安全交换,而无须共用一个永久密钥。 IDv :确认该确认该ticket是为是为server V签发的;签发的; TS4 :告诉告诉client该该ticket签发的时间;签发的时间; TicketV :client用以访问服务器用以访问服务器V的的ticket; Tickettgs:可重用,从而用户不必重新输入口令;可重用,从而用户不必重新输入口令; EKtgs : ticket用只有用只有AS和和TGS才知道的密钥加密,以预防篡改;才知道的密钥加密,以预防篡改; Kc,tgs : TGS可用的可用的session key副本,用于解密副本,用于解密authe

56、nticator,从而从而认证认证ticket; IDc :指明该指明该ticket的正确主人;的正确主人;Kerberos处理过程概要CVAS(1)(2)(3)TGS(4)(5)Kerberos(6) Kerberos中中ticket示意图示意图Kerberos管辖范围与多重服务管辖范围与多重服务一个完整的一个完整的Kerberos环境包括一个环境包括一个Kerberos服务器,一组工作站,和一服务器,一组工作站,和一组应用服务器,满足下列要求:组应用服务器,满足下列要求: Kerberos服务器必须在其数据库中拥有所有参与服务器必须在其数据库中拥有所有参与用户的用户的ID(UID)和口令散

57、列和口令散列(hash)表。所有用户均表。所有用户均在在Kerberos服务器上注册。服务器上注册。 Kerberos服务器必须与每一个服务器之间共享一个保密服务器必须与每一个服务器之间共享一个保密密钥。所有服务器均在密钥。所有服务器均在Kerberos服务器上注册。服务器上注册。这样的环境被视为一个领域这样的环境被视为一个领域(realm)。 每一个辖区的每一个辖区的Kerberos 服务器与其它辖区内的服务器与其它辖区内的Kerberos服务器之间共享一个保密密钥。两个服务器之间共享一个保密密钥。两个Kerberos服务器互相注册。服务器互相注册。请求另一领域的服务请求另一领域的服务(1) C AS :IDC | IDtgs | TS1 (2) AS C :EKCKc,tgs | IDtgs | TS2 | Lifetime2 | Tickettgs(3) C TGS:IDtgsrem | Tick

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论