タグ

ブックマーク / asnokaze.hatenablog.com (20)

  • Cookieの改訂版仕様 rfc6265bis の変更点 - ASnoKaze blog

    Cookieの改訂版仕様 rfc6265bis について、その変更点をざっと眺めていく はじめに SameSite属性 Cookie名プレフィックス (Cookie Name Prefixes) __Secureプレフィックス __Hostプレフィックス 非セキュアなオリジンからの Secure属性の上書きを禁止 nameless cookieの許容 Cookie名、Cookie値の上限長の指定 Expires属性の年が2桁の場合の処理の指定 Max-Age/Expires の上限 その他 今回入らなかった機能 はじめに Cookieの仕様は『RFC 6265: HTTP State Management Mechanism』として標準化されています。 そのCookieの仕様の改訂版が『rfc6265bis』と呼ばれているもので、現在標準化作業が進められいています。"SameSite属性"

    Cookieの改訂版仕様 rfc6265bis の変更点 - ASnoKaze blog
  • 逆向きに接続する Reverse HTTP Transport の仕様 - ASnoKaze blog

    『Reverse HTTP Transport』という提案仕様がIETFに提出されています。著者はMetaとNokiaの方々らです。また、HAProxyの方も同様の機能を検討しているそうです(参考URL)。 普通のProxyサーバでは、Proxyサーバからオリジンサーバにコネクション確立するのが一般的です。そのためにオリジンサーバが外部から接続を受けられるようにする必要があります。 Reverse HTTP Transportでは、逆にオリジンサーバからProxyサーバにコネクションを確立し、HTTPリクエストを受け付けるという構成になります。コネクションの確立/TLSハンドシェイクだけが逆向きで、コネクション確立された接続上で、ProxyからHTTPリクエストが送られます。 これによりオリジンサーバをインターネットに公開する必要がなくなります。 プロトコルについて この Reverse

    逆向きに接続する Reverse HTTP Transport の仕様 - ASnoKaze blog
  • 一般ユーザに払い出すと危険なサブドメインやメールアドレス - ASnoKaze blog

    ユーザに対して、そのユーザ名のサブドメインやメールアドレスを払い出すWebサービスがあります。 しかし、特定のサブドメインやメールアドレスは特別な用途で使われているものもあります。そのようなサブドメインやメールアドレスを一般ユーザに払い出してしまうと危険です。 現在、IETFでは仕様上利用用途が決められている、それらのラベルをとりまとめる「Dangerous Labels in DNS and E-mail」というdraftが提出されています。 今回はそれを眺めていきます。 (あくまでIETFの取り組みであり、仕様上定義されているものをとりまとめています。クラウドサービスや特定ベンダーで特別利用しているものは現在含まれていません。) サブドメイン ここでとりあげるサブドメインは、利用用途が決まってるため一般ユーザに払い出すべきではありません。(例: mta-sts.example.com)

    一般ユーザに払い出すと危険なサブドメインやメールアドレス - ASnoKaze blog
    yuiseki
    yuiseki 2022/07/04
  • HTTPセマンティクス仕様の改訂版(RFC9110) まとめ - ASnoKaze blog

    HTTPのGETといったメソッドやヘッダの意味を定義したHTTPセマンティクス仕様の改訂版である「HTTP Semantics」が標準化の大詰めを迎えている。(RFC9110となる予定) 既存の仕様から幾つか大事な変更が含まれているので簡単に紹介する。 目次 セマンティクス仕様の改訂作業 ざっくり変更点 用語整理 (Field) 用語整理 (body) 用語整理 (interim/final レスポンス) ステータスコードのレンジを明確化 ステータスコード418 unused Rangeを指定したPUTリクエスト GET, HEAD, DELETEでコンテンツを含めるのを非推奨 (SHOULD NOT) プロトコルのマイナーバージョンについて 更に詳しく知りたい場合 おわりに セマンティクス仕様の改訂作業 HTTPセマンティクス及び、HTTP/1.1の仕様の改定作業がIETFのHTTP W

    HTTPセマンティクス仕様の改訂版(RFC9110) まとめ - ASnoKaze blog
  • 40年越しにTCPの仕様(RFC793)が改訂される RFC9293 - ASnoKaze blog

    2022/08/09 追記 「RFC 9293 Transmission Control Protocol (TCP)」として正式なRFCが出ました TCPのコア部分の仕様は1981年に発行された「RFC793 TRANSMISSION CONTROL PROTOCOL」で標準化されています。 この、RFC793の改訂版となる「Transmission Control Protocol (TCP) Specification」は、2013年からIETFのTCPM WGで議論されてきましたが、4月4日にIESGによって承認されました(参考URL)。現在はRFC出版の準備に入っています(新しいRFC番号はこの後正式に決まります) www.ietf.org 改めてTCPの仕様を読みたい場合はこのドキュメントを読むのが良さそう。 概要 この改訂版の仕様(通称 rfc793bis)は、RFC793が

    40年越しにTCPの仕様(RFC793)が改訂される RFC9293 - ASnoKaze blog
  • ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog

    ブラウザから直接TCP・UDPで送受信する「Direct Sockets API」という仕組みが議論されています。 実験段階ですが、Chromeでは起動時にオプションを付けることでこの機能を有効にできます。今回はTCPの方で簡単に動作を見てみます。 Direct Sockets API Direct Sockets APIは、TCP・UDPで直接送受信可能にするAPIです。既存のアプリケーションプロトコル(SSHやIRC)、P2Pのような機能を実現可能になります。 もちろんセキュリティ上の問題もあるので、Chromeでは現状デフォルトでは有効になっていない機能です。 セキュリティ面についてはだいぶGithubリポジトリで議論されておりますので目を通すと良いでしょう。ローカルネットワークへの通信やSame-Origin-Policy(CORS)回避の話が上がっていますが、今回は細かくは紹介し

    ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog
  • 新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog

    新しいHTTPメソッドを定義する「The HTTP QUERY Method」という提案仕様が議論されています。 もともとは、SEARCHメソッドという呼び名が候補としてあげられていましたが、長い議論ののち、一旦QUERYと呼ぶ方向となっております。最終的なFixについては、この draft 02の公開とともに改めてコンセンサスを求めた後に行われます。 QUERYメソッド 「GETリクエストにボディを付けたいという」という質問は長らく有りました。しかし、GETやHEADリクエストでボディをつけることは非推奨となっています (参考URL)。 そのような要望のなかで、リクエストでボディを含められる冪等性の保証された新しいHTTPメソッドが検討されました。それがQUERYメソッドです。冪等性があるため、ブラウザやProxyは自動でリトライすることができます。(なお、POSTはセマンティクス上冪等

    新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
  • タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog

    「Date and Time on the Internet: Timestamps with additional information」という提案仕様がIETFで提出されているので簡単に紹介する。 この仕様では、下記のようなタイムスタンプの文字列フォーマットの定義を行う 1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew] 背景 TC39 Temporal Temporalという時間を扱う新しいAPIが、TC39でStage 3となっている。 tc39.es このAPIでは、タイムゾーンを含む文字列を生成できる。 const zonedDateTime = Temporal.ZonedDateTime.from({ timeZone: 'America/Los_Angeles', year: 1995, month:

    タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog
  • 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

    IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv6 UUIDv6は128bit長で、UUIDv1と似てるフォーマットを取ります。 1582年10月15日(グレゴリオ暦)からの100ナノ秒単位で

    時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
    yuiseki
    yuiseki 2021/04/28
  • WiresharkがHTTP/3に対応した - ASnoKaze blog

    日、Wiresharkが「Development Release (3.3.0)」を公開しました。 このバージョン3.3.0ではHTTP/3のサポートが入っています。ダウンロードして早速試していきましょう。 結果 HTTP/3レイヤの単方向ストリームタイプや、フレームタイプが確認できます (QUICを復号する必要はあります) もちろん、「http3」というフィルタも使用できます。 ただ、まだ開発途中であり、基的な部分しか実装されておりません。そのため、まだパースされない部分もたくさんありますが、今後の開発に期待です。 補足 今回はFirefox Nightly と google.com の通信をキャプチャしました 現時点でWiresharkがサポートしているのはQUIC(draft-21~draft-30), HTTP/3(draft-29), QPACK(draft-16)になります

    WiresharkがHTTP/3に対応した - ASnoKaze blog
  • ブラウザからTCP, UDPソケットを操作するDirect Sockets API - ASnoKaze blog

    2020/01/14: 実際に動くのを確認しました asnokaze.hatenablog.com (2020/09/17 注釈: Raw SocketsからDirect Socketsに名称が変更されました) ブラウザでTCP, DUPソケットを操作可能にする「Direct Sockets API」という仕様がW3CのWICGで議論されている。 また、blink-devでも「Intent to Prototype: Raw Sockets API」とプロトタイプの議論が行われている。 多くの方がセキュリティ上の懸念を抱くと思うが、ドキュメントでも慎重に検討すると書かれている。GithubでIssueを立てることも可能なので、思うことがある方は、まだまだ議論は始まったばかりでもあるので是非フィードバックされると良いと思う。(割と普通に聞いてもらえます) なお、Raw Socketsという名

    ブラウザからTCP, UDPソケットを操作するDirect Sockets API - ASnoKaze blog
  • HTTPと硬直化 (ossification) の問題 - ASnoKaze blog

    「硬直化(ossification)」はあまり聞き慣れない言葉だが、インターネットやWebの通信において問題となってきています。 新しい機能の展開を阻害するこの問題は、HTTPにおけても問題になっておりましたが、HTTPの標準化を行うIETFで動きがありました。 IETFのHTTP WGではオープンレターとして「HTTP and Web Application Firewalls: Managing Ossification Risk」を公開し、WAFベンダと連携してこの問題に取り組んでいく意思が示されています。 この事に関して簡単に説明していきます 目次 硬直化(ossification) とは HTTPにおける 硬直化(ossification) グリス (GREASE)の例 HTTPにおけるGREASE 硬直化(ossification) とは 「硬直化(ossification)」

    HTTPと硬直化 (ossification) の問題 - ASnoKaze blog
  • HTTP/3をUDPロードバランサで分散するときの問題点 (AWS NLBで試してみた) - ASnoKaze blog

    目次 はじめに UDPロードバランサ ラウンドロビン方式 ハッシュ方式 ハッシュの再計算 コネクションマイグレーションが出来ない その他の懸念事項 NLBを用いたハッシュの再計算の実験 QUICの負荷分散について はじめに HTTP/3はQUICというトランスポートプロトコルを利用しています。QUICはUDPを利用していますが、QUIC自体はステートフルなプロトコルです。 ステートフルなQUICを、QUICを解釈しないUDPロードバランサでバランシングしようとするにはいくつかの注意問題点があります。今回は簡単に説明し、NLBでも実験をしてみました。 QUICの用語などは以前書いた記事を参照 asnokaze.hatenablog.com UDPロードバランサ QUICはステートフルですので、おなじQUICコネクションのUDPパケットは同じサーバに割り振ってやる必要があります ロードバランサ

    HTTP/3をUDPロードバランサで分散するときの問題点 (AWS NLBで試してみた) - ASnoKaze blog
  • 処理中のPOSTリクエストを別のサーバで引き継ぐPartial POST Replayについて - ASnoKaze blog

    なんらかの理由でWebサーバを停止する場合に、処理中のPOSTリクエストをそのまま別のサーバで引き継げるようにする「HTTP Partial POST Replay」という仕様がFacebookのAlan Frindell氏から提出されています (HTTP Workshopの資料はこちら)。 スポットインスタンスを利用していたり、サーバの設定を変えて再起動したい場合、新しいリクエストは受け付けないようにし、すでに来ているリクエストのみ処理をするのは一般的です。それでも大きなファイルをアップロードしているPOSTリクエストは処理が終わるまで時間がかかってしまう場合がありあります。 やむをえずPOSTリクエストの処理を中断してしまうと、ユーザは再度大きなファイルをアップロードしなおす必要があり、とてもストレスがかかります。 「HTTP Partial POST Replay」では、ユーザの接続

    処理中のPOSTリクエストを別のサーバで引き継ぐPartial POST Replayについて - ASnoKaze blog
  • Cross-Origin-Opener-Policyについて - ASnoKaze blog

    Cross-Origin-Opener-Policy (COOP)は現在、ChromeやFirefoxで実装が進められている機能です。 Chrome: Implement Cross-Origin-Opener-Policy firefox: Implement Cross-Origin-Opener-Policy 仕様としては、whatwgで長らく議論がされており、おそらく仕様に入るでしょう Restricting cross-origin WindowProxy access (Cross-Origin-Opener-Policy) · Issue #3740 · whatwg/html · GitHub Cross-Origin-Opener-Policy: provide a clearer spec. · Issue #4580 · whatwg/html · GitHub 面白

    Cross-Origin-Opener-Policyについて - ASnoKaze blog
  • 新しいWebの双方向通信 "WebTransport" について - ASnoKaze blog

    関連記事 WebTransport over QUICのサンプルサーバを試してみる - ASnoKaze blog WebTransport over HTTP/2 の仕様について - ASnoKaze blog WebTransport over QUIC について - ASnoKaze blog WebTransportという新しい双方向通信フレームワークの議論が始まっている。 GoogleのPeter Thatcher氏らによって、W3C WICGにプロポーザルが投げられています。 discourse.wicg.io WebTransportは、WebSocketのようなAPIをもち、QUICやHTTP/3上で多重化されたストリームを利用し、ヘッドオブラインブロックのない通信を行えるようにするというのがモチベーションのようです。(実際に使用する"トランスポート"はプラガブルな設計にな

    新しいWebの双方向通信 "WebTransport" について - ASnoKaze blog
  • HTTP/3のヘッダ圧縮仕様QPACKについて - ASnoKaze blog

    この記事では、HTTP/3で導入されるHTTPヘッダ圧縮の仕組みである「QPACK 」について説明します。(執筆時 draft 07) 2020/06/01追記 まるっと解説記事を書き直しました asnokaze.hatenablog.com HTTP/2の場合 ハフマン符号 静的テーブル、動的テーブル HTTP/3とQPACKの導入背景 QPACKの概要 Encoder Instructions Decoder Instructions Header Block Instructions 相対インデックス Compressed Headers エラーハンドリング その他 QPACKという名称について HTTP/2の場合 簡単に、HTTP/2で導入されたヘッダ圧縮の仕組みである「RFC7541 HPACK」について補足します。飛ばしていただいても大丈夫です。 HTTP/2の元となったSPD

    HTTP/3のヘッダ圧縮仕様QPACKについて - ASnoKaze blog
  • DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog

    20190821 追記 この提案は廃案されました https://mailarchive.ietf.org/arch/msg/doh/qkmhh93Id6XIngH3LJwp-HokH_Y DNS over HTTPS(DoH)の標準化が進められており、引き続き注目を集めている。 asnokaze.hatenablog.com 一方で、DoHサーバをどのように見つけるか、見に行かせるかの議論が始まっています。 JPNIC Blog :: DNS over HTTPSとDHCP -IETF102における議論- で紹介されている通り、先月行われたIETF102でもDNSリゾルバの識別子と利用についてのBoFがありました。 例えば、設定ファイルだったり、DHCPDNSサーバを設定する際にDoHサーバを設定する際にどうすればいいか、どのようディスカバリさせるかといった議論です。 その流れで、Do

    DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
  • WiresharkでHTTP/2をパケットキャプチャする - ASnoKaze blog

    20190417追記 HTTP/3はこちら「WiresharkでのQUICの復号(decrypt) - ASnoKaze blog」 20151030追記 TLSを利用するHTTP/2では、秘密鍵を設定しても通信を復号することは出来ません。 HTTP/2の鍵交換はPFSなので、下記も参考にして下さい 「Wireshark で HTTP/2 over TLS の通信をダンプする方法」 https://gist.github.com/summerwind/a482dd1f8e9887d26199 この記事は HTTP2 Advent Calendar の 9 日目の投稿です。 初めましてゆきと申します。HTTP/2アドベントカレンダーにはガチ勢しかおらず戦々恐々としております。 アドベントカレンダーネタとしては、Push周りを書こうとしてたのですが先日Push周りの素晴らしい記事が投稿されてし

    WiresharkでHTTP/2をパケットキャプチャする - ASnoKaze blog
    yuiseki
    yuiseki 2014/12/10
  • HTTP2でWebがどうなるか9つのこと(自分用メモ - ASnoKaze blog

    宣伝 2015/11 追記 ソフトウェアデザイン 11月号に HTTP/2の特集記事を書かせていただきました。より詳しく書きましたので、記事より参考になるかと思います。 http://www.amazon.co.jp/dp/B01494YKUI HTTP2は2014年4月のWG Last Callに向けて、仕様策定が進められている。 現在も、ロンドンで行われているIETFのミーティングでは熱い議論が行われているところであろう。 (local activityとして日での活動なども紹介されているようです) HTTP2の仕様を決めているHTTPbisワーキンググループのchairであるMark Nottingham氏が、自身のブログにて「Nine Things to Expect from HTTP/2」という記事が投稿されている。 ここでは、HTTP2が何をもたらすか以下の観点で説明して

    HTTP2でWebがどうなるか9つのこと(自分用メモ - ASnoKaze blog
  • 1