¿Existe alguna herramienta para encriptar un archivo o directorio?

66

¿Cuál es la forma más popular de cifrar archivos o carpetas individuales?

Landroni
fuente
La pregunta no está clara. ¿Desea cifrar y descifrar archivos manualmente o sobre la marcha?
psusi
44
En lugar de "más popular", podría ser útil adaptar una solución a sus requisitos (según la pregunta de psusi). ¿Está buscando una combinación de código abierto fácil, confiable, nativo, seguro, rápido y abierto? ¿Todos o algunos de estos?
belacqua
77
Me gustaría agregar el comentario de que, al contrario de lo que afirman algunas respuestas, Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / etc no consideran TrueCrypt como software libre o de código abierto .
JanC

Respuestas:

46

GnuPG (GPG) puede usar cifrado asimétrico y simétrico. La criptografía asimétrica implica dos claves, una clave pública para el cifrado y una clave privada para el descifrado. Consulte la respuesta de djeikyb en esta página para el uso de claves asimétricas.

Para el cifrado simétrico, las claves de cifrado y descifrado son iguales. Es importante darse cuenta de que la mayoría de las personas son muy malas para elegir contraseñas seguras. Por lo tanto, un esquema de cifrado que use contraseñas debería usar una función de derivación de clave que requiera más recursos (tiempo, memoria) para ralentizar los ataques de fuerza bruta.

Para obtener una descripción del KDF de GnuPG, consulte esta publicación de Crypto Stack Exchange . Ejemplo de uso de cifrado simétrico:

gpg --symmetric < unencrypted_file > encrypted_file

Descifrado:

gpg --decrypt < encrypted_file > decrypted_file

Tenga en cuenta que gpgalmacena en caché el symkey de forma predeterminada (comportamiento documentado). Para evitar eso, use la --no-symkey-cacheopción como se describe en una respuesta relacionada .

Página manual de gpg .


respuesta anterior para usuarios que pueden elegir buenas claves, vea la nota a continuación

Para archivos individuales, openssles muy útil, especialmente cuando se envía el archivo a través de un canal no seguro (por ejemplo, correo electrónico). Es gratis (en dinero y en libertad), a diferencia de Truecrypt, que solo es gratis en dinero.

NOTA : la contraseña que ingrese aquí será procesada por una iteración MD5 1 . Si elige una contraseña "123456", tendrá muy poca seguridad.

Cifrar:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

Se le pedirá una contraseña, que debe ingresar dos veces.

Descifrar:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

Página del manual para el programa enc .

1 openssl enc utiliza la función de resumen definida por la -mdopción (md5 predeterminado) e invoca la función EVP_BytesToKey()con un recuento de iteraciones de 1. Esto se puede encontrar en la fuente openssl en apps/enc.c.

Lekensteyn
fuente
¿Hay alguna manera de hacer esto sin una contraseña?
Assaf Lavie
@Assaf Lavie: OpenSSL no admite archivos de claves si lo quisiste decir, aunque puede leer una contraseña desde la primera línea de un archivo. Lea la página del manual en openssl, sección Pasar argumentos de frase .
Lekensteyn
además, puede usar el indicador "-a" que le permite copiar el texto cifrado, de esta manera: "openssl aes-256-cbc -a -salt -in unencrypted_file -out encrypted_file"
v2r
@ v2r Para agregar para más lectores: -abase64-codifica la entrada (alias de -base64), para descifrarla también necesita agregar la -aopción.
Lekensteyn
1
@Lucio aes-256es un alias para aes-256-cbc, no hay diferencia. CBC es un modo de operación para cifrados de bloque. Consulte la página del manual de enc(1)para obtener una lista de los cifrados admitidos.
Lekensteyn
30

Yo uso Seahorse para esto. Es un front-end de Gnome para GnuPG y se integra bien con nautilus:Integración Nautilus

Para obtener la integración de nautilus, instale el paquete seahorse-nautilusdesde el Centro de software: seahorse-nautilus Instalar seahorse-nautilus

pasivo
fuente
3
esto sólo funciona si tiene unas llaves de los BPM creados en su sistema ...
hhlp
3
@hhlp: la respuesta de djeikyb explica cómo hacerlo.
idbrii
1
Quiero encriptar mi clave GPG.
KI4JGT
19
  • Applet de la bandeja del sistema EncFS para GNOME cryptkeeper

