Universidad Simón Bolívar



Documentos relacionados
SERVICIOS DE RED E INTERNET TEMA 4: INSTALACIÓN Y ADMINISTRACIÓN DE SERVICIOS WEB

Introducción. Algoritmos

Técnicas de cifrado. Clave pública y clave privada:

Seguridad del Protocolo HTTP

Seguridad en la transmisión de Datos

CRIPTOGRAFIA. Qué es, usos y beneficios de su utilización. Universidad Nacional del Comahue

Unidad 4 Criptografía, SSL/TLS y HTTPS. Despliegue de aplicaciones web

Encriptación en Redes

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Ing. Cynthia Zúñiga Ramos

Introducción a los certificados digitales

SSL. Secure Sockets Layer

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Introducción a la Firma Electrónica en MIDAS

Como sabemos, en un Sistema de Comunicación de Datos, es de vital importancia

Lección 9: Introducción al protocolo SSL

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

Semana 13: Encriptación. Cifrado simétrico

Infraestructura Extendida de Seguridad IES

OpenSSL. Ing Jean Díaz

Proporciona cifrado de datos, autorización de servidores, integridad de mensajes y, opcionalmente, autorización de clientes para conexiones.

Protocolos y técnicas alternativas al WEP. En este capítulo se presentan algunos protocolos y técnicas que ofrecen mayores

Transport Layer Security (TLS) Acerca de TLS

Secure Socket Layer. Secure Socket Layer SSL

Protocolos de Seguridad en la capa de Transporte. Secure Socket Layer SSL

Práctica 5. Curso

AGESIC Área de tecnología

Certificados digitales SSL y TLS

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

Métodos Encriptación. Tópicos en Sistemas de Computación Módulo de Seguridad

Capítulo 8 Seguridad en Redes Conexiones TCP Seguras: SSL

Criptografía. Por. Daniel Vazart P.

e-commerce Objetivo e-commerce

VPN RED PRIVADA VIRTUAL INTEGRANTES: ALEXANDER BERNAL RAMIREZ CARLOS TRANCA JOSUE FLORES MIGUEL ANGEL VILLANUEVA

4. Protección del nivel de transporte: SSL/TLS/WTLS.

DIPLOMADO EN SEGURIDAD INFORMATICA

Resumen del trabajo sobre DNSSEC

Seguridad en Correo Electrónico

ipsec Qué es ipsec? IPSec: seguridad en Internet

TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR

Capas del Modelo ISO/OSI

Manual Instalación de certificados digitales en Outlook 2000

Semana 14: Encriptación. Cifrado asimétrico

Webpay. ELO-322 Redes de Computadores I. Yeraldy Cabrera Troncoso Aldo Passi Rojas. Primer semestre 2015

Información sobre seguridad

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Política de confianza

Criptografía, certificado digital y firma digital. Guía básica de supervivencia. En Internet nadie sabe quién está al otro lado

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Aislando Problemas de conexión en HTTPS. Nelson Toro Flores. Developer of Jalasoft

Arquitectura de seguridad OSI (ISO )

by Tim Tran:

Información sobre seguridad

PROGRAMACIÓN PÁGINAS WEB CON PHP

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Envío de correos-e firmados/cifrados

FIRMA DIGITAL. Claudia Dacak Dirección de Firma Digital Dirección General de Firma Digital y Comercio Electrónico

Software Criptográfico FNMT-RCM

Comunicación por cifrada Versión 1.1 Página 1 de 8

Introducción a las Tecnologías web. Luis Marco Giménez Madrid 2003

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

Seguridad SSL Número: 18 Sección: Artículos.

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

Personalizando un Certificado CA en Zeroshell. Escrito por: Joker

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez Ministerio de Relaciones Exteriores Cuba.

ESCUELA POLITECNICA DEL EJERCITO

Capítulo 5. Cliente-Servidor.

CSIR2121. Administración de Redes I

TELECOMUNICACIONES Y REDES

Programación páginas web. Servidor (PHP)

La seguridad en la red: verdades, mentiras y consecuencias Aproximación práctica a la criptografía aplicada

Tema2: La criptografía para la protección. de comunicaciones

Ayuda de Symantec pcanywhere Web Remote

