Cifrado y compresión

28

¿Hay una mejor manera de comprimir y luego encriptar archivos que no sean tarseguidos por opensslo gpg?

user75027
fuente
3
Eso depende. ¿Cuáles son tus requisitos? ¿Cómo estás cuantificando "mejor"? ¿Qué herramientas tienes disponibles? ¿Ya consideró alguna otra opción que podría ser útil mencionar?
Greg Hewgill
No he considerado otros. Solo necesita ser un cifrado básico, donde alguien no pueda leer el contenido del archivo, y preferiblemente mantener una buena relación de compresión.
user75027
1
Generalmente la respuesta será no. Una de las filosofías centrales de Unix es "hacer una cosa y hacerlo bien". tar -zes una ligera excepción porque es una práctica muy común.
Patrick
1
Las tarversiones más nuevas admiten la compresión xz (bandera -J) cuya relación de compresión suele ser mejor que la compresión gzip ( -z) o bzip2 ( -j) más tradicional .
jofel
Me di cuenta de que xzes excelente. Recuerdo haber descargado el kernel y estaba comprimido a aproximadamente 1/7 de su tamaño original. Supongo que tar cvJf out.tar.xz file1 [file2...]usaré gpg o openssl para encriptarlo. También noto que xz es muy rápido. ¿Cómo logra una mejor compresión que bz2 y sigue siendo rápido?
user75027

Respuestas:

24

tares la herramienta habitual para agrupar archivos. La llanura en tarsí misma no se comprime. Existen herramientas separadas como gzip , bzip2 y xz (en orden creciente de relación de compresión en archivos típicos) que comprimen un archivo. Muchas tarimplementaciones, incluida GNU tar (la implementación normal en Linux), pueden comprimirse automáticamente con una opción ( -zpara gzip, -jpara bzip2, -Jpara xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Para cifrar un archivo, use gpg . Cree una clave y asóciela con su dirección de correo electrónico (los identificadores de clave GPG / PGP generalmente contienen una dirección de correo electrónico, aunque no es necesario). Cifre sus archivos, especificando su correo electrónico como el destinatario. Para descifrar un archivo, deberá ingresar la frase de contraseña para desbloquear su clave privada.

GPG también le permite encriptar un archivo con una contraseña. Esto es menos seguro y menos flexible. Es menos flexible porque necesita especificar la contraseña cuando se cifra (por ejemplo, no puede hacer copias de seguridad desatendidas). Es menos seguro porque la única seguridad es la contraseña, mientras que el cifrado basado en clave divide la seguridad entre la contraseña y la clave.

No use la opensslherramienta de línea de comando. Es un escaparate para la biblioteca OpenSSL, no diseñado para uso en producción. Aunque puede hacer algunas cosas con él (en particular, tiene todas las primitivas necesarias para una autoridad de certificación básica), es difícil de usar correctamente y no tiene todo lo que necesita para hacer las cosas bien. Donde GPG le da una bicicleta, OpenSSL le da algunas barras de metal de varios tamaños y un par de cámaras de goma (tornillos y bomba no incluidos). Utiliza GPG.

Gilles 'SO- deja de ser malvado'
fuente
Entiendo el alquitrán como un paquete y los métodos de compresión. Las claves gpg, sin embargo, son nuevas para mí. No entiendo exactamente cómo usarlo, aunque tengo una clave. Yo creo que. Creo que también tengo claves ssh.
user75027
Esto es lo que estaba buscando para comprimir y cifrar con un comando (usando tary gpgen una tubería).
CGFoX
12

Puedes usar 7zip:

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

Le pedirá una contraseña. Aparentemente usa AES-256 para el cifrado y SHA-256 de la contraseña y un contador repetido 512K veces para la derivación de clave.

Editar : esto no encripta los nombres de archivo, por lo que es posible que desee hacer tartodo primero de todos modos.

Edición 2 : agregado -mhe=on.

Timmmm
fuente
55
Si lo usa 7za, puede cifrar los nombres de los archivos con la -mhe=onopción.
SilverlightFox
3

Por lo tanto, también puede usar los nombres de archivos de cifrado de 7zip:

7z a -p -mhe=on stuff.7z MyStuff
Víctor
fuente