第6章身份认证与数字签名_第1页
第6章身份认证与数字签名_第2页
第6章身份认证与数字签名_第3页
第6章身份认证与数字签名_第4页
第6章身份认证与数字签名_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

第6章

身份认证与数字签名支付宝快捷支付的身份漏洞(原文)快捷支付(含卡通)是最安全、轻松的付款方式。用户通过电话或者网站等方式订购商品时,不需开通网银,直接通过输入卡面信息,即可便捷、快速地完成支付。只需将您的支付宝账户关联您的储蓄卡或者信用卡,每次付款时只需输入支付宝的支付密码即可完成付款。快捷支付的特点:省力、安全、省钱应用场景广泛(页面)

密码技术弊端显现生物识别渐受追捧美国《华尔街日报》网络版上周日刊登题为《跟密码说再见》(SayGoodbyetothePassword)的评论文章称,由于密码技术在便利性和安全性方面的弊端逐渐显现,相关企业纷纷开始寻找替代方案,而以指纹为代表的生物识别技术则成为最受追捧的领域,思维密码成真。(原文)谷歌或已掌握全球多数WiFi密码(原文)基于位置的隐私保护主要内容

身份认证数字签名6.1身份认证6.1身份认证身份认证是验证主体的真实身份与其所声称的身份是否符合的过程。认证的结果只有两个:符合和不符合。适用于用户、进程、系统、信息等。身份认证的例子邮件登录Client与Server之间的鉴别Telnet远程登录Ftp服务登录到某台电脑上身份认证系统的组成出示证件的人,称作示证者P(Prover),又称声称者(Claimant)。验证者V(Verifier),检验声称者提出的证件的正确性和合法性,决定是否满足要求。第三方是可信赖者TP(Trustedthirdparty),参与调解纠纷。在许多应用场合下没有第三方。身份认证的物理基础Somethingtheuserknow(例如口令)简单,但不安全设计依据安全水平、系统通过率、用户可接受性、成本等采用复杂密码,并且做定期更换,密码长度不低于8位,采用大小写配合数字及特殊符号;密码策略操作:Windows操作指南:控制面板→管理工具→本地安全策略→账户策略→密码策略,设置“强制密码历史”修改24个记住的密码,“密码最长使用期限70天”,“密码最短使用期限2天”,“启用密码可逆加密(用可还原的加密来储存密码)”操作系统、数据库管理系统等口令未到达复杂度要求。后台登陆用户口令简单,且未启用登录失败处理。(补充)处置建议:启用操作系统的安全处理功能,设置允许账户错误登录失败次数,超过则可采取结束会话、自动退出等措施。建议值:账户3-5次后锁定,账户锁定时间不少30分钟。Windows操作指南:控制面板→管理工具→本地安全策略→账户策略→账户锁定策略,“帐户锁定时间”设置为0,“帐户锁定阈值”设置为3或5次。操作系统未启用登录失败处理功能(补充)身份认证的物理基础Somethingtheuserpossesses(例如证件)认证系统相对复杂身份认证的物理基础Somethingtheuseris(例如指纹识别)更复杂,而且有时会牵涉到本人意愿身份认证方式单向认证(One-wayAuthentication)双向认证(Two-wayAuthentication)信任的第三方认证(TrustedThird-partyAuthentication)单向认证通信的一方认证另一方的身份用对称密码体制来实现单向认证某函数变换f双方共享的密钥KS随机数RA用非对称密码体制来实现单向认证随机数RAB的私钥KSB双向认证

双方都要提供用户名和密码给对方,才能通过认证。

用对称密码体制来实现双向认证A产生一个随机数RA双方共享的密钥KSB产生一个随机数RB用非对称密码体制来实现双向认证A产生一个随机数RAB产生一个随机数RBB的私钥KSBA的私钥KSA信任的第三方认证

