Cómo utilizar GnuPG para el cifrado en Linux

¿Alguna vez tuvo información confidencial, como contraseñas o información de inicio de sesión del servidor, que necesitaba para enviar a alguien por correo electrónico, pero no sabía cómo enviarla de forma segura para evitar que la información cayera en las manos equivocadas?

Aquí aprenderá cómo transmitir de forma segura mensajes y archivos cifrados con PGP a través de la popular herramienta gnupg. ¡Vamos a sumergirnos y aprender a proteger nuestras comunicaciones!

Instalar gnupg

Si nunca antes ha oído hablar de PGP, consulte una excelente introducción y explicación de PGP , que contiene varios detalles que no abordaremos aquí por brevedad. Primero verifique si gnupg ya está instalado. Dentro de la terminal, ejecute el comando:

 gnupg --version

Si muestra la versión de gnupg que está ejecutando actualmente (debería ser v2 +), entonces está todo listo y puede pasar a la siguiente sección. De lo contrario, puede instalar gnupg ejecutando:

 sudo apt-get install gnupg2

Una vez terminado, verifique que esté instalado:

 gnupg -- version

Suponiendo que gnupg se haya instalado correctamente, se mostrará el número de versión.

Generar una clave PGP

Con el cifrado asimétrico , primero generará un par de claves PGP que consta de una clave pública y una privada. La clave pública se puede distribuir libremente a cualquier persona de la que desee recibir mensajes cifrados, mientras que la clave privada se guarda para usted en un lugar seguro.

Luego, las personas pueden cifrar los mensajes en la clave pública y enviar un mensaje cifrado, que luego se puede descifrar utilizando la clave privada. Para generar una ejecución de par de claves:

 gpg --generate-key

Esto comenzará preguntando su nombre y dirección de correo electrónico, que no necesariamente tiene que ser su nombre real y correo electrónico. Sin embargo, es lo que otros verán al seleccionar a quién cifrar los mensajes, así que asegúrese de que sea algo por lo que otros puedan identificarlo fácilmente.

Luego ingrese la letra O para confirmar el nombre y la dirección de correo electrónico, y se le pedirá que ingrese la contraseña deseada, que puede ser la que desee. Deberá ingresar esta contraseña cada vez que desee descifrar un mensaje que se le envió.

Una vez que haya confirmado la contraseña, comenzará a generar su nuevo par de claves PGP, lo que puede tardar unos minutos en recopilar suficientes datos de entropía / aleatorios de su computadora. Siéntase libre de navegar fuera de la terminal durante un par de minutos y hacer otra cosa hasta que vea un mensaje que dice que su clave se ha generado correctamente.

Exporta tu clave pública

Ahora que su par de claves está generado, necesita exportar la clave pública para distribuirla a otros. Dentro de la terminal, ejecute el comando:

 gpg -a --export -e '[email protected]` > mykey.asc

Asegúrese de cambiar '[email protected]' con la dirección de correo electrónico que proporcionó al generar su clave PGP. Ahora verá un nuevo archivo en el directorio actual llamado mykey.asc . Envíe este archivo a cualquier persona que desee para poder enviarle mensajes cifrados.

Importar claves públicas

Al igual que ahora puede compartir su clave pública con otros, las personas también compartirán sus claves públicas con usted. Cuando reciba la clave PGP pública de alguien, guarde el archivo en un directorio y acceda al terminal desde el mismo directorio, ejecute:

 gpg --import key.asc

Esto importará la clave PGP pública de la persona a gnupg, lo que le permitirá comenzar a enviarle mensajes cifrados. En cualquier momento puede ver una lista de todas las claves PGP actualmente disponibles dentro de gnupg:

 gpg --list-keys

Verá un montón de entradas similares a las siguientes, una para cada clave disponible dentro de gnupg:

 pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29]
 8978168C4E79A08553E5789CD42A4A4EC1468CFE
 uid [ unknown] Matt Dizak <[email protected]>

