web-dev-qa-db-ja.com

Linuxはユーザーパスワードを保存するときにどのキーを使用しますか?

Linuxは通常、ユーザー名とパスワードのハッシュを/ etc/passwdまたは/ etc/shadowに格納します。

今、私は古いCentOSディストリビューションを持っていて、DESで暗号化されたユーザーのパスワード(学校では合法的な学習コンテキストにある)を回復しようとすると、同じキーを使用して暗号化された平文と暗号が必要だと考えました私の未知のパスワード、その鍵を解読してから、そのユーザーのために保存されている暗号を解読します(そうですか?).

さて、私の質問は、ユーザーを作成するときにLinuxはどのように/いつキーを生成するのですか?新しいユーザーを作成した場合、キーは以前と同じであると思いますか?その場合、システムで使用されるキーは単純に回復可能ですか?

7
pwny

DESベースのスキームでは、ソルトパスワードはキーであり、プレーンテキストはすべてゼロであるため、キーとメッセージの役割が交換されるため、暗号化されません。

Wikiまたはcrypt()のマニュアルページから始めて、crypt()関数の詳細を読むことができます。

http://en.wikipedia.org/wiki/Crypt_%28Unix%29

http://www.kernel.org/doc/man-pages/online/pages/man3/crypt.3.html

7
lubas

パスワードは暗号化されていません ハッシュ化 です。ハッシュから元のパスワードを導出することは数学的に不可能です。検証は、ユーザーが入力したパスワードをハッシュし、ボールト内のパスワードと比較することによって行われます。一致する場合、ユーザーは認証され、ログインできます。

9
Polynomial

デフォルトでは、LinuxはSHA512($ 6 $で始まるハッシュされたパスワード)を使用してユーザーパスワードをハッシュします。

次のハッシュアルゴリズムがcrypt()でサポートされています。

          ID  | Method
          ─────────────────────────────────────────────────────────
          1   | MD5
          2a  | Blowfish (not in mainline glibc; added in some
              | Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

デフォルトでLinuxハッシュアルゴリズムを変更するには、/ etc/login.defsファイルのENCRYPT_METHOD変数を編集するか、authconfigプログラムを使用します。

Bruteforceは、パスワードハッシュを解読する唯一の方法です。クラックツールを検索する場合は、 JohnTheRipper または oclhashcat を参照してください。

2
insider