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
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
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.
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:
|
|
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
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. |
![]() |
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.
|
![]() |
ii. Se abrirá una ventana como ésta
|
![]() |
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.
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
|
![]() |
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. |
![]() |
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.
|
![]() |
iv.
|
![]() |
IntroToCrypto.pdfLa 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.
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
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
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
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, 1994fips140-2.pdfEsta 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.
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
FIPS PUB 171.pdfEste 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.
SECURE HASH STANDARD
FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION / U.S. DEPARTMENT OF COMMERCE
National Institute of Standards and Technology
Agosto 1, 2002
fips180-2withchangenotice.pdfEste estandar especifica cuatro algoritmos de hash seguro
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.
- SHA-1
- SHA-256
- SHA-384
- SHA-512
Los cuatros algoritmos de hash especificados en éste estándar se llaman seguros porque, para un algoritmo dado, no es computacionalmente factible
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.
- encontrar un mensaje que corresponda a una digestión de mensaje dada
- encontrar dos mensajes que produscan la misma digestión de mensaje
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.