当两端欲进行连线时,彼此必须先通过信任第三方的认证,然后才能互相交换密钥,而后进行通信。一种第三方认证机制SKAU:管理员的私钥PKB:B的公钥PKA:A的公钥N1:A的临时交互号N2:B产生的新临时交互号双向认证(补充)目的:用于通信各方之间的相互进行身份认证,同时交换会话密钥,其重点是密钥分配。需要解决的核心问题:密钥交换的机密性和时效性。机密性防止会话密钥被篡改或和泄露;用户身份信息和会话密钥都必须以密文形式交换;前提:通信各方与事先保存一个密钥(共享或公开密钥)时效性为了防止消息的重放攻击。报文重放(replay)攻击(补充)攻击过程(1)窃听。(2)复制或部分复制一个报文。(3)在以后的某个时间重放可以拦截原信息,用重放消息取代;可以在一个合法有效的时间窗内重放一个带时间戳的消息。后果(1)扰乱接收者正常的工作。(2)窃取会话密钥,假扮成一个通信方欺骗其他人。最坏情况下可能导致对手获取会话密钥,或成功地冒充其他人;至少也可以干扰系统的正常运行,处理不好将导致系统瘫痪。常见的消息重放攻击形式(补充)(1)简单重放:攻击者简单复制一个报文,以后再重新发送它;(2)可被日志记录的重放:攻击者可以在一个有效的时间窗内重放一个带时间戳的报文;(3)不能被检测到的重放:原始报文已经被拦截(丢失),无法到达目的地,而只有重放的报文到达目的地。(4)不做修改的反向重放:向消息发送者重放。当采用传统对称加密方式时,这种攻击是可能的。因为消息发送者不能简单地识别发送的消息和收到的消息在内容上的区别。重放攻击预防方式(补充)报文序号方式:在认证交换中使用一个序数来给每一个消息报文编号。仅当收到的消息序数顺序合法时才接受之。但这种方法的困难是要求双方必须保持上次消息的序号(事实上不可行)。两种更为一般的方法是:时间戳和盘问/应答方式时间戳方式:(1)在报文中附加发送的时间戳;接收时只有报文时间戳与本地时间足够接近时,才认为是一个合法的新报文。(2)需要考虑的问题:通信各方的时钟同步比较困难;时间窗口的大小如何确定。时间戳方法的问题(补充)(1)协议需要在各种处理器的时钟中维持同步。该协议必须既要容错以对付网络出错,又要安全以对付重放攻击。(2)由于某一方的时钟机制故障可能导致临时失去同步,这将增大攻击成功的机会。(3)由于变化的和不可预见的网络延迟的本性,不能期望分布式时钟保持精确的同步。因此,任何基于时间戳的认证必须采用时间窗的方式来处理:一方面时间窗应足够大以包容网络延迟,另一方面时间窗应足够小以最大限度地减小遭受攻击的机会。由于时间戳技术固有的困难,很难用于面向连接的应用实际中,安全的时间服务器用以实现时钟同步可能是最好的方法。盘问/应答方式(补充)(Challenge/Response)A期望从B获得一个新消息,首先发给B一个现时nonce(challenge),并要求后续从B收到的消息(response)包含这个正确的现时。盘问/应答方法不适应非连接性的应用,因为它要求在传输开始之前先有握手的额外开销。可能攻击形式多样性,导致要设计一个完美的鉴别协议非常困难。采用加密方式怎样实现相互鉴别?基于对称密钥加密的相互鉴别—初始方案(补充)1、须具备的条件可信的密钥分配中心(KDC);通信各方都与KDC共享一个主密钥,主密钥Ka和Kb是安全。2、目的:KDC为通信双方A、B产生短期的会话密钥Ks。3、工作过程:(1)AKDC: IDA||IDB||N1(2)KDCA: EKa[Ks||IDB||N1||EKb(Ks||IDA)](3)AB:EKb[Ks||IDA](4)BA:EKs[N2](5)AB:EKs[f(N2)]现时基于对称密钥加密的相互鉴别过程—初始方案(补充)(1)A在会话开始时首先向KDC发送报文,包含A和B的标识和一个与时间相关的现时标识符N1

。(2)A就可安全地从KDC获得一个新的会话密钥Ks

。(3)A将用Kb加密的会话密钥Ks发送给B,这个会话密钥只有B能够通过解密获得。(4)B向A发送用会话密钥加密的现时值N2,向A证实B已经正确获得了会话密钥Ks(5)A使用新建立的会话密钥Ks对f(N2)加密后返回给B基于对称密钥加密的相互鉴别—初始方案(补充)改进方案(1)增加时间戳机制:需要通信各方周期性地与KDC通信进行时钟校准。(2)通信时使用现时握手。(3)1,2两种方案的结合。这种鉴别方案中存在什么漏洞?容易遭到重放攻击如:使用过期的会话密钥,X可冒充A,使用过期密钥,并重放第3步的报文,就可以欺骗B。除非B存储所有的使用过的会话密钥。基于对称密钥加密的相互鉴别—带时间戳方案(补充)

