From 09d0a22cf7ed66aace14bcd50208820848de98b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Dachary?= Date: Mon, 20 Feb 2023 23:25:12 +0100 Subject: [PATCH] [SECURITY] default to pbkdf2 with 320,000 iterations (cherry picked from commit 3ea0b287d74b8fc0dad08b2a539105e1aa1c1e67) (cherry picked from commit db8392a8ac093d4d3760e8bb40c56d8e194d44fb) (cherry picked from commit bd2a5fa2923c320e01faeaa1fdc1ad823c337027) (cherry picked from commit 2436acb3d986bad08aa134e450420fc4a08f5d62) (cherry picked from commit 62f50e1c521c30729781e5cd58882e743bb8b851) (cherry picked from commit dba18925217254d22f76306c0fe1c046c419268e) (cherry picked from commit 4b58e3b6d41f9e42fd34469184a3c7d4c5205c86) (cherry picked from commit 12470568569fec0644319d3d263a82bc7acdc0c3) (cherry picked from commit afbaea700972ddd4cb788d0b6d5e78de5558756a) (cherry picked from commit dcd4813d96f8d4e429914f4c8f951bd25b23afca) (cherry picked from commit b51dc963d1625bd7b9869302ec1ae70bbafb4442) (cherry picked from commit 611e895efd28026fdc4661893172356e76f6c3d0) (cherry picked from commit fd492a03f5335c138e143e784657f7012484bd8c) (cherry picked from commit 2c99991f44a15466339bb82b29d455c66795721b) (cherry picked from commit 7426c1edb4b904424cded473c94c9739fde83ed0) (cherry picked from commit 373244f8b2d449e8811e488e3a3732ba9bc79eaa) (cherry picked from commit 4f6efecdb9d932459dd9f4d7ee393a121a7bbb96) (cherry picked from commit 61d500808e443ce770b06fa1b87728a7785bd387) (cherry picked from commit 65f8384b6361c39d48df95227b047a20977482be) (cherry picked from commit 12ed28e734f79203ad6bf94774008715da6efd21) (cherry picked from commit ec6cdc9e1a9544f4f2b0ad7256ed2a8b15cf5335) (cherry picked from commit 08653ba05119906e066455a3e3913e66c179dbf3) (cherry picked from commit d5847c87cbcf0fd15953fb7aeadd1cece989b6c9) (cherry picked from commit 640a96e19be0c7faedf5aedfd90c15df8dc8f376) (cherry picked from commit 46177814a9ee8596b58055b57bea5441a893de7f) (cherry picked from commit b0098f5a80356757107cc4dd58bf24e2acba6b26) (cherry picked from commit ce5ddeeca9fa39180a2f9630c82007f8e9410867) (cherry picked from commit 5736fa1025681244b8eefef9a14b0715fa37d9a1) (cherry picked from commit c43ca210fcbc2589158df8c2c3036dedb00eaa52) (cherry picked from commit 7f92906bf3c72649dd2668263761ded71cf5ee91) (cherry picked from commit f726525d2dba5e481f758624e62eeaa3d38be564) --- custom/conf/app.example.ini | 4 ++-- modules/auth/password/hash/setting.go | 2 +- modules/auth/password/hash/setting_test.go | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 53fd9111b7..775326bd19 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -479,8 +479,8 @@ INTERNAL_TOKEN= ;;Classes include "lower,upper,digit,spec" ;PASSWORD_COMPLEXITY = off ;; -;; Password Hash algorithm, either "argon2", "pbkdf2", "scrypt" or "bcrypt" -;PASSWORD_HASH_ALGO = pbkdf2 +;; Password Hash algorithm, either "argon2", "pbkdf2"/"pbkdf2_v2", "pbkdf2_hi", "scrypt" or "bcrypt" +;PASSWORD_HASH_ALGO = pbkdf2_hi ;; ;; Set false to allow JavaScript to read CSRF cookie ;CSRF_COOKIE_HTTP_ONLY = true diff --git a/modules/auth/password/hash/setting.go b/modules/auth/password/hash/setting.go index f0715f31e1..05cd36fe3c 100644 --- a/modules/auth/password/hash/setting.go +++ b/modules/auth/password/hash/setting.go @@ -10,7 +10,7 @@ package hash // // It will be dealiased as per aliasAlgorithmNames whereas // defaultEmptyHashAlgorithmSpecification does not undergo dealiasing. -const DefaultHashAlgorithmName = "pbkdf2" +const DefaultHashAlgorithmName = "pbkdf2_hi" var DefaultHashAlgorithm *PasswordHashAlgorithm diff --git a/modules/auth/password/hash/setting_test.go b/modules/auth/password/hash/setting_test.go index d707207db6..548d87c570 100644 --- a/modules/auth/password/hash/setting_test.go +++ b/modules/auth/password/hash/setting_test.go @@ -28,11 +28,11 @@ func TestCheckSettingPasswordHashAlgorithm(t *testing.T) { }) } - t.Run("pbkdf2_v2 is the default when default password hash algorithm is empty", func(t *testing.T) { + t.Run("pbkdf2_hi is the default when default password hash algorithm is empty", func(t *testing.T) { emptyConfig, emptyAlgo := SetDefaultPasswordHashAlgorithm("") - pbkdf2v2Config, pbkdf2v2Algo := SetDefaultPasswordHashAlgorithm("pbkdf2_v2") + pbkdf2hiConfig, pbkdf2hiAlgo := SetDefaultPasswordHashAlgorithm("pbkdf2_hi") - assert.Equal(t, pbkdf2v2Config, emptyConfig) - assert.Equal(t, pbkdf2v2Algo.Specification, emptyAlgo.Specification) + assert.Equal(t, pbkdf2hiConfig, emptyConfig) + assert.Equal(t, pbkdf2hiAlgo.Specification, emptyAlgo.Specification) }) }