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.
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 .
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.
1openssl 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.
¿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:
Para obtener la integración de nautilus, instale el paquete seahorse-nautilusdesde el Centro de software: seahorse-nautilus
'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.
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.
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.)
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 * "
Respuestas:
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:
Descifrado:
Tenga en cuenta que
gpg
almacena en caché el symkey de forma predeterminada (comportamiento documentado). Para evitar eso, use la--no-symkey-cache
opció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,
openssl
es 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:
Se le pedirá una contraseña, que debe ingresar dos veces.
Descifrar:
Página del manual para el programa enc .
1
openssl enc
utiliza la función de resumen definida por la-md
opción (md5 predeterminado) e invoca la funciónEVP_BytesToKey()
con un recuento de iteraciones de 1. Esto se puede encontrar en la fuente openssl enapps/enc.c
.fuente
-a
base64-codifica la entrada (alias de-base64
), para descifrarla también necesita agregar la-a
opción.aes-256
es un alias paraaes-256-cbc
, no hay diferencia. CBC es un modo de operación para cifrados de bloque. Consulte la página del manual deenc(1)
para obtener una lista de los cifrados admitidos.Yo uso Seahorse para esto. Es un front-end de Gnome para GnuPG y se integra bien con nautilus:
Para obtener la integración de nautilus, instale el paquete
seahorse-nautilus
desde el Centro de software: seahorse-nautilusfuente
TrueCrypt : software gratuito de cifrado de disco descontinuado, no seguro y disponible en origen.
fuente
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 llamadofoo.txt.gpg
. GnuPG no elimina el archivo original sin cifrar, depende de usted si desea que esté dando vueltas. Para descifrar foo.txt.gpg, ejecutagpg foo.txt.gpg
. El descifrado le indicará antes de sobrescribir los archivos existentes.Si necesita encriptar un directorio, primero hágalo:
Puede cambiar el nombre del archivo cifrado como desee. Cuando se descifra, se conserva el nombre del archivo original.
fuente
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/Private
de 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.fuente
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.)
fuente
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
fuente
openssl aes-256-cbc ...
¿Sabes que en lugar de usarif [ $? -ne 0 ] ; then... fi
puedes 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 * "