假定主密钥Ka,Kb是安全的。(1)AKDC:IDA||IDB(2)KDCA:EKa[Ks||IDB||T||EKb(Ks||IDA||T)](3)AB:EKb[Ks||IDA||T](4)BA:EKs[N1](5)AB:EKs[f(N1)]

C本地时钟的时间值,t1是KDC时钟与本地时钟的正常偏差,t2是网络的正常时延值。各个节点的本地时钟参照某个标准时钟来设定。T是时间戳解决方案(1)通信各方周期性的与KDC通信进行时钟校准;(2)通信时使用现时握手,免除时钟同步负担。基于对称密钥加密的相互鉴别—带时间戳方案(补充)

如何安全可信的通过网络进行时钟同步?危险:若各节点分布式时钟不同步,协议将受重放攻击。节点之间的时钟不同步通常是由于时钟或同步部件的故障造成的,也可能也可能是人为破坏。抑制-重放攻击:如果发送方的时钟快于接收方的时钟,攻击者可以窃听到发送端的报文,由于报文中的时间戳比接收方的本地时钟提前,攻击者可以等到接收方时钟等于报文时间戳时重放该报文。基于对称密钥加密的相互鉴别—有效时限和现时方案(补充)(1)A→B:IDA‖Na(2)B→KDC:IDB‖Nb‖EKb(IDA‖Na‖Tb)(3)KDC→A:EKa(IDB‖Na‖Ks‖Tb)‖EKb(IDA‖Ks‖Tb)‖Nb(4)A→B:EKb(IDA‖Ks‖Tb)‖EKs(Nb)A产生现时Na发给B,会话密钥由KDC分发给A时,A验证返回的Na实现时效性通知KDC向A发布一个信任的票据票据接收者IDA,过期时间Tb,NaKs会话密钥,Tb使用时限,IDB用于证实B收到初始报文,Na检测重放攻击。鉴别票据B利用Ks解密Nb鉴别A增加时间戳和现时握手后的协议过程:(1)A发起鉴别交换,首先产生一个现时值Na,并加上A的标识IDA已明文的形式发给B。在会话密钥分发给A的时候,Na将同时被返回给A,A通过验证Na的值来实现时效性。(2)B向KDC申请会话密钥。B向发往KDC的报文包括其标识IDB和另一个现时值Nb,Nb的作用也是为了保证报文的时效性。B发往KDC的报文中还包括一个用Kb密钥加密的数据段EKb(IDA||Na||Tb),其作用是通知KDC向A发布一个信任的票据。B向KDC说明票据的接收者IDA和过期时间Tb及A发来的Na等信息。基于对称密钥加密的相互鉴别—有效时限和现时方案(补充)

(3)KDC将一个用于鉴别的票据EKb(IDA||Na||Tb)发给A。这个票据是用Kb加密的。同时,KDC还向A传送了用Ka加密的分组,其中Ks是会话密钥,Tb给出了会话密钥的使用时限,IDB用于证明B已经收到初始报文,Na能够检测重放攻击。(4)A将票据和加密后的Nb传送给B。B使用票据中恢复出来的密钥来解密Nb,通过解密Nb就能鉴别报文是不是来自A,或是一次重放攻击。基于对称密钥加密的相互鉴别—有效时限和现时方案(补充)

方案优点(1)为AB双方建立会话提供了一种安全有效的会话密钥交换方式。协议中过期时间Tb的参考时钟是节点B的本地时间,也仅有B对其进行检验。(2)A可保存能够用于鉴别B的票据,可以鉴别与鉴别服务器的多次交互。如:A、B已建立的会话终止了。A要与B建立新会话,A保存了原有票据,在密钥有效期内,建立安全会话:[1]A→B:EKb(IDA‖Ks‖Tb)‖Na’[2]B→A:Nb’‖EKs(Na’)[3]B→A:EKs(Nb’)基于对称密钥加密的相互鉴别—有效时限和现时方案(补充)

B检验收到票据是否过期。

