当前位置 博文首页 > zmrlinux:《A Graduate Coursse in Applied Cryptography》Chap

    zmrlinux:《A Graduate Coursse in Applied Cryptography》Chap

    作者:[db:作者] 时间:2021-09-10 16:38

    原文教材 与 参考资料:

    ? ? ? ? Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].

    ? ? ? ? 该书项目地址(可以免费获取):http://toc.cryptobook.us/

    ? ? ? ? 博客为对该书的学习笔记,并非原创知识,帮助理解,整理思路,将书上的知识点用自己的语言组织起来也是一种学习方法, 就是比较耗时间。

    21.3 Perfect forward secrecy and a protocol based on ephemeral encryption

    基于临时加密协议的完美前向安全协议

    ? ? ? ?前向安全 perfect forward secrecy (PFS),即使参与者的长期密钥丢失或者被盗用,那么在被盗用密钥之前所产生的所有会话密钥都安全的。对于AKE1协议而言,就不是一个前向安全的协议,因为如果长期密钥丢失那么之前所有包含会话秘钥c的密文都会被敌手解密,就会丢失所有的前向会话密钥。

    为解决上述问题,该书中描述的一种方法是利用一个CCA的加密方案应用在每一次的协议运行中,这将使得每次的会话密钥是由一个公钥加密方案来保证在信道上的安全性,而不是用传统的对称加密方式,这样即使丢失了解密的私钥,由于每次会话都会运行这个CCA公钥加密方案,显然公钥加密方案是概率性的那么每次都能产生新的临时密钥对,协议描述如下:

    ? ? ? ? ? ? ? ? ??

    需要注意的是,签名的私钥此时还是由参与者自己秘密保存的,如果这个签名丢失,那么任何的都可以假装P的身份与其他人通信,因为pk可以自己生成,CertP和P的签名公钥是公开的,所以不讨论签名秘钥丢失的情况,即使现在签名秘钥丢失也不会影响先前的会话秘钥k的安全,因为k是每次用概率的临时公私钥对保护的。

    Forward secrecy:在这个协议中,长期私钥仅仅用来签名,并不进行解密,所以如上文所述,这里一定是满足PFS的。

    Choice of encryption scheme: 这里使用RSA或者EIgama方案均可。

    Erasing ephemeral data: 这类协议必须能够保证安全的擦除临时信息,如果在协议的一次执行周期中,临时信息例如单次的公私钥对被泄露,那么亦可以导致此次的会话密钥泄露。

    AKE2的不安全因素,使用SS安全的对称加密方案:假设仅仅使用语义安全的对称加密方案,那么意味着密文具有延展性,那么敌手将有机会对监听到底密文c进行修改,然后将和这个信息发送给参与者,参与者如果接受了这个密文并进行了解密,那么敌手往往可以发动一个related key attack攻击。

    21.4 HSM security

    到目前为止,AKE1方案只满足static security, 为了达到PFS,将AKE1中解密密钥换成了签名密钥,这保证了敌手只能签名不能解密,实现了PFS。但是,如果签名密钥丢失或者被盗用,亦会产生一个新的安全问题,敌手可以任意的以丢失密钥的参与者名义与其他参与者进行交互。

    为了实现上述安全性,有个方法使用用一个硬件来存储用户的长期私钥,然后将整个模块定义成一个安全模块Hardware Security Module,所有人智能以一个谕言机的形式对其进行访问,其计算过程将是被协议定义好的。敌手也是可以访问到HSM的,但是不能从中提取出LTSsp,用户的长期私钥,HSM由一个特殊的硬件实现。

    HSM 安全:

    ? ? ? ? ? ?这种安全是由前提的,例如在P和Q的交互中,会话密钥只有在一下的情况下才会被攻击:

    ? ? ? (1). P是一个被腐败的参与者。

    ? ? ? (2). P是一个诚实的参与者,但是LTSp被盗用在过去的某个时间点。

    ? ? ? (3). P是一个诚实的参与者,但是敌手能够在P的一次密钥协商中访问HSM,重要的是,其他与P交互的实例数量是小于P总共访问HSM数量的。(意味着,敌手已经大量的访问了HSM,可能学习到了相关信息)

    条件1对应的是静态安全,敌手不能盗用私钥信息只能控制参与方P与之交互。条件1-2对应的是前向安全,如果两个条件同时成立,那么就是前向安全的定义。条件1-3同时成立对应的是HSM敌手,并且对敌手的访问时间和次数进行了限制。

    HSM安全对敌手的访问是有限制和次数的,并且我们应该将HSM访问作为一个无状态的签名谕言机来使用,将其作为一个独立的组件来使用,为此设计协议AKE3,将CCA加密换成了SS安全加密,并增加了一轮的交互。(我们回忆一下为什么AKE2必须使用CCA安全的加密方案?因为Q在发送完最后一条消息后默认P收到了,所以Q很有可能会用自认为协商好的k1进行加密并发送一个密文m1,但是最后一条消息被敌手截获并修改了密文c得到了c`发送给了P,如果P无法检测其有效性,必然会使用敌手给与的k`进行通信,向Q发送加密消息m2,此时敌手可发动相关密钥攻击。但是如果Q能够确认P确实收到了真正的密文c,那么上述攻击就不会发生,所以说此处增加一轮通信可以将CCA要求换成SS安全。

    Ensuring HSM security: HSM安全要求两房参与者P和Q必须能够对等的对随机挑战进行签名,HSM必须在协议执行过程中直接的或者间接的被访问与调用。这是实现HSM安全的基本要求,并且HSM协议必须是三轮交互的。

    Choice of encryption scheme: 这里不要求加密协议(加密k的协议)是CCA的,原因上文高亮部分已经进行了讨论。

    21.4.1 A techincal requirement: strongly unpredictable ciphertexts

    对于我们在协议中选用的加密方案,有一个非标准的但是合理的要求,要求该算法在给定公钥时,无法猜测其密文输出(公钥可能是敌手或者是诚实者提供的)称作“strongly unpredictable ciphertexts”。一般公钥加密都是满足这个要求的,我觉得可以理解为完美保密概念的延伸。

    21.4.2 Insercure variations

    AKE3 方案的变体及其不安全的地方

    Variation 1: 在消息1中不对c进行签名

    不安全因素:敌手会劫取这条消息1,并加密新的会话密钥sk得到密文c,将密文c发送给参与方P,此后敌手继续劫取消息与P进行交互,此后P将会获取敌手提供的密钥,从而被敌手窃取信息。

    Variation 2: 在消息1中不对idP进行签名

    不安全因素:不对身份绑定的直接后果很可能导致身份的错误认定, 敌手在这种情况下可以发起一个中间人攻击, 敌手收到P的第一条消息, 并修改身份为R发送给参与者Q, Q 以为自己是和R在通信,按照既定的规则将信息发送给P,因为没有对IDP进行签名,Q不知P,P也不知道Q的身份。最终敌手接收到P的信息,并进一步将信息修改后发送给Q完成协议,敌手获取了全部的信息,Q和P互相错误认定身份。

    Variation 3: 在消息2不对pk进行签名

    不安全因素: 不对PK进行签名,直觉上还是会发生关于身份的问题,原理很简单一般公钥都是与ID进行绑定的,如果向对应的PK进行签名,敌手往往可以自己重新做一个消息发送给接受方。在此处,敌手可以伪造一个PK`连同P的证书发送给Q,敌手将收到Q的第一条消息,并重产生第一条消息的签名,发送给P。此时敌手相当于对于P而言完全伪造了Q的角色,P会使用自己的密钥对c进行解密(即使是CCA的加密方案,往往是可以解密成功的,即使解出来的内容并没有太大的意义,是一个错误的密钥)。最后P发送一个签名2给Q,P和Q认为自己的交互过程结束,但是实际上P并没有得到一个正确的会话秘钥,Q得到了一个敌手的密钥。

    Variation 4:在消息2中,不对密文c进行签名

    不安全因素:直觉上,不对c进行签名直接的结果就是Q无法确定P是不是对自己计算出来的正确结果进行的解密,如果P解密的是一个其他的密文,那么必将得不到一个正确的信息。假设敌手此处是能够访问P的HSM的,那么敌手将能在某个时刻获得P的临时信息,那么敌手可以访问HSM来获得一个合法的签名,并且可以在任何时刻发送该签名给其他参与者,因为这个签名不对c进行签名,那么则任何时候都可以用这个非法的签名,可以危害到后续多个交互过程。敌手只需要装作P与Q进行交互,最后将获得的有效但是非法的签名发送Q安全终止协议即可。

    Variation 5:在消息2中没有对idQ进行签名

    不安全因素:消息2不对IdQ 进行签名直接导致的结果是P这条消息2并不会不知道会发送给谁,即使他认为是发送给Q的,但是也可能会是发送给其他人的。敌手在这里继续扮演中间人,因为P在收到信息之前并不知道是与谁在通信,所以敌手将Q的信息进行改造,用一个新的身份R对于密文c进行改造,P收到后认为是在和Q交互并将签名信息发送给敌手,敌手转发给Q,最终是敌手在和Q通信。

    Variation 6:不对消息编号1、2进行签名

    不安全因素:当两个参与方P和Q是一个身份具备同一个CA时,如果没有消息编号就不会是安全的。

    ? ?

    cs