一、名词解释
TLS
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
记录协议主要负责使用对称密码对消息进行加密;握手协议分为握手协议,密码规格变更协议、警告协议和应用数据协议4个部分
RTT
RTT(Round Trip Time)
:一个tcp连接的往返时间,即数据发送时刻到接收到确认的时刻的差值;
密码套件
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS:指使用的协议是TLS
ECDHE:密钥交换算法
ECDSA:签名或验证算法
AES_128_GCM:对称加密算法。对称密钥加密算法是AES,强度即密钥长度为128位,GCM是工作模式,AES是块密码,也就是对输入的纯文本用固定长度的块来进行加密,加密后的每个块按再顺序发送,最后按类似的方式来进行解密。
SHA256:签名哈希算法
Diffie Hellman 密钥协商算法
使用Diffie Hellman算法进行TLS密钥交换具有优势。客户端和服务器都为每个新会话生成一个新密钥对。一旦计算出预主密钥,将立即删除客户端和服务器的私钥。这意味着私钥永远不会被窃取,确保完美的前向保密。
如果使用RSA,则客户端将如上所述通过其自己计算预主密钥,使用服务器的公钥(RSA公钥)对其进行加密,并通过客户端密钥交换消息将其发送回服务器。然后,服务器可以使用其私钥解密它。
二、TLS 握手原理:
Client Hello
1.1、Client Hello 报文:客户端对加密算法的支持度不同,因此需要向服务端发送客户端支持的 加密套件(Cipher Suite) ,同时还要