web-dev-qa-db-ja.com

/ etc / passwdおよび/ etc / shadowでパスワードを暗号化するためにどのような方法が使用されていますか?

/etc/passwdおよび/etc/shadowファイルを注意深く調べると、格納されているパスワードが何らかの形式のハッシュ関数を使用してハッシュされていることがわかります。

Googleをすばやく検索すると、デフォルトでは、パスワードは [〜#〜] des [〜#〜] を使用して暗号化されていることがわかります。エントリが$で始まる場合は、他のハッシュ関数が使用されたことを示しています。

たとえば、私のUbuntuマシンの一部のエントリは$6$...で始まります。

さまざまな数字は何を表していますか?

19
Nathan Osman

完全なリストはman 3 cryptweb version )にあります:

          ID  | Method
          -------------------------------------------------
          1   | MD5
          2a  | Blowfish (on some Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

(Blowfishは Wikipedia Crypt(Unix) に従って$2$または$2a$のいずれかです。)

したがって、$6$SHA-512を意味します。

システムがどちらを使用するかは、 pam_unix PAMモジュール に渡されるオプションによって制御されます。

Ubuntuの最新バージョンのデフォルトは/etc/pam.d/common-passwordに設定されています。

password        [success=1 default=ignore]      pam_unix.so obscure sha512

これは、次回パスワードを変更するときに、アカウントがNIS/LDAP/Kerberosなどではなくローカルであると想定して、SHA-512を使用してハッシュされることを意味します。

以下も参照してください。

28
Mikel