Transferencia segura de Datos en Línea con SSL

SSL: Secure Sockets Layer Kerberos PGP Millicent

Luis Villalta Márquez

qué es comercio electrónico?

URL. Después de los dos puntos: se interpreta según el método de acceso. Suele contener direcciones y puntos de acceso en una máquina. Esquema URL.

2.3.5 Capa de sesión. Protocolos

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Seguridad de la información en SMart esolutions

REDES INFORMATICAS: Protocolo IP

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

1. INTRODUCCION. -ATAQUES A LA SEGURIDAD: Qué acciones pueden comprometer la seguridad de la información que

TUTORIAL: Cómo hacer más segura nuestra red MAC OS X

Gestió n de Certificadó Digital

Semana 11: Fir Fir w e a w lls

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Como crear una red privada virtual (VPN) en Windows XP

Instalación de certificados digitales

INTERNET Y WEB (4º ESO)

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Transcripción:

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información LABORATORIO DOCENTE DE COMPUTACION Trimestre Enero Marzo 2012 SSL/TLS Javier Arguello Caracas,28 de marzo de 2012

Índice I Introducción 3 1. Criptología 4 2. Criptosistemas 4 3. Tipos de criptosistemas 5 4. Criptosistemas sin llaves Unkeyed Cryptosystems 5 5. Llaves y criptografía simétrica/asimétrica 6 6. Firmas digitales 7 7. Evolución del protocolo 7 8. SSL y TLS 7 9. Transport Layer Security 8 II Protocolo SSL 9 10.Evolución del protocolo 9 11.Conexiones y Sesiones SSL 11 12.Componentes de SSL 11 13.Protocolos que involucra SSL 12 13.1. SSL Record Protocol......................... 12 13.2. HandShake protocol......................... 12 13.3. SSL Change Cipher Spec Protocol................. 13 13.4. SSL Alert Protocol.......................... 13 13.5. SSL Application Data Protocol................... 13 III Certificados públicos, llaves y PKIs 14 14.Estructura de un certificado 15 IV OpenSSL 16 1

V Ejercicio Práctico 17 2

Parte I Introducción Cada día es mayor y mas delicada la cantidad de información que enviamos y recibimos a través de las redes. Desde información personal, datos financieros como números de cuentas y tarjetas, conversaciones enteras por medio de los distintos chats, hasta información confidencial sobre empresas fluyen por medio de las redes que en la mayoría de los casos no es tan segura como nosotros desearíamos. Estas comunicaciones se realizan por medio de protocolos como el TCP, que permiten establecer conexiones entre computadoras y enviar el flujo de datos en muchos casos garantizando la entrega (TCP) a su destino y sin errores. Pero son estos protocolos seguros? Alrededor de los años ochenta y los noventa aumentaba la preocupación sobre la seguridad en las redes informáticas. La necesidad de mantener la confidencialidad de los datos que se transmitían y la importancia de garantizar la autencidad de los extremos fue los que motivó la creación de protocolos que permitieran no solo garantizar la comunicación entre partes sino la seguridad en la transmisión de los datos. De esta manera, Netscape dio un propuesta de un protocolo que satisfacía estas necesidades y que luego de varias versiones se convirtió en lo que hoy conocemos como Secure Socket layer o mejor conocido como protocolo SSL. SSl proporciona autenticación, privacidad y seguridad en el intercambio de datos entre dos aplicaciones. Si bien unos de los principales usos es en el contexto de servidores Web, éste también es utilizado para asegurar conexiones del tipo cliente/servidor clásicas. El objetivo de este trabajo es estudiar y mostrar cómo podemos hacer más seguras las transmisiones de datos que realicemos mediante el uso de diferentes técnicas y protocolos, para lo cual será necesario hacer referencia a térmios técnicos y teóricos sobre sistema criptográficos, algoritmos y protocolos relacionados con la seguridad inform atica. Por último este trabajo tiene un fin práctico que es explicar, mostrar y documentar la instalación de un servidor Ldap que utilice los protocolos ssl y tls para asegurar sus datos, esto último con el objetivo de implementarlo en el Laboratorio Docente de Computación, aprovechando toda las ventajas que estos protocolos nos ofrecen y mejorándo de esta manera los servicios que ofrece el laboratorio. 3

