Seminario de Criptografía 10P

Seguridad Informática Pretty Good Privacy PGP


Presentaciones


PGP (Pretty Good Privacy)

Horacio Tapia Recillas
Departamento de Matemáticas / UAM-Iztapalapa
Este sistema, desarrollado principalmente por Phil Zimmermann, integra varios conceptos, técnicas y resultados relacionados con criptografía, el cual proporciona autenticación y confidencialidad, y es ampliamente usado en correo electrónico y almacenamiento de información.
pgp.pdf

Introducción a la Criptografía de Clave Pública con PGP

Josué David Torres Covarrubias
Departamento de Matemáticas / UAM-Iztapalapa
Se motiva el estudio de los sistemas de cifrado de clave pública (asimétricos) presentando el sistema de seguridad personal PGP. Se dan algunas referencias a los creadores de la criptografía moderna y la criptografía asimétrica que dan lugar a lo que hoy se conoce como Infraestructura de Llave Pública (Public Key Infrastructure) que hoy en día nos brinda una gran variedad de aplicaciones y beneficios.
pgp.pdf

Instalación y Configuración de Herramientas


Como motivación al tema del seminario, intercambiaremos mensajes firmados digitalmente usando GNU Privacy Guard GPG en las siguientes modalidades: con la línea de comandos y con el complemento Enigmail de Mozilla Thunderbird. A continuación te damos una pequeña descripción de lo que debes hacer en tu computadora para usar estas herramientas.

Configurando tu Cuenta de Correo

En primer lugar debemos configurar una cuenta de correo electrónico para que podamos mandar y recibir correo electrónico. Ésta puede ser de un servidor público o de un servidor local (como lo es el de la Universidad Autónoma Metropolitana). Aquí te mostramos a manera de ejemplo la configuración de una cuenta de gmail que nos ha dado muy buenos resultados.

i. Una vez que abras tu cuenta de gmail, en la parte superior derecha observarás un link de Configuración (Settings si tu cuenta está configurada en Inglés) en el que daremos click

ii. En la pestaña correspondiente a la configuración General, en la sección Conexión del navegador seleccionaremos la opción Usar siempre https. Esta opción nos ayuda a proteger la comunicación que establecemos entre el servidor y nuestra computadora cifrando todo el contenido de la página y no sólo la ventana de captura del password como sucede con otros servidores de correo electrónico.

iii. En la ventana de Configuración daremos click en la pestaña Reenvío y correo POP/IMAP y veremos una ventana como la mostrada en la figura inferior. Ahí seleccionaremos:

  1. Habilitar POP para los mensajes que se reciban a partir de ahora
  2. conservar la copia de Gmail en Recibidos, y
  3. marcar la copia de Gmail como leída
y guardamos los cambios.

Instalando GPG para plataformas Windows

GNU Privacy Guard (GPG) es un Software Libre que puede usarse fácilmente a través de la linea de comandos y tiene un buen nivel de intergración con otras aplicaciones. Puede modificarse y distribuirse bajo los terminos de la Licencia GPL.

Es una de las implementaciones más completas del estándar OpenPGP definido en RFC4880, nos permite cifrar y firmar digitalmente nuestro correos electrónicos independientemente del servidor y la plataforma (sistema operativo) que estemos utiilzando. Contiene muchas prestaciones que nos ayudan a manejar adecuadamente las llaves así como el acceso a los mósulos que contienen los directorios de llaves públicas.

i. Descarga el archivo ejecutable gnupg-w32cli-1.4.10b.exe de este link o directamente de la página de GPG. Una vez que lo tengas en tu computadora ejecutalo en tu equipo de cómputo y verás una ventana como ésta.

GPG sólo tiene soporte de instalación para los idiomas: Inglés o Alemán, por lo que te recomendamos que hagas la selección del primero y después hagas click en OK.

ii. Hecho esto sólo tienes que dar click en Next

iii. Acepta la Licencia GPL (que te recomendamos amlpiamente que revises a consciencia y la compares con las Licencias de software propietario que existen) y da click en Next.

iv. Acepta la instalación por defecto y da click en Next.

