問題タブ [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.
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 の仕組みを理解するための助けを求めています。
- レコード層のバージョンまたはクライアントの hello バージョンをチェックしていますか?
- レコード層のバージョンをチェックして、クライアントのリクエストを制限することを決定した場合、RFC5246 に違反していませんか?
- 議論中の API がレコード層のバージョンをチェックする場合、クライアントの hello バージョンをチェックするブースト API はありますか?
前もって感謝します。