加密算法
https最大的优点是安全,既然要讲解安全原理,那就得从根源讲起。 密码学上,经典加密算法包括对称加密算法的非对称加密算法。
对称加密算法
经典就是凯撒密码,比如说,我规定,我传输的数据,全部后移3位,接收方接收到的数据后,在前移三位,可以得到明文。 对称加密算法的最大特点是对称,也就是说,双方需要事先知道加密解密的规则。然而,互联网上的传输最难的就是这个,怎么事先商量好?这个不太现实,也不好实现,因为你商量规则的过程,同样不安全。
非对称加密算法
非对称加密算法,主要包括公钥和密钥: 需要满足这三点: 公钥加密,私钥解密,公钥不能被公钥解密(私钥加密,公钥解密) 只要满足这三点的算法,都可以算是非对称加密算法,需要注意的是,私钥加密,公钥也可以反过来解密,只要公钥或者私钥,就不行。 非对称加密算法的执行过程: 客户端申请请求,服务器发送公钥给客户端,客户端拿到公钥去给自己要传输的数据加密,讲加密后的数据传送到服务器,服务器用自己的密钥解密。 可能出现的问题: 中间的不法分子,可以截取服务器发送给你的公钥,然后,伪造一个他自己的公钥传输给你,此时,你用假公钥封装了数据,传输后,他就可以用自己的密钥解开你的数据。这样你的数据就泄露了。
CA证书
如何解决非对称加密算法的漏洞问题呢?可以通过ca机构来解决。 ca机构:其实就是一些公益性的机构,会和服务器进行交互,对服务器的公钥进行包装,这个包装过程,其实也是一次非对称加密:其实就是用自己的私钥对服务器的公钥再次加密,生成新的ca机构的公钥,也就是证书,然后,将ca机构自己的公钥,直接内嵌到操作系统中 ca原理解析: 为什么前面说非对称加密不安全?因为中间者可以篡改服务器传输过来的公钥。 因此,只要解决了篡改的问题,让中间者不能私自篡改服务器公钥,非对称加密不就安全了嘛。那么,为什么ca证书能保证服务器的公钥不能被篡改呢? ca证书做了什么?ca机构用自己的私钥对服务器公钥进行了二次加密,然后,将ca的公钥内嵌进了操作系统。 先说二次加密: 二次加密后,中间者,可以获取到吗?当然可以。获取到后,可以解密吗?嵌入操作系统的公钥,中间者也知道,当然可以解密,解密后,中间者就可以功能获取到服务器传过来的公钥,可是,此时,中间者却不能更改这个公钥,为什么不能修改这个公钥呢? ca公钥嵌入操作系统 因为如果中间者篡改了服务器的公钥,传到客户端后,用ca嵌入到操作系统的公钥再去解密,数据就会不对了,此时,相当于,客户端解密后,就得明白数据被改了(注意:ca是用自己的私钥对数据进行加密,然后讲公钥嵌入到操作系统) https其实就是这么一套流程来保证数据传输的安全
总结
说白了,ca就是用自己的私钥对服务器传输的公钥进行二次加密,然后将ca自己的公钥嵌入操作系统,嵌入操作系统这个操作的本质,其实就是把ca的加密解密过程写死了属于是,写死了的后果,就会导致,中间者就算拿服务器传输到公钥,也不能更改,因为过程写死了,你一旦改了,就能被认出来,从而解决了非对称加密环节的漏洞。
|