其实HTTPS并不是一新鲜协议,不少网站很早就开始启用,初衷是为了保证数据的安全。

近年来,谷歌、百度、阿里、Facebook等互联网巨头,开始大力推广HTTPS,现在全世界很多大型互联网公司已经启用了全站HTTPS,显然已经成为了互联发展得一种趋势。

今天就给大家介绍一下HTTPS出现前,通信加密都都经历了些什么?为什么现在建议使用HTTPS?

可以想像成客户端与伺服器是两个从未见过面的陌生人的交流,而HTTPS如何从众多的加密方式脱颖而出的?

1、对称加密

假如客户端要与伺服器进行一次私密对话。在每次数据传输之前伺服器会先传输给客户端一把密钥,用来解密信息。

然后客户端发送消息给伺服器时也会用相同的密钥加密。这种方法被叫做对称加密。

但是这种方法有一个弊端,这就相当于将钥匙和锁放在一起,密钥被黑客截获那就和明文没啥区别了。

2、非对称加密

为了防止这种尴尬的局面出现于是想到了用非对称加密的方法。也就是伺服器与客户端都拥有两把钥匙,一把是公钥(是对外公开的),而另一把是私钥(只有自己知道)。并且,公钥加密的数据,只有对应的私钥才能解密;私钥加密的数据只能对应的公钥才能解密。

在数据传输过程中,伺服器在向客户端传输数数据的过程中,会先用客户端给她的公钥(可以想像为一把锁)进行加密。

当客户端收到消息后在用会用自己的私钥(刚才给伺服器锁的钥匙)解密。反正也是一样的流程。

做个不是太严谨的比喻便大家理解,这相当于只把锁寄出了,钥匙留下。这样中途被拦截了,黑客没有钥匙也打不开。这样达到一个安全保密的得效果。

可是万万没想到是,黑客会截取双方的锁,黑客将自己的锁发给双方,这样伺服器与客户端双都一以为用的是对方的锁,其实是黑客的锁。黑客用自己的钥匙看了到了所有的内容。

3、数字证书

反思一下,是什么原因导致非对称加密这种方式的不安全性的?

与对称加密方法安全隐患不同。非对称加密之所以会不安全,是因为客户端无法确定收到的公钥是否是真正的伺服器的。

那么想要解决这个问题就需要想一种办法来证明公钥的来源是伺服器,而不是其他人冒充的。

在多种尝试后找到一种靠谱的方法——数字证书,找一个大家都信任和认可的认证中心(CA)。在伺服器发给客户端公钥的过程中,会先把服务的个人信息通过Hash演算法生成信息摘要。如图:

为了防止有人中途将摘要调包,伺服器要需要将CA提供的私钥对消息摘要进行加密来形成数字签名。如图:

并且,最后需要把原来没有Hash演算法之前的信息和数字签名合并在一起,形成数字证书。如图:

当客户端拿到这份数字证书后,就会用CA提供的公钥来对数字证书里的数字签名来进行解密得到消息的摘要。

然后对数字证书里面的伺服器和个人信息进行Hash得到另一份消息摘要,然后进行对比。如果一样,就证明这些东西确实是伺服器发来的。如图:

这时有人会想知道,CA的公钥是怎么拿给到客户端的?伺服器又是怎么有CA公钥的?

其实,部分伺服器在一开始就向认证中心申请了这些证书,而客户端里,也会内置这些证书。如图:

当客户端收到伺服器返回来的数据时,就会在内置的证书列表查看是否有解开该数字证书的公钥。

4、HTTPS

经过上面的铺垫现在可以介绍HTTPS的原理了。可以加将客户端换成浏览器,把伺服器换为某个网。

一个简化的(例如下图没有包含Pre-Master Secret—预备主密码)HTTPS流程图是这样的, 如果你理解了前面的原理,这张图就变得非常简单:

这样一来,整个数据传输就会安全很多。而HTTPS是在过去超文本传输协议HTTP协议技术上加入了SSL协议,SSL依靠数字证书来来验证伺服器的身份。

并为浏览器和伺服器之间的通信加密。这也是谷歌等科技公司推广HTTPS重要原因之一。

HTTPS虽然安全性更高,但是对于很多使用内网穿透技术、网站开发、中小企业内网网站、小程序搭建/调试、OA系统等用户来说,如何才能快速用上保障数据通信的安全,才是最实际的问题。

最便捷的方式就是购买一个花生壳的加密壳域名,搭配花生壳内网穿透使用,好处是自带SSL证书,支持443埠、不限使用年限,买来就能用。

同时花生壳支持HTPPS映射,只需将原有的HTTP映射改为HTPPS映射即可。非常方便。

其硬体花生壳盒子,还支持WiFi接入,独立运行。完美支持远程访问NAS,无需复杂配置即可轻松实现内网穿透、埠映射(支持https映射)、动态域名解析等功能。

无论是企业的网站、商城;异地数据监测、实时视频监控还是打造私有云盘,实现资源共享以及协同办公都可以轻松实现。


推荐阅读:
相关文章