Cómo cifrar y descifrar archivos con GPG en Linux

Proteja su privacidad con el comando gpg de Linux. Utilice cifrado de clase mundial para mantener sus secretos a salvo. 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 la OpenPGP estándar. Está inspirado 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 cifró con 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á a partir de esto 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 sus claves públicas solo eso: públicas. De hecho, existen Servidores de Clave Pública para ese mismo propósito, como veremos. Las claves privadas deben mantenerse privadas. Si su clave pública es de dominio público, entonces su clave privada debe mantenerse secreta y segura.

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

Generando sus claves

El comando gpg se instaló en todas las distribuciones de Linux que se verificaron, incluidas Ubuntu, Fedora y Manjaro.

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

Aquí está el comando para generar sus claves. La opción –full-generate-key genera sus claves en una sesión interactiva dentro de la ventana de su terminal. También se le pedirá una frase de contraseña. Asegúrese de recordar cuál es la frase de contraseña. Tres o cuatro palabras sencillas unidas con puntuación es una buena modelo robusto para contraseñas y frases de contraseña.

gpg --full-generate-key

gpg --full-generate-key en una ventana de terminal

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.

preguntas de generación de claves en una ventana de terminal

Debe especificar cuánto tiempo debe durar la clave. Si está probando el sistema, ingrese una duración corta como 5 para cinco días. Si va a conservar esta clave, ingrese una duración mayor, como 1 año, durante 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 una Y.

  Cómo cifrar documentos en Linux

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

preguntas de generación de claves en una ventana de terminal

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

ventana de contraseña de gpg

Haga clic en el botón Aceptar cuando haya ingresado su contraseña. Verá esta ventana mientras trabaja con gpg, así que asegúrese de recordar su contraseña.

Se producirá la generación de la clave y volverá a la línea de comandos.

Generación de clave gpg completada en una ventana de terminal

Generación de un certificado de revocación

Si otras personas conocen su clave privada, deberá desvincular 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.

La opción –output debe ir seguida del nombre de archivo del certificado que desea crear. La opción –gen-revoke hace que gpg genere un certificado de revocación. Debe proporcionar la dirección de correo electrónico que utilizó cuando se generaron las claves.

gpg --output ~/revocation.crt --gen-revoke [email protected]

gpg --output ~ / revocation.crt --gen-revoke dave-geek@protonmail.com en una ventana de terminal

Se le pedirá que confirme que desea generar un certificado. Presione Y y presione Enter. Se le preguntará el motivo por el que está generando el certificado. Como estamos haciendo esto antes de tiempo, no lo sabemos con certeza. Presione 1 como una suposición plausible y presione Enter.

Puede ingresar una descripción si lo desea. Presione Entrar dos veces para finalizar su descripción.

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

Preguntas sobre el certificado gpg en una ventana de terminal

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

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

Como mínimo, eliminemos todos los permisos, excepto los nuestros, del certificado.

chmod 600 ~/revocation.crt

chmod 600 ~ / revocation.crt en una ventana de terminal

Revisemos con ls para ver cuáles son los permisos ahora:

ls -l

http://cryptocouple.com/ en una ventana de terminal

Eso es perfecto. Nadie, aparte del propietario del archivo, nosotros, puede hacer nada con el certificado.

Importar la clave pública de otra persona

Para cifrar un mensaje que otra persona pueda descifrar, debemos tener su clave pública.

Si se le ha proporcionado su clave en un archivo, puede importarla con el siguiente comando. En este ejemplo, el archivo de claves se llama «mary-geek.key».

gpg --import mary-geek.key

gpg --importar mary-geek.key en una ventana de terminal

La clave se importa y se le muestra el nombre y la dirección de correo electrónico asociados con esa clave. Obviamente, eso debería coincidir con la persona de la que lo recibió.

clave importada con éxito en una ventana de terminal

También existe la posibilidad de que la persona de la que necesita una clave haya subido su clave a un servidor de claves públicas. Estos servidores almacenan claves públicas de personas de todo el mundo. Los servidores de claves se sincronizan entre sí 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 uno que se sincroniza regularmente, por lo que la búsqueda debería ser exitosa. Si alguien ha subido una clave recientemente, es posible que tarde unos días en aparecer.

  Cómo usar el espacio de intercambio en una unidad USB en Rasbian Linux

