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

下载本文档

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

文档简介

第5章数字签名与认证技术

哈希函数数字签名消息鉴别身份认证身份认证实例-Kerberos数据保护工具目录

哈希函数概念

哈希函数,也称为单向散列函数、杂凑函数或消息摘要算法。它通过把一个单向数学函数应用于数据,将任意长度的一块数据转换为一个定长的、不可逆转的数据。哈希函数H能用于任意大小的分组,产生定长的输出;对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;单向性;弱抗冲突性;即强抗冲突性。哈希函数必须具有的特性单向性:给定M和H,求h=H(M)容易,但反过来给定h,寻找一个M’使H(M’)=h在计算上是不可行的;抗弱碰撞:给定M,要寻找另一信息M′,满足H(M′)=H(M)在计算上不可行;抗强碰撞:要寻找不同的信息M和M′,满足H(M′)=H(M)在计算上不可行。 (概率论:生日攻击)生日悖论

生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?

概率结果与人的直觉是相违背的.实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。【分析】:生日的取值范围:[1-365]不同输入的个数:23IV:初始值,CV:链接值,Yi:第i个输入数据块,f:压缩算法,n:散列码长度,b:输入块的长度。哈希函数的一般结构图在MD5算法中的处理步骤包括以下过程:首先,需要对消息进行填充。其次,将MD缓冲初始化。当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。输出散列值。所有L个512比特的分组处理完成后,第L阶段输出的结果便是消息M的信息摘要。MD5算法结构图

MD5的单步操作MD5的安全性2004年,山东大学王小云教授证明了从理论上可以破解MD5-即找到MD5的碰撞,两个不同的文件可以产生相同的摘要。2004年8月美国加州召开的国际密码学会议,王小云做了破译MD5等算法的报告,产生了很大的影响。MD5设计者说到:“这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺,虽然我不希望看到MD5这样倒下,但人必须尊重真理”哈希函数数字签名消息鉴别身份认证身份认证实例-Kerberos数据保护工具数字签名的引入如何应对以下的攻击方式发送方不承认自己发送过某一报文接收方自己伪造一份报文,并声称它来自发送方某个用户冒充另一个用户接收或发送报文接收方对收到的消息进行修改数字签名可以解决以上争端数字签名概念

数字签名就是利用一套规则对数据进行计算的结果,用此结果能确认签名者的身份和数据的完整性(美国DSS对数字签名的解释)数字签名应满足三个基本条件签名者不能否认自己的签名;接收者能够验证签名,而其他任何人都不能伪造签名;当签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执。数字签名根据签名方式可以分为直接数字签名(directdigitalsignature)仲裁数字签名(arbitrateddigitalsignature)。

(1)采用公开密钥的数字签名MMMEDA发方B收方KRAKUADKRA(M)使用发方的私钥对消息M进行数字签名(此时并没有对消息进行加密,因为任何人都可以获得公钥对消息M进行查看)直接数字签名

具有保密性的公钥数字签名(2)具有保密功能的公钥数字签名MMMEA发方B收方KRAKUAEKUB[DKRA(M)]EDDKRBKUB签名加密解密验证签名直接数字签名比较KRA(3)采用消息摘要的数字签名MMA发方B收方KUAEKRA[H(M)]使用消息摘要的数字签名(不需要对整个消息进行签名,速度更快)HE||HD直接数字签名直接数字签名方案:仅涉及通信双方。签名方案的有效性依赖于发送方的私密密钥的安全性;发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,且他人伪造了他的签名。直接数字签名的问题需要仲裁的数字签名 引入仲裁者来解决直接签名方案的问题。通常的做法是:所有从发送方A到接收方B的签名消息首先送到仲裁者Y,Y将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给B。思考:A还能否认他的签名吗?仲裁者在这一类签名模式中扮演敏感和关键的角色。所有的通信方必须充分信任仲裁机构。需要仲裁的数字签名仲裁者是除通信双方之外,值得信任的公正的第三方;“公正”意味着仲裁者对参与通信的任何一方没有偏向。

“值得信任”表示所有人都认为仲裁者所说的都是真实的,所做的都是正确的。举例:律师、银行、公证人(现实生活)在计算机网络中,由可信机构的某台计算机充当。(1)对称加密,仲裁能看到消息

YABM‖EKAY[IDA‖H(M)]EKYB[IDA‖M‖EKAY[IDA‖H(M)]‖T]IDA:发送方A的标识符签名:EKAY[IDA‖H(M)]

