Apache HTTPD 내에서 PBKDF2 또는 BCrypt를 비밀번호 해시로 사용하는 (간단한) 방법을 아는 사람이 있습니까?
일반적인 시나리오는 /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_Algorithms
이론적으로는 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월에 출시된 버전 2.4.4의 Apache에 추가되었습니다.
$ htpasswd -nbB -C 11 사용자 이름 비밀번호 사용자 이름:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa