SlideShare a Scribd company logo
1 of 26
Download to read offline
https://lepidum.co.jp/
IETF 95 Report:
httpbis, tls WG
株式会社レピダム
前田 薫 (@mad_p)
http2study 2016/04/23
http2study 2016/04/23
https://lepidum.co.jp/
IETF95
 Buenos Aires, Argentina, Apr 2-8
 1002 participants
 US, AR, CN, FR, DE,
GB, CA, JP, BR, others
http2study 2016/04/23
https://lepidum.co.jp/
httpbis WG (Monday and Thursday)
 Working group to maintain and develop the
"core" specifications for HTTP.
 Chair: Mark Nottingham (Akamai)
 agenda:
 https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/agenda.md
 minutes:
 https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/minutes.md
http2study 2016/04/23
https://lepidum.co.jp/
Topics from httpbis
 Finished Documents
 RFC7694: Client Initiated Content Encoding
 RFC7725: An HTTP Status Code to Report Legal Obstacles
 RFC7838: Alternative Services
 Opportunistic security
 Character Encoding and Language for Parameters
 Client hints
 HTTP Encryption Content Encoding
 JSON Header Field Values
 ORIGIN frame and connection coalescing
 Client authentication with certificates
 Cache Digest
 Decomposing the Hypertext Transfer Protocol
 Merkle Integrity Content Encoding
 Secure Content Delegation using HTTP and Caching Secure HTTP Content using Blind
Caches
http2study 2016/04/23
https://lepidum.co.jp/
Opportunistic security
 draft-ietf-httpbis-http2-encryption-04
 だいたい議論は終わり?
 .well-known/http-opportunistic の問題を検討
 {
"origins": ["http://example.com", "http://www.example.com:81"],
"commit": 86400
}
 commit: この期間、セキュアコンテンツを提
供する
 commitの時間とwell-knownリソースの寿命を分
離
http2study 2016/04/23
https://lepidum.co.jp/
Character Encoding and Language for
Parameters
 draft-ietf-httpbis-rfc5987bis-01
 HTTPヘッダの国際化方法
 foo: bar; title*=utf-8'en'%C2%A3%20rates
 foo: bar; title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates
 「=」を「*=」に
 「エンコーディング'言語'%エンコした文
字列」
 くぎりがアポストロフィーなのアレだけど
http2study 2016/04/23
https://lepidum.co.jp/
Client Hints
 draft-ietf-httpbis-client-hints-00
 リソースのレイアウトなど、デバイスに合わせて最適化したい。DPR
(Device Pixel Ratio), Width of the screen, or Viewportなどを使う。いまま
ではUAを見て判定していた
 RFC7234 では"Vary"ヘッダを使って、UAやクッキーに依存したコンテ
ンツであることを示せると定義
 Client Hintsはクライアントがその情報をサーバーに伝えるヘッダ群の
こと
 DPR: 2.0
 Width: 320
 Viewport-Width: 320
 これらの値に依存してコンテンツを作った場合、サーバーはVaryヘッ
ダに加えてKeyヘッダも出す
 サーバーはAccept-CH ヘッダを送って、クライアントがClient Hintsを
送ってくれれば考慮するよーと知らせることも可能
http2study 2016/04/23
https://lepidum.co.jp/
HTTP Encryption Content Encoding
 draft-ietf-httpbis-encryption-encoding-01
 HTTPペイロードを暗号化する
 HTTP/1.1 200 OK
 Content-Type: application/octet-stream
 Content-Encoding: aesgcm
 Connection: close
 Encryption: keyid="http://example.org/bob/keys/123";
 salt="XZwpw6o37R-6qoZjw6KwAw"
 AES-GCM固定 → CFRGから助言もらわないとね
 EKR: 暗号化を考えるなら署名もいっしょでな
いと
http2study 2016/04/23
https://lepidum.co.jp/
JSON Header Field Values
 draft-reschke-http-jfv-03
 HTTP ヘッダはparseしにくい。特に同一の
フィールド名が複数あって連結するときや、
エスケープがある場合 → JSONにしようぜ
 JSON ただし全体を [] で囲っているとして扱う
 WWW-Authenticate: { "Newauth" : { "realm": "apps", "type" : 1,
"title": "Login to ¥"apps¥"" }},
{ "Basic" : { "realm": "simple"}}
 JSONがchattyなら CBOR使えばいいよねー
 Date型とか導入したくなるのをどうするか
