HTTPS详细解析、TLS四次握手

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

发送端:在数据传输过程中,为了保证数据的完整性和安全性,发送端采取了以下步骤。首先,利用商定的随机数和摘要算法计算明文的MAC(消息认证码)。摘要算法可以是MD5、SHA1、SHA256等。然后,使用商定的加密算法对明文进行加密,得到密文。常见的加密方法有对称加密和非对称加密。对称加密算法如RC4、DES、3DES、AES,适用于传输大量内容但安全性要求不高的情况。非对称加密算法如RSA、Elgamal、椭圆曲线加密算法,适用于加密高安全性内容。接下来,使用私钥对MAC码进行加密,生成数字签名,确保消息的不可否认性。最后,将密文和数字签名拼接在一起,发送给接收端。

接收端:在接收数据时,接收端执行以下步骤。首先,拆分接收到的消息,得到密文和数字签名。然后,使用商定的加密算法和密钥对密文进行解密,得到明文。接着,使用发送端的公钥对数字签名进行解密,得到MAC码。再利用商定的随机数和摘要算法计算明文的MAC码,并与接收到的MAC进行比较。如果两个MAC值相等,说明接收到了正确的明文;如果不相等,则重新请求数据。

二、TLS握手协议和记录协议

2.1 握手协议

以TLS1.2为例,TLS握手协议包括四次握手的详细流程(括号内为可选内容):

第一次握手:客户端向服务器发送Client Hello消息,明文传输。消息包括客户端支持的协议版本、加密套件、压缩算法、客户端生成的随机数R1等。加密套件是认证算法、密钥交换算法、对称加密算法和信息摘要算法的组合。随机数R1在后续密钥生成中使用。

第二次握手:服务器响应客户端的Client Hello,发送Server Hello消息,明文传输。消息包括确认使用的协议版本、服务器生成的随机数R2、确认使用的加密套件和压缩方法。服务器还会发送自己的公钥证书。

第三次握手:客户端将PreMaster Key发送给服务器,明文传输。服务器使用私钥解密得到PreMaster Key。然后,双方使用相同的算法和随机数生成一个密钥,用于握手结束后的数据传输加密。

第四次握手:服务器通知客户端后续消息都会使用协商好的密钥进行加密。服务器发送加密的握手数据信息给客户端,用来验证协商的密钥是否一致。

TLS握手过程相对复杂,消耗资源较多。为了提高HTTPS连接的速度,TLS协议引入了两种缓存机制:session ID和session ticket。其中session ID是标准字段,服务器保存协商的通讯信息;session ticket是扩展字段,服务器将加密后的通讯信息发送给客户端保存,占用较少服务器资源。

2.2 记录协议

TLS记录协议用于在客户端和服务器发送交互消息时进行消息压缩、加密和认证。根据RFC5246规定,记录协议将消息分割成片段,每个片段不超过2^14字节。每个片段使用协商好的压缩算法进行压缩,并计算MAC值。然后,使用协商好的对称加密算法和密钥对压缩片段进行加密,生成密文。最后,添加报头信息,包括数据类型、协议版本号和压缩后长度,将报文数据传送给TCP层进行发送。

三、SSL/TLS的安全威胁

尽管SSL/TLS协议看似强大,但并非绝对安全。多年来,关于SSL/TLS协议安全问题的研究论文不断涌现。这些研究揭示了许多可利用的漏洞,主要分为以下三类:

  1. SSL/TLS协议设计不足:这类漏洞源自协议本身的问题。例如,在消息分块加密阶段,协议未对填充内容进行检验,导致Lucky Thirteen攻击、POODLE攻击、Bleichenbacher攻击、DROWN攻击等漏洞的出现。协议仍然支持一些已被证实不安全的算法,如RC4、3DES和MD5。

  2. SSL/TLS协议实现漏洞:这类漏洞源自配置SSL/TLS时未严格按照协议要求进行的错误配置。常见的漏洞包括三次握手攻击、SLOTH攻击、降级攻击、Heartbleed、Freak攻击等。

  3. 证书相关问题:这类漏洞主要涉及SSL/TLS所依赖的PKI体系。最常见的攻击方式是伪造证书实施中间人攻击。此外,X509证书的复杂解释过程也存在问题。

赞(0)