第五章 数字签名与身份鉴别.ppt_第1页
第五章 数字签名与身份鉴别.ppt_第2页
第五章 数字签名与身份鉴别.ppt_第3页
第五章 数字签名与身份鉴别.ppt_第4页
第五章 数字签名与身份鉴别.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 数字签名与身份鉴别,5.1 数字签名 5.2 数字签名算法 5.3 鉴别技术 5.4 Kerberos鉴别服务 5.5 X.509证书及鉴别框架,5.1 数字签名,数字签名是网络中进行安全交易的基础,目前正逐渐得到世界各国和地区在法律上的认可。数字签名不仅可以保证信息的完整性和信息源的可靠性,而且可以防止通信双方的欺骗和抵赖行为。 从传统概念上看,任何用于鉴别被标记文档的标记都可以视为是签名。而数字签名被设计用于和传统的手写签名相同的目的。数字签名可以用于:身份的鉴别;保证被签内容的完整性;防止作者对交易行为的抵赖。 第四章所涉及的报文鉴别主要用于保护通信双方免受第三方的攻击。然而,它

2、无法防止通信双方的相互欺骗和攻击。,鉴于上述发送方和接收方之间存在欺骗或抵赖的情况,必须引入防止通信双方欺骗或抵赖的签名机制。为了保证数字签名的效果,数字签名必须满足下列要求: 1) 发送者在签名时必须能对信息内容进行鉴别。 2) 签名必须是发送者所惟一拥有的标记,攻击者伪造一个数字签名在计算上不可行。 3) 作者的签名和签名时间必须能被验证。 4) 数字签名的产生、识别和证实必须相对简单。 5) 签名必须与被签名的报文的位模式相关,当签名后的数据发生改变时,该签名将成为无效签名。 6) 签名必须能被第三方验证以便解决争端。,Return,5.2 数字签名算法,美国国家标准技术研究所NIST于

3、1994年5月19日公布了联邦信息处理标准FIPS PUB 186,该标准描述了一个用于数字签名的产生和验证的数字签名算法DSA(Digital Signature Algorithm)。2000年1月27日又公布了联邦信息处理标准FIPS PUB 186-2,该标准补充了两个数字签名算法:RSA数字签名算法和椭圆曲线数字签名算法ECDSA。 5.2.1 数字签名标准DSS 数字签名标准FIPS PUB 186-2定义了一组(3个)用于数字签名的算法。算法提供了生成和验证签名的能力。 生成数字签名时使用私有密钥,验证签名时使用对应的公开密钥。只有私有密钥的所有者可以生成签名。,数字签名的生成和

4、验证过程如图所示。 生成签名时首先用散列函数求得输入信息的消息摘要,然后再用数字签名算法对消息摘要进行处理,生成数字签名。 验证签名时使用相同的散列函数。该散列函数是由标准FIPS 180-1定义的SHA-1。,5.2.2 数字签名算法DSA 与DSA算法相关的数据由三个公开参数(p,q,g)、两个密钥(x,y)、一个密值(k)和报文散列码(H(M)构成。 1)三个公开参数 DSA使用三个公开密钥参数:p、q和g。参数p是一个长度在512bit和1024bit之间的素数,并且长度是64的整数倍。q是p-1的素因子,其长度为160bit。g=h(p-1)/q mod p,其中,h为一任意整数,1

