Debianデフォルトのパスワード暗号化方式
こんな記事を見つけた。2008年の記事。
chpasswdのバグ?: さかなでブログ
chpasswdコマンドを使ってユーザーにパスワードを設定すると、
chpasswdコマンドがパスワードをDESで暗号化して/etc/shadowに書き込むため、
先頭一致するパスワードならログイン出来てしまうらしい。
・passwdはMD5でパスワードを暗号化しているが、chpasswdはDESで暗号化している。
・chpasswdの暗号方式を変えるためには「/etc/login.defs」というファイルを編集すればいいらしい。
・passwdは「/etc/login.defs」を使用せず、PAMというもので設定しているらしい。
ということでchpasswdでパスワードをMD5で暗号化するには/etc/login.defs に「MD5_CRYPT_ENAB yes」と追加すればいいということが分かった。試しにchpasswdでパスワードを変更してみたところ、今度は最初のような現象はなくなった。
wheezyで/etc/login.defsを覗いてみるとMD5_CRYPT_ENABは「This variable is deprecated. You should use ENCRYPT_METHOD.」と書かれていて、ENCRYPT_METHODを見てみると
ENCRYPT_METHOD SHA512
と書かれていて、SHA512で暗号化するようになってた。
2008年の記事だしどのディストリビューションでもすでに対策されてる問題だろうけど、最近ブログ全然書かないので書いてみた。