cpython: f586742e56cb (original) (raw)
Mercurial > cpython
changeset 103126:f586742e56cb
Issues #27850 and #27766: Remove 3DES from ssl default cipher list and add ChaCha20 Poly1305. [#27850]
Christian Heimes christian@python.org | |
---|---|
date | Tue, 06 Sep 2016 20:07:58 +0200 |
parents | 4c54d7ab84fa(current diff)d2111109fd77(diff) |
children | d926fa1a833c |
files | Doc/library/ssl.rst Lib/ssl.py Misc/NEWS |
diffstat | 3 files changed, 33 insertions(+), 15 deletions(-)[+] [-] Doc/library/ssl.rst 6 Lib/ssl.py 36 Misc/NEWS 6 |
line wrap: on
line diff
--- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -285,6 +285,12 @@ purposes. RC4 was dropped from the default cipher string.
3DES was dropped from the default cipher string.[](#l1.11)
+ Random generation ^^^^^^^^^^^^^^^^^
--- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -157,36 +157,42 @@ if _ssl.HAS_TLS_UNIQUE: else: CHANNEL_BINDING_TYPES = [] +
Disable weak or insecure ciphers by default
(OpenSSL's default setting is 'DEFAULT:!aNULL:!eNULL')
Enable a better set of ciphers by default
This list has been explicitly chosen to:
* Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
* Prefer ECDHE over DHE for better performance
-# * Prefer any AES-GCM over any AES-CBC for better performance and security +# * Prefer AEAD over CBC for better performance and security +# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI +# (ChaCha20 needs OpenSSL 1.1.0 or patched 1.0.2) +# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better +# performance and security
* Then Use HIGH cipher suites as a fallback
-# * Then Use 3DES as fallback which is secure but slow -# * Disable NULL authentication, NULL encryption, and MD5 MACs for security -# reasons +# * Disable NULL authentication, NULL encryption, 3DES and MD5 MACs +# for security reasons _DEFAULT_CIPHERS = (
- 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
- 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
- '!eNULL:!MD5'
- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
- '!aNULL:!eNULL:!MD5:!3DES'
- )
Restricted and more secure ciphers for the server side
This list has been explicitly chosen to:
* Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
* Prefer ECDHE over DHE for better performance
-# * Prefer any AES-GCM over any AES-CBC for better performance and security +# * Prefer AEAD over CBC for better performance and security +# * Prefer AES-GCM over ChaCha20 because most platforms have AES-NI +# * Prefer any AES-GCM and ChaCha20 over any AES-CBC for better +# performance and security
* Then Use HIGH cipher suites as a fallback
-# * Then Use 3DES as fallback which is secure but slow -# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, and RC4 for -# security reasons +# * Disable NULL authentication, NULL encryption, MD5 MACs, DSS, RC4, and +# 3DES for security reasons _RESTRICTED_SERVER_CIPHERS = (
- 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
- 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
- '!eNULL:!MD5:!DSS:!RC4'
- 'ECDH+AESGCM:ECDH+CHACHA20:DH+AESGCM:DH+CHACHA20:ECDH+AES256:DH+AES256:'
- 'ECDH+AES128:DH+AES:ECDH+HIGH:DH+HIGH:RSA+AESGCM:RSA+AES:RSA+HIGH:'
- '!aNULL:!eNULL:!MD5:!DSS:!RC4:!3DES'
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -85,6 +85,12 @@ Core and Builtins Library ------- +- Issue #27850: Remove 3DES from ssl module's default cipher list to counter