HTTPヘッダに構造定義を与える Structured Headers の提案仕様

HTTPヘッダには、リストや辞書といった構造を表現するのに決まったやり方はありません。HTTPヘッダ毎にシンタックスや構造が定義されており、そのためパーサーが再利用出来ません。mnot氏とphk氏の共著で提出された「Structured Headers for HTTP」仕様では…

iframe内の転送量を制限する Transfer Size Policy とは

Webページにソーシャルボタンや広告といったiframeを埋め込むことがあります。この時、埋め込んだ側はiframeの中で使用されるリソースを制限する方法はありません。例えば動画を再生すればトラフィックとCPUが消費されますし、最近では実はBitcoinの採掘に利…

Content Security Policy(CSP) レポートのCORSと、Fetchの仕様変更

WHATWG, Fetch詳しくないので間違いがあればご指摘下さい Content Security Policy(CSP)やHPKPやExpect-CTでは、ユーザエージェントはセキュリティの違反を検出した際に、指定したURLにレポートを送信できる。例えば、下記のようにHTTPレスポンスヘッダにrep…

QUICとネットワーク管理/オペレーションの話

あわせて下記記事も参照のこと asnokaze.hatenablog.com ワイヤイメージ 経路上で出来ること QUICトラフィックの識別 バージョンの識別 不正なパケットの拒否 コネクション確立の確認 通信フローの関連付け 通信フローの切断検出(不可) ラウンドトリップタイ…

Mixed Content Level 2の議論

W3CのWeb Application Security WGのco-chairとなった GoogleのMike West氏から、11月に実施されるTPAC 2017に先立って「Mixed Content Level 2」という提案が出されている。 Mixed Content https://のURLで、http://のリソースを読み込むと警告・もしくはブ…

Akamai Edge 2017 に行ってきた

10月11~13日に、ラスベガスで開催されたAkamai Edge 2017に参加してきました。英語を聞きながらのメモなので断片的ではあるが、せっかくですので、面白かった所など紹介する。 オープニング・キーノート マルチソース・ストリーミング Bot Manager パフォー…

Device Memory APIを用いてデバイスのメモリサイズを取得する

背景 Webサービスでは、デバイスの性能毎に軽量版の機能を提供することが有ります。Google Search、Google Map、Facebookなどではローエンドデバイスでは一部軽量版のページを提供することが有ります。または、クライアントサイドで何かしらの処理速度などを…

WebSockets over HTTP2 の提案仕様。再び。

2018/03/10追記 WebSockets over HTTP2の更新分について、記事を別途書きました asnokaze.hatenablog.com2018/02/06追記 「Bootstrapping WebSockets with HTTP/2」はWG Draftになり、この方向で標準化が進む方向です。ただし、下記のプロトコルフローとは異…

TLS1.3とDC内での復号に関する熱い議論

各ブラウザや、OpenSSL・BoringSSLといった暗号ライブラリ、ミドルウェアのTLS1.3対応が進んでおり、実際に通信できるところまで来ている。標準化としても大詰めを迎えている。前回のIETFより話題に上がっている、TLS1.3に関するDC内での復号を目的とした議…

パスワードマネージャが適切にパスワードを生成できるようにするポリシーの提案仕様

パスワードの管理に、1PasswordやLastPassといったパスワードマネージャを使うのは一般的になってきています。そのようなパスワードマネージャはランダムなパスワードを生成しますが、Webサービスによって使える文字の種類や、長さというのはマチマチです。…

キャッシュサーバの効率を改善するHTTP Variantsという提案仕様

HTTP Variants IETFのHTTP WGやQUIC WGのチェアをしているmnot氏より、キャッシュの効率が改善する「Variants」というHTTPレスポンスヘッダを定義する「HTTP Variants」という提案仕様が出ています。この機能は、Fastly VCLの機能の標準化のようです。少々想…

HTML要素からHTTP/2優先度を指定する Priority Hints

HTTP/2ではリクエストは並列的に行われますが、クライアントは各リクエストに優先度を設定できます。サーバはこの優先度によって、レスポンスの順番(正確にはレスポンスを返すのに使用するリソース)を、制御しています。この優先度の設定はブラウザが自動で…

DNS Queries over HTTPS の標準化

「DNS Queries over HTTPS」の仕様の標準化が始まっている。今までもこのテーマはIETFにおいて何度か議論になってきましたが、今回 DNS Over HTTPS (doh) WGの設立に合わせて(まだProposed)、この「DNS Queries over HTTPS」の標準化がマイルストーンとなっ…

セキュリティの報告先を記述する、security.txtの提案仕様

Webサイトのセキュリティリスクを発見したものの、連絡先が適切に公開されていないがために、結局報告されず脆弱性が放置されるケースがあるようだ(国内だと、IPA脆弱性関連情報の届出受付もあるが)発見者が脆弱性等の報告を出来るような情報を、Web作成者が…

QUICにおける信頼性のないストリームの提案仕様

QUICはUDPを使用しますが、内部的にストリームという信頼性のある通信単位をもちます。ストリーム上では正しい順序での配送が保証され、パケットロスしたデータも回復されます。そのようなQUICに対して、信頼性のないストリーム、つまりパケットロスしても回…

TLS record_size_limit 拡張の提案

