Что эквивалентно SSLSessionID для сеансов TLS1.3 - PullRequest
1 голос
/ 07 февраля 2020

В TLSv1.2 клиент смог возобновить работу с SSLSessionID. Этот идентификатор оставался постоянным среди нескольких возобновленных сеансов.

В моем измененном apache веб-сервере у меня есть логика c, которая проверяет сессионного повара ie на соответствие SSLSessionID. Если SSLSessionID изменился для того же повара ie, я отбрасываю запрос.

Теперь, как мне этого добиться в TLSv1.3. (Возобновление сеанса не является проблемой, это работает.)

Проблема в том, что SSLSessionID меняет для каждого запроса, также в возобновляется сеанс.

Очевидно, что мой механизм больше не работает, поэтому мне нужен идентификатор, который остается постоянным среди возобновленных сеансов.

1 Ответ

2 голосов
/ 14 февраля 2020

TL; DR: строгого эквивалента нет, так как функция была отброшена. Но новые сессионные билеты были введены для аналогичных нужд.

RF C 8446 в TLS 1.3 гласит:

2.2. Возобновление и предварительный общий ключ (PSK)

[..]

В TLS 1.2 и ниже эта функциональность обеспечивалась "идентификаторами сеансов" и "билетами сеансов" [RFC5077]. Оба механизма устарели в TLS 1.3.

Раздел §4.1.2 о ClientHello также описывает это расширение:

legacy_session_id:

Версии TLS до TLS 1.3 поддерживал функцию «возобновления сеанса», которая была объединена с предварительно общими ключами в этой версии (см. Раздел 2.2). Клиент, имеющий кэшированный идентификатор сеанса, установленный сервером до TLS 1.3, ДОЛЖЕН установить это поле в это значение. В режиме совместимости (см. Приложение D.4) это поле ДОЛЖНО быть не пустым, поэтому клиент, не предлагающий сеанс до TLS 1.3, ДОЛЖЕН генерировать новое 32-байтовое значение. Это значение не обязательно должно быть случайным, но ДОЛЖНО быть непредсказуемым, чтобы избежать реализации, фиксирующейся на указанном значении c (также известном как оссификация). В противном случае он ДОЛЖЕН быть установлен как вектор нулевой длины (т. Е. Одно-байтовое поле длины с нулевым значением).

Ближайшим, что вы можете найти, является новый «билет сеанса», см. §4.6 .1

Но если вы go впредь к таким вещам, как https://ssl-config.mozilla.org/, вы увидите, что все конфигурации выполнены с отключенными билетами сеанса.

Вы можете иметь см. https://timtaubert.de/blog/2017/02/the-future-of-session-resumption/ для объяснения изменения между 1,2 и 1,3

...