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

  • QUIC for SSH の提案仕様が出たよ - ASnoKaze blog

    「QUIC-based UDP Transport for SSH」という提案が提出されています。 トランスポートプロトコルとしてQUICを利用することで、様々な恩恵を受けることが出来ます。 ユーザランドでコネクションが管理されるため、TCPとは異なりOSレイヤのでコネクション切断の影響をうけない IPアドレスが変わっても接続を維持できる(コネクションマイグレーション) 経路上の第三者による切断に耐性がある(QUICでは通信の切断にも鍵が必要) 個人的にも、SSHがQUIC上で動作することで切断しづらくなることを期待しております。 それでは、この仕様についてざっと見ていくことにしましょう。 ただ、まだまだこれから議論がされる提案仕様ですので、設計は大きく変わるでしょう。 QUIC-based UDP Transport for SSH の概要 QUICは内部的にTLSハンドシェイクを行って

    QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
    zu2
    zu2 2020/07/10
  • 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
    zu2
    zu2 2020/07/08
    QUICもUDP上ではないプロトコルにしたかったよね
  • Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog

    Chromeが「Cookie の SameSite=Lax をデフォルト化」を進めたことは記憶に新しい。 asnokaze.hatenablog.com Cookieの改善は引き続き議論されており、Cookieの扱いでスキーム(http://やhttps://)を考慮に入れることが検討されている。 Incrementally Better Cookies Cookieセキュリティ改善を精力的に行っているGoogleのMike West氏は、Secure属性の利用が30%、"__Secure-"プレフィックスの利用が0.18%ほどにとどまっていると述べており(リンク)、セキュリティ改善のためにCookieの扱いを段階的に変更していくことを考えている。 同氏がIETFに提出している「Incrementally Better Cookies」では、Cookieを次のように段階的に改善することを

    Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
    zu2
    zu2 2020/04/20
  • NginxでHTTP/3が動いた (Cloudflareパッチ) - ASnoKaze blog

    2020/060/01 追記 nginx公式版が提供されました。こちらを御覧ください asnokaze.hatenablog.com NginxをHTTP/3対応させるパッチがCloudflareから提供されました (CloudflareのHTTP/3ライブラリ Quicheを利用しています。現状ではHTTP/3ドラフト23版の対応になります) github.com 基的に、書いてるとおりにやればビルドできるのですが、無事HTTP/3しゃべるところまで確認できました ビルド rustインストールしておく $ curl https://sh.rustup.rs -sSf | sh $ source $HOME/.cargo/env書いてあるとおり $ curl -O https://nginx.org/download/nginx-1.16.1.tar.gz $ tar xzvf ngin

    NginxでHTTP/3が動いた (Cloudflareパッチ) - ASnoKaze blog
    zu2
    zu2 2020/02/03
  • HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog

    HTTPメッセージに署名をするSignatureヘッダを定義する「Signing HTTP Messages」という仕様が提案されています。 HTTPメッセージへの署名は、様々なところで行われていますが、それぞれ独自の方式で行われています。例えば、AWS APIを叩く際に利用する「Signature Version 4 Signing」や、OAuth2.0 DPoPなどでHTTPメッセージへの署名が行われています。 その他にも、WebPackagingで使用される「Signed HTTP Exchanges」といったところでも署名が行われています。 一方でTLSではだめなのかという話もありますが、TLSを用いることでHTTPメッセージの機密性および完全性は保護されますが、TLS終端プロキシなどを経由するとそれ移行の部分で通信の完全性は担保されません。クライアントとサーバ間でHTTPメッセー

    HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
    zu2
    zu2 2020/01/08
  • 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
    zu2
    zu2 2020/01/02
    UDPの上に載ってるのが問題を難しくしてるよなあ。TCPでもUDPでもないプトロコルにすべきだったのかもしれないが、それはそれでまた困りそうだし。1990年代ならもう少し楽だったかも
  • HTTP/2をバイトストリームトランスポートとして利用する提案仕様 - ASnoKaze blog

    HTTP/2コネクション上で任意のバイトストリームをやりとりできるようにする「Using HTTP/2 as a Transport for Arbitrary Bytestreams」という仕様がAppleの人らによって提案されている。 IETF103でも議論(資料)になったが、その後 draft-01 が出ているのが現状である。 ユースケースとしては任意のバイトストリームをトンネリングしたり、一つのコネクション上で複数のバイトストリームをやり取りするのにストリームを利用するといった背景があるようだ。 通信の流れ 以前解説したWebsocket over HTTP/2と同じように、HTTP/2コネクションを確立したあとにストリーム上でConnectメソッドを用いる。 asnokaze.hatenablog.com 大まかな流れは以下の通り SETTINGSフレームでお互いにこの仕様に対応

    HTTP/2をバイトストリームトランスポートとして利用する提案仕様 - ASnoKaze blog
    zu2
    zu2 2019/04/03
  • QUICにおいてNAT検出を行う拡張フレームの提案仕様 - ASnoKaze blog

    QUICを使用している際に、その通信がNATによってアドレス変換を行われているかを検出する「QUIC Address Extension」という提案仕様がAppleの人らによって出されています。 具体的には、送信元IPアドレスがなんであるかを通信相手に確認します。そうすることで、途中でIPアドレスが変換されているかを確認することが出来ます。 NATがいなければ、NATリバインディングを避けるためにPINGフレームを送る必要もありません。一方で、NATを検出した場合はコネクションIDとポートを定期的に変えることがよりプライバシーを高めることになります。 概要 自身のIPでアドレスが相手にどのように見えているか確認する、「PUBLIC_ADDRESS_REQUESTフレーム」と「PUBLIC_ADDRESS_RESPONSE フレーム」を定義します。 PUBLIC_ADDRESS_REQUES

    QUICにおいてNAT検出を行う拡張フレームの提案仕様 - ASnoKaze blog
    zu2
    zu2 2019/04/03
  • HTTP over QUICと、その名称について (HTTP3について) *2019年9月更新 - ASnoKaze blog

    [追記] QUIC, HTTP/3 関連記事 まるっと解説記事を書き直しました asnokaze.hatenablog.com その他もどうぞ QUIC, HTTP/3の標準化状況を確認したい (2019年11月版) - ASnoKaze blog HTTP/3と新しいプライオリティ制御方式について - ASnoKaze blog QUICのコネクションマイグレーションについて - ASnoKaze blog QUICのAckとロスリカバリについて - ASnoKaze blog QUICの暗号化と鍵の導出について - ASnoKaze blog HTTP/3のヘッダ圧縮仕様QPACKについて - ASnoKaze blog WiresharkでのQUICの復号(decrypt) - ASnoKaze blog QUIC,HTTP/3 の draft-17に関するメモ - ASnoKaze

    HTTP over QUICと、その名称について (HTTP3について) *2019年9月更新 - ASnoKaze blog
    zu2
    zu2 2018/11/13
  • Chromeが6週間毎にTLSバージョン番号を変更していくかもしれない - ASnoKaze blog

    [修正] ossificationを骨化と訳してましたが、硬直化に変更しました TLS1.3の標準化が終わり、もうRFCとして出されるのを待つばかりになっている。 そんなTLSワーキンググループのメーリングリストに、ChromiumやBoringSSLの開発に携わるDavid Benjamin氏より「Enforcing Protocol Invariants」というメールが投稿されています。 これは、今後もTLSの改善可能とするために、Chromeで新しいTLSバージョンコードポイントを試していくことに対する意見を募集しているものです。 実装としてはTLS1.3と同じですが、使用するバージョン コードポイントが異なるものを使用していくことになります。 背景、ossification(硬直化)問題 この議論の背景にはTLS1.3の標準化に関する、ossification(骨化)と呼ばれる問題

    Chromeが6週間毎にTLSバージョン番号を変更していくかもしれない - ASnoKaze blog
    zu2
    zu2 2018/06/15
    “インターネット上に存在する正しくない実装によって、新しいプロトコルのデプロイが阻害される状態の事をIETFではossification(硬直化)と呼んでいます”
  • GoogleのQUICの論文が知見の塊だった - ASnoKaze blog

    20181107追記 QUICプロトコルについての概要は別途記事を書きました asnokaze.hatenablog.com 概要 ACM SIGCOMM 2017という通信系の学会に、Googleの人 総勢21人によって書かれた「The QUIC Transport Protocol: Design and Internet-Scale Deployment」という論文が提出され、学会ホームページより閲覧出来る。 この論文は、QUICの設計仕様と実際にGoogleのサービスにデプロイした結果について書かれている。 すでにGoogler SearchやYoutubeでQUICは有効になっており、一日あたり数十億の接続を処理し、Googleのegress trafficのうち30%がQUICになっており、インターネットのトラフィックの内7%がQUICだと推定されるという説明から論文は始まる。

    GoogleのQUICの論文が知見の塊だった - ASnoKaze blog
    zu2
    zu2 2017/08/13
  • Nginxで、リクエストを複製するmirrorモジュールが標準搭載された - ASnoKaze blog

    [20170809追記] nginx-1.13.4に ngx_http_mirror_module は含まれました Nginxで、リクエストを複製するmirrorモジュールがコミットされ、何もせずとも使用できるようになりそうです(現状最新コミットをビルドする必要あり)。 例えば番環境のproxyからリクエストを複製して開発環境に流すような事も出来ます。もちろん複製処理は来のリクエスト処理をブロックしません。 例えば以下のように、mirrorに来たリクエストを複製してバックエンドサーバに投げるようにしてみます conf server { listen 80 ; server_name localhost; mirror_request_body on; log_subrequest on; location /mirror { mirror /proxy; #/proxy宛にリクエストを

    Nginxで、リクエストを複製するmirrorモジュールが標準搭載された - ASnoKaze blog
    zu2
    zu2 2017/07/24
  • Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze blog

    追記 10190510 関連して、このような動きもあります。 Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog Cookieの仕様と拡張仕様 HTTPのCookieの仕様は RFC 6265 - HTTP State Management Mechanism で定義されております。 2015年頃より、IETFのHTTPbisワーキンググループではCookieセキュリティを向上させる目的で拡張仕様が3つほど議論されていました。 Cookie Prefixes 付与する属性をCookie名に含めることで、変更できなくする(Chrome51, Firefox50) Same-Site Cookies SameSite属性の追加。クロスサイトへのリクエスト時にはCookieヘッダを付けなくなる(Chrome 51) Deprecate mod

    Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze blog
    zu2
    zu2 2017/05/10
  • hxxp URIスキームの仕様化 - ASnoKaze blog

    追記 20170510 draft-01 より、hxxpsも予約されました 「The "hxxp" and "hxxps" URI Schemes」 hxxpの背景 hxxp URIを定義する「The "hxxp" URI Scheme」という仕様が提案されています。 hxxp://... は、例えばセキュリティの話をする際にURLがリンクとして解釈されたり、ブラウザやメーラによって解釈・処理されないようにするために使用されています。 この仕様では、将来的にアプリケーションでこのhxxp:// を使用できないように予約します。 hxxpの定義 hxxp URIによって参照されるリソースは、アプリケーション等によって自動的にパース・処理されないことを意味します。 このリソースは、セキュリティの専門家によって利用されなければなりません(MUST)。 そのた また、アプリケーション開発者はhxx

    hxxp URIスキームの仕様化 - ASnoKaze blog
    zu2
    zu2 2017/05/10
  • TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze blog

    TCP Fast Open TCP Fast Openと呼ばれる技術があり、RFC 7413として標準化されている。 このTCP Fast Openを使うと、一度コネクションを貼った相手とは、TCPの3ウェイハンドシェイク中にデータを送受信できるようになる。クライアントからSYNとともにデータを送信することで、実際にデータを送受信開始するまでの待ち時間が短縮できる。 Linuxではすでにクライアント/サーバ両方でTCP Fast Openを使用できる。 TCP Fast Openの闇 しかし、数年前よりこのTCP Fast Openには一部のネットワークで奇妙な振る舞いをすることが知られている。Appleの人が実際にデプロイした時に見つけたもので、IETFやNANOGにて報告されており、その時の資料は下記のとおりである Deploying TCP Fast Open in the wild

    TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze blog
    zu2
    zu2 2017/05/10