diff options
author | Todd Short <tshort@akamai.com> | 2015-12-21 15:19:29 -0500 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2017-11-30 07:13:08 +1000 |
commit | e1c7871de80029b81824df4d59edc6de5293835f (patch) | |
tree | 8b5e34751cbc70493dbbb36cddaf7f85cd943ccd /doc | |
parent | 92b1b9a8871530f26ef7df972111297ffa721be2 (diff) |
Use ChaCha only if prioritized by clnt
IFF the client has ChaCha first, and server cipher priority is used,
and the new SSL_OP_PRIORITIZE_CHACHA_FOR_MOBILE option is used,
then reprioritize ChaCha above everything else. This way, A matching
ChaCha cipher will be selected if there is a match. If no ChaCha ciphers
match, then the other ciphers are used.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4436)
Diffstat (limited to 'doc')
-rw-r--r-- | doc/man1/s_server.pod | 10 | ||||
-rw-r--r-- | doc/man3/SSL_CONF_cmd.pod | 26 | ||||
-rw-r--r-- | doc/man3/SSL_CTX_set_options.pod | 13 |
3 files changed, 41 insertions, 8 deletions
diff --git a/doc/man1/s_server.pod b/doc/man1/s_server.pod index 0e28e4e2f1..ad04359efd 100644 --- a/doc/man1/s_server.pod +++ b/doc/man1/s_server.pod @@ -105,6 +105,7 @@ B<openssl> B<s_server> [B<-no_resumption_on_reneg>] [B<-no_legacy_server_connect>] [B<-allow_no_dhe_kex>] +[B<-prioritize_chacha>] [B<-strict>] [B<-sigalgs val>] [B<-client_sigalgs val>] @@ -510,6 +511,10 @@ Disable RFC4507bis session ticket support. Use the server's cipher preferences, rather than the client's preferences. +=item B<-prioritize_chacha> + +Prioritize ChaCha ciphers when preferred by clients. Requires B<-serverpref>. + =item B<-no_resumption_on_reneg> Set the B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> option. @@ -718,7 +723,10 @@ L<SSL_CTX_set_max_pipelines(3)> =head1 HISTORY -The -no_alt_chains options was first added to OpenSSL 1.1.0. +The -no_alt_chains option was first added to OpenSSL 1.1.0. + +The -allow-no-dhe-kex and -prioritize_chacha options were first added to +OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_cmd.pod b/doc/man3/SSL_CONF_cmd.pod index a8121865a9..06b98bd416 100644 --- a/doc/man3/SSL_CONF_cmd.pod +++ b/doc/man3/SSL_CONF_cmd.pod @@ -171,6 +171,13 @@ Use server and not client preference order when determining which cipher suite, signature algorithm or elliptic curve to use for an incoming connection. Equivalent to B<SSL_OP_CIPHER_SERVER_PREFERENCE>. Only used by servers. +=item B<-prioritize_chacha> + +Prioritize ChaCha ciphers when the client has a ChaCha20 cipher at the top of +its preference list. This usually indicates a client without AES hardware +acceleration (e.g. mobile) is in use. Equivalent to B<SSL_OP_PRIORITIZE_CHACHA>. +Only used by servers. Requires B<-serverpref>. + =item B<-no_resumption_on_reneg> set SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION flag. Only used by servers. @@ -382,21 +389,26 @@ B<Bugs>: enable various bug workarounds. Same as B<SSL_OP_ALL>. B<DHSingle>: enable single use DH keys, set by default. Inverse of B<SSL_OP_DH_SINGLE>. Only used by servers. -B<ECDHSingle> enable single use ECDH keys, set by default. Inverse of +B<ECDHSingle>: enable single use ECDH keys, set by default. Inverse of B<SSL_OP_ECDH_SINGLE>. Only used by servers. -B<ServerPreference> use server and not client preference order when +B<ServerPreference>: use server and not client preference order when determining which cipher suite, signature algorithm or elliptic curve to use for an incoming connection. Equivalent to B<SSL_OP_CIPHER_SERVER_PREFERENCE>. Only used by servers. -B<NoResumptionOnRenegotiation> set +B<PrioritizeChaCha>: prioritizes ChaCha ciphers when the client has a +ChaCha20 cipher at the top of its preference list. This usually indicates +a mobile client is in use. Equivalent to B<SSL_OP_PRIORITIZE_CHACHA>. +Only used by servers. + +B<NoResumptionOnRenegotiation>: set B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> flag. Only used by servers. -B<UnsafeLegacyRenegotiation> permits the use of unsafe legacy renegotiation. +B<UnsafeLegacyRenegotiation>: permits the use of unsafe legacy renegotiation. Equivalent to B<SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION>. -B<UnsafeLegacyServerConnect> permits the use of unsafe legacy renegotiation +B<UnsafeLegacyServerConnect>: permits the use of unsafe legacy renegotiation for OpenSSL clients only. Equivalent to B<SSL_OP_LEGACY_SERVER_CONNECT>. Set by default. @@ -595,9 +607,11 @@ B<SSL_CONF_TYPE_UNKNOWN>. B<MinProtocol> and B<MaxProtocol> where added in OpenSSL 1.1.0. +B<AllowNoDHEKEX> and B<PrioritizeChaCha> were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2012-2017 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_options.pod b/doc/man3/SSL_CTX_set_options.pod index bd7f111d4c..072fdb7c5c 100644 --- a/doc/man3/SSL_CTX_set_options.pod +++ b/doc/man3/SSL_CTX_set_options.pod @@ -180,6 +180,15 @@ messages, and ignore renegotiation requests via ClientHello. In TLSv1.3 allow a non-(ec)dhe based key exchange mode on resumption. This means that there will be no forward secrecy for the resumed session. +=item SSL_OP_PRIORITIZE_CHACHA + +When SSL_OP_CIPHER_SERVER_PREFERENCE is set, temporarily reprioritize +ChaCha20-Poly1305 ciphers to the top of the server cipher list if a +ChaCha20-Poly1305 cipher is at the top of the client cipher list. This helps +those clients (e.g. mobile) use ChaCha20-Poly1305 if that cipher is anywhere +in the server cipher list; but still allows other clients to use AES and other +ciphers. Requires B<SSL_OP_CIPHER_SERVER_PREFERENCE>. + =back The following options no longer have any effect but their identifiers are @@ -306,9 +315,11 @@ L<dhparam(1)> The attempt to always try to use secure renegotiation was added in Openssl 0.9.8m. +B<SSL_OP_PRIORITIZE_CHACHA> was added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy |