web-dev-qa-db-ja.com

openssl passwdの目的は何ですか

私は " Reliably Deploying Rails Applications "を読んでいます。

Chefによってセットアップされるユーザーの定義に関して、それは言う:

「次に、ユーザーを定義する必要があります。data_bags/ users内で、ファイルdeploy.json.exampleをdeploy.jsonにコピーします。

次のコマンドを使用して、デプロイユーザーのパスワードを生成します。

openssl passwd -1 "plaintextpassword"

そして、それに応じてdeploy.jsonを更新します。」

私の質問は、openssl passwdの目的は何ですか?強力なパスワードを生成するだけですか?ランダムな文字を入力した場合と同じくらい良いでしょうか?

次に、「実際の」パスワードとは何ですか?プレーンテキストバージョンですか、それとも暗号化バージョンですか?両方のコピーをパスワードマネージャーに保存する必要がありますか?

更新:

はい、マニュアルを読みました。そして、はい、それは私のパスワードのmd5暗号化バージョンを生成することを理解しています。私の質問は、自分で構成する(またはパスワードジェネレーターで生成する)非常に安全なランダムな文字列を使用するのではなく、なぜそれを使用するのかについての質問です。

私が考えることができる1つの利点は、覚えやすいパスワードを入力して、それを入力する必要があるたびにopenssl passwd -1 "plaintextpassword"を通じて実行できることです。つまり、覚えやすいパスワードと、安全でランダムなパスワードという点で、両方の長所を備えていることになります。そして、必要なときに毎回「openssl passwd -1」を介して記憶可能/プレーンテキストバージョンを実行すると、暗号化されたバージョンのパスワードを保存し、パスワードを入力する必要があるたびにそれを入力/貼り付けする必要がなくなります。

それが唯一のメリットですか?そうでない場合、他は何ですか?

5
joshua.paling

#chef IRCチャネルでチャットした後、私が最終的に知る必要があったのはこれです。そのほとんどは実際にはopenssl passwd固有ではなく、周辺情報ですが、とにかく...

Chefユーザーは、ユーザーを追加するための標準のadduserコマンド( http://linux.die.net/man/8/adduser )を使用します。このコマンドはパスワードを受け入れますすでに暗号化されています-それで、暗号化されたバージョン(openssl passwd -1 "plaintextpassword"によって生成されたもの)をdata_bags/users/deploy.jsonに保存する必要があります。

したがって、プレーンテキストのパスワードは「実際の」パスワードです。ただし、adduserコマンドは、渡したパスワードがすでに暗号化されていると想定しているため、data_bags/users/deploy.jsonに保存する必要があるのは暗号化されたバージョンです。

プレーンテキストのパスワードをdata_bags/users/deploy.jsonに保存したくないので、これはうまくいきます。

私の元の質問に戻ります:

「実際の」パスワードとは何ですか?プレーンテキストバージョンですか、それとも暗号化バージョンですか?
プレーンテキストバージョンは、あなたのものです。

両方のコピーをパスワードマネージャに保存する必要はありますか?いいえ。プレーンテキストバージョンのみを保存します。ログインするときはいつでもそれを使用します。システムはそれを暗号化し、アカウント用に保存されている暗号化されたバージョンと比較します。

openssl passwdの利点/目的は何ですか?

そのような「利点」はありません。 adduserコマンドは、指定されたパスワードがすでに暗号化されていると想定しているため、これは単に必要です。


そうは言っても、data_bags/users/deploy.jsonではパスワードを一切使用せず、SSHキー経由でのアクセスのみを許可する方がはるかに優れています。

Linuxのパスワード暗号化には悪い実績があるため、暗号化されたバージョンのパスワードをdata_bags/users/deploy.jsonに保存することはお勧めしません。 (編集:より良い説明については、以下のコメントを読んでください)

5
joshua.paling

このコマンドの目的は、一方向ハッシュアルゴリズム(-1はMD5を出力します)。取得できるのは、パスワードから暗号的に導出された文字列ですが、攻撃者がハッシュ化されたバージョンを手に入れた場合、それ自体でパスワードを見つけるために使用することはできません(理論的には、これに役立つソルトが含まれています Rainbowテーブル 、しかし攻撃者はまだ ブルートフォース に対して効果的にできます)。

ハッシュ関数でパスワードを実行すると、常に同じハッシュが生成されます。これをサーバーが保存されているハッシュと比較して、opensslコマンドで実行したパスワードと同じであることを確認できます。

8
Shane Madden