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

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


             (1)  客户端 C 与服务器 S 正常通信,C 使用自己的私钥和 S 中的长期公钥计算出密钥 eadk,用 eadk 加密在
                 第 1 条消息中发送的 Early Data.此外,C 还需要向 S 发送自己的公钥;
             (2)  攻击者 A 截获 C 向 S 发送的 C 的公钥以及加密后的 Early Data 密文;
             (3)  A 使用 C 的公钥和通过腐化参与者获取的 S 的长期私钥计算出密钥 eadk;
             (4)  A 使用 eadk 解密 Early Data,获得明文.
             图 7 中的攻击路径描述的是 1-RTT semi-static 模式下 KCI 攻击的流程.攻击者在扮演客户端的角色 Bob(C)
         向扮演服务器的角色 Alice(S)发送消息 M7(即 Bob 的公钥)时将其截获,再通过 CK 模型腐化 Alice 获得 Alice
         的长期私钥,从而计算出密钥 eadk.此时,攻击者可以自己伪造一个新的 Early Data,用 eadk 加密发送给 Alice,则
         Alice 会将这条伪造的消息当作是 Bob 发送的 Early Data,并继续进行之后正常的协议流程.这样,攻击者就能够
         成功冒充 Bob 向 Alice 发送消息.
             具体攻击描述如下.
             (1)  客户端 C 与服务器 S 正常通信,C 使用自己的私钥和 S 中的长期公钥计算出密钥 eadk,用 eadk 加密在
                 第 1 条消息中发送的 Early Data.此外,C 还需要向 S 发送自己的公钥;
             (2)  攻击者 A 截获 C 向 S 发送的 C 的公钥;
             (3)  A 使用 C 的公钥和通过通过腐化参与者获取的 S 的长期私钥计算出密钥 eadk;
             (4)  A 可以任意伪造 Early Data,使用 eadk 加密发送给 S,S 则会认为这条消息来自于 C.
             综上所述,根据 Scyther 分析的结果,1-RTT semi-static 模式下的 0-RTT 数据存在如下漏洞.
             (1)  0-RTT 数据没有 PFS 安全;
             (2)  无法抵抗 KCI 攻击,即:如果服务器的长期私钥被攻击者窃取了,则攻击者可以伪装成任意客户端向
                 服务器发送任意伪造的 Early Data.当然,攻击者拥有服务器的长期私钥,模拟服务器与客户端通信也
                 是平凡的;
             (3)  0-RTT 中的数据能够被跨连接重放.
         2.3.2    PSK 模式
             如表 2 所示,在 PSK 模式中,所有的密钥都由一个预共享密钥 psk 导出.因此,在用 SPDL 语言描述时,将 psk
         定义为 const 常量,表示敌手有获取它的能力.点击“Verify automatic claims”进行自动验证,得到如图 8 所示结果.


























                                        Fig.8    Attack paths of PSK mode
                                          图 8   PSK 模式的攻击路径
   228   229   230   231   232   233   234   235   236   237   238