Criptografía (Principios Básicos) 1. Criptología El término criptología se deriva de las palabras griegas kryptós que significa oculto y de logos cuyo significado es palabra. Juntas esta palabras significan palabra oculta hacen referencia al objetivo principal que tenía la criptología el cual era proteger la confidencialidad y ocultar el significado de palabras específicas. 2 2 Hoy en día se entiende por criptología la ciencia matemática que se encarga del estudio de la criptografía y el criptoanális. El término criptografía se deriva de la palabra griega kryptos que como se mencionó anteriormente significa. o culto de la palabra griega gráphein que significa escritura y se refiere a la forma como se protegen los datos transformandolos de tal forma que su contenido sea intelegible. Si esa transformación es reversible, entonce la criptografía también se debe encargar de regresar el contenido cifrado a su forma original. Por otra parte, el criptoanálisis se deriva al igual que las anteriores de la palabra griega kryptós y de analýein que significa desajustar y se refiere al proceso mediante el cual podemos destruir la protección criptográfica. El criptoanálisis estudia las propiedades de seguridad y las posibilidades de romper las diferente técnicas criptográficas. En este sentido un criptoanalista es el antagónico del criptógrafo ya que su función es romper o al menos traspasar la barrera criptográfica diseñada por su opuesto. En muchos casos, cuando se habla de criptografía se dice que es la ciencia matemática relacionada con la seguridad de la información. En este sentido se incluye la confidencialidad de los datos, la integridad de los mismos, la autenticación de las partes que intercambian los datos, la autenticación del origen de los datos y nonrepudiation. En algunas literaturas el término criptografía llega a incluir la esteganografía que se diferencia de la criptografía ya que ésta se encarga de ocultar la existencia de la información mientras que la criptografía oculta el contenido de la misma. 2. Criptosistemas Un criptosistema es un conjunto de algoritmos criptográficos que son usados en distintas aplicaciones gracias a una serie de procesos que permite el soporte de los mismos. Un algoritmo por su parte es un serie de pasos de un proceso computacional que estan bien definidos, su tiempo de ejecución es finito y devuelven un resultado concreto. Los algoritmos criptográficos se pueden dividir 4

en dos tipos: Algoritmos determinísticos: son todos aquellos algoritmos que dependen únicamente de los paramámetros de entrada, es decir, siempre tendrán el mismo resultado para una entrada dada. Algoritmos probabilisticos: a diferencia de los determinísticos, estos algoritmos no generan los mismos resultados para una misma entrada. Utilizan valores aleatorios para realizar su tarea por tanto el resultado siempre es distinto. Cuando más de una entidad interviene en la ejecución de un algoritmo, estamos en presencia de un protocolo. La principal diferencia de un algoritmo y protocolo es que en el primero solo participa una entidad, mientras que en los protocolos intervienen más de una. 3. Tipos de criptosistemas Existen distintos tipos de criptosistemas los cuales se diferencian principalmente en el uso o ausencia de un parámetro secreto que conocemos como llave criptográfica. Un criptosistema puede ser de los siguientes tipos: Criptosistema sin llave: son todos aquellos sistemas criptográficos cuyo comportamiento es como el de las funciones, es decir, toman un valor y devuelven otro asociado al anterior como por ejemplo una función hash. Estos sistemas no utilizan un parametro secreto. Criptosistemas de llave secreta: sistema criptográfico que utiliza un parámetro secreto el cual es compartido entre las entidades participantes. Un ejemplo de este tipo de sistemas son aquellos que utilizan criptografía simétrica. Criptosistemas de llave pública: son todos aquellos sistemas que utilizan un parámetro secreto pero este no es compartido. Ejemplo de estos criptosistemas son aquellos que utilizan criptografía asimétrica. 4. Criptosistemas sin llaves Unkeyed Cryptosystems Si bien el objetivo de este trabajo no es dar una información detallada de los criptosistemas, es necesario introducir una serie de términos que permitan tener una noción básica y generalizada de cómo funcionan y qué permiten hacer estos sistemas: Funciones unidireccionales: son funciones que tienen la propiedad de ser fáciles de calcular y muy difíciles de invertir. 5