v. Si prefieres puedes instalar PGP en Inglés o si lo prefieres hazlo para Español seleccionandolo en 1 y luego damos click en Next.

vi. Nuevamente aceptamos el Directorio por defecto y damos click en Next.

vii. Aceptamos el nombre del programa por defecto (con el que Windows lo reconocerá) y click en Next.

viii. Esperamos unos minutos a que termine la instalación de los módulos y presionamos click en Next.

ix. Terminamos y verificamos las notas de la versión. Ésta es una buena práctica pues si hay problemas de compatibilidad con otras versiones o programas estarán referenciados ahí, así como sus posibles soluciones.

Siguiendo los pasos anteriores podremos usar la plataforma de GPG para

Instalando Mozilla Thunderbird

Mozilla Thunderbird es un popular cliente de correo electrónico muy versátil y con una gran variedad de complementos que nos ayudan a administrar nuestras bandejas de correo tanto en servidores públicos como privadossiempre y cuendo tengan soporte POP ó IMAP.

i. Descargamos el archivo Thunderbird Setup 3.0.4.exe dándo click en el link o descargándolo directamente de la página principal. Una vez que ejecutemos el archivo veremos en la pantalla una ventana como ésta en la que daremos click en Siguiente.

ii. Realizaremos la instalación por defecto (en 1) y continuamos con click en Siguiente.

iii. Aceptamos la configuración por defecto y continuamos dando click en Siguiente.

iv. Terminamos la instalación y damos ejecutamos Mozilla Thunderbird. La primera vez que inicie mostrará una Ventana de Configuración a la que deberemos dar Cancelar.

Instalando el complemento Enigmail

Una vez instalado Thunderbird deberás instalar el plug-in Enigmail desde el menú de complementos como mostramos a comtinuación.

i. Una vez en la ventana principal de Thunderbird.

  1. En la barra de menú damos click en Herramientas
  2. Damos click en Complementos

ii. Se abrirá una ventana como ésta

  1. En la barra búsqueda escribiremos Enigmail y presionamos enter
  2. Damos click en Añadir a Thunderbird

iii. Damos click en Instalar ahora

iv. Esperamos un poco y al terminar la descarga Thunderbird nos solicitará Reiniciar

Al reiniciar Thunderbird nos solicitará nuevamente configurar una cuenta de correo para trabajar. En éste punto es necesario que ya se haya configurado la cuenta de correo.

Configurando Mozilla Thunderbird

i. La ventana de configuración de la cuenta de correo que arranca con Thunderbird es la que se muestra aquí

ii. Hay que proporcionarle información de nuestra cuienta de correo electrónico

  1. Nuestro nombre, este datos es importante si estamos trabajando con una cuenta de correo electrónico con la que trabajamos formalmente, pues proporciona el nombre que irá anexado a cada uno de nuestros correos.
  2. Por supuesto, la dirección de correo electrónico
  3. La contraseña, Evita guardar las contraseñas en tu equipo, si alguien accede ilícitamente a el, puede obtener esta información personal y hacer mal uso de ella. Observa que hemos quitado la opción Recordar contraseña.
  4. Damos click en Continuar.

iii. Después de unos momentos en que Thunderbird establecerá conexión con el servidor de correo de nuestra preferencia aparecerá una ventana como la que se muestra a la derecha en la que sólo tendremos que clickear en Crear Cuenta

iv. Aquí basta la configuración por defecto, después de dar click en Aceptar el correo electrónico comenzará a descragarse en nuestra computadora. Se cuidadoso en la forma en que lo admministras para no perder información valiosa.

Configurando Enigmail

Una vez que se haya puesto al día nuestro cliente de correo, es posible configurarlo para administrar nuestro par llaves con la que podremos firmar, cifrar y descifrar mensajes. Así que, sigue estos sencillos pasos para lograrlo.

i. En la barra de Menú de Thunderbird aparecerá un nuevo menú con el nombre OpenPGP. Éste se configura automáticamente ya que anteriormente instalamos en GPG. Seleccionamos Administración de llaves.

ii. Es posible que nos salga una ventana de error semejante a esta, ignorala y cierrala.

