回答:
Linuxシステムのパスワードは暗号化されておらず、ハッシュ化されているため、大きな違いがあります。
定義によりハッシュ関数を元に戻すことはできません。詳細については、ハッシュウィキペディアのエントリを参照してください。
使用されるハッシュ関数は、システム構成によって異なります。MD5とblowfishは、使用されるハッシュ関数の一般的な例です。
したがって、ユーザーの「実際の」パスワードがシステムに保存されることはありません。
ログインすると、パスワードとして入力した文字列がハッシュされ、/ etc / shadowファイルと照合されます。一致する場合は、明らかに正しいパスワードを入力しています。
とにかく、パスワードハッシュに対する攻撃方法はまだいくつかあります。人気のあるパスワードの辞書を保持して、自動的に試すことができます。インターネット上にはたくさんの辞書があります。別のアプローチは、膨大な時間を消費する文字のすべての可能な組み合わせを試すことです。これはブルートフォース攻撃と呼ばれます。
レインボーテーブルは、ハッシュに対するもう1つの優れた攻撃ベクトルです。この概念の背後にある考え方は、可能なすべてのハッシュを事前に計算し、テーブル内のハッシュを検索するだけで、対応するパスワードを見つけることです。このようなテーブルを作成するための分散コンピューティングプロジェクトがいくつかあり、サイズは使用する文字によって異なり、ほとんどが数TBです。
このようなルックアップテーブルのリスクを最小限に抑えるには、パスワードハッシュにいわゆる「ソルト」を追加するのが、Unix / Linuxの一般的な慣行とデフォルトの動作です。パスワードをハッシュし、ランダムなソルト値をハッシュに追加して、この新しい文字列を再度ハッシュします。入力した値が正しいパスワードかどうかを確認するには、新しいハッシュとソルトを保存する必要があります。この方法の大きな利点は、一意のソルトごとに新しいルックアップテーブルを作成する必要があることです。
さまざまなオペレーティングシステムのユーザーパスワードに対して辞書攻撃またはブルートフォース攻撃を実行するための一般的なツールは、John The Ripper(またはJTR)です。詳細については、プロジェクトのホームページを参照してください。
John the Ripperは高速のパスワードクラッカーで、現在、Unix、Windows、DOS、BeOS、OpenVMSの多くのフレーバーで利用できます。その主な目的は、弱いUnixパスワードを検出することです。
これらのパスワードは一方向で暗号化されているため、解読することは事実上不可能です。
他の人が言ったように、あなたは本当にシャドウファイルを解読することはできません。
試すことができるのは、John the Ripperなどのツールを使ってブルートフォースでパスワードを推測することだけです。これは成功する場合としない場合があり、ほぼ確実に長い時間がかかります。
パスワードは、パスワードを取り、そのパスワードに固有のハッシュを作成するアルゴリズムを使用して暗号化されます。このハッシュは/ etc / shadowファイルに保存されます。ハッシュからパスワードを回復することはできません。パスワードを回復する唯一の方法は、キースペース全体をブルートフォースにするか、ある種の辞書攻撃を使用することです。初期のハッシュ関数はDES標準を使用していました。コンピューティング能力の向上により、合理的な時間内にDESキースペースを総当たりにすることが可能になりました。パスワードの暗号化に使用される最新のハッシュ関数には、MD5、SHAなどがあります。crypt(3)ライブラリの詳細については、こちらを参照してください。