增强 HTTP

阅读数:1056 2014 年 1 月 29 日

话题:安全架构

之前,我们对HTTPbis 工作组定义HTTP2.0的有关工作进行了报道。最近,工作组主席 Mark Nottingham 谈到了关于围绕协议中安全需求的正在进行的有关工作的影响,他发布了他的个人看法

最近,在互联网协议社区最热门的话题之一是:作为Edward Snowden向全世界揭露的无孔不入的隐私监视攻击的响应,HTTP/2 Web 协议的最新版本是否要发布,充斥着请求,鼓励或肯定的争论。

目前 Mark 给出了工作简要回顾,特别是涉及到 SPDY(译者: Google 开发的基于传输控制协议(TCP)的应用层协议)和安全部分:

当 Mike(Belshe)和 Roberto(Peon)给我们带来了 SPDY(“斯诺登”成为一个家喻户晓的名字之前),它的实现要求使用 TLS 进行加密。无论基于实用原因(若其中有什么未知的话,真的很难引入的 HTTP 新版本)还是更高级的理由,都是适用的。

由于当时不要求安全性的用例和强制它存在争议的事实……

[……]规范章节都没有关于这个问题的任何论述 ; 默契是我们使加密或未加密连接的 HTTP /2 成为可能,具体实现将决定支持哪些。

伴随 Snowden 和XKeyscore泄露的发生,在 IETF 内部事情发生了重大转折,在柏林的工作组会议上,他们举行了一个额外会议,产生了强烈的共识,使用多种加密方式改善 HTTP 安全性。IETF 内部将在接下来的几个月的会议中进一步讨论:

非常清楚的,我们有个共同目标在 HTTP 增加 TLS 使用,从而防止无孔不入的隐私监视和其他攻击,但这样做的不同的方式引起了很多争论和分歧,我们如何能够最好地实现这一目标,以及什么是适当的折衷。

Mark 说,Chrome 和 Firefox 开发者很多都支持,若是由 TLS 保护,他们只会支持 HTTP/2。他还谈到其他浏览器开发者和安全专家制定他认为最佳方式的情况:

[……] 对于普通网页浏览的情况,HTTP/2 服务器将需要使用 TLS,只要他们想与最广泛的浏览器选择进行交互,就如 Mike 和 Roberto 为 SPDY 所做的事情。重要的是,我们并不一定要求在协议规范本身使用 TLS。

接着 Mark 继续他的建议后的更多细节,一些群体希望有更多的安全性,而另一些人认为 IETF 为所有 HTTP/2 使用强制加密是不恰当的。在这种情况下,IETF 很难给出结论,尤其是在这样的“政治”情景下,Mark 的说法:

它是一个政治决定,不是因为这样做是作为攻击者嫁祸政府,但由于 HTTP 是一个部署的协议,有很多既得利益者,如代理销售商,网络运营商,企业防火墙等。要求 HTTP/2 加密意味着这些利益相关者被剥夺利益。

不过,Mark 认为, 通过保证 HTTP/2 协议的灵活和准确,IETF 和工作组需要对各种选项的利弊进行必要讨论。

例如,在 HTTP 的当前设计中,是否使用加密的决定完全依赖于服务器,用户可以做的唯一事情是观察一个 URL 是为“HTTP”还是“HTTPS”(或者观看锁图标),并决定他们是否能继续冲浪。一个更具平衡的 Web 允许客户也能够决定,给予一些好处吸引服务器来支持加密,比如加密时只支持 HTTP/2,正如 Firefox 和 Chrome 正在做的。

在这种情况下,由浏览器厂商决定而不是取决于标准。下一步是什么?那么有另一个 HTTPbis 工作组会议即将在苏黎世,Mark 已经要求提出解决核心问题的建议:

一些浏览器实施者都表示,并准备为开放互联网的通讯只实现 HTTP/2 over TLS。现在,他们可以只为 https:// 开头 URI 实现 HTTP/2,要求希望使用新的协议来重定向 http:// URI 的网站,可以使用“pin”的升级的 HSTS。因此,我们并不一定指定要求(例如,用 MUST 或 MUST NOT),这要在这些浏览器中使用新的协议的站点将实现上述模式。然而,为提升互操作性,我们可以指导书,甚至规范用于驾驭这个。这个议题专门用于为那种文案收集建议。

这将意味着在 HTTP/ 2 标准不要求 TLS,但浏览器的实现可以这样做。然而,正如 Mark 指出,随后这些在 HTTP/2 中强制 TLS 的浏览器实现,它们可能在让企业代理探测通信时会再感到有压力。如果出现这种情况,重要的是反应以协调的方式处理,遵守了标准的互操作性。Mark 带有提醒含义地总结,尚未作出决定,并且还有时间某些其他产出。此外,工作组始终关心别人听到他们结论的意见。毕竟,由 IETF 工作组做出的决定未来很可能会影响到我们许多人。

查看英文原文:Strengthening HTTP


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。