为什么 HTTPS 比HTTP 更安全?HTTPS如何保证数据传输的安全性?

CDN测评 0 486

近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,究其原因就是 HTTP 它不是安全的,在数据传输过程中会遭到黑客窃取,本篇文章会先讲解 HTTP 缺点,然后再讲解 HTTPS 是如何解决这些问题来保证安全的。

 

一、HTTP的缺点

1. 通信使用明文(不加密),内容可能会被窃听

 

HTTP 本身不具备加密的功能,因此其在通信过程是使用明文方式发送的。这种方式就有可能造成通信过程中信息会被破解获取。

 

例如一群佩奇在路上坐着敞篷大货车,路过的人一下就能看到这车里都是,信息完全暴露。



2. 不验证通信方的身份,有可能遭遇伪装

 

HTTP 协议在请求和响应中不会对通信方进行确认。这就存在可能你访问的服务器有可能不是你真正指定的服务器,拿到返回响应的客户端可能不是一开始发起请求的客户端。

 

这里举个小例子,例如母鸡孵蛋,我偷偷把鸡蛋换成鸭蛋,母鸡照样在那孵,不会有任何的怀疑。

 


 


3. 无法证明报文完整性,有可能信息已遭篡改

 

HTTP 协议 无法证明通信的报文完整性,在请求和响应发出后,在传输过程中内容如果遭到篡改,也没有办法感知到。

 

例如你从某个网站下载内容,无法确定你客户端下载的文件是否和服务器中存放的文件是否一致,有可能文件在传输过程中被篡改为其他的内容。

 


 

 

 

二、什么是 HTTPS

 

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

 

HTTPS主要作用是:

 

(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;

 

(2)对网站服务器进行真实身份认证。

 

我们经常会在Web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不再用http://,而是改用https://。另外,当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个带锁的标记。对HTTPS的显示方式会因浏览器的不同而有所改变。


 


三、HTTPS如何解决HTTP上述三个缺点?

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。

 

通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。

 

 

(一)解决内容可能被窃听的问题——加密


方法1.对称加密

 

怎么理解对称加密呢?其实很简单,就是指加密和解密使用的密钥都是同一个。只要保证了密钥的安全,那整个通信过程就具有了机密性。

 

例如你要登陆某个网站,你事先和网站约定好使用一个对称密码,那么在数据传输过程中全是用密钥加密后的密文,只有网站能解密,传输的过程中即使信息被窃取,也无法获得原始数据。


 

方法2.非对称加密

 

对称加密看起来好像完美实现了机密性,但这其中也有一定的安全隐患,就是如何把密钥安全地传递给对方,因为对称加密只要有密钥就能解密,如果双方约定的密钥在传递过程被窃取,就会造成数据会被很容易的解密。

 

例如你家的钥匙,你跟你爸妈约定好钥匙放在门外鞋底里,看似安全,但如果别人发现了这个鞋底里藏的钥匙,那你家大门就会被打开,就很危险。

 

那有没有更安全的加密方式呢,就要说到非对称加密(也叫公钥加密算法)。

 

它有两个密钥,一个叫 “公钥”,一个叫“私钥”。两个钥匙是不同的,公钥可以给任何人使用,但私钥必须严格保密。

 

公钥加密的数据只能由私钥解密,反过来,私钥加密后也只能用公钥解密。

 

网站秘密保管私钥,在网上随意分发公钥,如果你想登录网站,只要用公钥来加密即可,密文只能由私钥持有者才能解密,即使数据传输过程中被黑客获取到,他也无法破解。


 


方法3.对称加密+非对称加密(HTTPS采用这种方式)

 

非对称性加密虽然安全性高,但因为它都是基于复杂的数学运算,速度就会很慢,虽然保证了安全,但通信速度太慢,实用性也会大打折扣。

 

混合加密就是在通信刚开始的时候使用非对称算法,来解决对称加密密钥交换安全性问题。

 

对方拿到密文后用私钥解密,拿到对称密钥,这样双方就实现了对称密钥的安全交换,后续就不再使用非对称加密,全都使用对称加密。



这样混合加密就实现了安全和性能兼顾,实现了可靠的机密性。


(二)解决通信方身份可能被伪装的问题——数字证书

公钥每个人都可以进行发布,我们还缺少一个防止黑客伪装公钥的手段,也就是如何证明这个公钥就是你的公钥呢?

为了解决这个问题,我们需要找一个公认的可信第三方,来帮助构建起公钥的信任链。

这个第三方就是 CA (数字证书认证机构),它扮演着类似网络世界中的公安局,公证中心这种角色,由它来给各个公钥签名,用自身的信誉来保证公钥无法伪造,是可信的。

服务器会将由数字证书认证机构颁发的公钥证书发送给客户端,接到证书的客户端可使用公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,就证明服务器的公开密钥是真

 

(三)解决报文可能遭篡改问题——数字签名

黑客其实是可以伪装成你,向网站发起支付、转账等请求消息,因为网站没有办法确认你的身份就会造成钱被偷走。

 

在现实生活中,我们解决身份认证是通过身份证,签名或者印章等等,来确定这个是本人操作的。

 

那 HTTPS 是如何解决身份认证问题的?还记得之前提到的非对称加密里的私钥吗,使用私钥再加上摘要算法,就可以实现“数字签名”,同时实现“身份认证”。

 

数字签名的原理就是把公钥和私钥用法反过来,之前是公钥加密,私钥解密,现在变成私钥加密、公钥解密。

 

签名和公钥一样完全公开,任何人都可以获取。但这个签名只有用私钥对应的公钥才能解开,拿到摘要后,再比对原文验证完整性,就可以像签署文件一样证明消息确实是你发的。

四、为何不所有的网站都使用HTTPS?

 

既然HTTPS那么安全可靠,那为何不所有的Web网站都使用HTTPS?

 

首先,很多人还是会觉得HTTPS实施有门槛,这个门槛在于需要权威CA颁发的SSL证书。从证书的选择、购买到部署,传统的模式下都会比较耗时耗力。

 

其次,想要节约购买证书的开销也是原因之一。要进行HTTPS通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买。

 

五、如何选择合适的SSL证书为网站部署HTTPS?

 

目前市场上有许多提供SSL证书服务的商家,但是如何选择安全可靠的证书机构对于新手来说也是十分困难的,这边推荐蜜蜂云盾CDN的免费SSL证书服务,它是和国际知名CA机构合作,采用国际领先互联网加密技术,能够有效加强网站数据安全,防止网站数据被窃取、篡改、劫持,获得搜索引擎更高排名。




 


也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。