from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

chromeのgrease実装をwiresharkで見てみる(リベンジ)

この記事はhttp2アドベントカレンダーの2日目の記事です。

前こんな記事やこんな記事を謎のノリ書いたがうまくgrease拡張ヘッダを取れなかった。

lv7777.hatenablog.com

そのためもう一度挑戦してみる。

grease is 何

簡単に言えば、chrome55で有効になるTLS拡張機能

仕様に準拠してない糞みたいな鯖に対してクライアント側で解決して接続を高速化するためのTLSオプション。

for more information, please read follow post.(I think this post is best post about grease.

jovi0608.hatenablog.com

P.S. id:jovi0608さん(上記ブログの投稿者)からコメントで解説してもらいました。ありがとうございます!

ついでに仕様書も見てみたんだけどどうもTLS1.3の公式には含まれてなくてchromeの独自っぽい?(軽く見ただけなので見落としがあるかも

ていうかTLS1.2とのdiffみてると 0-RTT関係のupdate多いっすね・・・

tlswg.github.io

取れない

う~ん。3時間ぐらい頑張っても取れない・・・なぜだ・・・

つらい・・・

取れた

あっ、やっと気づいた。これchrome canaryじゃなくてchroniumだからだ。マジかよ・・・(絶望

chroniumだということは元々わかってたんだけどchrome canaryよりchroniumのほうがバージョン高いと思ってた。

ていうか自分今までchroniumのほうがchrome canaryより開発速度の速いチャンネルだと思ってるんだけど。違うのかな?

それともchrome特有の実装になるのでchroniumには含まれてないということなのかな?

まあキャプチャできたし気にしないことにしよう・・・

f:id:lv7777:20161202021324p:plain

grease拡張オプションの定義はextension typeが0x[0-f]a 0x[0-f]a となっている。

このツイートを見るとちゃんとその正規表現の範囲に収まってる。最高!!ちなみにこれはclient_hello

ところがサポートタイプを見てみるとサポートされているTLSのバージョンが一つもない。

まあいいや。grease拡張オプション見るのが目的だし。

ちなみにこのパケットにはcomplession_methodが一つしか指定されてない。

cipher_suiteはたくさん指定されてるのに・・・complesstion_methodが鯖とクライアントで合致しない場合圧縮されないんだろうか?

この調子でほかのgreaseについても見てみよう。このパケットのec groupにもgreaseが入ってるらしい。

他にクライアントがサポートする楕円関数の種類を広報する EC group 拡張の先頭にも 0xaaaa のGREASE値が入っています。

0xaaaaではないもののちゃんとgreaseが塗られていた。

f:id:lv7777:20161202030030p:plain

終わりに

パケモントレーナーとしては見てみたかったレアパケモンgreaseを今回の機会に実際に見れてよかった。

また一か月後ぐらいにうるう秒を修正するNTPの激レアパケモンが現れるらしいので見てみたい。