数字签名与身份鉴别课件_第1页
数字签名与身份鉴别课件_第2页
数字签名与身份鉴别课件_第3页
数字签名与身份鉴别课件_第4页
数字签名与身份鉴别课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

数字签名是网络中进行安全交易的基础,数字签名不仅可以保证信息的完整性和信息源的可靠性,而且可以防止通信双方的欺骗和抵赖行为。身份鉴别是网络中自动进行身份识别的技术。§5.1数字签名§5.2数字签名算法

★§5.3鉴别技术§5.4Kerberos鉴别服务§5.5X.509证书及鉴别框架

★第五章数字签名与身份鉴别报文鉴别能够保护通信双方免受任何第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造。在收发双方未建立起完全的信任关系且存在利害冲突的情况下,单纯的报文鉴别就显得不够充分。因此,需要数字签名技术。数字签名应具有以下性质必须能够验证签名生成者的身份,以及生成签名的日期和时间;能够用于证实被签名消息的内容;数字签名必须能被第三方验证,从而解决通信双方的争议。§5.1数字签名数字签名应满足以下要求签名的产生必须使用对发送方来说是唯一的信息,以防止伪造和抵赖;数字签名的产生必须相对简单;数字签名的识别和验证必须相对简单;对已有的数字签名伪造一个新的报文或对已知的报文伪造一个虚假的数字签名,在计算上是不可行的。数字签名的执行方式有两种直接数字签名需仲裁的数字签名§5.1数字签名§5.1数字签名直接数字签名指数字签名的执行过程只有通信双方参与,并假定通信双方有共享的秘密密钥或接收方知道发送方的公开密钥。数字签名可通过使用发送方的私有密钥对整个报文进行加密,如EKRa(M);或通过使用发送方的私有密钥对报文的散列值进行加密来形成,如EKRa[H(M)]。保密性通过对整个报文和签名进行加密来实现:可采用接收方的公开密钥进行加密,如EKUb[EKRa(M)];或采用双方共享的秘密密钥进行加密,如EK[M||EKRa[H(M)]]。§5.1数字签名直接数字签名方案都具有共同的弱点方案的有效性依赖于发送方私有密钥的安全性。例如:发送方在用私有密钥对报文签名后,想否认发送过该报文,发送方可以声称该私有密钥丢失,签名被伪造。§5.1数字签名需仲裁的数字签名需仲裁的数字签名方案按照如下方式进行发送方X对发往接收方Y的报文签名后,将报文及其签名首先发往仲裁者A;仲裁者A对报文及其签名进行测试以检验其出处和内容,然后对报文注明日期,并附上一个已经经过仲裁证实属实的说明后发送给接收方Y。仲裁者A的存在使发送方X无法否认已发送过的报文。§5.1数字签名需仲裁的数字签名技术常规加密,仲裁者能看到报文内容常规加密,仲裁者不能看到报文内容公开密钥加密,仲裁者不能看到报文内容 其中:Kxa为发送方X与仲裁者A共享的秘密密钥;Kay为仲裁者A与接受方Y共享的秘密密钥;IDx为X的标识符;M为源自X的报文;T为时间戳。§5.1数字签名常规加密,仲裁者能看到报文内容(1)X→A:M||EKxa[IDx||H(M)](2)A→Y:EKay[IDx||M||EKxa[IDx||H(M)]||T]发送方X生成报文M并计算其散列值H(M),然后将报文M与签名发送给仲裁者A,签名由X的标识符IDx与散列值H(M)组成,并使用密钥Kxa加密;仲裁者A对签名进行解密并验证其散列值是否有效,然后向接收方Y发送报文,该报文包括X的标识符IDx、源自X的报文M、签名EKxa[IDx||H(M)]和时间戳T,并使用Kay加密。Y存储报文M与签名EKxa[IDx||H(M)]以备出现争议时使用。§5.1数字签名当发生争执时,声称收到发自X报文的Y向A发送如下报文:

