La tarea de proteger la información es fundamental en el mundo de los sistemas operativos, y Linux no está exento de esta obligación. Con herramientas como OpenSSL, tenemos la capacidad de implementar una robusta encriptación en nuestros proyectos.
Entendiendo OpenSSL
OpenSSL es una implementación de código abierto de los protocolos de Secure Sockets Layer (SSL) y Transport Layer Security (TLS). Esta poderosa herramienta es ampliamente utilizada en sistemas operativos como Linux para el cifrado de datos.
Realizando la encriptación con OpenSSL
Para proceder a la encriptación, es necesario tener un conocimiento básico de los comandos de Linux. A continuación, detallaremos cómo realizar la encriptación.
Para este ejemplo, vamos a encriptar un archivo llamado “textfile.txt”. Utilizaremos el algoritmo de cifrado AES-256-CBC.
openssl enc -aes-256-cbc -salt -in textfile.txt -out textfile.encrypted
En la línea de comandos anterior, -aes-256-cbc es el algoritmo de cifrado que se usa. El comando -salt añade una capa de seguridad adicional al proceso de cifrado. -in textfile.txt es el archivo que queremos cifrar y -out textfile.encrypted es el archivo cifrado resultante.
Desencriptar con OpenSSL
No sólo es esencial saber cómo proceder a la encriptación en Linux utilizando OpenSSL, también es crucial entender cómo desencriptar datos cuando sea necesario.
openssl enc -aes-256-cbc -d -in textfile.encrypted -out textfile.txt
Como puedes observar, la sintaxis es bastante parecida a la utilizada en la etapa de encriptación. La diferencia radica principalmente en la introducción del comando -d, que es utilizado para desencriptar archivos.
Crear y usar un archivo .pem
Los archivos .pem son una forma popular y segura de almacenar claves de cifrado en OpenSSL. Crearemos un archivo .pem público y privado, y luego los utilizaremos para cifrar y descifrar un archivo.
openssl genpkey -algorithm RSA -out private_key.pem openssl rsa -pubout -in private_key.pem -out public_key.pem
En estos comandos, el primer comando utilizamos genpkey para generar una clave privada RSA. En el segundo comando, se genera una clave pública a partir de la clave privada previamente creada.
openssl rsautl -encrypt -pubin -inkey public_key.pem -in textfile.txt -out textfile.encrypted openssl rsautl -decrypt -inkey private_key.pem -in textfile.encrypted -out textfile.txt
Con la ayuda de los comandos ‘rsautl’, podemos encriptar y desencriptar nuestros archivos utilizando las claves contenidas en los archivos .pem que acabamos de generar.