Funciones trampa T rapdoor function: es una función matemática cuyo cálculo directo es sencillo pero el cálculo de la función inversa es muy complejo si no se dispone de una información especial denominada trapdoor. Toda función de este tipo posee información secreta que permite invertir la función, esto es, toda función f del tipo trapdoor contiene información secreta Y tal que dado f(x) y Y, se puede calcular x. Funciones Hash: es una función que se puede computar de manera eficiente y que toma como entrada un string de un tamaño arbitrario y devuelve un string de un tamaño fijo. También son conocidas como funciones picadillo, funciones resumen o funciones de digest. Generadores de bit aleatorios Random Bit generators: es un dispositivo o algoritmo que devuelve una secuencia de bits que son independientes uno de lo otro. En todo sistema criptográfico, la aleatoriedad es una propiedad fundamental ya que permite crear claves muy seguras. Para lograr esto es necesario tener una gran cantidad de bits aleatorios que son generados a partir de cada uno de los usos del sistema. Entre estos sistemas criptográficos podemos encontrar: MD5 SHA SHA-1 SHA-2 5. Llaves y criptografía simétrica/asimétrica En el momento que uno quiere cifrar un archivo, se utiliza una clave o claves que permiten realizar esta operación y posteriormente descifrar los datos una vez que llegan a su destino. La criptografía simétrica es el método mediante el cual se genera una clave o llave con la cual podemos tanto cifrar como descifrar el archivo. En otras palabras, esta clave debe ser conocida por los dos entes, tanto el que envía el archivo como el destinatario que desea descifrarlo para visualizarlo. Cuando se desea establecer un sistema de cifrado, se debe en lo posible de utilizar claves lo suficientemente seguras de tal forma que la seguridad del sistema dependa principalmente de la clave y no del algoritmo utilizado, así un intruso que conozca el algoritmo utilizado no podrá corromper fácilmente nuestra seguridad. El inconveniente o desventaja de utilizar un sistema de llaves simétricas no es la seguridad que este pueda proporcionar si no como se lleva acabo el intercambio de la clave. Es necesario hacer uso de un canal seguro para poder compartir la 6

clave a utilizar ya que un atacante podrí interceptar la clave lo que pondría en riesgo los datos transmitido. La criptografía asimétrica en cambio utiliza un par de claves para el envío de mensajes. Una de estas claves es pública y puede ser entregada a cualquier persona y la otra es la clave privada y nadie debe tener acceso a ella. Cuando se quiere cifrar un mensaje para enviarlo a una persona, se cifra el mensaje utilizando la clave pública del destinatario y sólo puede ser descifrado con la clave privada del destinatario. Una manera de ver esto es con el siguiente ejemplo, supongamos que una persona A le quiere enviar un paquete a una persona B. El destinatario, es decir, la persona B envía un candado abierto al remitente el cual asegura el paquete con ese candado. De esta manera solo la persona B que tiene la llave del candado puede abrir el paquete. 6. Firmas digitales Una firma digital es un valor producido por un algorítmo criptográfico cuyo objetivo es proteger la autenticidad e integridad de los datos. El uso de firmas digitales se ha convertido en una herramienta de uso cotidiano en el ámbito del comercio electrónico. La firma digital da al destinatario seguridad de que el mensaje fue creado por el remitente y que no fue alterado durante la transmisión. Protocolos de seguridad de Internet TSL 7. Evolución del protocolo 8. SSL y TLS Tanto SSL como su sucesor TLS son protocolos criptográficos que permiten establecer conexiones seguras entre dos extremos. Estos protocolos permiten validar la autenticidad de las dos partes que llevarán acabo el intercambio de información y esto lo logran mediante el uso de llaves y certificados que permiten confirmar su identidad. De esta manera, permiten evitar distintos tipos de ataque como eavesdropping, es decir, se aseguran que un tercero no pueda escuchar y obtener información de los datos que se están intercambiando. De la misma manera que evita la falsificación de la identidad del remitente lo que permite mantener la integridad del mensaje en una aplicación del tipo servidor/cliente. El uso de estos protocolos ha ido en aumento debido a que cada día la información es mas valiosa y puede en muchas ocaciones llegar a ser muy costosa 7

