¿Cuál es una buena solución para cifrar algunos archivos en Unix? [cerrado]

44

Estoy buscando una utilidad para encriptar ciertos directorios en Linux. No busco ningún servicio de cifrado de disco completo, sino simplemente cifrar algunos directorios con el fin de almacenar archivos en la nube. Una vez que los recupere, debería descifrarlos antes de poder acceder a ellos. Buscando hacer esto para un par de directorios (unos pocos cientos de GB de tamaño). ¿Algunas ideas? Preferiblemente basado en CLI.

Peter
fuente

Respuestas:

51

Solo uso GnuPG para esta tarea. Las carpetas se empaquetan primero en un archivo TAR-GZ:

tar czf files.tar.gz /path/to/my/files

Si aún no lo ha hecho, primero debe crear un par de claves GPG privado / público:

gpg --gen-key

Sigue las instrucciones. Los valores predeterminados deben ser suficientes para una primera prueba. Aparecerá algo como esto:

gpg (GnuPG) 2.0.18; Copyright (C) 2011 Free Software Foundation, Inc.
Esto es software libre: usted es libre de cambiarlo y redistribuirlo.
NO HAY GARANTÍA, en la medida permitida por la ley.

Seleccione qué tipo de clave desea:
   (1) RSA y RSA (predeterminado)
   (2) DSA y Elgamal
   (3) DSA (solo signo)
   (4) RSA (solo señal)
¿Tu seleccion? 1
Las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
¿Qué tamaño de clave quieres? (2048) 4096
El tamaño de clave solicitado es 4096 bits
Especifique cuánto tiempo debe ser válida la clave.
         0 = la clave no caduca
        = la clave caduca en n días
      w = la clave caduca en n semanas
      m = la clave caduca en n meses
      y = la clave caduca en n años
La clave es válida para? (0)
La clave no caduca en absoluto
¿Es esto correcto? (y / N) y

GnuPG necesita construir una identificación de usuario para identificar su clave.

Nombre real: clave de cifrado de archivo
Dirección de correo electrónico: [email protected]
Comentario: clave de cifrado de archivo
Seleccionó esta ID DE USUARIO:
    "Clave de cifrado de archivo (Clave de cifrado de archivo)"

¿Cambiar (N) ame, (C) omment, (E) mail o (O) kay / (Q) uit? o

Se le pedirá una frase de contraseña para la clave. Es muy recomendable usar uno fuerte. De todos modos, no es necesario para el cifrado de archivos, así que no se preocupe por el uso por lotes más adelante.

Si todo está hecho, algo como esto aparecerá en su pantalla:

Necesitamos generar muchos bytes aleatorios. Es una buena idea realizar
alguna otra acción (escriba en el teclado, mueva el mouse, utilice el
discos) durante la primera generación; esto da el número aleatorio
Generador una mejor oportunidad de ganar suficiente entropía.
Necesitamos generar muchos bytes aleatorios. Es una buena idea realizar
alguna otra acción (escriba en el teclado, mueva el mouse, utilice el
discos) durante la primera generación; esto da el número aleatorio
Generador una mejor oportunidad de ganar suficiente entropía.
gpg: clave FE53C811 marcada como finalmente confiable
Clave pública y secreta creada y firmada.

gpg: comprobando el trustdb
gpg: 3 marginales necesarios, 1 completo (s) necesarios, modelo de confianza PGP
gpg: profundidad: 0 válido: 1 firmado: 0 confianza: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Huella digital clave = **** **** **** **** **** **** **** **** **** ****
uid Clave de cifrado de archivo (Clave de cifrado de archivo) 
sub ***** / ******** 2013-03-19

Ahora puede exportar el archivo de clave pública para importarlo en otras máquinas:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

El File Encryption Keyes el nombre que ingresé durante el procedimiento de generación de claves.

Ahora estoy usando GnuPG en el archivo recién creado:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Ahora tiene un files.tar.gz.gpgarchivo que está encriptado.

Puede descifrarlo con el siguiente comando (se le pedirá su frase de contraseña):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

Esa es toda la magia.

¡Asegúrese de hacer una copia de seguridad de su clave! ¡Y nunca olvides tu frase de contraseña! Si no se hace una copia de seguridad o se olvida, ¡tiene gigabytes de datos basura!

Haga una copia de seguridad de su clave privada con este comando:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

Ventajas

  • Ninguno de los encriptadores necesita conocer información confidencial sobre el cifrado: el cifrado se realiza con la clave pública. (Puede crear el par de claves en su estación de trabajo local y solo transferir la clave pública a sus servidores)
  • No aparecerán contraseñas en los archivos de comandos o trabajos
  • Puede tener tanto encriptadores en cualquier sistema que desee
  • Si mantiene su clave privada y la contraseña secreta, todo está bien y es muy difícil de comprometer
  • Puede descifrar con la clave privada en plataformas Unix, Windows y Linux utilizando la implementación específica de PGP / GPG
  • Sin necesidad de privilegios especiales en los sistemas de cifrado y descifrado, sin montaje, sin contenedores, sin sistemas de archivos especiales
cero0
fuente
1
Tenga en cuenta que, dependiendo de los datos, podría ser más rápido ejecutarlo tarsin el zinterruptor para evitar comprimirlo.
l0b0
28

Por mi parte, uso principalmente dos métodos:

Primer método: tar y openssl

Tar el directorio

tar cvf backup.tar /path/to/folder

Puede quitar el interruptor [v] del comando tar para desactivar el modo detallado.

Encriptar

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

Puede cambiar aes-128-cbc a cualquier otro método de cifrado openssl support (openssl --help).

Descifrar

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Le pedirá la contraseña.

Segundo método: zip cifrado

zip -r -0 -e backup.zip /path/to/folder

Le pedirá la contraseña.

  • -r significa recursivamente (árbol de carpetas completo)
  • -0 significa solo almacenar (no se comprime, más rápido)
  • -e significa cifrar archivo

Una ventaja de esto: funcionará mejor con el sistema basado en Windows.

Julien R.
fuente
3
Dar contraseña en la línea de comando no es una buena idea. La contraseña permanece en el historial de shell.
pbies
1
Cabe señalar que zipse rumorea que el cifrado es descifrable.
Acumenus
22

Si no desea encriptar sus archivos con un par de claves pública / privada y usar solo el cifrado simétrico con una frase de paso, use el siguiente comando:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Se le pedirá su contraseña. Después de eso, files.tar.gz.gpgse crea un archivo cifrado llamado .

Para descifrar usa el comando

gpg --decrypt files.tar.gz.gpg > files.tar.gz
chiborg
fuente
2

Para tal propósito, sugeriría el cifrado FUSE (como encfs ); para datos más pequeños, usaría gpg.

Se implementa fs en el espacio del usuario, por lo que no necesita privilegios especiales.

Maciej Piechotka
fuente
1

Hay algunos sistemas de archivos Linux destinados a cifrar datos. ¿Ya has pensado en LUX, por ejemplo?

guardián
fuente
1

Una forma muy simple de cifrar un archivo es:

gpg -c filename.ext

Se le pedirá una frase de contraseña dos veces, y se creará gpg filename.ext.gpg. Suba el archivo encriptado a su servicio en la nube. Para recuperar el uso del archivo:

gpg filename.ext.gpg

Lo cual recreará filename.ext. Tenga en cuenta que los archivos no cifrados no son seguros, y los datos relevantes permanecerán en su medio de almacenamiento incluso después de la eliminación. Solo el contenedor gpg es seguro. EncFS es una alternativa más práctica para el cifrado basado en la nube a nivel de archivo.

Bryce
fuente