web-dev-qa-db-ja.com

圧縮アーカイブ内の暗号化されたパスワード

Winrar、Zip、7Zipなどのファイル圧縮ユーティリティは、パスワードを暗号化してアーカイブ内に保存します。

安全ですか?つまり、内部にパスワードを付けてアーカイブを配布しているのです。それは、パスワードがリモートのどこかに保存されているWebサイトに対して認証するようなものではありません。

たとえば、アーカイブのバイナリ検査で、rarまたはZipファイル形式の構造が公開されている場合、パスワードの暗号化された形式を明らかにできますか?たとえば、実際のパスワードを含むヘッダーを探し、暗号化された文字列を抽出しますか?

これがもっともらしいと言うなら、暗号化されたパスワードのクリアなパスワードを抽出するためにあなたができることはありますか?

7
microwth

アーカイブを復号化するにはパスワードが必要なため、アーカイブ内にパスワードのコピーを保存しても意味がありません。アーカイブを復号化できる人はすでにパスワードを持っています。

アーカイブに暗号化されずに保存されるのは、暗号化の種類と、おそらくファイル構造とファイル属性だけです。

おそらく、アーカイブがどのようにロックおよびロック解除されるかについて混乱しているでしょう。パスワードがアーカイブ内に保存され、アーカイブユーティリティがユーザーが入力したパスワードとアーカイブに保存されているパスワードを比較しているように見えます。ただし、これは暗号化の仕組みではありません。ユーティリティが読み取れるようにパスワードがアーカイブに保存されている場合、単純なファイルエディタを持っていれば誰でも読み取ることができます。それだけでなく、この方法でユーティリティに格納されたパスワードをチェックさせるだけでデータを難読化しないように保護スキームを設定した場合、パスワードを見なくても誰でもファイルの内容を読み取ることができます。ペイロードが暗号化されており、パスワードがアーカイブの暗号化されていないセクションのどこかに格納されている場合、誰でもパスワードを読み取ってペイロードをすばやく復号化できるため、暗号化が無効になります。

代わりに、暗号化では、キーとアルゴリズムを使用して一部のデータを操作し、その意味を難読化します。データがこの暗号化プロセスを通過すると、データを理解する唯一の方法は、対応する復号化アルゴリズムを使用してデータを処理することです。これを正しく行う唯一の方法は、正しいキーとアルゴリズムを使用することです。アルゴリズムは常にわかっているので、キーだけが一意です。正しいキーを使用したことを確認する方法は、復号化プロセスから取得したデータが有効な形式であり、単なるランダムなガベージデータではないという事実です。暗号化されたアーカイブが提供する唯一の情報は、暗号化されたペイロードとそれを暗号化するために使用されるアルゴリズムです。正しいキーを提供するのはあなた次第です。

6
Dr. Funk

Winrar、Zip、7Zipなどのファイル圧縮ユーティリティは、パスワードを暗号化してアーカイブに保存します。

この情報をどこで入手したかはわかりませんが(情報源のない申し立ては常に悪いことです)、間違いだと思います。これは意味をなさず、問題はパスワードを暗号化するためにどのキーが使用されるかということでもあります。

Zipを使用すると、 仕様 のセクション7.2を調べることができ、パスワードが保存されないことがわかります。さまざまな多かれ少なかれランダムなデータのみが保存され、ユーザーが入力したパスワードから派生したキーと一緒に使用されます。これらのランダムデータは、同じコンテンツと同じパスワードを持つZipファイルが同じ暗号化データを生成しないようにするために使用されます。

RAR仕様 には、パスワードのオプションのチェック値があります。これは暗号化されたパスワードではなく、パスワードからPBKDF2(計算集中型ハッシュ)で導出されたハッシュ値(つまり、元に戻すことができない)です。

つまり、あなたが持っているほとんどがパスワードのハッシュされたバージョンであり、本当に遅いハッシュでハッシュされているということです。これは、1回の試行に十分な速さで間違ったパスワードを検出するために使用できますが、ブルートフォースパスワードの強制にはあまり役立ちません。ブルートフォースは、パスワードを使用して、解読されたデータに意味があるかどうかをチェックすることで、おそらくより効果的になります。ほとんどのファイル形式には最初に典型的な魔法の文字列が含まれているか、またはいくつかの典型的なファイル構造があるため、これは多くの場合より速く実行できます。したがって、ランダムに見えないものを取得した場合は、おそらくパスワードが壊れています。

13
Steffen Ullrich

あなたが役に立つと思うかもしれない同様のものについての議論はすでにありました。 アーカイブファイルを保護するパスワードは実際に暗号化しますか?

また、そこから読んだものから、WinRarは64ビットキーを使用しています(WinRARは262144ラウンドのSHA-1と64ビットソルトを使用しています)。これはかなり強力です。

私は以下について100%確信が持てないので、私が間違っていれば誰でも修正してくれます。圧縮されたアーカイブまたはZipファイル、7Zip、またはwinrarを暗号化するときに私が理解していることから、暗号化されたファイルでは、暗号化されているキーがある場合、そのキーを読み取ることができません。これは、キーなしで暗号化を解読するのと同じなので、圧縮ファイルからキーを取得できないと思います。

また、キーが格納されているかどうかもわかりません。 RSA暗号化は最も強力な暗号化の1つであり(2048以上のビット暗号化を使用する場合)、一部のZipアーカイブは同じAES暗号化を使用します。キーは暗号化に保存されませんが、ファイルの復号化に使用されるアルゴリズムです。鍵は、最初にファイルをパスワードで保護/暗号化した人によって提供されます。復号化鍵が暗号化鍵と一致する場合、アルゴリズムは復号化を解き明かし、読み取り可能にします。

これはあなたの質問に答えますか?

編集:暗号化された復号化キーで文字列を抽出するだけの場合は、できません。キーは暗号化されており、役に立たないため、これは機能しません。また、解読キーが実際に何であるかを読み取ることができるように解読する必要があるので、1に戻ります。

たとえば、「パンケーキ」を「H01LG32H4Gg6H」と書いた場合、Wordの復号化に使用したアルゴリズムがわからないため、暗号化された文字列を抽出して変換することはできません。

2
Robin