Na’和Nb’预防重放攻击基于公开密钥加密的相互鉴别—时间戳鉴别方案(补充)在公钥鉴别方案中,认证中心(AS)用作通信双方公钥保存与分发。(1)A→AS:IDA‖IDB(2)AS→A:CA‖CB(3)A→B:CA‖CB‖EKUb(EKRa(Ks‖T))A的公钥和私钥分别为KUa和Kra;B的公钥和私钥分别为KUb和KRb;AS(鉴别中心)的公钥和私钥分别为KUas和KRas;CA=EKRas(IDA‖KUa‖T),A的公开密钥证书;CB=EKRas(IDB‖KUb‖T),B的公开密钥证书。AS只提供公钥证书Ks由A选择和加密,无泄露危险防止重放攻击不足?时钟同步基于公开密钥加密的相互鉴别—现时方案(补充)(1)A→KDC:IDA‖IDB(2)KDC→A:EKRk(IDB‖KUb)(3)A→B:EKUb(Na‖IDA)(4)B→KDC:IDB‖IDA‖EKUk(Na)(5)KDC→B:EKRk(IDA‖KUa)‖EKUb(EKRk(Na‖Ks‖IDB))(6)B→A:EKUa(EKRk(Na‖Ks‖IDB)‖Nb)(7)A→B:EKs(Nb)以便KDC对Ks进行标识保证Ks是最新的EKUb的目的是保证[EKRk[Na||Ks||IDB]]不被对手截获并试图建立与A的欺骗性连接(5)KDC→B:EKRk(IDA‖KUa)‖EKUb(EKRk(Na‖Ks‖IDA‖IDB))(6)B→A:EKUa(EKRk(Na‖Ks‖IDA‖IDB)‖Nb)上述协议是一个比较安全的协议。可能存在不同用户产生重复Na的可能性绑定IDA

,可将Na看着是所有由A产生的现时中唯一的现时身份认证协议——Kerberos是美国麻省理工学院(MIT)开发的一种身份鉴别服务。Kerberos提供了一个集中式的认证服务器结构,认证服务器的功能是实现用户与其访问的服务器间的相互鉴别。Kerberos建立的是一个实现身份认证的框架结构。其实现采用的是对称密钥加密技术,而未采用公开密钥加密。公开发布的Kerberos版本包括版本4和版本5。Kerberos的设计目标(1)安全性:能够有效防止攻击者假扮成另一个合法的授权用户。(2)可靠性:分布式服务器体系结构,提供相互备份。(3)对用户透明性(4)可伸缩:能够支持大数量的客户和服务器。总的来说,Kerberos协议设计目标是提供一种可信的第三方的身份认证服务。Kerberos设计的基本思路(1)使用一个(或一组)独立的认证服务器(AS-AuthenticationServer)为网络中的客户提供身份认证服务;(2)认证服务器(AS),用户口令由AS保存在数据库中;(3)AS与每个服务器共享一个惟一保密密钥(已被安全分发)。C:客户AS:认证服务器V:应用服务器IDC:用户标识符IDV:服务器标识符PC:用户口令ADC:C网络地址KV:AS与V共有的保密密钥一个简单的认证对话(1)CAS:IDC||PC||IDV(2)ASC:Ticket(3)CV:IDC||TicketTicket=EKV[IDC||ADC||IDV]保证对手无法切断(2),冒充C发送(3)服务器能证实票据解密的正确性假定有一个用户登录到了一个工作站上,它需要访问应用服务器V上提供的服务,可采用以下认证过程:解决办法:(1)票据重用(2)引入票据许可服务器(TGS)a、用于向用户分发服务器的访问票据;b、认证服务器AS并不直接向客户发放访问应用服务器的票据,而是由TGS服务器来向客户发放存在的主要问题(1)希望用户输入口令次数最少,尽量减少用户不便。若允许票据的多次使用将导致安全性下降;用户访问不同服务器时仍需要多次申请票据的过程。(2)口令Pc以明文传送会被窃听。Kerberos中的票据1、服务许可票据(Servicegrantingticket)

(1)是客户访问服务器时需要提供的票据;

(2)用TicketV表示访问应用服务器V的票据。