y delicada. El aumento de las transacciones monetaria vía Internet ha logrado que los esfuerzos para proteger esos datos hayan refinado distintos protocolos como ssl. Ahora bien, cómo funciona ssl y tls?, cómo podemos garantizar la identidad del remitente y del usuario que solicita los datos? 9. Transport Layer Security Existen diferentes maneras implementar técnicas criptográficas en las distintas capas o niveles del Modelo TCP. Recordemos un momento qué es el Modelo TCP y cómo es su estrucutra. El Modelo TCP es un modelo de descripción de protoclos de red, el cual describe un conjunto de lineamientos generales de disenño e implementación de protocolos de red específicos para permitir que una computadora pueda comunicarse en una red. Dicho modelo se encuentra estructurado en cuatro niveles o capas: Capa 1 o capa de enlace. Capa 2 o capa de red. Capa 3 o capa de transporte. Capa 4 o cada de aplicación. Veamos ahora cómo se pueden implementar las distintas técnicas criptográficas en el modelo descrito anteriormente: En la capa de red: se utiliza seguridad MAC para controlar los accesos y se especifican formas para comprobar el origen de los datos. En la capa de red de Internet: se utiliza el protocolo de seguridad IP (IPsec) y el protocolo de intercambio de claves de Internet los cuales permiten establecer conexiones seguras entre dos entidades IP. En la capa de transporte, el protocolo TCP puede ser mejorado usando criptografía para proveer servicios de seguridad para las transacciones web. Acá es donde actúan los protocolos SSL y TLS. En la capa de aplicación se puede mejorar el protocolo HTTP aplicando técnicas criptográficas o sistemas de autenticación y distribución de llaves como Kerberos. SSL se introduce como una capa intermedia entre la capa de transporte y la capa de aplicacióny su trabajo es manejar la seguridad, en el sentido que se encarga de establecer las conexiones seguras para transmitir los datos. 8

Parte II Protocolo SSL 10. Evolución del protocolo El protocolo SSL se comenzó a desarrollar justo depués que Mosaic 1 el primer explorador web fue liberado en 1993. Ocho meses después Netscape Communications completó el disenõ de la primera versión de ssl, versión que tenía ciertas fallas o debilidades como la falta de recursos para comprobar la intergridad de los datos, así como otras que lo hacían vulnerable a ataques. En 1994 se liberó la segunda versión del protocolo con modificacia la primera version con el motivo de mejorar su seguridad. Entre estos cambios se encuentra el reemplazo de CRC por MD5 ya que este último se asumía que era seguro para la época. Hoy en día se afirma que SSL 2.0 tiene diversas fallas que fueron mejoradas con SSL 3.0 como: SSL 2.0 permite a los clientes y servidores enviar solo un certidicado de clave pública, mientras que SSL 3.0 permite tener cadenas de certificados de longitud arbitraria. SSL 2.0 utiliza son MD5 para la creación de los MACs, mientras que SSL 3.0 utiliza MD5 junto con SHA-1. Las ventajas de utilizar protocolos como ssl y tls en la capa de transporte son: Asegurar cualquier aplicación que se encuentre por encima de la capa de transporte. Estos protocolos pueden operar de manera transparente para los usuarios, en el sentido que no tiene que estar enterados o tener conocimiento sobre estos protocolos. SSL es un protocolo de tipo cliente/servidor que provee los siguientes servicios de seguridad: Servicios de autenticación. Servicios de confidencialidad de la comunicación. Integridad de la conexión. Como se mencionó en la sección anterior, SSL se introduce como una capa intermedia entre la capa de transporte y la capa de aplicación del modelo TCP. Las principales capacidades de este protocolo son: 9