5、1。上述参数可以对一组用户公开。 2)两个密钥 确定了三个参数后,每个用户选择一个私有密钥x,x为0到q之间的随机或伪随机整数(0 xq)。 用户根据私有密钥x计算公开密钥y,y=gx mod p。,3)一个密值 为每个要签名的报文M产生一个密值k,k是一个位于0到q之间的随机或伪随机整数(1kq-1)。k和私有密钥x一样需要保密。 DSA算法由生成签名和验证签名两部分构成。 生成签名时,算法根据p、q、g、x、k和报文的散列码H(M)计算签名值r和s。 r=(gk mod p) mod q s=(k-1(H(M)+xr) mod q 式中,k-1是k的模q乘法逆元,即k-1k=1(mod q

6、)。,验证签名时,先计算签名值v,然后将v与发送方发来的签名值r进行比较,相符则签名有效,否则签名无效。v值的计算步骤如下: w=(s)-1 mod q u1=H(M)w mod q u2=(r)w mod q v=(gu1yu2) mod p mod q 式中,M、s和r是接收方收到的报文和签名信息。接收方验证:若M=M、s=s、r=r,则v应等于r。,引理1. 对于非负整数a和b,g(a mod q+b mod q) mod p=g(a+b) mod q mod p。 引理2. y(rw) mod q mod p=g(xrw) mod q mod p 定理:若签名中的M=M,s=s,r=r

7、,那么,v= r。 证明:根据w,u1,u2的定义, v=(gu1yu2) mod p) mod q =(g(H(M)w) mod qy(rw) mod q) mod p) mod q =(g(H(M)w) mod qg(xrw) mod q) mod p) mod q 据引理2 =(g(H(M)w) mod q+(xrw) mod q) mod p) mod q =(g(H(M)w+xrw) mod q) mod p) mod q 据引理1 =(g(H(M)+xr)w) mod q) mod p) mod q s=(k-1(H(M)+xr) mod q w=(s)-1 mod q=(k(H(

8、M)+xr)-1) mod q (H(M)+xr)w mod q =k mod q =k (kq) v=(gk mod p) mod q=r=r,Return,5.3 鉴别技术,网络鉴别(认证)技术是网络安全技术的重要组成部分之一。鉴别是证实被鉴别对象是否属实和是否有效的一个过程。其基本思想是通过对被鉴别对象的属性的验证来达到确认被鉴别对象是否真实有效的目的。用于鉴别的属性应该是被鉴别对象惟一的、区别于其它实体的属性。被鉴别对象的属性可以是口令、数字签名或者象指纹、声音、视网膜这样的生理特征。鉴别常常被用于通信双方相互确认身份,以保证通信的安全。,5.3.1 基于口令的鉴别方法 传统的鉴别技术

9、主要采用基于口令的鉴别方法。当被鉴别对象要求访问提供服务的系统时,提供服务鉴别方提示被鉴别对象提交该对象的口令,鉴别方收到口令后将其与系统中存储的用户口令进行比较,以确认被鉴别对象是否为合法访问者。 这种鉴别方法的优点在于一般的系统都提供了对口令鉴别的支持,对于封闭的小型系统来说不失为一种简单可行的方法。 基于口令的鉴别方法存在下面几点不足: 1)用户每次访问系统时都要以明文方式输入口令,这时很容易泄密(如被肩部冲浪者看见)。 2)口令在传输过程中可能被截获。,3)系统中所有用户的口令以文件形式存储在鉴别方,攻击者可能获取系统的口令文件。 4)用户在访问多个不同安全级别的系统时,都要求用户提供

10、口令,用户为了记忆的方便,往往采用相同的口令。而低安全级别系统的口令更容易被攻击者获得,从而用来对高安全级别系统进行攻击。 5)只能进行单向鉴别,即系统可以鉴别用户,而用户无法对系统进行鉴别。攻击者可能伪装成系统骗取用户的口令。 对于第2点,系统可以对口令进行加密传输。对于第3点,系统可以对口令文件进行不可逆加密。尽管如此,攻击者还是可以利用一些工具很容易地将口令和口令文件解密。,5.3.2 双因素鉴别 在双因素鉴别系统中,用户除了拥有口令外,还拥有系统颁发的令牌访问设备。当用户向系统登录时,用户除了输入口令外,还要输入令牌访问设备所显示的数字。该数字是不断变化的,而且与鉴别服务器是同步的。

11、双因素鉴别比基于口令的鉴别方法增加了一个鉴别要素,攻击者仅仅获取了用户口令或者仅仅拿到了用户的令牌访问设备,都无法通过系统的鉴别。而且令牌访问设备上所显示的数字不断地变化,这使得攻击变得非常困难。因此,这种方法比基于口令的鉴别方法具有更好的安全性。在一定程度上解决了口令鉴别方法中的问题1、2和3。 另一种解决问题的方法是采用询问-响应(challenge-response)方法。,5.3.3 询问握手鉴别协议CHAP 询问-握手鉴别协议CHAP(Challenge Handshake Authentication Protocol)采用的是询问-响应方法,它通过三次握手(3-way hands

12、hake)方式对被鉴别方的身份进行周期性的鉴别。第一步,在通信双方链路建立阶段完成后,鉴别方(authenticator)向被鉴别方(peer)发送一个询问(challenge)消息;第二步,被鉴别方向鉴别方发回一个响应(response),该响应由单向散列函数计算得出,单向散列函数的输入参数为本次鉴别的标识符、秘密值(secret)和询问构成;第三步,鉴别方将收到的响应与它自己根据鉴别标识符、秘密值和询问计算出的散列函数值进行比较,若相符则鉴别通过,向被鉴别方发送“成功”消息,否则,发送“失败”消息,断开连接。在双方通信过程中系统将以随机的时间间隔重复上述三步鉴别过程。,CHAP算法要求秘密