KAY:A和Y共享的对称密钥需要仲裁的数字签名(1)对称加密,仲裁能看到消息解决纠纷:B:向Y发送EKYB[IDA||M||EKAY[IDA||H(M)]]Y:用KYB恢复IDA,M,和签名EKAY[IDA||H(M)],然后用KAY解密签名并验证哈希值,从而验证A的签名。需要仲裁的数字签名(2)对称加密,仲裁不能看到消息

BIDA‖EKAB[M]‖EKAY[IDA‖H(EKAB[M])]EKYB[IDA‖EKAB[M]‖EKAY[IDA‖H(EKAB[M])]‖T]AYAB之间共享的密钥KAB对消息进行加密,仲裁Y看不到消息的明文。双方仍然要高度信任Y。

签名:EKAY[IDA‖H(EKAB[M])]

需要仲裁的数字签名(3)公开密钥加密,仲裁不能看到消息

BIDA‖EKRA[IDA‖EKUB(EKRA[M])]EKRY[IDA‖EKUB[EKRA[M]]‖T]AY仲裁Y通过EKRA[IDA‖EKUB(EKRA[M])]进行解密,可以确信消息一定来自于A(因为A才有KRA)签名:EKRA[IDA‖EKUB(EKRA[M])]

需要仲裁的数字签名需要仲裁的数字签名(3)公开密钥加密,仲裁不能看到消息本签名方案比上述两个方案具有以下优点:1、在通信之前各方之间无须共享任何信息,从而避免了结盟欺骗的发生;2、即使KRA暴露,只要KRY未暴露,不会有日期错误标定的消息被发送;3、从A发送给B的消息的内容对Y和任何其他人是保密的。数字签名方案普通数字签名体制–RSA–EIGamal–DSS/DSA盲签名体制盲签名体制盲签名是根据电子商务具体的应用需要而产生的一种签名应用。当需要某人对一个文件签名,而又不让他知道文件的内容,这时就需要盲签名。盲签名与普通签名相比有两个显著的特点:签名者不知道所签署的消息内容;签名被接收者泄漏后,签名者无法追踪签名;也即,如果把签名的消息报文给签名者本人看,他只能确信是自己的签名,而无法知道什么时候、对什么样的盲消息进行了签名。应用:电子选举(投票)、电子货币(存取款、转帐)盲签名体制接收者B首先将待签的明文消息M进行盲变换,把变换后的盲消息发送给签名者A;经过A签名后,消息发送给接收者B;接收者B对签名做去盲变换,得出的便是签名者A对原数据的盲签名。盲签名原理图RSA盲签名算法 算法描述:(1)接收者B对待签消息M进行盲化处理:随机选择盲化参数k,1<k<M,并计算:

T=MKemodn(2)B将盲化消息T发送给A(由于k未知,A无法看到明文消息M)(3)A对盲消息T签名:

Td=(MKe)dmodn=MdKmodn(4)A把对T的签名发送给接收者B;(5)B通过计算得到A对M的签名:

S=Td/Kmodn=Mdmodn哈希函数数字签名消息鉴别身份认证身份认证实例-Kerberos数据保护工具概念

