CloudFlareの提案するHTTP/2の圧縮辞書拡張

IETFのHTTPbis wgでCloudFlareの方より「Compression Dictionaries for HTTP/2」(URL)という仕様が提案されている。 これは、Content-Encodingヘッダで指定される圧縮アルゴリズム向けの初期ウィンドウに使用される辞書データを事前に送る拡張を定義する。 C…

googleの新しい時刻同期プロトコル Roughtimeとは

Googleの「Adam Langley氏のブログ」で、新しい時刻同期プロトコルについて紹介されている。このRoughtimeは特定のタイムサーバに依存しないセキュアな方法で時刻同期を行うことを目的としたプロトコルです。すでに、googleのサーバで動作しており、roughtim…

XSSを防ぐ新しいXSS-Protectionヘッダ

w3c

evalとreportOnlyについて追記しました (2016/10/10) 2016/10/20 仕様名は以下の通りになりました。Anti-XSS Response-Time Uniqueness Requirement また、ヘッダ名は、XSS-Protectionヘッダではなく、ARTURヘッダとなっておりますが、また変更される可能性…

Chrome 56 のHTTPサイトへの日本語版警告

Web

「Moving towards a more secure web」でアナウンスされているように、2017年1月にリリースされる予定のChrome 56でHTTPサイトへの警告が表示されるようになる。 日本語のサイトでも取り上げられている Google、2017年からChromeでいくつかのHTTPサイトを「…

Secure Contextsに関する localhost と、IETFでの新提案

Secure Contexts Service Workers、Web BluetoothといったAPIは、安全に使用するためにセキュリティ上の条件があります。 その条件がSecure Contextと呼ばれるコンテキストであり、W3CのSecure Contexts(URL)というドキュメントで定義されています。 このSec…

wicgのFace detection API

w3c

wicgで議論になっている「Face detection API」の仕様が「Shape Detection in Images」としてwicgのリポジトリで公開されている。 https://wicg.github.io/shape-detection-api/ Shape Detection in Images HTMLImageElement、HTMLCanvasElement、ImageData…

HTTP/2のデバック用情報エンドポイントの仕様

HTTP/2 Implementation Debug State 「HTTP/2 Implementation Debug State」というHTTP/2用のデバッグ情報を表示するエンドポイントの仕様が、IETFに提出されています。https://tools.ietf.org/html/draft-benfield-http2-debug-state-01 サーバの「.well-kn…

Site-Wide HTTP Headers とは

Mark Nottingham氏から、HTTPレスポンスヘッダをサイト全体で使いまわせるようにする 「Site-Wide HTTP Headers」 という仕様が提案されています。https://tools.ietf.org/html/draft-nottingham-site-wide-headers-00 例えば、Public-Key-PinsやStrict-Tran…

ポリシーをオリジン全体に適応する Origin Policy

w3c

WICGで議論されている「Set origin-wide policies via a manifest」の仕様がGoogleのMike West氏から提案されています。この「Origin Policy」と言う仕様は、氏のGithubリポジトリから確認できます。 これは、Content-Security-PolicyやReferrer-Policyとい…

QUICの仕様を翻訳していく

2017年追記 2017年時点で、仕様は更新され、拡張仕様も出てきています。 asnokaze.hatenablog.com QUIC in ietf96 「Google の試験的トランスポート、QUIC のアップデート」などでも紹介されている、Googleが提案・実装してるQUIC。 すでに関連するドキュメ…

iframeのアプリケーションにPermissionを委譲する仕様

w3c

Permission Delegation To Embedded Web Applications iframeで埋め込まれたクロスオリジンのWebアプリケーションがPermissionを要求するとこともあります、しかしユーザにとっても分かりづらく、扱いづらい点があります。Googleの調査でも、ユーザはiframe…

Go実装のWebサーバ CaddyのQUICを試す

2016/060/15追記 alt-svcヘッダのセットは、有効な証明書を使用したhttpsで行う必要がありました ブラウザは53.0.2768.0 (Official Build) canaryでのみ動作確認しました Go実装のWebサーバであるCaddyが実験的にQUICのサポートをしました。簡単に動かしてみ…

Feature Policy、ブラウザの特定機能を無効にする仕様

w3c