http2study 2016/04/23
https://lepidum.co.jp/
ORIGIN Frame
 draft-nottingham-httpbis-origin-frame-01
 同一のHTTP/2 connection上で、他のオリジンも
提供できることを示すORIGIN frame
 connection coalescingできることを明示
http2study 2016/04/23
https://docs.google.com/presentation/d/1r7QXGYOLCh
4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/
Ilya
https://lepidum.co.jp/
Client authentication with certificates
 draft-thomson-http2-client-certs-02
 リアクティブなクライアント証明書認証には問題があっ
た
 TLS の client cert auth はセッション単位
 TLS を開始した後でクライアント証明書認証の必要なリソースにア
クセスしたらどうする?
 TLS 1.2では renegotiation; TLS 1.3では spontaneous authを使う
 不統一。めんどう
 h2ではどのアクセスが認証を必要としたのかわからない
 解決方法: 証明書検証に必要な道具をHTTP/2 Frameとし
て実装
 request-idを導入し、対応が取れるように
 connection単位で証明書一覧を管理、streamごとに使う
http2study 2016/04/23
https://lepidum.co.jp/
Client Cert Example
http2study 2016/04/23
https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/client_certs.pdf
https://lepidum.co.jp/
Cache Digest
 draft-kazuho-h2-cache-digest
 CACHE_DIGESTフレームを定義
http2study 2016/04/23
以前の提案ではヘッダだったが、
本提案ではフレーム
connectionにつき1回送ればよい
http://www.slideshare.net/kazuho/http-58452175
https://lepidum.co.jp/
Merkle Integrity Content Encoding
 draft-thomson-http-mice-00
 SRI (Subresource Integrity)は遅い
 <script src="https://example.com/main.js"
integrity="sha384-TNShKsRojXl/CWi2MfheXDy9KEk..." />
 全部読み終わってからでないと検証できない
 プログレッシブロードできない
 エラーハンドリングが難しい
 解決策: ハッシュチェイン
 ハッシュの生成: コンテンツの後ろから、ブロック
ごとにハッシュを計算し、各ブロックの前に置く
 最初のブロックのハッシュに署名してヘッダに置
く
http2study 2016/04/23
https://lepidum.co.jp/
MICE: Generation
http2study 2016/04/23
https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/MICE.pdf
https://lepidum.co.jp/
MICE: Validation
http2study 2016/04/23
https://lepidum.co.jp/
Secure Content Delegation using HTTP and
Caching Secure HTTP Content using Blind Caches
 draft-thomson-http-scd-00
 draft-thomson-http-bc-00
 ベースになっているのはContent-Encoding:
out-of-band
 CE: OOB、みんな知ってる?
http2study 2016/04/23
https://lepidum.co.jp/
'Out-Of-Band' Content Coding for HTTP
 draft-reschke-http-oob-encoding-04
http2study 2016/04/23
Request:
GET /test HTTP/1.1
Host: www.example.com
Accept-Encoding: gzip, out-of-band
Response:
HTTP/1.1 200 OK
Date: Thu, 14 May 2015 18:52:00 GMT
Content-Type: text/plain
Cache-Control: max-age=10, public
Content-Encoding: out-of-band
Content-Length: 145
Vary: Accept-Encoding
{
"URIs": [
"http://example.net/bae27c36-fa6a-11e4-ae5d-00059a3c7a00"
],
"fallback": "/c/bae27c36-fa6a-11e4-ae5d-00059a3c7a00"
}
クライアントは、ここを取りに行って、
このへんのヘッダと合体させて
HTTPレスポンスを作る
暗号化も可能。キーをCrypto-Keyで渡す
https://lepidum.co.jp/
Caching Secure HTTP Content using
Blind Caches
http2study 2016/04/23
https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/BC.pdf
シェアドキャッシュが
できますね!
https://lepidum.co.jp/
Secure Content Delegation using HTTP
 Proxyが中身を見れない状態でシェアド
キャッシュできた!
 同じキャッシュを使ってる人は、オリジン
