web-dev-qa-db-ja.com

Ccrypt対7Zip暗号化

私はDebianを使用していて、中には数千のファイルが入ったフォルダがあり、サイズは約14GBです。このフォルダから、2つの暗号化アーカイブを作成しました。1つはパスワード保護された.7zアーカイブで、もう1つはccrypt(.tar.cpt)で暗号化されたTARアーカイブです。

(これからは。7z/7Zipアーカイブはパスワードで保護された.7z/7Zipアーカイブを意味します

7zアーカイブを開いてパスワードを挿入すると、実際のコンテンツを約1〜2秒で確認できることに気づきました(おそらく、このファイルと同じ.7zファイルを暗号化せずに開いても、人間が感じる時間差はほとんどありません)。ただし、TARアーカイブのコンテンツを表示できるようにするには、.tar.cptファイルに対するccdecryptコマンドを約5〜6分長くします。その後、TARアーカイブを開き、実際のコンテンツを約1〜2秒で表示できます。これは私にいくつかの質問を残します:

1。 7Zipアーカイブのコンテンツは暗号化されていますか?

ほぼ同じサイズの2つのファイルを復号化する時間の違い(.7zは、ファイルがすでに圧縮形式であるため、約100MBだけ小さくなります)により、ccryptはTARアーカイブのすべてのコンテンツを暗号化しますが、7Zipは、 (漠然と)フォルダーであるかのようにファイルを含むアーカイブは、それを突破するのを困難にしますしかしアーカイブの実際のコンテンツは暗号化されないままです。したがって、.7zアーカイブ(含まれているアーカイブの復号化/パスワードの確認にかかる時間)でコンテンツを表示できるのは数秒しかかかりませんが、.tarファイルを表示すると、すべての14GBコンテンツがccdecryptされていることになります。私は正しい仮定をしましたか?そうでない場合、誰かがこれらの2つの暗号化方法がどのように異なり、機能するかを説明していただけますか?この特定の7Zipアーカイブは、何らかの理由でパスワードが挿入される前に、ファイル名を非表示にします。

2。それは7Zipアーカイブの軽微なセキュリティを意味しますか?

最初の点の仮定が正しい場合、それはパスワードで保護された7Zipアーカイブが「完全に暗号化された」.tar.cptアーカイブよりも安全性が低いことを意味しますか? 7Zipを使用すると、仮想の抽出/復号化されたアーカイブの多くのトレース/一時ファイルが残ることを知っていますが、私の質問は、暗号化されたアーカイブ自体の実際のセキュリティについてです。さらに、アーカイブはデスクトップPCでのみ暗号化/復号化しますが、ファイルはサーバーに保存されます。そのため、誰かがサーバー(もちろん私のPCではない)を制御する場合でも、彼はアクセスできません。アーカイブがサーバー上で解凍されていない場合、解凍されたアーカイブの痕跡を見つけることができますよね?

3。 true UNIXの代替案はありますか?

ソフトウェアはありますかNIXの世界の典型 TARアーカイブを7Zip方式で暗号化できるため、セキュリティがそれほど重要ではないものを保護できます(.tar.cptが5分ではなく2秒でファイルを表示できるようにする方法で、実際に.7zよりも安全です。私は7Zipに対して何もしていません。それは素晴らしいユーティリティですが、純粋なUNIXの世界に提供するものと同様のものがあるかどうか疑問に思っています(確かにそうだと思います)。さらに、非圧縮のTARアーカイブを作成すると、最小の圧縮設定であっても、7zip圧縮されたTARアーカイブを作成するよりもはるかに短い時間で済むため、「7Zip暗号化方式」を.tarファイルに適用できると非常に便利です。
gpg、mcrypt、古い安全でないcryptなどの他のUNIX暗号化ソフトウェアは、すべて同じccryptタイプの暗号化(つまり、暗号化方法を考慮せずにすべてのコンテンツを暗号化する)を行いますが、gzip、bzip2などです。 、私が間違っていない場合、UNIXの伝統"1つのことを行い、うまくやる"を考えると、何も暗号化できません。


最初は、暗号化された7Zipアーカイブから単一のファイルをほんの数秒で、暗号化されていないものとほぼ同じように抽出できるという事実は、コンテンツが実際には暗号化されていないと思ったもう1つの理由でした。 単一のファイルでもは.7zから復号化できることを知りませんでした(そして、アーカイブ全体が復号化されてその単一のファイルが与えられたと私に思わせるのに十分な時間が経過しませんでした)。
さらに、同じ7Zipアーカイブの暗号化されたバージョンと暗号化されていないバージョンの抽出時間を記録しましたが、違いはまったく目立ちませんでした。これはコンテンツが暗号化されていないことの別の証拠だと思いましたが、現代のCPUがAESなどの一般的なアルゴリズム用の暗号化ブルトインを備えていることを考慮していなかったため、私はもう一度間違っていました(承認された回答で提案されています)。

7Zipアーカイブは、コマンドラインでのみ「圧縮なし」に設定できます。少なくとも、Arkを使用したGUIでは設定できません(スライダーを「最小」に設定してもアーカイブは圧縮されます)。圧縮なし(-mx = 0スイッチ、同じ答えから)、. 7zサイズと作成時間は、多かれ少なかれ、.tarの対応するものと同じです。

.tar.cptに比べて.7zヘッダーがファイルリストを表示する利点を考慮していなくても、ccryptは暗号化/復号化に1コアのみを使用するため、プロセスがさらに遅くなります。


質問を読みやすくするために編集しました。受け入れられた回答の適切な引用があれば、それが完全に理解できることを願っています。

8
mars

(私はccryptを使用したことがありません。それに関する私の答えは、彼らが主張したものに限定されます their page

  1. 7zは実際にはbothアーカイブヘッダーと実際のファイルコンテンツを暗号化しますが、同じパスワードを使用します。 7zを使用して暗号化されたアーカイブを作成する場合、ヘッダーをalso暗号化するオプションがあります(コマンドラインフラグ-mhe=onを使用して、デフォルトはoff)。パスワードを指定する限り、ファイルヘッダーを暗号化するかどうかに関係なく、実際のファイルコンテンツはalways暗号化されます。
    7z(およびZipとrar)によるファイルヘッダーの使用は、アーカイブに保存されているファイル/ディレクトリを、暗号化されたアーカイブと暗号化されていないアーカイブの両方ですばやく参照できるようにするためのものです。 歴史的な理由 のため、tarにはそのようなファイルリストはありません。
    したがって、あなたの仮定は正しくありません。
  2. Ccryptとは言えませんが、7zは暗号化の点で十分安全です(適切なパスワードを選択する限り)。すでに述べたように、7zは暗号化にAES-256を使用しており、AES-256は安全です。 7zはオープンソースであり、暗号化された7zのセキュリティを改ざんする可能性のあるセキュリティ上の欠陥(悪意のある、または正直)はありません。
    7zアーカイブの暗号化にパスワードを使用していることに注意してください。つまり、誰かがあなたの7zファイルを入手した場合、彼はあなたが自分のパスワードを見つけるまで、可能なすべてのパスワードを1つずつ試すことができます。 (そのため、常に適切なパスワードを選択する必要があります)7zは キーストレッチ (100,000反復IIRC)を使用してそのようなプロセスを遅くしますが、パスワードが短すぎるか、一般的すぎる場合(たとえば、「Passw0rd」または"Letmein")、悪意のある人があなたのパスワードを素早く叩く可能性があります。このトリックを使用する暗号化されたアーカイブのための本物のパスワードクラッカーがありました。

そのため、誰かがサーバー(もちろん私のPCではない)を制御する場合でも、解凍されたアーカイブの痕跡を見つけることはできません。

7z x archive.7z -pMyPasswordまたは「ここから抽出」しない限り、ファイルは他の人には見えません。これは、Dropboxなどの自動クラウド同期ツールの一般的な落とし穴です。同期フォルダーに抽出したファイルはすべて、サーバーにアップロードされます。アーカイブファイルリストでファイルをダブルクリックすると、ファイルは一時パス(/tmpまたは~のどこかに)に抽出され、同期ツールはどこにもアップロードしません。

  1. はい。それは7zと呼ばれます:)
    まじめに、.tarアーカイブは大きなファイルにすぎません。いつでも7zを使用して圧縮/暗号化できます。 .tar.7zファイルが生成されますが、名前は自由に変更できます。つまり、複数のファイルが.tarアーカイブにグループ化され、7zを使用して任意の方法で圧縮/暗号化されます。 tarは所有者/権限情報を保持しますが、7zは保持しないため、これは* nix管理で特に役立ちます。しかし、あなたの場合、これらを気にしないのであれば、単純な7zで十分です。
    補足として、必要がない場合は7zで圧縮する必要はありません。圧縮レベルを0に設定できます(コマンドラインの-mx=0)。このように、7zは、時間のかかる圧縮/解凍を行わずに、ファイルをパックして暗号化するだけです。

ただし、14GBの.7zアーカイブで1つのファイルを開くのが.tarアーカイブほど速くない場合でも

7zおよびtarファイルの圧縮に使用されるアルゴリズムによって異なります。ファイルを圧縮するための複数の圧縮アルゴリズムがあり、各アルゴリズムは異なる圧縮レベルに設定できます。一般に、出力ファイルが小さいほど時間がかかります。 7zで100 MB節約できるとおっしゃっていたので、時間のトレードオフがあります。

また、.tarのファイルリストを開くと、すべてのファイルの復号化と解凍がすでに行われています。必要なバイト数を取得するだけです。ただし、.7zの場合、アーカイブヘッダーのみが表示されます。実際のファイルはまだ復号化/解凍されていません。ファイルリストをダブルクリックしてからファイルを取得するまでにかかった時間を比較すると、ほとんどの場合tarが勝者です。

実際、暗号化されたバージョンは、追加の復号化時間を考えると、抽出にかなり時間がかかるはずです。

これは古いコンピューター(10年以上前)に当てはまる可能性があります。現代のCPUは、(1)一般に非常に高速であり、(2)AESなどの一般的な暗号アルゴリズムの組み込み機能を備えています。 SSD IOは、SSDを使用していない場合の制限要因です。

7Zipをわずか2分半で解読してアーカイブ全体を抽出するにはどうすればよいですか?

ファイルリストとどのファイルを復号化/解凍するのかがわからないので、はっきりとは言えません。ただし、tarmustsolid compression を使用する必要があるため、を復号化して解凍する必要があります単一のファイルを取得するために、全体アーカイブ。 7zの場合、ソリッド圧縮はoptionalです(ただし、コマンドライン7zではデフォルトで有効になっています。GUIは使用するフロントエンドによって異なります)。各ファイルは個別に圧縮および暗号化されます。単一のファイルを取得するには、7zヘッダーに従って暗号化されたバイトを取得し、ファイルに対してマジックこれらのバイトのみを実行します。常にアーカイブ全体を抽出したい場合、tarはアーカイブ形式として適しています。単一のファイルが必要な場合は、7zを使用してください。

uNIX基本ツールを7Zipアーカイブと同じくらい強力にするための方法はありますか。つまり、アーカイバー、コンプレッサー、暗号化ツールを組み合わせています。

セキュリティに関しては、ホイールの再発明/ 独自のローリング を再発明することはお勧めしません。 7Zipはフリーソフトウェアであり、専有ソフトウェアでさえ7z形式をサポートしています。しかし、本当に必要な場合は、個々のファイルをgzip圧縮し、それらをtar(圧縮なし)して、tarを暗号化してください。ただし、そのためにはいくつかの重要なスクリプトが必要になります。

7
Link Ng

仮定1)が正しくありません。 7Z、RAR、ACE、または多くの古いアーカイバでパスワードを使用すると、ファイル「ツリー」にアクセスできます。実際に何かにアクセスしたい場合は、各ファイルを抽出(復号化)する必要があります。これは、MS-DOSの時代から有効です。

つまり、実際にはファイルのインデックスにアクセスするだけです。

また、復号化キーはすべてのファイルに対してテストされることに注意してください。アーカイバはこれを自動化し、すべてのファイルに同じキーを適用するだけですが、必要に応じて実際には各ファイルを異なるパスワードを使用して暗号化できます。

-編集-実際に学習できます 7Zコードはこちら

3
Overmind