diff options
author | Matt Caswell <matt@openssl.org> | 2023-12-20 10:07:39 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2023-12-22 09:01:10 +0000 |
commit | ce625bb5eb53691cb23d98c3ca76aebd62d0f5f2 (patch) | |
tree | 9e54b6e3fa6e1b0bdc18e1c5893f792b5964b366 /doc | |
parent | 1eb50745f909a40c60c3a2607355777a931defdf (diff) |
Improve the documentation on TLS record compression
TLS record compression is off by default. Even if you switch it on, it
cannot be used at security level 2 which is the default in OpenSSL 3.2 and
above. Update the docs to point this out.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23104)
(cherry picked from commit 2462e431ffe75027f253d8f1aab44ba09129c628)
Diffstat (limited to 'doc')
-rw-r--r-- | doc/man1/openssl-s_client.pod.in | 6 | ||||
-rw-r--r-- | doc/man1/openssl-s_server.pod.in | 8 | ||||
-rw-r--r-- | doc/man3/COMP_CTX_new.pod | 3 | ||||
-rw-r--r-- | doc/man3/SSL_CONF_cmd.pod | 5 | ||||
-rw-r--r-- | doc/man3/SSL_CTX_set_options.pod | 8 |
5 files changed, 23 insertions, 7 deletions
diff --git a/doc/man1/openssl-s_client.pod.in b/doc/man1/openssl-s_client.pod.in index 84cf6fdd81..dedef6209d 100644 --- a/doc/man1/openssl-s_client.pod.in +++ b/doc/man1/openssl-s_client.pod.in @@ -629,7 +629,11 @@ Disables support for receiving TLSv1.3 compressed certificate. Enables support for SSL/TLS compression. This option was introduced in OpenSSL 1.1.0. TLS compression is not recommended and is off by default as of -OpenSSL 1.1.0. +OpenSSL 1.1.0. TLS compression can only be used in security level 1 or +lower. From OpenSSL 3.2.0 and above the default security level is 2, so this +option will have no effect without also changing the security level. Use the +B<-cipher> option to change the security level. See L<openssl-ciphers(1)> for +more information. =item B<-no_comp> diff --git a/doc/man1/openssl-s_server.pod.in b/doc/man1/openssl-s_server.pod.in index 611b410cfd..8429a34e35 100644 --- a/doc/man1/openssl-s_server.pod.in +++ b/doc/man1/openssl-s_server.pod.in @@ -626,10 +626,14 @@ OpenSSL 1.1.0. =item B<-comp> -Enable negotiation of TLS compression. +Enables support for SSL/TLS compression. This option was introduced in OpenSSL 1.1.0. TLS compression is not recommended and is off by default as of -OpenSSL 1.1.0. +OpenSSL 1.1.0. TLS compression can only be used in security level 1 or +lower. From OpenSSL 3.2.0 and above the default security level is 2, so this +option will have no effect without also changing the security level. Use the +B<-cipher> option to change the security level. See L<openssl-ciphers(1)> for +more information. =item B<-no_ticket> diff --git a/doc/man3/COMP_CTX_new.pod b/doc/man3/COMP_CTX_new.pod index f73df521e8..997f1187f4 100644 --- a/doc/man3/COMP_CTX_new.pod +++ b/doc/man3/COMP_CTX_new.pod @@ -123,7 +123,8 @@ Zstandard may be found at L<https://github.com/facebook/zstd>. Compression of SSL/TLS records is not recommended, as it has been shown to lead to the CRIME attack L<https://en.wikipedia.org/wiki/CRIME>. It is disabled by default, and may be enabled by clearing the -SSL_OP_NO_COMPRESSION options of the L<SSL_CTX_set_options(3)> or +SSL_OP_NO_COMPRESSION option and setting the security level as appropriate. +See the documentation for the L<SSL_CTX_set_options(3)> and L<SSL_set_options(3)> functions. Compression is also used to support certificate compression as described diff --git a/doc/man3/SSL_CONF_cmd.pod b/doc/man3/SSL_CONF_cmd.pod index 7ffd731410..203ef17a26 100644 --- a/doc/man3/SSL_CONF_cmd.pod +++ b/doc/man3/SSL_CONF_cmd.pod @@ -46,7 +46,10 @@ As of OpenSSL 1.1.0, compression is off by default. Enables support for SSL/TLS compression, same as clearing B<SSL_OP_NO_COMPRESSION>. This command was introduced in OpenSSL 1.1.0. -As of OpenSSL 1.1.0, compression is off by default. +As of OpenSSL 1.1.0, compression is off by default. TLS compression can only be +used in security level 1 or lower. From OpenSSL 3.2.0 and above the default +security level is 2, so this option will have no effect without also changing +the security level. See L<SSL_CTX_set_security_level(3)>. =item B<-no_ticket> diff --git a/doc/man3/SSL_CTX_set_options.pod b/doc/man3/SSL_CTX_set_options.pod index 56695e4abd..5ec1e5baab 100644 --- a/doc/man3/SSL_CTX_set_options.pod +++ b/doc/man3/SSL_CTX_set_options.pod @@ -250,8 +250,12 @@ and compressed certificates will not be accepted from the peer. =item SSL_OP_NO_COMPRESSION -Do not use compression even if it is supported. This option is set by default. -To switch it off use SSL_clear_options(). +Do not use TLS record compression even if it is supported. This option is set by +default. To switch it off use SSL_clear_options(). Note that TLS record +compression is not recommended and is not available at security level 2 or +above. From OpenSSL 3.2 the default security level is 2, so clearing this option +will have no effect without also changing the default security level. See +L<SSL_CTX_set_security_level(3)>. =item SSL_OP_NO_ENCRYPT_THEN_MAC |