web-dev-qa-db-ja.com

復号化および暗号化されたデータを知っていれば、キーを見つけるのに十分ですか?

攻撃者が暗号化されたコンテンツ、解読されたコンテンツ、および使用されたアルゴリズムを知っているとしましょう。コンテンツの暗号化に使用されたキーを取得できますか、それともキーを見つけやすくなりますか?

これは、対称暗号化と非対称暗号化の間、および異なるアルゴリズム間で異なる可能性があると思います。では、秘密を保持する必要があるのはキーだけである場合、このシナリオはさまざまなアルゴリズムでどの程度安全ですか?


編集:

私がこの質問をするのは、SpiderOak FAQを読んだばかりで、私が理解している限り、ユーザーのパスワードもユーザーのパスワードから派生した暗号化キーも保存していないからです。しかし、ユーザーがWebページにログインするときに、ユーザーのパスワードが正しいことを確認する必要があります。

パスワードとキーを保存しない場合、パスワードが正しいかどうかを確認する唯一の方法は、既知の暗号化されたデータを復号化し、結果が正しいかどうかを確認することです。

例えば。登録時にデータを暗号化する可能性がありますCHECKおよびログインするときに、入力したパスワードからキーを取得して暗号化CHECKを復号化し、それがCHECKであるかどうかを確認します。そうでない場合、キーが正しくなかったため、パスワードも正しくありませんでした。

彼らがそれを行う方法は他にありますか?

9

あなたが参照しているのは 既知のプレーンテキスト攻撃 であり、データのサンプルの暗号化されたバージョンと暗号化されていないバージョンを比較することによってキーを理解しようとします。さいわい、AESを含め、今日使用されているほとんどすべての主要な暗号化アルゴリズムがこの種の攻撃の影響を受けやすいことはわかっていません。何かが復号化するものを知ることは、キーがわかるまではまったく役に立ちません(おそらく、あなたのアプローチがキーをブルートフォースにしようとすることでない限り)。

Spideroakは技術的にはあなたが記述した方法(つまり、既知のサンプルファイルの暗号化)を使用できますが、実際には、Webサイトによると ハッシュ と呼ばれる手順を使用しています。ハッシュは、非常に一般的なパスワードストレージ技術です。実際、ユーザーログインを処理するほぼすべてのWebサイトで使用されています。これは、いくつかのデータ(パスワードなど)を入力として受け取り、一意の固定長文字列を出力として生成する数学的プロセスです。一部のデータのハッシュを計算するのは簡単ですが、ハッシュが与えられた場合、元のデータが何であったかを理解することは非常に困難です。ただし、同じデータを提供する限り、ハッシュは常に同じになります。

Spideroakによると、アカウントを作成すると、ブラウザーはパスワードのbcryptハッシュを計算し、そのハッシュをspideroakに送信します。おそらく、ログインすると、spideroakはハッシュをブラウザーに送信し、ブラウザーは入力したもののハッシュを取得して、一致することを確認します。

9
tlng05