HTTPS协议

HTTPS(HyperText Transfer Protocol Secure)超文本传输安全协议,数据通信仍然是HTTP,但利用SSL/TLS加密数据包。

HTTPS其实就是将HTTP的数据包再通过SSL/TLS加密后传输

对称加密 :
即信息的发送方和接收方使用同一个密钥去加密和解密数据
其加密过程如下:明文 + 加密算法 + 私钥=> 密文
解密过程如下: 密文 + 解密算法 + 私钥 => 明文
对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。

非对称加密:
非对称加密有两个密钥,一个是公钥,另一个是私钥。一般来说,公钥用来加密,这时密文只能用私钥才能解开。
被公钥加密过的密文只能被私钥解密,过程如下:
明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文
被私钥加密过的密文只能被公钥解密,过程如下:
明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文

HTTP通信过程

HTTPS协议 = HTTP协议 + SSL/TLS协议,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,需要用HTTP对加密后的数据进行传输,由此可以看出HTTPS是由HTTP和SSL/TLS一起合作完成的。

总的来说:对数据进行对称加密,对称加密所要使用的密钥通过非对称加密传输。
(小明:客户端)
1.小明第一次发起请求https:www.baidu.com --->服务端会连接到443端口

2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。

3.服务器将自己公钥发给小明

4.小明收到证书,证书正常,确定是服务端的公钥,此时,生成一个随机值,key 这个随机值key是对称加密的密钥,然后用服务器的公钥对小明的密钥key进行非对称加密,这样小明的密钥就成密文了,只有服务器的私钥可以解,至此HTTPS中的第一次HTTP请求结束。

5.小明第二次请求服务端,将加密的密钥key发给服务端

6.服务端收到了用自己公钥加密的密文 用非对称方法把私钥解开了,那私钥就是明文了 。也就是对称方法加密的密钥拿到啦,最后把小明请求的数据用传过来的密钥加密

7.服务端把数据加密后在传给小明

8.小明收到了传来的加密数据,然后用随机生成的key解密成铭文
这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。

public key公钥
Private key私钥

确认身份 —— 数字证书

服务端---->公钥和个人信息用用Hash算法---->消息摘要----> CA用它的私钥对消息摘要加密 ---->数字签名

客户端的拿到数字签名 ----> 用同样的Hash 算法, 再次生成消息摘要,两个相对比就知道有没有篡改了,就拿到服务端的公钥啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容