Figura 1: SSL y sus protocolos Autenticación del Servidor SSL: esto permite garantizar que el cliente se está conectado con el servidor que desea y no con otro. Esto se logran verificando en el cliente que el certificado y el ID del servidor son válidos y que han sido expedidos por una autoridad competente llamadas CA. Auntenticación del cliente SSL: permite al servidor estar seguro que la conexión que realiza es con el cliente y no con algún intruso. Se valida el certificado y el ID público del cliente que han sido expedidos por una CA. Cifrado de la información: es una característica importante ya que codificar los datos transmitidos permite garantizar la seguridad de la transmisión de los datos, ya que en caso de ser interceptada la comunicación los datos son irrelevantes si no se pueden descifrar. Es necesario que ambos extremos soporten el algoritmo a utilizar para el cifrado de los datos. Compresión de la información: se puden aplicar algoritmos de compresión a la información que queremos transmitir. Protección contra la falsificación: los datos enviados son pretegidos de la falsificación y modificación mediante el empleo de MACs (Message Authentication Code). Un MAC es un resumen codificado del mensaje, que puede ser verificado por el cliente o por el servidor para corroborar la integridad del mismo. Por un lado establece conexiones seguras y utiliza dichas conexiones para transmitir los datos de los protocolos que se encuentran en capas superiores. Para esto divide los datos en fragmentos que son tratados de manera individual, cada fragamento es conocido como SSL record. En el lado del destinatario, los datos se deben descomprimir y reensamblar antes de ser entregados a la capa correspondiente. 10

11. Conexiones y Sesiones SSL Una conexión SSL es utilizada para realizar la transmisión de los datos entre dos entidades que se comunican, normalmente un servidor y un cliente y esta comunicación se lleva acabo de manera segura mediante la criptografía y compresión de los datos. Una o mas conexiones pueden estar asociadas a las sesiones SSL. Una sesion SSL se refiere a la asociación que ocurren entre los dos extremos o entidades que realizan el intercambio de información. La finalidad de las sesiones es definir una serie de parámetros que será utilizados por todas la conexiones asociadas a dicha sesión. Esto permite evitar la negociación de nuevos parámetros para cada nueva conexión que se realice. 12. Componentes de SSL Para una sesión se tienen los siguientes elementos: Identificador de la sesión: se genera de manera aleatoria en el servidor, permite reutilizar la sesión. Certificado: indica el certificado SSL utilizado. Algortimo de compresión: indica el méto de compresión utilizado. Algoritmo de codificacion: indica el algoritmo de cifrado utilizado. Clave maestra: número secreto de 48 bytes entre el cliente y el servidor. Flag de nuevas conexiones: indica si se pueden iniciar nuevas conexiones desde la sesión. Para una conexión se tienen los siguientes elementos: Números aleatorios de servidor y cliente empleados en la secuencia. Números secretos para MAC de cliente y servidor. Se usa para calcular el código que permite verificar si el mensaje ha sido accedido sin permiso. Claves secretas de cliente y servidor. Se emplean para cifrar los datos. Vectores iniciales empleados en el caso de utilizar un algoritmo de bloque CBC (Cipher Block Chaining). Números de secuencia SSL es un protocolo criptográfico por ende utiliza diferentes técnicas de cifrado, en particular utiliza criptografía de clave secreta para cifrar los datos. Existen básicamente tres algoritmos de intercambio de claves que pueden ser usados para establecer una clave de 48 bytes llamada premaster secret. Estos algoritmos son: RSA, Diffie-Hellman y FORTEZZA. 11

El protocolo SSL involucra los siguientes protoclos: SSL Record Protocol, el SSL Handshake Protocol, el SSL Change Cipher Spec Protocol, el SSL Alert Protocol, y por último el SSL Application Data Protocol. 13. Protocolos que involucra SSL 13.1. SSL Record Protocol El protocolo SSL Record es utilizado para encapsular datos provenientes de las capas superiores. Dichos datos son fragmentados en partes (fragmentos) manejables, que son procesados de forma independiente. 13.2. HandShake protocol Es el núcleo del protocolo SSL ya que permite a las entidades que intercambiarán información autenticarse entre ellas y establecer una serie de parámetros con los cuales podrán asegurar la comunicación. Para esto se utiliza una combinación de cifrado de llave pública y cifrado de clave simétrica. Una sesión SSL siempre comienza con un intercambio de mensajes denominado protocolo de enlace o Handshake Protocol. Los pasos implicados en el protocolo de enlace son los siguientes: 1. El cliente envía al servidor el número de versión SSL del cliente, configuración del cifrado, datos específicos de la sesión y otra información que 12

