读懂https
从业以来陆陆续续看过不少关于https的解析,都是似懂非懂,偶然从公众号上看到程序员鱼皮发布的公众号推文,这一次理解了,并且记录一下。
1.对称加密
首先说下对称加密的概念:对称加密就是同一个密钥可以同时用作信息的加密和解密,也称为单密钥加密
https发展最初使用对称加密,对称加密,打个比方就像土匪的黑话,“么哈么哈”,“正晌午说话,谁还没有家?”,意思就是“哪个山头的?”,“许大马棒的山头”。暗语就是事先约定的密钥,根据密钥去翻译黑话,就知道对方说的是啥意思了,这样旁人就听不懂你说得是啥意思,达到了加密的目的。
但是这套黑话一旦泄露了,这个加密就失效了。于是就有了非对称加密。
2.非对称加密
非对称加密由公钥、私钥组成,公钥负责加密,私钥负责解密。
应用到实际的逻辑是,服务端把公钥给到客户端,客户端使用公钥对对称加密的密钥进行加密之后,发送给服务端,服务端用私钥对内容进行解密得到用户发送密钥。
同样,这种操作也存在漏洞。当黑客截胡掉服务端发送的公钥,同时发送自己的公钥给客户端,并且用服务端的公钥加密并返回虚假内容给服务端。客户端用黑客的公钥加密内容,内容被黑客截取,这样也不安全。
非对称加密公钥容易被篡改,那应该怎么解决呢?
3.混合加密
于是,混合加密出现了,混合加密加入和一个中间机构CA机构,针对公钥有可能被截胡的问题,CA机构的作用是:服务端把公钥传输给CA机构,CA机构也有自己的公钥私钥,CA机构用自己的私钥对服务端的公钥进行加密,加密结果可以用CA机构提供的公钥解开,谁都可以解,如此一来服务端提供的公钥只能看不能修改。这就保证了非对称加密公钥被篡改问题。
这样就很安全了。