GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de GPG para cifrar y descifrar archivos en Linux [práctica para principiantes]

GnuPG, conocido popularmente como GPG, es una herramienta extremadamente versátil, que se usa ampliamente como el estándar de la industria para el cifrado de cosas como correos electrónicos, mensajes, archivos o cualquier cosa que necesite enviar a alguien de forma segura.

Es fácil comenzar con GPG y puede estar en camino de usarlo en cuestión de minutos.

En este tutorial, le mostraré cómo cifrar y descifrar archivos con GPG. Este es un tutorial simple y también puede probarlo todo para practicar en su sistema Linux. Esto te ayudará a practicar los comandos GPG y comprenderlos cuando seas absolutamente nuevo en ellos.

Lea todo el tutorial primero y luego comience a hacerlo por su cuenta.

¿Cómo funciona GPG para el cifrado?

Para comenzar a usar GPG, primero deberá tener una clave GPG.

Una clave GPG es lo que usará para cifrar (o descifrar) archivos más adelante en el tutorial. También es lo que se usa para identificarlo, con cosas como su nombre y correo electrónico también vinculados a la clave.

Las claves GPG funcionan mediante el uso de dos archivos, una clave privada y una clave pública. Estas dos claves están vinculadas entre sí y ambas son necesarias para usar todas las funciones de GPG, en particular, para cifrar y descifrar archivos.

Cuando cifra un archivo con GPG, utiliza la clave privada. El nuevo archivo cifrado puede entonces solo ser descifrado con la clave pública emparejada.

La clave privada está destinada a almacenarse de la manera que se indique directamente en su nombre:de forma privada y no se la dará a nadie.

La clave pública, por otro lado, está destinada a ser entregada a otros, o a cualquier persona que desee que pueda descifrar sus archivos.

Aquí es donde entra en juego el enfoque principal de GPG para el cifrado. Le permite encriptar archivos localmente y luego permitir que otros se aseguren de que usted envió realmente los archivos que recibieron. Como la única forma en que podrán descifrar el archivo está con su clave pública, que solo funcionaría si el archivo estuviera cifrado utilizando su clave privada en primer lugar.

¡Esto también funciona en la dirección opuesta! Otras personas pueden cifrar archivos con su clave pública, y la única forma de descifrarlos es con su clave privada. Permitiendo así que otros publiquen archivos públicamente sin preocuparse de que otras personas además de usted puedan leerlos.

En otras palabras, si un archivo fue cifrado con una clave privada, solo se puede descifrar con la clave pública correspondiente. Y si un archivo fue cifrado con una clave pública, solo se puede descifrar con la clave privada correspondiente.

Ya estás usando GPG sin darte cuenta

Uno de los ejemplos más comunes del uso de GPG es el administrador de paquetes de Linux, especialmente los repositorios externos. Agrega la clave pública del desarrollador a las claves confiables de su sistema. El desarrollador firma los paquetes (genera una firma) con su clave privada. Dado que su sistema Linux tiene el archivo público, entiende que el paquete en realidad proviene del desarrollador de confianza.

Varios servicios encriptados usan algún tipo de implementación GPG debajo sin que te des cuenta. Pero es mejor no entrar en esos detalles ahora.

Ahora que está un poco familiarizado con el concepto, veamos cómo puede usar GPG para cifrar un archivo y luego usarlo para descifrarlo.

Cifrado y descifrado de archivos con GPG

Este es un escenario muy simplista. Supongo que solo tienes un sistema y quieres ver cómo funciona GPG. No está enviando los archivos a otro sistema. Cifras el archivo y luego lo descifras en el mismo sistema.

Por supuesto, este no es un caso de uso práctico, pero tampoco es el propósito de este tutorial. Mi objetivo es que se familiarice con los comandos y el funcionamiento de GPG. Después de eso, puede usar este conocimiento en una situación del mundo real (si es necesario). Y para eso, te mostraré cómo puedes compartir tu clave pública con otros.

Paso 1:Instalación de GPG

GPG se puede encontrar en la mayoría de los repositorios de distribución listos para usar.

En sistemas basados ​​en Debian y Ubuntu, instale el paquete gpg:

sudo apt install gpg

Si usa distribuciones basadas en Arch, instale el paquete gnupg con el comando pacman:

sudo pacman -S gnupg

Paso 2:Generar una clave GPG

Generar una clave GPG en su sistema es un procedimiento simple de un solo comando.

Simplemente ejecute el siguiente comando y se generará su clave (puede usar los valores predeterminados para la mayoría de las preguntas, como se muestra en las secciones subrayadas a continuación):

gpg --full-generate-key

Comprobación de la clave GPG

Luego puede ver que la clave privada y la clave pública están vinculadas entre sí por esa ID que se muestra debajo de pub mediante el –list-secret-keys y –list-public-keys comandos respectivamente:

Paso 3:Cifrar un archivo con GPG

Ahora que ha configurado nuestras claves GPG, ¡puede comenzar a cifrar nuestros archivos!

Utilice el siguiente comando para cifrar archivos:

gpg --encrypt --output file.gpg --recipient [email protected] file

Repasemos lo que hace ese comando rápidamente:

Primero especificó el –encrypt opción. Esto simplemente le dice a GPG que cifraremos un archivo.

