где найти сертификат сервера в захвате рукопожатия TLS1.3 - PullRequest
0 голосов
/ 25 февраля 2020

Я зафиксировал с помощью wireshark рукопожатие TLSv1.3, установленное между клиентом и сервером, которые поддерживают TLSv1.3. Я знаю, что сертификат отправляется в зашифрованном виде, но я не могу найти поле, которое указывает, что здесь мы находим зашифрованный сертификат. Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 02 марта 2020

В TLS 1.3 серверы отправляют свои сертификаты в зашифрованном виде .

В TLS 1.3 клиент и сервер обмениваются ключами в самом начале: клиент отправляет свой выбор в ClientHello, а сервер отправляет свой key_share в ServerHello. Все после ServerHello зашифровано.

Это резко отличается от SSL / TLS до TLS 1.3, где обмен ключами происходил ПОСЛЕ аутентификации. В SSL и TLS сертификаты 1-1.2 были отправлены в виде простого текста.

Если вы откроете RF C 8446 на странице , вы увидите диаграмму обмена сообщениями. Пожалуйста, найдите сообщение на сервере {Certificate*}. Обозначение {*} означает:

  • звездочка (*) указывает, что это необязательное сообщение,
  • фигурные скобки {} указывают, что

    сообщения защищены с использованием ключей, полученных из [sender] _handshake_traffic_secret

Более формально RF C 8446 В разделе 4.4 указывается :

Как обсуждалось в Раздел 2, TLS обычно использует общий набор сообщений для аутентификации, подтверждения ключа и целостности рукопожатия: Certificate, CertificateVerify и Finished. ... Эти сообщения зашифрованы ключами, полученными из [sender] _handshake_traffic_secret.

...