(3)TicketV定义为EKv[IDC‖ADC‖IDV‖TS2‖LT2]。2、票据许可票据Ticketgrantingticket)(1)客户访问TGS服务器需要提供的票据,目的是为了申请某一个应用服务器的“服务许可票据”;(2)票据许可票据由AS发放;(3)用Tickettgs表示访问TGS服务器的票据;(4)Tickettgs在用户登录时向AS申请一次,可多次重复使用;(5)Tickettgs定义为EKtgs[IDC‖ADC‖IDtgs‖TS1‖LT1]。票据生存时间客户C与认证服务器AS认证服务阶段(1)CAS:IDC||IDtgs(2)ASC:EKC[Tickettgs]Tickettgs=EKtgs[IDC||ADC||IDtgs||TS1||Lifetime1]利用票据许可票据申请服务许可票据(3)CTGS:IDC||IDv||Tickettgs(4)TGSC:TicketVTicketV=EKV[IDC||ADC||IDV||TS2||Lifetime2]特定服务许可票据访问相应的服务(5)CV:IDC||TicketV更安全的认证对话口令密钥KC解密获取Tickettgs

防止对手在获取Tickettgs后,等待C退出登录再冒充C登录仅AS和TGS知道Ktgs存在问题1)票据许可票据有效期的确定。2)用户对服务器身份的认证。KerberosV4进一步研究。票据重用,避免用户口令重复输入用口令避免Pc明文传输仅V和TGS知道KVKerberosV4认证过程示意图KerberosV4认证过程第1阶段:认证服务器的交互,用于获取票据许可票据(1)C→AS:IDC‖IDtgs‖TS1(2)AS→C:EKc[KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs]Tickettgs=EKtgs[KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2]采用会话密钥保证使用票据的人就是申请票据的人,避免票据重放攻击。即:由AS产生C和TGS之间的会话密钥,并安全地传送给C和TGS;由TGS产生C和V之间的会话密钥,并安全地传送给C和V。供客户C加密传输鉴别符Authenticatorc口令密钥KC解密获取TickettgsAS产生,C和TGS之间拥有了会话密钥TGS通过Tickettgs获取Kc,tgs

使AS验证报文的及时性,验证客户时钟是否与AS同步仅AS和TGS知道KtgsKerberosV4认证过程第2阶段,票据许可服务器的交互,用于获取服务许可票据(3)C→TGS:IDV‖Tickettgs‖AUC(4)TGS→C:EKc,tgs[KC,V‖IDV‖TS4‖TicketV] Tickettgs=EKtgs[KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2] TicketV=EKv[KC,V‖IDC‖ADC‖IDV‖TS4‖LT4] AUC=EKc,tgs[IDC‖ADC‖TS3]TGS产生,C和V共同拥有V通过TicketV获取Kc,v

生存期很短且仅使用一次,证明客户的身份仅V和TGS知道KV鉴别符使得ADC是不可重用的,每个鉴别符只有很短的生存期KerberosV4认证过程(3)第3阶段,客户与应用服务器的交互,用于获得服务5)C→V:TicketV‖AUC(6)V→C:EKc,v[TS5+1]TicketV=EKv[KC,V‖IDC‖ADC‖IDV‖TS4‖LT4]AUC=EKc,v[IDC‖ADC‖TS5]生存期很短且仅使用一次证明拥有者Ticketv的身份可重用票据向用户鉴别他们自己KerberosV4认证过程示意图Kerberos领域(realm)构成:一个完整的Kerberos环境包括一个Kerberos服务器,一组工作站和一组应用服务器。具有如下特征(1)Kerberos服务器数据库中拥有所有的用户ID和口令散列码;所有用户需要向Kerberos服务器注册。(2)每个应用服务器都与Kerberos服务器共享一个密钥(3)所有用户均在Kerberos服务器上注册。(4)所有服务器均在Kerberos服务器上注册。(5)领域的划分是根据网络的管理边界来划定的。Kerberos领域间的互通1、跨领域的服务访问(1)一个用户可能需要访问另一个Kerberos领域中应用服务器;(2)一个应用服务器也可以向其他领域中的客户提供网络服务。2、领域间互通的前提(1)支持不同领域之间进行用户身份鉴别的机制;(2)互通领域中的Kerberos服务器之间必须共享一个密钥;(3)两个Kerberos服务器也必须进行相互注册。