13、值长度至少为一个字节,最好能和所选择的散列算法的散列值等长。若选用消息摘要算法MD5,则秘密值长度最好为128位。 单向函数算法保证由已知的询问和响应不可能计算出秘密值。 每个询问值应该是惟一的,而且是不可预测的。询问值每次都不一样。响应值取决于所选用的散列算法。 CHAP具有以下优点: 通过不断地改变鉴别标识符和询问消息的值来防止重放攻击。 利用周期性的询问防止通信双方在长期会话过程中被攻击。 虽然CHAP进行的是单向鉴别,但在两个方向上进行CHAP协商,也能实现通信双方的相互鉴别。,CHAP的不足之处是:CHAP鉴别的关键是秘密值,CHAP的秘密值以明文形式存放和使用,不能利用通常的不可逆

14、算法加密口令数据库。CHAP的秘密值是通信双方共享的,这一点类似于对称密钥体制,因此给秘密值的分发和更新带来了麻烦,要求每个通信对都有一个共享的秘密值,这不适合大规模的系统。 用于远程拨号接入的点对点协议PPP给出了在点到点链路上传输多协议数据报的一种标准方法。PPP采用CHAP和口令鉴别协议PAP作为其可选的两个鉴别协议。PPP定义了一个可扩充的链路控制协议(LCP),该协议可以使通信双方对鉴别协议进行协商。,Return,5.4 Kerberos鉴别服务,Kerberos是美国麻省理工学院上世纪80年代的雅典娜项目开发的基于可信赖的第三方的鉴别系统。 Kerberos具有以下特点: 1)

15、Kerberos建立在可信的第三方鉴别协议基础上 密钥分配中心KDC,又称Kerberos服务器。KDC负责向用户颁发用于证明用户身份的许可证(Ticket)和与网络资源安全通信的会话密钥。 KDC由鉴别服务器AS和许可证颁发服务器TGS构成。 2) Kerberos是基于常规密码体制的鉴别 3) Kerberos跨域鉴别 在庞大的Internet上仅采用一个Kerberos服务器是不合适的。Kerberos将网络划分为多个安全域(Realm),每个域有自己的鉴别服务器并实施自己的安全策略。Kerberos协议提供了不同域之间的鉴别机制,即跨域鉴别。两个域之间实现相互鉴别,必须共享一个域间密钥

16、。,如果两个域之间共享一个域间密钥,则称这两个域之间可以直接通信,否则,就要经过中间域互连,进行间接通信。Kerberos版本5协议中定义Kerberos域是层次化组织的,每个域只与它的父结点和子结点共享密钥。如果两个域之间没有直接互连,则允许根据域的层次结构关系在两个域之间构造一条经过多个域的鉴别路径。为了使得通信更加有效,两个域也可以通过一条绕过中间域的路径进行跨域鉴别。 Kerberos服务器KDC上维护着一个数据库,该数据库存放所有用户、应用服务器的注册信息。 KDC从功能上可分为鉴别服务器AS和许可证颁发服务器TGS。AS用于初始鉴别用户是否具有合法的口令,只有合法用户才能从AS获得

17、访问TGS的许可证tgt(ticket granting ticket)。,TGS可根据用户提供的tgt鉴别用户,并向合法用户提供所申请的某个应用服务的许可证。 用户只在第一次向AS服务器申请tgt时需要输入口令,此后,用户申请别的应用服务许可证时都只需要使用tgt作为凭证与TGS打交道,这样就避免了多次输入口令所带来的安全方面的隐患。用户首次注册时系统根据用户输入的口令可以生成密钥。应用服务器向KDC注册时也生成共享的密钥。用户与应用服务器之间进行通信时,二者之间必须共享一个临时会话密钥,可根据需要加密通信数据。该会话密钥仅在KDC鉴别用户时产生,并分发给通信双方。会话密钥仅在当前会话期间才

