Tls

TLS 擴展欄位的格式是什麼?

  • August 12, 2017

在 TLS 1.2 協議中,客戶端可以發送擴展。我的問題是:這個欄位的格式是什麼?是清單嗎?

在 TLS 1.2client hello中,標准說:

extensions 客戶端可以通過在 extensions 欄位中發送數據來請求伺服器的擴展功能。實際的“擴展”格式在第 7.4.1.4 節中定義。

在 處server hello,標準明確表示它是一個列表。但我不確定這是否意味著客戶端也將擴展作為列表發送:

擴展 擴展列表。請注意,只有客戶端提供的擴展才能出現在伺服器的列表中。

我假設在 TLS 1.3 中也使用了相同的格式。

RFC 5246 的第 7.4.1.2 節定義了以下內容ClientHello

  struct {
      ProtocolVersion client_version;
      Random random;
      SessionID session_id;
      CipherSuite cipher_suites<2..2^16-2>;
      CompressionMethod compression_methods<1..2^8-1>;
      select (extensions_present) {
          case false:
              struct {};
          case true:
              Extension extensions<0..2^16-1>;
      };
  } ClientHello;

如您所見,您最多可以添加 $ 2^{16}=65536 $ 根據第 4.3 節,以列表格式對客戶端 hello 進行擴展字節

引用自:https://crypto.stackexchange.com/questions/50664