lunes, 9 de febrero de 2009

Secure Socket Layer

Secure Sockets Layer

Protocolo de Capa de Conexión Segura (SSL) y Transport Layer Security -Seguridad de la Capa de Transporte- (TLS), su sucesor, son protocolos criptograficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.

Descripcion:

SSL proporciona autenticacion y privacidad de la información entre extremos sobre mediante el uso de Internet criptografia. Habitualmente, sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de Infraestructura de llaves publicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdroping), la falsificación de la identidad del remitente (phishing) y mantener la integridad del mensaje.

SSL implica una serie de fases básicas:

  • Negociar entre las partes el algoritmo que se usará en la comunicación
  • Intercambio de claves publicas y autenticación basada en certificados digitales
  • Cifrado del tráfico basado en cifrado simetrico

Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos se van a usar. Las implementaciones actuales proporcionan las siguientes opciones:

  • Para criptografía de clave pública: RSA, Diffie-Helman, DSA (Digital Signature Algorithm) o Fortezza;
  • Para cifrado simétrico: RC2 RC4, IDEA (International Data Encryption Algorithm), (Data Encryption Standard), DES Triple Des o AES (Advanced Encryption Standard);
  • Con funciones hash: MD5o de la familia SHA



SSL permite la Confidencialidad y la Autentificación en las transacciones por Internet, siendo usado principalmente en aquellas transacciones en la que se intercambian datos sensibles, como números de tarjetas de crédito o contraseñas de acceso a sistemas privados. SSL es una de las formas base para la implementación de soluciones PKI (Infraestructuras de Clave Pública).

Secure Socket Layer es un sistema de protocolos de caracter general diseñado en 1994 por la empresa Nestcape Communcations Corporation, y está basado en la aplicación conjunta de Criptografía Simétrica, Criptografía Asimétrica (de llave pública), certificados digitales y firmas digitales para conseguir un canal o medio seguro de comunicación a través de Internet. De los sistemas criptográficos simétricos, motor principal de la encriptación de datos transferidos en la comunicación, se aprovecha la rapidez de operación, mientras que los sistemas asimétricos se usan para el intercambio seguro de las claves simétricas, consiguiendo con ello resolver el problema de la Confidencialidad en la transmisión de datos.

SSL implementa un protocolo de negociación para establecer una comunicaión segura a nivel de socked (nombre de máquina más puerto), de forma transparente al usuario y a las aplicaciones que lo usan.

Actualmente es el estandar de comunicación segura en los navegadores web más importantes (protocolo HTTP), como Nestcape Navigator e Internet Explorer, y se espera que pronto se saquen versiones para otras otros protocolos de la capa de Aplicación (correo, FTP, etc.).

La identidad del servidor web seguro (y a veces también del usuario cliente) se consigue mediante el Certificado Digital correspondiente, del que se comprueba su validez antes de iniciar el intercambio de datos sensibles (Autenticación), mientras que de la seguridad de Integridad de los datos intercambiados se encarga la Firma Digital mediante funciones hash y la comprobación de resúmenes de todos los datos enviados y recibidos.

Desde el punto de vista de su implementación en los modelos de referencia OSI y TCP/IP, SSL se introduce como una especie de nivel o capa adicional, situada entre la capa de Aplicación y la capa de Transporte, sustituyendo los sockets del sistema operativo, lo que hace que sea independiente de la aplicación que lo utilice, y se implementa generalmente en el puerto 443. (NOTA: Los puertos son las intefaces que hay entre las aplicacoines y la pila de protocolos TCP/IP del sistema operativo).

martes, 3 de febrero de 2009

Criptografia

Introduccion

Para establecer una comunicación de datos entre dos entidades (personas, equipos informáticos, etc) hacen falta al menos tres elementos básicos: el emisor del mensaje (la fuente), el receptor del mismo (el destino) y un soporte físico por el cual se transfieran los datos (el medio).

En una comunicación normal los datos se envían a través del medio tal como son, sin sufrir modificaciones de ningún tipo, de tal forma que el mensaje que representan puede ser interceptado y leido por cualquier otra entidad que acceda a él durante su viaje por el medio.

