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中國