パスワードのハッシュ化にPBKDF2を使うべきではない
パスワードのハッシュ化関数にはArgon2を使うべきだ(2023-01-09 時点)
普及しない理由として、パスワードマネージャにはマルチプラットフォームが要求されがちなため、広い環境で信用できるライブラリが出揃わないと取り込めないというのが考えられる
少なくともBitwardenが二の足を踏んでるのはそういう理由のようだ
Argon2のOWASP推奨パラメータはこちら
情報分類だがRFCもある
RFC 9106 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications
PBKDF2はいまだNISTで推奨される関数なので使うこと自体は直ちに問題ではない。しかし既により良い関数があるし、安全に使うにはイテレーション数を多めに取らなければならないなどの問題がある。これは非力な計算機だとユーザビリティに影響しうる。
Argon2がよく、次点でbcryptがある (2023-01-09 時点)
ほとんどのパスワードマネージャはpassword-hashing functionにOWASPの推奨値より低いイテレーション回数のPBKDF2を使っている問題
The quest for a family-friendly password manager - Artificial truth
いくつか候補を上げているが、主に使われているのはPBKDF2-HMAC-(SHA256|SHA512)で、イテレーション回数は10万が多いようだ
OWASP Cheat Sheet Seriesにて推奨されるPBKDF2のイテレーション数は...
PBKDF2-HMAC-SHA1: 720,000 iterations
PBKDF2-HMAC-SHA256: 310,000 iterations
PBKDF2-HMAC-SHA512: 120,000 iterations
(2023-01-09 時点)
avashe.iconちなみにBitwardenのクライアントで処理される最大のイテレーション回数は20万だった
ドキュメントにはこの記載はないが、ユーザの私が実際にこれ以上設定できないことを確認した
ドキュメント曰くサーバ側で10万回追加されるので、最大30万回となる。これはOWASPの推奨値を下回ることを意味する...
というか、OWASPの基準を超えられているパスワードマネージャサービスは調査した感じなさそう
NIST SP 800-63Bでは少なくとも10,000回以上で、サーバが許容する最大値としている
ゆるくない?
当然セキュリティに詳しい技術者達が最新の技術を適用してくれているであろう、とわれわれが期待するプロダクトですらこれなのだが、パスワードをハッシュ化してない事例もたくさんあるのでやはりセキュリティとは難しいのだ...
#Security