問題タブ [tls1.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
90 参照

c++ - ブースト API を使用して TLS クライアントの hello バージョンを確認するには?

私がデバッグしているC++コードは、ブーストAPI「boost::asio::ssl::context::no_tlsv1」を使用して、TLSv1の場合、クライアントからの接続要求を制限します。TLSv1.2 であれば制限なし。

Client Hello TLS のバージョンが 1.2 であっても、以下のパケット(wireshark キャプチャ)で接続要求が受け付けられない ブースト API の「boost::asio::ssl::context::no_tlsv1」が Record Layer のバージョン番号や Client をチェックしているのだろうかhello バージョン番号 (下の図で強調表示されています)

ここに画像の説明を入力

RFC5246 によると、「古いサーバーとのネゴシエーションを希望する TLS クライアントは、レコード層のバージョン番号として任意の値 {03,XX} を送信できます」。つまり、レコード層のバージョン番号は何でもかまいません

ブーストのドキュメントには、この API が tlsv1 を無効にすることが記載されていますが、その方法については言及されていません https://www.boost.org/doc/libs/1_58_0/doc/html/boost_asio/reference/ssl__context.html

この API の仕組みを理解するための助けを求めています。

  1. レコード層のバージョンまたはクライアントの hello バージョンをチェックしていますか?
  2. レコード層のバージョンをチェックして、クライアントのリクエストを制限することを決定した場合、RFC5246 に違反していませんか?
  3. 議論中の API がレコード層のバージョンをチェックする場合、クライアントの hello バージョンをチェックするブースト API はありますか?

前もって感謝します。