#15367: Improved Auth Password Hashing
-------------------------------------------------------------------------+--
Reporter: poswald |
Owner: nobody
Status: new |
Milestone: 1.4
Component: Authentication |
Version: 1.2
Keywords: password, hash, hashing, bcrypt, scrypt, pbkdf2, sha2, sha1 |
Triage Stage: Unreviewed
Has patch: 0 |
-------------------------------------------------------------------------+--
As discussed on the django-developers mailing list, we aim to improve the
default password hashing algorithm Django uses. This ticket will track the
changes needed to upgrade the default algorithm to one more resistant to
brute force attacks. This may include improvements ease allowing the
developer to change the encryption used to a third party library wether
that is by configuration or by decoupling the authentication code from the
User model object.
If you would like to help, please be familiar with the summary and
decisions made in the following discussion at least starting from this
message:
http://groups.google.com/group/django-
developers/browse_thread/thread/928ed5db00d5b1d8/919ce4798d30656a?#919ce4798d30656a
Also be aware of the past issues surrounding this issue, specifically
ticket:13969 which currently has existing code:
ticket:3316 (Adding `crypt' to list of password hashes for legacy apps. -
closed: fixed)
ticket:5600 (Patch to enhance cryptography on django.contrib.auth -
closed: wontfix)
ticket:5787 (BCrypt password hashing support in Django - closed:
duplicate)
ticket:6028 (add compatibility with glibc2 MD5-based crypt passwords - new
)
ticket:9101 (Improved salt generation for django.contrib.auth - closed:
wontfix)
ticket:9194 (Allow additional hashing algorithms for passwords - closed:
duplicate)
ticket:13969 (auth module should use longer salt for hashing - new)
The plan at this point is to follow this path:
* Django ships with PBKDF2 by default. This depends on SHA2 which should
be python 2.5 compatible (due to hashlib being added in python 2.5) and
PBKDF2 is short and simple enough that it could be included into the
project. This satisfies NIST/US Gov requirements.
* SHA1 is maintained for backwards compatibility
* Salt size increased
* Configurable settings for the number of hashing rounds to future-proof
for faster hardware
We can also Investigate simplified ways of allowing developers to upgrade
the hashing library based on their requirements, however it is more
important to get the default improved and that is where we should focus.
--
Ticket URL: <http://code.djangoproject.com/ticket/15367>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.