Page 228 - 《软件学报》2021年第9期
P. 228
2852 Journal of Software 软件学报 Vol.32, No.9, September 2021
x
xy
y
CDH 问题.即:输入 g,g ,g 和一个解决了 DDH 问题的 PPT 算法,输出 g .
2 TLS1.3 协议的形式化分析
2.1 TLS握手协议
绝大多数的安全协议都采用了“认证密钥协商+对称加密传输”的结构,TLS 也是如此.因此,TLS 的主体就
是使用对称加密传输信息的记录协议,以及为记录协议生成双方共享密钥的握手协议.除此之外,TLS 还有两个
比较简单的辅助协议:用来报错和安全断连的警告协议和用来通知对方从握手协议切换到记录协议的更改密
码规范协议.其中,后者因为作用不大,已经在 TLS1.3 草案中被删除.以上的 4 个协议构成了图 1 的 TLS 协议分
层框架.以 TCP 为例,记录协议在 TCP 流上提供分包,其他协议都封装在记录协议的包里,然后在 TCP 层传输.
更改密码规范协议
应用层 应用数据 握手协议 (TLS1.3删除) 警告协议
TLS 记录协议
TCP TCP
IP IP
Fig.1 TLS protocol stack
图 1 TLS 协议栈
在 TLS 的协议栈中,握手协议是最关键的部分,也是 TLS1.3 主要修改的部分.因此,本文针对 TLS1.3 的分析
主要是对 TLS1.3 握手协议的分析.对于 TLS1.3 握手协议的细节,后面将在第 2.3 节中进行详细的介绍,这里只
对基本的 TLS 握手协议流程进行描述.
建立 TCP 连接之后,开始进入 TLS 的握手阶段.在这个阶段,客户端和服务器交换参数并进行密钥协商,传
统的握手协议流程如图 2 所示(图中白底框表示可选的消息,或者在某些情况可能会发送的消息).
Client Server
ClientHello
ServerHello
Certificate
ServerKeyExchange
CertificateRequest
ServerHelloDone
Certificate
ClientKeyExchange
CertificateVerify
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
Application data Application data
Fig.2 Basic handshake protocol flow
图 2 基本握手协议流程
2.2 1-RTT握手和0-RTT数据
TLS1.3 在 TLS1.2 的基础上做了许多重大改进,比如在记录协议层禁用 AEAD 之外的其他算法、在握手协
议层去除静态 RSA 和 DH 密钥协商以及去除更改密码规范协议等等.上述这些改进的目的同之前 TLS 的升级
一样,都是为了增强 TLS 的安全性.除此之外,IETF 还考虑了一个更现实的问题,那就是提升协议的运行速度.在
互联网普及的今天,Web 服务的成功与否与网页加载速度的快慢有着密切联系,Amazon 公司曾在实验中发现: