Preservando la privacidad con GnuPG



Al preguntarse si el correo está libre de espias, es fácil pensar que el destinatario leerá el correo pero también es asumible pensar que el correo puede ser interceptado y modificado por extraños.

En "correo postal" tradicional, se cierra el sobre, se franque y se envía desde la oficina de correos desde donde va a su destino. Pero enviar correo vía Internet no es tan seguro; el correo electrónico se transmite como texto de servidor en en servidor. No se procede a proteger la correspondencia de ojos ávidos o comportamientos maliciosos.

Para proteger la privacidad, GNU/Linux incorpora GnuPG (Gnu Privacy Guard).

GnuPG  es una herramienta para comunicaciones seguras; es un sustituto completo y libre para la tecnología de encriptación PGP (Pretty Good Privacy), aplicación muy popular de encriptación). Con GnuPG, se puede encriptar datos y correspondencia, y autenticar el correo al firmarlo digitalmente. GnuPG también es capaz de desencriptar y verificar PGP 5.

Al ser GnuPG compatible con otros estándares de encriptación, la correspondencia segura será, probablemente, compatible con tecnologías de otras plataformas, como Windows y MacOS.

GnuPG utiliza criptrografía de clave pública para proporcionar intercambio seguro de datos. En un esqueme de clave pública, se generan dos claves: una clave pública y una clave privada. Se intercambia la pública con otros o un servidor de claves; nunca debe revelarse la clave privada.

En criptografía convencional o simétrica, en ámbos extremos se usa la misma clave, que se usa para decodificar. En criptografía de clave pública, coexisten dos claves: una pública y otra privada. Una persona u organización mantiene su clave privada en secreto, y publica la clave pública. Los datos codificados con la clave pública sólo pueden ser decodificados con la clave privada; los datos codificados con la clave privada sólo pueden ser decodificados con la clave pública.

Hay varios interfaces gráficos para GnuPG, como SeaHorse o GPA (Gnu Privacy Assistant). Sin embargo, muchas tareas de GnuPG se ejecutan rápidamente desde la shell.

Gerenando una pareja de claves

Para empezar a usar GnuPG, debe primero generarse una nueva pareja de claves, eso es, clave pública y privada.

Para generar una pareja de claves, ábrase un terminal y, en la shell, teclear:

gpg --gen-key


Se deberá escoger entre algunas opciones, como que tipo de clave se quiere crear y la longitud de la clave. Hay opciones por defecto disponibles, que se pueden escoger pulsando simplemente Enter. A menos que se tenga una razón para no hacerlo.

Introduzcase un ID, con el nombre, dirección de correo y un comentario, opcional. Luego, una fraseseña que, como la contraseña de las cuentas, debe ser única y asegurar que nadie podrá averiguarla. Esta puede ser una palabra única o una frase que se teclea al ser pedida y que identifica al dueño de la pareja de claves. Por supuesto, lo que se escoja, hay que asegurarse de que se recordará.

Tras crear la clave pública y la privada, estas estarán en el directorio .gnupg. Para ver las claves, tecléese gpg --list-keys. Se verá la nueva clave, con un aspecto como este:

[newuser@localhost newuser]$ gpg --list-keys

/home/newuser/.gnupg/pubring.gpg
----------------------------------------- pub 1024D/B7085C8A 2000-04-18 Your Name <you@yourisp.net>
sub 1024g/E12AF9C4 2000-04-18




Generando un certificado de revocación

La firma será válida para otros que leen el correo hasta que la clave sea revocada, y se podrá desencriptar mensajes recibidos antes de la revocación. Para generar el certificado de recovación, úsese la opción --gen-revoke .

[newuser@localhost newuser]$ gpg --output revoke.asc --gen-revoke  <you@yourisp.net>

Nótese que si se omite --output revoke.asc en el ejemplo, el certificado de revocación saldrá por la "salida estándar," que suele ser la pantalla. Aunque se puede copiar y pegar el contenido a un archivo utilizando un editor de texto, es seguro más fácil enviar la salida a un archivo del directorio de login. Así, se tiene el certificado a mano para su uso, o ponerlo en un disquette y guardarlo en algún lugar seguro.

La operación para crear un certificado es como sigue:

[newuser@localhost newuser]$ gpg --output revoke.asc --gen-revoke<you@yourisp.net>

sec 1024D/823D25A9 2000-04-26 Your Name <you@yourisp.net>

Create a revocation certificate for this key? y

You need a passphrase to unlock the secret key for
user: "Your Name <you@yourisp.net>"
1024-bit DSA key, ID 823D25A9, created 2000-04-26

ASCII armored output forced.
Revocation certificate created.


Exportar la clave pública

Antes de usar la criptografía de clave pública, los demás deben tener una copia de la clave pública. Para enviar la clave a otros, o a un servidor de contraseñas, hay que exportar la clave.

Para exportar la clave, de forma que se pueda ver en una página de web o enviar por correo, tecléese:
[newuser@localhost newuser]$ gpg --armor --export <you@yourisp.net> > mykey.asc


No se verá nada, porque no sólo se exportó la clave, se redireccionó a un archivo llamado, por ejemplo, mykey.asc (sin poner > mykey.asc , la clave habría sido mostrada en la salida estándar -- en la pantalla del monitor).

