Реализация хэша PBKDF2 (или BCrypt) для Apache HTTPD или APR

Реализация хэша PBKDF2 (или BCrypt) для Apache HTTPD или APR

Кто-нибудь знает (простой) способ использования PBKDF2 или BCrypt в качестве хэша пароля в Apache HTTPD?

Общий сценарий таков: у меня есть ресурс в /private, который я хотел бы ограничить для определенной группы пользователей. У этих пользователей будут пароли, сохраненные в базе данных и проверенные с помощью mod_auth_dbd.

Я бынравитьсячтобы отказаться от использования SSHA.

Я вижу в Apache apr-util, что есть функция apr_password_validate(которая обрабатывает все ныне неодобряемые типы хэшей); а в apr_crypto_openssl.c есть , crypto_passphraseкоторая является реализацией PBKDF2.

Кто-нибудь объединил эти два момента? (или я просто пропустил что-то очевидное в документации Apache?)

решение1

Итак, после дальнейшего изучения, оказалось, что все гораздо проще, чем я себе представлял.

HTTPD использует системную функцию шифрования и, таким образом, использует ее модульность.

http://en.wikipedia.org/wiki/Crypt_(Unix)#Modular_crypt.283.29_Алгоритмы

Теоретически он поддерживает BCrypt напрямую (хотя я не проверял). Я тестировал SHA-512 с использованием префикса $6.

Таким образом, установка пароля, рассчитанного ниже, позволяет достичь желаемого результата:

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

решение2

Для будущих поисковиков обратите внимание, что поддержка bcrypt была добавлена ​​в Apache в версии 2.4.4, выпущенной в феврале 2013 года.

$ htpasswd -nbB -C 11 имя пользователя пароль имя пользователя:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa

Связанный контент