PGP: SEGURIDAD EN E-MAIL
El PGP (Pretty Good Privacy ó Encriptación bastante
buena) es un sistema de encriptación por llave pública
escrito por Philip Zimmermann, y sirve para que nadie salvo uno
mismo y el destinatario o destinatarios a los que vaya dirigido
el mensaje puedan leerlo al ir los mensajes codificados, también
puede usarse para comprobar la autenticidad del mensaje asegurándonos
que lo ha escrito el remitente en realidad, realmente es muy bueno
y es prácticamente indescifrable, esto mismo le ha llevado
al autor del mismo Philip Zimmermann a tener bastantes quebraderos
de cabeza con la ley en Estados Unidos, afortunadamente su caso
ya se ha cerrado.
La intimidad del correo personal tanto postal como electrónico
esta amparada por la ley y la constitución de la mayoría
de los países.
CORREO CONFIDENCIAL UTILIZANDO PGP
PGP: PRETTY GOOD PRIVACY
PGP es un paquete completo de seguridad para correo electrónico.
Presta servicios de encriptación, autenticación, firmas
digitales y compresión de datos. Todo el paquete se distribuye
de forma gratuita, incluyendo el código fuente. Es posible
conseguir PGP en Internet para varias plataformas incluídas
Unix, Windows y MacOS.
Debido a las restricciones impuestas por el gobierno de los Estados
Unidos a la exportación de sistemas de encripción,
PGP ha sido el foco de diversas controversias. Además de
otros conflictos con relación a patentes del algoritmo RSA.
PGP utiliza algoritmos existentes de encripción, en vez
de crear unos propios. Estos algoritmos son: RSA, IDEA y MD5. También
PGP soporta compresión de texto, utilizando el algoritmo
ZIP.
Para enviar un mensaje encriptado y firmado, ambas partes deben
tener el software PGP e intercambiar sus llaves públicas.
El proceso es el siguiente:
Supongamos que Sutanito quiere enviar un mensaje firmado a Menganito
de forma segura (encriptado). Tanto Sutanito como Menganito tienen
llaves privadas (Dx) y llaves públicas (Ex). Es necesario
que ambas partes conozcan la llave pública del otro.
Sutanito empieza su programa PGP en su computador. PGP aplica un
algoritmo de hash al mensaje en texto plano (P), este algoritmo
es MD5. Se concatena P con el hash y se obtiene P1. El resultado
es comprimido con el conocido algoritmo Ziv Lempel, obteniéndose
P1.Z. Ahora Sutanito escoge una frase que será utilizada
por el programa PGP para generar una llave aleatoria, dependiendo
del texto escrito y la velocidad de escritura, se Obtiene Km, esta
llave se utiliza para encriptar P1.Z con el algoritmo IDEA, Km a
su vez es encriptada con la llave pública RSA de Menganito.
Se concatena la llave Km encriptada con el resultado del algoritmo
IDEA y finalmente se convierte a Base 24. El mensaje a transmitir
por la red solo contiene caracteres alfabéticos, dígitos
y los caracteres +, / e =.
Cuando Menganito recibe el mensaje, revierte la codificación
Base 24 y desencripta la llave IDEA (Km) utilizando su llave RSA
privada. Utilizando Km llega a P1.Z. Luego de decomprimirlo, separa
el texto plano del hash encriptado, desencripta el hash con la llave
pública de Sutanito, Menganito aplica el algoritmo de MD5
al texto plano y lo compara con el hash que obtuvo al utilizar la
llave pública de Sutanito, si son iguales, se puede estar
completamente seguro de que el mensaje no fue alterado y que quien
lo envió fue efectivamente Sutanito.
RSA es un algoritmo lento, pero solamente es utilizado en dos pasos:
para encriptar el hash MD5 y para encriptar la llave IDEA. La encripción
más pesada es llevada a cabo por IDEA que es más rápido
que RSA.
La parte de la firma contiene un encabezado. Al encabezado le sigue
una estampilla de tiempo, el identificador para la llave pública
del que envía que puede ser utilizado para desencriptar el
hash, alguna información que identifica los algoritmos utilizados
(tipos) y el hash mismo.
La parte del mensaje también contiene un encabezado, el
nombre del archivo por defecto en caso que el receptor quiera grabarlo
en el disco, la hora de creación del mensaje y finalmente
el mensaje mismo.
El manejo de llaves en PGP se hace mediante llaveros. Un usuario
puede tener varios pares de llaves para él, para permitir
cambiarlas en caso de que sospeche que una llave ya no es segura,
pero permitiendo que los mensajes enviados recientemente puedan
ser reconocidos. Estas llaves están en el llavero de llaves
privadas, que está protegido mediante una frase clave, en
caso de que sea robado.
Un usuario tiene un llavero de llaves públicas, donde almacena
las llaves públicas de sus amigos y de aquellos con quien
intercambiar correspondencia.
Se usa también para enviar ficheros a través de correo
electrónico codificados en formato ascii y mucho mejor que
otros sistemas como el uuencode ya que el PGP usa antes de codificar
una compresión zip, como se indicó anteriomente, al
documento o programa que va a codificar.
Volver a Seguridad
Miguel A. Ruz
miguelruz@delitosinformaticos.com
|