@@ -159,6 +159,41 @@ following diff::
159159add the lines marked with ``+`` in the file in the location after
160160check_main is assigned.
161161
162+ Modify config.ini password_pbkdf2_default_rounds setting (recommended)
163+ ----------------------------------------------------------------------
164+
165+ The method for hashing and storing passwords has been updated to use
166+ PBKDF2 with SHA512 hash. This change was first introduced in Roundup
167+ 2.3 and is now the standard. If you previously added code in
168+ interfaces.py for a `PBKDF2 upgrade`_ to enable PBKDF2S5, you can
169+ remove that code now.
170+
171+ SHA512 is a more secure hash, it requires fewer rounds to ensure
172+ safety. The older PBKDF2-SHA1 needed around 2 million rounds.
173+
174+ You should update the ``password_pbkdf2_default_rounds`` setting in
175+ ``config.ini`` to 250000. This value is higher than the OWASP
176+ recommendation of 210000 from three years ago. If you don’t make this
177+ change, logins will be slow, especially for REST or XMLRPC calls.
178+
179+ See `PBKDF2 upgrade`_ for details on how to test the algorithm's
180+ speed. We do not recommend reverting to the older SHA1 PBKDF2. If you
181+ have to do so due to a slow CPU, you can add the following to your
182+ tracker's ``interfaces.py``::
183+
184+ from roundup.password import Password
185+ ## Use PBDKF2 (PBKDF2-SHA1) as default hash for passwords.
186+ # That scheme is at the start of the deprecated_schemes list and ha
187+ # to be removed.
188+ Password.default_scheme = Password.deprecated_schemes.pop(0)
189+ # Add PBKDF2S5 (PBKDF2-SHA512) as a valid scheme. Passwords
190+ # using it will be rehashed to use PBDKF2.
191+ Password.experimental_schemes[0] = "PBKDF2S5"
192+
193+ If you proceed with this, you should set
194+ ``password_pbkdf2_default_rounds`` to 2 million or more rounds to keep
195+ your hashed password database secure in case it gets stolen.
196+
162197Defusedxml support improves XMLRPC security (optional)
163198------------------------------------------------------
164199
@@ -1292,6 +1327,8 @@ install an OS vendor package or some other library.
12921327
12931328.. _recommended setting of 1,300,000: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2
12941329
1330+ .. _PBKDF2 upgrade:
1331+
12951332Upgrade to PBKDF2-SHA512 from current PBKDF2-SHA1 (recommended)
12961333---------------------------------------------------------------
12971334
0 commit comments