La única información que debe tener en cuenta allí es el nombre y la dirección de correo electrónico de la entrada, que indica el propietario de esa clave. Al cifrar mensajes, solo necesitará la dirección de correo electrónico del destinatario.

Cifrar mensajes a través de PGP

Por ejemplo, es posible que deba enviar información confidencial a su diseñador web, cuya clave PGP ya ha importado con la dirección de correo electrónico [email protected]. Escriba el mensaje deseado y guárdelo en un archivo de texto, por ejemplo, message.txt . Dentro de la terminal y dentro del directorio donde reside message.txt, ejecute el comando:

 gpg -e -a -r '[email protected]' message.txt

Analicemos rápidamente el comando anterior:

  • -e especifica que estamos encriptando datos
  • -a indica que queremos la salida en ASCII o en formato de texto sin formato
  • -r significa destinatario, de ahí que le siga la dirección de correo electrónico de nuestro diseñador
  • Finalmente viene el archivo de mensaje que deseamos cifrar.

Lo más probable es que esto le pida que confirme que realmente desea cifrar con esta clave pública, y puede presionar la tecla Y para aceptar. Se creará un nuevo archivo message.txt.asc y, si abre el archivo en un editor de texto, verá algo similar a:

 -----BEGIN PGP MESSAGE-----
 hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

Esta es la forma cifrada recién generada de nuestro mensaje. Puede adjuntar este archivo en un correo electrónico o simplemente copiar y pegar el contenido de este archivo en el contenido del cuerpo de un mensaje de correo electrónico.

El destinatario podrá entonces descifrar el mensaje en su extremo utilizando su clave privada, asegurando que cualquiera que vea este mensaje durante el tránsito no podrá ver la versión de texto sin formato.

Cifrar archivos binarios

La sección anterior explica cómo cifrar mensajes de texto, pero ¿qué pasa con los archivos binarios? Funciona prácticamente igual y, por ejemplo, para cifrar un archivo llamado images.zip , dentro de la terminal ejecute el comando:

 gpg -e -r '[email protected]' images.zip

La única diferencia es que se elimina la opción -a, junto con el nombre del archivo de salida. Luego, como antes, si se le solicita que confirme el uso de la clave pública, simplemente presione la tecla Y para aceptar.

Se creará un nuevo archivo llamado images.zip.gpg , que es la versión encriptada de nuestro archivo zip que podemos enviar por correo electrónico a nuestro diseñador como archivo adjunto. Luego pueden descifrar el archivo ZIP usando su clave privada.

Descifrar mensajes

También necesita una forma de descifrar los mensajes que se le envían. Recuerde, para que alguien le envíe un mensaje encriptado, primero debe compartir su clave PGP pública con ellos. Obtendrá un bloque de texto cifrado, que se parece a cifrar un mensaje, como por ejemplo:

 -----BEGIN PGP MESSAGE-----
 hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

Guarde este bloque de texto en un archivo como message.asc , y dentro de la terminal ejecute el comando:

 gpg -d message.asc > message.txt

Se le pedirá que ingrese su contraseña, que es la misma contraseña que proporcionó cuando generó inicialmente su par de claves PGP. Tras ingresar correctamente su contraseña, se creará un archivo message.txt que contiene la versión descifrada del mensaje en texto sin formato. ¡Eso es todo al respecto!

¡Felicitaciones, sus comunicaciones ahora son seguras!

A través de esta guía, ha aprendido todo lo necesario para proteger adecuadamente sus comunicaciones a través del cifrado PGP. Ha aprendido cómo generar un par de claves PGP, exportar su clave pública para compartirla con otros, importar las claves públicas de otros, además de cómo cifrar y descifrar mensajes.

La próxima vez que necesite enviar información confidencial por correo electrónico, ahora puede estar seguro de que solo el destinatario previsto podrá ver el contenido del mensaje, manteniéndolo alejado de invitados no deseados. ¡Feliz cifrado!