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

下载本文档

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

文档简介

计算机安全技术基础计算机安全技术基础1第五讲数字签名与鉴别数字签名报文摘要用户鉴别主机-主机鉴别第五讲数字签名与鉴别数字签名2强制的安全在2000年6月的最后一天,克林顿总统做了一件史无前例的事:他用一张智能卡,而不是钢笔将一项议案变为了法律。(事实上,在律师们争论古老的美国宪法是否可以灵活到允许数字签名的时候,书面文件还是被人工签署的。)克林顿是如何签署这项法令的无疑将吸引绝大部分人的注意,但这项法令本身也同样的重要:全球和国内商业法案中的电子签名会使数字签名在功能上完全等同于多种笔头签署工作。强制的安全在2000年6月的最后一天,克林顿总统做了一件3数字签名的概念手体签字满足以下五个原则:签字是可以被确认的。即当文件上有你的签字时,别人确信这个文件是经你发出的。签字是无法伪造的,即签字是签字者的凭证。签字是无法被重复使用的,即任何人无法用你在别处的签字挪到该文件。文件被签字后是无法被篡改的。签字具有不可否认性,即签字者无法否认自己签字文件上的签字行为。数字签名的概念手体签字满足以下五个原则:4数字签名的概念当我们要对计算机文件做同样的事时问题就变得十分复杂。首先在计算机上文件的拷贝十分的容易,同时剪切、粘贴也绝非难事。即使手体签字难以伪造,可以把手体签字以图形的方式扫入计算机上,然后在以剪切、粘贴的方式很方便的从一个文件移到另一个文件上。另外签字后,一个计算机文件是容易被修改而不留痕迹的。数字签名的概念当我们要对计算机文件做同样的事时问题就变得十分5数字签名的概念数字签名(DigitalSignature)是解决网络通信中特有的安全问题的有效方法。特别是针对通信双方发生争执时可能产生的如下安全问题:冒充否认伪造公证数字签名的概念数字签名(DigitalSignature)6数字签名的实现方法实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSADataSecurity公司的PKCS(PublicKeyCryptographyStandards)、DSA(DigitalSignatureAlgorithm)、x.509、PGP(PrettyGoodPrivacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法数字签名的实现方法实现数字签名有很多方法,目前数字签名采用较7采用公开密钥的数字签名假设A(公开密钥为EA,秘密密钥为DA)要发送一个电子文件P给B(公开密钥为EB,秘密密钥为DB)。A、B双方只需经过下面三个步骤即可A用其私钥加密文件P,这便是签字过程A将加密的文件送到BB用A的公钥解开A送来的文件其中密钥之间应满足DA(EA(P))=P和DB(EB(P))=P采用公开密钥的数字签名假设A(公开密钥为EA,秘密密钥为DA8采用公开密钥的数字签名签字是可以被确认的,因为B是用A的公钥解开加密文件的,这说明原文件只能被A的私钥加密而只有A才知道自己的私钥。签字是无法被伪造的,因为只有A知道自己的私钥。因此只有A能用自己的私钥加密一个文件。签字是无法重复使用的,签字在这里就是一个加密过程,自己无法重复使用。文件被签字以后是无法被篡改的,因为加密后的文件被改动后是无法被A的公钥解开的。签字具有无可否认性,因为除A以外无人能用A的私钥加密一个文件。采用公开密钥的数字签名签字是可以被确认的,因为B是用A的公钥9数字签名标准DSA(DigitalSignatureAlgorithm)被美国国家标准技术研究所(NIST)作为DSS。DSS最早发表于1991年,并根据公众对该体制安全性担心的反应在1993年进行了修改。1996年又进行了更进一步的小修改。数字签名标准DSA(DigitalSignatureAl10DSA算法算法中应用了下述参数:p:L位长的素数。L是64的倍数,范围是512到1024;q:p-1的160bits的素因子;g:g=h(p-1)/qmodp,h满足h<p-1,h(p-1)/qmodp>1;x:秘密密钥,正整数,x<q;y:y=gxmodp,(p,q,g,y)为公钥;k为随机数,0<k<q;H(x):单向Hash函数。DSA算法算法中应用了下述参数:11DSA算法签名过程如下:产生随机数k,k<q;计算r=(gkmodp)modqs=(k-1(H(m)+xr))modq签名结果是(m,r,s)。验证时计算

w=s-1modqu1=(H(m)w)modqu2=(rw)modqv=((gu1×yu2)modp)modq若v=r,则认为签名有效。DSA算法签名过程如下:12DSA算法示例选择p=124540019,q=17389;q是p-1的一个因子,p-1/q=7162.A选择一个随机数k=110217528;g=k7162modp=10083255;选择x=12496,y=g12496modp=119946265.秘密密钥为12496.A产生签名。取随机数k=9557,计算r=34.假设计算出的Hash值h(m)=5246,则s=13049.因此消息m的签名为(34;13049)DSA算法示例选择p=124540019,q=17389;q13数字签名的保密性数字签名的保密性很大程度上依赖于公开密钥。数字签名的加密解密过程和秘密密钥的加密解密过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开窃钥的人都可以验证数字签名的正确性,而秘密密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。数字签名的保密性数字签名的保密性很大程度上依赖于公开密钥。14单向散列算法安全有关的算法还包括一类单向散列算法,如MD2、MD4、MD5等这些算法的目的是用于从已有数据中生成与其他数据不同的少量标识数据,从而区分不同的数据,这样就能通过这些标识数据分辨不同数据。由于不同的数据使用上面的算法生成的标识数据只有极少的可能相同,这些算法一般被用于数字签名,用于保证网络中的文件传输没有发生错误单向散列算法安全有关的算法还包括一类单向散列算法,如MD2、15MD5算法MD5算法是对输入信息块按512位进行处理的,首先对输入信息进行填充,使信息的长度等于512位的倍数。128位的缓冲区先初始化为一个固定的值。每次从输入信息中取512位,每次进行4轮,每轮16步共64步的信息变换处理,这个512位的输入块和128位的缓冲区彻底混合,产生一个128位的输出值到缓冲区中,中间还使用了一个用正弦函数构成的表。每次输出结果为128位,然后把它作为输入处理下一个512位的信息块,直到所有的输入信息处理完毕后,得到一个128位的报文摘要。MD5算法MD5算法是对输入信息块按512位进行处理的,首先16报文摘要报文摘要是使用单向散列函数,以一段长度不定的信息为输入,输出一个固定长度的信息。在信息的发送方,通过单向散列函数得到报文摘要后,然后再使用秘密密钥对报文摘要进行数字签名。在接收方,使用发送方的公开密钥解密得到发送方计算出的报文摘要,再与自己根据报文计算出的报文摘要相比较,如果相等,则表示信息未被篡改。报文摘要报文摘要是使用单向散列函数,以一段长度不定的信息为输17数字签名中的问题与改进签字后的文件可能被接收方重复使用。如果签字后的文件是一张支票,接收方很容易多次用该电子支票兑换现金,为此发送方需要在文件中加上一些该支票的特有的凭证,如时间戳timestamp(但时间戳会有一个时间是否同步的问题)等,以防止上述情况发生数字签名应用很多的RSA算法是基于大数的因子分解难题,由于计算水平的提高,人们逐渐可以用计算机分解更大的数。数字签名中的问题与改进签字后的文件可能被接收方重复使用。如果18数字签名中的问题与改进公钥算法的效率是相当低的,不易用于长文件的加密,为此采用Hash函数,将原文件P通过一个单向的Hash函数作用,生成相当短的(仅几十或几百位)的输出H,即Hash(P)=H,这里由P可以很快生成H,但由H几乎不可能生成P,然后再将公钥算法作用在H上生成“签字”S,记为Ek1(H)=S,k1为A的公钥,A将(P,S)传给B,B收到(P,S)后,需要验证S是A的签字。若有H1=H2,即Dk2(S)=Hash(P),才能认为S就是A的签字如果在Hash签名使用一个密钥k,让只有知道此密钥k的人才能使用Hash,即用H(m,k)代替H(m),则可以增强Hash加密的安全性。数字签名中的问题与改进公钥算法的效率是相当低的,不易用于长文19数字签名中的问题与改进PHash函数HSk1(P,S)PSHash函数H1k2H2比较相等则是正确签名数字签名中的问题与改进PHash函数HSk1(P,S)PSH20鉴别鉴别(Authentication)是证明一个对象的身份的过程。它与身份识别(Identification)不同,也与决定把什么特权附加给该身份的授权不同(Authorization)不同。在非保密的计算机网络中,验证远程过程实体是合法的授权用户或者是一个恶意的入侵者就属于鉴别。鉴别是对通信对象进行验证,而授权是验证用户在系统中的权限。有两种形式的鉴别:一是在初始化登录的过程中,用户和机器之间的鉴别,另一个是在操作过程中机器与机器之间的鉴别。移动计算环境下的用户身份认证鉴别鉴别(Authentication)是证明一个对象的身份21用户鉴别口令一次性口令智能卡生物技术用户鉴别口令22口令作为一种个人身份的鉴别手段,口令可以看成是用户拥有的一种知识。这是一个优点,因为无需使用特殊硬件装备,同时也是一个缺点,因为口令是无形的,可能告诉别人或被别人猜测、窃听。在各种鉴别机制中,口令不是最强有力的,但由于它简单、廉价和方便,因而在很多时候它是唯一的鉴别手段。口令作为一种个人身份的鉴别手段,口令可以看成是用户拥有的一种23固定口令的不足网络数据流窃听认证信息截取/重放字典攻击穷举尝试窥探

社交工程垃圾搜索固定口令的不足网络数据流窃听24网络数据流窃听由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令网络数据流窃听由于认证信息要通过网络传递,并且很多认证系统的25认证信息截取/重放有的系统会将认证信息进行简单加密后进行传输,如果攻击者无法用第一种方式推算出密码,可以使用截取/重放方式认证信息截取/重放有的系统会将认证信息进行简单加密后进行传输26字典攻击由于多数用户习惯使用有意义的单词或数字作为密码,某些攻击者会使用字典中的单词来尝试用户的密码。所以大多数系统都建议用户在口令中加入特殊字符,以增加口令的安全性字典攻击由于多数用户习惯使用有意义的单词或数字作为密码,某些27穷举尝试穷举尝试(BruteForce)这是一种特殊的字典攻击,它使用字符串的全集作为字典。如果用户的密码较短,很容易被穷举出来,因而很多系统都建议用户使用长口令穷举尝试穷举尝试(BruteForce)这是一种特殊的字28窥探攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合法用户输入口令的过程,以得到口令。窥探攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合29社交工程攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令社交工程攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取30垃圾搜索攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象垃圾搜索攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的31一次性口令在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。例如:登录密码=MD5(用户名+密码+时间),系统接收到登录口令后做一个验算即可验证用户的合法性一次性口令在登录过程中加入不确定因素,使每次登录过程中传送的32不确定因子选择方式口令序列挑战/回答时间同步事件同步不确定因子选择方式口令序列33口令序列口令为一个单向的前后相关的序列,系统只用记录第N个口令。用户用第N-1个口令登录时,系统用单向算法算出第N个口令与自己保存的第N个口令匹配,以判断用户的合法性。由于N是有限的,用户登录N次后必须重新初始化口令序列口令序列口令为一个单向的前后相关的序列,系统只用记录第N个34挑战/应答用户要求登录时,系统产生一个随机数发送给用户。用户用某种单向算法将自己的秘密口令和随机数混合起来发送给系统,系统用同样的方法做验算即可验证用户身份挑战/应答用户要求登录时,系统产生一个随机数发送给用户。用户35Schnorr身份认证机制环境参数:设p,q素数,q|p-1,αq≡1(modp),α的模p的阶为q。用户U秘密选择一个数a,0aq-1,计算v≡α-α(modp),并将p,q,α,v公开。Schnorr身份认证机制过程如下:

(1)UV:γ,其中γ=αk(modp),k为U所选择的随机数,0kq-1;

(2)VU:r,r为V所选择的随机数,相当于挑战;

(3)U:计算y≡k+ar(modq),y相当于应答;

U?V:y

(4)V计算并验证:γ≡αy.vr(modp)?

Schnorr身份认证机制环境参数:设p,q素数,q|p-136时间同步以用户登录时间作为随机因素。这种方式对双方的时间准确度要求较高,一般采取以分钟为时间单位的折中办法。在SecureID产品中,对时间误差的容忍可达±1分钟时间同步以用户登录时间作为随机因素。这种方式对双方的时间准确37事件同步这种方法以挑战/回答方式为基础,将单向的前后相关序列作为系统的挑战信息,以节省用户每次输入挑战信息的麻烦。但当用户的挑战序列与服务器产生偏差后,需要重新同步事件同步这种方法以挑战/回答方式为基础,将单向的前后相关序列38一次性口令的生成方式TokenCard(硬件卡)用类似计算器的小卡片计算一次性口令。对于挑战/回答方式,该卡片配备有数字按键,便于输入挑战值;对于时间同步方式,该卡片每隔一段时间就会重新计算口令;有时还会将卡片作成钥匙链式的形状,某些卡片还带有PIN保护装置。SoftToken(软件)用软件代替硬件,某些软件还能够限定用户登录的地点。IC卡在IC卡上存储用户的秘密信息,这样用户在登录时就不用记忆自己的秘密口令了一次性口令的生成方式TokenCard(硬件卡)用类似计39智能卡智能卡(smartcard)是一种便携式设备,它有一个CPU/输入输出端口及只能通过卡上CPU进行访问的几KB的非易失性存储器。如果将其集成到用户的登录中断或工作站上,智能卡就可以执行验证。智能卡能自动地对主机的一次性口令查询作出响应。智能卡智能卡(smartcard)是一种便携式设备,它有一40智能卡一般来说,用户身份认证可通过三种基本方式或其组合方式来实现:

①用户所知道的某个秘密信息,例如用户知道自己的口令;

②用户持有的某个秘密信息(硬件),用户必须持有合法的随身携带的物理介质,例如智能卡中存储用户的个人化参数,访问系统资源时必须要有智能卡.

③用户所具有的某些生物学特征,如指纹、声音、DNA图案、视网膜扫描等等,但这种方案一般造价较高,适用于保密程度很高的场合。智能卡一般来说,用户身份认证可通过三种基本方式或其组合方式来41智能卡基于智能卡的用户身份认证机制结合了①和②,用户信息(IDx,PWx)存在智能卡中,AS中存入某个事先由用户选择的某个随机数。用户访问系统资源时,用户输入(IDx,PWx)。系统首先判断智能卡的合法性,然后由智能卡鉴别用户身份,若用户身份合法,再将智能卡中的随机数送给AS作进一步认证。这种方案基于智能卡的物理安全性,即不易伪造和不能直接读取其中数据。没有管理中心发放的智能卡,则不能访问系统资源,即使智能卡丢失,入侵者仍然需要猜测用户口令智能卡基于智能卡的用户身份认证机制结合了①和②,用户信息(I42生物技术鉴别用户的另外一种方法是试图对用户固有的特征进行测量,可以是指纹、声纹或签字。生物技术鉴别用户的另外一种方法是试图对用户固有的特征进行测量43主机-主机鉴别基于共享秘密密钥的鉴别基于密钥分发中心的鉴别Kerberos鉴别基于公开密钥的鉴别主机-主机鉴别基于共享秘密密钥的鉴别44基于共享秘密密钥的鉴别假定A和B之间已经共享了一个秘密密钥KAB

。一种可行的协议是查询-应答协议,左图所示。下图中RA和RB分别是A和B产生的随机数。右图是左图的可能的精简,但它是一个不安全的鉴别协议。ARBKAB(RB)RAKAB(RA)ABA,RARB,KAB(RA)KAB(RB)AB基于共享秘密密钥的鉴别假定A和B之间已经共享了一个秘密密钥K45不安全的鉴别协议这个协议可以用反射攻击来攻破。T在不知道KAB的情况下可以向B假冒A,其攻击步骤如图所示A,RTRB,KAB(RT)KAB(RB)TBA,RBRB2,KAB(RB)该协议之所以失败,至少有两个原因:在第二条和第四条消息中,T并没有证明自己是A,仅仅声称自己是A,B就把应答发给T,使用了只有A和B才知道KAB的。RA、RT是连接发起者产生的随机数,RB是应答者产生的随机数。如果在协议中规定RA、RT和RB使用不同的集合,例如RA、RT使用奇数,RB使用偶数,则在第三步中B就不会接受RB,因为它期待一个奇数。不安全的鉴别协议这个协议可以用反射攻击来攻破。T在不知道KA46基于密钥分发中心的鉴别在所有的通信实体之间预先分配一个密钥是不现实的。密钥分发中心(KeyDistributionCenter,KDC)可以在通信主体之间充当一个中间人的角色。每一通信主体与KDC共享一个密钥,因而在每一台主体和KDC之间是互相信任的。鉴别协议是在两个主体和KDC之间相互通信,达到两个主体之间互相确认对方身份的目的。在协议的执行中,攻击者可能会拦截、修改或重发信息来破坏协议基于密钥分发中心的鉴别在所有的通信实体之间预先分配一个密钥是47使用KDC的一个鉴别协议但这个协议也存在缺陷:假设攻击者T帮A完成了某项工作,A要通过银行B付一笔钱给T,A使用上面的鉴别协议,随后使用KS来向B发送支付报文。T记录下上面的第二条消息和随后的支付报文,并将它重发给B,在B看来,未发现异常,于是又从A的帐户支付一笔钱给T。这种类型的攻击叫做重发攻击。解决的办法是在每一条消息上加上时间戳。这种方法的难度在于在网络系统中使所有的主机的时间保持一致。第二种解决方法是每条消息中赋予一个一次性的、唯一的序列号,随消息发送。主机必须记住所有收到过的序列号,而且序列号的范围应足够大。KB(A,KS)BKDCAA,KA(B,KS)借助于KDC的中介,A和B之间可以利用密钥KS进行会话。这里的鉴别有两个:KDC对A的鉴别;B对KDC的鉴别。使用KDC的一个鉴别协议但这个协议也存在缺陷:假设攻击者T帮48Kerberos鉴别这是一个在很多系统(例如Win2K)中实现并被使用的鉴别协议。该协议中通信的双方A和B相当于工作站和服务器,A向B请求执行一项功能,它们需要相互鉴别。在网络系统中设置一个鉴别服务器AS,每个用户在客户工作站上登录时验证用户身份,其作用相当于KDC。还设置一个授予许可证服务器(Ticket-GrantingService),它向客户A发放服务凭证,A向B出示服务凭证以证明其身份Kerberos鉴别这是一个在很多系统(例如Win2K)中实49Kerberos协议在A和B之间经过Kerberos协议相互鉴别后,B再检查A的要求是否被允许,即B有它自己的授权。从B的角度看,鉴别是确定身份的过程,即需要证明是A而不是攻击者T向自己发送了请求,而授权是确定用户在服务器中的权限的过程。AKA(Ks,KTGS(A,Ks))ASAKTGS(A,Ks),B,Ks(t1)KS(B,KAB),KB(A,KAB)KB(A,KAB),KAB(t2)KAB(t2+1)SGTBKerberos协议在A和B之间经过Kerberos协议相互50Kerberos认证机制的安全性在Kerberos认证机制中,有一个安全稳患,即攻击者可以采用离线方式攻击用户口令.如果用户口令被破获,系统将是不安全的.G.Gaskell和M.Looi将智能卡引入Kerberos认证机制中,也就是说结合了基本用户身份认证方式中的①和②,只修改了用户和AS之间的交互协议,提供了更高的安全性能Kerberos认证机制的安全性在Kerberos认证机制中51基于公开密钥的鉴别在鉴别的过程中使用公开密钥加密算法,在鉴别完成后,也需要生成一个用于会话的秘密密钥,并使用对称加密算法进行会话,以获得较快的加密/解密速度。EB(A,RA)EA(RA,RB,KS)KS(RB)AB基于公开密钥的鉴别在鉴别的过程中使用公开密钥加密算法,在鉴别52移动计算环境下用户身份认证前面所述的认证机制主要是针对固定计算环境(FCE)下的用户身份的认证。在FCE之下,用户必须首先在AS上注册为合法用户才能访问系统资源.在移动计算环境(MCE)下,用户(如便携机)位置随时是可以变化的,而且其实际位置可能与其所注册的服务器十分遥远,信息的传输多采用无线方式,因此比FEC之下更易受到攻击.从安全性和服务的及时性方面来考虑,用户应该从离之最近的服务器得到所需要的服务。但是为了对用户进行认证,服务器需要保存全部用户的个人化参数,这当然是不切实际的移动计算环境下用户身份认证前面所述的认证机制主要是针对固定计53移动计算环境下用户身份认证A.Takubo等设计了一种方案,用户ID和其注册的服务器ID同属于某个变换群。如果知道了用户ID,则可通过某种变换得到其注册的服务器ID。同样由服务器ID,可以求得所有的用户ID.给出了一种类似Kerberos的MCE之下的认证模型.图中虚线表示无线连接移动计算环境下用户身份认证A.Takubo等设计了一种方案54移动计算环境下用户身份认证在考虑移动计算环境下的用户身份认证时,一个不容忽视的因素是通信双方的计算能力往往不是对等的,也就是说,用户(移动方)往往具有较低的计算能力,网络方通常具有较高的计算能力,因此设计具体的认证协议时应充分考虑降低用户端的计算复杂性另外还有一个问题,为充分保护用户的私有性,用户的位置信息不应该泄露,可以在协议中隐藏用户的真实ID而用伪ID来代替。移动计算环境下用户身份认证在考虑移动计算环境下的用户身份认证55计算机安全技术基础计算机安全技术基础56第五讲数字签名与鉴别数字签名报文摘要用户鉴别主机-主机鉴别第五讲数字签名与鉴别数字签名57强制的安全在2000年6月的最后一天,克林顿总统做了一件史无前例的事:他用一张智能卡,而不是钢笔将一项议案变为了法律。(事实上,在律师们争论古老的美国宪法是否可以灵活到允许数字签名的时候,书面文件还是被人工签署的。)克林顿是如何签署这项法令的无疑将吸引绝大部分人的注意,但这项法令本身也同样的重要:全球和国内商业法案中的电子签名会使数字签名在功能上完全等同于多种笔头签署工作。强制的安全在2000年6月的最后一天,克林顿总统做了一件58数字签名的概念手体签字满足以下五个原则:签字是可以被确认的。即当文件上有你的签字时,别人确信这个文件是经你发出的。签字是无法伪造的,即签字是签字者的凭证。签字是无法被重复使用的,即任何人无法用你在别处的签字挪到该文件。文件被签字后是无法被篡改的。签字具有不可否认性,即签字者无法否认自己签字文件上的签字行为。数字签名的概念手体签字满足以下五个原则:59数字签名的概念当我们要对计算机文件做同样的事时问题就变得十分复杂。首先在计算机上文件的拷贝十分的容易,同时剪切、粘贴也绝非难事。即使手体签字难以伪造,可以把手体签字以图形的方式扫入计算机上,然后在以剪切、粘贴的方式很方便的从一个文件移到另一个文件上。另外签字后,一个计算机文件是容易被修改而不留痕迹的。数字签名的概念当我们要对计算机文件做同样的事时问题就变得十分60数字签名的概念数字签名(DigitalSignature)是解决网络通信中特有的安全问题的有效方法。特别是针对通信双方发生争执时可能产生的如下安全问题:冒充否认伪造公证数字签名的概念数字签名(DigitalSignature)61数字签名的实现方法实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSADataSecurity公司的PKCS(PublicKeyCryptographyStandards)、DSA(DigitalSignatureAlgorithm)、x.509、PGP(PrettyGoodPrivacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法数字签名的实现方法实现数字签名有很多方法,目前数字签名采用较62采用公开密钥的数字签名假设A(公开密钥为EA,秘密密钥为DA)要发送一个电子文件P给B(公开密钥为EB,秘密密钥为DB)。A、B双方只需经过下面三个步骤即可A用其私钥加密文件P,这便是签字过程A将加密的文件送到BB用A的公钥解开A送来的文件其中密钥之间应满足DA(EA(P))=P和DB(EB(P))=P采用公开密钥的数字签名假设A(公开密钥为EA,秘密密钥为DA63采用公开密钥的数字签名签字是可以被确认的,因为B是用A的公钥解开加密文件的,这说明原文件只能被A的私钥加密而只有A才知道自己的私钥。签字是无法被伪造的,因为只有A知道自己的私钥。因此只有A能用自己的私钥加密一个文件。签字是无法重复使用的,签字在这里就是一个加密过程,自己无法重复使用。文件被签字以后是无法被篡改的,因为加密后的文件被改动后是无法被A的公钥解开的。签字具有无可否认性,因为除A以外无人能用A的私钥加密一个文件。采用公开密钥的数字签名签字是可以被确认的,因为B是用A的公钥64数字签名标准DSA(DigitalSignatureAlgorithm)被美国国家标准技术研究所(NIST)作为DSS。DSS最早发表于1991年,并根据公众对该体制安全性担心的反应在1993年进行了修改。1996年又进行了更进一步的小修改。数字签名标准DSA(DigitalSignatureAl65DSA算法算法中应用了下述参数:p:L位长的素数。L是64的倍数,范围是512到1024;q:p-1的160bits的素因子;g:g=h(p-1)/qmodp,h满足h<p-1,h(p-1)/qmodp>1;x:秘密密钥,正整数,x<q;y:y=gxmodp,(p,q,g,y)为公钥;k为随机数,0<k<q;H(x):单向Hash函数。DSA算法算法中应用了下述参数:66DSA算法签名过程如下:产生随机数k,k<q;计算r=(gkmodp)modqs=(k-1(H(m)+xr))modq签名结果是(m,r,s)。验证时计算

w=s-1modqu1=(H(m)w)modqu2=(rw)modqv=((gu1×yu2)modp)modq若v=r,则认为签名有效。DSA算法签名过程如下:67DSA算法示例选择p=124540019,q=17389;q是p-1的一个因子,p-1/q=7162.A选择一个随机数k=110217528;g=k7162modp=10083255;选择x=12496,y=g12496modp=119946265.秘密密钥为12496.A产生签名。取随机数k=9557,计算r=34.假设计算出的Hash值h(m)=5246,则s=13049.因此消息m的签名为(34;13049)DSA算法示例选择p=124540019,q=17389;q68数字签名的保密性数字签名的保密性很大程度上依赖于公开密钥。数字签名的加密解密过程和秘密密钥的加密解密过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开窃钥的人都可以验证数字签名的正确性,而秘密密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。数字签名的保密性数字签名的保密性很大程度上依赖于公开密钥。69单向散列算法安全有关的算法还包括一类单向散列算法,如MD2、MD4、MD5等这些算法的目的是用于从已有数据中生成与其他数据不同的少量标识数据,从而区分不同的数据,这样就能通过这些标识数据分辨不同数据。由于不同的数据使用上面的算法生成的标识数据只有极少的可能相同,这些算法一般被用于数字签名,用于保证网络中的文件传输没有发生错误单向散列算法安全有关的算法还包括一类单向散列算法,如MD2、70MD5算法MD5算法是对输入信息块按512位进行处理的,首先对输入信息进行填充,使信息的长度等于512位的倍数。128位的缓冲区先初始化为一个固定的值。每次从输入信息中取512位,每次进行4轮,每轮16步共64步的信息变换处理,这个512位的输入块和128位的缓冲区彻底混合,产生一个128位的输出值到缓冲区中,中间还使用了一个用正弦函数构成的表。每次输出结果为128位,然后把它作为输入处理下一个512位的信息块,直到所有的输入信息处理完毕后,得到一个128位的报文摘要。MD5算法MD5算法是对输入信息块按512位进行处理的,首先71报文摘要报文摘要是使用单向散列函数,以一段长度不定的信息为输入,输出一个固定长度的信息。在信息的发送方,通过单向散列函数得到报文摘要后,然后再使用秘密密钥对报文摘要进行数字签名。在接收方,使用发送方的公开密钥解密得到发送方计算出的报文摘要,再与自己根据报文计算出的报文摘要相比较,如果相等,则表示信息未被篡改。报文摘要报文摘要是使用单向散列函数,以一段长度不定的信息为输72数字签名中的问题与改进签字后的文件可能被接收方重复使用。如果签字后的文件是一张支票,接收方很容易多次用该电子支票兑换现金,为此发送方需要在文件中加上一些该支票的特有的凭证,如时间戳timestamp(但时间戳会有一个时间是否同步的问题)等,以防止上述情况发生数字签名应用很多的RSA算法是基于大数的因子分解难题,由于计算水平的提高,人们逐渐可以用计算机分解更大的数。数字签名中的问题与改进签字后的文件可能被接收方重复使用。如果73数字签名中的问题与改进公钥算法的效率是相当低的,不易用于长文件的加密,为此采用Hash函数,将原文件P通过一个单向的Hash函数作用,生成相当短的(仅几十或几百位)的输出H,即Hash(P)=H,这里由P可以很快生成H,但由H几乎不可能生成P,然后再将公钥算法作用在H上生成“签字”S,记为Ek1(H)=S,k1为A的公钥,A将(P,S)传给B,B收到(P,S)后,需要验证S是A的签字。若有H1=H2,即Dk2(S)=Hash(P),才能认为S就是A的签字如果在Hash签名使用一个密钥k,让只有知道此密钥k的人才能使用Hash,即用H(m,k)代替H(m),则可以增强Hash加密的安全性。数字签名中的问题与改进公钥算法的效率是相当低的,不易用于长文74数字签名中的问题与改进PHash函数HSk1(P,S)PSHash函数H1k2H2比较相等则是正确签名数字签名中的问题与改进PHash函数HSk1(P,S)PSH75鉴别鉴别(Authentication)是证明一个对象的身份的过程。它与身份识别(Identification)不同,也与决定把什么特权附加给该身份的授权不同(Authorization)不同。在非保密的计算机网络中,验证远程过程实体是合法的授权用户或者是一个恶意的入侵者就属于鉴别。鉴别是对通信对象进行验证,而授权是验证用户在系统中的权限。有两种形式的鉴别:一是在初始化登录的过程中,用户和机器之间的鉴别,另一个是在操作过程中机器与机器之间的鉴别。移动计算环境下的用户身份认证鉴别鉴别(Authentication)是证明一个对象的身份76用户鉴别口令一次性口令智能卡生物技术用户鉴别口令77口令作为一种个人身份的鉴别手段,口令可以看成是用户拥有的一种知识。这是一个优点,因为无需使用特殊硬件装备,同时也是一个缺点,因为口令是无形的,可能告诉别人或被别人猜测、窃听。在各种鉴别机制中,口令不是最强有力的,但由于它简单、廉价和方便,因而在很多时候它是唯一的鉴别手段。口令作为一种个人身份的鉴别手段,口令可以看成是用户拥有的一种78固定口令的不足网络数据流窃听认证信息截取/重放字典攻击穷举尝试窥探

社交工程垃圾搜索固定口令的不足网络数据流窃听79网络数据流窃听由于认证信息要通过网络传递,并且很多认证系统的口令是未经加密的明文,攻击者通过窃听网络数据,就很容易分辨出某种特定系统的认证数据,并提取出用户名和口令网络数据流窃听由于认证信息要通过网络传递,并且很多认证系统的80认证信息截取/重放有的系统会将认证信息进行简单加密后进行传输,如果攻击者无法用第一种方式推算出密码,可以使用截取/重放方式认证信息截取/重放有的系统会将认证信息进行简单加密后进行传输81字典攻击由于多数用户习惯使用有意义的单词或数字作为密码,某些攻击者会使用字典中的单词来尝试用户的密码。所以大多数系统都建议用户在口令中加入特殊字符,以增加口令的安全性字典攻击由于多数用户习惯使用有意义的单词或数字作为密码,某些82穷举尝试穷举尝试(BruteForce)这是一种特殊的字典攻击,它使用字符串的全集作为字典。如果用户的密码较短,很容易被穷举出来,因而很多系统都建议用户使用长口令穷举尝试穷举尝试(BruteForce)这是一种特殊的字83窥探攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合法用户输入口令的过程,以得到口令。窥探攻击者利用与被攻击系统接近的机会,安装监视器或亲自窥探合84社交工程攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令社交工程攻击者冒充合法用户发送邮件或打电话给管理人员,以骗取85垃圾搜索攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象垃圾搜索攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的86一次性口令在登录过程中加入不确定因素,使每次登录过程中传送的信息都不相同,以提高登录过程安全性。例如:登录密码=MD5(用户名+密码+时间),系统接收到登录口令后做一个验算即可验证用户的合法性一次性口令在登录过程中加入不确定因素,使每次登录过程中传送的87不确定因子选择方式口令序列挑战/回答时间同步事件同步不确定因子选择方式口令序列88口令序列口令为一个单向的前后相关的序列,系统只用记录第N个口令。用户用第N-1个口令登录时,系统用单向算法算出第N个口令与自己保存的第N个口令匹配,以判断用户的合法性。由于N是有限的,用户登录N次后必须重新初始化口令序列口令序列口令为一个单向的前后相关的序列,系统只用记录第N个89挑战/应答用户要求登录时,系统产生一个随机数发送给用户。用户用某种单向算法将自己的秘密口令和随机数混合起来发送给系统,系统用同样的方法做验算即可验证用户身份挑战/应答用户要求登录时,系统产生一个随机数发送给用户。用户90Schnorr身份认证机制环境参数:设p,q素数,q|p-1,αq≡1(modp),α的模p的阶为q。用户U秘密选择一个数a,0aq-1,计算v≡α-α(modp),并将p,q,α,v公开。Schnorr身份认证机制过程如下:

(1)UV:γ,其中γ=αk(modp),k为U所选择的随机数,0kq-1;

(2)VU:r,r为V所选择的随机数,相当于挑战;

(3)U:计算y≡k+ar(modq),y相当于应答;

U?V:y

(4)V计算并验证:γ≡αy.vr(modp)?

Schnorr身份认证机制环境参数:设p,q素数,q|p-191时间同步以用户登录时间作为随机因素。这种方式对双方的时间准确度要求较高,一般采取以分钟为时间单位的折中办法。在SecureID产品中,对时间误差的容忍可达±1分钟时间同步以用户登录时间作为随机因素。这种方式对双方的时间准确92事件同步这种方法以挑战/回答方式为基础,将单向的前后相关序列作为系统的挑战信息,以节省用户每次输入挑战信息的麻烦。但当用户的挑战序列与服务器产生偏差后,需要重新同步事件同步这种方法以挑战/回答方式为基础,将单向的前后相关序列93一次性口令的生成方式TokenCard(硬件卡)用类似计算器的小卡片计算一次性口令。对于挑战/回答方式,该卡片配备有数字按键,便于输入挑战值;对于时间同步方式,该卡片每隔一段时间就会重新计算口令;有时还会将卡片作成钥匙链式的形状,某些卡片还带有PIN保护装置。SoftToken(软件)用软件代替硬件,某些软件还能够限定用户登录的地点。IC卡在IC卡上存储用户的秘密信息,这样用户在登录时就不用记忆自己的秘密口令了一次性口令的生成方式TokenCard(硬件卡)用类似计94智能卡智能卡(smartcard)是一种便携式设备,它有一个CPU/输入输出端口及只能通过卡上CPU进行访问的几KB的非易失性存储器。如果将其集成到用户的登录中断或工作站上,智能卡就可以执行验证。智能卡能自动地对主机的一次性口令查询作出响应。智能卡智能卡(smartcard)是一种便携式设备,它有一95智能卡一般来说,用户身份认证可通过三种基本方式或其组合方式来实现:

①用户所知道的某个秘密信息,例如用户知道自己的口令;

②用户持有的某个秘密信息(硬件),用户必须持有合法的随身携带的物理介质,例如智能卡中存储用户的个人化参数,访问系统资源时必须要有智能卡.

③用户所具有的某些生物学特征,如指纹、声音、DNA图案、视网膜扫描等等,但这种方案一般造价较高,适用于保密程度很高的场合。智能卡一般来说,用户身份认证可通过三种基本方式或其组合方式来96智能卡基于智能卡的用户身份认证机制结合了①和②,用户信息(IDx,PWx)存在智能卡中,AS中存入某个事先由用户选择的某个随机数。用户访问系统资源时,用户输入(IDx,PWx)。系统首先判断智能卡的合法性,然后由智能卡鉴别用户身份,若用户身份合法,再将智能卡中的随机数送给AS作进一步认证。这种方案基于智能卡的物理安全性,即不易伪造和不能直接读取其中数据。没有管理中心发放的智能卡,则不能访问系统资源,即使智能卡丢失,入侵者仍然需要猜测用户口令智能卡基于智能卡的用户身份认证机制结合了①和②,用户信息(I97生物技术鉴别用户的另外一种方法是试图对用户固有的特征进行测量,可以是指纹、声纹或签字。生物技术鉴别用户的另外一种方法是试图对用户固有的特征进行测量98主机-主机鉴别基于共享秘密密钥的鉴别基于密钥分发中心的鉴别Kerberos鉴别基于公开密钥的鉴别主机-主机鉴别基于共享秘密密钥的鉴别99基于共享秘密密钥的鉴别假定A和B之间已经共享了一个秘密密钥KAB

。一种可行的协议是查询-应答协议,左图所示。下图中RA和RB分别是A和B产生的随机数。右图是左图的可能的精简,但它是一个不安全的鉴别协议。ARBKAB(RB)RAKAB(RA)ABA,RARB,KAB(RA)KAB(RB)AB基于共享秘密密钥的鉴别假定A和B之间已经共享了一个秘密密钥K100不安全的鉴别协议这个协议可以用反射攻击来攻破。T在不知道KAB的情况下可以向B假冒A,其攻击步骤如图所示A,RTRB,KAB(RT)KAB(RB)TBA,RBRB2,KAB(RB)该协议之所以失败,至少有两个原因:在第二条和第四条消息中,T并没有证明自己是A,仅仅声称自己是A,B就把应答发给T,使用了只有A和B才知道KAB的。RA、RT是连接发起者产生的随机数,RB是应答者产生的随机数。如果在协议中规定RA、RT和RB使用不同的集合,例如RA、RT使用奇数,RB使用偶数,则在第三步中B就不会接受RB,因为它期待一个奇数。不安全的鉴别协议这个协议可以用反射攻击来攻破。T在不知道KA101基于密钥分发中心的鉴别在所有的通信实体之间预先分配一个密钥是不现实的。密钥分发中心(KeyDistributionCenter,KDC)可以在通信主体之间充当一个中间人的角色。每一通信主体与KDC共享一个密钥,因而在每一台主体和KDC之间是互相信任的。鉴别协议是在两个主体和KDC之间相互通信,达到两个主体之间互相确认对方身份的目的。在协议的执行中,攻击者可能会拦截、修改或重发信息来破坏协议基于密钥分发中心的

温馨提示

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

评论

0/150

提交评论