Page 237 - 《软件学报》2021年第9期
P. 237

陆思奇  等:强安全模型下 TLS1.3 协议的形式化分析与优化                                                 2861


         3.1   优化协议的结构
             从 ServerConfiguration 的有效使用期限可以看出,客户端需要频繁地缓存半静态公钥.这对于握手协议的
         效率来说造成了一定的影响,并且也无法从根本上解决 0-RTT 数据的安全性问题.关于 0-RTT 数据的安全性问
         题,根据第 2 节中形式化分析的结果,主要包括没有 PFS 安全和无法抵抗 KCI 攻击.本文基于 1-RTT semi-static
         模式设计了一种新的支持 0-RTT 数据的协议,该协议可以有效抵抗 KCI 攻击,提高了 0-RTT 数据的安全性.协议
         的消息交互过程如图 12 所示,由图可见:相比原协议传输,优化后的协议在原 Early Data 消息的基础上,添加了客
         户端对 Early Data 和时间戳的签名.

                                 chello,ceks,{Sig
                                           sk(c) (Hash(Early Data),TimeStamp),Early Data}
                              ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→
                                                                        eadk
                                                  sfk (chello,ceks,shello,seks,ssks)}
                                    shello,seks,{ssks,MAC
                                 ←⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯                              Server
                                                                      htk
                         Client
                                 Fig.12    Handshake process of the optimized protocol
                                          图 12   优化协议的握手流程
             服务器在收到客户端的第 1 条消息后,首先计算出 eadk 对 0-RTT 数据进行解密,然后使用客户端的公钥对
         其中的签名进行解密,解密后对时间戳进行验证.此外,将时间戳 TimeStamp 放在签名中,同样防止了敌手对时间
         戳的篡改,从而排除重放攻击的可能,再与 Early Data 的 Hash 值进行对比:如果二者不匹配,则认为这不是一个合
         法的客户端发送的 0-RTT 数据,服务器应该选择立即丢弃这个数据.
         3.2   优化协议的安全性证明
             本文采用了 CK 模型对上述优化协议进行分析,该模型在可信的计算环境下能够简化协议的设计,使协议
         更加具有普遍性和实用性.
             使用基于 game 的方法对优化协议的安全性进行分析,证明在签名算法的安全性和 Gap-DH 问题的复杂性
         以及密钥导出函数的安全性的前提下,该协议能够抵抗 KCI 攻击.证明过程注意以下两点.
             (1)  session-key query 查询的密钥为 Early Data 的密钥 eadk,而不是 Application Data 的密钥 atk;
             (2)  定义匹配的会话为(chello,ssks)相等的会话(只针对 eadk,不针对 atk).
             定理 1.  在假设服务器证书机制的安全性、求解 Gap-DH 的困难性、密钥导出函数的安全性、客户端签名
         机制的安全性的前提下,优化协议能够抵抗 KCI 攻击.
             •   正确性
                                                                                  s
             假设一个诚实的协议参与者拥有抗重放机制来产生 chello,那么 chello 唯一识别 ceks=g .也就是说,对于一
         对匹配的会话,协议双方的 chello,ceks,ssks 都相同,因此计算出相同的 eadk.
             •   安全性
             接下来定义一系列 Game.
             (1)  Game 0:优化协议的真实执行过程;
                                                                                          *
                                                                                                s
             (2)  Game 1:服务器证书不可伪造.游戏规则与 Game 0 相同,在该游戏中,攻击者使用随机值 ssks 代替 g ,
                 因为签名或者其他任何用于认证 ssks 的方案是安全的,因此攻击者无法赢得 Game 1.也就是说,攻击
                 者不能随意伪造服务器的证书;
             (3)  Game 2:eadk 的安全性.该游戏发生在 s 被泄露之前,游戏规则与 Game 0 相同,但是攻击者不能使用
                                                      xs
                                                                                xs
                                                                      xs
                 party corruption 查询.在该游戏中,攻击者查询 g ,或者从随机值和 g 中区分出 g .根据 Gap-DH 困难
                                                          xs
                                  s
                                x
                 性假设:在给出 g,g ,g 和 DDH 查询的前提下,计算 g 是困难的.即,攻击者赢得 Game 2 的概率等同于
                 求解 Gap-DH 难题;
             (4)  Game 3:eadk 的安全性.该游戏发生在 s 被泄露之前,游戏规则与 Game 0 相同,但是攻击者不能使用
                                                                                            *
                 party corruption 查询.在该游戏中,攻击者在一个会话完成后,用随机值代替另一个会话的 eadk .因为
   232   233   234   235   236   237   238   239   240   241   242