远程服务访问的认证过程(1)C→AS:IDC‖IDtgs‖TS1(2)AS→C:EKc[KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs](3)C→TGS:IDtgsrem‖Tickettgs‖AUC(4)TGS→C:EKc,tgs[KC,tgsrem‖IDtesrem‖TS4‖Tickettgsrem](5)C→TGSrem:IDVrem‖Tickettgsrem‖AUC(6)TGSrem→C:EKc,tgsrem[KC,Vrem‖IDVrem‖TS6‖TicketVrem](7)C→Vrem:TicketVrem‖AUCVrem远程应用服务器,TGSrem远程TGS服务器。Kerberos跨领域认证交互向远程服务器Vrem出示票据的用户已经在其本领域内经过了身份认证服务器可以根据自身安全策略决定是否允许该用户的远程服务请求Kerberosv4的缺陷(1)依赖性:加密系统的依赖性,对IP协议的依赖性和对时间依赖性。(2)字节顺序:用户自定义。(3)票据有效期:8位字段来表示,有效期最小为5分钟,最大约为21小时。(4)认证转发能力:不允许签发给一个用户的鉴别证书转发给其他工作站或其他客户使用。(5)领域间的鉴别:管理起来困难。(6)加密操作缺陷:非标准形式的DES加密(传播密码分组链接PCBC)方式,易受攻击。(7)会话密钥:存在着攻击者重放会话报文进行攻击的可能。(8)口令攻击:未对口令提供额外的保护,攻击者有机会进行口令攻击。Kerberosv5的改进(1)加密系统:支持使用任何加密技术。(2)通信协议:IP协议外,还提供了对其他协议的支持。(3)报文字节顺序:采用抽象语法表示(ASN.1)和基本编码规则(BER)来进行规范。(4)票据的有效期:允许任意大小的有效期,有效期定义为一个开始时间和结束时间。(5)提供了鉴别转发能力(6)更有效的方法来解决领域间的认证问题(7)口令攻击:提供了一种预鉴别(preauthentication)机制,使口令攻击更加困难,但不能完全避免口令攻击。零知识证明Alice:“我知道联邦储备系统计算的口令”Bob:“不,你不知道”Alice:我知道Bob:你不知道Alice:我确实知道Bob:请你的证实这一点Alice:好吧,我告诉你。(她悄悄说出了口令)Bob:太有趣了!现在我也知道了。我要告诉《华盛顿邮报》Alice:啊呀!零知识证明零知识证明:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质:一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。零知识证明主体:一方为证明者,另一方为验证者。证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息。

