Humanity

Edit the world by your favorite way

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年の記事だしどのディストリビューションでもすでに対策されてる問題だろうけど、最近ブログ全然書かないので書いてみた。