Apache HTTPD または APR 用の PBKDF2 (または BCrypt) ハッシュ実装

Apache HTTPD または APR 用の PBKDF2 (または BCrypt) ハッシュ実装

Apache HTTPD 内で PBKDF2 または BCrypt をパスワード ハッシュとして使用する (簡単な) 方法をご存知の方はいませんか。

一般的なシナリオとしては、/private にリソースがあり、それを特定のユーザー グループに制限したいとします。これらのユーザーのパスワードはデータベースに保存され、 を使用して検証されますmod_auth_dbd

私は...するだろうのようにSSHA の使用を避けるため。

Apache apr-util には関数apr_password_validate(現在では好ましくないハッシュ タイプをすべて処理する) があり、apr_crypto_openssl.c にはcrypto_passphrasePBKDF2 の実装があることがわかります。

誰かがこの 2 つを結合したことがありますか? (または、Apache ドキュメントのどこかで明らかなことを見逃しただけでしょうか?)

答え1

さらに検討してみると、すべてが想像していたよりもずっと簡単だったようです。

HTTPD はシステムが提供する暗号化機能を使用するため、そのモジュール性を活用します。

http://en.wikipedia.org/wiki/Crypt_(Unix)#Modular_crypt.283.29_アルゴリズム

理論的には BCrypt を直接サポートします (ただし、テストは行っていません)。$6 プレフィックスを使用して SHA-512 をテストしました。

したがって、以下のように計算されたパスワードを設定すると、目的の結果が得られます。

salt = 'fGn9LR75';
puts 'quohjo5oor4ac3Deolei'.crypt('$6$' + salt);
=>    
"$6$fGn9LR75$juRSrMtKBa8pdZ8tbTouUvDItoF9Fp.LVk8Kqv2ZL5T.R.q/nUQNGePve1Ge/8rDf/xqUwgpY.3F1MQ0qtauf0"

答え2

将来検索する人のために、bcrypt サポートは 2013 年 2 月にリリースされた Apache バージョン 2.4.4 で追加されたことに注意してください。

$ htpasswd -nbB -C 11 ユーザー名 パスワード ユーザー名:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa

関連情報