Verschlüsseln und komprimieren

28

Gibt es eine bessere Möglichkeit, Dateien zu komprimieren und dann zu verschlüsseln, als tarwenn Sie openssloder folgen gpg?

user75027
quelle
3
Das hängt davon ab. Was sind Ihre Anforderungen? Wie quantifizieren Sie "am besten"? Welche Tools stehen Ihnen zur Verfügung? Haben Sie bereits andere Optionen in Betracht gezogen, die möglicherweise nützlich sind, um sie zu erwähnen?
Greg Hewgill
Ich habe keine anderen in Betracht gezogen. Es muss nur eine grundlegende Verschlüsselung sein, bei der jemand den Inhalt der Datei nicht lesen kann und vorzugsweise ein gutes Komprimierungsverhältnis beibehält.
user75027
1
Im Allgemeinen lautet die Antwort nein. Eine der Kernphilosophien von Unix ist "Mach eins und mach es gut". tar -zist eine kleine Ausnahme, weil es eine sehr verbreitete Praxis ist.
Patrick
1
Neuere tarVersionen unterstützen die xz-Komprimierung (Flag -J), deren Komprimierungsrate normalerweise besser ist als die herkömmlichere Komprimierung mit gzip ( -z) oder bzip2 ( -j).
Jofel
Mir ist aufgefallen, dass xzdas ausgezeichnet ist. Ich erinnere mich, dass ich den Kernel heruntergeladen habe und er auf etwa 1/7 seiner ursprünglichen Größe komprimiert wurde. Ich schätze, ich werde es tar cvJf out.tar.xz file1 [file2...]dann mit gpg oder openssl verschlüsseln. Mir fällt auch auf, dass xz sehr schnell ist. Wie erreicht man eine bessere Komprimierung als bz2 und ist trotzdem schnell?
user75027

Antworten:

24

tarist das übliche Tool zum Bündeln von Dateien. Die Ebene tarselbst wird nicht komprimiert. Es gibt separate Tools wie gzip , bzip2 und xz (in aufsteigender Reihenfolge der Komprimierungsrate für typische Dateien), die eine Datei komprimieren. Viele tarImplementierungen, einschließlich GNU tar (die normale Implementierung unter Linux), können automatisch mit einer Option -zkomprimiert werden ( für gzip, -jfür bzip2, -Jfür xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Verwenden Sie zum Verschlüsseln einer Datei gpg . Erstellen Sie einen Schlüssel und verknüpfen Sie ihn mit Ihrer E-Mail-Adresse (GPG- / PGP-Schlüssel-IDs enthalten normalerweise eine E-Mail-Adresse, obwohl dies nicht erforderlich ist). Verschlüsseln Sie Ihre Dateien und geben Sie Ihre E-Mail-Adresse als Empfänger an. Um eine Datei zu entschlüsseln, müssen Sie die Passphrase eingeben, um Ihren privaten Schlüssel zu entsperren.

Mit GPG können Sie auch eine Datei mit einem Kennwort verschlüsseln. Dies ist weniger sicher und weniger flexibel. Dies ist weniger flexibel, da Sie beim Verschlüsseln das Kennwort angeben müssen (z. B. können Sie keine unbeaufsichtigten Sicherungen durchführen). Es ist weniger sicher, da die einzige Sicherheit das Passwort ist, während die schlüsselbasierte Verschlüsselung die Sicherheit zwischen dem Passwort und dem Schlüssel aufteilt.

Verwenden Sie nicht das opensslBefehlszeilentool. Es ist ein Schaufenster für die OpenSSL-Bibliothek, das nicht für den produktiven Einsatz konzipiert ist. Obwohl Sie einige Dinge damit tun können (insbesondere alle für eine grundlegende Zertifizierungsstelle erforderlichen Grundfunktionen), ist die korrekte Verwendung schwierig und es ist nicht alles vorhanden, was Sie für eine ordnungsgemäße Durchführung benötigen. Wo GPG dir ein Fahrrad gibt, gibt dir OpenSSL einige Metallstangen in verschiedenen Größen und ein paar Gummikammern (Schrauben und Pumpe nicht im Lieferumfang enthalten). Verwenden Sie GPG.

Gilles 'SO - hör auf böse zu sein'
quelle
Ich verstehe Teer als Bündler und die Methoden der Komprimierung. GPG-Schlüssel sind jedoch neu für mich. Ich verstehe nicht genau, wie man es benutzt, obwohl ich einen Schlüssel habe. Ich glaube. Ich glaube, ich habe auch SSH-Schlüssel.
user75027
Dies ist, wonach ich gesucht habe, um mit einem Befehl (mit tarund gpgin einer Pipe) zu komprimieren und zu verschlüsseln .
CGFoX
12

Sie können 7zip verwenden:

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

Sie werden zur Eingabe eines Passworts aufgefordert. Anscheinend wird AES-256 für die Verschlüsselung und SHA-256 für das Kennwort verwendet und ein Zähler wird 512 KB-mal für die Schlüsselableitung wiederholt .

Bearbeiten : Hiermit werden keine Dateinamen verschlüsselt, daher möchten Sie möglicherweise tarohnehin alles zuerst.

Edit 2 : Hinzugefügt -mhe=on.

Timmmm
quelle
5
Wenn Sie verwenden 7za, können Sie Dateinamen mit der -mhe=onOption verschlüsseln .
SilverlightFox
3

Sie können also auch 7zip-verschlüsselte Dateinamen verwenden:

7z a -p -mhe=on stuff.7z MyStuff
Sieger
quelle