TrueCrypt : software gratuito de cifrado de disco descontinuado, no seguro y disponible en origen.

hhlp
fuente
2
+1, encfs, con o sin GUI, es muy útil y suficiente para la mayoría de los propósitos.
loevborg
3
Cryptkeeper es increíble: simple, potente y muy fácil de configurar con Dropbox ( askubuntu.com/questions/19613/… ).
Scaine
TrueCrypt no está empaquetado en Ubuntu (ni en ninguna otra distribución importante) por cuestiones de licencia.
MagicFab
2
TrueCrypt no es ese código abierto. en.wikipedia.org/wiki/…
yuric
44
'ADVERTENCIA: Usar TrueCrypt no es seguro' - TrueCrypt
user457015
16

Un método cli sería GnuPG , y tal vez alquitrán. Esta es una breve guía de referencia, realmente debería leer la documentación.

Primera carrera gpg --gen-key. Siga las indicaciones para generar su par de claves pública / privada. Ahora se puede cifrar archivos: gpg -e foo.txt. Esto creará un archivo llamado foo.txt.gpg. GnuPG no elimina el archivo original sin cifrar, depende de usted si desea que esté dando vueltas. Para descifrar foo.txt.gpg, ejecuta gpg foo.txt.gpg. El descifrado le indicará antes de sobrescribir los archivos existentes.

Si necesita encriptar un directorio, primero hágalo:

tar -cf foo.tar foo/
gpg -e foo.tar

Puede cambiar el nombre del archivo cifrado como desee. Cuando se descifra, se conserva el nombre del archivo original.

djeikyb
fuente
2
Las ventajas de este método son: Primero, no requiere la instalación de paquetes adicionales; En segundo lugar, no requiere acceso de root. Agregaría compresión al comando tar (xz o gz).
Panther
12

También hay eCryptfs , que Ubuntu usa para cifrar los directorios principales.

Puede seleccionar el cifrado del directorio de inicio en la instalación, o puede configurar un único directorio, $HOME/Privatede forma predeterminada, utilizando la utilidad ecryptfs-setup-private . Esta carpeta se puede configurar para que se monte automáticamente al iniciar sesión y se desmonte al cerrar sesión. Cada archivo y carpeta dentro $HOME/Private, recursivamente, será encriptado.

Dustin Kirkland
fuente
Lamentablemente, eCryptfs es MUY lento. También hay algunos errores en la última versión
ruX
Por el contrario, si algo eCryptfs es más rápido que gpg; por defecto, gpg intenta comprimir antes de encriptar. Y eCryptfs ahora también es utilizado por la mayoría de los Android
Xen2050
2

También puede usar "Firma académica" para usar criptografía de curva elíptica con una GUI wxWidgets. Es de código abierto pero no en los repositorios. Principalmente realiza cifrado asimétrico ECC, firmas y marcas de tiempo. Pero la herramienta también tiene una entrada de menú para invocar Gnupg (RSA) y acceso directo a cifrado / descifrado simétrico de archivos que ofrecen AES y otros algoritmos. Su página de inicio está aquí: https://www.academic-signature.org

Lo uso mucho para proteger archivos en tránsito y para firmar digitalmente documentos académicos (transcripciones, cartas de recomendación, listas de calificaciones, etc.)

Michael Anders
fuente
1

Tomé algunas de las otras sugerencias y creé un contenedor de script de shell simple (para los perezosos)

https://github.com/orionM/ssl-crypt-tools

disfrutar

privado_nodez
fuente
1
hmm, bash script usando openssl aes-256-cbc ...¿Sabes que en lugar de usar if [ $? -ne 0 ] ; then... fipuedes usar ||? Y hay algunas personas que piensan que OpenSSL "* ha tenido varias fallas de seguridad importantes en el último año [ Heartbleed ], mientras que los documentos de Snowden muestran que GPG es uno de los pocos programas que podría afectar la NSA cuando se usa correctamente. El código OpenSSL también es un pozo negro completo y tiene una cobertura de prueba terrible. (Divulgación: [él] trabaja [s] en un proyecto "OpenSSL apesta; arreglemoslo"). - jbarlow * "
Xen2050