¿Cómo puedo encriptar un archivo?

10

Me gustaría descargar algunos archivos de mi servidor a mi computadora portátil, y es que quiero que esta comunicación sea tan sigilosa y segura como sea posible. Entonces, hasta ahora llegué usando VPN, de esa manera redirijo todo el tráfico de Internet de mi computadora portátil a través de mi servidor. Además, intenté enviar un archivo usando ftp y observando Wireshark al mismo tiempo. La comunicación parece estar encriptada, sin embargo, también me gustaría encriptar el archivo en sí (como un segundo paso de seguridad o algo así).

Mi servidor es un RasPi con Raspbian. Mi laptop es Macbook Air.

En primer lugar, quiero cifrar un archivo en mi Ras Pi y, en segundo lugar, descargarlo. ¿Cómo puedo hacer eso?

drpaneas
fuente
1
gpgpuede cifrar archivos, ya sea de forma asimétrica (utilizando una clave pública para el cifrado y una clave privada para el descifrado) o simétricamente (utilizando la misma clave / contraseña para el cifrado y descifrado: dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Martin von Wittich
¿Por qué no usar un protocolo como HTTPS, SFTP o FTPS? Si la comunicación está encriptada, agregar una segunda capa de encriptación no le dará nada.
Gilles 'SO- deja de ser malvado'

Respuestas:

22

Puede usar opensslpara cifrar y descifrar usando cifrados simétricos basados ​​en claves. Por ejemplo:

openssl enc -in foo.bar \
    -aes-256-cbc \
    -pass stdin > foo.bar.enc

Esto se cifra foo.baren foo.bar.enc(puede usar el -outinterruptor para especificar el archivo de salida, en lugar de redirigir stdout como se indicó anteriormente) utilizando un cifrado AES de 256 bits en modo CBC . Hay varios otros cifrados disponibles (ver man enc). El comando esperará a que ingrese una contraseña y la use para generar una clave adecuada. Puede ver la clave con -po usar la suya en lugar de una contraseña con -K(en realidad es un poco más complicado que eso ya que se necesita un vector o fuente de inicialización , ver de man encnuevo). Si usa una contraseña, puede usar la misma contraseña para descifrar, no necesita mirar o conservar la clave generada.

Para descifrar esto:

openssl enc -in foo.bar.enc \
    -d -aes-256-cbc \
    -pass stdin > foo.bar

Note el -d. Ver también man openssl.

encerrada dorada
fuente
Además, puede enviar el resultado a un archivo utilizando la opción en -out FILENAMElugar de canalizar en la salida.
crazyGuy
4

Para casos únicos, puede cifrar usando zip y una contraseña. Si bien no es tan fuerte como las técnicas basadas en claves (porque es difícil tener una buena contraseña), probablemente sea una buena situación ad-hoc.

La línea de comando se ve así:

zip -r -0 -e encrypted_file.zip /path/to/files

-r to recurse directories.
-e to encrypt
Hogan
fuente