
El cifrado de archivos se relaciona con la provisión de seguridad para los archivos del sistema/usuario que residen en un dispositivo de medios como un disco duro o una unidad USB. Para que dichos archivos se cifren, deben estar en un estado almacenado de modo que ningún proceso o programa esté accediendo o trabajando activamente en ellos. Los archivos cifrados se almacenan localmente y, por lo tanto, no se recomienda enviarlos a través de una red.
Cuando se cifra un archivo y es necesario agregarle datos, se descifra temporalmente hasta que dicho usuario/programa termina de escribir y/o leer datos y luego se vuelve a cifrar. El único propósito de cifrar archivos es evitar la lectura, escritura, copia y/o eliminación no autorizada de los archivos de destino.
OpenSSL es una biblioteca de software que proporciona comunicación segura entre aplicaciones a través de una red configurada. La mayoría HTTPS Los sitios web y los servidores de Internet utilizan esta biblioteca de software para evitar escuchas ilegales y también para identificar a las partes con las que se comunican al otro lado de la red.
Este tutorial nos guiará a través del cifrado de un archivo grande con OpenSSL en linux
Crear archivo de referencia de ejemplo
Dado que este tutorial se enfoca en cifrar archivos grandes, necesitaremos crear uno. Podemos usar el fallar comando que es parte del Util-Linux paquete.
Vamos a crear un archivo de texto grande de 1GB usando el fallar dominio:
$ fallocate -l 1024M test.txt
Deberíamos poder agregar algo de texto a este archivo usando el comando de eco.
$ echo "LinuxShellTips tutorial on encrypting a large file with OpenSSL in Linux" >> test.txt
Podemos usar el comando cat para confirmar lo que escribimos en el archivo:
$ cat test.txt

Cifrar archivo con contraseña usando OpenSSL
Aquí, se usará una única contraseña o clave secreta para cifrar nuestro gran archivo de texto. El algoritmo de cifrado de clave simétrica al que nos referiremos es AES (Estándar de cifrado avanzado).
Este algoritmo puede acomodar claves criptográficas de 128, 192 y 256 bits para que los datos en bloques de 128 bits se cifren y descifren con éxito.
Para cifrar los grandes prueba.txt archivo, ejecutaremos el comando:
$ openssl enc -aes-256-cbc -pbkdf2 -p -in test.txt -out test.txt.enc
La explicación de las opciones utilizadas en el comando anterior.
- enc ejecuta el proceso de cifrado de clave simétrica.
- -aes-256-cbc especifica el uso de clave criptográfica de 256 bits.
- -pbkdf2 es el algoritmo predeterminado que se utiliza.
- -pags impresiones usadas sal, llave y IV.
- -en apunta al archivo de entrada.
- -afuera apunta al archivo de salida.

Cuando se ejecute el comando, se le pedirá que ingrese y confirme su contraseña de cifrado preferida. Podemos usar el comando gato para confirmar que ya no podemos leer el archivo.
$ cat test.txt.enc
Obtendrá una salida similar a la siguiente:

Para descifrar el archivo, ejecute:
$ openssl aes-256-cbc -d -pbkdf2 -in test.txt.enc -out sample_decrypted.txt
Se le pedirá que ingrese la contraseña de cifrado que generó anteriormente.

Cifrar archivo con clave usando OpenSSL
El primer paso es generar un archivo clave:
$ openssl rand 256 > symmetric_keyfile.key
Ahora podemos usar el archivo de clave para encriptar nuestro archivo:
$ openssl enc -in test.txt -out test.txt.enc -e -aes-256-cbc -pbkdf2 -k symmetric_keyfile.key
los comando gato debe confirmar que el archivo no se puede leer.
$ cat test.txt.enc

Para descifrar el archivo, ejecute:
$ openssl enc -in test.txt.enc -out draft_decrypted.txt -d -aes-256-cbc -pbkdf2 -k symmetric_keyfile.key

Cifrado asimétrico
El uso de este enfoque en el que se genera una clave privada y una clave pública generada a partir de ella no es compatible con el cifrado de archivos grandes, ya que se encontrará con el error: datos demasiado grandes para el tamaño de la clave.

Hemos cifrado con éxito un archivo grande con OpenSSL en linux