Как отключить возобновление сеанса с OpenSSL s_server - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь проверить переоценку сеанса. Я использую OpenSSL в качестве эталонного сервера и выполняю квитирование TLS и собираю данные сеанса (и идентификатор сеанса). Затем я заново устанавливаю соединение, предоставляя тот же сохраненный сеанс, и, как и ожидалось, сервер OpenSSL возобновляет сеанс, предоставляя мне с тем же идентификатором сессии. Но я не могу заставить сервер отклонить запрос на возобновление и принудительно провести повторное согласование, установив новый идентификатор сеанса и новый общий секрет, который я всегда получаю

Reused session-id
Secure Renegotiation IS supported

Вот что я получаю:

root@test:~# openssl s_server -port 443 -cert leaf1.crt -key leaf1.key -tls1_2 -no_ticket -no_resumption_on_reneg
Using default temp DH parameters
ACCEPT
-----BEGIN SSL SESSION PARAMETERS-----
MHoCAQECAgMDBALMqAQg2CsxwQa4O8uwlBZIdQsmF4LiAGqiV4iHIafx1cG2LJ0E
MMfN2I0yVW26vrUketgIUptqVE2Tzfmg/Mn7RnO3htgfCyJoI4vwyY4NzfIwz5Aa
O6EGAgReq9fTogQCAhwgpAYEBAEAAACtAwIBAQ==
-----END SSL SESSION PARAMETERS-----
Shared ciphers:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
Signature Algorithms: RSA-PSS+SHA512:RSA-PSS+SHA384:RSA-PSS+SHA256:RSA+SHA512:RSA+SHA384:RSA+SHA256:RSA+SHA224:RSA+SHA1
Shared Signature Algorithms: RSA-PSS+SHA512:RSA-PSS+SHA384:RSA-PSS+SHA256:RSA+SHA512:RSA+SHA384:RSA+SHA256:RSA+SHA224:RSA+SHA1
Supported Elliptic Curve Point Formats: uncompressed
Supported Elliptic Groups: X25519:X448:P-384:P-256:P-521:0x0100:0x0101:0x0102:0x0103:0x0104
Shared Elliptic groups: X25519:X448:P-384:P-256:P-521
---
No server certificate CA names sent
CIPHER is ECDHE-RSA-CHACHA20-POLY1305
Secure Renegotiation IS supported
ERROR
shutting down SSL
CONNECTION CLOSED
-----BEGIN SSL SESSION PARAMETERS-----
MHoCAQECAgMDBALMqAQg2CsxwQa4O8uwlBZIdQsmF4LiAGqiV4iHIafx1cG2LJ0E
MMfN2I0yVW26vrUketgIUptqVE2Tzfmg/Mn7RnO3htgfCyJoI4vwyY4NzfIwz5Aa
O6EGAgReq9fTogQCAhwgpAYEBAEAAACtAwIBAQ==
-----END SSL SESSION PARAMETERS-----
Shared ciphers:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
Supported Elliptic Curve Point Formats: uncompressed
Supported Elliptic Groups: X25519:X448:P-384:P-256:P-521:0x0100:0x0101:0x0102:0x0103:0x0104
Shared Elliptic groups: X25519:X448:P-384:P-256:P-521
---
No server certificate CA names sent
CIPHER is ECDHE-RSA-CHACHA20-POLY1305
Reused session-id
Secure Renegotiation IS supported
ERROR
shutting down SSL
CONNECTION CLOSED

1 Ответ

0 голосов
/ 01 мая 2020

Кажется, вы путаете две разные концепции: возобновление и повторное согласование.

Возобновление относится к запуску нового подключения на основе сведений о сеансе из предыдущего подключения.

Повторное согласование относится к запуску второе или последующее рукопожатие при существующем соединении SSL / TLS.

Вы можете заставить s_server отказаться от возобновления сеансов, как это:

openssl s_server -port 443 -cert leaf1.crt -key leaf1.key -no_ticket -no_cache

Вы можете заставить s_server отклонять запросы на повторное согласование, подобные этому (только из OpenSSL 1.1.1 и выше):

openssl s_server -port 443 -cert leaf1.crt -key leaf1.key -no_renegotiation
...