OpenLDAPのデフォルトのパスワードハッシュ形式は SSHA (ソルト付きSHA1)ですが、SHA1の暗号強度が今日のコンピューターにとって十分とは言えない時代がやってきました。
このような状況に合わせて、MicrosoftやGoogleなどではSHA1の利用の中止が決まっています。
http://www.digicert.ne.jp/howto/basis/transitioning-to-sha-2.html
http://www.itmedia.co.jp/enterprise/articles/1409/08/news043.html
このような状況のため、OpenLDAPのパスワード格納に関してもSHA1の利用を中止し、SHA2へ移行する流れとなってきています。
OpenLDAPでSHA2形式でパスワードを格納する方法は2つあります。
1. pw-sha2オーバーレイによりSHA2形式のパスワード利用します。
- OpenLDAP 2.4.32以降で実質的なSHA2サポートが始まり、利用が可能となりました。
- 利用のためには、pw-sha2オーバーレイを有効にする必要があります。
- {SHA256}、{SSHA256}、{SHA384}、{SSHA384}、{SHA512}、{SSHA512}に対応しています。
- ハッシュ化パスワードのラウンドは行われません。
- OpenLDAPでは、パスワードの形式として{CRYPT}を指定すると、OSのcrypt(3)機能を利用したハッシュ化が行われます。
ハッシュできる形式は、OSのcrypt(3)が提供する形式に限られますが、RHEL6などの最近のOSであればSHA2に対応済みです。
- 利用のためには、password-hashパラメーターと、password-crypt-salt-formatパラメーターの指定が必要です。
password-hash "{CRYPT}"
password-crypt-salt-format "$5$%.8s"
$5$はSHA256形式のハッシュ化を意味し、"%.8s"の部分が8文字のランダムなソルトを付与することを意味します。SHA512を利用したい場合は、$5$の代わりに$6$を指定します。
- {CRYPT}形式で指定したパスワードは、glibcのcrypt(3)によってSHA256/SHA512のハッシュ化が行われますが、この際、5000回のラウンド処理が行われます。ラウンド回数は salt-formatにroundsパラメーターで指定することが可能で、1000回以上を指定可能です。(1000回以下を指定すると、1000に設定されます)
8000回のラウンドを指定する場合は、password-crypt-salt-formatに"rounds=8000$"をソルト文字列の前に付与します。
password-crypt-salt-format "$5$rounds=8000$%.8s"
- LDIFでパスワードを登録する際にSHA256などで{CRYPT}形式のハッシュ化パスワード文字列を得たいときは、slappasswdコマンドで生成します。
$ slappasswd -c "$5$rounds=8000$%.8s" -s
0 件のコメント:
コメントを投稿