当我example.com
在浏览器栏中输入没有任何方案并按 Enter 时,它被解释为HTTP://example.com
, not HTTPS://example.com
。为什么?解决这个问题的计划在哪里?
(需要明确的是,我只是在谈论来自“懒惰”用户的键入/粘贴的地址,而不是关于软件定义的操作,例如遵循相对于方案的 URLwindow.location = "url"
等。显然键入/粘贴HTTP://example.com
必须仍然有效。)
编辑:正如一些答案指出的那样,网站已经可以通过重定向 + HSTS 来实现这一点。核心技术收益将缩小首次连接问题(HSTS 预加载也解决了该问题,但无法扩展到所有站点)。我可以看到现在破坏事物的理由很微弱;我更感兴趣的是它是否会在 5 年后出现明显的结局?10?20?
在默认使用 https 解释的过程中,我可以看到几个问题:
仅通过 http 运行的网站的用户体验。默认为 https 会显示错误,但用户通常不知道它是否应该工作,即该站点是否根本没有通过 https 工作,或者这是降级攻击。
如果这种情况的错误页面将包含一个简单的“您的意思是 http:...?” 链接(*),用户将习惯于在任何不起作用的网站上单击它,而我们并没有获得太多(?)。如果它不容易(例如用户必须编辑
https
->http
,用户将不会使用这样的浏览器。编辑:我应该澄清错误指示必须不同于显式转到失败的 HTTPS 地址——这种情况与其说是“失败”,不如说是“安全解释不起作用”。对于初学者来说,即使是自动“软失败”到 HTTP 并在顶部带有警告栏也是可以的。
但我认为我们仍然获得了 3 件事:访问不安全的站点是一种有意识的行为,我们教育用户不安全的 HTTP 是不正常的,我们向站点施加压力以实施 https。
http://
在某些情况下不得不输入的不便。无需https://
在更多情况下键入的便利性完全超过了 IMO。与历史默认值的“兼容性”。我不确定它是否包含在某些标准中,但 IMO 很明显,我们总有一天必须改变它,所以这不是一个炫耀。
政治/经济:CA 系统存在问题,浏览器可能不愿意向网站管理员施压(如果他们没有看到其中的价值)。让我们暂时忽略金钱,假装Let's Encrypt 免费 CA已经到来。
我明白为什么现在做出改变会引起争议。让我感到困惑的是,为什么它没有被广泛讨论为明显的长期目标,虽然可能会更慢一些,但有一些分阶段的计划 a-la SHA-2 证书的弃用。我所看到的似乎假设 http 将几乎永远保持默认:
Chrome 隐藏
http://
在 URL 栏中的举动是退一步。迈向 https 默认的第一步应该是用红色显示 http;在稍后的某个时间最终移动到隐藏https://
(只显示绿色挂锁)......HSTS 朝着正确的方向发展,但每个站点都谨慎地选择加入。它既弱又强——即使是显式的 http url,网站也选择强制使用 https,没有用户追索错误——但 RFC 甚至没有提到 https 可能是全局默认值的想法,或者浏览器默认方案是归咎于引导 MITM问题。
我已经看到 DNSSEC 被提及为类似 HSTS 的选择加入的未来载体,但再也没有看到选择退出的提议......
此外,是否有任何浏览器(或扩展程序)提供此选项?