Giter Site home page Giter Site logo

http2-spec-ja's People

Contributors

0xfffffff7 avatar flano-yuki avatar jxck avatar kachick avatar masaori335 avatar nna774 avatar summerwind avatar syucream avatar tkawachi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

http2-spec-ja's Issues

GOAWAYの説明

https://github.com/summerwind/spdy-spec-ja/blob/master/spdy-protocol-draft3/index.html#L490

ここの説明で

Last-good-stream-Id: The last stream id which was accepted by the sender of the GOAWAY message. If no streams were replied to, this value MUST be 0.

Last-good-stream-id: 送信者が GOAWAY メッセージを受信した時の最後のストリーム ID です。 返信先のストリームが存在しない場合は、この値は0でなければなりません。

となってますが、これだと送信と受信の関係が曖昧な気がします。

GOAWAY メッセージの送信者が、最後に受信したストリームのストリーム ID です。

などの方が良いかとおもうのですがどうでしょうか?

9.2.

ID 15 がないので、PR ではなく、issue にします。

  • 9.2.2 に ECDH とありますが、正しくは ECDHE です。
  • 9.2.2 の訳がおかしかったので、訳し直しました
  • ついでに、9.2 全体を訳してみました
  • もともとの訳語は考慮していませんので、参考までということで、ここに貼っておきます。

9.2. TLS機能の利用

HTTP/2の実装は、TLS 上の HTTP/2 に対して、TLS 1.2を利用しなければなりません(MUST)。 TLSの一般的な利用ガイダンスに即すべきであり(SHOULD)、加えてHTTP/2特有の制限もあります。

TLS 上の HTTP/2 の実装は、この節で述べられる機能や暗号スイートに対する制約と共に、TLS 1.2 かそれ以上のバージョンを利用しなければなりません(MUST)。実装の制約のために、TLSのネゴシエーションに失敗することは可能でないかもしれません。端点は、これらの最小限の要求を満たさない HTTP/2コネクションを、エラータイプ INADEQUATE_SECURITY と共に直ちに終了しなければなりません(MUST)。

9.2.1 TLS機能

TLSの実装は、TLS の Server Name Indication (SNI)拡張に対応しなければなりません(MUST)。 HTTP/2クライアントは、TLSネゴシエーションの際に対象のドメイン名を指示しなければなりません(MUST)。

TLSの実装は、圧縮を無効にしなければなりません(MUST)。TLS圧縮を利用すると、利用しなければそうなることのなかった情報漏洩につながります。HTTP/2は、圧縮機能を提供しているので、一般的な圧縮は不要です。その圧縮機能は、よりコンテキストに配慮しており、それ故に性能や安全性、その他の点から見ても利用が適切であると思われます。

TLSの実装は再ネゴシエーションを無効にしなければなりません(MUST)。端点は、TLS再ネゴシエーションをPROTOCOL_ERRORタイプのコネクションエラーとして扱わなければなりません(MUST)。再ネゴシエーションを無効にすると、利用している暗号スイートに暗号化できるメッセージ数の上限があるせいで、コネクションを長期に渡って利用できなくなります。

(この節理解不能)

将来の使用には、このユースケースのための手法が規定されるかもしれません。代替方法として、サーバは、クライアントに再ネゴシエーションに対応しているプロトコルを使用させるために、HTTP_1_1_REQUIRED タイプのコネクションエラーを利用するかもしれません。

9.2.2. TLSの暗号スイート

HTTP/2で許されるTLSの暗号スイートの集合は制限されています。HTTP/2は、一時的な Diffie-Hellman (DHE)や一時的な楕円暗号 (ECDHE)といった一時的な鍵交換機能をもつ暗号スイートと共に使われなければなりません(MUST)。一時的な鍵交換では、DHEに対して最低2048ビットの大きさ、もしくはECDHEに対して128ビットの安全性を確保しなければなりません(MUST)。クライアントはDHEの大きさとして4096ビットまで受け入れなければなりません(MUST)。HTTP/2は、ストリーム暗号やブロック暗号を使う暗号スイートと共に利用してはいけません(MUST NOT)。AESを使った Galois Counter Model (GCM)モードのような Authenticated Encryption with Additional Data (AEAD)モードは利用できます。

これらの制約は TLS 1.2 が実装を必須としている暗号スイートの利用を妨げるので、TLS 1.2 の実装間で利用できる暗号スイートに共通集合を見出せないかもしれません。この問題を避けるために、TLS 1.2 を使う HTTP/2 の実装は、楕円曲線P256を使った TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 を実装しなければなりません(MUST)。

HTTP/2に対応していないサーバとコネクションを確立するために、クライアントは、上記の制約により禁止されている暗号スイートを指定しても構いません(MAY)。これにより、
別のコネクションを張ることで引き起こされる遅延なしで、これらの制限のないプロトコルにフォールバックできるようになります。

冗長な言葉をなくしましょう

「この構造から自由に分岐することができます」

「この構造から自由に分岐できます」

「応答することができます。」

「応答できます」

「おこなう」をなくしましょう。

「各実験についての調整をおこなうことをお勧めします。」

「各実験について調整することをお勧めします。」

「その他のプロトコル処理をおこなうことは不可能です」

「その他のプロトコルを処理することは不可能です」

「もの」をなくしましょう。

「この文書は HTTP/1.1 のメッセージシンタックスを変更するものですが、これを廃止するものではありません。」

「この文書では、 HTTP/1.1 のメッセージシンタックスを変更しますが、廃止はしません。」

「また、この草案は当初実装草案とされていた -08 草案を置き換えるものです。」

「また、この草案は当初実装草案とされていた -08 草案を置き換えます」

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.