Ahora, el archivo mykey.asc puede ser puesto en el correo o exportado a un servidor de claves. Para ver la clave, tecléese less mykey.asc para ver el archivo. Debería parecer algo como lo siguiente:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBDkHP3URBACkWGsYh43pkXU9wj/X1G67K8/DSrl85r7dNtHNfLL/ewil10k2
q8saWJn26QZPsDVqdUJMOdHfJ6kQTAt9NzQbgcVrxLYNfgeBsvkHF/POtnYcZRgL
tZ6syBBWs8JB4xt5V09iJSGAMPUQE8Jpdn2aRXPApdoDw179LM8Rq6r+gwCg5ZZa
pGNlkgFu24WM5wC1zg4QTbMD/3MJCSxfL99Ek5HXcB3yhj+o0LmIrGAVBgoWdrRd
BIGjQQFhV1NSwC8YhN/4nGHWpaTxgEtnb4CI1wI/G3DK9olYMyRJinkGJ6XYfP3b
cCQmqATDF5ugIAmdditnw7deXqn/eavaMxRXJM/RQSgJJyVpbAO2OqKe6L6Inb5H
kjcZA/9obTm499dDMRQ/CNR92fA5pr0zriy/ziLUow+cqI59nt+bEb9nY1mfmUN6
SW0jCH+pIQH5lerV+EookyOyq3ocUdjeRYF/d2jl9xmeSyL2H3tDvnuE6vgqFU/N
sdvby4B2Iku7S/h06W6GPQAe+pzdyX9vS+Pnf8osu7W3j60WprQkUGF1bCBHYWxs
YWdoZXIgPHBhdWxnYWxsQHJlZGhhdC5jb20+iFYEExECABYFAjkHP3UECwoEAwMV
AwIDFgIBAheAAAoJEJECmvGCPSWpMjQAoNF2zvRgdR/8or9pBhu95zeSnkb7AKCm
/uXVS0a5KoN7J61/1vEwx11poLkBDQQ5Bz+MEAQA8ztcWRJjW8cHCgLaE402jyqQ
37gDT/n4VS66nU+YItzDFScVmgMuFRzhibLblfO9TpZzxEbSF3T6p9hLLnHCQ1bD
HRsKfh0eJYMMqB3+HyUpNeqCMEEd9AnWD9P4rQtO7Pes38sV0lX0OSvsTyMG9wEB
vSNZk+Rl+phA55r1s8cAAwUEAJjqazvk0bgFrw1OGO9m7fEeDlvPSV6HSA0fvz4w
c7ckfpuxg/URQNf3TJA00Acprk8Gg8J2CtebAyR/sP5IsrK5l1luGdk+l0M85FpT
/cen2OdJtToAF/6fGnIkeCeP1O5aWTbDgdAUHBRykpdWU3GJ7NS6923fVg5khQWg
uwrAiEYEGBECAAYFAjkHP4wACgkQkQKa8YI9JamliwCfXox/HjlorMKnQRJkeBcZ
iLyPH1QAoI33Ft/0HBqLtqdtP4vWYQRbibjW
=BMEc
-----END PGP PUBLIC KEY BLOCK-----


Exportar a un servidor de claves

Si se escribe con poca gente, se puede exportar la clave y enviarsela personalmente. Si son muchos, sin embargo, la distribución de la clave puede llevar tiempo. Es cuando los servidores de claves son útiles.

Un servidor de claves es un repositorio en Internet que almacena y distribuye claves públicas a quienes las piden. Hay muchos servidores disponibles, tratando de mantenerse sincronizados entre ellos; enviar la clave a un servidor es como enviarla a todos. Todo lo que tiene que hacer uno, es pedir la clave a un servidor, importar la clave a su anillo de claves, y ya está (un anillo de claves es un fichero en el que están todas las claves públicas).

Se puede enviar la clave pública desde la shell o desde un navegador, por supuesto, hay que estar conectado a Internet para enviar o recibir claves de/al servidor.

  • Desde la shell, tecléese: 
    gpg --keyserver search.keyserver.net --send-key you@yourisp.net


  • Desde el navegador, váyase al sitio de un servidor de claves (Keyserver.Net, por ejemplo) y selecciónese la opción de añadir clave pública.


Importar una clave pública

También hay que importar la clave de otros. Cuando se importa la clave pública de alguién, se puede desencriptar su correo y comprobar su firma digital con la del anillo de claves.

Tras obtener una clave, úsese el comando --import para adjuntarla al anillo de claves.

Para importar el archivo, teclear desde la shell:

[newuser@localhost newuser]$gpg --import newkey.txt
gpg: key F78FFE84: public key imported
gpg: Total number processed: 1
gpg: imported: 1

[newuser@localhost newuser]$


Para comprobar que todo ha salido bien, úsese --list-keys desde la shell, como en gpg --list-keys; debería verse la clave importada en el listado del anillo de claves.


Firmas digitales

Una firma digital, poner marca temporal a un documento; en esencia, eso implica que la hora a la que se firmó el documento se vuelve parte de la firma. Así que si alguien trata de modificar el documento, la comprobación de la firma fallará. Algunas aplicaciones de correo electrónico incorporan la capacidad de firmar documentos con GnuPG desde el interfaz de la aplicación.

Hay dos tipos útiles de firmas digitales, documentos de firma en claro y firma separada. Ambos tipos de firma incorporan la misma seguridad de autenticidad, sin requerir que el receptor desencripte el mensaje entero.

En un mensaje de firma en claro, la firma aparece como un bloque de texto en el contexto del mensaje; en uno de firma separada la firma es enviada en un archivo distinto al del mensaje (eso es, separada del mensaje).

Para saber más sobre el uso de GnuPG mira este documento.



No tenemos copyright, ni declaracion de privacidad, ni lo veras mejor con ningun otro navegador.

Last modified: Monday, 1 July 2013, 09:14 AM