第10章数字签名与鉴别协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第10章数字签名和鉴别协议1.数字签名2.鉴别协议3.数字签名标准(DSS)1.数字签名•报文鉴别示例:CK(M)MEK||CMK2K1M比较C||CEK1MC比较DK2MEK2[M]CK1(EK2[M])(a)报文鉴别(c)报文鉴别与保密,鉴别与密文连接源点终点||CM比较CCK1(M)K1DK2K2K1(b)报文鉴别与保密,鉴别与明文连接KEK2[M||CK1(M)]1.数字签名•报文鉴别示例的安全性分析:–可用来保护通信双方免受任何第三方的攻击。–无法用来防止通信双方的互相攻击,无法解决通信双方可能存在多种形式的争执。原因:1.接收方可能伪造并声称它来自发送方。接收方只要简单地生成一个报文,并附加使用由发送方和接收方所共享的密钥生成的鉴别码即可。2.发送方可以否认发送过该报文。因为接收方伪造一个报文是可能的,无法证明发送方发送过该报文这一事实。1.数字签名•解决方案:由于发方和收方之间存在欺骗或抵赖,因此除了采用防止第三方攻击的鉴别之外还需要采用防止当事双方相互攻击的手段。最吸引人的解决方案是笔迹签名的模拟——数字签名。•数字签名必须拥有的基本性质:–必须能证实作者签名和签名的日期和时间。–在签名时必须能对内容进行鉴别。–签名必须能被第三方证实以便解决争端。1.数字签名•密码学上对数字签名的需求:–签名必须是依赖于要签名报文的比特模式。–签名必须使用对发送者来说是惟一的信息,以防伪造和抵赖。–数字签名的产生必须相对简单。–数字签名的识别和证实必须相对简单。–伪造一个数字签名在计算上是不可行的,无论是通过对已有的数字签名来构造新报文,还是对给定的报文构造一个虚假的数字签名。–保留一个数字签名的备份在存储上是现实可行的。•数字签名的方法:–直接的–需仲裁的1.数字签名•直接数字签名方案实施–涉及通信方——发方和收方–密码方案——非对称密码学–使用前提——收方知道发方的公开密钥–签名实施——可以通过使用发方的私有密钥对整个报文进行加密,或通过使用发方的私有密钥对报文的散列码进行加密来形成。–保密方案——可通过对整个报文和签名进行更进一步的加密来实现,可采用收方的公用密钥(公开加密)或采用双方共享的密钥(常规加密)来进行加密。实施关键–收方应假定发方对私有密钥的完全控制1.数字签名•直接数字签名实施示例E(a)公开密钥加密:鉴别和签名(b)公开密钥加密:保密、鉴别和签名EKRa(M)EKUb[EKRa(M)]KRaKRbKUaKUbDEMEKRa(M)DMEKRa(M)KRaKUaDEMMEKRa[H(M)]MKRa||EM比较HKUaHDEKMDK||HMEKRa[H(M)]EK[M||EKRa[H(M)]]KRaE比较HKUaD(c)散列及公开密钥加密:鉴别和签名(d)散列及公开密钥加密:保密、鉴别和签名1.数字签名•直接数字签名方案弱点方案的有效性依赖于发方私有密钥的安全性。弱点分析–发方若想否认发送过某个报文,则可以声称该私有密钥丢失或被盗用,且伪造了他(她)的签名。–X的私有密钥真的可能在时间T被盗。获得该密钥的人便能发送带有X的签名报文并附上小于等于T的时间戳。1.数字签名•需仲裁的数字签名方案实施每个从X发往收方Y的签名报文首先被送给仲裁者A,仲裁者A对该报文和它的签名进行一系列的测试以检验它的出处和内容。然后对报文注明日期,附上一个已经经过仲裁证实属实的说明后发给Y。A的存在解决了直接签名方案所面临的问题:X可能否认发送过该报文。实施关键所有通信方必须充分信任仲裁机构。1.数字签名•需仲裁的数字签名方案示例(a)常规加密,仲裁能看到报文内容1.X→A:M||EKxa[IDx||H(M)]2.A→Y:EKay[IDx||M||EKxa[IDx||H(M)]||T](b)常规加密,仲裁不能看到报文内容1.X→A:IDX||EKxy[M]||EKxa[IDX||H(EKxy[M])]2.A→Y:EKay[IDX||EKxy[M]||EKxa[IDX||H(EKxy[M])]||T](c)公开密钥加密,仲裁不能看到报文内容1.X→A:IDX||EKRx[IDX||EKUy(EKRx[M])]2.A→Y:EKRa[IDX||EKUy[EKRx[M]]||T]1.数字签名•需仲裁的数字签名方案示例讨论方案(a)和(b)存在的问题1.X必须确信A不会泄露Kxa,也不会产生虚假的签名。(仲裁能和收方结成联盟来伪造发方的签名。)2.Y必须确信A只有在散列码正确且确是X签名的情况下才发送。(仲裁能和发方结成联盟来否认一个签名报文。)3.双方必须确信A能公平地解决争端。(仲裁作用。)方案(c)的优点1.通信前各方没有共享任何信息,可防止结盟欺骗的发生。2.假定KRa是安全的,即使KRx已不安全,日期不对的报文不会被发送。3.从X发给Y的报文内容对A和其他任何人都是保密的。2.鉴别协议•主要涉及内容在报文鉴别的基础上,进行更深层次的通信对象和通信内容有效性的鉴别。–相互鉴别–单向鉴别2.鉴别协议•相互鉴别相互鉴别的必要性–通信对象的确认——通信各方相互证实对方的身份–信息交换的机密性——防止信息的篡改和泄漏–信息交换的时效性——防止报文重放的威胁报文重放威胁的表现–最好情况——一个成功的重放会通过为通信方提供用似是而非的报文而打乱正常的操作。–最差情况——可能允许对手获取会话密钥或成功地假扮为通信的另一方。2.鉴别协议•相互鉴别重放攻击的常用方法示例–简单重放:对手简单地拷贝一个报文并在后来重放。–能被日志记录的重复:对手可以在有效的时间窗口内重放有时间戳的报文。–能被日志记录的重复:对手可以在有效的时间窗口内重放有时间戳的报文。–没有修改的退回重放:这是一种报文返回发方的重放。如果使用常规加密,这种攻击是可能的,并且发方不容易依据内容识别发送过的报文与收到的报文间的不同。2.鉴别协议•相互鉴别对付重放攻击的常用方法–为每个用来鉴别交换的报文分配一个序号,新的报文只有在它的序号满足一种正确的次序时才被接收。这种方法的难点在于它需要通信各方记录已处理的最近一个序号。因为有这种负担,序号一般不用于鉴别和密钥交换。–时间戳:A方接收一个报文,只有当报文包含的时间戳(经A判断后)与A了解的当前时间足够接近,才认为报文是新的。这种方法的难点在于它需要通信各方的时钟保持同步。首先,需要某种协议来维持不同处理机时钟的同步,这个协议还必须是容错的和安全的,即要能对付网络的故障和恶意的攻击。其次,如果暂时失去同步会导致一方的时钟机制出错,那攻击成功的机率将大为增加。最后,因为网络时延的可变性和不可预知性,很难期望分布时钟能保持精确的同步。因此,任何基于时间戳的过程必须申请足够大的时间窗口以适应网络时延,同时又要使时间窗口足够小以使攻击成功的机率最小。–盘问/响应:若A方期望从B接收一个新近的报文,就先要向B发送一个现时报文(nonce)(即盘问),然后要求随后从B接收的报文(即响应)包含正确的现时值。这种方法不大适合面向无连接的应用,因为在任何无连接传输之前它需要有握手的负担,这将在很大程度上丢失无连接传输的主要特征。2.鉴别协议•相互鉴别相互鉴别的常规加密原始方案示意图密钥分配中心(KDC)响应方B发起方A密钥分配步骤鉴别步骤(5)EKs[f(N2)](4)EKs[N2](3)EKb[Ks||IDA](2)EKa[Ks||请求||N1||EKb(Ks,IDA)](1)请求||N12.鉴别协议•相互鉴别相互鉴别的常规加密原始方案过程描述1.A→KDC:IDA||IDB||N12.KDC→A:EKa[Ks||IDB||N1||EKb[Ks||IDA]]3.A→B:EKb[Ks||IDA]4.B→A:EKs[N2]5.A→B:EKs[f(N2)]相互鉴别的常规加密原始方案可能存在的攻击模式–简单地对第3步进行观察、记录并重放,加重通信负担。–假定X是一个对手,已经获得了一个旧的会话密钥,则X可冒充A,使用旧密钥通过简单的重放第3步就可以欺骗B。除非B一直牢记所有与A的会话密钥,否则B无法确定这是一个重放。2.鉴别协议•相互鉴别相互鉴别的常规加密原始方案改进1过程描述1.A→KDC:IDA||IDB2.KDC→A:EKa[Ks||IDB||T||EKb[Ks||IDA||T]]3.A→B:EKb[Ks||IDA||T]4.B→A:EKs[N1]5.A→B:EKs[f(N1)]相互鉴别的常规加密原始方案改进1的防重发机制–增加时间戳T,它能向A和B确保该会话密钥是刚产生的。这样,A和B双方都知道这个密钥分配是一个最新的交换。A和B通过验证下式来证实时效性:|Clock–T|<△t1+△t2其中△t1是估计的KDC时钟与本地时钟(A或B)的正常偏差,△t2是预期的网络时延。每个结点可参照某些标准参考源设置自己的时钟。时间戳T是用主密钥加密的,即使对手获得旧的会话密钥,由于步骤3的重放将会被B检测出不及时而不会成功。2.鉴别协议•相互鉴别相互鉴别的常规加密原始方案改进1存在的危险–分布时钟由于阴谋破坏或同步时钟、同步机制的故障变得不同步。当发方的时钟快于预想的收方时钟时,这个问题就会发生。在这种情况下,对手可截获发自A的报文,当报文中的时间戳变成收方的当前时间时就重放该报文。这种重放可导致不可预料的结果。这样的攻击被称为抑制——重放攻击。相互鉴别的常规加密原始方案改进1的可能改进–加强通信各方定期与KDC时钟的校准。–避免时钟同步的需求,依赖使用现时的握手。(依然会带来其它问题,其原因是因为收方选择的现时对发送方是不可预测的。)2.鉴别协议•相互鉴别相互鉴别的常规加密改进方案1.A→B:IDA||Na2.B→KDC:IDB||Nb||EKb[IDA||Na||Tb]3.KDC→A:EKa[IDB||Na||Ks||Tb]||EKb[IDA||Ks||Tb]||Nb4.A→B:EKb[IDA||Ks||Tb]||EKs[Nb]相互鉴别的常规加密改进方案的优点–信任状的过期时间Tb是相对于B的时钟。这样,这个时间戳不需要同步时钟,因为B只检查自身产生的时间戳。–A和B分别检查各自生成的现时Na和Nb,确保不是重放。–信任状的过期时间Tb的使用使得在有效时间内A又想与B建立新的会话时,双方不必重复多次与鉴别服务器联系的必要。2.鉴别协议•相互鉴别相互鉴别的常规加密改进方案建立新会话的方案1.A→B:EKb[IDA||Ks||Tb],N’a2.B→A:N’b,EKa[N’a]3.A→B:EKa[N’b]建立新会话的方案的安全保障–信任状的过期时间Tb验证报文中的票据没有过期。–新产生的现时N’a和N’b将向每方保证这不是重放攻击。2.鉴别协议•相互鉴别相互鉴别的公开密钥加密原始方案1.A→AS:IDA||IDB2.AS→A:EKRas[IDA||KUa||T]||EKRas[IDB||KUb||T]3.A→B:EKRas[IDA||KUa||T]||EKRas[IDB||KUb||T]||EKUb[EKRa[Ks||T]]相互鉴别的公开密钥加密原始方案特点–中心系统被称为鉴别服务器(AS),因为实际上它并不负责密钥的分配。AS实际上提供公开密钥证书。会话密钥的选择和加密由A完成;因此没有AS泄漏密钥的危险。–时间戳防止危及密钥安全的重放攻击,但需要时钟的同步。2.鉴别协议•相互鉴别相互鉴别的公开密钥加密改进方案11.A→KDC:IDA||IDB2.KDC→A:EKRauth[IDB||KUb]3.A→B:EKUb[Na||IDA]4.B→KDC:IDB||IDA||EKUauth[Na]5.KDC→B:EKRauth[IDA||KUa]||EKUb[EKRauth[Na||Ks||IDB]]6.B→A:EKUa[EKRauth[Na||Ks||IDB]||Nb]7.A→B:EKs[Nb]相互鉴别的公开密钥加密改进方案1特点–使用现时,不需要时钟的同步。–会话密钥由KDC代表B产生。–存在安全漏洞(步骤5)。2.鉴别协议•相互鉴别相互鉴别的公开密钥加密改进方

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功