《第6章身份认证与数字签名ppt课件.ppt》由会员分享,可在线阅读,更多相关《第6章身份认证与数字签名ppt课件.ppt(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第6章 身份认证与数字签名主要内容 v 身份认证v 数字签名6.1 身份认证 v身份认证是验证主体的真实身份与其所声称的身份是否符合的过程。v认证的结果只有两个:符合和不符合。v适用于用户、进程、系统、信息等。身份认证的例子v邮件登录vClient与Server之间的鉴别vTelnet远程登录vFtp服务v登录到某台电脑上身份认证系统的组成 v出示证件的人,称作示证者P(Prover),又称声称者(Claimant)。v验证者V(Verifier),检验声称者提出的证件的正确性和合法性,决定是否满足要求。v第三方是可信赖者TP(Trusted third party),参与调解纠纷。在许多应用
2、场合下没有第三方。6.1.1 身份认证的物理基础 vSomething the user know (例如口令) 在互连网和计算机领域中最常用的认证方法是口令认证 简单,但不安全。口令有可能被窃取、丢失、复制。 v设计依据安全水平、系统通过率、用户可接受性、成本等v口令一般并不是以明文的形式存在和使用,而是采用一些加强的处理之后才使用的。 对口令加密:对口令的加密算法必须是单向的,即只能加密,不能解密。在验证用户的口令时,验证方用单向函数加密,并与存储的密文相比较,若相等,则确认用户的身份有效,否则确认用户身份无效。 一次性口令:使用一次性口令作为身份认证方法,使得中途截获口令变得毫无意义。由
3、于要产生大量的一次性口令,所以必须采用专用的设备来产生口令。 身份认证的物理基础 vSomething the user possesses(例如证件)认证系统相对复杂用户所拥有的用户所拥有的 v磁卡或智能卡丢失,那么捡到卡的人就可以假冒真正的用户。 v需要一种磁卡和智能卡上不具有的身份信息,这种身份信息通常采用个人识别号PIN。持卡人必须自己妥善保存并严格保密。v在验证过程中,验证者不但要验证持卡人的卡是真实的卡,同时还要通过PIN来验证持卡人的确是他本人。 身份认证的物理基础vSomething the user is(例如指纹识别)更复杂,而且有时会牵涉到本人意愿6.1.2 身份认证方式
4、 v单向认证(One-way Authentication)v双向认证(Two-way Authentication)v信任的第三方认证(Trusted Third-party Authentication) 单向认证 v通信的一方认证另一方的身份 用对称密码体制来实现单向认证 v某函数变换fv双方共享的密钥KSv随机数RA用非对称密码体制来实现单向认证 v随机数RAvB的私钥KSB双向认证双向认证 v双方都要提供用户名和密码给对方,才能通双方都要提供用户名和密码给对方,才能通过认证。过认证。 用对称密码体制来实现双向认证 vA产生一个随机数RAv双方共享的密钥KSvB产生一个随机数RB用非对
5、称密码体制来实现双向认证 vA产生一个随机数RAvB产生一个随机数RBvB的私钥KSBvA的私钥KSA信任的第三方认证信任的第三方认证 v当两端欲进行连线时,彼此必须先通过信任第三方的认证,然后才能互相交换密钥,而后进行通信 一种第三方认证机制 vSKAU:管理员的私钥 vPKB:B的公钥vPKA:A的公钥vN1: A的临时交互号vN2: B产生的新临时交互号6.1.3 kerberos协议概述vKerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。v它也指由麻省理工实现此协议,并发布的一套免费软件。v它的设计主要针对客户-服
6、务器模型,并提供了一系列交互认证-用户和服务器都能验证对方的身份。vKerberos协议可以保护网络实体免受窃听和重复攻击。vKerberos协议基于对称密码学,并需要一个值得信赖的第三方。vIn Greek mythology, a many headed dog, commonly three, perhaps with a serpents tail, the guardian of the entrance of Hades. - Dictionary of Subjects and Symbols in Art, by James Hall, Harper & Row, 1979.
7、Key Points vKerberos is an authentication service designed for use in a distributed environment.vKerberos makes use of a trusted third-part authentication service that enables clients and servers to establish authenticated communication.InstructionvOne of the earliest and also one of the most widely
8、 used services.vTwo versions of Kerberos are in common use. Version 4 implementations still exist. Version 5 corrects some of the security deficiencies of version 4 and has been issued as a proposed Internet Standard (RFC 1510). The problem that Kerberos addresses: vAssume an open distributed enviro
9、nment in which users at workstations wish to access services on servers distributed throughout the network. vWe would like for servers to be able to restrict access to authorized users and to be able to authenticate requests for service. vKerberos provides a centralized authentication server whose f
10、unction is to authenticate users to servers and servers to users. v Kerberos relies exclusively on symmetric encryption, making no use of public-key encryption. A Simple Authentication Dialogue vIn an unprotected network environment, any client can apply to any server for service. vservers must be a
11、ble to confirm the identities of clients who request service. Each server can be required to undertake this task for each client/server interaction.vIn an open environment, this places a substantial burden on each server. Authentication Server (AS) vAn alternative is to use an authentication server
12、(AS) that knows the passwords of all users and stores these in a centralized database. vThe AS shares a unique secret key with each server. These keys have been distributed physically or in some other secure manner. 存储每个用户的password和标识存储与每个服务器共享的密钥AS查询数据库,检查用户口令是否与用户表示相符,并判断此用户是否有访问服务器V的权限。(1) C AS:
13、IDC|PC|IDV(2) AS C: Ticket(3) C V: IDC|TicketTicket = E(Kv, IDC|ADC|IDV)C= client AS= authentication ServerV=server IDC= identifier of user on CIDV= identifier of V PC= password of user on CADC= network address of CKv= secret encryption key shared by AS and VvAlthough the foregoing scenario solves s
14、ome of the problems of authentication in an open network environment, problems remain. Two in particular stand out. we would like to minimize the number of times that a user has to enter a password. Suppose each ticket can be used only once. The second problem is that the earlier scenario involved a
15、 plaintext transmission of the password.A More Secure Authentication Dialogue v把身份认证和访问权限交给两个服务器分别完成身份认证,由AS完成访问控制,由票据授权服务器(ticket-granting server,TGS)来完成v达到的效果:用户口令只需输入一次,且不会在网络上传输。存储每个用户的password和标识存储与TGS共享的密钥Tickettgs由kc加密, kc来自password存储与每个服务器V共享的密钥判断此用户是否有访问服务器V的权限。Once per user logon session:
16、(1) C AS: IDC|IDtgs (2) AS C: E(Kc, Tickettgs)Once per type of service: (3) C TGS: IDC|IDV|Tickettgs (4) TGS C: TicketvOnce per service session: (5) C V:IDC|TicketvTickettgs = E(Ktgs, IDC|ADC|IDtgs|TS1|Lifetime1)Ticketv = E(Kv, IDC|ADC|IDv|TS2|Lifetime2)(3) C TGS: IDC|IDV|TickettgsTickettgs = E(Ktgs
17、, IDC|ADC|IDtgs|TS1|Lifetime1)1. 客户端将用户标识、TGS标识一起送往AS,申请得到票据授权票据ticket-granting ticket。2. AS用从用户口令推出的密钥Kc(事先已经存储在AS中)将票据加密,并发送给客户端。由用户在客户端输入口令,并得到Kc,将收到的消息解密,得到票据授权票据ticket-granting ticket 。vThe client module in the user workstation saves this ticket-granting ticket. vBecause only the correct user s
18、hould know the password, only the correct user can recover the ticket. Thus, we have used the password to obtain credentials from Kerberos without having to transmit the password in plaintext. 3. The client requests a service-granting ticket(服务授权票据). For this purpose, the client transmits a message
19、to the TGS containing the users ID, the ID of the desired service, and the ticket-granting ticket. 4. The TGS decrypts the incoming ticket and verifies the success of the decryption by the presence of its ID. It checks to make sure that the lifetime has not expired. Then it compares the user ID and
20、network address with the incoming information to authenticate the user. If the user is permitted access to the server V, the TGS issues a ticket(service-granting ticket, Ticketv) to grant access to the requested service.5. The client requests access to a service on behalf of the user. For this purpo
21、se, the client transmits a message to the server containing the users ID and the service-granting ticket. The server authenticates by using the contents of the ticket.使用的密钥vKc: AS和C共享vKtgs:AS和TGS共享vKv: TGS和V共享Two problems vThe lifetime associated with the ticket-granting ticket: If this lifetime is
22、very short (e.g., minutes), then the user will be repeatedly asked for a password. If an opponent captures a service-granting ticket and uses it before it expires, the opponent has access to the corresponding service. A network service (the TGS or an application service) must be able to prove that t
23、he person using a ticket is the same person to whom that ticket was issued. vThe second problem is that there may be a requirement for servers to authenticate themselves to users. The Kerberos Version 4 Authentication Dialogue(1) vAuthentication Service Exchange to obtain ticket-granting ticket.Kc,t
24、gs : Copy of session key accessible to client created by AS to permit secure exchange between client and TGS without requiring them to share a permanent key.The Kerberos Version 4 Authentication Dialogue(2) vTicket-Granting Service Exchange to obtain service-granting ticket.The Kerberos Version 4 Au
25、thentication Dialogue(3) vClient/Server Authentication Exchange to obtain service.6.1.4 零知识证明vAlice: “我知道联邦储备系统计算的口令”vBob: “不,你不知道”vAlice:我知道vBob:你不知道vAlice:我确实知道vBob:请你的证实这一点vAlice:好吧,我告诉你。(她悄悄说出了口令)vBob:太有趣了!现在我也知道了。我要告诉华盛顿邮报vAlice:啊呀! 零知识证明技术v零知识证明技术可使信息的拥有者无需泄露任何信息就能够向验证者或任何第三方证明它拥有该信息。零知识证明的基本协
26、议零知识证明的基本协议例例Quisquater等1989 。 设P知道咒语, 可打开C和D之间的秘密门,不知道者都将走向死胡同中。ABCD零知识证明的基本协议零知识证明的基本协议 (1) V(1) V站在站在A A点;点; (2) P(2) P进入洞中任一点进入洞中任一点C C或或D D; (3) (3) 当当P P进洞之后,进洞之后,V V走到走到B B点;点; (4) V(4) V叫叫P P:(a)(a)从左边出来,或从左边出来,或(b)(b)从右边出来;从右边出来; (5) P(5) P按要求实现按要求实现( (以咒语,即解数学难题帮助以咒语,即解数学难题帮助) ); (6) P(6)
27、P和和V V重复执行重复执行 (1)(1)(5)(5)共共n n次。次。 若若A A不知咒语,则在不知咒语,则在B B点,只有点,只有50 %50 %的机会猜中的机会猜中B B的要求,的要求,协议执行协议执行n n次,则只有次,则只有2 2-n-n的机会完全猜中,若的机会完全猜中,若n n=16=16,则若每,则若每次均通过次均通过B B的检验,的检验,B B受骗机会仅为受骗机会仅为1/65 5361/65 536最简单的零知识证明v问题要求:假如P想说服V,使V相信他确实知道n的因数p和q,但不能告诉Vv最简单的步骤:V随机选择一整数x,计算x4 mod n 的值,并告诉PP求x2 mod
28、n 并将它告诉VV验证x4 mod n vV知道求x2 mod n 等价于n的因数分解,若不掌握n的因数p和q,求解很困难。Fiat-Shamir协议 xvc r2(s2)c r2s2c (rsc)2 y2 mod n6.2 数字签名消息认证无法保证抗否认性v可以保护通信双方以防止第可以保护通信双方以防止第3 3者攻击,不能保者攻击,不能保护通信双方中一方防止另一方的欺骗和伪造。护通信双方中一方防止另一方的欺骗和伪造。B B伪造一个消息并使用与伪造一个消息并使用与A A共享的密钥产生该消息共享的密钥产生该消息的认证码,然后生成该消息来自于的认证码,然后生成该消息来自于A AB B有可能伪造有可
29、能伪造A A发来的消息,所以发来的消息,所以A A就可以对自己就可以对自己发过的消息予以否认发过的消息予以否认数字签名的基本概念v数字签名由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。电子签名法v年月日第十届全国人民代表大会常务委员会第十一次会议通过 v第二条 本法所称电子签名,是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。 v第十四条 可靠的电子签名与手写签名或者盖章具有同等的法律效力。 v第三十二条 伪造、冒用、盗用他人的电子签名,构成犯罪的,依法追究刑事责任;给他人造成损失的,依法承担民事责任。
30、v第三十六条 本法自年月日起施行。 手写签名的特征v签名是可信的v签名是不可伪造的v签名不可重用v签名后的文件是不可变的v签名是不可抵赖的vIn situations where there is not complete trust between sender and receiver, something more than authentication is needed. The most attractive solution to this problem is the digital signature. vDigital signature must have the fol
31、lowing properties:It must verify the author and the date and time of the signature.It must to authenticate the contents at the time of the signature.It must be verifiable by third parties, to resolve disputes.数字签名的功能更进一步的要求v依赖性:签名必须是依赖于被签名信息来产生;v唯一性:签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;v可验性:必须相对容易识别和验证该数字
32、签名;v抗伪造:根据一个已有的数字签名来构造消息是不可行的;对一个给定消息伪造数字签名是不可行的;v可用性:在存储器中保存一个数字签名副本是现实可行的。签名方法签名方法vDirect Digital Signature直接数字签名直接数字签名vArbitrated Digital Signature仲裁数字签名仲裁数字签名vDirect Digital Signature直接方式直接方式The direct digital signature involves only the communicating parties (source, destination).It is assumed
33、that the destination knows the public key of the source. A digital signature may be formed by encrypting the entire message with the senders private key or by encrypting a hash code of the message with the senders private key.直接数字签名AB消息加密后的摘要消息散列函数A的私钥摘要加密算法消息加密后的摘要A的公钥解密算法解密后的摘要散列函数摘要比 较加密后的摘要vAll
34、Direct Digital Signature described so far share a common weakness: The validity of the scheme depends on the security of the senders private key.If a sender later wishes to deny sending a particular message, the sender can claim that the private key was lost or stolen and that someone else forged hi
35、s or her signature. Another threat is that some private key might actually be stolen from X at time T. The opponent can then send a message signed with Xs signature and stamped with a time before or equal to T.仲裁数字签名v具有仲裁方式的数字签名具有仲裁方式的数字签名1. 1.发方发方X X对发往收方对发往收方Y Y的消息签名的消息签名2.2.将消息和签名先发往仲裁者将消息和签名先发往仲
36、裁者A A3.3.A A对消息和签名验证完后,再连同一个表示已通对消息和签名验证完后,再连同一个表示已通过验证的指令一起发给过验证的指令一起发给Y.Y.具有仲裁方式的数字签名-基于对称密码v例1:1.XA:M|2.AY:)(|MHIDEXKXA|)(|TMHIDEMIDEXKXKXAAYE:单钥加密算法KXA,KAY:A与X和Y的共享密钥M:消息T:时戳IDX:X的身份H(M):M的杂凑值此方案不提供对此方案不提供对M的保密性的保密性v在1中,X以EKXAIDXH(M)作为自己对M的签名,将M及签名发往A。v在2中A将从X收到的内容和IDX、T一起加密后发往Y,其中的T用于向Y表示所发的消息不
37、是旧消息的重放。Y对收到的内容解密后,将解密结果存储起来以备出现争议时使用。v如果出现争议,Y可声称自己收到的M的确来自X,并将EKAYIDXMEKXAIDXH(M)发给A,由A仲裁,A由KAY解密后,再用KXA对EKXAIDXH(M)解密,并对H(M)加以验证,从而验证了X的签名。具有仲裁方式的数字签名v例21.XA:IDX|2.AY:|)(|TMEHIDEMEIDEXYXAXYAYKXKKXK)(|MEHIDEMEXYXAXYKXKKX对M的签名X和Y的共享密钥此方案提供了对此方案提供了对MM的保密性的保密性仲裁者可和发方共谋否认发方曾发过的仲裁者可和发方共谋否认发方曾发过的消息,也可和收
38、方共谋产生发方的签名消息,也可和收方共谋产生发方的签名具有仲裁方式的数字签名-基于公钥密码v例3|:. 2|:. 1TMEEIDEYAMEEIDEIDAXXYAXYXSKPKXSKSKPKXSKXX的私钥Y的公钥v第1步中,X用自己的秘密钥SKX和Y的公开钥PKY对消息加密后作为对M的签名,以这种方式使得任何第3方(包括A)都不能得到M的明文消息。vA收到X发来的内容后,用X的公开钥可对ESKXIDXEPKYESKXM解密,并将解密得到的IDX与收到的IDX加以比较,从而可确信这一消息是来自于X的(因只有X有SKX)。v第2步,A将X的身份IDX和X对M的签名加上一时戳后,再用自己的秘密钥加密
39、发往Y。v与前两种方案相比,第3种方案有很多优点:在协议执行以前,各方都不必有共享的信息,从而可防止共谋。只要仲裁者的秘密钥不被泄露,任何人包括发方就不能发送重放的消息。对任何第三方(包括A)来说,X发往Y的消息都是保密的。RSARSA签名体制签名体制v体制参数体制参数大素数大素数p,qp,q,n=pn=pq q, , y y(n(n)=(p-1)(q-1)=(p-1)(q-1)。选整数。选整数1e 1e y y(n(n), ),且且gcd(egcd(e, , y y(n(n)=1;)=1;计算计算d d满足满足dede1 mod 1 mod y y(n). e,n(n). e,n 为公开为公
40、开密钥,密钥,d,nd,n 为秘密密钥。为秘密密钥。v签名过程签名过程S=MS=Md d mod n mod nv验证过程验证过程M=SM=Se e mod n mod nv实际应用中加密是对实际应用中加密是对H(M)H(M)进行的。进行的。RSA签名方案 M|HESKAM ( )ASKEH MHDPKA比较数字签名标准Digital Signature Standard (DSS)概况v由由NIST1991NIST1991年公布年公布v19931993年公布修改版年公布修改版v美国联邦信息处理标准美国联邦信息处理标准FIPS PUB 186FIPS PUB 186v签名长度签名长度320bi
41、t320bitv只能用于数字签名,不能用于加密只能用于数字签名,不能用于加密DSS的基本方式M|HESKAM)(MHEASKHDPKA比较M|HSKAMsHPKG比较VerPKGK随机数rPKASigRSARSA签名签名DSSDSS签名签名全局公开钥数字签名算法DSAv算法描述算法描述: :(a) 全局公钥( p, q, g ) p:是2L-1 p 2L中的大素数,512 L 1024,按64 bits递增; q:(p1)的素因子,且2159 q 2160,即字长160 bits; g:= hp-1 mod p,且1 h 1。(b) 用户私钥 x:x为在0 xq内的随机数。(c) 用户公钥 y
42、:=g x mod p。(d) 用户每个消息用的秘密随机数k:在0kq内的随机数数字签名算法DSA(e) (e) 签名过程:对消息签名过程:对消息MM MM=Z=Zp p* *,其签名为,其签名为S=SigS=Sigk k( (MM, k, k) )=( (r, r, s s) ),S S S S=Z=Zq qZ Zq q, , r r ( (g gk k mod pmod p) ) mod mod q qs s k k- -1 1 ( (h(Mh(M) )xrxr) mod) mod q q (f) (f) 验证过程:计算验证过程:计算 ww=s s -1 -1 mod mod q q ;
43、; u u1 1 = H H( (MM) )ww mod mod q q ; ; u u2 2=rwrw mod mod q q ; ; v= v=( (g gu1u1y yu2u2) mod) mod p p mod mod q q。VerVer( (MM, r, s, r, s) )=真真 v=rv=rrqpgqpgqpggvksxrMHxrwwMHmod)mod(modmodmodmod)(1)()(不可否认签名v在得不到签名者配合的情况下其他人不能正确进行签名验证,从而可以防止非法复制和扩散签名者所签署的文件。v可用于保护知识产权p,q是两个素数, 和公开a是签名者的私钥,公钥是= a
44、 mod p签名:modaSMp任选e1和e2,计算12modeeCSpb=a-1 mod qd=cb mod pd ? =va : 签名者的密钥vp,q v 公开签名者验证者1.modaSMp2.12modeeCSp3.计算b=a-1 mod qSKBERv,p4. d=cb mod p5.计算d=(Me1 e2)mod p6. 比较两个d盲签名vChaum在在1983年提出。年提出。v需要某人对文件签名,但又不想签名者知道需要某人对文件签名,但又不想签名者知道文件内容,称为盲签名。文件内容,称为盲签名。v适应于电子选举、数字货币协议中适应于电子选举、数字货币协议中基于RSA的盲签名ve是用户B的公钥,d是用户B的私钥v现在用户A需要得到用户B对消息M的签名S=Md mod n 但不能让B得知Mv用户A随机选择k,并计算:T=Mke mod nv把T发给BvB对T签名: W=Td mod n 然后发给AvW/k Td/k (Mke)d/k Mdked/k Md mod n