Cuando empecé a indagar sobre los Bitcoins me di cuenta que no tenía muy claros algunos conceptos tan importantes para esta red como firmar o encriptar. Es cierto que sabía que todas las distribuciones hacían uso de estas técnicas para, por ejemplo, garantizar que los paquetes que instalamos y las actualizaciones que recibimos no han sido modificadas por un tercero, pero nunca me había parado a leer un poco sobre el tema.
En KDE disponemos de una interfaz gráfica muy intuitiva para GnuPG: KGpg. Con esta aplicaciones podremos generar pares de claves, compartir las claves públicas, encriptar y firmar archivos muy fácilmente. Pero antes vamos a entender bien como funciona esta encriptación asimétrica.
Quizás la forma más intuitiva que se nos ocurre para encriptar un archivo sea utilizar una misma clave para, mediante un determinado algoritmo, codificar y descodificar el documento. Suena sencillo, el problema es que tenemos que ser capaces de transmitir esta clave a todo el mundo que deseemos que pueda abrir el archivo, y este es precisamente el mayor inconveniente de esta criptografía, conocida como simétrica o de una clave. Si alguien intercepta esta clave, se compromete por completo la seguridad.
La criptografía asimétrica, de dos claves o de clave pública se inventa para solucionar este problema. Cada usuario dispone de dos claves, una que podrá compartir sin preocuparse, la clave pública o dirección; y otra que deberá proteger y que solo él conoce, la clave privada. Estas dos claves están relacionadas matemáticamente, pero obtener una a partir de la otra se considera inviable con los ordenadores actuales. Cuando se encripta con una clave, el archivo original solo se puede recuperar utilizando la otra de la misma pareja. Aquí nacen los dos conceptos que os citaba antes: firmar y encriptar. Si alguien “encripta” un documento con su clave privada, cualquiera con acceso a su clave pública (idealmente todo el mundo), podrá “desencriptar” el documento. Lo pongo entre comillas porque si todo el mundo puede acceder al mensaje que se transmite no hay en realidad ningún tipo de encriptación. Sin embargo, la gente tiene la certeza de que sólo una persona ha podido encriptar, o mejor dicho, firmar ese archivo. La encriptación propiamente dicha se consigue cuando alguien utiliza la clave pública de otra persona y le envía el documento. Solo él con su clave privada podrá ver el documento.
Ya con la teoría clara, pasemos a la práctica. La mayoría de las distribuciones con KDE ya traen KGpg instalado. Si no es así seguro que está en los repositorios oficiales y no tendrías más que instalarlo. Una vez abierto, lo primero que tenemos que hacer es generar un par de claves. Esto lo podemos hacer pulsando Ctrl + N o desde el menú: Claves — Generar pareja de claves.
Podemos escoger una caducidad para la pareja de claves, momento en el que dejarán de ser válidas y también el algoritmo criptográfico. Un tamaño de 1024 bits es considerado seguro pero si lo consideramos oportuno podemos generar claves de hasta 4096 bits. Una de las desventajas de la criptografía asimétrica frente a la simétrica es que el tamaño de las claves tiene que ser mayor para que sean seguras. Por último, nos pedirá una frase secreta que será la única que tengamos que recordar.
Toda pareja de claves tiene asociado un identificador y una huella digital de 20 bytes. El identificador es en realidad el final de la huella, sus últimos 4 bytes, como podéis ver en la captura anterior.
Podremos generar un certificado de revocación si lo deseamos con el que podremos anular la validez de la pareja de claves. Es algo muy recomendable, sobre todo si no hemos determinado una caducidad. En caso de que ahora no lo creemos, siempre podremos hacerlo en otro momento.
Ahora que ya tenemos nuestro par de claves ya solo nos queda compartir nuestra dirección y obtener las claves públicas de la gente con la que queremos comunicarnos. Desde KGpg esto es tan sencillo como hacer clic en Exportar clave pública y escoger si queremos guardarla en un archivo o en el portapapeles. Lo mismo para importar las claves públicas, solo tenemos que seleccionar Importar clave en la barra de herramientas.
Ya tenemos todo lo necesario para cifrar un archivo y enviarlo. Bueno, casi todo. En realidad, antes debemos firmar la clave pública que acabamos de importar para que sea una clave de confianza. Esto que podemos hacerlo, una vez más, desde la barrra de herramientas haciendo clic en Firmar clave, no es en realidad estrictamente necesario. Podemos ir a Preferencias — Cifrado y activar la casilla de Permitir cifrar con claves que no sean de confianza.
KGpg está integrado perfectamente en el escritorio KDE y para cifrar un archivo solo tendremos que hacer clic derecho y dentro del menú Acciones escoger la opción Cifrar archivo. Aparecerá un menú preguntándonos qué clave pública queremos utilizar. Debéis escoger la clave de la persona a la que vais a enviar el archivo, recordad que solo él con su clave privada podrá abrirlo. Desencriptar es aún más sencillo. Cuando recibamos un archivo encriptado con nuestra clave pública no tendremos mas que hacer clic en el archivo, escribir la frase secreta y listo.
KGpg tiene alguna utilidad más. Por ejemplo, dispone de un editor de texto integrado, que podemos abrir desde Archivo — Abrir editor, con el que podremos encriptar, firmar y desencriptar texto directamente. Además, su integración con KMail es de gran utilidad para los que suelen usar este cliente de correo.
En resumen, KGpg es una aplicación sencilla, muy útil y perfectamente integrada en el escritorio que, aunque si bien carece de algunas características (siempre podemos recurrir a gpg desde una terminal), cumple perfectamente su propósito: facilitar las comunicaciones seguras bajo el entorno de escritorio KDE.