から同じリソースのURIもらえば、Proxyが
持ってるキャッシュもらえますね!
 オリジンにURI教えてもらうために1RTTもっ
たいないよね
 Server Pushで送っちゃおう! コンテンツ関連
のヘッダなしだと、HPACKでよく縮むしね!
http2study 2016/04/23
https://lepidum.co.jp/
Server Push活用
http2study 2016/04/23
この1RTT
遅いなあ
×
Server Pushで0RTT
いきなり近くに
取りに行ける
https://lepidum.co.jp/
Future of HTTP
 HTTP Workshop 2015, 2016
 Jul 2016 in Stockholm
 https://httpworkshop.github.io/
 Jul 2015 in Münster
 https://github.com/HTTPWorkshop/workshop2015/wiki/2015-Report
 List of ideas for HTTP
 https://github.com/HTTPWorkshop/workshop2015/wiki/HTTP-Ideas
 Some of them have been proposed in IETF http-wg
 HTTP/2 Extensions enable experiments in the field
(e.g. Cache digest)
http2study 2016/04/23
https://lepidum.co.jp/
tls WG
 The primary purpose of the working group is to
develop (D)TLS v1.3.
 Chair
 Joe Salowey, Sean Turner
 agenda:
 https://tools.ietf.org/wg/tls/agenda?item=agenda-95-tls.html
 minutes
 http://etherpad.tools.ietf.org:9000/p/notes-ietf-95-
tls?showControls=true&showChat=true&showLineNumbers=true&useMonospaceFont=tru
e
http2study 2016/04/23
https://lepidum.co.jp/
TLS 1.3 topics
 https://www.ietf.org/proceedings/95/slides/slides-95-tls-2.pdf
 Changes since draft-10
 Outstanding consensus calls
 1-RTT PSK and session tickets
 Context values
 Key schedule and key separation
 0-RTT details
http2study 2016/04/23
https://lepidum.co.jp/
Changes since draft-10
 Restructure authentication along uniform lines *
 Restructure 0-RTT record layer *
 Reset sequence numbers on key changes
 Import CFRG Curves
 Zero-length additional data for AEAD
 Revised signature algorithm negotiation *
 Define exporters *
 Add anti-downgrade mechanism *
 Add PSK cipher suites
http2study 2016/04/23
https://lepidum.co.jp/
Any Questions? Please Give Feedbacks!
https://lepidum.co.jp/
mailto:maeda@lepidum.co.jp / twitter: @mad_p
http2study 2016/04/23

More Related Content

What's hot

HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説You_Kinjoh
 
Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法shigeki_ohtsu
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれからshigeki_ohtsu
 
IETF91 Honolulu httpbis WG Report
IETF91 Honolulu httpbis WG ReportIETF91 Honolulu httpbis WG Report
IETF91 Honolulu httpbis WG ReportKaoru Maeda
 
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向shigeki_ohtsu
 
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」Developers Summit
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2Jxck Jxck
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?Kento Kawakami
 
第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモshigeki_ohtsu
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1mganeko
 
WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装Yuta Suzuki
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術Yoshiaki Sugimoto
 
2013 WebRTC 概説 & ワークショップ
2013 WebRTC 概説 & ワークショップ2013 WebRTC 概説 & ワークショップ
2013 WebRTC 概説 & ワークショップmganeko
 
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)shigeki_ohtsu
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話shigeki_ohtsu
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01西畑 一馬
 

What's hot (20)

HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
 
Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 
IETF91 Honolulu httpbis WG Report
IETF91 Honolulu httpbis WG ReportIETF91 Honolulu httpbis WG Report
IETF91 Honolulu httpbis WG Report
 
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
 
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
 
HTTP2入門
HTTP2入門HTTP2入門
HTTP2入門
 
HTTP/2, QUIC入門
HTTP/2, QUIC入門HTTP/2, QUIC入門
HTTP/2, QUIC入門
 
第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ第43回HTML5とか勉強会 SPDY/QUICデモ
第43回HTML5とか勉強会 SPDY/QUICデモ
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1
 
WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装WebRTCとPeer.jsを使った実装
WebRTCとPeer.jsを使った実装
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
 