iii. Aparecerá entonces la ventana de Administración de llaves de OpenPGP que mostramos aquí en la cual deberás.

  1. En la barra de Menú dar click en Generar
  2. y luego en Nuevo par de llaves

iv.

  1. Verificar la información de tu cuenta de correo electrónico
  2. Definir una contraseña para la administración de tu llave privada, de éste modo, aunque un intruso tenga acceso a tu máquina no podrá hacer uso de tu llave de forma ilícita.
  3. Cambia el tiempo de expiración de tus llaves, hazlo al menos una vez al año. En el ejemplo, las llaves expirarán en seis meses.
  4. Para terminar damos click en Generar clave

Hecho esto, nuestro cliente de correo esta configurado para firmar y cifrar correos electrónicos.

Referencias

An Introduction to Cryptography

Phil Zimmermann
PGP Corporation

La corporación PGP distribuyó libremente este cuadernillo junto con la versión 8.0 de PGP. En el Capítulo 1 se explica como funciona la Infraestructura de Clave Pública y un poco de la terminología que hay detrás de la criptografía de Clave Pública y cómo la usa PGP para lograr el Secreto y la Confidencialidad en su software.

Por otra parte, en el Capítulo 2, Phil Zimmermann nos da algunas recomendaciones cobre el uso de ésta herramienta. Recordemos que muchas de estas herramientas fallan por el mal uso que se llega a hacer de ellas.

IntroToCrypto.pdf

The Elliptic Curve Digital Signature Algorithm (ECDSA)

Don Johnson, and Alfred Menezes and Scott Vanstone
Certicom Research, Canada; Dept. of Combinatorics & Optimization, University of Waterloo, Canada
El Algoritmo de Firma Digital con Curva Eliptica ( Elliptic Curve Digital Signature Algorithm ECDSA ) es análogo al Algoritmo de Firma Digital ( Digital Signature Algorithm DSA ). Fue aceptado en 1999 como un estándar ANSI, y por la IEEE y el NIST en el año 2000. También fue aceptado en 1998 como un estándar ISO y bajo esta consideración se incluye en algunos estándares ISO. A diferencia del Problema del Logaritmo Discreto ordinario y el Problema de la Factorización de Enteros, no se conoce algoritmo alguno de tiempo subexponencial para el Problema del Logaritmo Discreto en Curva Eliptica. Por esta raz&oactute;n la fortaleza por bit es sustancialmente mayor en los algoritmos que usan curvas elipticas. Este documento describe el ANSI X9.62 ECDSA, y discute la seguridad relacionada, implementación y las cuestiones de interoperabilidad.
ecdsa.pdf

DIGITAL SIGNATURE STANDARD (DSS)

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
27 de Enero, 2000
Este estándar especifica un juego de algoritmos que pueden ser utilizados para generar una firma digital. Las firmas digitales son utilizadas para detectar modificaciones no autorizadas a los datos y para autenticar la identidad del remitente. Además, el receptor de los datos firmados puede usar una firma digital para demostrar a un tercero que la firma ha sido producida por el remitente. Esto se conoce como No Repudio ya que el remitente no puede, en un momento determinado, repudiar su firma.
fips186-2.pdf

DIGITAL SIGNATURE STANDARD (DSS)

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Junio, 2009
Este estándar especifica un juego de algoritmos que pueden ser utilizados para generar una firma digital. Las firmas digitales son utilizadas para detectar modificaciones no autorizadas a los datos y para autenticar la identidad del remitente. Además, el receptor de los datos firmados puede usar una firma digital para demostrar a un tercero que la firma ha sido producida por el remitente. Esto se conoce como No Repudio ya que el remitente no puede, en un momento determinado, repudiar su firma.
fips186-3.pdf

Guidelines for Security of Computer Applications

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Junio 30, 1980

Las decisiones de seguridad forman parte de la planeación integral, desarrollo y operación de computadoras y sus aplicaciones. Esta guía describe las decisiones técnicas y directivas que pueden hacerse para adecuar los controles icluidos en las aplicaciones computacionales nuevas y existentes para protegerlas de daños físicos y humanos para garantizar que las funciones criticas se realizarán correctamente y con efectos colaterales no dañinos.

