私は " 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」を介して記憶可能/プレーンテキストバージョンを実行すると、暗号化されたバージョンのパスワードを保存し、パスワードを入力する必要があるたびにそれを入力/貼り付けする必要がなくなります。
それが唯一のメリットですか?そうでない場合、他は何ですか?
#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
に保存することはお勧めしません。 (編集:より良い説明については、以下のコメントを読んでください)
このコマンドの目的は、一方向ハッシュアルゴリズム(-1
はMD5を出力します)。取得できるのは、パスワードから暗号的に導出された文字列ですが、攻撃者がハッシュ化されたバージョンを手に入れた場合、それ自体でパスワードを見つけるために使用することはできません(理論的には、これに役立つソルトが含まれています Rainbowテーブル 、しかし攻撃者はまだ ブルートフォース に対して効果的にできます)。
ハッシュ関数でパスワードを実行すると、常に同じハッシュが生成されます。これをサーバーが保存されているハッシュと比較して、openssl
コマンドで実行したパスワードと同じであることを確認できます。