IoTデバイスなどリソースが制限されている端末でTLS通信を行うのには課題がある。特に送られてきたレコードを復号するのにはそれを計算する十分なメモリが必要になる。リソースが制限されている端末でも問題なく復号処理が出来るように、相手に受信したいレ…

W3CにおけるWeb Lifecycleの議論 (Page lifecycle)

20180523 追記Page Lifecycle等とも呼ばれているようです。 github.com下記内容は古く一部ことなっています W3CでWebPerf Web Performanceで、「Web Lifecycle」というトピックが議論に上っていた。(Agenda URL)これは、iOSアプリやAndroidアプリのActivity…

Chrome62から、http://でのフォームに入力すると警告が出るようになる

2017/10/18更新 Chrome 62がリリースされましたが。徐々に適応されていくようです。The field trial allows us to turn on the feature over time. It will be at 100% soon.— Eric Lawrence (@ericlaw) 2017年10月18日 Chrome 52(今年1月リリース)において…

GoogleのQUICの論文が知見の塊だった

概要 ACM SIGCOMM 2017という通信系の学会に、Googleの人 総勢21人によって書かれた「The QUIC Transport Protocol: Design and Internet-Scale Deployment」という論文が提出され、学会ホームページより閲覧出来る。この論文は、QUICの設計仕様と実際にGoog…

ジオロケーションを要求・送信する HTTP Geolocationヘッダの提案仕様

GoogleのLuis Barguno Jane氏より、HTTPヘッダでジオロケーション情報の要求・送信を可能にする「Geolocation Header for HTTP over a Secure Context」という仕様が出ています。 背景 ユーザエージェントにおいてジオロケーションの取得は「Geolocation API…

QUICにおけるヘッダ圧縮の提案仕様 QPACK(旧QCRAM)

20180313追記 QCRAMと呼ばれていた仕様は、QPACKに改称されました。 github.com 20180212 draft-04の変更点について その2を書きました。 asnokaze.hatenablog.com QUICとヘッダ圧縮 HTTP over QUICの仕様は現状、HTTP/2と同様HPACK(RFC 7541)を利用してHTTP…

minqを弄って memcached over quic を簡単に実装してみる

IETF QUIC QUICの標準化がIETFで進められています。QUICといえば既にChromeとGoogleのサービスで使用されていますが、そちらはGoogle QUICであり、IETFで標準化されているものとは微妙に異なっています。IETF QUICの方は仕様の策定の議論が重ねられるととも…

Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(2017/09/13更新)

2017/09/13 更新Googleのブログで公式アナウンスが出ました。 一部対応者の表記がDigiCertになりましたが、大きなスケジュール変更はありません security.googleblog.com 今年の上旬より、Chromeが古いシマンテックの証明書を失効扱いするニュースが世間を賑…

HTTP/2でのプライオリティ・プレースホルダの提案仕様

元々はHTTP over QUICでの議論に端を発するが、HTTP over QUICの仕様の著者でもあるMicrosoftのMike Bishop氏から「Priority Placeholders in HTTP/2」という仕様が提案されている。解説すると長くなるので割りと雑目ですみません HTTP2のプライオリティ制御…

Nginxで、リクエストを複製するmirrorモジュールが標準搭載された

[20170809追記] nginx-1.13.4に ngx_http_mirror_module は含まれました Nginxで、リクエストを複製するmirrorモジュールがコミットされ、何もせずとも使用できるようになりそうです(現状最新コミットをビルドする必要あり)。例えば本番環境のproxyからリク…

iphone(iOS 11)でMultiPath TCPを使う

すでにアナウンスされているとおり、iOS11よりMultipathTCP (MPTCP)のAPIがサードパーティデベロッパーに公開されます。実はiPhoneをお使いの人はすでに、iOS7からsiriでMPTCPが使われていたので裏ではすでに使われておりましたが、実際にみんなが試せるよう…

Happy Eyeballs Version 2 の仕様 (RFC8305)

2017/12/22 RFC8305として標準化されました。 なお、下記内容は標準化中の内容につき一部古いかと思われます。 IPv4とIPv6両方が利用可能なデュアルスタック環境において、通信する際にIPv6とIPv4を並列的に試してより早く通信の確立が出来た方を試す Happy …

.internal ドメインを予約する提案仕様

IETFのdnsop WGで .internal ドメインを予約する「The .internal TLD.」という仕様が、GoogleのWarren Kumari氏によって提案されています。DNSに関しては詳しくないのですが、ざっと読んだので簡単にメモ。 .internal .internalというドメインを内部的に使用…

Nginxのリバースプロキシでバックエンドとhttp2通信する

以前書いたとおり、ApacheではリバースプロキシでバックエンドとHTTP2通信することができます。asnokaze.hatenablog.comNginxの場合は、開発者のメーリングリストでGoogleの人が書いてる「ngx_http_v2_upstream」パッチを利用することでバックエンド(upstrea…

Webページを丸ごとパッケージングする Web Packagingとは

20180208追記 Bundled HTTP Exchangesについて記事を書きました Bundled HTTP Exchanges とは (WebPackagingの議論より) - ASnoKaze blog20180121追記 署名の仕組みとして Origin-Signed HTTP Exchanges を利用する方向のようです HTTP/2 クロスオリジン サ…