知识 | HTTPS到底是啥?

96
梅小景
2016.08.29 14:03* 字数 2423

要了解HTTPS,就要先从HTTP入手~

一. 概念

HTTP(Hyper Text Transfer Protocol):互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议。

HTTPS(Hypertext Transfer Protocol overSecure Socket Layer):HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

二. HTTPS和HTTP的区别

HTTP协议传输的数据都是明文未加密的,因此在使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,因此诞生了HTTPS。

HTTPS加密、加密、及验证过程,如下图所示:



HTTPS工作原理

简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全。

HTTPS和HTTP的区别主要如下:

1、HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。

3、HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者使用的端口是80,后者使用的端口是443。

4、HTTPS的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTPS协议安全。

三. HTTPS工作原理

HTTPS协议是如何工作的呢?

1、客户端发起HTTPS请求

用户在浏览器里输入一个https网址,然后连接到server的443端口。

2、服务器的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套数字证书是一对公钥和私钥,即不对称的加密方式。

拓展:公钥(PublicKey)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

客户端会验证公钥是否有效,比如颁发机构,过期时间等等。如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,把随机值用钥匙起来。

5、传送加密信息

HTTPS协议继而传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。如果在这个过程中,数据被第三方监听到了,他们也对这些加密数据束手无策,因而一定程度上保证了数据的安全性。

四. SEO层面

2010年5月份,谷歌便开始提供HTTPS加密搜索服务,在HTTPS网页的抓取问题上,百度在2014年9月份的一份公告中表示“百度不会主动抓取HTTPS网页”,谷歌在算法更新中则表示“同等条件下,使用HTTPS加密技术的站点在搜索排名上更具优势”。

对于不同搜索引擎对HTTPS的态度,站长是否该采用“具有风险”的HTTPS协议呢?HTTPS对搜索引擎的SEO影响又如何呢?

1、谷歌的态度

谷歌在HTTPS站点的收录问题上与对HTTP站点态度并无什么不同之处,甚至把“是否使用安全加密”(HTTPS)作为搜索排名算法中的一个参考因素,采用HTTPS加密技术的网站能得到更多的展示机会,排名相对同类网站的HTTP站点也更有优势。

此外,谷歌曾明确表示“希望所有的站长都能将使用HTTPS协议,而非HTTP”更是表明了其对达到“HTTPS everywhere”这一目标的决心。

2、百度的态度

百度曾表示“不会主动抓取https网页”,但是百度曾就“https站点如何建设才能对百度友好”问题发布了一篇文章,给出了“提高HTTPS站点的百度友好度”的四项建议及具体操作。

HTTPS的优势使得百度不得不重视起来,目前的百度已实现了全站HTTPS。

五. HTTPS的优缺点

正是由于HTTPS非常的安全,攻击者无法从中找到下手的地方,从站长的角度来说,HTTPS的优点有以下2点:

1、SEO方面

谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。因此在以Google流量导入为主的网站,应首先考虑HTTPS协议。

2、安全性

尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:

(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

但是HTTPS并不是无一缺点。

HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电(ACM CoNEXT数据),此外,加密和解密过程需要耗费系统大量的开销,降低机器的性能,相关测试数据表明使用HTTPS协议传输数据的工作效率只有使用HTTP协议传输的十分之一。

此外,SSL证书的信用链体系并不安全,尤其是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。同时,申请SSL证书还需要资金的支持。

站长们可以根据自己的情况采用不同的协议,但就目前的大形势来看,HTTPS越来越成为主流协议。

参考文献:维基百科;百度百科

产品相关