HTTPS也是一个应用层协议,在HTTP协议的基础上引入了一个加密操作.只不过HTTP协议是按照文本的方式明文(要传输信息)传输,就会导致传输过程中数据会被篡改和泄露的情况.
通过HTTPS在HTTP的基础上进行加密,就能进一步保证数据的信息安全.
加密其实就是把明文经过一系列的转换,生成密文.解密就是把密文在进行一系列的转换,还原成密文.
在经过加密和解密的过程中,需要有一个或者多个中间数据的辅助来完成,此时我们便称为"密钥".
对称加密使用同一个"密钥",把明文加密成密文,也能把密文解密成明文.
此时黑客是不知道密钥是什么,也就无法获取数据,但是服务器会给很多客户端提供给服务,此时服务器就需要维护每一个客户端和每一个密钥之间的对应的关系.
如果把密钥进行明文传输,很容易就会被黑客给截获到,就不能够保证数据的安全性.所以,我们需要采用非对称加密的方式解决.
非对称加密会有两个"密钥",一个"公钥",一个"私钥".公钥和私钥是配对的,但是缺点就是运算速度慢.引入私钥和公钥就可以解决数据安全性.
但是上述还存你在一个严重的问题!就是中间人攻击,黑客可以使用中间人攻击的方式,拿到对称密钥.
为了解决中间人攻击,我们使用第三方认证的"公正机构".
在客户端和服务器刚建立连接的时候,服务器给客户端返回一个证书,证书包含了公钥,也包含了网站的身份信息.
第三方公证机构的公钥会分发给其他的各种设备不是通过网络传输的,而是系统内置的.也可以是通过其他额外安装的公正机构的公钥.因此黑客没办法对这个环节进行中间人攻击.
当客户端拿到证书之后,也就是拿到了证书中的公钥.
此时客户端需要验证公钥是否是服务器的公钥.就需要进行校验.
进行校验的方法就需要使用到核心机制:“数字签名”=>被加密后的校验和,公正机构在生成证书的时候,会先针对证书中的其他属性,生成校验和,会使用第三方认证的私钥,针对校验和进行加密,此时别人就无法重新生成这个校验和.