This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients gregory.p.smith, jcea, naif, pitrou, vstinner
Date 2011-12-21.19:03:50
SpamBayes Score 1.314282e-12
Marked as misclassified No
Message-id <1324494231.58.0.0608670473314.issue13636@psf.upfronthosting.co.za>
In-reply-to
Content
> By default the Python SSL/TLS Stack (client/server) expose
> unsecure protocols (SSLv2) and unsecure ciphers (EXPORT 40bit DES).

If there is a problem, it should not be fixed in Python, but in the underlying library (OpenSSL) or in applications. Python only exposes features of the OpenSSL library. You should not see Python as an application but as a language: Python doesn't know what is your use case, or if you write a client or a server.

I suppose that OpenSSL has good reasons to still support weak algorithms like MD4 or SSLv2. Some operating systems, like Debian Sid, disable SSLv2 in the OpenSSL at the compilation.

If you consider that it is too complex to change the cipher list in a high level API (like http.client?), we may a ssl.DEFAULT_CIPHERS to allow an application to change the *default* cipher list.

SSLContext() requires a protocol, I suppose that the protocol is also by OpenSSL used in the negociation of the cipher list.

If we change the default behaviour, we should allow the user to get back the old behaviour (e.g. mark ssl._DEFAULT_CIPHERS as public in default_ciphers.patch).

--

IMO this issue is more a documentation issue: we should add a warning in the ssl module documentation, and maybe also in the documentation of modules using the ssl module (as we done for certificates for HTTPS).
History
Date User Action Args
2011-12-21 19:03:51vstinnersetrecipients: + vstinner, gregory.p.smith, jcea, pitrou, naif
2011-12-21 19:03:51vstinnersetmessageid: <1324494231.58.0.0608670473314.issue13636@psf.upfronthosting.co.za>
2011-12-21 19:03:51vstinnerlinkissue13636 messages
2011-12-21 19:03:50vstinnercreate