W3CでFeature Policyという仕様が議論されています。仕様は著者であるGoogleのIlya Grigorik氏のリポジトリ(URL)より確認できます。 このドキュメントはまだW3C公式のドキュメントとはなってはいませんが、先月行われたFace-to-Faceのミーティングでも議論が…

Firefox Nightly がTLS1.3対応したので試す

TLS

Chrome canaryも、chrome://flagsよりTLS1.3を有効にできるようになりました(2016/08/08) FirefoxがNgithlyでTLS1.3に対応したので試す TLS1.3 TLS1.3は、TLS1.2より様々な改善が行なわれています。 個人的には、大きな所で ハンドシェイクのRTT削減 セキュ…

安全でない通信路でセットされたCookieの有効期限を短くする仕様

安全でない通信路で設定されたCookieについて有効期限を短くする「Expiring Aggressively Those HTTP Cookies」という仕様がMozillaのMartin Thomsonから提案されています。 Expiring Aggressively Those HTTP Cookies https://tools.ietf.org/html/draft-th…

Mixed ContentのブロックされたURIをレポートさせる仕様追加

w3c

Mixed Content Mixed Contentと言う仕様により、httpsで提供しているページの中でhttpで提供するリソース(script等)があるとそのリソースはブロックされます。 このMixed Contentには、Content Security Policyのblock-all-mixed-contentディレクティブも定…

RFC8246 Cache-Control: immutableについて

追記 20170915 RFC8246として標準化されました こちらの記事で紹介されている、"Cache-Control: immutable"について試してみる https://bitsup.blogspot.jp/2016/05/cache-control-immutable.html?m=1 Cache-Control: immutable 基本的にブラウザは、画像な…

CloudFlareのNGINX HTTP/2 + SPDY両対応するパッチを試す

CloudFlareから、「Open sourcing our NGINX HTTP/2 + SPDY code」という記事にて、NginxをHTTP2とSPDYに両方に対応するパッチが公開されました。 NginxはHTTP2対応に伴い、SPDYのコードは削除されました。しかし、一部古いブラウザはSPDYまでしか対応してな…

TLS1.3のgo実装 Mintを触ってみる

TLS

関連記事 20160607 FirefoxのTLS1.3対応が来たので通信させてみました 「Firefox Nightly がTLS1.3対応したので試す」 TLS1.3 TLS1.3は、TLS1.2より様々な改善が行なわれています。 個人的には、大きな所で ハンドシェイクのRTT削減 セキュリティーの改善。…

ブラウザのクレデンシャル管理と連携するCredential Managementを試す

w3c

Credential Management クレデンシャル管理機能と連携するためのAPI仕様「Credential Management」がW3Cで議論されています。 https://www.w3.org/TR/credential-management/ ブラウザは、Webサイトにログインするためのユーザ名・パスワードといった資格情…

HTTP/2における証明書に基づいたリアクティブなクライアント認証 その2

この記事は Secondary Certificate Authentication in HTTP/2 という仕様にマージされました 「HTTP/2における証明書に基づいたリアクティブなクライアント認証 その1」(2015-10-23) 「Reactive Certificate-Based Client Authentication in HTTP/2」 の dr…

CSP3のunsafe-dynamicとunsafe-hash-attributes

w3c

unsafe-dynamicは'strict-dynamic'という別ディレクティブとなりました (20160622) Content Security Policy Level 3のFirst Public Working Draftが1月に公開されました。 以前「まもなく公開される CSP Level3 の変更点」この記事で書いたように、CSP leve…

Nginxでchacha20 poly1305を有効にする

昨今話題にchacha20 poly1305ですが、Nginx 1.9.14で「OpenSSL 1.1.0 compatibility.」ということで早速試してみる。 git clone https://github.com/openssl/openssl.git wget http://nginx.org/download/nginx-1.9.14.tar.gz tar zxvf ./nginx-1.9.14.tar.g…

NGINX Amplifyを触ってみる

Nginxが提供する、クラウドサービスNGINX Amplifyをざっと触ってみた。 サーバにエージェントをインストールすることで、メトリックのグラフ化・Nginxのconfに関するレポート・アラート等をWebから確認できる。 グラフ OSのCPU・メモリ・ネットワーク等のメ…

BlinkのMLで提案されている AppInstalled API とは

AppInstalled API Blinkのメーリングリストで AppInstalled API (https://github.com/DHNishi/IsNativeAppInstalled/blob/master/explainer.md )という仕様が提案されています。 AppInstalled APIは、Webサイトが、そのサイト用のネイティブアプリケーション…

Captive Portal Problem Statementについて

Captive Portalについて議論を行うcapport wgが出来、IETF95で初めてのミーティングが行なわれます。 Captive Portalとは、よくWi-Fi接続後にブラウザでWebベースの認証が別途要求されるアレです。このCaptive Portalが引き起こす問題について議論をするため…

プライベートネットワークへのCSRFを緩和する仕様の提案

w3c

GoogleのMike West氏によって、Chromiumのメーリングリスト上で「インターネットからイントラネットへのCORSの厳格化」に関する提案が行われている。 「CORS and RFC1918」として提案している仕様も公開されているが、個人のリポジトリであり、W3Cのドキュメ…

QUICはXORベースのFECをやめるらしい

QUICのXORベースのFECに関して、実験を行った結果無効にすると言う報告がありました。 https://groups.google.com/a/chromium.org/forum/?nomobile=true#!topic/proto-quic/Z5qKkk2XZe0 まとめとしては QUICチームは、QUICのXORベースの複数の実験をした 殆…

apache2 mod_http2のhttp2-status

HTTP/2のデバック用情報エンドポイントの仕様 http://d.hatena.ne.jp/ASnoKaze/20160907/1473180491 HTTP/2デバッグ用エンドポイントの仕様が議論されており、mod-h2のhttp2-statusの出力もそれに準拠するようになりました(2016/09/07) mod_http2の1.2.0で新…

Limited Use of Remote Keys(Lurk)についてのメモ

kazuhoさんのIETF95参加報告資料が参考になるかと思います(20160608追記) http://www.slideshare.net/kazuho/tls-lurk-ietf-95 2016年1月に、IETFで"Limited Use of Remote Keys(Lurk)"と言う議論が始まりました。 Lurkに関する議論はIETF95のBoFで議論され…

varnishtestがHTTP2対応して超便利!

既に記法が変わっています。サンプルコードはそのままでは使用できません。リポジトリ内のテストコードを参考にしてください (2016/04/04) 20161210 「varnishtestのHTTP/2対応 アップデート」にて、更新項目について書きました Varnish-Cacheのvarnishtest…

まもなく公開される CSP Level3 の変更点

w3c

Content Security Policy Level 3のFirst Public Working Draftがそろそろ公開されそうです。 W3Cのgithubリポジトリより公開予定の仕様が確認できます。 https://w3c.github.io/webappsec-csp/published/FPWD-2015-01.html CSP2からの変更点 CSP3では主に以…

2015年振り返り

2015年の振り返りです。 今年は個人としてIETF参加・SoftwareDesignへの寄稿・勉強会登壇など出来ました、それも色々な人々に助けて頂けたおかげです。 ですが、本当はもうちょっと頑張れたような気がしています。 ブログの方も約50の記事を書けました。 ID…

Apache 2.4.18 のHTTP2 ServerPushを試す

Apache 2.4.18より HTTP/2のサーバプッシュを試す。 http://ftp.riken.jp/net/apache//httpd/CHANGES_2.4.18 ビルド 「Apache 2.4.17のmod_http2試す」を参考に、環境を整えておきます。 wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.18.tar.gz ta…

Nginxにgprof掛けて、HTTP/2周りの関数呼び出し順を確認したりした

本記事は http2 Advent Calendar 2015 の 13 日目の記事となります。 すみません、すみません。。。 以前、nginx 1.9.3 のHTTP/2部分のコードを読んでいたのですが、続きを出来てなかったので続きをやろうと思いましたが、間に合いませんでした。。。 gprof…

HTTP/2 GZIPPED_DATA フレームとは

このエントリは、 http2 advent calendar の 8 日目の穴埋めです。 HTTP/2にGZIPPED_DATAフレームという拡張フレームを追加する提案が提出されている。フレームの追加に伴って、エラーコード・Settingsも追加される。 HTTP/2 Gzipped Data https://tools.iet…

Cookieを制御する、CSPのcookie-scopeディレクティブ

CSPでCookieのセットを制限する"cookie-scope"ディレクティブが「 Content Security Policy: Cookie Controls」という仕様で提案されています。 以下のCookieに関する仕様を提案しているMike West氏による提案である Cookie Prefixes Origin Cookies Depreca…

Chrome デベロッパーツールに表示される Priority と HTTP/2

このエントリは、 http2 advent calendar の 5 日目です。 ここまで豪華執筆陣による記事が続いてるところに恐縮です。 (あとChromeのコードへの理解が足りず、間違いがあるかもしれません。ご注意下さい) Chrome デベロッパーツールのPriority 先日、Chro…

移動

Chrome デベロッパーツールの Priority と HTTP/2 すみません、コチラです http://d.hatena.ne.jp/ASnoKaze/20151205/1449245683

CSP Embedded Enforcementとは

w3c

W3Cで「Content Security Policy: Embedded Enforcement」という仕様が公開された(First Public Working Draft)。ちょっと読んでみた。 現在はCSPを利用しても、iframeで提供されるサードパティのウィジェットに制限を設けることは出来ませんでした。そこ…

同一オリジンに境界を設ける Suborigins とは

w3c

Webセキュリティを考える上で大事な仕組みの一つに、Same-Origin Policyという仕組みがあります。 Originは「スキーム・ホスト・ポート」の組み合わせです。これらが一緒であれば、同一Originでありリソースへアクセスすることができます。 歴史的経緯や様々…

HSTS Primingとは

w3c

先日行われたTPAC 2015で議論があったらしい「HSTS Priming」について軽く眺めてみる。 議論されているHSTS Priming自体は、EditorであるMike West個人のリポジトリ(URL)にて仕様が公開されている。 HSTS Priming オリジンAで、以下のHTMLを含んでいるとする…

HTTPのためのTCPチューニング (Best Current Practice)

HTTPを効率よく使用するためにTCPのチューニングはかかせません。 Best Current Practiceカテゴリとして「TCP Tuning for HTTP (draft 00)」というInternet-Draftが提出されているので、ざっと目を通した。(割と適当) 大きく分けて下記の5つについて書かれ…

HTTP/2に「ORIGINフレーム」を追加する拡張仕様

HTTP/2では、一定の条件が満たされれば異なるオリジンとの通信を一つのコネクション上で行うことが出来ます。サーバは、クライアントが要求したオリジンに対する権威がない場合は421 (Misdirected Request)を返します。 (条件等は、rfc7540#section-9.1参照…

サーバプッシュのための「Accept-Push-Policyヘッダ」とは

HTTP/2ではサーバプッシュと呼ばれる機能があります。サーバはクライアントからのリクエストを受信しなくても先んじてレスポンスを返すことができる仕組みになります。 たとえば、HTTP/1.1においてリソースをインライン化していた部分をサーバプッシュとして…

XSSやCSRFリスクを軽減する、Entry Point Regulationとは

w3c

Entry Point Regulation とは 反射型XSS・XSSI・CSRFのリスクを軽減するユーザエージェント上の仕組みとして、W3CでEntry Point Regulationという仕様が策定中です。 Webアプリケーションの口(Entry Point)に幾つかの制限をかけることが出来ます。別オリジン…

HTTP/2における証明書に基づいたリアクティブなクライアント認証 その1

draft 01で大きくな変更が加えられました。証明書を要求するフローは以下より大きく変わりました。ご注意ください (2016/01/27) 「HTTP/2における証明書に基づいたリアクティブなクライアント認証 その2」でdraft02について書きました(2016/05/04) HTTP/2に…

Apache 2.4.17のmod_http2試す

mod_h2が Apache2.4.17でデフォルトで組み込まれたのでビルドして試してみる。 今回はopenssl1.0.2を使いたいのでubuntu15.10を使います。 以前のubuntuだとうまくいかないかもしれない nghttp2のインストール nghttp2をインストールしておく必要があります …

Cookieの属性を制限する Cookie Prefixesという仕様

"$Origin-"プレフィックスは削除され、"$Host-"プレフィックスが追加されました。 (2015/10/13追記)(2015/10/17 記事更新) 背景の、domain属性の指定に誤りがあったため修正しました。「domain=my-example.com」-> 「domain=example.com」(2015/10/14追記) d…

非セキュアなオリジンから'secure'クッキーの変更を廃止する提案

先日、HTTPSでsecure属性を付加した場合でも改変できると話が話題になりました。 クッキーの脆弱性が判明: HTTPS のセキュリティを突破する、攻撃が成り立ってしまう! HTTPSを使ってもCookieの改変は防げないことを実験で試してみた(2013/9/30) Cookies La…