HTTPS加密过程详解

大多数大学生对于 408 之一的计算机网络的基础是很薄弱的,要想在面试中脱颖而出,那么基础必须要打好,因此本文来详细分析以下 HTTPS 的加密过程,用图文结合的方式,让你加强记忆。

题目

HTTPS 的加密过程了解吗?

推荐解析

为什么要用 HTTPS ?

安全性

http 是一个简单的请求-响应协议,特点是无状态和明文传输、而https,实际上是 http 加上 SSL / TLS 协议组合形成的一种加密传输协议。

如果网站采用 http 协议,因为该协议不加密,极容易遭遇中间人攻击,用户的个人隐私和一些敏感数据很容易泄露。

https 则因为 ssl 协议的存在,会对网站与客户端之前传输的数据进行加密,增加中间人破解成本,但是 HTTPS 不是一定安全的。

举个例子:你主动去点击中间人服务器的不安全证书,用户接受了中间人的伪造的证书,那么 CA 就无用了,中间人可以伪造服务端发送的公钥,从而让截取信息。

图片[1]-HTTPS加密过程详解-编程社

响应速度

HTTP的响应速度更快,HTTP需要三次握手,而HTTPS还要加上SSL / TLS的握手时间,明显增加了不少。

端口

HTTP 是 80 端口,而 HTTPS 是 443 端口。

HTTPS 的核心 – SSL / TLS 协议

SSL 指安全套接字协议( Secure Sockets Layer ),首次发布与 1996 年。经过漏洞修复、版本更新,SSL 从 3.0 版本才算正式发布,前两个版本漏洞过多,SSL 3.0 升级后变成 TLS 1.0,通常把 HTTPS 中的核心加密协议混称为 SSL/TLS。

SSL / TLS 的工作原理

SSL/TLS 的核心要素是非对称加密。非对称加密采用两个密钥,一个公钥,一个私钥。

公钥:加密、认证。

私钥:解密,签名。

非对称加密小总结:

1)适合在不可信的环境中安全通信,数据传输。

2)算法复杂,安全性相对于对称加密更高。

3)由于加密速度较慢,不适合大数据量加密和解密,因此后文的 HTTPS 一次非对称加密和多次对称加密的原因由此而来。

常见的非对称加密算法:

1)RSA

使用场景:简单易用,用于数据加密和数字签名,应用最广泛的非对称加密算法。

缺点:运算速度慢,不适合大数据量加密

建议用 2048 位或以上的密钥长度,否则破解可能性较大。

2)DSA

使用场景:适合生成数字证书

优点:数字签名速度生成快

缺点:不能应该能有数据加密,而且签名过程需要随机数的保证。

3)ECC

常见的对称加密算法:

1)DES

使用 64 位的密钥(有效密钥为 56 位,8 位奇偶校验位)和 64 位的明文进行加密,安全性不够,在短时间内即可被破解。

2)3DES

向 AES 过渡的加密算法,采用加密->解密->加密的方法,当三个密钥均相同,即可实现一次加密,目的是为了兼容 DES,安全性提升,但处理速度不高,因此有了后面的 AES。

3)AES

全称:Advanced Encryption Standard 先进的对称加密算法。使用 128 位、192 位、256 位的密钥对数据进行加密或解密,安全性更高。AES 在速度上比 3DES 快,安全性也领先 3DES。

HTTPS 的加密过程(重点)

1)Client Hello:信息包括:TLS 版本,加密套件,Client 随机数

2)Server Hello:收到 Client Hello,告知 Client 确认 TLS 版本,加密套件,随机数的信息(可以理解为 ACK 模式),然后将自己的 Server 随机数发给 Client,接着发送自己的证书给 Client,证书发送了,而证书里面有公钥,因此公钥也被携带给了 Client。

3)Client 收到证书后,去对照自己的证书信任列表来确认服务器是否可信,并生成一个随机字符串(称为预主密钥),并用收到公钥将其进行加密,将加密后的预主密钥发送给服务器。

4)Server 收到预主密钥后,用自己的私钥(跟公钥是一对,当时和证书一起发送给了客户端,私钥服务端自己留着用于解密)解密预主密钥,获取真正的预主密钥。

5)Client 和 Server 双方使用相同的算法进行通信,双方此时都获得了 Client 随机数、Server 随机数、预主密钥,生成相同的密钥 Key 用于后面通信的对称加密。

6)Client 发送 Finished 消息

7)Server 发送 Finshed 消息

8)成功建立安全连接,使用共同的 Key 对称加密进行通信。

总结:1 次非对称加密,多次对称加密用来通信,正好符合两种算法的使用场景。

举个例子:看浏览器左上的小锁,点连接安全。

图片[2]-HTTPS加密过程详解-编程社

详细流程图展示:

图片[3]-HTTPS加密过程详解-编程社
© 版权声明
THE END
喜欢就支持一下吧
点赞76赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容