Si nos ha seguido hasta ahora, recordará que el sistema PGP consta de dos claves, una pública y una privada. El siguiente paso consiste en crear su propio par de claves. Comencemos con la versión 2.6.3
Para ello, vaya al sistema operativo, sitúese en el directorio PGP, teclee
PGP -kg
y siga las instrucciones. El programa pregunta:
a) Tamaño de la clave. Se recomienda 1.024 o 2.048 bits, si bien puede elegir el tamaño que prefiera. Como regla de andar por casa considere lo siguiente: el ordenador más rápido del mundo en la actualidad necesitaría una semana para romper una clave de 512 bits, 150 años para romper una de 768 bits y unos 200.000 años para violentar una clave de 1024 bits (no está mal para un programa criptográfico que cabe en un disquete). Máquinas con hardware especialmente diseñado para romper claves pueden tardar bastante menos, pero aún así nos movemos en las escalas de muchos años .. eso suponiendo que alguien quiera gastarse trescientos millones de dólares para leer sus mensajes.
b) Identificación del usuario. Se suele usar el nombre seguido de la dirección electrónica, p. ej. "Juan Jiménez < jjimenez@virtual.serv.es >" (Aunque puede vd. identificarse como prefiera, la combinación Nombre+email suele ser la más utilizada).
c) Contraseña. Se trata de una frase clave que vd. deberá entrar cada vez que quiera cambiar las características de su clave secreta o, simplemente, usarla. No necesita ser una sola palabra, sino una frase fácil de recordar, como "Curro se va al Caribe" (recuerde que hay diferencia entre mayúsculas y minúsculas). Esta contraseña no debe ser divulgada NUNCA y bajo ninguna circunstancia.
d) Random bytes. Se le pedirá que teclee durante unos segundos. El propósito de ello es el de dotar al generador de claves con una ristra de bits elegidos al azar; en este caso, los bits proviene de los intervalos entre la pulsación de una tecla y la siguiente. Por ello, teclee múltiples teclas a diversas velocidades.
Hecho esto, el programa creará dos ficheros: PUBRING.PGP (donde se guardará su clave pública, junto con otras claves de otros usuarios que vaya vd. recogiendo en el futuro) y SECRING.PGP (que contiene su clave secreta). Es extremadamente importante que mantenga SECRING.PGP bajo siete llaves. Cuando vd. quiera distribuir su clave pública para que le envíen mensajes cifrados, solamente ha de teclear
PGP -kxa e-mail archivo.txt (donde "e-mail" es su dirección de correo electrónico y archivo.txt es el nombre del archivo que contiene su clave pública)
Con las versiones para otros sistemas operativos, el proceso es más sencillo. Solamente ha de ejecutar PGPkeys y activar la opción keys/new key (claves/nueva). El programa le dará las instrucciones a seguir. Los ficheros que contienen las claves se llaman en este caso PUBRING.PKR y SECRING.SKR.
Un último detalle: en ambos casos debe firmar inmediatamente su propia clave pública. De otro modo, un usuario sin escrúpulos puede alterarla para hacerla pasar por propia. Use el comando -ks si usa la versión 2.6.3i; la 5.5.3i y posteriores firma automáticamente las claves creadas.
Si quiere utilizar el programa PGP, necesitará conocer todos sus comandos. Puede obtenerlos tecleando " PGP -h". Sin embargo, activar (!y conocer!) los diversos comandos es una labor frustrante e ingrata, con el engorro añadido de tener que salir constantemente al sistema operativo DOS.
Es por esto que, en vez de tal cosa, se suele operar con PGP por intermedio de un programa de interfaz ("shell") desde Windows, que convierte los códigos de uso en simples botones dentro de un programa Windows. Existen muchos de estos programas en circulación. ¿Cuál utilizar? Deseo aquí darle alguna indicación al respecto.
Los shells que aquí presento no son necesariamente los mejores o los más eficaces, sino que han sido seleccionados de entre muchos (y no los conocemos todos, claro). Tenga asimismo presente la situación legal de estos programas. Aunque son de libre distribución, algunos requieren un registro y el pago de derechos a los autores. Por favor, infórmese en cada caso; por lo general, el propio programa trae información al respecto
Algunos de los shells (también llamados front-ends) más utilizados puede vd. encontrarlos en las siguientes direcciones:
Uno de los problemas más importantes acerca del esquema de criptografía de clave pública (cualquiera que sea la versión utilizada) es la autentificación, esto es, ¿cómo saber si la clave pública realmente pertenece a quien afirma?
Aclaremos este punto con un ejemplo. Alicia quiere enviar un mensaje a Benito. Para ello, recibe la clave pública de Benito y con ella cifra un mensaje para enviárselo. Desafortunadamente, otro usuario (llamémosle Carlos) ha generado un par de claves pública-privada y ha ubicado su propia clave pública afirmando que es la de Benito. Alicia, sin saberlo, cifra el mensaje; pero, puesto que la clave realmente pertenece a Carlos, es éste quien podrá descifrar el mensaje más tarde. Es como si Carlos crease un buzón de correos rotulado "Benito" pero que realmente no pertenece a Benito.
¿Cómo se puede evitar esta usurpación de personalidad? Debemos asegurarmos de que la clave de Benito no ha sido manipulada o creada por otro. Para ello, no debemos fiarnos de claves públicas transmitidas por un tercero u obtenidas en lugares dudosos (por ejemplo, un BBS, o Servicio Electrónico de Tableros). La mejor forma es pedírsela al propio Benito, bien personalmente, bien accediendo a direcciones electrónicas (http, ftp, correo-e) que sepamos pertenecen a Benito y se encuentran bajo su control; también podemos ponernos en contacto con él para que pueda verificar que la clave que poseemos realmente es suya.
Puesto que no siempre es ésto posible, también existe la posibilidad de aceptar una clave si viene avalada por una persona de nuestra confianza. Esto se puede lograr mediante la firma de claves. Cualquier clave pública puede ser "firmada" digitalmente por terceros, los cuales dan fe de la autenticidad de esa clave. Si, por ejemplo, usted tiene confianza en Diego, una clave pública firmada por él será para vd. garantía de la veracidad de la clave pública por usted conseguida. Lo mismo sucede al revés: si su clave pública ha sido firmada por otros usuarios, cualquier persona que confíe en ellos aceptará su clave.
El proceso se puede jerarquizar, de tal modo que existen Autoridades de Certificación (AC) centrales para claves PGP; así, podríamos fiarnos de una AC gubernamental del mismo modo que confiamos en un documento emitido por el Estado (DNI, pasaporte, libro de familia,...). Alternativamente, una AC puede actuar como un servidor de claves: una especie de listín telefónico, donde se guardan claves públicas de muchas personas. Puede así obtenerse la clave pública de una persona, o bien comprobar que una clave obtenida por otros medios es auténtica (análogamente a como obtenemos y verificamos números de teléfono en las páginas amarillas).
En la actualidad, la tendencia es a que las AC sean empresas privadas (por ejemplo, VeriSign, Thawte o la española IPS), en tanto que los servidores de claves son entidades no lucrativas. Como ejemplo, he aquí el Servidor de claves de RedIris
En cualquier caso, PGP le proporcionará cifrado seguro si sigue normas de seguridad sencillas y básicas:
1) Utilice solamente claves públicas de confianza; no se fíe de claves transmitidas por terceros, por conductos inseguros o que no son verificables. Juzgue la validez de una clave en función de las firmas que la avalan. Y viceversa: procure que las personas que vayan a enviarles mensaje cifrados tengan acceso a su clave pública, y que ésta este adecuadamente avalada por terceros de confianza.
2) Mantenga el control físico sobre su anillo de claves públicas (PUBRING). El objetivo es protegerlo contra manipulación, no contra exposición. Guarde cuidadosamente el fichero de clave secreta (SECRING) contra cualquier tipo de uso por parte de terceros. Y conserve una copia de seguridad de ambos ficheros (PUBRING y SECRING)
3) NUNCA firme una clave pública de otra persona a no ser que esté realmente seguro sobre la identidad del propietario.
4) Tampoco firme documentos que le presenten al azar; no sólo pondría vd. su credibilidad en juego, sino que un fisgón podría utilizar esa información para intentar violentar su clave.
Con estas sencillas precauciones (sentido común, al fin y al cabo), su herramienta de cifrado será totalmente segura.
© Arturo Quirantes 2000 aquiran arroba ugr.es