requiere el servidor para comunicarse con el cliente mediante ssl. 2. El servidor envía al cliente la versión SSL del servidor, configuración del cifrado y datos específicos de la sesión para que el cliente pueda comunicarse con él mediante ssl. 3. El cliente utiliza la información enviada por el servidor para autenticar el servidor. Si no lo puede autenticar se advierte el problema y si el servidor admite la conexión, se lleva a cabo la misma. 4. El cliente crea el pre-master secreto para la sesión, lo cifra con la clave pública del servidor y lo envía al servidor. 5. Si el servidor solicita la autenticación del cliente, el último firma otro segmento de datos que es único para este protocolo de enlace y conocido por el cliente y el servidor. 6. El servidor utiliza su clave privada para descifrar el secreto maestro y se genera el secreto principal. El cliente también realiza el secreto principal a partir del pre-maestro. 7. Tanto el cliente como el servidor utilizan esta clave maestra para cifrar y descifrar la información intercambiada durante la sesión de SSL y para comprobar la integridad. 8. El cliente envía un mensaje al servidor indicándole que los mensajes futuros del cliente se cifrarán con la clave de sesión. 9. El servidor envía un mensaje al cliente indicándole que los mensajes futuros se cifrarán con la clave de sesión. 10. El protocolo de enlace está completo y comienza la sesión. 13.3. SSL Change Cipher Spec Protocol Es el protocolo mediante el cual el cliente y el servidor se envían mensajes mutuamente indicando que los mensajes futuros serán cifrados con las clave de sesión previamente establecida. 13.4. SSL Alert Protocol Protocolo que opera sobre el Record Protocol y que permite enviar mensajes de error o alertas al host remoto. 13.5. SSL Application Data Protocol Es el motor de SSL encargado de tomar los datos provenientes de las capas más altas (Capa de Aplicación) e introducirlas en el Record Protocol para llevar a cabo el proceso de cifrado y protección. 13

Una de las principales ventajas de este protocolo es que es independiente a la capa de aplicación, esto quiere decir que aquella aplicación que se quiera asegurar puede ser colocado sobre la capa SSL. Los servidores que emplean ssl normalmente deben estar preparados para aceptar tanto aplicaciones seguras como aplicaciones no seguras de la capa de aplicación. Esto se puede lograr utilizando dos estrategias: Uso de puertos separados y upward negotiation. La primera simplemente utiliza puertos distintos, uno para las conexiones inseguras y el otro para las conexiones con SSL. El servidor debe escuchar en ambos puertos. La segunda estrategia utiliza un solo puerto y se envía un mensaje indicando que se desea elevar la seguridad de la conexión. Si el otro extremo accepta, SSL es invocado y se establece un canal seguro para la comunicación. Ambas estrategias tienen sus ventajas y desventajas pero la mayoría de los diseñadores de protocolos toman la decisión de tener puertos separados. Ejemplos de la estrategia de puertos separados es el protocolo HTTP que normalmente escucha por el puerto 80 para conexiones no segura y por el puerto 431 para HTTPS. De la misma manera, LDAP tiene como puerto por defecto el puerto 389 mientras que la implementación con ssl se lleva a cabo por el puerto 636 (ldaps). Parte III Certificados públicos, llaves y PKIs Los protoclos SSL/TLS requieren del uso de certificados de claves para realizar los procedimientos de autenticación de las partes que estableceran la conexión e intercambiaran los datos. La creación y manipulación de estos certificados no forma parte de los protocolos como tal. Los CA, AA, PKIs son los encargados de manejar todo lo relacionado con los certificados. Un certificado es un documento que da fe sobre la veracidad de una información o sobre pertenencia de algo. Un certificado permite corroborar que una clave le pertenece a una persona, dispositivo de hardware o cualquier otra entidad. Los certificados resultantes son llamados certificados de clave pública. Un certificado de atributos permite corroborar que una lista de atributos pertenecen al duenõ del certificado. La diferencia entre un certificado de clave y 14

