谈谈自己对https的理解

首先要了解两种加密算法,一种是对称加密,还有一种给是非对称加密。
对称加密就是说客户端和服务端之间的报文传输,使用同一个密钥进行加密。和非对称加密相比,这个比较快,但是问题也很明显。如果有一个黑客,知道了密钥,他就可以在通信的过程中随意的截获或者修改传输的报文。
非对称加密复杂一点,有一个公钥有一个私钥。客户端使用公钥对数据进行加密以后进行传输,服务端收到以后使用私钥进行解密。这种情况下,就对称算法安全很多了。不过,黑客还是有办法,他可以获取公钥,然后就可以解密知道服务端返回给客户端的信息了。
后来又有了对称算法+非对称算法的加密方式,安全性也有所提高,不过也被黑客研究出了中间人攻击。
中间人攻击是这样的。首先我们假设正确的公钥是PK,正确的私钥是SK,与此同时,黑客也有自己的公钥JK和私钥LK。
当客户端第一次向服务端请求公钥的时候,因为用的是明文,所以请求很容易被黑客拦截,黑客将自己的公钥JK发送给客户端,与此同时,假冒客户端,向服务端请求公钥,服务端无法辨别真假,发送了正确的公钥PK。到目前为止,客户端获得了假冒的公钥JK,黑客获得了正确的公钥PK。
这个时候客户端生成了一个随机数num1作为对称加密的key,使用JK加密后发送给服务端被黑客截获。黑客使用LK返给给了客户端一个ok表示自己已经成功接收到了。然后黑客使用PK对num1进行加密后发送给服务端,服务端接收成功后返回一个ok。
至此,虽然客户端和服务端都使用num1作为key进行加密,但是这个key已经被黑客知道了,黑客就作为一个中间人可以完美的监听通信。什么时候黑客突然想动手,就可以卷走大量的数据和信息,造成非常大的损失。
为了保证安全,就出现了CA证书
图示如下:
!

操作步骤

1、客户端向服务端发送请求,索要证书

2、服务端将公钥PK发送给CA机构,由CA机构使用CA机构的私钥对公钥PK进行加密,生成证书

3、服务端获得证书,将证书发送给客户端

4、CA机构的公钥是写死在客户端的代码中的,这个时候使用CA的公钥对证书进行解密,获得公钥PK(为了防止证书在传输过程中被掉包,会对证书进行验证,主要的判断标识就是网址)

5、客户端生成随机数num1,使用PK进行加密,发送给服务端

6、服务端使用私钥SK进行解密后获得key值num1

7、客户端和服务端使用num1作为key进行对称加密

案例:

访问百度

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NewBeeMu/article/details/115352121