HTTP3study のまとめ

HTTP3study の仕様策定のコアメンバーも来た HTTP3study の自分用まとめ
1
Kaoru Maeda 前田 薫 @mad_p

このへんのプライバシーへの配慮がやりすぎに感じられるかもしれないけれど、IETF全体で非常に大事にしている部分 #http3study

2019-01-29 20:33:36
Kaoru Maeda 前田 薫 @mad_p

mt: QUICのヘッダ保護では、protected payloadの一部をスライスしてきてブロックcipherにかけ、できたものをマスクとしてパケットヘッダにxorする。これによってヘッダパケットにノイズを加える。通信の当事者でないと追跡ができない #http3study

2019-01-29 20:35:36
Kaoru Maeda 前田 薫 @mad_p

mt: QUICで保護されていない部分は限定的。以下にリストするもので全部のはず。最初の2ビットがヘッダフォーマット(長短)、バージョン、タイプ、長さ、destination connection id, source connection id、spinビット、トークンとその長さ、リトライおよびバージョンネゴシエーション #http3study

2019-01-29 20:37:22
Kaoru Maeda 前田 薫 @mad_p

mt: 暗号化はされていないだけで認証はされている。誰かが値を書き換えれば、検出されて接続全体が失敗するようになっている #http3study

2019-01-29 20:37:58
Kaoru Maeda 前田 薫 @mad_p

mt: コネクションを安全に終了するには。使用例: サーバーリブートで状態を失った場合。あるいはタイムアウトするかも。TCPにはRSTがあった。RSTはDoSアタックに使われる可能性がある。QUICはセキュアなstateless resetを提供する #http3study

2019-01-29 20:39:23
Kaoru Maeda 前田 薫 @mad_p

mt: QUIC Stateless Reset: connection idごとにstateless reset tokenを割り当てる。これは暗号化によって両端の人にしかわからないようにしておく。これをパケットに入れて送ることによって安全に接続を切ることができる #http3study

2019-01-29 20:41:00
山本和彦 @kazu_yamamoto

そうか。 header protection の入力に保護されないヘッダも使うので、そこを改竄しても検知できるのか。。。 protect の意味は、機密性。 ヘッダ全体は、完全性がある。 わーい! #http3study

2019-01-29 20:41:02
Kaoru Maeda 前田 薫 @mad_p

mt: どうやってサーバーはstateless resetを作るか? リブートして全部忘れちゃっているかも。サーバーインスタンスで共通のsecretを保存しておく(リブートに耐えるように)。stateless resetトークンはKDF(secret, connection id)で計算すればよい。connection idは再利用されてはダメ #http3study

2019-01-29 20:42:54
Kaoru Maeda 前田 薫 @mad_p

次は要さんでQUICのここが気になる #http3study

2019-01-29 20:49:51
Kaoru Maeda 前田 薫 @mad_p

最近の計測ではHTTP/2が6割弱、HTTP/1.0もわずかにあるとのこと #http3study

2019-01-29 20:50:51
Kaoru Maeda 前田 薫 @mad_p

要さん: ISPの視点からQUICがネットワークに与えるインパクトについて話そうと思います #http3study

2019-01-29 20:51:17
Kaoru Maeda 前田 薫 @mad_p

要さん: 問: インターネットのトラフィックのどれくらいがQUICでしょうか? 2017年8月の観測でgoogleから出るトラフィックの42%くらいがQUICという論文が出ている #http3study

2019-01-29 20:53:05
Kaoru Maeda 前田 薫 @mad_p

要さん: イタリアのISPのネットでのWebトラフィックからの観測では全体の1割強 #http3study

2019-01-29 20:53:55
Kaoru Maeda 前田 薫 @mad_p

要さん: Why QUIC? はいままでたくさん語られているのでいいですね? 0-RTTやHoLブロッキング回避、新しい輻輳制御など。極力ISPに干渉されないなどの利点もある #http3study

2019-01-29 20:54:53
Kaoru Maeda 前田 薫 @mad_p

要さん: QUICパケットはほぼ暗号化されていて、通信事業者からは見えない #http3study

2019-01-29 20:57:56
Kaoru Maeda 前田 薫 @mad_p

要さん: 通信事業者による付加価値: ミドルボックス系サービス(draft-dolson-trnsport-middlebox)。NATやFWなどもある。サービスチェイニング #http3study

2019-01-29 20:58:15
Kaoru Maeda 前田 薫 @mad_p

要さん: 逆に硬直化(ossification)というものもある。ミドルボックスが特定のフォーマットを仮定してしまうとプロトコルのバージョンアップができなくなる問題 #http3study

2019-01-29 20:58:26
Kaoru Maeda 前田 薫 @mad_p

要さん: CGN (Carriar Grade NAT)というものがある。ポートマッピングのテーブルをどう消すか。TCPはFINを見て消す。DNSは5秒、UDPは3~5分で消す(QUICはここ)。Google Cloud Messagingだけ特別に10分待つ #http3study

2019-01-29 21:00:06
Kaoru Maeda 前田 薫 @mad_p

要さん: QUICとHTTP/2で比べてみると、QUICの方がUDPとTCPの両方が発生するため、トータルのセッション数が増える。ユーザー数は見た目上長く見えるようになる #http3study

2019-01-29 21:01:25
Kaoru Maeda 前田 薫 @mad_p

要さん: QUICは95.3%のクライアントで使えるが、4.4%はブロックされている。UDP443がブロックされているのは意図的な場合もある。「QUICプロトコルのブロック方法」という文書もある(社員の通信を可視化したいなどのニーズがある) #http3study

2019-01-29 21:02:29
Kaoru Maeda 前田 薫 @mad_p

要さん: LBは5-tupleではなくconnection IDでルートするようなるだろう。connection idを使ってLBとサーバー間で合意、一方で外に出ていくconnection idは構造が見えてはいけない。LBで暗号化しないといけないの? #http3study

2019-01-29 21:04:17
Kaoru Maeda 前田 薫 @mad_p

要さん: QUICがデプロイされたときに古いプロトコルとの共存はどうなるだろう? NTTコミュのアドベントカレンダーに記事を書いたよ #http3study

2019-01-29 21:05:00
Kaoru Maeda 前田 薫 @mad_p

要さん: YouTubeを見るユーザーをたくさん並べてどんな挙動になるか見た。動画サイトはなるべく最高画質で見せるけど、ネットがつらくなってくると画質を落としてビットレートを下げるようになっている。 #http3study

2019-01-29 21:06:07
Kaoru Maeda 前田 薫 @mad_p

要さん: ユーザー数が増えると画質が下がっていく。これをQUICだけ、HTTP/2だけ、同数のQUIC+HTTP/2でやると、QUICの方がいい画質で見えているユーザーが多い。QUICが先に通ってHTTP/2が後から通る。再生が止まっている時間はHTTP/2の方が多い #http3study

2019-01-29 21:08:06