sábado, 11 de mayo de 2013

ESQUEMA DE PROTOCOLO MUTUO


Esquema de operación del protocolo de mutuo acuerdo (TLS Handshake Protocol)
Monografias.com
La comunicación entre los nodos CLIENTE y SERVIDOR está basada en el intercambio de mensajes. En cada mensaje existe un campo (content_type) donde se especifica el protocolo de nivel superior utilizado. Estos mensajes puede ser comprimidos, cifrados y empaquetados con un código de autentificación del mensaje (MAC).
En el inicio de un conexión el nivel de mensaje encapsula un protocolo handshake (content_type=22), enviándose diferentes mensajes:
  • El cliente inicia la comunicación enviando un mensaje "Client Hello" dónde especifica una lista de conjunto de cifrados, métodos de compresión y la versión del protocolo SSL más alta permitida. A la vez envía una serie de bytes aleatorios (Challenge de Cliente o Reto) que después serán usados. Adicionalmente puede enviar el identificador de la sesión.
Monografias.com
  • El servidor responde con un mensaje "Server Hello" donde se indican los parámetros elegidos por el servidor a partir de las opciones ofertadas por el cliente.
Monografias.com
  • Una vez establecidos los parámetros de la conexión, cliente y servidor intercambian los certificados, según las claves públicas de cifrado seleccionadas. Actualmente son certificados X.509, pero existe un borrador en el que se especifica el uso de certificados basados en OpenPGP.
Monografias.com
Monografias.com
  • Si la conexión tiene que ser mutuamente certificada el servidor pide un certificado al cliente y éste se la enviaría.
Monografias.com
  • El cliente verifica la autenticidad del servidor.
Monografias.com
Monografias.com
  • Cliente y servidor negocian una clave secreta común (master secret), que puede derivarse de un intercambio Diffie-Hellman, o utilizando la clave privada de cada uno para cifrar una clave pública que servirá para cifrar a la vez la clave secreta. El resto de claves son derivadas a partir de este master secret y los valores aleatorios generados en el cliente y el servidor, que son pasados a través una función pseudo-aleatoria.
Monografias.com
Monografias.com
Monografias.com
  • Cliente y servidor aplican los parámetros negociados
Monografias.com
Monografias.com
Monografias.com
Monografias.com

APLICACIONES DEL PROTOCOLO TLS

El protocolo SSL/TLS tiene multitud de aplicaciones en uso actualmente. La mayoría de ellas son versiones seguras de programas que empleanprotocolos que no lo son. Hay versiones seguras de servidores y clientes de protocolos como el http, nntp, ldap, imap, pop3, etc.
El protocolo SSL/TLS se ejecuta en una capa entre los protocolos de aplicación como:
  • HTTP sobre SSL/TLS es HTTPS, ofreciendo seguridad a páginas WWW para aplicaciones de comercio electronic, utilizando certificados de clave pública para verificar la identidad de los extremos. Visa, MasterCard, American Express y muchas de las principales institucionesfinancieras han aprobado SSL para el comercio sobre Internet.
  • SSH utiliza SSL/TLS por debajo.
  • SMTP y NNTP pueden operar también de manera segura sobre SSL/TLS.
  • POP3 i IMAP4 sobre SSL/TLS son POP3S i IMAPS.
Existen múltiples productos clientes y servidores que pueden proporcionar SSL de forma nativa, pero también existen muchos que aún no lo permiten. una solución podría ser usar una aplicación SSL independiente como Stunnel para conseguir el cifrado, pero IETF recomendó en 1997 que los protocolos de aplicación ofrecieran una forma de actualizar a TLS a partir de una conexión sin cifrado (plaintext) en vez de usar un puerto diferente para cifrar las comunicaciones, evitando el uso de envolturas (wrappers) como Stunnel.
SSL también puede ser usado para tunelar una red completa y crear una red privada virtual (VPN), como en el caso de OpenVPN.
Implementaciones del Protocolo TLS
Existen diferentes implementaciones, como por ejemplo:
  • OpenSSL: es una implementación de código abierto, la más utilizada. Es un proyecto desarrollado por la comunidad Open Source para libre descarga y está basado en SSLeay, que ayuda al sistema a implementar el SSL/TLS ofreciéndole un robusto paquete de herramientas de administración y librerías de criptografía que pueden ser usadas para OpenSSH y navegadores web (acceso seguro a HTTPS).
  • GnuTLS: es una implementación de código abierto con licencia compatible con GPL.
  • JSSE: es una implementación realizada en el Java incluida en el Java Runtime Environment.
Estandares y Definiciones RFC del Protocolo TLS
La primera definición de TLS apareció en el RFC 2246: "The TLS Protocol Version 1.0" (El protocolo TLS versión 1.0) y está basada en la versión 3.0 de SSL, siendo prácticamente equivalentes.
  • RFC 2712: Aparecen las familias de cifrados de 40 bits definidas, para advertir que ya han sido asignadas.
  • RFC 2817: Explica cómo usar el mecanismo de actualización en HTTP/1.1 para iniciar TLS sobre una conexión TCP existente, permitiendo al tráfico seguro e inseguro HTTP compartir el mismo puerto.
  • RFC 2818: Diferencia el tráfico seguro e inseguro HTTP usando un puerto de servidor diferente.
  • RFC 3268: Añade la familia de cifrado AES.
  • RFC 3546: Añade un mecanismo para negociar extensiones de protocolos durante la inicialización de sesión y define algunas extensiones.
  • RFC 4279: Añade tres conjuntos de nuevas familias de cifrados para que el protocolo TLS permita la autenticación basada en claves previamente compartidas.

VERSIONAMIENTO DEL PROTOCOLO TLS

El protocolo TLS ha evolucionado desde la versión 1.0 hasta la actual versión que es la 1.1. Esta última versión es muy parecida a la versión anterior (TLS 1.0), pero la principal diferencia es la modificación del formato para cifrado RSA anterior al uso de 'master secret', que es parte del mensaje de intercambio de claves del cliente. En TLS 1.0 se usaba la versión 1.5 del estándar RSA para criptografía de clave pública (PCK#1), pasando a usar ahora la versión 2.1. Con este cambio se consigue protección ante ataques descubiertos por Daniel Bleichenbacher que podían lanzarse contra servidores TLS 1.0, usando PKCS#1 versión 1.5. También se incluyen recomendaciones para evitar ataques remotos programados. TLS 1.1 está actualmente implementado en el navegador Opera y en GnuTLS.

MEDIAS DE SEGURIDAD DEL PROTOCOLO TLS

  • Numera todos los registros y usa el número de secuencia en MAC.
  • Usa un resumen de mensaje mejorado con una clave (de forma que solo con dicha clave se pueda comprobar el MAC).
  • Protección contra varios ataques conocidos (incluyendo ataques man-in-the-middle), como los que implican un degradado del protocolo a versiones previas (por tanto, menos seguras), o conjuntos de cifrados más débiles.
  • El mensaje que finaliza el protocolo handshake (Finished) envía un hash de todos los datos intercambiados y vistos por ambas partes.
  • La función pseudo aleatoria divide los datos de entrada en 2 mitades y las procesa con algoritmos hash diferentes (MD5 y SHA), después realiza sobre ellos una operación XOR. De esta forma se protege a sí mismo de la eventualidad de que alguno de estos algoritmos se tornen vulnerables en el futuro.

No hay comentarios.:

Publicar un comentario