Tomás Bradanovic
Asesorías y Proyectos

Conceptos Básicos Sobre el PGP

PGP (Pretty Good Privacy) es la clase de programas que a mi me gustan. El concepto es simple, simplemente genial, el código es público y cumple con su slogan de llevar "la privacidad a las masas". Hasta el nombre es afortunado, ni mas ni menos de lo que ofrece "privacidad bastante buena".

Uso básico del PGP
Cada usuario genera un par de claves; una pública y otra privada. La clave pública es simplemente un archivo que contiene un bloque de texto ASCII que puede ser enviado o distribuido por cualquier medio: correo electrónico, diskette, etc. La clave privada queda almacenada en su equipo y para efectos prácticos se ingresa a ella entrando un "parrafo secreto" que es una frase cualquiera que solo debe conocer el usuario poseedor de la clave.

En PGP 2.6i para generar estas claves simplemente se coloca pgp -kg y el programa generará el par de claves publica y privada para el usuario.

Aupongamos ahora que Juan y Pedro son dos usuarios, cada uno de ellos tienen su par de claves publicas y privadas, las claves publicas son conocidas y estan almacenadas en los computadores de ambos. Las claves privadas estan almacenadas en los computadores de los respectivos propietarios quienes las activan con su "parrafo secreto". A las claves se les identifica con un nombre cualquiera, por ejemplo en este caso a la clave de Juan le ponemos "clavedejuan" y a la de Pedro "clavedepedro"

Si Juan quiere mandar un mensaje cifrado a Pedro simplemente escribe el mensaje y lo graba en un archivo que se llama (por ejemplo) "mensaje.txt" , luego lo cifra usando la clave pública de Pedro, usando pgp -e mensaje.txt clavedepedro. Con esto se generarará un archivo encriptado llamado "mensaje.pgp"

Cuando Pedro lo recibe, para descifrarlo simplemente usa pgp mensaje.pgp -o mensaje.txt, el programa le pedirá que escriba su párrafo secreto y con eso se genera el archivo desencriptado llamado "mensaje.txt" (o cualquier otro nombre) que será igual al mensaje.txt que escribió Juan.

También Juan Podría querer encriptar y firmar el mensaje para que Pedro esté seguro que fue el efectivamente quien lo envió. Para esto usaria pgp -es mensaje.txt clavedepedro clavedejuan, con lo que el mensaje quedaría encriptado y firmado.

Y si Juan solamente quisiera firmar su mensaje (sin encriptarlo) bastaría que usara pgp -s clavedejuan, el mensaje pide a Juan que ingrese su párrafo secreto y queda así firmado.

Existe muchísima información sobre el PGP en la red ya que es el estándar de facto de la seguridad en comunicación de datos. Nada mejor que leer el FAQ (frecuently asked questions o preguntas frecuentes) escrito por el mismísimo Phil Zimmermann, el creador del PGP, haciendo click aquí se puede ingresar a éste documento

Para una visión de las últimas versiones del PGP 6.xxi para Windows, haz click aquí

 

Un resumen rápido de los comandos del PGP 2.xxi


Para encriptar un fichero normal con la clave pública del
destinatario:
pgp -e fnormal identificador_des [otros identificadores]


Para firmar un fichero normal con su clave secreta:
pgp -s fnormal [-u su_identificador]


Para firmar un fichero normal con su clave secreta y después
encriptarlo con la clave pública del destinatario:
pgp -es fnormal identificador_des [otros id.] [-u su_identificador]


Para encriptar un fichero normal sólo con criptografía convencional,
escriba:
pgp -c fnormal


Para desencriptar un fichero, o comprobar la integridad de la firma
en un fichero firmado:
pgp fcifrado [-o fnormal]


Para desencriptar un fichero con armadura ASCII en varias partes: grabe todas las partes por orden en un fichero con extensión .asc y escriba:

pgp farmadura [-o fnormal]


--- Funciones para la gestión de claves:

Para generar su propio par único de claves pública/secreta:
pgp -kg


Para añadir el contenido de un fichero de claves públicas o secretas
al anillo correspondiente:
pgp -ka fdclaves [anillo]


Para extraer (copiar) una clave del anillo de claves públicas o
secretas:
pgp -kx identificador fdclaves [anillo]
o: pgp -kxa identificador fdclaves [anillo]


Para visualizar el contenido del anillo de claves públicas:
pgp -kv[v] [identificador] [anillo]


Para ver la "huella dactilar" de una clave pública, y poder verificarla por
teléfono con su dueña:
pgp -kvc [identificador] [anillo]


Para visualizar el contenido y comprobar las firmas de certificación
en el anillo de claves públicas:
pgp -kc [identificador] [anillo]


Para modificar el identificador o la frase de contraseña de la clave
secreta:
pgp -ke identificador [anillo]


Para modificar los parámetros de confianza de una clave pública:
pgp -ke identificador [anillo]


Para suprimir una clave, o sólo un identificador, del anillo de
claves públicas:
pgp -kr identificador [anillo]


Para firmar la clave pública de alguien en el anillo de claves
públicas:
pgp -ks identificador_des [-u su_identificador] [anillo]


Para suprimir de un anillo ciertas firmas de un usuario:
pgp -krs identificador [anillo]


Para desactivar una clave pública, para que PGP no la utilice, o para
reactivarla:
pgp -kd identificador [anillo]


Para revocar permanentemente su propia clave, emitiendo un
certificado de compromiso de clave:
pgp -kd su_identificador


--- Ordenes esotéricas:

Para desencriptar un mensaje y dejar su firma intacta:
pgp -d fcifrado


Para crear un certificado de firma separado del documento:
pgp -sb ftexto [-u su_identificador]


Para separar un certificado de firma del mensaje firmado:
pgp -b fcifrado


--- Opciones que pueden utilizarse en combinación con otras (formando a veces curiosas palabras):

Para producir un fichero cifrado en formato ASCII radix-64, añada
simplemente la opción -a cuando encripte o firme un mensaje, o
cuando extraiga una clave:
pgp -sea ftexto identificador_des
o: pgp -kax identificador fdclave [anillo]


Para eliminar automáticamente el fichero normal después de crear el
fichero cifrado, añada simplemente la opción -w (wipe {limpiar})
cuando encripte o firme un mensaje:
pgp -wes mensaje.txt identificador_des


Para indicar que un fichero normal contiene texto ASCII, no binario,
y que debe ajustarse a los convenios de línea del destinatario, añada la
opción -t (texto) a las otras opciones:
pgp -seta mensaje.txt identificador_des


Para visualizar el texto desencriptado en la pantalla (como con la
orden "more" {más} de Unix), sin grabarlo en un fichero, utilice la
opción -m (more) al desencriptar:
pgp -m fcifrado


Para indicar que el texto desencriptado para el destinatario SOLO se
puede mostrar en la pantalla de este, sin grabarse en el disco,
añada la opción -m:
pgp -metas mensaje.txt identificador_des


Para recuperar el nombre original del fichero normal al
desencriptar, añada la opción -p:
pgp -p fcifrado


Para utilizar en modo filtro, como en Unix, leyendo de la entrada
estándar y escribiendo en la salida estándar, añada la opción -f:
pgp -festa identificador_des <fentrada >fsalida