HTTPS加密连接过程
2020-03-01 本文已影响0人
霡霂976447044
记得在前几年,很多网站都是使用的HTTP,那样可以直接中间人攻击(A用户不间断的发送给B用户一个ARP报文, 告诉B,我们的网关IP对应的MAC地址是A,将B用户流量转发到A),修改获取tcp报文中的数据。现在,基本的都已经用上了https,加密了其中传输的数据,有效的提高了数据在网络传输中的安全性。
为了加密传输,使用的是对称加密,这就有一个问题,这个密钥怎么样才能不被中间人捕获?
于是,加入非对称加密算法技术,这种加密技术有一个特点,加密的钥匙和解密的钥匙是不一样的,我们称加密的钥匙为公钥,也就是别人得到了这个公钥也无所谓,我们称解密的钥匙为私钥,这个私钥是不能泄漏的。
服务端生成公钥和私钥。公钥明文传递给客户端,客户端生成一个该TCP连接对称加密组要使用的[对称加密的密钥], 然后用从服务器得到的公钥加密 [对称加密的密钥] , 发送给服务器,服务器用私钥进行解密得到对称加密的密钥。
之后的传输过程中,客户端使用本地的密钥将http数据进行加密,服务器再根据之前解密密钥进行解密http数据。
以下两张图来源于网络:
https连接过程1.png https连接过程2.png