Pero hay ocasiones en las que nos interesa que dicho mensaje sólamente pueda ser interpretado correctamente por el emisor del mismo y por el receptor al que va dirigido. En estas ocasiones es necesario implementar algun mecanismo de protección de la información sensible tal que el mensaje viaje seguro desde la fuente al destino, siendo imposible la interceptación por terceros del mensaje, o que si se produce ésta, el mensaje capturado sea incomprensible para quien tenga acceso al mismo.

Una de las formas de conseguir esto es enviar el mensaje en claro, tal como lo ha redactado el emisor, y protejerlo en el camino mediante sistemas de fuerza que lo defiendan durante el camino, como es el caso de la protección de mensajes mediante personal de seguridad.

Otro método posible es el enviar el mensaje por un camino con tanto tráfico de información que resulte muy dificil a las terceras personas detectar que se trata de información confidencial (la mejor forma de ocultar un arbol es dentro de un bosque), como es el caso de enviar el mensaje mediante una carta por el sistema estándar de correo.

Desafortunadamente estos métodos de proteción de mensajes, al igual que otros análogos, han demostrado su inefectividad a lo largo de los tiempos, por lo que hubo que buscar otro tipo de mecanismos para proteger la información sensible en su camino entre emisor y receptor.

La criptología ha demostrado con el tiempo ser una de las mejores técnicas para resolver esta cuestión. Tanto es así que actualmente, en la época de los ordenadores y la información, es el mecanismo más usado en los procesos de protección de datos, como las transacciones bancarias por Internet, el correo electrónico cifrado, etc.


Definicion Criptografía

Entendemos por Criptografía (Kriptos=ocultar, Graphos=escritura) la técnica de transformar un mensaje inteligible, denominado texto en claro, en otro que sólo puedan entender las personas autorizadas a ello, que llamaremos criptograma o texto cifrado. El método o sistema empleado para encriptar el texto en claro se denomina algoritmo de encriptación.


Criptografía clásica.-

El cifrado de textos es una actividad que ha sido ámpliamente usada a lo largo de la historia humana, sobre todo en el campo militar y en aquellos otros en los que es necesario enviar mensajes con información confidencial y sensible a través de medios no seguros.

Aunque en cierta forma el sitema de jeroglíficos egipcio puede considerarse ya una forma de criptografía (sólo podían ser entendidos por personas con conocimientos suficientes), el primer sistema criptográfico como tal conocido de debe a Julio Cesar. Su sistema consistía en reemplazar en el mensaje a enviar cada letra por la situada tres posiciones por delante en el alfabeto latino. En nuestro alfabeto actual tendríamos la siguiente tabla de equivalencias:

A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C

Por lo que el mensaje "HOLA MUNDO" se transformaría en "KRÑD OXPGR". Para volver al mensaje original desde el texto cifrado tan sólo hay que coger un alfabeto e ir sustituyendo cada letra por la que está tres posiciones antes en el msimo.


La sustitución consiste en cambiar los caracteres componentes del mensaje original en otros según una regla determinada de posición natural en el alfabeto. Por ejemplo, fijar una equivalencia entre las letras del alfabeto original y una variación de él, de forma análoga a lo que ocurre en el método de Julio Cesar. Si fijamos la equivalencia de alfabetos:

A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I

El mensaje "HOLA MUNDO" quedaría como "PXTJ UDVMX".


La trasposición en cambio consiste en cambiar los caracteres componentes del mensaje original en otros según una regla determinada de posición en el orden del mensaje. Por ejemplo, si establecemos la siguiente regla de cambio en el orden de las letras en el texto:

la letra 1 2 3 4 5 6 7 8 9
pasa a ser la 5 1 4 7 8 2 9 3 6

la frase "HOLA MUNDO" nos quedaría "OUDL HOAMN".

Tanto la sustitución como la trasposición son técnicas básicas para ocultar la redundancia en un texto plano, redundancia que se transmite al texto cifrado, y que puede ser el punto de partida para un ataque por Criptoanálisis. La redundancia es el hecho de que casi todos los símbolos de un mensaje en lenguaje natural contienen información que se puede extraer de los símbolos que le rodean.