A continuación, especificó –archivo de salida.gpg . Puede ser cualquier cosa, aunque normalmente es el nombre del archivo que está cifrando más un .gpg extensión (entonces message.txt se convertiría en mensaje.txt.gpg ).

A continuación, escribe –destinatario [email protected] . Esto especifica el correo electrónico para una clave GPG correspondiente que en realidad aún no existe en este sistema.

¿Sigues confundido?

La forma en que esto funciona es que el correo electrónico que especifique aquí debe estar vinculado a una clave pública en su sistema local.

Por lo general, esto será de la clave GPG pública de una persona diferente, que es con lo que cifrará su archivo. Después de eso, el archivo solo podrá descifrarse con la clave privada de ese usuario.

Usaré mi clave GPG anterior con el [email protected] en este ejemplo. Por lo tanto, la lógica sería que estoy encriptando el archivo con el público clave de h[email protected] , que luego solo se podrá descifrar con el privado clave de [email protected] .

Solo tendría la clave pública si estuviera cifrando un archivo para otra persona, pero dado que está cifrando el archivo para usted mismo, tiene ambas claves en su sistema.

Por último, simplemente especifica el archivo que vas a cifrar. Para este ejemplo, usemos un archivo llamado mensaje.txt con el siguiente contenido:

We're encrypting with GPG!

Del mismo modo, si el correo electrónico era [email protected] , el nuevo comando GPG sería el siguiente:

gpg --encrypt --output message.txt.gpg --recipient [email protected] message.txt

Si luego intenta leer el archivo, verá que parece un galimatías. Eso se esperaba porque el archivo está encriptado ahora:

Ahora eliminemos el archivo message.txt sin cifrar para que pueda ver que el archivo message.txt.gpg realmente se descifra sin el archivo original:

Paso 4:Descifrar el archivo cifrado con GPG

Por último, vamos a descifrar el mensaje cifrado. Puede hacerlo usando el siguiente comando:

gpg --decrypt --output file file.gpg

Repasando el argumento aquí, primero especificamos –decrypt , que le dice a GPG que vas a descifrar un archivo.

A continuación, ingresa –output que simplemente le dice a GPG en qué archivo guardará la forma cifrada de nuestro archivo después de descifrarlo.

Por último, ingresa file.gpg , que es solo la ruta a su archivo encriptado.

Siguiendo el ejemplo, el comando que usaría sería el siguiente:

gpg --decrypt --output message.txt message.txt.gpg

Y listo, ¡ya está! Eso es todo cuando desea cifrar y descifrar archivos con GPG.

Lo único que quizás desee saber es cómo compartir sus claves públicas con otros para que puedan cifrar los archivos antes de enviárselos.

Envío y recepción de claves GPG

Para enviarle a alguien una clave GPG, primero deberá exportarla desde su llavero , que es lo que contiene todas sus claves públicas y privadas.

Para exportar una clave, simplemente busque el ID de la clave en su llavero y luego ejecute el siguiente comando, reemplazando id con el ID de la llave y key.gpg con el nombre del archivo que desea guardar:

gpg --output key.gpg --export id

Para importar una clave, simplemente entregue el archivo de salida (del comando anterior) al otro usuario y luego pídales que ejecuten el siguiente comando:

gpg --import key.gpg

Sin embargo, para usar la clave normalmente, deberá verificar la clave para que GPG confíe en ella correctamente.

Esto se puede hacer ejecutando –edit-key Comando en el sistema del otro usuario, siguiendo firmando la clave:

Primero ejecute gpg --edit-key id :

A continuación, ejecute el fpr comando, que mostrará la huella dactilar de la llave. El resultado de este comando debe validarse con el resultado de su propia máquina, que se puede encontrar ejecutando la misma –edit-key comando en su sistema:

Si todo coincide, ejecuta el signo Comando y todo estará listo para funcionar:

¡Eso es todo! El otro usuario ahora puede comenzar a cifrar archivos con su clave pública tal como lo hizo anteriormente, asegurándose de que solo podrá leerlos cuando los descifre con su clave privada.

¡Y eso es todo lo básico de GPG!

Conclusión

Ahora ha repasado todo lo que necesita para comenzar a usar GPG, incluido el cifrado de archivos para usted y para otros. Como mencioné anteriormente, esto es solo para comprender cómo funciona el proceso de cifrado y descifrado GPG. El conocimiento básico de GPG que acaba de adquirir se puede llevar al siguiente nivel cuando se aplica en escenarios del mundo real.

¿Necesita ayuda para averiguar algo todavía, o algo simplemente no funciona bien? Siéntase libre de dejar cualquiera de ellos en los comentarios a continuación.

Artículo Original


Linux
  1. Cifre y descifre archivos con una frase de contraseña en Linux

  2. Cómo cifrar y descifrar archivos y directorios utilizando Tar y OpenSSL

  3. Cómo cifrar y descifrar archivos/carpetas en Linux usando GnuPG

  4. Uso de Checkmk para monitorear su infraestructura de servidor Linux

  5. Utilice Buscar y localizar para buscar archivos en Linux

Una forma fácil de cifrar y descifrar archivos desde la línea de comandos en Linux

Cryptr:una utilidad CLI simple para cifrar y descifrar archivos

Cómo hacer una copia de seguridad y restaurar archivos usando BorgBackup en Linux

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

40 comandos git útiles para administradores y desarrolladores de Linux

Cómo eliminar archivos y directorios usando la línea de comandos de Linux