Bienvenidos

Bienvenidos al libro digital de Micro Outsourcing, aquí encontraras una serie de artículos preparados por nuestros profesionales con base a nuestras experiencias y conocimientos, con el compromiso de aclarar tus inquietudes y solucionar los problemas que se presentan a diario en el campo informático.

jueves, 8 de septiembre de 2011


PROTOCOLOS SSL - TLS
TLS (TransportLayer Security - Seguridad de la Capa de Transporte)Es el sucesor del SSL (Secure Sockets Layer). Ambos protocolos sirven para proporcionar comunicaciones seguras en Internet, usando un modelo de autenticación y privacidad de la información entre extremos sobre Internet mediante criptografía. Esto es fundamental para mantener la seguridad en el comercio vía Internet. 

SSL fue diseñado de manera modular (extensible), con soporte para compatibilidad hacia delante y hacia atrás y negociación entre las partes (peer-to-peer). 

Normalmente el servidor es el único que es autenticado, garantizando así su identidad, pero el cliente se mantiene sin autenticar, ya que para la autenticación mutua se necesita una infraestructura de claves públicas (o PKI) para los clientes. 

Estos protocolos permiten prevenir escuchas (eavesdropping), evitar la falsificación de la identidad del remitente y mantener la integridad del mensaje en una aplicación cliente-servidor.

La versión 3.0 del SSL fue desarrollada por Netscape en 1996, que fue la base para desarrollar la versión 1.0 del TLS, protocolo estándar IETF definido en el RFC 2246 por primera vez. 

Las primeras implementaciones de SSL sólo podían usar claves simétricas de 40 bits como máximo, ya que el gobierno de los EEUU imponía restricciones sobre la exportación de tecnología criptográfica. Esta clave era de 40 bits ya que las agencias de seguridad nacional americanas podían atacarla mediante fuerza bruta y poder leer así el tráfico cifrado, mientras que los posibles atacantes con menores recursos no podrían leerlo. Finalmente, después de diferentes juicios y la aparición de mejores productos criptográficos diseñados en otros países, se rebajaron las restricciones de exportación de tecnología criptográfica, desapareciendo casi por completo la limitación de claves de 40 bits. Actualmente se usan claves de 128 bits, o incluso más, para las claves de cifrado simétricas.

FUNCIONAMIENTO.
  • El protocolo SSL/TSL está basado 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 que después serán usados. Adicionalmente puede enviar el identificador de la sesión.


  • 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.




  • 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 Open PGP.








  • Si la conexión tiene que ser mutuamente certificada el servidor pide un certificado al cliente y éste se la enviaría.


  • El cliente verifica la autenticidad del servidor.


  • 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.




  • Cliente y servidor aplican los parámetros negociados.






TLS 1.1.

·         Es la última versión aprobada del protocolo TLS. 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 (si se usa RSA). En TLS 1.0 se usaba la versión 1.5 de 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. 


4. CONCLUSIONES.

·         La seguridad es un aspecto fundamental para muchas aplicaciones cliente-servidor, siendo un ejemplo muy importante, por su gran proyección en los últimos tiempos, el negocio electrónico. 

Mediante el uso de SSL/TLS se ha conseguido aumentar el grado de seguridad en dichas conexiones cliente-servidor, teniendo presente que la idea de "seguridad total" es una utopía. 

Como se ha explicado en esta ampliación el uso de SSL/TLS junto con otras técnicas como IPSec, cifrado RPC, etc., nos ayudan a mantener la confidencialidad e integridad de los datos durante la comunicación, protegiendo así datos confidenciales como números de tarjetas de crédito en las diferentes transacciones de comercio electrónico, envío de información privada, en una intranet o a través de Internet, de una organización, etc. 

Aunque no hay que olvidar que los ataques pueden ser múltiples y cada vez más sofisticados, lo que obliga a una permanente investigación de mejora de los diferentes protocolos de seguridad, se puede decir que un uso correcto de estos protocolos nos proporciona hoy en día un nivel de seguridad "bastante aceptable".