2013 WebRTC 概説 & ワークショップ
2013 WebRTC 概説 & ワークショップ2013 WebRTC 概説 & ワークショップ
2013 WebRTC 概説 & ワークショップ
 
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
httpbis interim@シアトル レポート (第2回HTTP/2.0接続試験)
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01
 

Viewers also liked

Viewers also liked (15)

La Derivada y el Crecimiento de Bacterias
La Derivada y el Crecimiento de BacteriasLa Derivada y el Crecimiento de Bacterias
La Derivada y el Crecimiento de Bacterias
 
7 Ingredients in Creation of a Brand Brain Connection
7 Ingredients in Creation of a Brand Brain Connection7 Ingredients in Creation of a Brand Brain Connection
7 Ingredients in Creation of a Brand Brain Connection
 
Thomas H_Nutter
Thomas H_NutterThomas H_Nutter
Thomas H_Nutter
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
TEFL 40 Hour Intensive
TEFL 40 Hour IntensiveTEFL 40 Hour Intensive
TEFL 40 Hour Intensive
 
Welcome Belmont - Year One Report
Welcome Belmont - Year One ReportWelcome Belmont - Year One Report
Welcome Belmont - Year One Report
 
Fisika
FisikaFisika
Fisika
 
The Belmont Report synopsis copy
The Belmont Report synopsis copyThe Belmont Report synopsis copy
The Belmont Report synopsis copy
 
Carta para carlos
Carta para carlosCarta para carlos
Carta para carlos
 
CSCW 2016: Beyond the Belmont Principles
CSCW 2016: Beyond the Belmont PrinciplesCSCW 2016: Beyond the Belmont Principles
CSCW 2016: Beyond the Belmont Principles
 
Crisis Economica en Mexico 2014 2015
Crisis Economica en  Mexico 2014 2015Crisis Economica en  Mexico 2014 2015
Crisis Economica en Mexico 2014 2015
 
Lago de Xochimilco Contaminacion Infografia
Lago de Xochimilco Contaminacion InfografiaLago de Xochimilco Contaminacion Infografia
Lago de Xochimilco Contaminacion Infografia
 
La gran crisis de 1994
La gran crisis de 1994La gran crisis de 1994
La gran crisis de 1994
 
Sindrome de Down - Tipos
Sindrome de Down - TiposSindrome de Down - Tipos
Sindrome de Down - Tipos
 
Taller para décimo
Taller para décimo Taller para décimo
Taller para décimo
 

Similar to http2study 20160423 IETF95 Report

Ietf97 ソウル報告
Ietf97 ソウル報告Ietf97 ソウル報告
Ietf97 ソウル報告yuki-f
 
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話shigeki_ohtsu
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpKaoru Maeda
 
Community_Update_JP
Community_Update_JPCommunity_Update_JP
Community_Update_JPGo Chiba
 
2013 WebRTC node
2013 WebRTC node2013 WebRTC node
2013 WebRTC nodemganeko
 
Let's begin WebRTC
Let's begin WebRTCLet's begin WebRTC
Let's begin WebRTCyoshikawa_t
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤Masahiro Kiura
 
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocketWebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocketYu Nobuoka
 
IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告Masaru Kurahayashi
 
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 Takahiro Kujirai
 
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策Kensaku Komatsu
 
httpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートhttpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートshigeki_ohtsu
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
Apache CloudStack Documentation
Apache CloudStack DocumentationApache CloudStack Documentation
Apache CloudStack DocumentationKimihiko Kitase
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側Yusuke Naka
 
GitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APIGitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APITakahiro Kudo
 

Similar to http2study 20160423 IETF95 Report (20)

Ietf97 ソウル報告
Ietf97 ソウル報告Ietf97 ソウル報告
Ietf97 ソウル報告
 
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
 
後期02
後期02後期02
後期02
 
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjpIETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
 
Community_Update_JP
Community_Update_JPCommunity_Update_JP
Community_Update_JP
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
2013 WebRTC node
2013 WebRTC node2013 WebRTC node
2013 WebRTC node
 
Let's begin WebRTC
Let's begin WebRTCLet's begin WebRTC
Let's begin WebRTC
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
HTTP/2.0と標準化
HTTP/2.0と標準化HTTP/2.0と標準化
HTTP/2.0と標準化
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocketWebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
 
IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告IETF94 M2M Authentication関連報告
IETF94 M2M Authentication関連報告
 
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016 20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
20160618_HTML5プロフェッショナル認定試験レベル1 技術解説セミナー in OSC北海道2016
 
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
 
httpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポートhttpbis interim@チューリッヒ レポート
httpbis interim@チューリッヒ レポート
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
Apache CloudStack Documentation
Apache CloudStack DocumentationApache CloudStack Documentation
Apache CloudStack Documentation
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 
GitHub Actions + Cloudflare API
GitHub Actions + Cloudflare APIGitHub Actions + Cloudflare API
GitHub Actions + Cloudflare API
 

More from Kaoru Maeda

Emacs TypeScript
Emacs TypeScriptEmacs TypeScript
Emacs TypeScriptKaoru Maeda
 
IETF103の話題から (HTML5 Conf 2018)
IETF103の話題から (HTML5 Conf 2018)IETF103の話題から (HTML5 Conf 2018)
IETF103の話題から (HTML5 Conf 2018)Kaoru Maeda
 
IETF102 Report Authorization
IETF102 Report AuthorizationIETF102 Report Authorization
IETF102 Report AuthorizationKaoru Maeda
 
From an Experience of Vulnerability Reporting
From an Experience of Vulnerability ReportingFrom an Experience of Vulnerability Reporting
From an Experience of Vulnerability ReportingKaoru Maeda
 
IETF93プレ勉強会、ARTエリアの歩き方
IETF93プレ勉強会、ARTエリアの歩き方IETF93プレ勉強会、ARTエリアの歩き方
IETF93プレ勉強会、ARTエリアの歩き方Kaoru Maeda
 
IETF92報告IoT関連
IETF92報告IoT関連IETF92報告IoT関連
IETF92報告IoT関連Kaoru Maeda
 
IETF91報告arcmedia-mcic
IETF91報告arcmedia-mcicIETF91報告arcmedia-mcic
IETF91報告arcmedia-mcicKaoru Maeda
 
Ietf91報告 httpbis-httpauth
Ietf91報告 httpbis-httpauthIetf91報告 httpbis-httpauth
Ietf91報告 httpbis-httpauthKaoru Maeda
 
HTTP/2 Local activities in Japan
HTTP/2 Local activities in JapanHTTP/2 Local activities in Japan
HTTP/2 Local activities in JapanKaoru Maeda
 
IETF90 IoT関連WG報告 #isocjp
IETF90 IoT関連WG報告 #isocjpIETF90 IoT関連WG報告 #isocjp
IETF90 IoT関連WG報告 #isocjpKaoru Maeda
 
HTTP/2 draft 14 preview and IETF90 httpbis WG Report
HTTP/2 draft 14 preview and IETF90 httpbis WG ReportHTTP/2 draft 14 preview and IETF90 httpbis WG Report
HTTP/2 draft 14 preview and IETF90 httpbis WG ReportKaoru Maeda
 
httpbis WG IETF89レポート
httpbis WG IETF89レポートhttpbis WG IETF89レポート
httpbis WG IETF89レポートKaoru Maeda
 
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜Kaoru Maeda
 
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみた
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみたRubyコードゴルフ「ぐるぐる渦巻き」に参加してみた
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみたKaoru Maeda
 
Fizzbuzz in Complex Plane
Fizzbuzz in Complex PlaneFizzbuzz in Complex Plane
Fizzbuzz in Complex PlaneKaoru Maeda
 
Lightning Talks日本上陸
Lightning Talks日本上陸Lightning Talks日本上陸
Lightning Talks日本上陸Kaoru Maeda
 

More from Kaoru Maeda (17)

Emacs TypeScript
Emacs TypeScriptEmacs TypeScript
Emacs TypeScript
 
IETF103の話題から (HTML5 Conf 2018)
IETF103の話題から (HTML5 Conf 2018)IETF103の話題から (HTML5 Conf 2018)
IETF103の話題から (HTML5 Conf 2018)
 
IETF102 Report Authorization
IETF102 Report AuthorizationIETF102 Report Authorization
IETF102 Report Authorization
 
