web-dev-qa-db-ja.com

対称鍵暗号化とハッシュ

これは魅力的なドキュメントです: Adobe違反からのトップ100パスワード

その一部について質問があります。

ただし、アドビがハッシュより対称キー暗号化を選択し、ECBモードを選択し、すべてのパスワードに同じキーを使用し、多数の既知の平文と、フラットヒントを使用してパスワードヒントでパスワードを提供したユーザーの寛大さのおかげで、これは、アドビユーザーが選択したパスワードのトップ100のリストを表示することを妨げるものではありません。

したがって、以前は開発者がパスワードハッシュの代わりに対称キー暗号化を使用することを許可しており、ここでは「すべてのパスワードに同じキーを使用する」ことを別の問題と見なしているため、対称キー暗号化を使用して保存することの大きな問題は何ですかパスワード?ハッシングは速度を考慮して設計されているため、パフォーマンスに影響が出る可能性があることを理解しています。

5
San Jacinto

技術的には、ハッシュが高速である場合、パスワードをDBに可逆的に保存する(適切なキー管理が行われている限り)場合、それは本当に悪い(または少なくとも同じくらい悪い)ことになります。

安全な(計算コストがかかる)ハッシュではなく暗号化を使用する場合の問題は、逆にできることです。システム固有のアクセストークンをサポートできないサードパーティシステムにアクセスするためにパスワードを使用する必要がある場合など、これが必要になる場合があります。ただし、問題は、暗号化キーが危険にさらされている場合、すべてのパスワードを一度にデコードできることです。

代わりに、検証可能な値の対称暗号化のキーとしてパスワード派生キーを使用できます。これは、パスワードをデコードできるマスターキーを使用しないためです(おそらく、パスワードはまったく保存されません)この場合)は、パスワード検証に対称暗号化を使用しても問題ありません。

同様に、適切にソルト処理された安全なハッシュを使用すると、オフラインの値を攻撃してパスワードを試行して決定する良い方法はなく、単一障害点によってすべてのパスワードがアクセス可能になることはありません。

一方、アドビのシステムは、すべてのパスワードに同じキーを使用しただけでなく(つまり、そのキーが危険にさらされた場合、すべてのパスワードがすぐに利用可能になります)、同じインスタンスが異なる場合でも違いはありませんパスワードがエンコードされるため、同じパスワードを持つすべてのユーザーに伝えることができます。彼らはそれらの繰り返されるパスワードのいくつかが何であるかを与えるパスワードのヒントを持っているので、それはさらに悪化しています。

4
AJ Henderson

パスワードの何がそれほど重要なのですか?それを回避する方法はありません。ユーザーはパスワードを再利用します。受け入れ。責任のあるサービスプロバイダーとして、それを理解し、顧客のパスワードを慎重に処理する必要があります。

パスワードをプレーンテキストで保存しないのはなぜですか?パスワードは認証に使用され、パスワードベースの認証ではプレーンテキストのパスワードは必要ありません。パスワードは機密情報であり、秘密にしておく必要があります。

非平文の可逆形式でパスワードを保存しないのはなぜですか?攻撃者がシステムを危険にさらした場合、パスワードストレージロジックへのアクセス権があり、彼は使用しているパスワードマングリングを逆にします。これにより、パスワードが平文になります。

対称鍵でパスワードを暗号化しないのはなぜですか?アプリケーションのログインロジックがその鍵にアクセスする必要があるため、鍵管理の問題が発生します。違反の場合、攻撃者がキーにアクセスする可能性が非常に高いです。これにより、パスワードが元に戻ります。

MD5/SHA1を使用しないのはなぜですか?それらは超高速であるためです。あなたにとって超高速とは、攻撃者がクラックする超高速を意味します。

それでは、何をしますか?パスワードを安全にハッシュ化bcrypt 。これに代わるものはありません。限目。

アドビは対称暗号化オプションを採用しましたが、それだけでなく、ECBを使用して誤って実装しました。それで彼らは何か悪いことを取り、それをさらに悪化させました。

5
Adi

対称暗号化を使用してパスワードを保存することに問題はありません。ただし、アドビがいつでもパスワードを回復する必要がある理由は考えられません。

最大の問題はキー管理です。アドビが行ったのは、ECBモードで3DESを使用し、同じキーを使用することでした。 ECBは、2人のユーザーが同じパスワードを使用すると同じ暗号文を生成するため、問題です。パスワードをハッシュするとき、または対称暗号化にCBCを使用するときは、salt/IVを使用して、生成されるすべての暗号文が異なることを確認します。つまり、同じ暗号化パスワードに対して同じ暗号文を取得することはありません。これは、ソルトなしの単純なハッシュアルゴリズムを使用する場合と同じ問題です。

ECBのもう1つの問題は、十分なプレーンテキストがある場合、プレーンテキストと暗号化テキストを(理論的には)使用して分析を実行することにより、暗号化キーをクラックする可能性があることです。

2
Lucas Kauffman