通过SSL加密整个站点的所有HTTP通信(与仅登录页面上的SSL相比)的优缺点是什么?

#1 楼

由于此处的大多数其他答案都涉及站点范围SSL的缺点(主要是性能问题-顺便说一句,可以通过将SSL终端卸载到SSL代理箱或SSL卡来轻松缓解这些问题),我将指出通过SSL仅具有登录页面,然后切换到非SSL的一些问题:


该网站的其余部分不受保护(尽管这很明显,有时重点过多
用户的会话ID必须以明文形式传输,以便可以被截取和使用,从而使坏人能够冒充您的用户。 (这主要是Firesheep的喧闹声)。
由于上一点,您的会话cookie不能用secure属性标记,这意味着可以用其他方式对其进行检索。
我见过带有仅登录SSL的站点,当然忽略其中包括“忘记密码”页面,“更改密码”页面甚至“注册”页面...
从SSL切换到非SSL的过程通常很复杂,可能需要在Web服务器上进行复杂的配置,并且在许多情况下会为您的用户弹出一条可怕的消息。
如果只有登录页面,在您的网站首页上有一个登录页面的链接-如何保证某人不会欺骗/修改/拦截您的首页,并使其指向另一个登录页面?
那么,这种情况就可以了登录页面本身不是SSL,而只有SUBMIT是-因为这是唯一一次发送密码的时间,所以应该安全吗?但实际上,这使用户无法确保提前将密码发送到正确的站点,直到为时已晚。 (例如,美国银行等)。


评论


有关firesheep的更多信息,请参见Ep。 272现在的安全!他们深入探讨火警的情节(他们从44:05开始谈论)。

–斯科特·张伯伦
2011年7月18日14:22



#2 楼

作为重要的“缺点”而增加的“服务器开销”是一个普遍的神话。 Google工程师指出,将gmail切换为100%SSL时,他们没有部署任何其他硬件,而SSL仅占CPU负载增长不到1%,网络流量仅占2%。堆栈溢出还存在一些与此相关的问题:SSL施加了多少开销?和HTTP与HTTPS的性能。

评论


没有过时的信息那么荒谬:在过去,当恐龙在地球上漫游时(即在1990年代后期),计算机的速度要比今天慢得多,因此将更多的CPU时间分配给SSL,甚至使服务器受CPU限制。现代服务器通常是数据库绑定的或磁盘绑定的,更不用说功能更强大的CPU了-因此SSL不再是CPU的重中之重。

– Piskvor离开了建筑物
2011年5月22日在22:09

@Piskvor,我们现在拥有的算法要快得多,甚至在使用AES-NI(硬件加速)之前,3DES的速度也比AES-128慢5倍,比AES-NI的AES-128慢25倍!

–休伯特·卡里奥(Hubert Kario)
2014年2月25日在19:01

您不是Google。仍然是开销:httpvshttps.com

–起搏器
15年3月28日在23:53

@Pacerier,根据该测试(考虑到单个数据点),http比https快1%。似乎符合答案,不是吗?

–Celos
16-4-19的8:20

@Pacerier现在,该站点说HTTP的速度比HTTPS慢2655%(主要是由于HTTP / 2的优势,HTTP / 2只支持HTTP / 2)。

– Ajedi32
17年11月30日在17:03

#3 楼

在zscaler博客文章中,为什么网络还没有切换到仅SSL?


“随着Firesheep再次强调了会话劫持问题,很多人问我为什么还要默认情况下,网站或至少主要的参与者(Google,Facebook,Amazon等)没有为所有通信启用SSL,实际上,加密是确保用户会话不容易在开放的无线网络上嗅探的唯一方法。

这听起来很简单-只需在URL中的http之后添加s即可!实际上并不那么容易。这是一些挑战。”


挑战(缺点):


“服务器开销”
“增加的延迟”
“ CDN的挑战”
“通配符证书是不够”
“ HTTP / HTTPS混合:鸡蛋问题”
“警告很可怕!”



评论


另外,它给用户带来了一种错误的安全感:“整个站点都在使用SSL,因此必须保证安全!”

–史蒂夫
2010-12-23 23:14

@Steve + 1,SSL保证加密。通常,加密是通过协商确定的,但从技术上讲,它不是必需的。只能通过身份验证来协商SSL会话。

–克里斯S
2010-12-04 15:03



并非完全正确。每个证书需要唯一的IP地址。但是您可以拥有一个多域证书。不一定明智或实际,但可行!

–汤姆·钱特勒(Tom Chantler)
2011年3月28日在22:08

@SteveS:就像锁上前门会给您一种错误的安全感一样吗?当然,这不是一个很好的理由,而是一个更好地教育用户的理由。

–nicodemus13
2014年1月8日在20:54

#4 楼

Ars Technica的一篇精彩文章解释了在站点范围内部署SSL所面临的一些挑战。

一个大问题:大多数广告网络都没有提供任何通过SSL投放广告的方式。此外,如果您将广告(通过HTTP交付)嵌入到通过HTTPS交付的主页中,则浏览器将发出可怕的混合内容警告,您不想让用户服从。因此,受广告支持的网站可能会发现很难在整个网站范围内过渡到SSL。

文章还概述了其他一些挑战,例如第三方小部件,分析,嵌入式视频等。

评论


抱歉,我的帖子不能少于6个字符,您在这里打了一个错字:“通过HTTP传递”,意思是“通过HTTPS传递”

– Shadok
2011-10-24 10:44

#5 楼

好的,这是一个古老的问题,因此我的回答可能会在底部显示出来。但是,我要在'cons'端添加一些内容。

HTTPS延迟:

从客户端到服务器的HTTP延迟很短,这对于快速加载至关重要,自适应网站。快速的页面加载时间提高了最终用户的满意度。

单独的TCP / IP具有著名的TCP 3向握手,即,基于TCP的纯HTTP的初始连接设置需要3个数据包。使用SSL / TLS时,将涉及更多的连接设置,这意味着新HTTPS连接的延迟不可避免地会比纯文本HTTP高。通过多次重用HTTPS连接(即使用持久连接)和其他性能优化(例如SSL False Start)。

准确建模HTTPS减慢页面加载的速度非常复杂,因为所有现代浏览器都下载尽可能并行处理HTTP对象。即便如此,更高的初始连接建立时间对于当前技术而言也是重要且不可避免的。因此增加的新连接延迟是一个重要的考虑因素。

评论


TLS 1.3草案将会话还原为1-RTT和0-RTT。恢复会带来不利影响:如果门票被保留了几个小时以上,您将失去PFS。

–东武
15年1月20日在17:45

#6 楼

上面其他答案中遗漏的一个缺点是,如今对内容分发网络(例如Akamai)的依赖性很大-当前使用的许多网页都从各种域中获取内容,因此浏览器需要为每个域提供证书否则会弹出警告。然后,当然,如果攻击者使用了浏览器已经拥有证书的CDN平台,则他们应该在应有的时间没有得到警告。

当前交付应用程序和内容的方式存在棘手的问题。

评论


我不明白用户需要拥有证书的说法。 SSL的工作方式是服务器需要具有证书。客户端不需要证书(服务器将其证书发送给客户端进行验证)。 Web浏览器已经拥有所需的一切(特别是它们包含受信任的根证书的列表)。这可能有助于解释/阐述您的想法。

– D.W.
2011年1月17日下午5:41

@ D.W。用户必须接受来自服务器的证书。这个接受过程就是这里的问题。大多数用户不是技术人员,所以不了解他们接受的内容。更新了措辞以澄清。

–Rory Alsop♦
2011-1-17在12:46



仅当您尝试创建自己的证书并且它不是来自经过验证的来源时...我知道这很旧,但这只是错误的信息。

– iLLin
15年5月15日在18:21

我真的不明白为什么这是一个问题。哪种严重的CDN不会拥有所有主要浏览器都信任的SSL证书?

–迈克
16年2月20日在0:07

#7 楼

优点肯定是增加了安全性。缺点可能是相对较慢的连接,更密集的CPU使用率,要求精确的证书管理以及一些证书成本(如果您不使用自签名证书)。但是,最近有一种使用https的广泛传播的实践,由于最终用户的利益和对提供服务的公司的信任度的提高,这些缺点逐渐浮出水面。

#8 楼

由于混合内容警告使HTTP-> HTTPS迁移变得困难,其他答案也断言“鸡肉/鸡蛋问题”。这是一个问题,但我认为这并不像他们想象的那么难。查找XSS问题。

RFC 3986第4.2节使用术语网络路径引用:


以两个斜杠开头的相对引用称为
网络路径参考


首先扫描您的页面,直到在同源链接,图像和其他站点资产中找到http://example.com/的所有用法,并将其替换为协议相对URL( //example.com/...)。这样,无论您是通过HTTP还是HTTPS为页面提供服务,都可以使用相同的HTML,并且如果以后在迁移时出现问题,则可以更好地回滚。永久的HTTP-> HTTPS重定向,以便您控制之外的站点上的现有URL继续工作并开始通过HTTPS提供服务。将永久性重定向与激进的缓存标头一起使用将有助于搜索引擎转移页面排名,并加快回访者的网站访问速度。

当然,您应该让扫描仪继续寻找混合内容,以便捕获回归。

#9 楼

我知道这是一个老问题/线程,但我只是想指出一个用于执行侧面SSL的大型PRO。

SPDY

在Apache上使用mod_spdy需要SSL 。

我还没有部署SPDY,请完成它! Chrome和Firefox都支持该协议以及Opera。

大约一半的用户可以利用SPDY。

评论


您能否更明确地说明使用SPDY的最终用户可见的好处是什么,还是站点运营商支持SPDY的最引人注目的原因?另外,为什么对SPDY的支持要求您为整个站点而不是站点的一部分打开SSL?

– D.W.
2013年6月17日在0:04



@ D.W。它不需要您打开SSL(不确定为什么Spock会这样说。)但是对于最终用户而言,好处是网站加载速度更快。测试表明,可以显着提高性能。在针对互联网排名前100位的站点中的25个进行测试时,铬项目页面声称的速度比普通tcp快27%-60%,比SSL / TLS快39%-55%。

– JaredMcAteer
2014年5月21日在13:44

@Jared:即使在2014年,SPDY除了SSL Next-Protocol-Notification之外,也无法通过HTTP / 1.1进行协商,也没有实现方案可以提供和替代解决方案。在2016年,不赞成使用SPDY,而推荐使用HTTP / 2。在这里对好处进行描述可能会有所帮助:SSL / TLS为每个连接至少增加1个额外的RTT(通常为2个),这会对远离用户的站点产生巨大影响。与HTTP相比,通过普通TCP和SSL / TLS进行比较对于所提出的问题而言是毫无意义的,因为这些好处大部分都来自多路复用。

–symcbean
16年8月29日在12:00

我知道这是一个老问题/线程,但是我只想指出,SPDY已被弃用,不受支持并且已经使用了很长时间。

– ximaera
'18 Sep 9'在16:53

#10 楼

其他缺点(被其他人触及)是缺少缓存,这显然会影响速度。另外,某些服务器变量不可用-我认为像HTTP_FORWARDED_FOR。

评论


可以通过HTTPS进行缓存。某些版本的Firefox仅需要“缓存控件:公共”响应标头。

– realworldcoder
2010-12-04 22:11

@realworldcoder:给出正确的Cache-Control标头后,最新的浏览器通常将缓存HTTPS内容。但是,所有较旧的浏览器以及今天部署的许多或大多数公共缓存都不会缓存SSL内容。

– Jesper M
11年7月16日在21:36

如果配置了服务器证书,则大多数CDN都将缓存HTTPS内容(这可能是证书公开程度的考虑因素)。可选的HTTP标头有些无关紧要。

–symcbean
16年8月29日在12:03

#11 楼

这里提到的所有优点,但是我错了成本!而且按成本计算,我并不是仅购买证书,而是拥有适当的基础结构来管理证书,吊销,专用加密模块,以减少Web服务器的CPU负载等。

评论


“购买证书”:GoDaddy每年$ 25 /证书。 “适当的基础架构”:GoDaddy的CRL。专用的加密模块以减少Web服务器的CPU负载”:只需获得第二台Web服务器,即可为您的客户提供良好的服务-具有传输层隐私。

– yfeldblum
2011年1月17日下午6:29

#12 楼

保持整个网站加密的好处:


登录后将其发送为纯文本,不会惹恼与隐私相关的访客。在网站的http和https部分之间。

缺点:?

阅读google和其他人的推荐。进行100%https操作并不一定要花很多钱。

#13 楼

如果网站是由非技术用户可以用来编辑页面的CMS管理的,则他们可能会编辑HTML,以通过HTTP包含对场外资源(例如图像)的引用。我建立了一个购物网站,该网站仅在必要时使用SSL,然后将其他页面重定向回HTTP,因为否则,由于所有者粘贴到网站中的所有场外图像,您将收到混合内容警告。 >