-
二. ⚡加密方式
-
- 1. ⭐对称加密
-
2. ⭐非对称加密
-
三. ⚡引入证书
-
四. ⚡总结
======================================================================
HTTPS 也是一个应用层协议,是在 HTTP 协议的基础上引入了一个加密层(SSL/TLS),HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况,因此HTTPS是要比HTTPS更安全的,现在大部分网站采取的也都是HTTPS协议。
=====================================================================
加密就是把明文(要传输的信息)进行一系列变换,生成密文。解密就是把密文再进行一系列变换,还原成对应的明文
加密通常有两种方式,一种为对称加密,另一种为非对称加密
对称加密其实就是通过同一个 “密钥” ,把明文加密成密文,并且也能把密文解密成明文。
对称加密里最关键的就是密钥,客户端和服务器需要先约定好密钥是什么,如果客户端生成了密钥,就需要通过网路告知服务器密钥是什么。由于密钥本身也会在网络上明文传输,容易被黑客截获,一旦被黑客截获,那么后续对数据的加密就失去意义了。
因此密钥的传输也必须加密传输,即指定一个"密钥的密钥",即引入非对称加密
非对称加密要用到两个密钥,一个叫做公钥,另一个叫做私钥。(公钥和私钥是成对出现的,公钥用于加锁,私钥用于解锁)
通过公钥对明文加密,变成密文;然后通过私钥对密文解密,变成明文;也可以反着用:通过私钥对明文加密,变成密文,通过公钥对密文解密,变成明文。(通过数论相关知识证明)
公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多
我们引入非对称加密,来对自己的对称密钥进行加密:
-
某个网站生成自己的公钥和私钥,把公钥公开出去,自己保留私钥
-
客户端使用这个网站的公钥对自己的对称密钥进行加密,然后将自己的对称密钥以密文形式发送给服务器,服务器使用私钥进行解密,因此就获取到了对称密钥的明文
注意:
由于对称加密成本是比较低的,即机器资源消耗量是比较少的,速度也比较快,因此我们传输数据时会先利用非对称加密方式将对称密钥进行加密,然后使用对称密钥再对数据进行加密
=====================================================================
-
通过以上两种方式,确实可以实现更安全的数据传输,但是还有一点问题,就是客户端是如何获取到服务器(某个网站)的公钥的?如何确保这个公钥不是被伪造的呢?我们只需要引入相应的证书即可,这样客户端和服务器在连接的过程中,而不是简简单单地索取一个公钥了,而是直接向服务器索取一个证书,而相关的公钥就包含在证书里面。
-
这个证书不是服务器自己生成的,而是第三方机构颁发的,客户端拿到证书之后,就可以根据证书中的信息去第三方机构进行认证,来检验这个证书是否合法,从而确保公钥的可信性。