[Cryptography-dev] The one where we talk about crypto-ethics

Alex Gaynor alex.gaynor at gmail.com
Thu Nov 20 17:18:51 CET 2014


Hi everybody,

Folks who've been following our issue tracker might have noticed I've been
working on a pure-python implementation of key loading, to replace the way
we use OpenSSL right now for that. Here's the motivation:

* The OpenSSL API provides absolutely no flexibility, there's no way to
control which encryption algorithms are used for encrypted keys -- this
means very old, very bad, algorithms are enabled by default and silently
work while providing you basically no protection.
* The OpenSSL APIs don't handle non-ascii passwords correctly -- I don't
know if this is a thing in practice (probably not, chicken and egg)
* The support key loading algorithms differs quite a bit from backend to
backend, this makes the API more consistent depending on which backend
you're using.


So that's the motivation. Before we even start reviewing the patches, I
think we need to ask ourselves about the ethical implications of writing
this stuff ourselves:

* Are we qualified to do this? Some of this code, for example the PKCS#12
KDF is straight up crypto. Other parts of it are more-or-less just parsing
and ASN.1 handling
* Parsing and ASN.1 handling still have serious security implications
* Are we qualified to review this code?
* On the flip side, we're moving a bunch of code from dangerous C to memory
safe Python.
* We actually write tests, which is probably not true of all of our
backends.

Computationally ethicists, please opine,
Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cryptography-dev/attachments/20141120/fd62dfba/attachment.html>


More information about the Cryptography-dev mailing list