EKay[IDx||M||EKxa[IDx||H(M)]]仲裁者A使用Kay恢复IDx、M和签名EKxa[IDx||H(M)],然后使用Kxa对签名进行解密并验证散列值。§5.1数字签名Y认定报文有效且来自于A这一事实,是因为该报文经过了A。因此在整个过程中,A必须取得X和Y的信任:X相信A不会泄漏Kxa,且不会伪造X的签名;Y相信A只有在对EKay[IDx||M||EKxa[IDx||H(M)]||T]中的散列值及X的签名验证无误后才将之发送给Y;X、Y都相信A可以公正地解决争议。缺点:报文M以明文方式发送,未提供保密性;仲裁者可以与发送方共谋以否认发送方曾发送过报文,或与接收方共谋以伪造发送方的签名。§5.1数字签名常规加密,仲裁者不能看到报文内容(1)X→A:IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])](2)A→Y:EKay[IDx||EKxy[M]||EKxa[IDx||H(EKxy[M])]||T]其中Kxy为X、Y共享的秘密密钥。X以EKxa[IDx||H(EKxy[M])]作为对M的签名,与由Kxy加密的报文M一起发送给A;A对EKxa[IDx||H(EKxy[M])]解密后通过验证其散列值来验证X的签名,但并不能读取明文M;A验证结束后,对X发来的报文附加时间戳T,再用Kay加密后发往Y。§5.1数字签名解决争议方法同上。缺点:仲裁者可以与发送方共谋以否认发送方曾发送过报文,或与接收方共谋以伪造发送方的签名。§5.1数字签名公开密钥加密,仲裁者不能看到报文内容(1)X→A:IDx||EKRx[IDx||EKUy[EKRx[M]]](2)A→Y:EKRa[IDx||EKUy[EKRx[M]||T]X以自己的私有密钥和Y的公开密钥对报文进行加密作为对M的签名,使得任何第三方都不能获得M的明文;A收到X发来的报文后,使用X的公开密钥对EKRx[IDx||EKUy[EKRx[M]]]进行解密,并将解密后的IDx与收到的IDx进行比较,以确认该报文来自X;A将X的标识符IDx和X对M的签名附加一个时间戳T后,用自己的私有密钥加密然后发送给Y。§5.1数字签名优点:在协议执行之前,各方都不必拥有共享信息,从而可以防止共谋;只要仲裁者的私有密钥不被泄漏,任何人(包括发送方)就不能发送重放的消息;对任何第三方来说,X发往Y的报文都是保密的。美国国家标准技术研究院NIST于1994年5月公布了联邦信息处理标准FIPSPUB186,即数字签名标准DSS。该标准利用了安全散列算法SHA,并提出了一种新的数字签名技术,即数字签名算法DSA(DigitalSignatureAlgorithm)。§5.2.1数字签名标准DSS§5.2.2数字签名算法DSA§5.2数字签名算法数字签名标准DSS规定了一种适用于数字签名应用中的公开密钥数字签名算法DSA。数字签名标准DSS使用公开密钥,为接收者验证数据的完整性和数据发送者的身份,也可用于由第三方来确定签名和所签数据的真实性。§5.2.1数字签名标准DSSDSS数字签名方案散列值和用作签名的随机数k作为签名函数的输入,同时签名函数还依赖于发送方的私有密钥KRa和全局公开密钥KUG,签名的结果由两个分量组成:s和r。在接收端将报文的散列值和签名作为验证函数的输入,验证函数还依赖于全局公开密钥KUG和发送方的公开密钥KUa;若验证函数的输出值与签名分量r相同,则签名有效。M||HSigKUGKRakMsrHVerKUGKUa比较§5.2.1数字签名标准DSSDSA算法的参数全局公开密钥分量(p,q,g)用户私有密钥x用户公开密钥y每个报文的密值k签名过程验证过程§5.2.2数字签名算法DSA全局公开密钥分量(p,q,g)p是素数,2L-1<p<2L,512≤L<1024,且L为64的倍数:即比特长度在512到1024之间,长度增量为64bit。q为(p-1)的素因子,其中2159<q<2160,即长度为160比特。g=h(p-1)/qmodp,其中h是整数,1<h<(p-1)且满足

h(p-1)/qmodp>1。§5.2.2数字签名算法DSA用户私有密钥x选择私有密钥x,x为随机或伪随机整数,其中0<x<q。用户公开密钥y根据私有密钥x计算公开密钥y=gxmodp。每个报文的密值kk是随机或伪随机整数,且对每个签名是惟一的,其中0<k<q。§5.2.2数字签名算法DSA签名过程为了生成签名,需要计算r和s,它们分别是全局公开密钥分量(p,q,g)、发送方的私有密钥x、报文M的散列值H(M)和密值k的函数。

r=(gkmodp)modq s=[k-1(H(M)+xr)]modq签名=(r,s)§5.2.2数字签名算法DSA验证过程接收端产生量v,v是全局公开密钥分量(p,q,g)、发送方的公开密钥y和收到报文M的散列值H(M)的函数,M'、r'和s'分别是接收到的M、r和s版本。

w=(s')-1modq u1=[H(M')w]modq u2=(r')wmodq v=[(gu1yu2)modp]modq验证:v=r'§5.2.2数字签名算法DSADSS的签名和验证函数f2pqgf1xqMkHsrM's'r'Hf4f3qyqg比较v签名

s=f1(H(M),k,x,r,q) =(k-1(H(M)+xr))modq r=f2(k,p,q,g) =(gkmodp)modq验证

w=f3(s',q)=(s')-1modq v=f4(y,q,g,H(M'),w,r') =((g(H(M')w)mod

qyr'wmodqmodp) modq§5.2.2数字签名算法DSA引理1对任何整数t,若g=h(p-1)/qmodp,则

gtmodp=gtmodqmodp。引理2对非负的整数a和b,

g(amodq+bmodq)modp=g(a+b)mod

qmodp。引理3y(rw)mod

qmodp=g(xrw)mod

qmodp。引理4((H(M)+xr)w)modq=k。§5.2.2数字签名算法DSA证明v=rv=((gu1yu2)modp)modq (根据定义)

=((g(H(M)w)mod

qy(rw)mod

q)modp)modq=((g(H(M)w)mod

qg(xrw)mod

q)modp)modq (根据引理3)

=((g(H(M)w)modq+(xrw)mod

q)modp)modq=((g(H(M)w+xrw)mod

q)modp)modq (根据引理2)

=((g(H(M)+rx)wmod

q)modp)modq=(gkmodp)modq (根据引理4)

=r (根据定义)§5.2.2数字签名算法DSA鉴别是证实被鉴别对象是否属实和是否有效的一个过程。基本思想是通过对被鉴别对象的属性进行验证来达到确认被鉴别对象是否真实有效的目的。用于鉴别的属性应该是被鉴别对象惟一的、区别于其它实体的属性。被鉴别对象的属性可以是口令、数字签名或者像指纹、声音、视网膜这样的生理特征。鉴别通常被用于通信双方相互确认身份,以保证通信的安全。§5.3鉴别技术§5.3.1基于口令的鉴别方法§5.3.2双因素鉴别§5.3.3询问-握手鉴别协议CHAP§5.3鉴别技术传统的鉴别技术主要采用基于口令的鉴别方法。当被鉴别对象要求访问提供服务的系统时,提供服务鉴别方提示被鉴别对象提交该对象的口令,鉴别方收到口令后将其与系统中存储的用户口令进行比较,以确认被鉴别对象是否为合法访问者。基于口令鉴别方法的优点一般的系统(如UNIX,Windows2000,NetWare等)都提供了对口令鉴别的支持,对于封闭的小型系统来说不失为一种简单可行的方法。§5.3.1基于口令的鉴别方法基于口令的鉴别方法存在以下不足用户每次访问系统时都要以明文方式输入口令,这时很容易泄密。口令在传输过程中可能被截获。系统中所有用户的口令以文件形式存储在鉴别方,攻击者可以利用系统中存在的漏洞获取系统的口令文件。用户在访问多个不同安全级别的系统时,都要求用户提供口令,用户为了记忆的方便,往往采用相同的口令。而低安全级别系统的口令更容易被攻击者获得,从而用来对高安全级别系统进行攻击。只能进行单向鉴别,即系统可以鉴别用户,而用户无法对系统进行鉴别。§5.3.1基于口令的鉴别方法在双因素鉴别系统中,用户除了拥有口令外,还拥有系统颁发的令牌访问设备。当用户登录系统时,除输入口令外,还要输入令牌访问设备所显示的数字。该数字是不断变化的,而且与鉴别服务器是同步的。双因素鉴别比基于口令的鉴别方法增加了一个鉴别要素,攻击者仅仅获取用户口令或者仅仅拿到用户的令牌访问设备,都无法通过系统的鉴别。而且令牌访问设备上所显示的数字不断地变化,这使得攻击变得非常困难。双因素鉴别比基于口令的鉴别方法具有更好的安全性。§5.3.2双因素鉴别询问-握手鉴别协议CHAP(ChallengeHandshakeAuthenticationProtocol)采用的是询问-响应方法,通过三次握手方式对被鉴别方的身份进行周期性的鉴别。§5.3.3询问-握手鉴别协议CHAP询问-握手协议CHAP的步骤在通信双方链路建立阶段完成后,鉴别方向被鉴别方发送一个询问消息;被鉴别方向鉴别方发回一个响应,该响应由单向散列函数计算得出,单向散列函数的输入参数包括本次鉴别的标识符、秘密值和询问;鉴别方将收到的响应与其自己根据鉴别标识符、秘密值和询问计算出的散列值进行比较,若相符则鉴别通过,向被鉴别方发送“成功”消息,否则,发送“失败”消息,断开连接。在双方通信过程中系统将以随机的时间间隔重复上述三步鉴别过程。§5.3.3询问-握手鉴别协议CHAPCHAP算法要求秘密值长度至少为一个字节,最好能和所选择散列算法的散列值等长。单向函数算法保证由已知的询问和响应不可能计算出秘密值。每个询问值应该是惟一的,而且是不可预测的。询问值每次都不一样,其长度一般取决于所选用的散列算法。响应值也取决于所选用的散列算法。§5.3.3询问-握手鉴别协议CHAPCHAP协议具有以下优点通过不断地改变鉴别标识符和询问消息的值来防止重放攻击;利用周期性的询问防止通信双方在长期会话过程中被攻击;虽然CHAP进行的是单向鉴别,但在两个方向上进行CHAP协商,也能实现通信双方的相互鉴别。CHAP可用于鉴别多个不同的系统。§5.3.3询问-握手鉴别协议CHAPCHAP的不足之处CHAP鉴别的关键是秘密值,CHAP的秘密值以明文形式存放和使用,不能利用通常的不可逆算法加密口令数据库。CHAP的秘密值是通信双方共享的,这一点类似于对称密钥体制,因此给秘密值的分发和更新带来了麻烦,要求每个通信对都有一个共享的秘密值,不适合大规模的系统。§5.3.3询问-握手鉴别协议CHAPKerberos是美国麻省理工学院80年代的雅典娜项目开发的基于可信赖第三方的鉴别系统。Kerberos要解决问题假定在一个公开的分布式系统中,工作站上的用户希望访问分布在网络中服务器上的服务,此时希望服务器能限制授权用户的访问,并能对服务请求进行鉴别。Kerberos提供一个集中的鉴别服务器,其功能是实现应用服务器与用户之间的相互鉴别。§5.4.1动机§5.4.2Kerberos协议§5.4Kerberos鉴别服务Kerberos需求安全Kerberos应该足够强以防止潜在的对手发现脆弱的链路。可靠对所有依赖Kerberos进行访问控制的服务来说,无法获得Kerberos服务就意味着无法获得所要求的服务,因此,Kerberos应该是高可靠性的,应该使用分布式的服务器结构。透明理想情况下,除需要输入一个口令外,用户应该不会察觉鉴别服务的发生。可扩展性系统应该拥有支持大量客户和服务器的能力。§5.4.1动机Kerberos具有以下特点:Kerberos建立在可信的第三方鉴别协议基础之上在Kerberos系统中存在密钥分配中心KDC,又称为Kerberos服务器。KDC负责向用户颁发用于证明用户身份的许可证(Ticket)和与网络资源安全通信的会话密钥。KDC由鉴别服务器AS(AuthenticationServer)和许可证颁发服务器TGS(TicketGrantingServer)构成。用户在对应用服务器进行访问之前,必须先从第三方(Kerberos服务器)获取该应用服务器的访问许可证。Kerberos是基于常规密码体制的鉴别Kerberos采用常规密码体制对信息进行加密,其基本思想是:能正确对信息进行解密的用户就是合法用户。§5.4.1动机Kerberos一般用于高层协议通常Kerberos被用于诸如FTP和Telnet这样的应用层协议,提供用户到主机的安全性。Kerberos也可以用于TCP、UDP或IP协议,提供主机到主机的安全性。Kerberos跨域鉴别在庞大的Internet上仅采用一个Kerberos服务器是不合适的。Kerberos将网络划分为多个安全域(Realm),每个域有自己的鉴别服务器并实施自己的安全策略。Kerberos协议提供了不同域之间的鉴别机制,即跨域鉴别。这样,一个域中的用户就可以访问另一个域中的应用服务器。§5.4.1动机一个简单的鉴别对话一个更安全的鉴别对话Kerberos第4版的鉴别对话Kerberos领域与多个KerberiKerberos第5版的鉴别对话§5.4.2Kerberos协议一个简单的鉴别对话问题在网络环境中,任何客户都可以向服务器申请服务,为了防止用户对服务器的未授权的访问,服务器必须能够证实请求服务用户的身份。解决方法:使用一个鉴别服务器AS,AS知道所有用户的口令,并将口令存储在一个集中的数据库中。AS与每个应用服务器共享一个惟一的密钥,假定这些密钥已经通过物理方式或其他安全方式进行分发。§5.4.2Kerberos协议鉴别对话如下C→AS:IDC||PC||IDVAS→C:Ticket=EKv[IDC||ADC||IDV]C→V:IDC||Ticket其中:C表示客户;AS表示鉴别服务器;V表示应用服务器;IDC表示在C上的用户标识符IDV表示应用服务器V的标识符PC表示在C上的用户口令ADC表示C的网络地址Kv表示AS和V共享的秘密密钥§5.4.2Kerberos协议C首先请求用户输入口令,然后向服务器发送报文,报文包括用户ID、服务器ID和用户的口令。AS检查其数据库,验证该用户提供的口令是否正确以及该用户是否被允许访问服务器V。若验证通过,AS认为该用户是可信的。为了使服务器V确信该用户是可信的,AS生成票据Ticket,Ticket中包括用户ID、用户网络地址与应用服务器ID,然后将该票据送回C。C使用票据Ticket向应用服务器V申请服务:C向V发送含有C的ID和票据Ticket的报文,V对票据进行解密,以验证票据中的用户ID与报文中未加密的用户ID是否一致,若匹配,则认为该用户是经过鉴别的,并同意用户请求的服务。票据中的IDV使得应用服务器V能证实票据解密的正确性。票据中的IDC用来说明该票据是代表C发出的。票据中的ADC用于防止以下威胁:攻击者使用票据Ticket从其他工作站(非C)向应用服务器发送请求。§5.4.2Kerberos协议一个更安全的鉴别对话新的问题1:希望让用户必须输入口令的次数最小。假定每次鉴别只能请求一次服务,如果用户C登录到一个工作站,打算检查一下在邮件服务器中是否有他或她的邮件,C必须与邮件服务器进行鉴别。如果C打算多次访问邮件服务器,每次尝试都必须进行鉴别。解决方法:使用Kerberos协议服务许可票据对一次登录会话,用户可以向鉴别服务器鉴别自己,鉴别服务器向用户提供一张服务许可票据,用户可以保存收到的许可票据。每次请求这种服务时向邮件服务器出示该服务许可票据,并用它代表用户来多次访问邮件服务器。§5.4.2Kerberos协议新的问题2:对不同的服务,用户需要新的票据的问题。如果用户希望访问打印服务器、邮件服务器、文件服务器等,每个服务的第一次访问都需要一个新的票据,因此需要用户输入口令。解决方法:使用Kerberos协议票据许可票据用户向鉴别服务器鉴别自己后,获得一张票据许可票据。票据许可票据是可重用的,用户利用票据许可票据获得服务许可票据。服务许可票据是可重用的,用户利用服务许可票据获得服务而无需输入口令。§5.4.2Kerberos协议鉴别对话如下:用户登录的每个会话一次:C→AS:IDC||IDtgsAS→C:EKc[Tickettgs]每种服务类型一次:C→TGS:IDC||IDV||TickettgsTGS→C:TicketV每种服务会话一次:C→V:IDC||TicketV§5.4.2Kerberos协议用户向AS发送用户ID和TGSID来请求代表该用户的票据许可票据。AS向用户返回加密过的票据许可票据,加密密钥KC是由用户口令导出的。当响应到达客户端时,客户端提示用户输入口令,产生密钥。用户向票据许可服务器发送一个包含用户ID、期望服务的服务器ID与票据许可票据的报文,请求获得服务许可票据。TGS对收到的票据许可票据进行解密,检查TGSID以验证解密是否成功,检查生存期以确保票据没有过期,比较用户ID和网络地址与收到鉴别用户的信息是否一致。若允许用户访问应用服务器V,则TGS向C发送服务许可票据。用户向应用服务器发送一个包含用户ID和服务许可票据的报文,向应用服务器请求获得某项服务。其中:票据许可票据

Tickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]服务许可票据

TicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]TGS为票据许可服务器KC表示由用户口令导出的加密密钥Ktgs表示AS与TGS共享的秘密密钥TS表示票据发出的时间Lifetime表示票据的生存期KV表示TGS与V共享的秘密密钥§5.4.2Kerberos协议Kerberos第4版的鉴别对话新的问题1:票据许可票据的生存期。如果生存期太短,那么用户将经常被要求输入口令。如果生存期太长,那么攻击者就有更多重放的机会。攻击者可以窃听网络,获得票据许可票据的复制,然后等待合法用户的退出登录。这样攻击者便可伪造合法用户的网络地址,并向TGS发送步骤(3)中的报文。同样,如果攻击者截获服务许可票据,并在过期前使用它,攻击者便可访问相应的服务。解决方法网络服务(TGS或应用服务)必须能够证明使用票据的人就是申请票据的人。§5.4.2Kerberos协议新的问题2:对服务器来说可能是一个需求:向用户鉴别它们自己。没有这样的鉴别,攻击者可能会阴谋破坏系统配置,使发往服务器的报文被转送到另一个位置。假的服务器充当真正的服务器,并接收来自用户的任何信息,拒绝向用户提供真正的服务。解决方法:使用相互鉴别。§5.4.2Kerberos协议Kerberos服务器概况CKerberosAuthenticatorServer(AS)TicketGrantingServer(TGS)V(1)用户登录工作站请求服务(2)AS在数据库中验证用户的访问权限,生成票据许可票据与会话密钥,并使用由用户口令导出的密钥对其进行加密(1)请求票据许可票据(2)票据+会话密钥(3)请求服务许可票据(4)票据+会话密钥(3)工作站提示用户输入口令来对收到的报文进行解密,然后将票据许可票据与包含用户名、网络地址和时间的鉴别符发往TGS用户登录每个会话一次每类服务一次(5)请求服务(6)提供服务器鉴别符每种服务会话一次(4)TGS对票据和鉴别符进行解密,验证请求,然后生成服务许可票据(5)工作站将票据和鉴别符发给服务器(6)服务器验证票据和鉴别符中的匹配,然后许可访问。若需要双向鉴别,则服务器返回一个鉴别符Kerberos第4版报文交换鉴别服务交换:获得票据许可票据C→AS:IDC||IDtgs||TS1AS→C:EKc[KC,tgs||IDtgs||TS2||Lifetime2||Tickettgs]其中:Tickettgs=EKtgs[KC,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]KC,tgs为C与TGS共享的会话密钥§5.4.2Kerberos协议用户C向AS请求票据许可票据,请求中的时间戳用以向AS表明该请求是新的。AS向用户C发出应答,应答以从用户口令导出的密钥KC加密,加密的内容包括C与TGS共享的会话密钥KC,tgs、TGS标识符、时间戳TS2、票据Tickettgs及该票据的生存期。票据许可服务交换:获得服务许可票据C→TGS:IDV||Tickettgs||AuthenticatorCTGS→C:EKc,tgs[KC,V||IDV||TS4||TicketV]其中:Tickettgs=EKtgs[KC,tgs||IDC||ADC||IDtgs||TS2||Lifetime2]TicketV=EKv[KC,V||IDC||ADC||IDV||TS4||Lifetime4]AuthenticatorC=EKc,tgs[IDC||ADC||TS3]KC,V为C与TGS共享的会话密钥§5.4.2Kerberos协议C向TGS请求服务许可票据,报文中包含了应用服务器的身份、票据许可票据Tickettgs与鉴别符。TGS使用与AS共享的密钥Ktgs解密票据Tickettgs后,获得与用户C的共享密钥KC,tgs;同时TGS使用KC,tgs解密鉴别符,并将鉴别符中的数据与票据中的数据进行比较,从而确信票据的发送者即为票据的持有者。TGS使用KC,tgs加密应答消息,其中包括C和V共享的会话密钥、V的标识符、服务许可票据TicketV及票据的时间戳,同样,票据TicketV也包含同样的信息。客户/服务器鉴别交换:获得服务C→V:TicketV||AuthenticatorCV→C:EKc,v[TS5+1] (对于相互鉴别)其中:TicketV=EKv[KC,V||IDC||ADC||IDV||TS4||Lifetime4]AuthenticatorC=EKc,v[IDC||ADC||TS5]§5.4.2Kerberos协议C向服务器V发送服务许可票据TicketV和鉴别符。服务器解密票据后得到会话密钥KC,V,并使用KC,V解密鉴别符,以验证用户C的身份。V向C证明自己的身份。V对从鉴别符得到的时间戳TS5加1,再用KC,V加密后发送给C;C解密该报文后对增加的时间戳进行验证,以确信对方是V。Kerberos领域与多个Kerberi完整服务的Kerberos环境包含一个Kerberos服务器、许多客户和许多应用服务器。Kerberos环境有如下需求:Kerberos服务器的数据库必须包含所有参与用户的ID和用户口令的散列码,所有用户都向Kerberos服务器注册。Kerberos服务器必须与每个服务器共享一个密钥,所有服务器都向Kerberos服务器注册。这样的环境被称为一个领域。不同行政组织下的由客户和服务器组成的网络组成不同的领域。§5.4.2Kerberos协议在一个领域中用户可能需要访问他领域的服务器,同时某些服务器可能也愿意向其他领域的用户提供服务,如果这些用户是经过鉴别的。Kerberos提供了一种支持不同领域间鉴别的机制。每个互操作领域中的Kerberos服务器要与另一个领域中的Kerberos服务器共享一个密钥。两个Kerberos服务器都必须相互注册。该方案需要一个领域中的Kerberos服务器信任另一个领域中Kerberos服务器鉴别的用户,并且第二个领域的参与服务器也愿意信任第一个领域中的Kerberos服务器。§5.4.2Kerberos协议请求另一领域内服务的过程客户CKerberosAuthenticatorServer(AS)TicketGrantingServer(TGS)(1)请求本地TGS票据(2)本地TGS票据(3)请求远程TGS票据(4)远程TGS票据服务器KerberosAuthenticatorServer(AS)TicketGrantingServer(TGS)(5)请求远程服务器票据(6)远程服务器票据(7)请求远程服务领域A领域B报文交换过程如下:C→AS:IDC||IDtgs||TS1AS→C:EKc[KC,tgs||IDtgs||TS2||Lifetime2||Tickettgs]C→TGS:IDtgsrem||Tickettgs||AuthenticatorCTGS→C:EKc,tgs[KC,tgsrem||IDtgsrem||TS4||Tickettgsrem]C→TGSrem:IDVrem||Tickettgsrem||AuthenticatorCTGS→C:EKc,tgsrem[KC,Vrem||IDVrem||TS6||TicketVrem]C→Vrem:TicketVrem||AuthenticatorC§5.4.2Kerberos协议Kerberos第5版的鉴别对话Kerberos第5版解决了第4版存在的以下不足:双重加密在Kerberos第4版中,提供给客户的票据被加密了两次。第一次采用目标服务器的密钥,然后再采用客户知道的密钥。第二次加密是不必要的,造成计算上的浪费。PCBC加密第4版中的加密采用了DES的传播密码分组链接方式PCBC,该模式易受使用互换密文分组的攻击。在第5版中提供了显式的完整性机制,允许使用标准的CBC模式进行加密。§5.4.2Kerberos协议会话密钥每张票据包括一个会话密钥,该密钥供客户对发往与该票据有关服务器的鉴别符进行加密。此外,客户与服务器随后可能要使用这个会话密钥来保护会话过程中的报文。然而,因为同一票据会被多次使用访问一个特定的服务器,存在对手使用与该客户或该服务器旧会话的报文进行重放攻击的危险。在第5版中,客户和服务器协商一个仅用于那个连接的子会话密钥是可能的,客户进行新的访问将导致使用新的子会话密钥。§5.4.2Kerberos协议口令攻击从AS发往客户的报文中包含用基于客户口令的密钥加密的内容。对手可以截获这个报文,并试图通过尝试不同的口令来对报文解密。如果测试解密的结果是正确的形式,那么这个对手已经发现了该客户的口令并可能随后用它获得Kerberos的鉴别证书。第5版提供了称为预鉴别(preauthentication)的机制,使口令攻击变得更加困难,但并不能避免口令攻击。§5.4.2Kerberos协议Kerberos第5版报文交换

鉴别服务交换:获得票据许可票据C→AS:Options||IDC||RealmC||IDtgs||Times||Nonce1AS→C:RealmC||IDC||Tickettgs||EKc[KC,tgs||Times||Nonce1||Realmtgs||IDtgs]其中:Tickettgs=EKtgs[Flags||KC,tgs||RealmC||IDC||ADC||Times]§5.4.2Kerberos协议票据许可交换服务:获得服务许可票据C→TGS:Options||IDV||Times||Nonce2||Tickettgs||AuthenticatorCTGS→C:ReamlC||IDC||TicketV||EKc,tgs[KC,V||Times||Nonce2||RealmV||IDV]其中:Tickettgs=EKtgs[Flags||KC,tgs||RealmC||IDC||ADC||Times]TicketV=EKv[Flags||KC,V||RealmC||IDC||ADC||Times]AuthenticatorC=EKc,tgs[IDC||RealmC||TS1]§5.4.2Kerberos协议客户/服务器鉴别交换:获得服务C→V:Options||TicketV||AuthenticatorCV→C:EKc,v[TS2||Subkey||Seq#]其中:TicketV=EKv[Flags||KC,V||RealmC||IDC||ADC||Times]AuthenticatorC=EKc,v[IDC||RealmC||TS2||Subkey||Seq#]§5.4.2Kerberos协议国际电信联盟(ITU)的X.509建议定义了一种提供鉴别服务的框架。基于X.509证书的鉴别技术依赖于共同信赖的第三方来实现鉴别。可信赖的第三方是称为CA(CertificateAuthority)的证书权威机构(认证中心)。该机构负责鉴别用户的身份并向用户签发数字证书。数字证书遵循X.509建议所规定的格式,因此称为X.509证书。持有此证书的用户就可以凭此证书访问那些信任CA的服务器。§5.5X.509证书及鉴别框架X.509证书由两部分构成:信息部分(I)和数字签名部分(S)。X.509证书基于公开密钥加密和数字签名,加密算法推荐使用RSA,数字签名则要求使用散列函数。证书权威机构Y对证书持有者C的证书信息IC进行数字签名,数字签名是通过用Y的私有密钥KRy对IC的散列码加密来实现的,可以表示为

S=EKRy[H(IC)]。因而,Y对C签发的证书可以表示为:

Y《C》=Y{IC}=IC||S=IC||EKRy[H(IC)]。§5.5X.509证书及鉴别框架X.509证书的格式证书的获取证书的撤销§5.5X.509证书及鉴别框架X.509证书是由可信的证书权威机构CA签发的一个关于实体及其公开密钥关联的数字声明,具有权威性。X.509证书的核心是公开密钥、公开密钥持有者(主体)和CA的签名,证书完成了公开密钥与公开密钥持有者的权威性绑定。X.500目录服务可以为X.509证书提供存放机制,提供一个易于访问的位置以便用户获得证书。由CA产生的用户证书的特点任何拥有CA公开密钥的用户都可以对该CA签发的证书进行验证,从而获得一个可信的用户公开密钥。任何一方(除证书权威机构CA外)都不可能不被察觉地修改证书。§5.5.1X.509证书X.509证书的格式版本证书序列号颁发者惟一标识符算法参数颁发者名称起始时间终止时间主体名称算法参数公开密钥主体惟一标识符扩展算法参数签名值签名算法标识符有效期主体的公钥信息签名第1版第2版第3版所有版本版本X.509有三个版本,默认是第1版(版本号为0);如果提供了颁发者惟一标识符或主体惟一标识符,则为第2版(版本号为1);如果出现了扩展字段,则为第3版(版本号为2)。证书序列号证书序列号是由CA给定的每一个证书中具有惟一性的整数值。签名算法标识符签名算法标识符用来标识CA对证书签名时所使用的算法及参数。签名算法有RSA和DSA,可以使用的散列函数为MD2、MD5和SHA-1。§5.5.1X.509证书颁发者名称颁发者名称是创建和签发该证书的权威机构CA的X.500名字,该名字是X.500目录信息树中标识该实体惟一名的一个路径。有效期有效期包括证书的有效起始时间和结束时间。主体名称主体名称标识该证书的持有者的名字。主体的公钥信息主体的公开密钥信息包括公开密钥算法标识符、算法的参数以及公开密钥。以上为X.509证书第一版。§5.5.1X.509证书颁发者惟一标识符颁发者惟一标识符用来惟一地标识CA,以解决颁发者名字可能被不同实体重用的问题。主体惟一标识符主体惟一标识符用来惟一地标识证书的持有者,以解决主体名字可能被不同实体重用的问题。以上为X.509证书第二版。§5.5.1X.509证书证书扩展证书扩展包含一个或多个扩展字段的集合。扩展字段提供了将用户及其密钥与其附加属性关联起来的方法。这些

温馨提示

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

评论

0/150

提交评论