Ventana de terminal de Linux en una computadora portátil

Cómo cifrar y descifrar archivos con GPG en Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

Proteja su privacidad con Linux gpg pedido. Utilice encriptación de clase mundial para proteger sus secretos. Le mostraremos cómo usar gpg para trabajar con claves, cifrar archivos y descifrarlos.

GnuPrivacy Guard (GPG) le permite cifrar archivos de forma segura para que solo el destinatario previsto pueda descifrarlos. Específicamente, GPG cumple con OpenPGP la norma. Se basa en un programa llamado Pretty Good Privacy (PGP). PGP fue escrito en 1991 por Phil zimmerman.

GPG se basa en la idea de dos claves de cifrado por persona. Cada persona tiene una clave privada y una clave pública. La clave pública puede descifrar algo que se ha cifrado utilizando la clave privada.

Para enviar un archivo de forma segura, debe cifrarlo con su clave privada y la clave pública del destinatario. Para descifrar el archivo, necesitan su clave privada y su clave pública.

Verá desde allí que las claves públicas deben compartirse. Debe tener la clave pública del destinatario para cifrar el archivo, y el destinatario necesita su clave pública para descifrarlo. No hay peligro en hacer públicas sus claves públicas. De hecho, existen servidores de claves públicas para tal fin, como veremos. Las claves privadas deben mantenerse privadas. Si su clave pública es de dominio público, entonces su clave privada debe mantenerse privada y segura.

Hay más pasos involucrados en la configuración de GPG que en su uso. Afortunadamente, normalmente solo necesita configurarlo una vez.

Generación de tus claves

los gpg El comando se ha instalado en todas las distribuciones de Linux que se han verificado, incluidas Ubuntu, Fedora y Manjaro.

No es necesario que utilice GPG con el correo electrónico. Puede cifrar los archivos y ponerlos a disposición para su descarga, o transmitirlos físicamente al destinatario. Sin embargo, debe asociar una dirección de correo electrónico con las claves que genera, así que elija la dirección de correo electrónico que va a utilizar.

Aquí está el comando para generar sus claves. los --full-generate-key La opción genera sus claves en una sesión interactiva en la ventana de su terminal. También se le pedirá que ingrese una frase de contraseña. Asegúrese de recordar la frase de contraseña. Tres o cuatro palabras solas asociadas con la puntuación son buenas y plantilla robusta para contraseñas y frases de contraseña.

gpg --full-generate-key

Se le pedirá que elija un tipo de cifrado de un menú. A menos que tenga una buena razón para no hacerlo, escriba 1 y presione Entrar.

Debe elegir una longitud de bits para las claves de cifrado. Presione Entrar para aceptar el valor predeterminado.

Debe especificar cuánto tiempo debe durar la clave. Si está probando el sistema, ingrese un tiempo corto como 5 por cinco días. Si va a conservar esta clave, ingrese un plazo más largo, como 1 año por un año. La clave tendrá una duración de 12 meses y, por lo tanto, deberá renovarse después de un año. Confirme su elección con un Y.

Debe ingresar su nombre y dirección de correo electrónico. Puede agregar un comentario si lo desea.

Se le pedirá su contraseña. Necesitará la frase de contraseña cada vez que trabaje con sus claves, así que asegúrese de saber cuál es.

ventana de contraseña de gpg

Pinchalo OK cuando haya introducido su contraseña. Verá esta ventana mientras trabaja con gpg, así que asegúrese de recordar su frase de contraseña.

Se generará la clave y volverá al símbolo del sistema.

Generando un certificado de revocación

Si otras personas conocen su clave privada, deberá disociar las claves antiguas de su identidad para poder generar otras nuevas. Para hacer esto, necesitará un certificado de revocación. Haremos esto ahora y lo almacenaremos en un lugar seguro.

los --output debe ir seguido del nombre de archivo del certificado que desea crear. los --gen-revoke la opción causa gpg para generar un certificado de revocación. Debe proporcionar la dirección de correo electrónico que utilizó al generar las claves.

