Mucha de la información que guardamos en nuestros dispositivos electrónicos hoy en día es sensible, a veces compartimos información a través de medios electrónicos o simplemente queremos guardar información privada, pero ¿cómo hacemos para que esa información permanezca segura?, en este artículo les voy a mostrar como cifrar información en pocos pasos utilizando OpenSSL.
Para poder cifrar información requerimos de un par de llaves, una Llave Privada y una Llave Pública, utilizamos la llave pública para cifrar información que solo la llave privada puede descifrar, cómo se aprecia en el siguiente diagrama:
Para generar un par de llaves ejecutamos el siguiente comando de OpenSSL:
openssl genpkey -algorithm RSA -out mi_llave_privada.pem -pkeyopt rsa_keygen_bits:2048
Para extraer la llave pública del archivo PEM que se generó con el comando anterior ejecutamos:
openssl rsa -pubout -in mi_llave_privada.pem -out mi_llave_publica.pem
Para cifrar la información ejecutamos:
echo "texto que quiero cifrar" |openssl rsautl -encrypt -pubin -inkey mi_llave_publica.pem -ssl |base64
grep -rin xyz *
Consejo
En este caso le estoy pasando texto sin embargo con la opción -in de OpenSSL puedo pasar un archivo completo.
Para descifrar la información, guardo la información cifrada en un archivo y ejecuto el siguiente comando:
base64 -d archivo_que_quiero_desencriptar |openssl rsautl -decrypt -inkey mi_llave_privada.pem
Listo ahora ya sabemos como cifrar y descifrar información, así que si dos personas comparten sus llaves públicas pueden compartir información cifrada.