HTTPS说明
HTTPS和HTTP一样都是应用层的传输协议,不同的是HTTP传输的内容是按照文本的方式以明文传输的,可以被第三者轻易擦看和获取,HTTPS是在HTTP的基础上对传输的内容进行了加密,防止内容泄漏或者被篡改。
加密和解密
加密就是将协议传输的内容按照指定的方式进行转换,生成密文。
解密就是将协议传输过来的密文,通过指定的方式转换成明文。
在加密和解密的过程中,一般需要一种或者多个中间转换的数据,来辅助这过程的正常进行,这种数据被叫做密钥。
其作用就是为了防止他人获取其中的明文,造成隐患。
举例:
小明和小红聊天,小明想对小红说 我爱你,小明不想让的别人知道于是用密钥将明文加密成密文发送给小红,小红收到后又用密钥将密文解密成明文,于是小红就明白了小明的意思。
加密的方式 对称加密
和不对称加密
总结
- 客户端向服务端打招呼(
Cloet Hello
),将自己支持的TLS
加密套件发给服务端,同时还生成第一个随机数
(第一随机数数) - 接下来服务端向客户端打招呼(
Server Hello
),将自己支持的TLS
版本和加密套件发给客户端,同时生成第二个随机数
(第二随机数数) - 服务端在将证书和公钥发送给客户端,客户在生成第三个随机数
预主密钥
(第三组随机数),此时客户端不会马上将生成的预主密钥
发送出去 - 客户端在将生成的
预组密钥
用公钥
加密后发送给服务端,服务端收到加密后的预主密钥
,用自己的私钥
解密就得到了第三组随机数预主密钥了
- 服务端和客户端都用刚才生成的
预主密钥
+第一组随机数
+第二组随机数
生成会话密钥
- 最后客户端和服务端都使用相同的
会话密钥
对内容进行加密,会话密钥
只应用在当前会话,提高了安全性 - 开始的加密获取随机数那些是
不对称加密
,消耗资源非常大,但生成会话密钥以后就变成了对称加密
,提高性能