我频繁的一个网站最终决定启用TLS到他们的服务器,而不是像在那里的很多网站那样强制它。 维护者声称TLS 必须是可选的。 为什么?
在我自己的网站上,我很早就设置了强制使用TLS和HSTS,弱密码套件也被禁用。 纯文本访问保证被HTTP 301封装到受TLS保护的版本。 这是否会对我的网站造成负面影响?
在这个时代,TLS + HSTS是您的网站由可以信任的专业人员pipe理的标记,可以知道他们在做什么。 这是一个新兴的最低标准的可信度,正如谷歌所表明的,他们将提供积极排名的网站,这样做。
另一方面是最大的兼容性。 在那里还有老客户,特别是在世界上不是美国,欧洲或中国的地区。 简单的HTTP将始终工作(虽然,并不总是很好 ,这是另一回事)。
TLS + HSTS:优化search引擎排名
纯HTTP:优化兼容性
取决于对你更重要的事情。
简单的只读网站有一个很好的理由不使用HTTPS。
维护者声称TLS必须是可选的。 为什么?
要真正知道这个问题的答案,你必须问他们。 但是,我们可以做出一些猜测。
在企业环境中,IT部门通常会安装一个防火墙,检查恶意软件的stream量传入和传出,可疑的类似CnC的活动,被认为不适合工作的内容(例如色情内容等)等。stream量encryption时,这变得更加困难。 基本上有三种可能的答案:
对于一个有关的系统pipe理员来说,这些选项都不是特别有吸引力的。 攻击企业networking的威胁非常多,保护公司免受攻击是他们的工作。 但是,阻止大量网站完全引发了用户的愤怒,而安装根CA可能会感觉有些低落,因为它引入了用户的隐私和安全考虑。 我记得当他们第一次打开HSTS时看到(对不起,无法find线程)系统pipe理员请愿书reddit,因为他正是在这种情况下,并不想仅仅因为他被业务阻止色情为重点的subreddits。
技术的轮子不断涌动,你会发现许多人认为这种保护是老式的,应该逐步淘汰。 但是还有很多人在练习,也许是你的神秘维护者所关心的。
(只有less数边缘理由不这样做)。
即使在静态的,仅仅是信息的网站,使用TLS确保没有人篡改数据。
自从Google I / O 2014以来,Google已经采取了几个步骤来鼓励所有网站使用HTTPS:
Mozilla安全博客还宣布,通过使所有新function仅用于保护网站,并逐步取消非安全网站的浏览器function,特别是对用户的安全和隐私构成风险的function,而弃用非安全HTTP 。
如果你已经有了一个广泛信任的证书,为什么不总是使用它? 实际上所有当前的浏览器都支持TLS,并且已经安装了根证书。 多年来唯一的兼容性问题是Android设备和缺less中间authentication机构,因为Android只能直接信任根CA. 通过configuration服务器将证书链发送回根CA可以轻松防止这种情况。
如果您的维护人员仍然希望允许HTTP连接,而不是301 Moved Permanently
移动, 那么确保访问某些真正的旧浏览器或移动设备, 浏览器无法知道您已经configuration了HTTPS 。 此外,您不应该部署没有301 Moved Permanently
HTTP严格传输安全性(HSTS) :
7.2. HTTP Request Type If an HSTS Host receives a HTTP request message over a non-secure transport, it SHOULD send a HTTP response message containing a status code indicating a permanent redirect, such as status code 301 (Section 10.3.2 of [RFC2616]), and a Location header field value containing either the HTTP request's original Effective Request URI (see Section 9 "Constructing an Effective Request URI") altered as necessary to have a URI scheme of "https", or a URI generated according to local policy with a URI scheme of "https").
Tor项目和Electronic Frontier基金会认可了为这两种协议configuration的各种站点的问题,并通过多浏览器HTTPS Everywhere扩展来解决:
networking上的许多站点通过HTTPS提供一些有限的encryption支持,但使其难以使用。 例如,他们可能默认为未encryption的HTTP,或者使用链接填充encryption的页面回到未encryption的站点。
混合内容也是一个巨大的问题,因为可能通过修改通过非安全HTTP连接加载的JavaScript或CSS来对HTTPS站点进行XSS攻击。 因此,目前所有的主stream浏览器都提醒用户有关混合内容的页面,并拒绝自动加载。 这使得维护一个没有301
redirect的站点很困难 :你必须确保每个HTTP页面只加载HTTP维度(CSS,JS,图像等),每个HTTPS页面只加载HTTPS内容。 对于两者都具有相同的内容,这是非常难以实现的。
这一切都归结于您的安全要求,用户select以及隐含降级的风险。 禁用旧密码服务器端在很大程度上是必要的,因为浏览器将愉快地通过用户体验/方便的名义上的客户端绝对可怕的密码。 确保没有任何依赖于安全通道的用户无法通过不安全的方法到达,这当然也非常合理。
不允许我明确降级到不安全的HTTP,当我认为你的博客文章比Python更喜欢Python(不是说你做,只是一个通用的例子)是不是我介意的间谍或公众知道我的访问只是在我的方式没有理由,假设HTTPS将是微不足道的。
目前,embedded式系统不具备开箱即用的能力,或者在旧的实现方式上使用TLS(我认为这很糟糕,但是作为embedded式embedded式系统的高级用户设备在这里],我有时不能改变这一点)。
下面是一个有趣的实验:尝试通过HTTPS从上游OpenBSD站点下载最新版本的LibreSSL,并使用足够旧的TLS / SSL实现。 你将无法做到。 我有一天在一台装有旧版OpenSSL的设备上试过,从2012年开始,因为我想将这个embedded式系统从源代码升级到更安全,更新的东西 – 我没有奢侈的预编译包。 我尝试的错误信息并不完全直观,但我想这是因为我的旧版OpenSSL不支持正确的东西。
这是唯一的例子,HTTPS实际上可能会损害人们:如果您没有最近预build的软件包的奢侈品,并希望通过从源代码构build来解决问题,则会被locking。 谢天谢地,在LibreSSL的情况下,你可以退后一步明确地请求HTTP。 当然,这不会使已经改写stream量的攻击者免于被攻击者的攻击,可以用源代码版本replace源代码包,并重写所有在你浏览的网页上可以下载的软件包的HTTP体系中的所有校验和,但是它仍然有用更常见的情况。
我们大多数人不是从APT拥有的不安全的下载(Advanced Persistent Thread:国家情报机构的安全术语以及其他资源极其严重的networking威胁)。 有时候我只想写一些纯文本文档或者一个小程序,我可以很快审计它的源代码(例如我自己在GitHub上的小工具/脚本)到一个不支持最新密码套件的框中。
就我个人而言,我会问这个问题:你的内容是一个人可以合法地决定“我可以接触到公共知识”吗? 对非技术人员来说,对于您的内容是否意外降级为HTTP会有真实的风险吗? 减轻您的安全需求,为您的用户提供强制隐私要求,并降低隐性降级的风险,以防止用户了解根据具体情况进行知情select而不安全的风险。 对于你的网站来说,没有理由不强制执行HTTPS是完全合法的,但我认为公平的说,在那里仍然有很好的HTTP使用情况。
这里有很多的讨论,为什么tls是好的 – 但从来没有像原来的post那样被问到。
Maxthon问了2个问题:
1)为什么有一个随机的,未命名的网站决定保持http和https的存在
2)是否对Maxthon只对301请求响应提供了负面影响
关于第一个问题,我们不知道提供商为什么select保留http和https网站。 可能有很多原因。 除了关于兼容性,分布式caching以及关于地理政治可访问性的一些提示之外,还有一个关于内容集成的考虑,并且避免关于不安全的内容的难看的浏览器消息。 正如阿尔瓦罗所指出的那样,TLS只是安全方面的冰山一angular。
第二个问题是可以回答的。 在实际需要https进行安全操作时,通过http暴露您的网站的任何部分,为攻击提供了可利用的载体。 但是,为了确定哪里的stream量不正确地指向您的站点上的端口80,并确定原因,确保这一点是有道理的。 也就是说,既有负面影响,也有积极影响的机会,最终结果取决于您是否以pipe理员身份完成工作。
Sysadmin1138表示https影响了排名。 虽然谷歌已经表明,它确实影响排名,但我所看到的唯一可靠的研究表明,差异很小。 对于那些应该更好地声明,因为排名靠前的网站更有可能拥有https存在的人来说,这并不是一个好消息, 因此 https的存在提高了排名。
在过去,我不得不使用HTTP而不是HTTPS,因为我想从其他地方<embed>
来自其他地方的页面,而这些页面是通过HTTP提供的,否则它们将无法工作。
这不是一个好的理由,因为这意味着你有坏/破/不安全的客户端,但是如果有自动化的进程通过现有的http://
url访问资源,有可能有些甚至不支持https(例如busybox wget,它在内部没有TLS支持,最近只是通过opensslsubprocess添加了它),如果它们被redirect到一个他们不能遵循的https url,就会中断。
我会试图通过编写redirect规则来排除未知(或已知的)用户代理string被redirect,并让他们通过http访问内容(如果他们想要的话),以便实际的浏览器都可以从中受益强制https / hsts。
在网站上使用HTTP而不是HTTPS的原因很less。 如果您的网站处理任何types的交易或存储任何types的敏感或个人数据,如果您希望数据安全,则必须绝对使用HTTPS。 我会看到不执行HTTPS的唯一体面的原因是,如果您的网站依赖于caching,因为HTTPS不能用于caching。 但是,为了确保您的网站的安全,往往值得牺牲一些性能。 您的客户也可能不支持HTTPS,但真的在2017年,他们应该。