Hashed Passwords#
ORM stores users password in DB in hashing form. It supports next hash methods: SHA, SSHA, SHA-256, SSHA-256, SHA-384, SSHA-384, SHA-512, SSHA-512 MD5, SMD5, CRYPT, CRYPT-MD5, CRYPT-SHA-256, CRYPT-SHA-512, CRYPT-BCRYPT $2a$, CRYPT-BCRYPT $2b$, PKCS5S2, ARGON2
Support additional hashing methods can be added with Persistence Extension script.
Hash Password properties#
New hash methods like Argon2 supports default hash properties override. This is supported list of properties from /etc/jans/conf/jans-sql.properties
:
# Argon 2 parameters
# 0 - ARGON2_d, 1 - ARGON2_i, 2 - ARGON2_id
password.method.argon2.type=2
# 1.0 - 16, 1.3 - 19
password.method.argon2.version=19
password.method.argon2.salt-length=16
password.method.argon2.memory=7168
password.method.argon2.iterations=5
password.method.argon2.parallelism=1
password.method.argon2.hash-length=32
After thess properties update jans-auth
requires restart.
Hash Password format#
User password value in DB has format {TYPE}{BASE64 encoded hash}
Argon2 hashed passwords in DB has similar format. Each password starts from{ARGON2}
which follows Base64 encoded argon2 password hash with properties.
Argon2 encoded format contains next parts: $type$v=version$m=memory,t=iterations,p=parallelism$Base64WithoutPadding(salt)$Base64WithoutPadding(password_hash)
Here are samples of secret
encoded passwords:
-
With default values:
{ARGON2}JGFyZ29uMmkkdj0xOSRtPTcxNjgsdD01LHA9MSRuSGZnL2JBZTRybEtNWS90ck9WNGdnJGJvWmgvcG9tVDJyR1dPV0pNRVp4KzlGa0dJWTVVbjhwTVk0Syt6L28rME0= -> $argon2i$v=19$m=7168,t=5,p=1$nHfg/bAe4rlKMY/trOV4gg$boZh/pomT2rGWOWJMEZx+9FkGIY5Un8pMY4K+z/o+0M
-
Override default setting with file
/etc/jans/conf/jans-sql.properties
# Argon 2 parameters password.method.argon2.type=2 password.method.argon2.version=19 password.method.argon2.salt-length=16 password.method.argon2.memory=32768 password.method.argon2.iterations=10 password.method.argon2.parallelism=1 password.method.argon2.hash-length=32
{ARGON2}JGFyZ29uMmlkJHY9MTkkbT0zMjc2OCx0PTEwLHA9MSRXMnQyRjVEWVNRYWtUOFZaUEJlTHRRJGMrb0RTdThiWG4zemQ2Q3NyM2RnN2huY3RqemEyUXFVMnladlZyL2w3YlU=
$argon2id$v=19$m=32768,t=10,p=1$W2t2F5DYSQakT8VZPBeLtQ$c+oDSu8bXn3zd6Csr3dg7hnctjza2QqU2yZvVr/l7bU