La opción –keyserver debe ir seguida del nombre del servidor de claves que desea buscar. La opción –search-keys debe ir seguida 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 [email protected]

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com en una ventana de terminal

Las coincidencias se enumeran y enumeran. Para importar uno, escriba el número y presione Entrar. En este caso, hay una única coincidencia, por lo que escribimos 1 y presionamos Enter.

El servidor de claves gpg da como resultado una ventana de terminal

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

Verificación y firma de una clave

Si alguien que conoce le ha entregado un archivo de clave pública, puede decir con seguridad que pertenece a esa persona. Si la ha descargado 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.

La opción –de huella dactilar hace que gpg cree 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 la opción –fingerprint para generar la misma secuencia de huellas dactilares de caracteres hexadecimales y compararlos. Si coinciden, sabrá que la clave pertenece a esa persona.

gpg --fingerprint [email protected]

gpg --fingerprint mary-geek@protonmail.com en una ventana de terminal

Se genera la huella dactilar.

Huella digital gpg en una ventana de terminal

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 de y para esa persona. Pero gpg le preguntará cada vez si desea continuar porque la clave no está firmada. Usaremos la opción –sign-key, con el nombre adecuado, y proporcionaremos la dirección de correo electrónico de la persona, para que gpg sepa qué clave firmar.

gpg --sign-key [email protected]

gpg --sign-key mary-geek@protonmail.com en una ventana de terminal

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

Confirmación de firma de clave gpg en una ventana de terminal

Cómo compartir su clave pública

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

gpg --output ~/dave-geek.key --armor --export [email protected]

gpg --output ~ / dave-geek.key --armor --export dave-geek@protonmail.com en una ventana de terminal

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

less dave-geek.key

archivo de clave pública en menos en una ventana de terminal

La clave se muestra en todo su esplendor:

archivo de clave pública en menos en una ventana de terminal

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

  Morrowind en Linux con OpenMW

(Puede ver la huella digital de su clave utilizando la opción –de huella digital).

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

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4 en una ventana de terminal

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

la clave de confirmación se ha enviado al servidor de claves en una ventana de terminal

Cifrar archivos

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

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

gpg --encrypt --sign --armor -r [email protected]

gpg --encrypt --sign --armor -r mary-geek@protonmail.com en una ventana de terminal

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

less Raven.txt.asc

menos Raven.txt.asc en una ventana de terminal

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 en tener ambos debería ser Mary.

Contenido cifrado de raven.txt.asc en una ventana de terminal

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

Descifrar archivos

María ha enviado una respuesta. Está en un archivo cifrado llamado coded.asc. Podemos descifrarlo muy fácilmente usando la opción –decrypt. Vamos a redirigir la salida a otro archivo llamado plain.txt.

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

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc> plain.txt en una ventana de terminal ”width =” 646 ″ height = ”212 ″ onload =” pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); ”  onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”> </p>
<p> Veamos el archivo plain.txt: </p>
<pre> less plain.txt </ pre > <p> <img cargando =

El archivo ha sido descifrado correctamente para nosotros.

archivo descifrado en menos en una ventana de terminal

Refrescando sus llaves

Periódicamente, puede pedirle a gpg que verifique las claves que tiene con un servidor de claves públicas y que actualice las que hayan cambiado. Puede hacer esto cada pocos meses o cuando reciba una clave de un nuevo contacto.

La opción –refresh-keys hace que gpg realice la verificación. La opción –keyserver debe ir seguida del servidor de claves que elija. Una vez que las claves se han sincronizado entre los servidores de claves públicas, no debería importar cuál elija.

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

gpg --keyserver pgp.mit.edu --refresh-keys en una ventana de terminal

gpg responde enumerando las claves que comprueba y haciéndole saber si alguna ha cambiado y se ha actualizado.

La clave gpg se actualiza en una ventana de terminal

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 un medio simple para aplicar un cifrado increíblemente fuerte a sus archivos y comunicaciones.

Hay otras formas de utilizar gpg. Puede obtener un complemento para Thunderbird llamado Enigmail. Se conecta directamente a su configuración de gpg para permitirle cifrar mensajes de correo electrónico desde dentro de Thunderbird.