18、有效,过期需重新申请。,图中,KDC为Kerberos服务器,C为应用服务器的客户,V为基于Kerberos的应用服务器。客户和鉴别服务器之间共享密钥Kc,Kc由用户口令生成;鉴别服务器与许可证颁发服务器之间共享密钥Ktgs;许可证颁发服务器与应用服务器之间共享Kv。,Kerberos的许可证是由KDC产生的凭证。许可证在其生存时间内一直有效,用户可以多次使用。一旦过期,用户需重新申请新的许可证。 由于客户C向TGS发请求时,许可证可能被攻击者窃取并重新使用,因此必须发送一些附加的信息来确定数据是由KDC发给拥有许可证的一方。这些附加的信息就是鉴别符,它用会话密钥加密,主要包含一个时间戳,而时

19、间戳是用来确认报文的产生以及确认非重放报文。,在Kerberos环境下,用户的鉴别过程分三个阶段: 1)鉴别服务交换 作用:用户通过鉴别服务交换获得访问许可证颁发服务器TGS的许可证tgt。对应图中的和。 CAS: KRB_AS_REQ(Options,IDc,Realmc,IDtgs,Times,Nonce1) 用户如果要申请某一应用服务的许可证,首先登录到Kerberos服务器上,向AS发出一条Kerberos鉴别请求消息KRB_AS_REQ,请求一个TGS的许可证tgt。KRB_AS_REQ包括选项、用户标识符、域名、TGS标识符、时间(起始时间、有效期等)、现时值等内容。KRB_AS_

20、REQ请求以明文方式传给AS。 ASC: KRB_AS_REP(IDc,Realmc,Tickettgs,EKcKc,tgs,Times,Nonce1,Realmtgs,IDtgs),AS收到用户请求后,根据用户标识符IDc在密钥数据库中检索用户的密钥Kc和TGS的密钥Ktgs。同时,AS选择一个用于用户C和TGS之间通信加密的会话密钥Kc,tgs,并生成用户所请求的TGS的许可证Tickettgs。Tickettgs中主要包含标志(Flag)、用户信息(主体名、地址和所属域等),会话密钥Kc,tgs,许可证有效时间以及时间戳等信息,并用TGS的密钥Ktgs加密。由于Ktgs只由TGS和AS共

21、享,因此,任何人都无法读出或改变许可证内容。 Tickettgs=EKtgsFlags,Kc,tgs,Realmc,IDc,ADc,Times 用户收到来自AS的响应后,用密钥Kc解密收到的信息,得到会话密钥Kc,tgs、时间戳以及TGS的许可证Tickettgs。通过比较解密所得的时间戳来确定自己已被鉴别,并持有一个合法得许可证Tickettgs。用户在本地保存Tickettgs和会话密钥Kc,tgs,用来作为访问TGS的凭证。,2)许可证服务交换 作用:用户通过许可证服务交换获得访问应用服务器V的许可证。对应图中的和。 CTGS: KRB_TGS_REQ(Options,IDv,Times

22、,Nonce2,Tickettgs,EKc,tgsAuthenticatorc) 用户若想访问某个基于Kerberos的应用服务,客户首先检查本地是否有该项服务的许可证Ticketv,若没有,则向TGS发出消息KRB_TGS_REQ,请求该应用服务的许可证Ticketv。为此,用户需要向TGS提交许可证Tickettgs和一个新产生的鉴别符Authenticatorc。Authenticatorc包含一个时间戳,并用用户与TGS之间的会话密钥Kc,tgs加密。鉴别符包含的主要内容如下: Authenticatorc=(IDc,Realmc,TS1), TGSC: KRB_TGS_REP(Rea

23、lmc,IDc,Ticketv,EKc,tgsKc,v,Times,Nonce2,Realmv,IDv) 确认了用户的合法性后,TGS生成用户所要求的某个应用服务器V的许可证Ticketv,许可证中包含新产生的用于用户C与应用服务器V之间安全会话的会话密钥Kc,v、时间戳以及许可证的有效生存时间。该许可证Ticketc,v用应用服务器的密钥Kv加密。TGS发出响应消息KRB_TGS_REP,该消息主要包括两部分:一部分是用会话密钥Kc,tgs加密的信息,包括密钥Kc,v、时间戳等,另一部分则是应用服务的许可证Ticketv。Ticketv包含的主要内容如下: Ticketv=EKvFlags,