gpg --output ~/revocation.crt --gen-revoke dave-geek@protonmail.com

Se le pedirá que confirme que desea generar un certificado. apurarse Y y presione Entrar. Se le preguntará el motivo por el que está generando el certificado. Como lo hacemos de antemano, no estamos seguros. apurarse 1 como una suposición plausible y presione enter.

Puede ingresar una descripción si lo desea. Presione Enter dos veces para completar su descripción.

Se le pedirá que confirme su configuración, presione Y y presione Entrar.

Se generará el certificado. Verá un mensaje que refuerza la necesidad de mantener este certificado seguro.

Menciona a alguien llamado Mallory. Las discusiones sobre criptomonedas se han utilizado durante mucho tiempo Bob y Alice como las dos personas que se comunican. Hay otros personajes secundarios. Eve es un intruso, Mallory es un atacante malintencionado. Todo lo que necesitamos saber es que debemos mantener el certificado seguro.

Como mínimo, eliminemos todos los permisos que no sean los nuestros del certificado.

chmod 600 ~/revocation.crt

Vamos a comprobar con ls para ver cuáles son los permisos ahora:

ls -l

Perfecto. Nadie más que el propietario del archivo, nosotros, puede hacer nada con el certificado.

Importar la clave pública de otra persona

Para cifrar un mensaje de modo que solo el destinatario pueda descifrarlo, necesitamos tener la clave pública del destinatario.

Si recibió su clave en un archivo, puede importarla con el siguiente comando. En este ejemplo, el archivo de claves se denomina «mary-geek.key».

gpg --import mary-geek.key

La clave se importa y se muestra el nombre y la dirección de correo electrónico asociados con esa clave. Obviamente, esto debe coincidir con quién lo recibió.

También es posible que la persona que necesita una clave haya subido su clave a un servidor de claves públicas. Estos servidores almacenan las claves públicas de personas de todo el mundo. Los servidores de claves se sincronizan periódicamente para que las claves estén disponibles universalmente.

El servidor de claves públicas del MIT es un servidor de claves popular y regularmente sincronizado, por lo que la búsqueda debe ser exitosa. Si alguien ha descargado una clave recientemente, es posible que tarde unos días en aparecer.

los --keyserver debe ir seguido del nombre del servidor de claves que desea encontrar. los --search-keys debe ir seguido del nombre de la persona que está buscando o de su dirección de correo electrónico. Usaremos la dirección de correo electrónico:

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com

Las coincidencias se enumeran para usted y están numeradas. Para importar uno, escriba el número y presione Entrar. En este caso, solo hay una coincidencia, por lo que escribimos 1 y presione Entrar.

La clave se importa y se muestra el nombre y la dirección de correo electrónico asociados con esa clave.

Comprobación y firma de una clave

Si alguien que conoce le ha proporcionado un archivo de clave pública, puede decir con seguridad que pertenece a esa persona. Si lo descargó de un servidor de claves públicas, es posible que sienta la necesidad de verificar que la clave pertenece a la persona a la que está destinada.

los --fingerprint la opción causa gpg para crear una secuencia corta de diez conjuntos de cuatro caracteres hexadecimales. Puede pedirle a la persona que le envíe la huella digital de su clave.

A continuación, puede utilizar el --fingerprint opción para generar la misma secuencia de huellas dactilares de caracteres hexadecimales y compararlas. Si coinciden, sabrá que la clave pertenece a esa persona.

gpg --fingerprint mary-geek@protonmail.com

Se genera la huella dactilar.

Cuando esté satisfecho de que la clave es genuina y pertenece a la persona con la que se supone que está asociada, puede firmar su clave.

Si no lo hace, aún puede usarlo para cifrar y descifrar mensajes hacia y desde esa persona. Maíz gpg le preguntará cada vez si desea continuar porque la clave no está firmada. Usaremos el acertadamente nombrado --sign-key opción y proporcione la dirección de correo electrónico de la persona, de modo que gpg sabe qué llave firmar.

