spdyによるトラフィック変化 · 過去の議論のおさらい(1) •...
TRANSCRIPT
![Page 1: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/1.jpg)
SPDYによるトラフィック変化
ミクシィ 吉野純平
2014/01/23 JANOG33 1
![Page 2: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/2.jpg)
過去の議論のおさらい(1)
• 「Outbound Port 80 blockingのご提案」 – JANOG 31 – Firesheepという無線LANからsessionを盗むアプリ – 大手サイトのHTTPS化 • wildcard証明書の登場 • SPDYやHTTP/2.0の登場でTLS通信が重要に
– hCpsの利用をするためのレスポンスヘッダ紹介
2014/01/23 JANOG33 2
![Page 3: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/3.jpg)
過去の議論のおさらい(2)
• 「HTTP 2.0のインパクト」 – JANOG 32 – プロトコルの解説や標準化動向 – CGNからの視点で • 使えるポート数が少なくても幸せ
– Akamai様から見たSPDYの対応状況 • 30%程度がSPDY対応ブラウザ
2014/01/23 JANOG33 3
![Page 4: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/4.jpg)
SPDY Forward Proxy
• SPDY、すばらしいと思います • 今日は、この図の「ドキドキ」な話をします • モバイル版chromeのデータ圧縮オプション
ブラウザ
hCps コンテンツ
Proxy hCp コンテンツ
HTTPS
SPDY HTTP
オリジナルはこちら hCps://developers.google.com/chrome/mobile/docs/data-‐compression
2014/01/23 JANOG33 4
![Page 5: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/5.jpg)
SPDY Forward Proxyが無い場合
ブラウザ
コンテンツ
• 高レイテンシな転送路を複数回往復 • 暗号化されない • コンテンツが圧縮されてないケースもある
DNS cache
高レイテンシな環境
2014/01/23 JANOG33 5
![Page 6: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/6.jpg)
SPDY Forward Proxyがある場合
ブラウザ
HTTPコンテンツ
名前解決はProxyで行う Proxyでコンテンツ圧縮を行う
DNS cache Proxy
高レイテンシな環境
2014/01/23 JANOG33 6
![Page 7: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/7.jpg)
ユーザーが嬉しいこと
• wifi区間でのセッションハイジャック対策 • データ転送の量が減る • 高レイテンシへの対策がいろいろ – セッション数が減る – 名前解決が無線区間を通らない
2014/01/23 JANOG33 7
![Page 8: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/8.jpg)
現状の状況
• 機種割合 – Android 53.33% – ios 41.43%
• スマートフォンにおけるブラウザ – chrome 3.76% – chrome以外 96.24%
UserAgentから判定(ただし、エンドユーザで詐称可能) PCからスマートフォンになりすますことも可能なので、正確ではありません
2014/01/23 JANOG33 8
![Page 9: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/9.jpg)
影響度は拡大する?
• Android4.4のOEMからブラウザが消える – webviewで独自実装ブラウザを作る? – chromeをライセンス契約してプレインストール?
• ブラウザのシェアが大きく変わる可能性も – SPDY Forward Proxyが爆発的に伸びると・・・
2014/01/23 JANOG33 9
![Page 10: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/10.jpg)
今回の切り口
1. Proxyによるトラフィック中継 2. 外部からくるX-‐forwarded-‐forの処理問題
2014/01/23 JANOG33 10
![Page 11: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/11.jpg)
トラフィック中継による変化 1
eyeballが多い トランジット事業者 コンテンツ事業者
ProxyのあるAS
トランジット提供
トランジット経由しなくなって嬉しい側面もあるかもしれない
2014/01/23 JANOG33 11
![Page 12: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/12.jpg)
トラフィック中継による変化 2
ISP コンテンツ事業者
ProxyのあるAS
ピアリング
ビジネス上の要件に合わせてチューニングしたピアリングをしたとしても効果が得られない?
2014/01/23 JANOG33 12
![Page 13: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/13.jpg)
ISP
トラフィック中継による変化 3
コンテンツ
ProxyのあるAS
eyeballユーザのトラフィックが同一ISP内にあるコンテンツを見るのにProxyを経由する
2014/01/23 JANOG33 13
![Page 14: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/14.jpg)
切り口2:接続元情報の扱い
Proxyが リクエストヘッダ X-‐Forwarded-‐Forを 2001:0DB8:1::2の値で 挿入する
クライアント
Proxy
コンテンツ
2001:0DB8:1::1
2001:0DB8:2::1
2001:0DB8:1::2
2001:0DB8:2::2
2014/01/23 JANOG33 14
![Page 15: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/15.jpg)
X-‐Forward-‐Forのつらさ
• X-‐forwarded-‐forは改ざん可能 • 外から付いてきた同ヘッダーを使うのは危険 – tcpセッションを確立した相手のアドレスを使う – 信用するアドレスリストを持つ手もある
• 外部からのX-‐forwarded-‐forは記録もされない – 各種調査の時に困ることになりそう
2014/01/23 JANOG33 15
![Page 16: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/16.jpg)
この先の見通し
• HTTP/2.0は暗号化なしも検討されている • 無線区間を守るために暗号化は望ましい
• HTTP/2.0の非暗号化版が標準化されても、「hCp://」でブラウザに入力することになるので、SPDY Forward Proxyを通るのではないか
2014/01/23 JANOG33 16
![Page 17: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/17.jpg)
コンテンツを持つ者の選択肢
• 依存して生きて行く – うまくピアリングできるなら幸せかもしれない – デフォルトSSL化するコストを払わなくていい – 依存させてもらうことへの恐怖と戦う
• 依存しないで生きて行く – SSL対応して、SPDY等の対応まで行う
2014/01/23 JANOG33 17
![Page 18: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/18.jpg)
某サービスの場合
• hCpsでもブラウザで閲覧可能にするための工数 – 梅プラン
• 全ドメインでエラーが無い • 外部リソース対応は、表示なし等で対応する • ページ遷移時にプロトコル維持を気にしない
– 竹プラン • プロトコルを維持する • 難易度高めのサブドメインも対応する
– 松プラン • すべてのリンクでプロトコルを引き継ぐ • 外部リソースをproxyする形で対応する
2014/01/23 JANOG33 18
![Page 19: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/19.jpg)
ざっくり工数
• 梅 – 91.5人日
• 竹 – 169.8人日
• 松 – 204.4人日
ただし、別途QA工数も必要 ※firesheepの際に工数をざっくり計算したもの
2014/01/23 JANOG33 19
秘密
秘密
秘密
![Page 20: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/20.jpg)
具体的にどんな作業?
• js での hCp:// 固定記述への対応 • テンプレート での hCp:// 記述撲滅 • コード内 での hCp:// 記述撲滅
• DB 内に URL が入っている場合の対応 • ページ遷移時の hCp/hCps 状態保持ルール
• 外部リソース対策
2014/01/23 JANOG33 20
![Page 21: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/21.jpg)
現時点で目指したいところ
• 社外にリソースを提供部分のHTTPS化 – 提供先がHTTPS化するための障壁にならない
2014/01/23 JANOG33 21
![Page 22: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/22.jpg)
依存したときの恐怖
• ピアリング関連でポリシーの変更 • ある日突然の終了 – ISPさんにはどこ宛にトラフィックあるかわからない
• 障害に巻き込まれる • X-‐forwarded-‐forの位置づけの変化
2014/01/23 JANOG33 22
![Page 23: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/23.jpg)
恐怖のシナリオと議論
• ISPさん – 売っていたトランジットが大きく減少するかも – 特定ASへの偏りが加速するかも
• CDN事業者さん – 「Proxyの近くにサーバが有ります」と売る? – SPDY等の付加サービス売りやすくなる?
• DC事業者さん – お客さんのSSL化動向で原価が変わるかも
• コンテンツ屋 – firesheepのリスクがケアされた状況で、進化が止まる – 情報を抜かれうる状況
2014/01/23 JANOG33 23
![Page 24: SPDYによるトラフィック変化 · 過去の議論のおさらい(1) • 「Outbound(Port(80(blockingのご提案」% – JANOG31 – Firesheepという無線LANからsessionを盗むアプリ%](https://reader034.vdocuments.mx/reader034/viewer/2022042107/5e8738287344f35eee61f526/html5/thumbnails/24.jpg)
まとめ
• エンジニアとして – 自ら望んで進化しなければ明日は無い – だが、コストを無視するのは違う – さて、どう考えて説明して進みましょうか?
2014/01/23 JANOG33 24