summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2023-12-20 10:07:39 +0000
committerMatt Caswell <matt@openssl.org>2023-12-22 09:01:10 +0000
commitce625bb5eb53691cb23d98c3ca76aebd62d0f5f2 (patch)
tree9e54b6e3fa6e1b0bdc18e1c5893f792b5964b366 /doc
parent1eb50745f909a40c60c3a2607355777a931defdf (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.in6
-rw-r--r--doc/man1/openssl-s_server.pod.in8
-rw-r--r--doc/man3/COMP_CTX_new.pod3
-rw-r--r--doc/man3/SSL_CONF_cmd.pod5
-rw-r--r--doc/man3/SSL_CTX_set_options.pod8
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