非常に基本的な質問があります。SSLハンドシェイクのclient_helloまたはserver_helloは、どのSSL / TLSバージョンをサポートできるかをどのように決定しますか?つまり、私が理解している限り、最初にクライアント、次にサーバーが、サポートする可能な限り最高のSSLバージョンを送信します。しかし、これはどのように決定されますか?
証明書のバージョンフィールドですか?
よろしく、HL
これはすべて、TLS 仕様の付録 E で説明されています。これは、TLS 1.0、1.1、および 1.2 仕様でわずかに異なる言い回しになっていますが、原則は同じままです。
基本的に、クライアントはサポートできる最高のバージョンを要求し、サーバーはクライアントのバージョンまでサポートできる最高のバージョンで応答します。
min(max. client supported version, max. server supported version)
これは、結果のバージョンが実際に両当事者によってサポートされている限り機能します。