QQ交流群  QQ群号:592590819QQ在线客服

HTTPS过程原理全解

来源:SSLLA  时间:2017-08-10 18:04:28


其实,HTTPS并不是什么新鲜的玩意,更算不上什么黑科技。很早之前,Google就开始使用HTTPS了,百度、淘宝等国内大型互联网公司也随后开始使用HTTPS协议,目的只有一个,为了保证数据的安全。

而为了鼓励更多的网站使用https协议,一些互联网企业都给站长们提出了一些要求。谷歌、百度就明确表示,使用https协议的网站可以获得搜索引擎更好的信赖,同时排名可以更靠前。而谷歌浏览器从今年起将没有使用https协议的网站标记为不安全的网站,玩过微信小程序的人都知道,连接小程序的网站必须使用https协议,否则无法使用。

可以说,全网https只是时间的问题,在不久的将来,可能我们看不到使用http协议的网站。

HTTPS协议是基于HTTP(超文本传输协议)加入SSL层,HTTPS的安全基础是SSL,所以HTTPS需要SSL证书为其内容加密,然后数据再用于安全的HTTP传输。

SSL证书主要有两种加密类型:对称加密和非对称加密。对称加密即加密跟解密使用的都是同样一个密钥,像常见的DES加密就是对称加密。非对称加密相对复杂一点,其加密使用的密钥跟解密的密钥是不同的,有公钥和私钥之分,非对称加密相对比较难以理解,如果想了解这方面的知识,建议先学习一下基础的密码学,在这里,我们要知道的是,非对称加密非常消耗服务器和客户端的资源,使得网站性能变差,但是却具有超强的安全性,这也是很多网站所纠结的问题,性能与安全,如何做到最好。常见的非对称加密有RSA公钥加密算法等。

如图,是http访问的一个过程。实际上,在这个过程中,数据是完全裸奔在整个互联网当中的,虽然有人会想到使用加密算法加密敏感的数据,如对密码进行md5处理,但实际上黑客依然可以拦截并篡改数据,然后再返回客户端,也就是我们常说的网站劫持。

http明文传输面临着窃听危险(黑客可以监听并获取传输的内容)、篡改危险(黑客可以随意修改传输的数据)、假冒危险(黑客可以假冒其他人的身份参与数据传输)。

也就是因为http的种种弊端,慢慢的衍生出了https,人们通过对传输的数据进行加密,就可以防止黑客对数据进行破解,但是黑客依然可以获取数据,并且这种对称加密,需要服务器和客户端有同样的密钥,那么为了保证安全,拥有一个密钥肯定是不够的,而且客户端和服务器端的密钥,只要一方泄露,https的安全性也就无从说起了。

非对称性加密似乎是个不错的选择。我们在客户端上使用公钥对要发送的数据进行加密,然后发送,服务器使用私钥对数据进行解密。同理,从服务器传输到客户端的数据也是一样的。

但是,公钥是公开的,如果黑客在数据从服务器传输到客户端的过程中拦截了加密的数据包,只要使用公钥就可以对其进行解密。所以,单纯使用非对称解密也是行不通的,我们需要将两者结合起来。

首先,客户端发出请求,告诉服务器这次数据传输加密使用对称加密,然后将这个信息使用非对称加密进行加密,传给服务器。服务器收到数据包之后,使用私钥进行解密,同样使用非对称加密加密回复信息,发送给客户端。这是,双方确定使用对称加密方式进行接下去的数据传输。

这样,客户端需要在会话前就获得公钥。所以整个流程是这样子的:客户端向服务器打招呼,服务器确定客户端身份后,将SSL证书(证书中包含证书的发布结构、有效期、公钥、证书所有人、签名等)发送给客户端,这时候客户端就可以获得公钥,然后使用公钥发送请求信息给服务器,确定使用对称加密进行数据传输后,就可以开始数据的加密传输,直到通信结束。

不难看出,这个过程要比走HTTP协议要复杂的多,又是加密又是那么多请求回复的,肯定会消耗更多的资源,除了服务器资源还有带宽、客户端的资源,至于如何解决这些问题,我们有时间再聊聊。

SSL.LA提供免费的SSL证书,正规免费无附加条件,如有技术问题,也可以加群592590819

相关文章