2015-01-01から1年間の記事一覧

2015年振り返り

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

Apache 2.4.18 のHTTP2 ServerPushを試す

20180208追記、Nginxも対応したようです NginxがHTTP2サーバプッシュに対応したので試す - ASnoKaze blog Apache 2.4.18より HTTP/2のサーバプッシュを試す。 http://ftp.riken.jp/net/apache//httpd/CHANGES_2.4.18 ビルド 「Apache 2.4.17のmod_http2試す…

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フレーム」を追加する拡張仕様

この記事は古くなっています。 2018/01/11 最新内容で書き直しましたのでそちらを参照のこと asnokaze.hatenablog.com HTTP/2では、一定の条件が満たされれば異なるオリジンとの通信を一つのコネクション上で行うことが出来ます。サーバは、クライアントが要…

サーバプッシュのための「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

20190311追記 最新仕様である Secondary Certificate Authentication in HTTP/2の解説記事を書きました asnokaze.hatenablog.com draft 01で大きくな変更が加えられました。証明書を要求するフローは以下より大きく変わりました。ご注意ください (2016/01/27…

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…

Content Security Policy Pinning (csp-pinning)とは

w3c

CSP Pinningという仕様がW3Cで検討されている。 https://w3c.github.io/webappsec/specs/csp-pinning/ CSPの設定をユーザエージェントに記憶させ、毎回CSPヘッダを送信しなくても良くする仕様である。 CSP そもそもCSPとは、JavsScriptや各リソースの読み込…

Nginx 1.9.5 でHTTP2を試そう!

opensslのバージョンに注意してください。NPNやALPNを使うのでバージョンを確認してください(追記) 本日公開されたNginx 1.9.5でHTTP2に対応しました!早速試しましょう!! ( http://nginx.org/en/CHANGES ) 今回もUbuntu14.04 (別のOSでも、パッケージor…

Nginxのhttp2_streams_index_sizeパラメータについて

Nginxのhttp2の設定項目にhttp2_streams_index_sizeがある。直感的には分かりにくかったのでちょっと調べる。 そのほかのパラメータは過去に書いたとおり、「Nginx 1.9.4 HTTP/2パッチのconf パラメータ設定項目」 streams_index配列 各ストリームに関する情…

Nginx HTTP/2の受信フレーム集計

こんな感じで、Nginxの受信フレームをグラフ化する。 デバッグログからFluentdでMackerel APIを叩く感じ。 ビルド NginxのHTTP/2パッチがTrunkに取り込まれたので、改めてビルド。 wget http://hg.nginx.org/nginx/archive/tip.tar.gz tar zxvf ./tip.tar.gz…

Multipath TCPとL4バランシングのI-D

一年ほど前に書いた「MPTCP(MultiPath TCP)と負荷分散ってどうなんだろう」関連の話。 先日、まさに「Multipath TCP behind Layer-4 loadbalancers」と言うI-Dが出てました。iOSのsiriではMPTCPを使っているようですが、Appleの方もAuthorに含まれています。…

Nginx 1.9.4 HTTP/2 のconf パラメータ設定項目

Nginx 1.9.5でHTTP2がサポートされました。パラメータ自体は本記事から変わりません。(2015/09/23) http2_max_field_sizeの挙動が変わったようです (2015/11/12) http://hg.nginx.org/nginx/rev/1f26bf65b1bc Nginx 1.9.4 + patch.http2-v5_1.9.4.txtで使え…

Clear Site Data、ブラウザのローカルデータを削除する仕組み

w3c

20180724追記 動いた Clear-Site-Dataヘッダでブラウザに記憶されているデータを消す - ASnoKaze blog 背景 Webサイトは様々な理由で、ユーザのローカルにデータを保存します Cookieといった状態を管理するための情報 Cacheといった、Webサイトのパフォーマ…

HAProxyでHTTP/2のTLS終端する際のALPN設定

HAProxy 1.5でALPNに対応していた。 HTTP/2 over TLSの通信を、HAProxyでTLSを終端することで、TLS対応を行わないであろうVarnishなどでもh2c接続が可能となる。 (HAProxy自体のhttp2対応はまだ先) 今回はバックエンドにNginxをh2cでリッスンさせて試してみ…

Nginx http/2 アルファパッチを本番で試しちゃダメだよ

Nginx http/2 アルファパッチを本番で試しちゃダメだよ ちなみに報告済み。既知らしく、アルファパッチは本番で使っちゃダメとのこと。 2015年8月現在。 nginx1.9.4 + patch.http2-v3_1.9.4.txt 0. せってい reverse proxyとして動かす。 server { listen 80…

nginxでアクセスログにhttp2の通信か出力する

「nginxでアクセスログにspdyのバージョンを出す」の時と同様にlog_formatで出力できる。 nginx 1.9.3 + patch.http2-v2で試す 環境構築は「nginx1.9.3 HTTP/2 パッチを試す」 設定 http { log_format main '$remote_addr - $remote_user [$time_local] "$re…

ssl_prefer_server_ciphersを有効にしたらERR_SPDY_INADEQUATE_TRANSPORT_SECURITYが出るようになった。

ubuntu14.04で、Nginx1.9.3 + patch.http2-v2 + openssl1.0.2d 環境構築は「nginx1.9.3 HTTP/2 パッチを試す」 server { listen 443 ssl http2 ; ssl_prefer_server_ciphers on; #★offにすると繋がる server_name localhost; ssl_certificate xxx.crt; ssl_c…

nginx1.9.3 HTTP/2 パッチを読むメモ(day1

patch v2が公開されました、すでに内容は古くなっています(2015/08/16) 前回の「nginx1.9.3 HTTP/2 パッチを試す」に引き続き、nginxのhttp/2パッチを読んでみる。 ただし、nginx初心者なのでnginx的な部分については全然理解していない...基本的には自分用…