Se decribe la naturaleza multifacética de la seguridad de computadoras así como la diferencia entre objetivos de seguridad, niveles de sensibilidad y las vulnerabilidades que serán consideradas e identificadas. Fundamentalmente se discuten los controles de seguridad tales como: validación de datos, identificación y verificación de usuarios, autorización, revistas, detección de varianza, y cifrado así como las decisiones relacionadas con la seguridad que deben hacerse en cada etapa del ciclo de vida de una aplicación de computadoras.

fips73.pdf

SECURITY REQUIREMENTS FOR CRYPTOGRAPHIC MODULES

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Junio 11, 1994

Esta publicación proporciona un estándar que puede ser utilizado por organizaciones Federales cuando requieran protección de datos sensibles o valisos por medio de herramientas de seguridad basadas en Criptogafía. La protección de un módulo criptográfico junto al sistema de seguridad necesario para mantener la confidencialidad y la integridad de la información protegida por le módulo.

Este estandar especifica los requerimientos de seguridad que debe satisfacer el módulo criptográfico. El estándar se proporciona cuatro niveles de seguridad que incrementan la calidad y pretenden cubrir un amplio rango de entornos y aplicaciones comerciales. Los requerimientos de seguridad cubren áreas relacionadas al diseño seguro e implementación de módulos criptográficos. Se incluyen especificación de módulos criptográficos; interfaces y puertos de módulos criptográficos; roles, servicios y autenticación; modelo de estados finitos; seguridad física; entornos de operación; manejo de llaves criptográficas; interferencia electromagnética/compatibilidad electromagnética (EMI/EMC); pruebas de seguridad; diseño seguro; y mitigación de otros ataques.

fips140-2.pdf

KEY MANAGEMENT USING ANSI X9.17

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Abril 27, 1992

Este estandar especifica una selección particular de opciones para la distribución automatizada de llaves para el Gobierno Federal (de los Estados Unidos de Norteamerica) cuando usa la familia de protocolos ANSI x9.17. ANSI x9.17 define procedimientos para el manejo de llaves (a mano y automáticamente) y contiene algunas opciones. Los sitemas que son construidos de acuerdo a todas las opciones del ANSI x9.17 es probable que sean complejos y costosos. Las opciones especificadas en este estandar permitirán el desarrollo sistemas de costo accesible los cuales, en suma, incrementaran la posibilidad de interoperabilidad.

FIPS PUB 171.pdf

SECURE HASH STANDARD

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Agosto 1, 2002

Este estandar especifica cuatro algoritmos de hash seguro

  1. SHA-1
  2. SHA-256
  3. SHA-384
  4. SHA-512
para calcular una representación condensada de datos electrónicos (mensaje). Cuando un mensaje de cualquier longitud menor que 264 (SHA-1 y SHA-256) o menor que 2128 bits (SHA-384 y SHA-512) es la entrada del algoritmo, el resultado es una digestion del mensaje. La digestion del mensaje tiene nua longitud de 160 a 512 bits, dependiendo del algoritmo. Los algoritmos de Hash Seguro se usan comunmente con otros algoritmos criptográficos como lo son los algoritmos de firma digital, códigos de autenticación de mensajes basados en Hash, o en la geenración de números pseudoaleatorios.

Los cuatros algoritmos de hash especificados en éste estándar se llaman seguros porque, para un algoritmo dado, no es computacionalmente factible

  1. encontrar un mensaje que corresponda a una digestión de mensaje dada
  2. encontrar dos mensajes que produscan la misma digestión de mensaje
esto nos permitirá verificar fallas cuando un algoritmo de hash seguro se usa con un algoritmo de firma digital o en un algoritmo de autenticación de mensajes basado en hash.

Este estandar reemplaza el FIPS 180-1, agregando tres algoritmos que son capaces de producir digestión de mensajes grandes. El algoritmo SHA-1 especificado aquí es el mismo que ha sido definido en el FIPS 180-1, aunque algo de la notación ha sido modificada para ser consistente cno la notación usada en los algoritmos SHA-256, SHA-384 y SHA-512.

fips180-2withchangenotice.pdf
Dudas y sugerencias:
lcc@xanum.uam.mx
josue.tc@gmail.com