HTTPS原理

HTTPS原理
客户端发起 http 请求到 server 返回数据,这中间的所有节点都有被拦截的风险,数据一旦泄露就危险了。如上图
HTTPS原理
数据泄露了怎么办?我说黑话就行了,让代理服务器看不懂,而服务器能看懂。如上图
客户端存储着加密算法(对称加密),服务端存储着解密算法,则代理服务器可以从浏览器中获得加密算法
1、代理服务器可以通过加密算法推出解密算法,数据加密有个卵用
2、即使不解密数据,代理服务器也可以伪造请求发给服务器
因此不安全。
HTTPS原理
为加密加盐,服务器使用这个盐可以解密数据。
但是这个盐如何安全的传递而不被代理服务器知道呢?
HTTPS原理
尝试使用非对称加密解决这个问题:
客户端使用 Server公钥 对盐加密后发送给服务器,代理服务器因没有Server私钥而无法解密得到盐(如上图)
【1】服务器存私钥,客户端浏览器存公钥(公钥是由私钥生成的)
【2】客户端公钥加密数据包发送给服务端,服务端能够使用私钥解密
【3】服务端私钥加密数据包发送给客户端,客户端能够使用公钥解密

客户端如何拿到公钥呢?与服务器握手时由服务器下发

代理服务器能拦截公钥。
【1】客户端公钥加密数据包发送给服务端,代理服务器只有公钥无法解密(能够伪造请求但不影响安全)
【2】服务端私钥加密数据包发送给客户端,代理服务器能使用公钥解密数据包(无关紧要,就是让人看的)且无法伪造返回的数据
【3】如果代理服务器存储着一对假私钥假公钥,服务器下发公钥的时候,代理服务器拦截将假公钥下发给客户端,客户端给服务器发送盐的时候就不安全了。
HTTPS原理
如何保证Server下发公钥的真实性呢?如上图(第三方就是 CA)
下图是整个请求流程:
HTTPS原理


对称加密与非对称加密

对称加密:同一个密钥可以同时用作信息的加密和解密,也叫单密钥加密。

非对称加密:

  • 明文》通过公钥加密》密文》通过私钥解密(公钥无法解密)》明文
  • 明文》通过私钥加密》密文》通过公钥解密》明文

HTTPS的作用

1、数据防篡改
2、防钓鱼网站

HTTPS原理

上一篇:https://www.cnblogs.com/zhaoshujie/p/9594734.html


下一篇:Fastjson处理枚举