VR19: Instalando PGP
Por Daniel Sentinelli
En números anteriores hemos visto las características que han convertido a PGP en un standard de facto cuando se trata de privacidad informática. Hoy vamos a ver como instalar y configurar PGP.
Que versión?
Existen versiones de PGP para DOS, OS/2, VMS, Amiga, Unix, etc. En primer lugar debemos conseguir la versión adecuada para nuestro sistema operativo. Por otra parte debido a complejos problemas legales y políticos que ya comentamos en números anteriores, existen en este momento dos versiones de PGP: una "oficial" que cuenta con la aprobación de todos los poseedores de patentes sobre el algoritmo RSA, pero que incluye limitaciones molestas o sospechosas; y otra versión "internacional no-oficial" de origen menos claro pero sin limitantes molestas.
Por razones obvias, es conveniente conseguir un paquete de distribución standard, y a través de una fuente que nos resulte confiable. Al momento de redacción de esta nota, la ultima versión de PGP es la 2.6, y por ej, los paquetes de distribución para DOS se llaman PGP26.ZIP (versión oficial) y PGP26UI.ZIP (versión "unofficial international").
Instalación
La Instalación es sumamente sencilla: basta con crear un directorio (por ej. C:\PGP) y extraer dentro de él los archivos que se encuentran el paquete de distribución. Hay un par de detalles que conviene ajustar antes de comenzar a trabajar con el programa.
Por un lado, conviene setear un par de variables de DOS en el AUTOEXEC.BAT en forma similar a este ejemplo:
SET TZ=BUE3
SET PGPPATH=C:\PGP
La variable TZ debe responder al formato 'aaan' donde las tres letras son solo descriptivas (BUE por Buenos Aires en el ejemplo) y el valor numérico indica el desplazamiento con respecto a la hora Universal o GMT. Como varios programas usan esta variable, muchos usuarios ya la tendrán correctamente definida. Con respecto a PGPPATH, indica el lugar donde se encuentran los archivos que contienen las claves públicas y privadas (pubring y secring en la jerga PGP), y que generalmente será el mismo directorio donde está instalado el programa.
El segundo detalle a tener en cuenta es el archivo CONFIG.TXT, que permite definir varias preferencias para agilizar el uso del programa, como idioma, nombre del usuario, y varios seteos técnicos.
Como sugerencia, recomiendo incluir "EncryptToSelf=On".
Como podran notar la Instalación es sumamente sencilla y rápida. Por eso mismo recomiendo dedicar algunos minutos a leer detenidamente la documentación del programa. Esta es extremadamente clara y responde por adelantado a la mayor parte de las preguntas que se plantean los usuarios.
Generando las claves
Antes de generar su par de claves, asegúrese de haber entendido claramente de que se trata todo esto. En principio, uno genera sus claves una sola vez y las usa para siempre. Tal como explicáramos en números anteriores, la clave privada se mantiene secreta y no se difunde jamás, mientras que la publica se distribuye lo mas posible. Si Ud. no entiende el uso del programa, y cada diez días genera nuevamente sus claves porque perdió su secring o tuvo algún problema similar, deberá pedirle a los demás usuarios de PGP que borren su clave publica anterior e incorporen la nueva. Este tipo de maniobra resulta engorrosa, la clave nueva tarda en distribuirse, y en general la gente comenzará a odiarlo y maldecir su username.
Si ya esta listo para empezar, todo lo que debe hacer es tipear:
PGP -kg
Lo primero que pregunta el programa es la longitud de la clave a generar. Cuanto mas grande es la clave, mayor es el grado de seguridad que brinda, pero también resultan mas lentas todas las operaciones que se realicen con esa clave. El programa sugiere los siguientes valores:
384 bits: grado casual, rápido pero menos seguro
512 bits: grado comercial, velocidad intermedia, buena seguridad
1024 bits: grado militar, muy lento, máxima seguridad
Antes de hacer su elección, evalúe sus necesidades de seguridad así como la velocidad de la maquina en que va a usarla, pero también considere el tiempo de vida que espera darle a su clave. Tenga en cuenta que lo que tarda 20 segundos en una 386 de hoy, puede resultar casi instantáneo en la Pentium o PowerPC que usara dentro de algunos años. También considere que la CIA, las empresas competidoras, o quien sea que pueda intentar violar su privacidad, puede llegar a contar en el futuro con supercomputadoras con las cuales atacar por fuerza bruta una clave corta.
A continuación, el programa pide el nombre del usuario (user ID) de la clave. El formato sugerido es:
nombre y apellido
Un detalle a tener en cuenta es que una clave puede tener asociados varios user IDs. Por ej, mi clave esta asociada a los user IDs
Daniel Sentinelli
Daniel Sentinelli <4:900/131@fidonet.org>
El siguiente paso es ingresar una passphrase, algo así como una password pero mas larga. Por favor, no confunda esta passphrase con su clave PGP. En realidad su clave PGP va a ser solo una serie de bits sin sentido aparente, que se genera una sola vez; en cambio la passphrase es una especie de "llave de seguridad" para esa clave PGP, y puede cambiarse todas las veces que desee. Siempre elija una frase mas o menos larga para hacer mas difícil que alguien pueda descubrirla mirándolo teclear, pero asegúrese que va a recordarla en el futuro porque si la olvida no podra acceder nunca mas a su clave PGP y deberá generar una nueva.
A continuación, y si es la primera vez que usa el programa, este le pedirá que tipee cualquier cosa en el teclado. PGP necesita 152 bytes aleatorios para iniciar su generador pseudo-random, y los obtiene a partir de las diferencias de tiempo entre las pulsaciones de las teclas. Sea irregular, y no ingrese patrones repetitivos como "asdfglkjh".
Luego de algún tiempo de procesamiento, PGP genera el par de claves. En el directorio de PGP aparecerán tres archivos nuevos: RANDSEED.BIN que alimenta el generador pseudo-random, SECRING.PGP que contiene la clave privada, y PUBRING.PGP que contiene la clave publica.
Si Ud. generara varias claves, por ej una personal, otra para el e-mail de su empresa, etc.; todas las claves privadas se almacenan en SECRING.PGP. Por ese motivo es muy importante que este archivo no escape nunca a su control y que nunca caiga en manos de otra persona. Por otra parte, en PUBRING.PGP ademas de su propia clave pública, se almacenaran todas las claves públicas de las personas con las que intercambie archivos encriptados.
Intercambio de claves
Ya estamos listos para empezar a usar PGP. Para eso vamos a suponer que nuestro amigo Fernando Saicha ha seguido pasos similares a los nuestros y también ha generado su clave PGP.
Lo primero que necesitamos hacer es intercambiar claves públicas. Para eso, en mi caso daría la orden
pgp -kx "Daniel Sentinelli" daniel.pgp
con lo que genero un archivo DANIEL.PGP que contiene mi clave pública lista para ser distribuida. A su vez, mi amigo hará lo mismo con su clave y producirá un archivo SAICHA.PGP
Una vez hecho el intercambio de claves, debo incorporar la que he recibido a mi pubring. Para esto la orden es:
pgp -ka saicha.pgp
y mi amigo hará lo propio con el archivo que yo le entregue. El programa nos preguntara si queremos certificar esa nueva clave. El tema escapa el alcance de esta nota, así que por ahora, sugiero responder NO hasta que sepa de que se trata.
Encriptando
Ahora si, ya estamos listos para intercambiar archivos encriptados.
Tomamos cualquier archivo, por ejemplo un texto llamado HOLA.TXT y aplicamos la orden:
pgp -e hola.txt "Fernando Saicha"
con lo que producimos el archivo HOLA.PGP, encriptado con la clave publica de Fernando Saicha y decriptable solo por el con su clave privada.
Decriptando
Vamos a suponer que nuestro amigo hizo lo mismo que nosotros, y nos envio el archivo QUETAL.PGP, encriptado con nuestra clave publica.
Para leerlo, aplico la orden
pgp quetal.pgp -o quetal.txt
El programa nos pedirá la passphrase que habilita el uso de nuestra clave privada, necesaria para decriptar el archivo. Si se ingresa correctamente, procesara el archivo almacenando el resultado en QUETAL.TXT.
Firmando con PGP
Tal como resaltamos en artículos anteriores una de las características mas importantes de PGP es la posibilidad de "firmar" un archivo encriptándolo con nuestra clave privada, permitiendo que quien lo decripte con nuestra clave publica pueda estar seguro que el archivo fue generado por nosotros. Para firmar un archivo la orden es, por ej:
pgp -s contrato.txt
lo que generamos el archivo CONTRATO.PGP. Ya que debe usar nuestra clave privada, el programa nos pide la passphrase que habilita el acceso a esta. Cuando otra persona recibe este archivo lo procesa igual que si fuera a decriptarlo, con la diferencia que PGP no pedirá una passphrase (ya que esta decriptando con nuestra clave privada), y que mostrara un mensaje indicando que el archivo esta correctamente firmado, incluyendo fecha y hora de la firma.
Lo que hemos visto son solo las posibilidades básicas de PGP, pero es suficiente para que todos los que lo deseen puedan comenzar a experimentar con él.
Daniel Sentinelli dirige la consultora DATAFRONTier especializada en comunicaciones, redes y seguridad informática; y es un ferviente entusiasta de PGP y su clave publica se encuentra disponible en varios "PGP pubkey servers" locales y mundiales. Puede ser contactado por e-mail en Internet en daniel@ubik.satlink.net, o en Fidonet en 4:900/131. Su PGP fingerprint es 14 fe 06 10 f2 7b b3 3b e0 cb 5e 53 a7 d3 5b a9.