HTTPS优缺点、原理解析:我们的网站该不该做HTTPS?

飘逸的风9年前 (2017-02-28)经验4915

我们对于做不做HTTPS网站这一问题进行了相关调研。

HTTPS是什么

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

传统的HTTP模式,存在着大量的灰色中间环节,相关信息很容易被窃取,但HTTPS却是通过认证用户与服务器,将数据准确地发送到客户机与服务器,并采用加密方式以防数据中途被盗取,大大降低了第三方窃取信息、篡改冒充身份的风险。

HTTPS安全原理解析

HTTPS主要由有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。HTTPS与HTTP的原理区别可以观察下图:

HTTP工作原理:

①客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,一般TCP连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和许可内容。

② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

HTTPS的工作原理:

①. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;

②. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;

③. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;

④. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。

⑤. 客户端将所有握手消息的MAC值发送给服务器;

⑥. 服务器将所有握手消息的MAC值发送给客户端。

HTTPS的优点与缺点

根据案例反馈,目前HTTPS的优缺点主要分布在三方面:

HTTPS的优点:

安全性方面

在目前的技术背景下,HTTPS是现行架构下最安全的解决方案,主要有以下几个好处:

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

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

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

HTTPS的缺点:

技术方面

1、相同网络环境下,HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电。此外,HTTPS协议还会影响缓存,增加数据开销和功耗。

2、HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。

3、最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

成本方面

1、SSL的专业证书需要购买,功能越强大的证书费用越高。个人网站、小网站可以选择入门级免费证书。

2、SSL 证书通常需要绑定 固定IP,为服务器增加固定IP会增加一定费用;

3、HTTPS 连接服务器端资源占用高较高多,相同负载下会增加带宽和服务器投入成本;

既然HTTPS有这么多缺点,那是不是就不该做呢,当然不是的,随着技术的发展很多缺点是可以优化和弥补的。比如:

打开速度问题完全可以通过CDN加速解决,很多IDC也在着手推出免费证书和一站式HTTPS搭建服务,HTTPS成本在未来将会大大缩小!

我们到底要不要做HTTPS?

调研中发现,大多数人对HTTPS持观望态度,他们对HTTPS安全性是认可的,但是从各个层面进行考虑后,做出了目前不做HTTPS网站的决定,主要有以下两种观点:

正方观点

1、HTTPS具有更好的加密性能,避免用户信息泄露;

2、HTTPS复杂的传输方式,降低网站被劫持的风险;

3、搜索引擎已经全面支持HTTPS抓取、收录,并且会优先展示HTTPS结果;

4、从安全角度来说个人觉得要做HTTPS,不过HTTPS可以采用登录后展示;

5、HTTPS绿锁表示可以提升用户对网站信任程度;

6、基础成本可控,证书及服务器已经有了成型的支持方案;

7、网站加载速度可以通过cdn等方式进行弥补,但是安全不能忽略;

8、HTTPS是网络的发展趋势,早晚都要做;

9、可以有效防止山寨、镜像网站;

反方观点

1、HTTPS会降低用户访问速度,增加网站服务器的计算资源消耗;

2、目前搜索引擎只是收录了小部分HTTPS内容,应该保持观望制度;

3、HTTPS需要申请加密协议,增加了运营成本;

4、百度目前对HTTPS的优先展现效果不明显,谷歌较为明显;

5、技术门槛较高,无从下手;

6、目前站点不涉及私密信息,无需HTTPS;

7、兼容性有待提升,如robots不支持/联盟广告不支持等;

8、HTTPS网站的安全程度有限,该被黑还是被黑;

9、HTTPS维护比较麻烦,在搜索引擎支持HTTP的情况,没必要做HTTPS;

HTTPS的数据加密性:

HTTPS中数据的保密性主要是通过加密完成的。加密算法一般分为两种,一种是非对称加密(也叫公钥加密),另外一种是对称加密(也叫密钥加密)。

HTTPS使用非对称加解密主要有两个作用,一个是密钥协商,另外可以用来做数字签名。所谓密钥协商简单说就是根据双方各自的信息计算得出双方传输内容时对称加解密需要使用的密钥。如下图:

对称加密就是加密和解密都使用的是同一个密钥。如下图:

HTTS多次握手和复杂的加密机制有效的加大了网站的安全性,加密机制与认证机制可以减少网站被劫持和假冒的风险!

来源:https://www.chinaz.com/web/2017/0224/663236.shtml

相关文章

IIS7.5下web.config伪静态设置方法

近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现。这两种方法各有优势:第一种比较灵活,只要把文件拷到根目录下,即可直接显示所有伪静态页面(适用于...

禁止网站被别人通过iframe引用

如题,解决方案如下: 解决方案一:js方法 这种方法不可靠,不推荐使用 <script type="text/javascript"> if(self != top)...

阿里云盘内测期间如何使用,申请并获得激活码?激活码分享!

阿里云盘内测期间如何使用,申请并获得激活码?激活码分享!

最近大家一定被阿里的两个网盘刷屏:阿里云网盘和teambition网盘。阿里云网盘注重的是个人用户,而teambition网盘,主要是企业或者多人协作。 目前这两款网盘...

阿里云盘和Teambition网盘到底有什么区别?

阿里云盘和Teambition网盘到底有什么区别?

阿里云盘和阿里云teambition网盘有什么区别?有很多人问这二个产品到底有什么区别?其实,这两款网盘主要在于定位和应用场景不同:Teambition定位是企业团队,阿里云盘定位是个人,可以根...

阿里云盘公测限时可以最多免费领取3倍存储容量啦!

阿里云盘公测限时可以最多免费领取3倍存储容量啦!

阿里云盘即将进行公测,现在开始到3月17日18点,可以在阿里云盘官网提前预约公测,可以免费领取最高3被存储容量,也就是说,最多可以领取阿里云盘3T容量,已经在使用的...

GitHub fatal: unable to access ‘XXX‘: OpenSSL SSL_read: Connection was reset, errno 10054的解决办法

GitHub fatal: unable to access ‘XXX‘: OpenSSL SSL_read: Connection was reset, errno 10054的解决办法

最近从github上拉取项目时,出现标题那样的错误提示,网上搜了一下,找到了解决办法。 以下是处理方法转载过来,以便下次快速找到问题并解决。 问题描述:...

发表评论

访客

看不清,换一张

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