SPDY/3.2とか

SPDYの脆弱性

SSLで暗号化+圧縮を行こなっている通信に対して、Cookie等の値を解析するCRIME攻撃やBREACH攻撃が知られている。


幾つかのサイトで解説記事が書かれている。
App Engine セキュリティー情報 - BREACH attack について
BREACH攻撃(てきとうなメモ)


SPDY/3はSSL通信を前提にしてる上、ヘッダ領域はDEFLATEで圧縮されるためこれらの攻撃対象になりうる。


HTTP2でも同様の議論が行われており、HPACKやPaddingが導入されいる。

SPDY/3.2

先日、Chromiumのサイトを眺めてたところ「SPDY Protocol - Draft 3.2」というページが出来ていた。


HTTP/2-draft10で導入されたPaddingが同じように導入されている。


このPaddingにより、BREACH攻撃で必要となるデータ長を変えることでこれらの攻撃を防げることになる...


何故かデータフレームへのPaddingしか定義されておらず、まだ仕様として完成なのかは分からないが、SPDY/3.2でPaddingを導入することを考えているようだ。

openssl s_clientとs_serverでalpnを指定する方法

openssl s_clientとs_serverでNPNを指定する方法
に引き続きalpnの指定方法



OpenSSL 1.0.2からalpnに対応している。

openssl s_clientやs_serverでもハンドシェイク時のネゴシエーションが指定できる。
ネゴシエーション時の簡単な挙動を確認したいときは手軽である。

s_client

openssl s_client -host google.com -port 443 -alpn spdy/3,spdy/2,http/1.1

出力結果の「ALPN protocol」でサーバが選択したプロトコルが確認できる。

s_server

SSL用の秘密鍵と証明書が事前に必要になるので準備しておく。

openssl s_server -accept 443 -key server.key -cert server.crt -alpn spdy/3,spdy/2,http/1.1

出力結果の「ALPN protocols selected」で選択されたプロトコルが確認できる。