Karsten Otto created JAMES-3674:
-----------------------------------

             Summary: Support password salting and hash scheme upgrading
                 Key: JAMES-3674
                 URL: https://issues.apache.org/jira/browse/JAMES-3674
             Project: James Server
          Issue Type: Improvement
          Components: UsersStore & UsersRepository
    Affects Versions: master
            Reporter: Karsten Otto


Currently, James does not use salt during password hashing, so its password 
database is vulnerable to rainbow table cracking if someone ever manages to 
steal it. Furthermore, there is no mechanism to upgrade user passwords to 
stronger/different hashing once they are created (cf. legacy hashing mode). 
This is a problem for any installation that does not employ an external LDAP 
user database.

A simple solution is to include the user name as salt in the password hash. For 
this purpose, the {{hashingMode}} choices in {{usersrepository.xml}} should 
include an new mode "salted" in addition to "legacy" and "default".

Additionally, the database should include an explicit column in the user table, 
which specifies the {{hashingMode}} of the stored password, and is used during 
verification. However, when a user changes the password,  the configured 
{{algorithm}} and {{hashingMode}} from {{usersrepository.xml}} will be used 
instead. This way, the database gradually upgrades over time to the preferred 
setting.

T-Shirt size L.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to