认证(Authentication),又称鉴别,是对用户身份或报文消息来源及内容的验证。它是防止主动攻击的重要技术,是保证信息完整性、有效性的技术,即要搞清楚与之通信的对方身份是否真实,又要证实信息在传输过程中是否被篡改、伪装、窜扰、否认。认证的主要分为两个方面:身份/实体认证,即验证信息发送者是真的,而不是冒充的,包括信源、信宿等的认证和识别;消息/报文认证,验证信息的完整性,即验证数据在传输或存储过程中未被窜改、重放或延迟等。认证系统的模型认证编码器认证译码器信源A密钥源窜扰者安全信道信宿B纯认证系统的模型公开信道认证函数 认证编码器和认证译码器可抽象为认证函数。认证函数产生一个认证标识(authenticationidentification)给出合理的认证协议(authenticationprotocol)接收者完成消息的认证(authentication)一个安全的认证系统,需满足 (1)接收者能检验和证实消息的合法性、真实性和完整性 (2)消息的发送者和接收者不能抵赖 (3)除了合法的消息发送者,其它人不能伪造合法的消息认证函数分类认证的函数分为三类:消息加密函数(Messageencryption)用完整信息的密文作为对信息的认证。消息认证码MAC(MessageAuthenticationCode)是对信源消息的一个编码函数。散列函数(HashFunction)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。MEKEK(M)DMK提供保密提供认证(仅来自Bob,传输中没有被更改)不提供签名(Bob可以否认发送过消息M)BobAlice对称加密:保密性与认证认证函数1:加密函数认证函数1:加密函数公钥加密:认证与签名MDKRBEKRB(M)EMKB提供认证(仅Bob有KRB可以进行加密 传输中没有被更改 任何一方均可以使用KUB验证签名)提供签名(Bob不可否认)BobAlice公钥加密:保密、认证与签名MDKUAEKUA(DkRb(M))DKRA提供认证提供签名提供保密性EKRBDkRB(M)DkRB(M)EKUBMBobAlice认证函数1:加密函数认证函数2:消息认证码消息认证码:使用一个密钥生成一个固定大小的短数据块,并将该数据块加载到消息后面,称MAC(或密码校验和) MAC=Ck(M)MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少MAC的计算基于DES的消息认证码KTime=1DESO1(64bits)Time=2DESKTime=NDESKMAC(16to64bits)...(16<=m<=64)O2(64bits)ON(64bits)D1(64bits)D2(64bits)DN(64bits)计算MAC值的算法O1=EK(D1)O2=EK(D2⊕O1)O3=EK(D3⊕O3)ON=EK(DN⊕ON-1)MAC取ON的后m比特

注意

MAC需要对全部数据进行加密,因而计算MAC所需的时间较长,一般不会低于一次数据加密所需的时间(DES)。 为此,采用更快速的哈希函数实现消息的认证。认证函数3:hash函数哈希函数数字签名消息鉴别身份认证身份认证实例-Kerberos数据保护工具身份认证身份认证就是确认实体是它所声明的。身份认证是最重要的安全服务之一。认证服务提供了关于某个实体身份的保证。(所有其它的安全服务都依赖于该服务)身份认证可以对抗假冒攻击的危险。身份认证的例子身份认证目的:某一实体确信与之打交道的实体正是所需要的实体。只是简单地鉴别实体本身的身份,不会和实体想要进行何种活动相联系。在安全体系中的作用: 作为访问控制服务的一种必要支持,访问控制服务的执行依赖于确知的身份身份认证的分类:身份认证可以分为本地和远程两类。本地多用户认证:实体在本地环境的初始化鉴别(就是说,作为实体个人,和设备物理接触,不和网络中的其他设备通信)。

远程用户认证:连接远程设备、实体和环境的实体鉴别。–通常将本地鉴别结果传送到远程。身份鉴别可以是单向的也可以是双向的。单向认证是指通信双方中只有一方向另一方进行鉴别。双向认证是指通信双方相互进行鉴别。实现身份鉴别的途径三种途径之一或他们的组合(1)所知(Knowledge):密码、口令(2)所有(Possesses):身份证、护照、信用卡、钥匙(3)个人特征:指纹、笔迹、声纹、手型、血型、视网膜虹膜、DNA以及个人动作方面的一些特征设计依据:安全水平、系统通过率、用户可接受性、成本等第一类方法最简单,系统开销最小,但是最不安全;第二类泄漏秘密的可能性比较小,安全性比第一类高,但是认证系统相对复杂;第三类的安全性最高,但是涉及到更复杂的算法和实现技术。认证机制非密码的认证机制基于密码算法的认证零知识证明协议1.非密码的认证机制A.口令机制B.一次性口令机制C.询问-应答机制D.基于地址的机制E.基于个人特征的机制F.个人鉴别令牌A.口令机制常规的口令方案涉及不随时间变化的口令,提供所谓的弱认证(weakauthentication)。口令或通行字机制是最广泛研究和使用的身份鉴别法。口令的选择原则:易记、难猜、抗分析能力强。口令系统有许多脆弱点:外部泄露口令猜测线路窃听危及验证者重放常用的口令认证方案(1)使用保护口令机制:如单向函数f方案(1)的缺陷及对策缺陷:口令相同,则单向函数的值q’也相同。攻击者很容易构造一张q与p对应的表,表中的p尽最大可能包含所期望的值。(不断猜测)对策:随机串(Salt)是使这种攻击变得困难的一种办法。在口令后使用随机数。B.一次性口令机制近似的强认证(towardsstrongauthentication)一次性口令机制确保在每次认证过程中所使用的口令不同,以对付重放攻击。确定口令的方法:①两端共同使用一个随机序列生成器,在该序列生成器的初态保持同步;②使用时戳,两端维持同步的时钟。应用:动态口令卡动态口令卡(智能卡的一种)是发给每个用户的动态口令发生器,通过同步信任认证算法,以时间为参数,每隔16~64秒钟产生一个一次性使用的“动态口令”其他机制生物特征2.基于密码算法的认证机制ISO/IEC9798-2协议(需要会话密钥)单向认证(时间戳)双向认证(时间戳)A

