Pretty Good Privacy (PGP): qué es, funciones, programa...
PGP (Pretty Good Privacy) es un criptosistema (sistema de cifrado) inventado por Philip Zimmermann, un analista de sistemas. Desde 1984 hasta 1991, Philip Zimmermann trabajó en un programa que permitiera ejecutar el algoritmo RSA en los PC (PGP).
Sin embargo, dado que estaba utilizando RSA sin la autorización de sus autores, su investigación le costó 3 años de juicios, cuyo resultado fue que, desde 1993, el programa se vendiera por unos US$150. PGP es extremadamente rápido y fiable, lo que lo hace casi imposible de criptoanalizar.
¿Cuál es el principio de PGP?
PGP es un sistema de criptografía híbrido que usa una combinación de funciones tomadas de la criptografía de clave pública y de la criptografía simétrica. Cuando un usuario cifra un texto con PGP, los datos primero se comprimen. Esta compresión de datos permite reducir el tiempo de transmisión a través del canal de comunicación, ahorra espacio en disco y, lo más importante, aumenta la seguridad criptográfica.
La mayoría de los criptoanalistas sacan provecho de los modelos encontrados en formato de sólo texto para descubrir el cifrado. La compresión reduce estos modelos de sólo texto y mejora considerablemente su resistencia a los criptoanalistas.
El cifrado se realiza, principalmente, en dos fases:
- PGP crea una clave secreta IDEA en forma aleatoria y cifra los datos con esta clave
- El PGP cifra la clave secreta IDEA y la envía usando la clave pública RSA del receptor.
El descifrado también se produce en dos fases:
- PGP descifra la clave secreta IDEA usando la clave privada RSA.
- PGP descifra los datos con la clave secreta IDEA obtenida previamente.
El método de cifrado combina la fácil utilización del cifrado de la clave pública con la velocidad del cifrado convencional. El cifrado convencional es aproximadamente 1000 veces más rápido que los algoritmos de cifrado de clave pública. El cifrado de clave pública resuelve el problema de la distribución de la clave. Combinados, estos dos métodos mejoran el rendimiento y administración de las claves sin poner el peligro la seguridad.
¿Cuáles son las funciones de PGP?
La PGP ofrece las siguientes funciones:
- Firmas digitales y verificación de la integridad de los mensajes: función que se basa en el uso simultáneo de la función hash (MD5) y del sistema RSA. La función MD5 condensa el mensaje y produce un resultado de 128 bits que después se cifra, gracias al algoritmo RSA, por la clave privada del emisor.
- Cifrado de archivos locales: función que utiliza el algoritmo IDEA.
- Generación de claves públicas o privadas: cada usuario cifra su mensaje mediante las claves privadas IDEA. La transferencia de las claves electrónicas IDEA utiliza el sistema RSA. Por lo tanto, PGP ofrece dispositivos para la generación de claves adaptados al sistema. El tamaño de las claves RSA se propone de acuerdo con varios niveles de seguridad: 512, 768, 1024 ó 1280 bits.
- Administración de claves: función responsable de la distribución de la clave pública del usuario a los remitentes que desean enviarle mensajes cifrados.
- Certificación de claves: esta función permite agregar un sello digital que garantice la autenticidad de las claves públicas. Es una característica original de PGP, que basa su confianza en una noción de proximidad social en vez de en una entidad de certificación central.
- Revocación, desactivación y registro de claves: función que permite producir certificados de revocación.
¿Cuál es el formato de los certificados PGP?
Un certificado PGP incluye la siguiente información, entre otras:
- El número de versión de PGP: identifica la versión PGP utilizada para crear la clave asociada con el certificado.
- La clave pública del dueño del certificado: la parte pública de su par de claves combinada con el algoritmo de la clave, sea RSA, DH (Diffie-Hellman) o DSA (Digital Signature Algorithm).
- Información del dueño del certificado: incluye información relacionada con la identidad del usuario, como su nombre, identificación de usuario, fotografía, etc.
- La firma digital del dueño del certificado: también llamada firma automática, ésta es la firma que se realiza con la clave privada correspondiente a la clave pública asociada con el certificado.
- El período de validez del certificado: las fechas de inicio y de vencimiento del certificado. Indica la fecha de vencimiento del certificado.
- El algoritmo de cifrado simétrico preferido para la clave: indica el algoritmo de cifrado que el dueño del certificado prefiere para aplicar al cifrado de la información. Los algoritmos posibles son CAST, IDEA y triple DES
El hecho de que un certificado pueda contener varias firmas es uno de los aspectos exclusivos del formato de los certificados PGP. Varias personas pueden firmar el par clave/identificación para certificar de forma segura que la clave pública pertenece al dueño especificado. Algunos certificados PGP se componen de una clave pública con varios nombres, cada uno de los cuales brinda una manera diferente de identificar al dueño de la clave (por ejemplo, el nombre de la cuenta de mensajería de la compañía del dueño, el seudónimo y la cuenta de mensajería personal del dueño, su fotografía, todo en un certificado). En un certificado, una persona debe afirmar que una clave pública y el nombre del dueño de la clave están asociados. Cualquiera puede validar los certificados PGP. Los certificados X.509 siempre tienen que ser validados por una entidad de certificación o una persona designada por la CA. Los certificados PGP también usan una estructura jerárquica con la ayuda de la CA para validar los certificados.
Hay algunas diferencias entre un certificado X.509 y un certificado PGP. Las más importantes se detallan a continuación: Para crear su propio certificado PGP, debe solicitar un certificado X.509 emitido por una entidad de certificación y obtenerlo;
- Los certificados X.509 usan sólo un nombre para el dueño de la clave;
- Los certificados X.509 usan sólo una firma digital para certificar la validez de la clave;
¿Qué son los modelos de confianza de PGP?
En general, la CA (Entidad de certificación) debe tener plena confianza para establecer la validez de los certificados y llevar a cabo el proceso manual de validación. Sin embargo, es difícil establecer una relación de confianza con personas que la CA no considera explícitamente fiables. En un entorno PGP, cualquier usuario puede actuar como entidad de certificación. Por lo tanto, puede validar otro certificado de clave pública de un usuario de PGP. Sin embargo, dicho certificado no se puede considerar válido por otro usuario a menos que un tercero reconozca a la persona que valida el certificado como un remitente fiable. Es decir, se respetará mi opinión que establece que las claves de otras personas son correctas, sólo si se me considera un remitente de confianza. De lo contrario, mi opinión acerca de la validez de las claves de los demás se pondrá en tela de juicio.
Supongamos, por ejemplo, que su conjunto de claves contiene la clave de Alicia. Usted la ha validado y, para mostrar su aprobación, la firma. Además, sabe que Alicia es bastante exigente cuando se trata de validar las claves de otros usuarios. En consecuencia, otorga a suma confianza a la clave de Alicia. Alicia, por lo tanto, se transforma en una entidad de certificación. Si ella firma la clave de otro usuario, esta clave aparece como válida en su conjunto de claves.
¿De qué se trata la revocación del certificado PGP?
Sólo el dueño del certificado (el dueño de la clave privada correspondiente) u otro usuario, asignado como entidad de revocación por el dueño del certificado, podrá revocar el certificado PGP. Nombrar una entidad de revocación es útil, ya que normalmente los usuarios PGP revocan los certificados porque se pierde la contraseña compleja de la clave privada correspondiente. Este procedimiento se puede llevar a cabo sólo si se puede acceder a la clave privada. Un certificado X.509 puede ser revocado sólo por su emisor.
Cuando se revoca un certificado, no hace falta notificar a sus potenciales usuarios. Para anunciar una revocación de los certificados PGP, el método usual consiste en colocar esta información en un servidor de certificados. De esta manera, se advierte a los usuarios que desean comunicarse con usted que no deben utilizar la clave pública.