un certificado de atributos es que el primero incluye una clave pública mientras que el segundo una lista de atributos. Ambos certificados son emitidos por autoridades que son reconocidas por una comunidad de usuarios. En el caso de los certificados de clave pública, las autoridades encargadas de emitir dichos certificados son conocidas como CAs (Certification Authorities), mientras que los certificados de atributos son emitidos por la autoridades conocidas como AAs (attribute authorities). Un PKI consiste en uno o varios CAs. De acuerdo a RFC 2828 un PKI es ün sistema de CAs que realizan un conjunto de certificaciones, manejo de archivos y claves para una comunidad de usuarios. De esta manera un PKI se puede considerar como una infraestructura encargada de emitir, validar y revocar claves públicas y certificados de clave públicas. En 1995 la IETF (Internet Engineering Task Force) reconoció la importancia de los certificados de claves públicas y se tomó la tarea de disenãr un estándar llamado X.509. Éste es un estándar para infraestructuras de claves públicas el cual especifica formatos para certificados de claves públicas y un algoritmos para la validación de la ruta de certificación. 14. Estructura de un certificado La estructura de un certificado digital X.509 es la siguiente: Version Número de serie ID del algoritmo Emisor Validez Sujeto Información de clave pública del sujeto Identificador único del emisor (opcional) Identificador único del sujeto (opcional) Algoritmo para firmar el certificado Firma digital del certificado 15

Los certificados se escriben utilizando una sintaxis basada en el lenguaje ASN.1 (Abstract Syntax Notation One) y los formatos de codificación más comunes son DER (Distinguished Encoding Rules) o PEM (Privacy-enhanced Electronic Mail). Un certificado contiene diversos campos: El primer campo es sobre el sujeto. Contiene los datos que identifican al titular del certificado expresados en notación DN (Distinguished Name), comoformado por CN (Common Name), OU (Organizational Unit), O (Organization) y C (Country). El segundo campo contiene la clave pública expresada en notación ANSI. En primer lugar muestra el algoritmo utilizado para crear la clave y luego la propia clave pão blica. Por último, la CA anãde el algoritmo de firma utilizado, el hash de la firma, y la propia firma digital. Parte IV OpenSSL OpenSSL es un proyecto de software desarrollado por la comunidad Open Source el cual consiste en un conjunto de herramientas de administración y bibliotecas relacionadas con la criptogría, con las cuales se pueden implementar protocolos como SSL y TLS. OpenSSL soporta diferentes tipos de algoritmos criptográficos: Ciphers: AES Blowfish Camellia SEED DES IDEA RC2, RC4, RC5 Triple DES Funciones hash: 16

MD5 SHA-1 SHA-2 RIPEMD-160 Criptografía de llave Pública: RSA DSA Diffie-Hellman key Exchange Parte V Ejercicio Práctico Este trabajo tiene como objetivo principal implementar el protocolo SSL en los servicios que corren en el LDC con la finalidad de mejorar la seguridad en las conexiones realizadas en el Laboratorio. A continuación se llevará a cabo una instalación de LDAP con soporte SSL y se creará una autoridad certificador con la finalidad de generar y firmar los certificados para asegurar las conexiones del servidor LDAP con sus clientes. 17

Referencias [1] Rolf Oppliger SSL and TLS: Theory and Practice. Artech House, Boston [2] Peter Rob, Carlos Coronel Sistemas de Base de Datos. Thomson, Mexico, 5ta Edición, 2006 [3] José Tomás Cadenas Conceptos Fundamentales de Bases de Datos. [4] autor = Microsoft, título = Description of the Secure Sockets Layer (SSL) Handshake protocol, url = http://support.microsoft.com/kb/257591/es [5] autor = RUBEN ANTICONA RODRIGUEZ título = ÇRIPTOSISTEMAS url = http://www.slideshare.net/rarodrixx15/criptosistemas-9384657 [6] título = ÇriptografÃa - Secure Sockets Layers (SSL) url = http://es.kioskea.net/contents/crypto/ssl.php3 [7] autor =. Er ik Kangas título SSL versus TLS url = http://luxsci.com/blog/ssl-versus-tls-whats-the-difference.html [8] autor = Fernando MartÃnez título = Quà c son los certificados digitales url = http://www.iec.csic.es/criptonomicon/articulos/expertos51.html [9] autor Sergio González título = ÇREAR CERTIFICADOS SSL PARA APACHE url = http://www.linuxtotal.com.mx/index.php?cont=info s eyre 0 01 18