From an Experience of Vulnerability Reporting
From an Experience of Vulnerability ReportingFrom an Experience of Vulnerability Reporting
From an Experience of Vulnerability Reporting
 
IETF93プレ勉強会、ARTエリアの歩き方
IETF93プレ勉強会、ARTエリアの歩き方IETF93プレ勉強会、ARTエリアの歩き方
IETF93プレ勉強会、ARTエリアの歩き方
 
Tokbind-fido
Tokbind-fidoTokbind-fido
Tokbind-fido
 
IETF92報告IoT関連
IETF92報告IoT関連IETF92報告IoT関連
IETF92報告IoT関連
 
IETF91報告arcmedia-mcic
IETF91報告arcmedia-mcicIETF91報告arcmedia-mcic
IETF91報告arcmedia-mcic
 
Ietf91報告 httpbis-httpauth
Ietf91報告 httpbis-httpauthIetf91報告 httpbis-httpauth
Ietf91報告 httpbis-httpauth
 
HTTP/2 Local activities in Japan
HTTP/2 Local activities in JapanHTTP/2 Local activities in Japan
HTTP/2 Local activities in Japan
 
IETF90 IoT関連WG報告 #isocjp
IETF90 IoT関連WG報告 #isocjpIETF90 IoT関連WG報告 #isocjp
IETF90 IoT関連WG報告 #isocjp
 
HTTP/2 draft 14 preview and IETF90 httpbis WG Report
HTTP/2 draft 14 preview and IETF90 httpbis WG ReportHTTP/2 draft 14 preview and IETF90 httpbis WG Report
HTTP/2 draft 14 preview and IETF90 httpbis WG Report
 
httpbis WG IETF89レポート
httpbis WG IETF89レポートhttpbis WG IETF89レポート
httpbis WG IETF89レポート
 
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
 
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみた
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみたRubyコードゴルフ「ぐるぐる渦巻き」に参加してみた
Rubyコードゴルフ「ぐるぐる渦巻き」に参加してみた
 
Fizzbuzz in Complex Plane
Fizzbuzz in Complex PlaneFizzbuzz in Complex Plane
Fizzbuzz in Complex Plane
 
Lightning Talks日本上陸
Lightning Talks日本上陸Lightning Talks日本上陸
Lightning Talks日本上陸
 