gpg --sign-key mary-geek@protonmail.com

Verá información sobre la clave y la persona, y se le pedirá que verifique que realmente desea firmar la clave. apurarse Y y presione Entrar para firmar la clave.

Cómo compartir su clave pública

Para compartir su clave como un archivo, necesitamos exportarlo desde el gpg almacén de claves local. Para hacer esto, usaremos el --export opción, que debe ir seguida de la dirección de correo electrónico que utilizó para generar la clave. los --output La opción debe ir seguida del nombre del archivo donde desea exportar la clave. los --armor la opción dice gpg para generar una salida de armadura ASCII en lugar de un archivo binario.

gpg --output ~/dave-geek.key --armor --export dave-geek@protonmail.com

Podemos echar un vistazo dentro del archivo de claves con less.

less dave-geek.key

La clave se muestra en todo su esplendor:

También puede compartir su clave pública en un servidor de claves públicas. los --send-keys La opción envía la clave al servidor de claves. los --keyserver debe ir seguido de la dirección web del servidor de claves públicas. Para identificar la clave a enviar, la huella digital de la clave debe proporcionarse en la línea de comando. Tenga en cuenta que no hay espacio entre conjuntos de cuatro caracteres.

(Puede ver la huella digital de su clave usando el --fingerprint opción.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Recibirá la confirmación de que se ha enviado la clave.

Cifrado de archivos

Finalmente estamos listos para encriptar un archivo y enviárselo a Mary. El archivo se llama Raven.txt.

los --encrypt la opción dice gpg para cifrar el archivo, y el --sign La opción le dice que firme el archivo con sus datos. los --armor La opción le dice a gpg que cree un archivo ASCII. los -r (destinatario) debe ir seguido de la dirección de correo electrónico de la persona a la que le está enviando el archivo.

gpg --encrypt --sign --armor -r mary-geek@protonmail.com

El archivo se crea con el mismo nombre que el original, pero con «.asc» añadido al nombre del archivo. Echemos un vistazo al interior.

less Raven.txt.asc

El archivo es completamente ilegible y solo puede ser descifrado por alguien que tenga su clave pública y la clave privada de Mary. La única persona que tiene ambos debe ser Mary.

Ahora podemos enviar el archivo a Mary con la confianza de que nadie más podrá descifrarlo.

Descifrado de archivos

Marie envió una respuesta. Se encuentra en un archivo cifrado llamado coded.asc. Podemos descifrarlo muy fácilmente usando el --decrypt opción. Redirigiremos la salida a otro archivo llamado plain.txt.

Tenga en cuenta que no tenemos que decir gpg de quién es el archivo. Puede funcionar a partir del contenido cifrado del archivo.

gpg --decrypt coded.asc > plain.txt

Echemos un vistazo al archivo plain.txt:

less plain.txt

El archivo fue descifrado con éxito para nosotros.

Actualiza tus llaves

Periódicamente puedes solicitar gpg para comprobar las claves que tiene con un servidor de claves públicas y actualizar las que hayan cambiado. Puede hacer esto cada pocos meses o cuando reciba una clave de un nuevo contacto.

los --refresh-keys la opción causa gpg para realizar la comprobación. los --keyserver debe ir seguido del servidor de claves de su elección. Una vez que las claves se han sincronizado entre los servidores de claves públicas, no importa cuál elija.

gpg --keyserver pgp.mit.edu --refresh-keys

gpg responde enumerando las claves que comprueba y notificándole si alguna ha sido modificada y actualizada.

La privacidad es un tema candente

La privacidad nunca está lejos de ser noticia en estos días. Cualesquiera que sean sus razones para querer mantener su información segura y privada, gpg proporciona una manera fácil de aplicar un cifrado increíblemente sólido a sus archivos y comunicaciones.

Hay otras formas de usar gpg. Puede obtener un complemento para Pájaro del trueno llamado Enigmeil. Se adhiere directamente a tu gpg configuración para permitirle cifrar el correo electrónico de Thunderbird.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas