- ベストアンサー
ApacheのBasic認証について
お世話になります。 ここで、このような質問をしていいのかどうか迷ったのですが、 今ちょっと悩んでいる事がありますので、どうか力を貸してください。 Apacheの機能で、特定ディレクトリにユーザ認証を設定することができますよね? パスワードによるユーザ認証の設定をし、htpasswdコマンドでパスワードを設定すると、パスワードファイルに暗号化されたパスワードが入力されますよね。 今回やりたい事は、その暗号化されたパスワードを解読し、元のかたちにもどしたいのです。 どこかのホームページでは「割と簡単に解読されやすい」と書いていたのを見た気がするので、 実際にどのような手段でやると解読されてしまうのか、今、調査しています。 どなたか分かる方、どうかご教授ください。 または、参考になるホームページがあれば是非とも教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 割と簡単に解読されやすい この表現が誤解の元ですね。 htpasswdは(バージョンによって違うかもしれませんが)パスワードの暗号化に際して2種のアルゴリズムのいずれかを選択します。 ひとつは稼動中のシステムから提供されている(または提供されているべき)crypt()を使用します。 もうひとつはMD5アルゴリズムを使用したhtpasswd独自暗号化です。 パスワードファイルにはどのパスワードがどちらかアルゴリズムを使っているかを示す情報はありません。 また、(一般的な)crypt()およびMD5には可逆性がありません。 結果、暗号化済みのパスワードファイルから元のパスワード文字列を作り出すことは出来ません。 通常、パスワード認証は暗号化済みのパスワードを利用して行われるため、パスワードの暗号化アルゴリズムは可逆である必要が無いのです。 結果です。 ・パスワードファイルからパスワードの解析することは「全く簡単ではない」 ・「その暗号化されたパスワードを解読し、元のかたちに」戻す方法は無い 残念ながらパスワードファイルを解析して「同じ形に暗号化される文字列」を作り出す方法は発見されてしまいました。 コレは「割と簡単に解読されやすい」と表現してもよい方法ですが、危険なため公共の場で解説すべきではないと思われます。
その他の回答 (2)
passswdのキーの長さですが、オプションによって変わります。 8文字以上は意味を持たない場合もあります。 普通は255文字までが意味を持ったはずです。 ですから、単に長い暗号キーを使っても解読されにくくなるわけではありません。
- osamuy
- ベストアンサー率42% (1231/2878)
基本的には、総当たり方式(brute-force)で、パスワードを見つけだします。 そのためのツールは、いくつかありますが、実際のところは、十分長い複雑なパスワードをつけておけば、外部の第三者によって、解読される事はまずないです。