http2study 20160423 IETF95 Report

  • 1. https://lepidum.co.jp/ IETF 95 Report: httpbis, tls WG 株式会社レピダム 前田 薫 (@mad_p) http2study 2016/04/23 http2study 2016/04/23
  • 2. https://lepidum.co.jp/ IETF95  Buenos Aires, Argentina, Apr 2-8  1002 participants  US, AR, CN, FR, DE, GB, CA, JP, BR, others http2study 2016/04/23
  • 3. https://lepidum.co.jp/ httpbis WG (Monday and Thursday)  Working group to maintain and develop the "core" specifications for HTTP.  Chair: Mark Nottingham (Akamai)  agenda:  https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/agenda.md  minutes:  https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/minutes.md http2study 2016/04/23
  • 4. https://lepidum.co.jp/ Topics from httpbis  Finished Documents  RFC7694: Client Initiated Content Encoding  RFC7725: An HTTP Status Code to Report Legal Obstacles  RFC7838: Alternative Services  Opportunistic security  Character Encoding and Language for Parameters  Client hints  HTTP Encryption Content Encoding  JSON Header Field Values  ORIGIN frame and connection coalescing  Client authentication with certificates  Cache Digest  Decomposing the Hypertext Transfer Protocol  Merkle Integrity Content Encoding  Secure Content Delegation using HTTP and Caching Secure HTTP Content using Blind Caches http2study 2016/04/23
  • 5. https://lepidum.co.jp/ Opportunistic security  draft-ietf-httpbis-http2-encryption-04  だいたい議論は終わり?  .well-known/http-opportunistic の問題を検討  { "origins": ["http://example.com", "http://www.example.com:81"], "commit": 86400 }  commit: この期間、セキュアコンテンツを提 供する  commitの時間とwell-knownリソースの寿命を分 離 http2study 2016/04/23
  • 6. https://lepidum.co.jp/ Character Encoding and Language for Parameters  draft-ietf-httpbis-rfc5987bis-01  HTTPヘッダの国際化方法  foo: bar; title*=utf-8'en'%C2%A3%20rates  foo: bar; title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates  「=」を「*=」に  「エンコーディング'言語'%エンコした文 字列」  くぎりがアポストロフィーなのアレだけど http2study 2016/04/23
  • 7. https://lepidum.co.jp/ Client Hints  draft-ietf-httpbis-client-hints-00  リソースのレイアウトなど、デバイスに合わせて最適化したい。DPR (Device Pixel Ratio), Width of the screen, or Viewportなどを使う。いまま ではUAを見て判定していた  RFC7234 では"Vary"ヘッダを使って、UAやクッキーに依存したコンテ ンツであることを示せると定義  Client Hintsはクライアントがその情報をサーバーに伝えるヘッダ群の こと  DPR: 2.0  Width: 320  Viewport-Width: 320  これらの値に依存してコンテンツを作った場合、サーバーはVaryヘッ ダに加えてKeyヘッダも出す  サーバーはAccept-CH ヘッダを送って、クライアントがClient Hintsを 送ってくれれば考慮するよーと知らせることも可能 http2study 2016/04/23
  • 8. https://lepidum.co.jp/ HTTP Encryption Content Encoding  draft-ietf-httpbis-encryption-encoding-01  HTTPペイロードを暗号化する  HTTP/1.1 200 OK  Content-Type: application/octet-stream  Content-Encoding: aesgcm  Connection: close  Encryption: keyid="http://example.org/bob/keys/123";  salt="XZwpw6o37R-6qoZjw6KwAw"  AES-GCM固定 → CFRGから助言もらわないとね  EKR: 暗号化を考えるなら署名もいっしょでな いと http2study 2016/04/23
  • 9. https://lepidum.co.jp/ JSON Header Field Values  draft-reschke-http-jfv-03  HTTP ヘッダはparseしにくい。特に同一の フィールド名が複数あって連結するときや、 エスケープがある場合 → JSONにしようぜ  JSON ただし全体を [] で囲っているとして扱う  WWW-Authenticate: { "Newauth" : { "realm": "apps", "type" : 1, "title": "Login to ¥"apps¥"" }}, { "Basic" : { "realm": "simple"}}  JSONがchattyなら CBOR使えばいいよねー  Date型とか導入したくなるのをどうするか http2study 2016/04/23
  • 10. https://lepidum.co.jp/ ORIGIN Frame  draft-nottingham-httpbis-origin-frame-01  同一のHTTP/2 connection上で、他のオリジンも 提供できることを示すORIGIN frame  connection coalescingできることを明示 http2study 2016/04/23 https://docs.google.com/presentation/d/1r7QXGYOLCh 4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/ Ilya
  • 11. https://lepidum.co.jp/ Client authentication with certificates  draft-thomson-http2-client-certs-02  リアクティブなクライアント証明書認証には問題があっ た  TLS の client cert auth はセッション単位  TLS を開始した後でクライアント証明書認証の必要なリソースにア クセスしたらどうする?  TLS 1.2では renegotiation; TLS 1.3では spontaneous authを使う  不統一。めんどう  h2ではどのアクセスが認証を必要としたのかわからない  解決方法: 証明書検証に必要な道具をHTTP/2 Frameとし て実装  request-idを導入し、対応が取れるように  connection単位で証明書一覧を管理、streamごとに使う http2study 2016/04/23
  • 12. https://lepidum.co.jp/ Client Cert Example http2study 2016/04/23 https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/client_certs.pdf
  • 13. https://lepidum.co.jp/ Cache Digest  draft-kazuho-h2-cache-digest  CACHE_DIGESTフレームを定義 http2study 2016/04/23 以前の提案ではヘッダだったが、 本提案ではフレーム connectionにつき1回送ればよい http://www.slideshare.net/kazuho/http-58452175
  • 14. https://lepidum.co.jp/ Merkle Integrity Content Encoding  draft-thomson-http-mice-00  SRI (Subresource Integrity)は遅い  <script src="https://example.com/main.js" integrity="sha384-TNShKsRojXl/CWi2MfheXDy9KEk..." />  全部読み終わってからでないと検証できない  プログレッシブロードできない  エラーハンドリングが難しい  解決策: ハッシュチェイン  ハッシュの生成: コンテンツの後ろから、ブロック ごとにハッシュを計算し、各ブロックの前に置く  最初のブロックのハッシュに署名してヘッダに置 く http2study 2016/04/23
  • 17. https://lepidum.co.jp/ Secure Content Delegation using HTTP and Caching Secure HTTP Content using Blind Caches  draft-thomson-http-scd-00  draft-thomson-http-bc-00  ベースになっているのはContent-Encoding: out-of-band  CE: OOB、みんな知ってる? http2study 2016/04/23
  • 18. https://lepidum.co.jp/ 'Out-Of-Band' Content Coding for HTTP  draft-reschke-http-oob-encoding-04 http2study 2016/04/23 Request: GET /test HTTP/1.1 Host: www.example.com Accept-Encoding: gzip, out-of-band Response: HTTP/1.1 200 OK Date: Thu, 14 May 2015 18:52:00 GMT Content-Type: text/plain Cache-Control: max-age=10, public Content-Encoding: out-of-band Content-Length: 145 Vary: Accept-Encoding { "URIs": [ "http://example.net/bae27c36-fa6a-11e4-ae5d-00059a3c7a00" ], "fallback": "/c/bae27c36-fa6a-11e4-ae5d-00059a3c7a00" } クライアントは、ここを取りに行って、 このへんのヘッダと合体させて HTTPレスポンスを作る 暗号化も可能。キーをCrypto-Keyで渡す
  • 19. https://lepidum.co.jp/ Caching Secure HTTP Content using Blind Caches http2study 2016/04/23 https://github.com/httpwg/wg-materials/blob/gh-pages/ietf95/BC.pdf シェアドキャッシュが できますね!
  • 20. https://lepidum.co.jp/ Secure Content Delegation using HTTP  Proxyが中身を見れない状態でシェアド キャッシュできた!  同じキャッシュを使ってる人は、オリジン から同じリソースのURIもらえば、Proxyが 持ってるキャッシュもらえますね!  オリジンにURI教えてもらうために1RTTもっ たいないよね  Server Pushで送っちゃおう! コンテンツ関連 のヘッダなしだと、HPACKでよく縮むしね! http2study 2016/04/23
  • 22. https://lepidum.co.jp/ Future of HTTP  HTTP Workshop 2015, 2016  Jul 2016 in Stockholm  https://httpworkshop.github.io/  Jul 2015 in Münster  https://github.com/HTTPWorkshop/workshop2015/wiki/2015-Report  List of ideas for HTTP  https://github.com/HTTPWorkshop/workshop2015/wiki/HTTP-Ideas  Some of them have been proposed in IETF http-wg  HTTP/2 Extensions enable experiments in the field (e.g. Cache digest) http2study 2016/04/23
  • 23. https://lepidum.co.jp/ tls WG  The primary purpose of the working group is to develop (D)TLS v1.3.  Chair  Joe Salowey, Sean Turner  agenda:  https://tools.ietf.org/wg/tls/agenda?item=agenda-95-tls.html  minutes  http://etherpad.tools.ietf.org:9000/p/notes-ietf-95- tls?showControls=true&showChat=true&showLineNumbers=true&useMonospaceFont=tru e http2study 2016/04/23
  • 24. https://lepidum.co.jp/ TLS 1.3 topics  https://www.ietf.org/proceedings/95/slides/slides-95-tls-2.pdf  Changes since draft-10  Outstanding consensus calls  1-RTT PSK and session tickets  Context values  Key schedule and key separation  0-RTT details http2study 2016/04/23
  • 25. https://lepidum.co.jp/ Changes since draft-10  Restructure authentication along uniform lines *  Restructure 0-RTT record layer *  Reset sequence numbers on key changes  Import CFRG Curves  Zero-length additional data for AEAD  Revised signature algorithm negotiation *  Define exporters *  Add anti-downgrade mechanism *  Add PSK cipher suites http2study 2016/04/23
  • 26. https://lepidum.co.jp/ Any Questions? Please Give Feedbacks! https://lepidum.co.jp/ mailto:maeda@lepidum.co.jp / twitter: @mad_p http2study 2016/04/23