You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2024/02/07 16:05:37 UTC
(couchdb) 01/01: add metrics for fast vs slow password hashing
This is an automated email from the ASF dual-hosted git repository.
rnewson pushed a commit to branch couch_passwords_metrics
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 517f3abcdfafd8d15e26abd0a615574c2b72f80d
Author: Robert Newson <rn...@apache.org>
AuthorDate: Wed Feb 7 15:31:46 2024 +0000
add metrics for fast vs slow password hashing
---
src/couch/priv/stats_descriptions.cfg | 8 ++++++++
src/couch/src/couch_passwords.erl | 1 +
src/couch/src/couch_passwords_cache.erl | 1 +
3 files changed, 10 insertions(+)
diff --git a/src/couch/priv/stats_descriptions.cfg b/src/couch/priv/stats_descriptions.cfg
index af66ba06e..10c72ac94 100644
--- a/src/couch/priv/stats_descriptions.cfg
+++ b/src/couch/priv/stats_descriptions.cfg
@@ -278,6 +278,14 @@
{type, counter},
{desc, <<"number of file descriptors CouchDB has open">>}
]}.
+{[couchdb, password_hashing, slow], [
+ {type, counter},
+ {desc, <<"number of slow password hashing operations">>}
+]}.
+{[couchdb, password_hashing, fast], [
+ {type, counter},
+ {desc, <<"number of fast password hashing operations">>}
+]}.
{[couchdb, request_time], [
{type, histogram},
{desc, <<"length of a request inside CouchDB without MochiWeb">>}
diff --git a/src/couch/src/couch_passwords.erl b/src/couch/src/couch_passwords.erl
index fbfcc2c1d..19dd79e1f 100644
--- a/src/couch/src/couch_passwords.erl
+++ b/src/couch/src/couch_passwords.erl
@@ -107,6 +107,7 @@ pbkdf2(PRF, Password, Salt, Iterations, KeyLen) when
Iterations > 0,
KeyLen > 0
->
+ couch_stats:increment_counter([couchdb, password_hashing, slow]),
DerivedKey = fast_pbkdf2:pbkdf2(PRF, Password, Salt, Iterations, KeyLen),
couch_util:to_hex_bin(DerivedKey);
pbkdf2(PRF, Password, Salt, Iterations, KeyLen) when
diff --git a/src/couch/src/couch_passwords_cache.erl b/src/couch/src/couch_passwords_cache.erl
index f1d4cc604..39b8dbd58 100644
--- a/src/couch/src/couch_passwords_cache.erl
+++ b/src/couch/src/couch_passwords_cache.erl
@@ -71,4 +71,5 @@ insert(AuthModule, UserName, Password, Salt) when
end.
hash(Password, Salt) ->
+ couch_stats:increment_counter([couchdb, password_hashing, fast]),
fast_pbkdf2:pbkdf2(sha256, Password, Salt, ?FAST_ITERATIONS, ?SHA256_OUTPUT_LEN).