24、Kc,v,Realmc,IDc,ADc,Times 用户用自己持有的会话密钥Kc,tgs解密收到的信息,得到用户与应用服务器之间的会话密钥Kc,v。用户在本地缓冲区中缓存Kc,v和许可证Ticketv。,3)客户/服务器鉴别交换 用户通过客户/服务器鉴别交换完成客户C与应用服务器V之间的双向鉴别。对应图中的和。 CV: KRB_AP_REQ(Options,Ticketv, EKc,vAuthenticatorc) 当用户请求应用服务时,用户向应用服务器发KRB_AP_REQ请求,Authenticatorc主要包括下列内容: Authenticatorc=(IDc,Realmc,TS2,Su

25、bkey,Seq-number) 应用服务器V用自己持有的密钥Kv解密用户发来的许可证Ticketv,从中取出会话密钥Kc,v。并用Kc,v解密Authenticatorc,鉴别时间戳和用户的有效性。, VC: KRB_AP_REP(EKc,vTS2,Subkey,Seq-number) 若用户要求与应用服务器之间进行相互鉴别,则应用服务器将鉴别符Authenticatorc中的有关信息取出,用Kc,v加密后送回用户。用户解密应用服务器的应答后,得知服务器已正确得到时间戳,证明服务器也是合法的。 通过以上的鉴别过程,1)用户取得了应用服务器的许可证;2)用户和应用服务器双方都信任对方所声明的身

26、份;3)共享了一个会话密钥。 在许可证的有效时间内,用户可随时用自己持有的许可证申请该项应用服务,并用会话密钥加密它们之间的通信。,Return,5.5 X.509证书及鉴别框架,国际电信联盟(ITU)的X.509建议定义了一种提供鉴别服务的框架。 基于X.509证书的鉴别技术也依赖于共同信赖的第三方来实现鉴别。它采用非对称密码体制,实现上更加简单明了。 这里可信赖的第三方是称为CA(Certificate Authority)的证书权威机构(认证中心)。该机构负责鉴别用户的身份并向用户签发数字证书。数字证书遵循X.509建议所规定的格式,因此称为X.509证书。持有此证书的用户就可以凭此证书

27、访问那些信任CA的服务器。 X.509证书由两部分构成:信息部分(I)和数字签名部分(S)。,证书权威机构Y对证书持有者C的证书信息IC进行数字签名,签名是通过用Y的私有密钥KRY对IC的散列码加密来实现的。可以表示为S=EKRyH(IC)。Y对C签发的证书可以表示为: YC=YIC=IC|S=IC|EKRyH(IC) 。 使用散列函数的目的是为了保证信息的完整性,数字签名则表明该证书是经CA签发的而且无法被伪造。如果一个用户知道CA的公开密钥,那么这个用户可以验证由CA签名的证书是有效的。 当用户向某一服务器提出访问请求时,服务器要求用户提交数字证书。收到用户的证书后,服务器利用CA的公开密

28、钥对CA的签名进行鉴别。这样,用户便通过了身份鉴别。服务器从证书的信息部分取出用户的公开密钥,用于以后的数据加密和鉴别。,5.5.1 X.509证书 X.509证书是由可信的证书权威机构(CA)签发的一个关于实体及其公开密钥关联的数字声明。该证书具有权威性。X.509证书的核心是公开密钥、公开密钥持有者(主体)和CA的签名,证书完成了公开密钥与公开密钥持有者的权威性绑定。 X.500目录服务可以为X.509证书提供存放机制,提供一个易于访问的位置以便用户获得证书。 由CA产生的用户证书的特点是:任何拥有CA公开密钥的用户都可以对该CA签发的证书进行验证,从而获得一个可信的用户公开密钥。任何一方(除了证书权威机构CA)都不可能不被察觉地修改证书。,X.509证书的一般格式如图所示。,证书扩展包含一个或多个扩展字段的集合。扩展字段提供了

温馨提示

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

评论

0/150

提交评论