B:{TA,IDB}KABA

B:{TA,IDB}KABB

A:{TB,IDA}KAB2.1基于对称密码的认证2.1基于对称密码的认证ISO/IEC9798-2协议(需要会话密钥)单向认证(一次性随机数)双向认证(一次性随机数)1.B

A:NB2.A

B:{NB,IDB}KAB1.B

A:NB2.A

B:{NA,NB,IDB}KAB3.B

A:{NB,NA}KABISO/IEC9798-3单向认证ISO/IEC9798-3单向认证1.A

B:TA,IDB,SigA(TA,IDB)1.B

A:NB2.A

B:NA,NB,SigA(NA,NB,IDB)2.基于密码算法的认证机制2.2基于公钥密码的认证ISO/IEC9798-3双向认证ISO/IEC9798-3双向认证1.A

B:TA,IDB,SigA(TA,IDB)2.B

A:TB,IDA,SigB(TB,IDA)1.B

A:NB2.A

B:NA,NB,IDB,SigA(NA,NB,IDB)3.B

A:NB,NA,IDA,SigB(NB,NA,IDA)2.基于密码算法的认证机制2.2基于公钥密码的认证3.基于零知识证明的认证机制通常的身份认证都要求传输口令或身份信息(尽管是加密传输),如果不传输这些信息,身份也能得到证明就好了,这就需要身份的零知识证明技术(Theproofofzeroknowledge)

。零知识证明是这样一种技术,被认证方P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息(如果连V都不知道那些秘密信息,第三者想盗取那些信息当然就更难了)。3.基于零知识证明的认证机制解释零知识证明的通俗例子是洞穴问题。

如图:有一个洞,设P知道咒语,可打开C和D之间的秘密门,不知道者都将走入死胡同中,那么P如何向V出示证明使其相信他知道这个秘密,但又不告诉V有关咒语。3.基于零知识证明的认证机制P如何使V相信自己掌握了洞穴的秘密:1)V站在A点。2)P进入洞中任意一点C或D。3)当P进洞之后,V走到B点。4)V叫P:“从左边出来”或“从右边出来”。5)P按要求实现(以咒语,即解数学难题)。6)P和V重复执行(1)~(5)共n次。被认证方P掌握的秘密信息可以是某些长期没有解决的猜想问题的证明,如:费尔玛最后定理,图的三色问题,也可以是缺乏有效算法的难题解法,如:大数因式分解等,信息的本质是可以验证的,即可通过具体的步骤来检测它的正确性。哈希函数数字签名消息鉴别身份认证身份认证实例-Kerberos(自学)数据保护工具身份认证存在问题

工作站存在三种威胁:一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。Kerberos提供一个中心认证服务器,实现用户到服务器和服务器到用户的认证服务。三种可能的安全认证方案:第一种是系统相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。第二种方案是要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。第三种方案要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。Kerberos的解决方案

在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。Kerberos系统应满足安全性、可靠性、透明性、可伸缩型的要求。

KerberosVersion4

简单身份认证对话过程CVAS(1)(2)(3)身份认证中的各个步骤会话内容分别如下: (1)C->AS: IDC||PC||IDV (2)AS->C: Ticket

(3)C->V: IDC||Ticket Ticket=EKV[IDC||ADC||IDV]存在两个主要问题:一是系统需要用户输入口令的次数较多;另一个问题是输入的口令以明文传送,中间可能会被第三者窃听。改进的身份认证会话过程引入票据服务器TGSCVAS(1)(2)(3)TGS(4)(5)Kerberos身份认证中的各个步骤会话内容分别如下:每次用户登录执行步骤(1)、(2):(1)C->AS: IDC||Idtgs(2)AS->C: EKC[Tickettgs]每次请求一种类型的服务时执行步骤(3)、(4)、(5):(3)C->TGS: IDC||IDv||Tickettgs(4)TGS->C: TicketVC每次请求一个服务,TGS分配一个TicketV(5)C->V: IDC||TicketVTickettgs=EKtgs[ID

温馨提示

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

评论

0/150

提交评论