Linux中国

每个 HTTP/2 连接会发送一条隐藏的秘密信息!

如果你监听过 HTTP/2 连接的建立过程,你也许会注意到在每个连接建立时都会发送一条这样的报文。如下:

即以下文本:

PRI * HTTP2.0

SM

如果将 HTTP2.0 以及换行从其中去掉,那么我们就得到了“PRISM”!——这是什么?是斯诺登所揭露的 NSA 的“棱镜计划”!只要是 HTTP/2.0 连接,都会在一开头就发送这样的报文。

是你的 HTTP/2.0 连接被 NSA 监控了么?不是!这条消息代表了你的服务器真正支持了 HTTP/2.0,它是一个用于识别的魔法字符串。

它在 RFC7540 Section 3.5 中描述如下:

在 HTTP/2 中,每个端点都需要发送一个连接引语作为所用协议的最终确认,并用于建立 HTTP/2 连接的初始设置。客户端和服务器发送不同的连接引语。

客户端的连接引语以24个字节开始,以16进制表示如下:

0x505249202a20485454502f322e300d0a0d0a534d0d0a0d0a

即以下列字符串开始: “**PRI * HTTP/2.0rnrnSMrnrn”**。

事实上,这个魔法字符串原本是“FOOBA”:在 2013/5/29 发布的 draft-ietf-httpbis-http2-03 中它还是这个样子:“*FOO HTTP/2.0rnrnBArnrn**”。

而在同年6月份斯诺登事件沸沸扬扬之后,7/8发布的 draft-ietf-httpbis-http2-04 中就变成了“*PRI HTTP/2.0rnrnSMrnrn**”。

所以,你知道了吧?这个古怪的字符串是互联网工程任务组(IETF)对 NSA 的嘲讽。


本文转载来自 Linux 中国: https://github.com/Linux-CN/archive

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
雨落清风。心向阳

    You may also like

    Leave a reply

    您的邮箱地址不会被公开。 必填项已用 * 标注

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

    More in:Linux中国