《第4章-数字签名与认证技术课件.ppt》由会员分享,可在线阅读,更多相关《第4章-数字签名与认证技术课件.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4 4章章 数字签名数字签名与认证技术与认证技术 2023/1/1214.1 杂杂 凑凑 函函 数数 杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度哈希值(又称数字摘要或消息摘要),并且任意的不同消息或文件所生成的哈希值是不一样。令h表示Hash函数,则h应满足下列条件:nh的输入可以是任意长度的消息或文件M;nh的输出长度是固定的;n给定h和M,计算h(M)是容易的;n给定h的描述,找两个不同的消息M1和M2,使得h(M1)=h(M2)在计算上是不可行的。2023/1/122Hash函数的安全性是指:在现有的计算资源下,找到一个碰撞是不可能的。Hash函数在网络安全应用中
2、,不仅能用于保护消息或文件的完整性,而且也能用作密码信不仅能用于保护消息或文件的完整性,而且也能用作密码信息的安全存储。息的安全存储。例如,网页防篡改应用。网页文件管理者首先用网页文件生成系列Hash值,并将Hash值备份存放在安全地方。然后定时再计算这些网页文件的Hash值,如果新产生的Hash值与备份的Hash值不一样,则说明网页文件被篡改了。目前,主要Hash算法有MD2、MD4、MD5、SHA。其中,MD5能产生128比特长度的哈希值,它的使用广泛,常用于网络中文件的完整性检查。但是,据最新研究表明,MD5的安全性受到挑战,已被中国的王小云女士攻破。而SHA由NIST和NSA研究开发,
3、在美国政府中使用,作为安全哈希标准,SHA产生的哈希值比MD5长,有160比特。2023/1/1234.2 数数 字字 签签 名名 数字签名(DigitalSignature)是手写签名的电字模拟,是通过电子信息计算处理,产生的一段特殊字符串消息,该消息具有与手写签名一样的特点,是是可可信信的的、不不可可伪伪造造的的、不不可可重重用用的的、不不可可抵抵赖赖的的以以及及不不可可修修改改的的。因而,通常将这种消息称为数字签名。与手写签名类似,数字签名至少应满足以下三个条件:n签名者事后不能否认自己的签名;n接收者能验证签名,而任何其他人都不能伪造签名;n当双方就签名的真伪发生争执时,第三方能解决双
4、方之间发生的争执。2023/1/1244.2.1 4.2.1 数字签名的原理及相关步骤数字签名的原理及相关步骤 一个数字签名方案一般由签名算法和验证算法组成。签名算法的密钥是秘密的,只有签名人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制和DSS标准。签名与加密很相似,一般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。签名与加密的不同之处在于,加密的目的是保护信息不被签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名的目的是让消息接收者确
5、信信息的发送者是谁,信息是否被非授权用户访问,而签名的目的是让消息接收者确信信息的发送者是谁,信息是否被他人篡改。他人篡改。下面我们给出数字签名的基本流程。假设Alice需要签名发送一份电子合同文件给Bob。Alice的签名步骤如下:2023/1/125第一步,Alice使用Hash函数将电子合同文件生成一个消息摘要。第二步,Alice使用自己的私钥,把消息摘要加密,形成一个数字签名。第三步,Alice把电子合同文件和数字签名一同发送给Bob。Alice的签名过程如图4-1所示。2023/1/126图4-1数字签名过程示意图2023/1/127Bob收到Alice发送的电子合同文件及数字签名后
6、,要验证电子合同文件是Alice所认可的,验证步骤如下:第一步,Bob使用与Alice相同的Hash算法,计算出所收到电子合同文件的消息摘要。第二步,Bob使用Alice的公钥,解密来自Alice的加密消息摘要,恢复出Alice原来的消息摘要。第三步,Bob比较自己产生的消息摘要和恢复出来的消息摘要之间的异同。若两个消息摘要相同,则表明电子合同文件来自Alice。如果两个消息摘要的比较结果不一致,则表明电子合同文件已被篡改。2023/1/128图3-2验证数字签名过程示意图2023/1/1294.2.2 4.2.2 数字证书数字证书 数字证书又称为数字标识(DigitalCertificate
7、,DigitalID),它提供了一种在网络上身份验证的方式,是用来标志和证明网络通信双方身份的数字信息文件,与我们日常生活中的身份证相似。在网上进行电子商务活动时,交易双方需要使用数字证书来表明自己的身份,并使用数字证书来进行有关的交易操作。数字证书是由权威公正的第三方机构即CA中心(后面将讲解)签发的,以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私钥
8、,用它进行解密和签名;同时拥有一把公钥,并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私钥才能解密。数字证书能够确认以下两点:保证信息是由签名者自己签名发送的,签名者不能否认或难以否认。保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。4.3 认证技术4.3.1 认证及认证模型认证及认证模型认证(Authentication)是指核)是指核实真真实身份的身份的
9、过程,是防止主程,是防止主动攻攻击的重要技的重要技术之一,之一,是一种用可靠的方法是一种用可靠的方法证实被被认证对象(包括人象(包括人和事)是否名副其和事)是否名副其实或是否有效的或是否有效的过程,因此也称程,因此也称为鉴别或或验证。纯认证纯认证系系系系统统的模型的模型的模型的模型 2023/1/12114.3.2 认证方法分类认证方法分类2023/1/12121 1单向认证单向认证 单向认证是指在网络服务认证过程中,服务方对客户方进行单方面的鉴别,而客户方不需要识别服务方的身份。例如,假设一个客户需要访问某台服务器,单向认证只是由客户向服务器发送自己的ID和密码,然后服务器根据收到的密码和I
10、D,进行比对检验,鉴别客户方的身份真实性。单向认证过程如图4-4所示,认证过程由六步构成:图4-4单向认证过程示意图2023/1/12132 2双向认证双向认证 双向认证是指在网络服务认证过程中,不仅服务方对客户方要进行鉴别,而且客户方也要鉴别服务方的身份。双向认证增加了客户方对服务方的认证,这样就可以解决服务器的真假识别安全问题。双向认证过程如图4-5所示,认证过程由九步构成:图4-5 双向认证过程示意图 2023/1/12143 3第三方认证第三方认证 第三方认证是指在网络服务认证过程中,服务方和客户方的身份鉴别通过第三方来实现。第三方不仅负责维护认证信息,而且还负责验证双方的身份。每个用
11、户都把自己的ID和密码发送给可信第三方,由第三方负责认证过程。此方法兼顾了安全性和密码存储的简单易行性。2023/1/12154.3.3 4.3.3 认证实现技术认证实现技术1静态密码2智能卡(IC卡)3短信密码4动态口令牌5USB KEY6数字签名7生物识别技术8双因素身份认证9身份的零知识证明 4.4 Kerberos 4.4 Kerberos技术技术Kerberos的基本原理是利用对称密码技术,使用可信的第三方来认证服务器的用户身份,并在用户和服务器之间建立安全信道。例如,Alice和Bob分别都与可信第三方共享密钥,如果用户Alice想要获取Bob提供的服务,那么Alice首先向可信第
12、三方申请一个用于获取Bob服务的票据TGT(TicketGrantingTicket),然后可信第三方给Alice提供一个Bob的服务票据TGS(TicketGrantingServer)及用于Alice和Bob之间安全会话的密钥,最后Alice利用可信第三方提供的服务票据和会话密钥,访问Bob服务并进行安全通信。Kerberos由美国麻省理工学院(MIT)研制实现,已经历了五个版本的发展。Kerberos协议实现的源程序可以从网站http:/web.mit.edu/kerberos/下载。Kerberos认证系统可以用来对网络上通信的实体进行相互身份认证,并且能够阻止旁听和重放等攻击。Ker
13、beros 的设计目标安全性能够有效防止攻击者假扮成另一个合法的授权用户。可靠性分布式服务器体系结构,提供相互备份。对用户透明性可伸缩能够支持大数量的客户和服务器。一个Kerberos系统涉及到四个基本实体:*Kerberos客户机:用户用来访问服务器的设备。*AS(Authentication Server):为用户分发TGT(Ticket Granting Ticket)的服务器。用户使用TGT(Ticket Granting Ticket)向TGS(Ticket Granting Server)证明自己的身份。*TGS(Ticket Granting Server):为用户分发到最终目的
14、票据的服务器,用户使用这个票据向自己要求提供服务的服务器证明自己的身份。*应用服务器(ApplicationServer):为用户提供特定服务。Kerberos 的设计基本思路:使用一个(或一组)独立的认证服务器(ASAuthentication Server),来为网络中的客户提供身份认证服务;认证服务器(AS),用户口令由 AS 保存在数据库中;AS 与每个服务器共享一个惟一保密密钥(已被安全分发)。例如C要与服务器V发起会话,其过程如下:(1)C AS:IDC|ADC|IDV(2)AS C:Ticket(3)C V :IDC|Ticket Ticket =EKVIDC|ADC|IDV 在
15、实际使用中,会遇到如下问题:用户希望输入口令的次数最少。口令以明文传送会被窃听。对于这样的问题,Kerberos的解决办法是:票据重用(ticket reusable)。引入票据许可服务器(TGS-ticket-granting server)。用于向用户分发服务器的访问票据;认证服务器 AS 并不直接向客户发放访问应用服务器的票据,而是由 TGS 服务器来向客户发放。Kerberos中有两种票据:(1)服务许可票据(Service granting ticket)它是客户需要提供的票据;用 TicketV 表示访问应用服务器 V 的票据;TicketV 定义为 EKv IDCADCIDVTS
16、2LT2。(2)票据许可票据(Ticket granting ticket)它是客户访问 TGS 服务器需要提供的票据,目的是为了申请某一个应用服务器的“服务许可票据”;票据许可票据由 AS 发放;用 Tickettgs 表示访问 TGS 服务器的票据;Tickettgs 在用户登录时向 AS 申请一次,可多次重复使用;Tickettgs 定义为 EKtgs IDCADCIDtgsTS1LT1。在Kerberos系统中,票据票据(Ticket)是用于安全传递是用于安全传递用户身份所需要的信息的集合。用户身份所需要的信息的集合。它不仅包含该用户的身份,而且还包含其他一些相关的信息。一般来说,它主
17、要包括客户方Principal、目的服务方Principal、客户方IP地址、时间戳(分发该Ticket的时间)、Ticket的生存期以及会话密钥等内容。通常将通常将AS和和TGS统称为统称为KDC(Key Distribution Center)。Kerberos的工作流程主要由六步构成,如图4-6所示。图4-6Kerberos工作流程示意图第一步,Kerberos客户向认证服务器AS申请票据TGT,如图4-7所示。图4-7Kerberos客户向AS申请票据TGT示意图第二步,当认证服务器AS收到Kerberos客户发来的消息后,AS在认证数据库检查、确认Kerberos客户,并产生一个会话
18、密钥,同时使用Kerberos客户的秘密密钥对会话密钥进行加密,然后生成一个票据TGT。TGT由Kerberos客户实体名、地址、时间戳、限制时间及会话密钥组成。AS生成TGT后,把TGT发送给Kerberos客户。第二步认证会话过程如图4-8所示。图4-8认证服务器AS响应Kerberos客户的TGT请求示意图第三步,Kerberos客户收到AS发来的TGT后,使用自己的秘密密钥进行解密,得到会话密钥,然后利用解密的信息重新构造认证请求单,向TGS发送请求,申请访问应用服务器AP所需要的票据(Ticket)。第三步认证会话过程如图4-9所示。图4-9Kerberos客户认证请求票据示意图第四
19、步,TGS使用其秘密密钥对TGT进行解密,同时使用TGT中的会话密钥对Kerberos客户的请求认证单信息进行解密,并将解密后的认证单信息与TGT中的信息进行比较。然后,TGS生成新的会话密钥以供Kerberos客户和应用服务器使用,并利用各自的秘密密钥加密会话密钥。最后,生成一个票据,它由Kerberos客户实体名、地址、时间戳、限制时间、会话密钥组成。TGS生成TGT完毕后,把TGT发送给Kerberos客户。第四步认证会话过程如图4-10所示。图4-10票据服务器TGS响应Kerberos客户的请求示意图第五步,Kerberos客户收到TGS的响应后,将获得与应用服务器共享的会话密钥。与
20、此同时,Kerberos客户生成一个新的用于访问应用服务器的认证单,并用与应用服务器共享的会话密钥加密,然后与TGS发送来的票据一并传送到应用服务器。第五步认证会话过程如图4-11所示。图4-11Kerberos客户请求访问应用服务器示意图第六步,应用服务器确认请求。Kerberos协议中要求用户经过AS和TGS两重认证的优点主要有两点:一是可以显著减少用户密钥中密文的暴露次数,这样就可以减少攻击者对有关用户密钥中密文的积累;二是Kerberos认证过程具有单点登录SSO(SingleSign-on)的优点,只要用户拿到了TGT并且该TGT没有过期,那么用户就可以使用该TGT通过TGS完成到任
21、一台服务器的认证而不必重新输入密码。但是,Kerberos也存在不足之处。例如,Kerberos认证系统需要解决各主机节点时间同步和抗拒绝服务攻击问题。如果某台主机的时间被更改,那么这台主机就无法使用Kerberos认证协议了。一旦服务器的时间发生了错误,则整个Kerberos认证系统将会瘫痪。第一阶段:认证服务器的交互,用于获取票据许可票据:(1)C AS:IDCIDtgsTS1Kerberos客户向认证服务器AS申请票据TGT。(2)AS C:EKc KC,tgsIDtgsTS2LT2Tickettgs 当认证服务器AS收到Kerberos客户发来的消息后,AS在认证数据库检查、确认Ker
22、beros客户,并产生一个会话密钥,同时使用Kerberos客户的秘密密钥对会话密钥进行加密,然后生成一个票据TGT。TGT由Kerberos客户实体名、地址、时间戳、限制时间及会话密钥组成。AS生成TGT后,把TGT发送给Kerberos客户。其中:Tickettgs=EKtgs KC,tgsIDCADCIDtgsTS2LT2 第二阶段,票据许可服务器的交互,用于获取服务许可票据:(3)C TGS:IDVTickettgsAUC Kerberos客户收到AS 发来的TGT后,使用自己的秘密密钥进行解密,得到会话密钥,然后利用解密的信息重新构造认证请求单,向TGS发送请求,申请访问应用服务器A
23、P所需要的票据(Ticket)。(4)TGS C:EKc,tgs KC,VIDVTS4TicketV TGS使用其秘密密钥对TGT进行解密,同时使用TGT中的会话密钥对Kerberos客户的请求认证单信息进行解密,并将解密后的认证单信息与TGT中的信息进行比较。然后,TGS生成新的会话密钥以供Kerberos客户和应用服务器使用,并利用各自的秘密密钥加密会话密钥。最后,生成一个票据,它由Kerberos客户实体名、地址、时间戳、限制时间、会话密钥组成。TGS生成TGT完毕后,把TGT发送给Kerberos客户。其中:Tickettgs =EKtgs KC,tgsIDCADCIDtgsTS2LT2TicketV =EKv KC,VIDCADCIDVTS4LT4AUC =EKc,tgs IDCADCTS3 第三阶段,客户与应用服务器的交互,用于获得服务:(5)C V:TicketVAUC Kerberos客户收到TGS的响应后,将获得与应用服务器共享的会话密钥。与此同时,Kerberos客户生成一个新的用于访问应用服务器的认证单,并用与应用服务器共享的会话密钥加密,然后与TGS发送来的票据一并传送到应用服务器。(6)V C:EKc,v TS5+1应用服务器确认请求。其中:TicketV =EKv KC,VIDCADCIDVTS4LT4 AUC=EKc,v IDCADCTS5
限制150内