*注意图中蓝色文字
2021.2.3 请忽略蓝色文字,如果公钥被机构的私钥加密了,那对于自签名的https公钥怎么办呢;所以服务器公钥肯定直接传,而数字签名是用CA私钥加密过的;自签名的数字签名,浏览器用CA的公钥解密error,发出警告,但如果用户忽略,则拿着公钥继续https
https://segmentfault.com/a/1190000018992153
摘要:
我们对每个客户端应用不同的对称加密秘钥,那么这个秘钥客户端或者服务端是如何知道的呢,只能是在一端生成一个秘钥,然后通过HTTP传输给另一端:那么这个传输秘钥的过程,又如何保证加密?如果被中间人拦截,秘钥也会被获取。——诞生了非对称加密
公钥被掉包,是因为客户端无法分辨传回公钥的到底是中间人,还是服务器,这也是密码学中的身份验证问题。——诞生了第三方机构
第三方认证机构是一个开放的平台,我们可以去申请,中间人也可以去申请呀:——诞生了数字签名
假如中间人拦截后把服务器的公钥替换为自己的公钥,因为数字签名的存在,会导致客户端验证签名不匹配,这样就防止了中间人替换公钥的问题。
第三方机构为返回公钥的合法性做背书
数字签名为返回公钥是否是服务端域名的而不是黑客在同样机构申请的域名 做背书
非对称加密给客户端生成的对称加密㊙️钥(该秘药作为后续http请求加密对称秘药)做背书
中间人即使拦截或破解了公钥,也没办法篡改报文
1)客户端-服务端;客户端公钥加密,中间人无法解密公钥加密的对称密钥或其它,无法篡改,中间人也不知道报文革史,也无法自行构造伪造报文
2)服务端-客户端;服务端私钥加密,中间人用公钥解密,但无法再次加密传给客户端,即无法伪造返回报文
看图学HTTPS-了解HTTPS的工作流程
https://www.kuacg.com/22672.html
也许,这样理解 HTTPS 更容易
https://mp.weixin.qq.com/s/KJn4FVPa2yFIW-OvB0tMXw