零知识证明举例(1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。A如何向B证明其拥有钥匙?(1)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。(2)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。后面这个方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。零知识证明举例(2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,B如何向A证明自己是B?(1)B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。(2)A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。后面的方法属于零知识证明。零知识“洞穴”

零知识“洞穴”(1)V站在A处;(2)P走进洞穴,到达C处或D处;(3)当P消失在洞穴中时,V走到B处;(4)V呼叫P,要求P:(a)从左通道出来;或者(b)从右通道出来;(5)P答应V的呼叫,并在有必要的情况下用咒语打开C与D之间的秘密之门;(6)重复步骤(1)~(5)次。基本的零知识协议过程假设P知道一部分信息,并且该信息是一个难题的解法:(1)P用自己的信息和一个随机数将这个难题转变为与之同构的新难题,然后用自己的信息和这个随机数这个新难题;(2)P利用位承诺方案提交对于这个新难题的解法;(3)P向V透漏这个新难题,V无法通过新难题得到关于原难题或其解法的任何信息;(4)V要求P:(a)证明新、旧难题同构;或者(b)公布P在(2)中提交解法并证明该解法的确为新难题的解法;(5)P答应V的要求;(6)重复步骤(1)~(5)次。位承诺:允许一个人事先向别人提交一个数值而不用立即揭露该数值所表示的意义,他可以在某个时间以后才揭示它的意义。最简单的零知识证明问题要求:假如P想说服V,使V相信他确实知道n的因数p和q,但不能告诉V最简单的步骤:V随机选择一整数x,计算x4modn的值,并告诉PP求x2modn并将它告诉VV验证x4modnV知道求x2modn等价于n的因数分解,若不掌握n的因数p和q,求解很困难。6.2数字签名消息认证码的不足可以保护通信双方以防止第3者攻击,不能保护通信双方中一方防止另一方的欺骗和伪造。B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后生成该消息来自于AB有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认数字签名的基本概念数字签名由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。数字签名(DigitalSignature)是公开密钥体系加密技术发展的一个重要的成果。数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。数字签名是对现实生活中笔迹签名的模拟。手写签名的特征签名是可信的签名是不可伪造的签名不可重用签名后的文件是不可变的签名是不可抵赖的简单扫描手写签名是不能满足要求的对数字签名的要求要保证能够验证作者及其签名的日期时间必须能够认证签名时刻的内容签名必须能够由第三方验证,以解决争议。更进一步的要求依赖性:签名必须是依赖于被签名信息来产生;唯一性:签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;可验性:必须相对容易识别和验证该数字签名;抗伪造:伪造该数字签名在计算上是不可行的,根据一个已有的数字签名来构造消息是不可行的;对一个给定消息伪造数字签名是不可行的;可用性:在存储器中保存一个数字签名副本是现实可行的。数字签名分类基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。数字签名的设计目标签名的比特模式是依赖于消息报文的,也就是说,数据签名是以消息报文作为输入计算出来的,签名能够对消息的内容进行鉴别;数据签名对发送者来说必须是惟一的,能够防止伪造和抵赖;产生数字签名的算法必须相对简单易于实现,且能够在存储介质上保存备份;对数字签名的识别、证实和鉴别也必须相对简单,易于实现;伪造数字签名在计算上是不可行的,无论攻击者采用何种方法(利用数字签名伪造报文,或者对报文伪造数字签名)。签名方法直接数字签名方法仲裁数字签名方法发方私钥直接加密的直接数字签名方案(1)AB:EKRa[M]提供了认证与签名:只有A具有KRa进行加密;传输中无法被篡改;任何第三方可以用KUa验证签名(2)AB:EKUb[EKRa(M)]

提供了保密(KUb)、认证与签名(KRa)。(1)AB:M||EKRa[H(M)]

提供认证及数字签名

H(M)受到密码算法的保护;只有A能够生成EKRa[H(M)](2)AB:EK[M||EKRa[H(M)]]

提供保密性、认证和数字签名。发方私钥报文散列加密的直接数字签名方案更好的直接数字签名方案直接数字签名方案分析实现比较简单,在技术上仅涉及到通信的源点X和终点Y双方。终点Y需要了解源点X的公开密钥Kux。

发送方A可以使用其私有密钥KRx对整个消息报文进行加密来生成数字签名。更好的方法是使用KRx对消息报文的散列码进行加密来形成数字签名。直接数字签名的安全性验证模式依赖于发送方的保密密钥;发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳。基于仲裁的数字签名通过引入仲裁来解决直接签名方案中发送者否认带来的问题。仲裁者必须是一个所有通信方都能充分信任的仲裁机构。仲裁者在这一类签名模式中扮演敏感和关键的角色。

基本工作方式(假定用户X和Y之间进行通信):每个从X发往Y的签名报文首先被送给仲裁者A;A检验该报文及其签名的出处和内容,然后对报文注明日期,并附加上一个“仲裁证实”的标记发给Y。基于仲裁的数字签名--对称加密,仲裁能看到报文内容发送方X和仲裁A共享密钥Kax,接收方Y和A共享密钥Kay。

数字签名由X的标识符IDx、报文的散列码H(M)、签名和时间戳构成,用密钥Kax进行加密。过程:(1)X→A:M‖EKax(IDx‖H(M))。(2)A验证H(M)的有效性。(3)A→Y:EKay(IDx‖M‖EKax(IDx‖H(M))‖T)。(4)Y存储报文M及签名。(5)争执Y→A:EKay(IDx‖M‖EKax(IDx‖H(M)))。(6)仲裁:A验证EKax(IDx‖H(M))。X的数字签名Y可以判断M是否过期争端解决方式Y→A:EKay(IDx‖M‖EKax(IDx‖H(M)))。仲裁A可用Kay恢复出IDx

、M及签名,然后再用Kax对签名解密并验证其散列码。特点:(1)Y不能直接验证X的签名,签名是解决争端手段。(2)双方都需要高度相信A:Y相信A已对消息认证,X不能否认其签名;X信任A没有暴露Kxa,无人可伪造DS;双方都信任A处理争议是公正。问题:报文M明文传送给A,有可能被窃听。基于仲裁的数字签名--对称加密,仲裁能看到报文内容基于仲裁的数字签名--对称加密,仲裁不能看到报文内容前提:发送方X和仲裁A共享密钥Kax,接收方Y和A共享密钥Kay,X与Y之间共享密钥Kxy。过程(1)X→A:IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M)))(2)A验证H(EKxy(M))的有效性。(3)A→Y:EKay(IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M))‖T)(4)Y解密EKxy(M)存储签名。(5)争执Y→A:EKay(IDx‖EKxy(M)‖EKax(IDx‖H(EKxy(M)))(6)仲裁:A验证EKax(IDx‖H(EKxy(M)))。基于仲裁的数字签名--对称加密,仲裁不能看到报文内容特征:(1)DS的构成:IDx

和消息密文的散列码用Kxa加密(2)DS的验证:A解密签名,用散列码验证消息。(3)A只能验证消息的密文,而不能读取其内容。(4)A将来自X的所有信息加上时间戳并用Kay

加密后发送给Y。两种签名方案存在的问题(1)A和发送方X联手可以否认签名的信息。(2)A和接收方Y联手可以伪造发送方X的签名。基于仲裁的数字签名—公开密钥加密方式(1)XA:IDx||EKRx[IDx||EKUy[EKRx(M)]](2)A验证X的公开/私钥对是否仍然有效。(3)A→Y:EKRa[IDx||EKUy[EKRx(M)]||T](4)Y解密得到M。Y存储签名IDX||EKRx(M)||T。Y→A:EKua(IDx‖EKRx(M))XA:EKRx[M]发生争执怎样仲裁?特点:仲裁者看不见消息的内容。优点:(1)通信各方之间无须共享任何信息,从而避免了联手作弊;(2)只要KRa安全,则不会出现伪造A发送的消息;(3)消息的内容是保密的,包括对A在内。(4)即使KRx暴露,只要KRa未暴露,不会有错误标定日期的消息被发送。基于仲裁的数字签名—公开密钥加密方式RSA签名体制体制参数大素数p,q,n=p×q,y(n)=(p-1)(q-1)。选整数1<e<y(n),且gcd(e,y(n))=1;计算d满足de≡1mody(n).{e,n}为公开密钥,{d,n}为秘密密钥。签名过程S=Mdmodn验证过程M=Semodn实际应用中加密是对H(M)进行的。RSA签名方案M||HESKAMHDPKA比较数字签名标准DigitalSignatureStandard(DSS)概况由NIST1991年公布1993年公布修改版美国联邦信息处理标准FIPSPUB186签名长度320bit只能用于数字签名,不能用于加密数字签名算法(DSA)(1)设计基础基于离散对数的计算具有很高的难度。(2)三个p、q、g作为全局公开的密钥分量:p是一个素数,长度在512比特到1024比特之间,对p更精确的描述:p是素数,且满足2L-1≤p≤2L(其中512≤L≤1024,且L是64的倍数);q是一个长度在160为素数,且q是p-1的一个素因子,即2159≤p≤2160,且(p-1)modq=0;g定义为g=h(p-1)/qmodp,其中h是一个整数,且满足1≤h≤(p-1),故g=h(p-1)/q

modp>1。(3)用户的私有密钥x必须是一个1~(p-l)之间的随机数或伪随机数(即1<x<p)。(4)公开密钥y利用私有密钥计算出来的:y=gxmodp

。由Y计算X需要计算Y的以g为底、模p的离散数对,复杂度高,不可行DSS的数字签名方案同时采用散列函数H()和签名函数Sig()。签名函数的输入是散列函数输出的散列码及一个用于生成签名的随机数k。签名函数还需要使用发送方的私有密钥(用KRa表示)和由参数集构成了组成一个全局公开密钥(KUG)。签名函数输出的最终结果(即数字签名)由两个分量组成,记为s和r。

在接收端,验证函数的输入包括了报文的散列码、数字签名、全局公开密钥KUG以及发送方公开密钥KUa。

DSS的数字签名方案签名函数Sig()数字签名是通过签名函数生成的,签名函数包含r和s。签名函数的输入包括:(1)公开的密钥分量(p,q,g);(2)用户私有密钥x;(3)报文的散列码H(M),报文的散列码采用SH

温馨提示

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

评论

0/150

提交评论