Proteja su privacidad con Linux gpg
mandar. Utilice un cifrado de clase mundial para mantener sus secretos seguros. Le mostraremos cómo usar gpg para trabajar con claves, cifrar archivos y descifrarlos.
GnuPrivacy Guard (GPG (en in ins)) le permite cifrar archivos de forma segura para que solo el destinatario previsto pueda descifrarlos. En concreto, GPG cumple con la OpenPGP estándar. 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 un privado clave y un público llave. La clave pública puede descifrar algo que se cifró 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á en 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 que sus claves públicas sean solo eso: públicas. De hecho, hay servidores de clave pública para ese mismo propósito, como veremos. Las claves privadas deben mantenerse privadas. Si su clave pública está en el 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, generalmente solo necesita configurarlo una vez.
¿De qué vamos a hablar?
Generación de claves
El gpg
se instaló en todas las distribuciones de Linux que se verificaron, incluidas Ubuntu, Fedora y Manjaro.
No tiene que usar GPG con 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 genere, así que elija qué dirección de correo electrónico va a usar.
Aquí está el comando para generar sus claves. El --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 simples unidas entre sí con la puntuación es un buen y modelo robusto 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 pulse Intro.
Debe elegir una longitud de bits para las claves de cifrado. Pulse Intro para aceptar el valor predeterminado.
Debe especificar cuánto tiempo debe durar la clave. Si está probando el sistema, ingrese una duración corta como 5
durante cinco días. Si va a mantener esta clave, ingrese una duración más larga como 1y durante un año. La llave durará 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 su dirección de correo electrónico. Puede agregar un comentario si lo desea.
Se le pedirá su frase de contraseña. Necesitará la frase de contraseña cada vez que trabaje con sus claves, así que asegúrese de saber qué es.
Haga clic en el botón OK
cuando haya introducido su frase de contraseña. Verás esta ventana mientras trabajas con gpg
, así que asegúrate de recordar tu frase de contraseña.
Se llevará a cabo la generación de claves y se le devolverá al símbolo del sistema.
Generación de un certificado de revocación
Si su clave privada llega a ser conocida por otros, tendrá que desvincular las claves antiguas de su identidad, para que pueda generar otras nuevas. Para ello, necesitará un certificado de revocación. Haremos esto ahora y lo almacenaremos en un lugar seguro.
El --output
debe ir seguida del nombre de archivo del certificado que desea crear. El --gen-revoke
causas de la opción gpg
para generar 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 dave-geek@protonmail.com
Se le pedirá que confirme que desea generar un certificado. Prensa Y
y presiona Enter. Se le preguntará por la razón por la que está generando el certificado. Como estamos haciendo esto antes de tiempo, no lo sabemos con certeza. Prensa 1
como una suposición plausible y presiona Enter.
Puede introducir una descripción si lo desea. Pulse Intro dos veces para finalizar la descripción.
Se le pedirá que confirme su configuración, presione Y
y presiona Enter.
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 han utilizado durante mucho tiempo Bob y Alice como las dos personas comunicándose. Hay otros personajes secundarios. Eve es un 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 el nuestro del certificado.
chmod 600 ~/revocation.crt
Vamos a comprobar con ls
para ver cuáles son los permisos ahora:
ls -l
Eso es perfecto. Nadie, aparte del propietario del archivo, nosotros, puede hacer nada con el certificado.
Importación de la clave pública de otra persona
Para cifrar un mensaje de manera que solo el destinatario pueda descifrarlo, debemos tener la clave pública del destinatario.
Si se le ha proporcionado su clave en un archivo, puede importarla con el siguiente comando. En este ejemplo, el archivo de clave se denomina “mary-geek.key”.
gpg --import mary-geek.key
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ó.
También existe la posibilidad de que la persona de la que necesita una clave haya cargado su clave en un servidor de clave pública. Estos servidores almacenan las 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 clave pública MIT es un servidor de claves popular y uno que se sincroniza regularmente, por lo que la búsqueda allí debería ser exitosa. Si alguien ha subido una clave recientemente, puede tardar unos días en aparecer.
El --keyserver
debe ir seguida del nombre del servidor de claves que desea buscar. El --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 mary-geek@protonmail.com
Las coincidencias se enumeran para usted y se numeran. Para importar uno, escriba el número y presione Entrar. En este caso, hay una sola coincidencia, por lo que escribimos 1
y pulse Intro.
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 lo 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.
El --fingerprint
causas de la opción 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 llave.
A continuación, puede utilizar el --fingerprint
opción para generar la misma secuencia de huellas dactilares de caracteres hexadecimales y compararlos. Si coinciden, sabes que la clave pertenece a esa persona.
gpg --fingerprint mary-geek@protonmail.com
Se genera la huella digital.
Cuando esté satisfecho de que la clave es genuina y es propiedad de la persona con la que se supone que debe estar asociada, puede firmar su clave.
Si no hace esto, aún puede usarlo para cifrar y descifrar mensajes de y hacia esa persona. Pero gpg
le preguntará cada vez si desea continuar porque la clave no está firmada. Usaremos el nombre apropiado --sign-key
y proporcionar la dirección de correo electrónico de la persona, de modo que gpg
sabe qué clave 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. Prensa Y
y presione Entrar para firmar la clave.
Cómo compartir su clave pública
Para compartir su clave como un archivo, necesitamos exportarla desde el gpg
almacén de claves local. Para ello, utilizaremos el --export
, que debe ir seguida de la dirección de correo electrónico que utilizó para generar la clave. El --output
debe ir seguida del nombre del archivo en el que desea exportar la clave. El --armor
opción indica 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 clave pública. El --send-keys
envía la clave al servidor de claves. El --keyserver
debe ir seguida de la dirección web del servidor de clave pública. Para identificar qué clave enviar, la huella digital de la clave debe proporcionarse en la línea de comandos. Tenga en cuenta que no hay espacios entre los conjuntos de cuatro caracteres.
(Puede ver la huella digital de su clave utilizando 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 FIles
Estamose finalmente listo para cifrar un archivo y enviarlo a Mary. El archivo se llama Raven.txt.
El --encrypt
opción indica gpg
para cifrar el archivo, y el --sign
opción le indica que firme el archivo con sus datos. El --armor
le dice a gpg que cree un archivo ASCII. El -r
(destinatario) la opción debe ir seguida de la dirección de correo electrónico de la persona a la que 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” anexado al nombre del archivo. Echemos un vistazo a su 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 María.
Ahora podemos enviar el archivo a Mary confiados en que nadie más puede descifrarlo.
Descifrado de archivos
María ha enviado una respuesta. Está en un archivo cifrado llamado coded.asc. Podemos descifrarlo muy fácilmente usando el --decrypt
opción. Vamos a redirigir la salida a otro archivo llamado plain.txt.
Tenga en cuenta que no tenemos que decirlo gpg
de quién es el archivo. Puede resolverlo a partir del contenido cifrado del archivo.
gpg --decrypt coded.asc > plain.txt
Veamos el archivo simple.txt:
less plain.txt
El archivo ha sido descifrado con éxito para nosotros.
Actualización de las llaves
Periódicamente, puede preguntar gpg
para comprobar las claves que tiene con un servidor de claves públicas y para actualizar las que han cambiado. Puede hacer esto cada pocos meses o cuando reciba una clave de un nuevo contacto.
El --refresh-keys
causas de la opción gpg
para realizar la comprobación. El --keyserver
debe ir seguida del servidor de claves de su elección. 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
responde enumerando las claves que comprueba y haciéndole saber si alguna ha cambiado y se ha actualizado.
La privacidad es un tema candente
La privacidad nunca está lejos de las noticias 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 usar gpg
. Puedes obtener un plugin para Thunderbird llamado Enigmail. Se engancha directamente a su gpg
configuración para permitirle cifrar mensajes de correo electrónico desde dentro de Thunderbird.