Home > C A P I T U L O III

C A P I T U L O III


C A P I T U L O  III 
 

 
 
 

INDICE 

    3.1 Protocolos

    3.2 Criptografía 

          3.2.1 Criptografía moderna

          3.2.2 Algoritmos Simétricos

          3.2.3 Algoritmos Asimétricos

          3.2.4 Firmas Digitales

          3.2.5 Funciones Hash 

    3.3 Seguridad en la Transmisión

    3.4 Protocolo SSH (Secure shell) 

          3.4.1 Características de SSH

          3.4.2 Por que usar SSH

          3.4.3 SSH v1 y SSH v2

          3.4.4 Tipos de Claves SSH

          3.4.5 Métodos de Autentificación

          3.4.6 Forma de Operación de SSH

          3.4.7 Redireccionamiento de puertos 

    3.5 Protocolo SSL (Secure Socket Layer) 

          3.5.1 Arquitectura de SSL

          3.5.2 Funcionamiento de SSL 
     
     
     
     
     

    3.6 Protocolo TLS (Transport Layer Security)

    3.7 Protocolo SHTTP

    3.8 Protocolo IPSec (Protocolo de Seguridad de Internet ) 

          3.8.1 Ventajas y Desventajas de IPSec

          3.8.2 Limitaciones de IPSec

          3.8.3 Características de Seguridad de IPSec

          3.8.4 Arquitectura de IPSec

                3.8.4.1 Protocolo AH

                3.8.4.2 Protocolo ESP

                3.8.4.3 Protocolo IKE

          3.8.5 Funcionamiento de IPSec

                3.8.5.1 Modo Transporte

                3.8.5.2 Modo Túnel

          3.8.6 Políticas de Seguridad de IPSec 
     

 

PROTOCOLOS CRIPTOGRAFICOS Y DE SEGURIDAD DE COMUNICACIÓN 
 

3.1 PROTOCOLOS 

Los protocolos son reglas y procedimientos para la comunicación. El término «protocolo» se utiliza en distintos contextos. Por ejemplo, los diplomáticos de un país se ajustan a las reglas del protocolo creadas para ayudarles a interactuar de forma correcta con los diplomáticos de otros países. De la misma forma se aplican las reglas del protocolo al entorno informático. Cuando dos equipos están conectados en red, las reglas y procedimientos técnicos que dictan su comunicación e interacción se denominan protocolos.

Cuando piense en protocolos de red se debe tomar en cuenta  estos tres puntos: 

  • Existen muchos protocolos. A pesar de que cada protocolo facilita la comunicación básica, cada uno tiene un propósito diferente y realiza distintas tareas. Cada protocolo tiene sus propias ventajas y sus limitaciones.
  • Algunos protocolos sólo trabajan en ciertos niveles OSI. El nivel al que trabaja un protocolo describe su función. Por ejemplo, un protocolo que trabaje a nivel físico asegura que los paquetes de datos pasen a la tarjeta de red (NIC) y salgan al cable de la red.
  • Los protocolos también puede trabajar juntos en una jerarquía o conjunto de protocolos. Al igual que una red incorpora funciones a cada uno de los niveles del modelo OSI, distintos protocolos también trabajan juntos a distintos niveles en la jerarquía de protocolos. Los niveles de la jerarquía de protocolos se corresponden con los niveles del modelo OSI. Por ejemplo, el nivel de aplicación del protocolo TCP/IP se corresponde con el nivel de presentación del modelo OSI. Vistos conjuntamente, los protocolos describen la jerarquía de funciones y prestaciones.
 

Como Funcionan los Protocolos

La operación técnica en la que los datos son transmitidos a través de la red se puede dividir en dos pasos discretos, sistemáticos. A cada paso se realizan ciertas acciones que no se pueden realizar en otro paso. Cada paso incluye sus propias reglas y procedimientos, o protocolo. 
 

Los pasos del protocolo se tienen que llevar a cabo en un orden apropiado y que sea el mismo en cada uno de los equipos de la red. En el equipo origen, estos pasos se tienen que llevar a cabo de arriba hacia abajo. En el equipo de destino, estos pasos se tienen que llevar a cabo de abajo hacia arriba.

 

El equipo origen

Los protocolos en el equipo origen: 

  • Se dividen en secciones más pequeñas, denominadas paquetes.
  • Se añade a los paquetes información sobre la dirección, de forma que el equipo de destino pueda determinar si los datos le pertenecen.
  • Prepara los datos para transmitirlos a través de la NIC y enviarlos a través del cable de la red.

 

El equipo de destino

Los protocolos en el equipo de destino constan de la misma serie de pasos, pero en sentido inverso. 

  • Toma los paquetes de datos del cable y los introduce en el equipo a través de la NIC.
  • Extrae de los paquetes de datos toda la información transmitida eliminando la información añadida por el equipo origen.
  • Copia los datos de los paquetes en un búfer para reorganizarlos enviarlos a la aplicación.
 

Los equipos origen y destino necesitan realizar cada paso de la misma forma para que los datos tengan la misma estructura al recibirse que cuando se enviaron.[www.005] 

3.2 CRIPTOGRAFIA  

La palabra criptografía proviene del griego  Kryptos que significa OCULTO y graphein,  ESCRIBIR es decir “la técnica de escribir con algo secreto u oculto” . La  criptografía a sido utilizada a través de los años para ,andar mensajes confidenciales cuyo propósito es que “solo personas autorizadas puedan entender el mensaje ”.

Hay cuatro elementos fundamentales para que esta técnica o mejor dicho “conjunto de técnicas ” hagan que un documento encriptado sea seguro ,  estas son: 

PRIVACIDAD: se refiere a que la información solo pueda ser leída por personas  autorizadas.  No sirve de nada,  por ejemplo proteger un documento de suma importancia para el futuro de la empresa,  si este documento es fácilmente robado o copiado por la empresa competidora,  en este momento se dice que el documento ha perdido privacidad.   

INTEGRIDAD:  se refiere a que la información no pueda ser alterada en el transcurso de su transferencia hacia otro lugar,  la pérdida de integridad puede resultar catastrófica si por ejemplo enviamos un documento firmado por nosotros y en el transcurso del envió, nuestra firma o datos son adulterados por terceros,  en este caso se dice que el documento no ha llegado “integro”. 

AUTENTICIDAD: se refiere a que se pueda confirmar que el mensaje recibido haya sido enviado por quien dice ser enviado o que el mensaje recibido es el que se esperaba,  por ejemplo cuando se quiere cobrar un cheque a nombre de alguien quien lo cobra debe someterse a un proceso de verificación de identidad para comprobar si en efecto es la persona que dice ser.  

NO RECHAZO: se refiere a que no se pueda negar la autoría de un mensaje enviado,  por ejemplo si se  hace una compra por Internet y utilizamos alguna pagina que utilice métodos criptográficos para avalar nuestra compra,  se puede asegurar que los datos no sean adulterados  de ninguna forma en la operación y los dueños de la pagina se aseguran de que no se pueda negar la compra.   

Si se necesita un ámbito seguro de trabajo se deben incluir estas cuatro premisas,  además de un buen manejo de claves para poder comprobar autenticidad,  garantizar  privacidad,  asegurar integridad,  y evitar el no rechazo.   

3.2.1 CRIPTOGRAFIA MODERNA 

La  llegada de la computadora a la sociedad trajo consigo una renovación de técnicas criptográficas nunca antes pensadas,   el gran proceso de cálculo y la velocidad fueron desencadenantes para que una nueva raza de técnicas y algoritmos criptográficos fueran creados. Estos algoritmos se dividen en algoritmos con técnicas simétricas y asimétricas.  

3.2.2 ALGORITMOS SIMETRICOS  

DES:  en  1977 el Departamento de Comercio y la Oficina Nacional de estandares de Estados Unidos publicaron la  norma DES (Data Encryption Standar)  este es un esquema de cifrado de claves primarias,  es un sistemas monoalfabético que fue desarrollado en colaboración de IBM  y se presento con la intención de proporcionar un algoritmo de cifrado normalizado para redes de ordenadores.  DES utiliza una clave de 64 bits de los cuales 56 son utilizados directamente por el algoritmo DES y los 8 restantes se emplean para la detección de errores. Como se visto se necesitan uno setenta mil billones de claves posibles de 56 bits.  Debido e esto DES es bastante duro de romper pero no “imposible”.  En julio de 1998 la empresa EFF creo una máquina que logro descifrar un mensaje DES en menos de tres días.  A pesar de esto el objetivo de DES   no es proporcionar una seguridad absoluta si no únicamente un nivel  de seguridad razonable,  para las redes orientadas a aplicaciones comerciales.  Posteriormente se ha sacado una versión de DES implementada por hardware que entro a formar parte de los estándares de la ISO con el nombre de DEA  

VENTAJAS DE DES:   

  • Es el sistemas mas extendido del mundo
  • El que mas máquinas usan
  • El mas barato y el mas probado
  • Rápido y fácil de implementar
 

TRIPLE DES: El sistemas DES se considera en la actualidad poco práctico,  debido a la corta longitud de su clave.  Para resolver este problema y seguir utilizando DES se ha creado el sistema Triple DES (TDES),  basado en tres iteraciones sucesivas del algoritmo DES,  con lo que se consigue una longitud de clave de 128 bits,  y que es compatible con DES simple,  con esto se ha mantenido la sencillez y rapidez de DES, protegiendo al  algoritmo de ser hackeado. 

IDEA :  creado en Zurich por Lay y Massey en 1992,  este algoritmo emplea claves de encriptación  de 128 bits de longitud considerándolo muy seguro.  Es uno de los algoritmos mas conocidos actualmente. El método de cifrado esta basado en modificar la orientación de cada bit y combinarla con una puerta lógica variable.  Se lo considera como el mejor algoritmo simétrico en la actualidad ya que emplea bloques de cifrado de 64 bits de longitud y utiliza claves de 128 bits.  El algoritmo de desencriptación  es muy parecido al de encriptación,  por lo que resulta muy fácil y rápido de programar   ,  y hasta ahora no ha sido roto nunca,  aportando su longitud de clave una seguridad fuerte ante los ataques por fuerza bruta (prueba y ensayo o diccionarios).    

RC4/5: el sistema criptográfico simétrico RC5 es el sucesor de RC4,  frente al que presenta  numerosas mejoras.  Ambos han sido creados por RSA Data Security Inc.  La empresa creada por los autores del sistema RSA que es actualmente una de las mas importantes en el campo del cifrado y protección de datos.

Permite diferentes longitudes de claves (aunque esta prohibida su exportación fuera de EEUU con longitudes superiores a 56 bits),  y funciona como un generador de números aleatorios que se suman al texto mediante una operación de tipo OR-Exclusiva,  es además ampliamente configurable, permitiendo fijar diferentes longitudes de clave,  numero de iteraciones y tamaño de los bloques a cifrar,  por lo que le permite adaptarse a cualquier aplicación.  Por ejemplo este algoritmo es usado por NetScape para implementar su sistema de seguridad de comunicaciones SSL. En 1996 una universidad francesa consiguió romper el sistema RC4 con clave de 40 bits,  lo que hace sospechar que RC5 con longitudes de clave de 56 bits no es lo suficientemente seguro. 

MD5: algoritmo desarrollado por el grupo RSA capaz de obtener 128 bits a partir de un determinado texto y es un intento de probar con otros sistemas criptográficos que no empleen claves.  Hasta hoy no se sabe cuales son las operaciones matemáticas para descifrarlo,  pero es probable que se base en factores de números primos . 

SHA: es un algoritmo desarrollado por el gobierno de los EEUU y se pretende implantar en los sistemas informáticos de alta seguridad del estado como estándar  de protección de documentos.  El algoritmo obtiene 160 bits de un texto determinado.[www.014] 

3.2.3 ALGORITMOS ASIMETRICOS  

Los algoritmos asimétricos son también llamados de clave pública,  verdaderamente este sistema se compone de dos tipos de claves,  la publica y la privada,  el primer algoritmo de este tipo fue desarrollado por Whitfield Diffie y Martin Hellman. Este algoritmo de encriptación supuso una verdadera revolución en el campo de la criptografía fue creado en 1976 y su importancia se debe sobre todo  al hecho de ser el inicio de los sistemas asimétricos,  ya que en la práctica solo es válido para el intercambio de claves simétricas,  y con esta funcionalidad  es muy usado en los diferentes sistemas seguros implementados  en Internet   como SSL y VPN. 

RSA: el algoritmo RSA se basa en el hecho matemático de la dificultad de factorizar números muy grandes.  Para factorizar un número el sistema mas lógico consiste en empezar a dividir sucesivamente este entre 2,  entre 3,  entre 4......y asi sucesivamente,  buscando que el resultado de la división sea exacto,  es decir de resto 0,  con lo que ya tendremos un divisor del número.  Si el numero considerado es un numero primo,  tendremos que factorizarlo,  habría que empezar 1,2,3........ hasta llegar a el mismo ya que por ser primo es divisible para si mismo.  Y si el numero primo es lo suficientemente grande el proceso de factorización es complicado y lleva mucho tiempo. 

El funcionamiento de RSA es el siguiente: 

  1. Se busca dos números primos  lo suficientemente grandes:  p y q de entre 100y 300 dígitos
  2. Se obtienen los números n= p*q    y  = (p-1)*(q-1)
  3. Se busca el numero e tal que no tenga   múltiplos comunes con 
  4. Se calcula d=e-1 mod  con mod = resto de la división   de números enteros
 

Y con estos números obtenidos,  n es la clave pública y d es la clave privada.  Los números p, q,  se destruyen.  También se hace público el número e necesario para alimentar el algoritmo.

El cálculo de estas claves se realizan en secreto en la máquina en la que se va a guardar la clave privada,  y una vez generada ésta conviene protegerla mediante un algoritmo criptográfico simétrico.

RSA permite longitudes variables,  siendo aconsejables actualmente el uso de claves de no menos de 1024 bits (se han roto claves de hasta 512 bits aunque se necesitaron mas de 5 meses y 300 pcs trabajando juntos para hacerlo)

RSA es el mas conocido y usado de los sistemas de clave pública,  y también el mas rápido.  Presenta todas las ventajas de los sistemas asimétricos incluyendo la firma digital aunque resulta mas útil a la hora de implementar la confidencialidad el uso de sistemas simétricos por ser mas rápidos. Se suele usar también en los sistemas mixtos para encriptar y enviar la clave simétrica que se usara posteriormente en la comunicación cifrada. 

3.2.4 FIRMAS DIGITALES  

Las firmas digitales son métodos de cifrado que tienen dos propósitos :

  • Validar el contenido de un mensaje electrónico y se puede utilizar posteriormente para comprobar que un emisor envió de hecho un mensaje
  • Probar que no se ha falsificado un mensaje durante su envió.  Las firmas digitales respaldan la autenticidad del correo electrónico,  transacciones de contabilidad,  ordenes de empresa, documentos para grupos de trabajo y otros mensajes y archivos que se trasladan entre sistemas,  usuarios u organizaciones.

Las firmas digitales se basan en el hecho de que dos grupos pueden autentificarse el uno al otro para el intercambio seguro de documentos,  pero la relación entre ellos no se basa en una confianza total.  

3.2.5 FUNCIONES HASH 

Si se quiere firmar digitalmente  un documento extenso,  se puede dar cuenta que cifrar el documento entero es una perdida  de tiempo ya que los medios de encriptación de llave pública son lentos y precisan un gran proceso de computo.  Para solventar este aspecto aparecen las funciones hash, que son unas funciones matemáticas  que realizan un resumen del documento a firmar.  Su forma de operar es comprimir el documento en un único bloque de longitud fija,  bloque cuyo documento es ilegible y no tiene ningún sentido real.  Tanto es así que por definición las funciones hash son irreversibles,  es decir,  que partir de un bloque comprimido no se puede obtener el bloque sin comprimir,  y si no es así   no es una función hash.  Estas funciones son de dominio público.

A un mensaje resumido mediante una función hash y encriptado con una llave privada es lo que realmente se denomina FIRMA DIGITAL.

Las funciones hash y la firma digital son elementos indispensables para el establecimiento de canales seguros de comunicación,  basados en los certificados digitales.

Para que una función pueda considerarse una función hash debe cumplir con los siguientes requerimientos:  

  • Debe transformar un texto de longitud variable a un bloque de longitud fija,  que generalmente es pequeña (algunas son de 16 bits)
  • Debe ser cómoda de usar e implementar
  • Debe ser irreversible,  es decir,  no se puede obtener el texto original del resumen hash
  • Debe ser imposible encontrar dos mensajes diferentes cuya firma digital mediante la función hash sea la misma (no – colición)
  • Si se desea además mantener un intercambio de información con CONFIDENCIALIDAD,  basta con cifrar el documento a enviar con la clave pública del receptor.[www.014]
 

3.3 SEGURIDAD EN LA TRANSMICION  

La confidencialidad de la información, específicamente de los usuarios que utilizan Internet es fundamental. La comunicación entre las sucursales de una empresa u organización como es el caso de la Cooperativa Atuntaqui, la publicación de información confidencial de una empresa, el compartir información estratégica, el ingreso en sitios Web, son solamente algunos ejemplos de contenido sensible que debe contar con las medidas de seguridad adecuadas para evitar problemas y no perder la privacidad y confianza.

La seguridad de este tipo se basa en el hecho de poder encriptar los mensajes que se intercambian a través de la  red entre los  servidores  y los  clientes,   y que solo ellos puedan descifrar los contenidos a partir de una clave común conocida solo por los dos.

Para llevar a cabo esta seguridad se crearon diversos protocolos basados en esta idea, como son:


PROTOCOLO DESCRIPCION
SSH Usado exclusivamente en reemplazo de TELNET
SSL Y TSL Usado principalmente en comunicaciones de hipertexto pero con posibilidad de uso en otros protocolos
HTTPS Usado exclusivamente para comunicaciones de hipertexto
IPSec Usado como  protocolo de seguridad de Internet

Tabla 3.1 Protocolos de Seguridad de Comunicación 

3.4  PROTOCOLO SSH (Secure Shell)

Este protocolo fue diseñado para dar seguridad al acceso a computadores en forma remota. A diferencia de FTP o Telnet, SSH encripta la sesión de registro imposibilitando que alguien pueda obtener contraseñas no encriptadas. SSH utiliza el puerto 22 para la comunicación y la forma de efectuar su trabajo es muy similar al efectuado por SSL.

SSH está diseñado para reemplazar los métodos más viejos y menos seguros para registrarse remotamente en otro sistema a través de la shell de comando, tales como telnet o rsh. Un programa relacionado, el scp, reemplaza otros programas diseñados para copiar archivos entre hosts como rcp. Ya que estas aplicaciones antiguas no encriptan contraseñas entre el cliente y el servidor, evite usarlas mientras le sea posible. El uso de métodos seguros para registrarse remotamente a otros sistemas hará disminuir los riesgos de seguridad tanto para el sistema cliente como para el sistema remoto

Para su uso se requiere que por parte del servidor exista un demonio que mantenga continuamente en el puerto 22 el servicio de comunicación segura, el sshd. El cliente debe ser un software tipo TeraTerm o Putty que permita hacer pedidos a este puerto 22 de forma cifrada.

La forma en que se entabla una comunicación es en base la misma para todos los protocolos seguros:

  • El cliente envía una señal al servidor pidiéndole comunicación por el puerto 22.
  • El servidor acepta la comunicación en el caso de poder mantenerla bajo encriptación mediante un algoritmo definido y le envía la llave publica al cliente para que pueda descifrar los mensajes.
  • El cliente recibe la llave teniendo la posibilidad de guardar la llave para futuras comunicaciones o destruirla después de la sesión actual.

3.4.1 CARACTERISTICAS DE SSH

SSH (o Secure SHell) es un protocolo para crear conexiones seguras entre dos sistemas usando una arquitectura cliente/servidor.  

El protocolo SSH proporciona los siguientes tipos de protección:  

  • Ofrece un mecanismote autentificación de servidor a cliente además de cifrado.
  • Se utiliza cifrado asimétrico al comienzo,  y simétricos una vez negociados  y autentificados el cliente y el servidor.
  • Da soporte a la integridad de los datos
  • Después de la conexión inicial, el cliente puede verificar que se está conectando al mismo servidor al que se conectó anteriormente.
  • El cliente transmite su información de autenticación al servidor usando una encriptación robusta de 128 bits.
  • Todos los datos enviados y recibidos durante la conexión se transfieren por medio de encriptación de 128 bits, lo cual los hacen extremamente difícil de descifrar y leer.
  • El cliente tiene la posibilidad de enviar aplicaciones lanzadas desde el intérprete de comandos de la shell. Esta técnica proporciona una interfaz gráfica segura (llamada reenvío por X11), proporciona un medio seguro para usar aplicaciones gráficas sobre una red.
 

Ya que el protocolo SSH encripta todo lo que envía y recibe, se puede usar para asegurar protocolos inseguros. El servidor SSH puede convertirse en un conducto para convertir en seguros los protocolos inseguros mediante el uso de una técnica llamada reenvío por puerto, como por ejemplo POP, incrementando la seguridad del sistema en general y de los datos.

Red Hat Linux contiene el paquete general de OpenSSH (openssh), el servidor de OpenSSH (openssh-server) y los paquetes de clientes (openssh-clients). Una gran cantidad de programas de cliente y servidor puede usar el protocolo SSH. Muchas aplicaciones SSH cliente están disponibles para casi todos los principales sistemas operativos en uso hoy día,  como por ejemplo el cliente Putty. 

3.4.2 POR QUE USAR SSH? 

Los usuarios tienen a su disposición una variedad de herramientas interceptar y dirigir el tráfico de la red para ganar acceso al sistema. En términos generales, estas amenazas se pueden catalogar del siguiente modo:  

  • Intercepción de la comunicación entre dos sistemas: En este escenario, existe un tercero en algún lugar de la red entre entidades en comunicación que hace una copia de la información que pasa entre ellas. La parte interceptora puede interceptar y conservar la información, o puede modificar la información y luego enviarla al recipiente al cual estaba destinada. Este ataque se puede montar a través del uso de un paquete sniffer , una utilidad de red muy común.
  • Personificación de un determinado host: con esta estrategia, un sistema interceptor finge ser el receptor a quien está destinado un mensaje. Si funciona la estrategia, el cliente no se da cuenta del engaño y continúa la comunicación con el interceptor como si su mensaje hubiese llegado a su destino satisfactoriamente.  

    Esto se produce con técnicas como el envenenamiento del DNS o spoofing de IP.  

Ambas técnicas causan que se intercepte información, posiblemente con propósitos hostiles. El resultado puede ser catastrófico. Si se utiliza SSH para inicios de sesión de shell remota y para copiar archivos, estas amenazas a la seguridad se pueden disminuir notablemente. Esto es porque el cliente SSH y el servidor usan firmas digitales para verificar su identidad. Adicionalmente, toda la comunicación entre los sistemas cliente y servidor es encriptada. No servirán de nada los intentos de falsificar la identidad de cualquiera de los dos lados de la comunicación ya que cada paquete está cifrado por medio de una clave conocida sólo por el sistema local y el remoto. [www.004] 

3.4.3 SSH VERSIÓN 1 Y SSH VERSIÓN 2 

Como nada en este mundo es perfecto, existen dos versiones incompatibles del protocolo SSH: la versión 1.x (1.3 y 1.5) y la versión 2.0.

Pasar de una versión a la otra no es doloroso para el usuario, teniendo a mano el cliente correcto y el servidor correcto compatible con la versión. La versión 1 del protocolo SSH está integrada, mientras que la versión 2 ha definido el protocolo anterior en tres "capas":

  1. Capa de transporte del protocolo SSH (SSH-TRANS)
  2. Autentificación del protocolo SSH (SSH-AUTH)
  3. Conexión del protocolo SSH (SSH-CONN)

Cada capa del protocolo está definida específicamente en un documento (borrador) normalizado por la IETF, seguido de un cuarto borrador que describe la arquitectura (Arquitectura del protocolo SSH, SSH-ARCH). Se pueden encontrar todos los detalles en: [www.007] 

Sin meternos en muchos detalles, aquí tienes lo que encontrarás en SSHv2:

        1. La capa de transporte proporciona integridad, cifrado, y compresión, la autentificación de sistemas
        2. La capa de autentificación proporciona ... autentificación (contraseña, basada en máquina, clave pública)
        3. La capa de conexión que gestiona el túnel (shell, agente SSH, redirección de puertos, control del flujo).

Las principales diferencias técnicas entre la versión 1 de SSH y la versión 2 son: 
 


SSH Versión 1 SSH Versión 2
Diseño monolítico (integrado) Separación de las funciones de autentificación, conexión y transporte en capas
Integridad via CRC32 (no seguro) Integridad via HMAC (cifrado hash)
Un único canal por sesión Un número ilimitado de canales por sesión
Negociación usando únicamente cifrado simétrico en el canal, identificación de sesión con una única clave en ambos lados Negociación más detallada (cifrado simétrico, llave pública, compresión, ...), y una clave de sesión independiente, compresión e integridad

en ambos lados

Sólo RSA para el algoritmo de clave pública RSA y DSA para el algoritmo de clave pública
Clave de sesión transmitida por el cliente Clave de sesión negociada por el protocolo Diffie-Hellman
Clave de sesión válida para toda la sesión Clave de sesión renovable

Tabla 3.2 Diferencias entre SSH1 y  SSH2 

3.4.4 TIPOS DE CLAVES SSH  

Clave de usuario: un par de claves compuestas de una clave pública y otra privada (ambas asimétricas), definidas por el usuario y permanentes (se guardan en el disco). Estas claves permiten la autentificación de usuario si se utiliza el método de autentificación de clave pública.  

Clave de máquina: también un par de claves compuestas de una llave pública y otra privada (ambas asimétricas), pero definidas al instalar/configurar SSH por el administrador del servidor y permanentes (guardadas en el disco). Esta clave permite la autentificación entre sistemas.

Clave de servidor: de nuevo un par de claves compuestas de una clave pública y otra privada (ambas asimétricas), pero generadas por un demonio al iniciarse y renovadas regularmente. Esta clave permanece en memoria para asegurar el intercambio de la clave de sesión en SSHv1 (con SSHv2, no hay clave de servidor ya que el intercambio se asegura con el protocolo Diffie-Hellman).

Clave de sesión: esta es una clave secreta usada por el algoritmo de cifrado simétrico para cifrar el canal de comunicación. Como es en todos los productos modernos de criptografía, la clave es aleatoria y perecedera. SSHv1 tiene una clave por sesión, en ambos lados. SSHv2 tiene dos claves de sesión regeneradas, una en cada lado.

El usuario añade una frase de paso (pass phrase) que protege la parte privada de las anteriores claves. Esta protección se asegura cifrando el fichero que contiene la clave privada con un algoritmo simétrico. La clave secreta usada para cifrar el fichero se deriva de esta frase de paso. 

3.4.5 METODOS DE AUTENTIFICACION 

Hay varios métodos de autentificación de usuario, la elección depende de la necesidades definidas en las políticas de seguridad. Los métodos autorizados se activan o no en el fichero de configuración del servidor. Aquí están las principales categorías:

"Similar a telnet":

Este es el "tradicional" método de la contraseña: al conectar, después de haber introducido nuestro identificador, se le pide al usuario que introduzca una contraseña que se envía al servidor que la compara con la que tiene asociada a dicho usuario. El problema residual (el que causa una cifra astronómica actos delictivos en Internet) es que la contraseña se envía a la red en claro, y por lo tanto puede ser interceptada por cualquiera que  tenga un simple "sniffer" (capturador de paquetes). En este caso SSH tiene la misma apariencia (es un modo fácil usuarios inexpertos que migran de telnet a SSH, ya que no hay nada nuevo que aprender ...), no obstante el protocolo SSH cifra el canal y la contraseña en claro se encapsula.

Una variante incluso más segura, configurable si uno tiene lo necesario en el servidor es el uso de una "Contraseña de un solo uso -- One time password" (S/Key por ejemplo): seguramente es mejor, obviamente más seguro, pero las limitaciones de ergonomía lo hacen aplicable únicamente a situaciones particulares. Este sistema opera como sigue: después de introducir nuestro identificador, en vez de preguntar al usuario una contraseña (estática), el servidor envía un "desafío" al que el usuario debe responder. Dado que el desafío debe ser diferente, la respuesta debe también cambiar. En consecuencia, la interceptación de la respuesta no es importante ya que no puede ser rehusada. La limitación, como se mencionó, viene esencialmente de la codificación de la respuesta que debe ser calculada (por un token, software en el lado cliente, etc.), y la entrada es bastante "cabalística" (seis monosílabos ingleses, en el mejor de los casos). [www.004]

3.4.6 FORMA DE OPERACIÓN DE SSH

  1. Identificación del servidor con su clave publica (no se debe confiar en una IP). Atención a la primera vez
  2. El cliente le pide una prueba

El servidor responde correctamente (EL SERVIDOR YA ESTA AUTENTICADO) 

    Fig. 3.1 Mecanismo de Operación de SSH (I)

    Una vez autenticado el servidor, y sólo entonces, el cliente se autentifica:

    1. El servidor, ya con una conexión segura (negociada antes) pide al cliente autenticarse.
    2. El cliente le responde,  puede autenticarse mediante:  Keberos,  publickey,  y contraseña entre otros.
    3. Si el cliente responde de forma correcta,  la conexión se permite y esta será cifrada,  y con verificación de integridad.

    Por lo tanto SSH nos ofrece un servicio de acceso seguro y con garantía de integridad.

     

      Fig. 3.2 Mecanismo de Operación SSH (II)

    El protocolo SSH nos protege físicamente de un corte de comunicación y a nivel de transporte de que se resetee una conexión falsificando segmentos TCP de forma adecuada.  

    3.4.7 REDIRECCIONAMIENTO DE PUERTOS

    SSH permite la redirección (forwarding) de cualquier flujo de datos TCP a través de un "túnel" en una sesión SSH. Esto significa que el flujo de datos de la aplicación, en vez de ser gestionada directamente por los puertos del servidor y el cliente, es "encapsulada" en un "túnel" creado al conectar (inicio de sesión).

    Esto mismo se hace con el protocolo X11 sin ningún esfuerzo especial (por parte del usuario), con un manejo transparente de los displays y la capacidad de propagarse continuamente cuando se realizan varias conexiones

    Existen muchos protocolos que no  tienen implementados mecanismos de cifrados.  Se puede bien utilizar un protocolo nuevo que soporten cifrados, o bien protocolos de nivel inferior  (SSL o IPSec).

    El problema es que estas soluciones requieren o bien un protocolo nuevo, o bien una configuración más o menos complicada en el extremo servidor y en el extremo cliente. Mediante SSH, sabemos que podemos crear una conexión segura o túnel  entre el cliente SSH y el servidor SSH; de lo que se trata es de usar esa conexión para crear un túnel por el que pueda transportar una conexión no segura. 

    Ejemplo de Redireccionamiento de puerto utilizando POP 

    • El primer paso consiste en realizar la conexión con los parámetros que permitan crear el túnel.
     
     

    Fig. 3.3 Parámetros para crear una conexión

      

    • En un extremo (Cliente o Servidor) se  crea la cabecera del túnel en el otro la salida.
     
     
     
     

      Fig. 3.4 Redireccionamiento completo para POP

    La figura 3.5 presenta una forma mas simplificada de  un redireccionamiento de un servidor de correo.

     

      Fig. 3.5 Simplificación del Redireccionamiento

    El túnel de comunicación se puede iniciar en el cliente ssh (como se ha visto anteriormente) o también en el servidor  (Hacia el cliente ssh)

    El redireccionamiento de puertos puede plantear problemas de seguridad.[www.006] 

    3.5 PROTOCOLO SSL (Secure Socket Layer)

     

    Son protocolos criptográficos que proporcionan comunicaciones seguras en Internet. Existen pequeñas diferencias entre SSL 3.0 y TLS 1.0, pero el protocolo permanece sustancialmente igual. El término "SSL" según se usa aquí, se aplica a ambos protocolos a menos que el contexto indique lo contrario

    .

    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 comunicarción segura a nivel de soket (nombre de la maquina mas puerto) de forma transparente al usuario y a las aplicaciones que lo usan, trabaja  una capa por debajo de HTTP por lo que permite ser usado no tan solo para proteger documentos de hipertexto sino también servicios como FTP, SMTP, TELNET entre otros. La idea que persigue SSL es encriptar la comunicación entre servidor y cliente mediante el uso de llaves y algoritmos de encriptación

    .

    Actualmente es el estándar 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.

     

    Fig. 3.6 Aplicación de SSL en el modelo OSI y TCP/IP

    SSL proporciona servicios de seguridad a la pila de protocolos, encriptando los datos salientes de la capa de Aplicación antes de que estos sean segmentados en la capa de Transporte y encapsulados y enviados por las capas inferiores. Es más, también puede aplicar algoritmos de compresión a los datos a enviar y fragmentar los bloques de tamaño mayor a 214 bytes, volviéndolos a reensamblarlos en el receptor.

    Habitualmente, sólo el servidor es autentificado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autentificar; la autentificación mutua requiere un despliegue de infraestructura de claves públicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsificación de la identidad del remitente y mantener la integridad del mensaje.

    El protocolo TLS esta basado en SSL y son similares en el modo de operar. Es importante señalar que ambos protocolos se ejecutan sobre una capa de transporte definida, pero no determinada. Esto indica que pueden ser utilizados para cualquier tipo de comunicaciones. La capa de transporte más usada es TCP cobre la cual pueden implementar seguridad en HTTP.  Como punto de diferencia se puede mencionar que existen protocolos implementados sobre la capa de red, por ejemplo sobre IP. Tal es el caso de IPSec.

     

    SSL implica una serie de fases básicas:

    • Negociar entre las partes el algoritmo que se usará en la comunicación
    • Intercambio de claves públicas y autenticación basada en certificados digitales
    • Encriptación del tráfico basado en cifrado simétrico

    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-Hellman, DSA (Digital Signature Algorithm) o Fortezza;
    • Para cifrado simétrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard), Triple DES o AES (Advanced Encryption Standard);
    • Con funciones hash: MD5 o de la familia SHA.

    La versión más actual de SSL es la 3.0. que usa los algoritmos simétricos de encriptación DES, TRIPLE DES, RC2, RC4 e IDEA, el asimétrico RSA, la función hash MD5 y el algoritmo de firma SHA-1.

    Los algoritmos, longitudes de clave y funciones hash de resumen usados en SSL dependen del nivel de seguridad que se busque o se permita, siendo los más habituales los siguientes:  

    RSA + Triple DES de 168 bits + SHA-1: soportado por las versiones 2.0 y 3.0 de SSL, es uno de los conjuntos más fuertes en cuanto a seguridad, ya que son posibles 3.7 * 1050 claves simétricas diferentes, por lo que es muy dificil de romper. Por ahora sólo está permitido su uso en Estados Unidos, aplicándose sobre todo en transacciones bancarias.

    RSA + RC4 de 128 bits + MD5: soportado por las versiones 2.0 y 3.0 de SSL, permite 3.4 * 10 38 claves simétricas diferentes que, aunque es un número inferior que el del caso anterior, da la misma fortaleza al sistema. Análogamente, en teoría sólo se permite su uso comercial en Estados Unidos, aunque actualmente ya es posible su implementación en los navegadores más comunes, siendo usado por organismos gubernamentales, grandes empresas y entidades bancarias. [www.009]

    RSA + RC2 de 128 bits + MD5: soportado sólo por SSL 2.0, permite 3.4 * 10 38 claves simétricas diferentes, y es de fortaleza similar a los anteriores, aunque es más lento a la hora de operar. Sólo se permite su uso comercial en Estados Unidos, aunque actualmente ya es posible su implementación en los navegadores más comunes.

    RSA + DES de 56 bits + SHA-1: soportado por las versiones 2.0 y 3.0 de SSL, aunque es el caso de la versión 2.0 se suele usar MD5 en vez de SHA-1. Es un sistema menos seguro que los anteriores, permitiendo 7.2 * 10 16 claves simétricas diferentes, y es el que suelen traer por defecto los navegadores Web en la actualidad (en realidad son 48 bits para clave y 8 para comprobación de errores).

    RSA + RC4 de 40 bits + MD5: soportado por las versiones 2.0 y 3.0 de SSL, ha sido el sistema más común permitido para exportaciones fuera de Estados Unidos. Permite aproximadamente 1.1 * 10 12 claves simétricas diferentes, y una velocidad de proceso muy elevada, aunque su seguridad es ya cuestionable con las técnicas de Criptoanálisis actuales.

    RSA + RC2 de 40 bits + MD5: en todo análogo al sistema anterior, aunque de velocidad de proceso bastante inferior.

    Sólo MD5: usado solamente para autentificar mensajes y descubrir ataques a la integridad de los mismos. Se usa cuando el navegador cliente y el servidor no tienen ningún sistema SSL común, lo que hace imposible el establecimiento de una comunicación cifrada. No es soportado por SSL 2.0, pero si por la versión 3.0.

     

    La clave de encriptación simétrica es única y diferente para cada sesión, por lo que si la comunicación falla y se debe establecer una nueva sesión SSL, la contraseña simétrica se generará de nuevo. SSL proporciona cifrado de alto nivel de los datos intercambiados (se cifran incluso las cabeceras HTTP), autenticación del servidor (y si es necesario también del cliente) e integridad de los datos recibidos.

    Durante el proceso de comunicación segura SSL existen dos estados fundamentales, el

    estado de sesión

    y el

    estado de conexión

    . A cada sesión se le asigna un número identificador arbitrario, elegido por el servidor, un método de compresión de datos, una serie de algoritmos de encriptación y funciones hash, una clave secreta maestra de 48 bytes y un flag de nuevas conexiones, que indica si desde la sesión actual se pueden establecer nuevas conexiones. Cada conexión incluye un número secreto para el cliente y otro para el servidor, usados para calcular los MAC de sus mensajes, una clave secreta de encriptación particular para el cliente y otra para el servidor, unos vectores iniciales en el caso de cifrado de datos en bloque y unos números de secuencia asociados a cada mensaje.

    3.5.1 ARQUITECTURA DE SSL

    SSL trabaja sobre el protocolo TCP y por debajo de protocolos como HTTP, IMAP, LDAP, etc., y puede ser usado por todos ellos de forma transparente para el usuario. Opera entre la capa de transporte y la de sesión del modelo OSI (o entre la capa de transporte y la de aplicación del modelo TCP) y está formado, a su vez, por dos capas y cuatro componentes bien diferenciados. 

     

    Fig. 3.7 Arquitectura SSL

    1. El protocolo de registro (Record Protocol)  es inmediatamente superior a TCP y proporciona una comunicación segura, se encarga de encapsular el trabajo de los elementos de la capa superior, construyendo un canal de comunicaciones entre los dos extremos objeto de la comunicación. Principalmente esta capa toma los mensajes y los codifica con algoritmos de
     

      encriptación de llave simétrica como DES, RC4 aplicándole una MAC (Message Authentication Code) para verificar la integridad , logrando así encapsular la seguridad para niveles superiores. 

      1. El verdadero corazón de SSL está en el protocolo de Handshake que es el encargado de intercambiar la clave que se utilizará para crear un canal seguro mediante un algoritmo eficiente de cifrado simétrico. También es responsabilidad de este protocolo coordinar los estados de ambos extremos de la transmisión.
      1. El protocolo de Alerta es el encargado de señalizar problemas y errores  concernientes a la sesión SSL establecida. 
      1. Por último, el Change Cipher Spec Protocol está formado por un único mensaje consistente en un único byte de valor 1 y se utiliza para notificar un cambio en la estrategia de cifrado. 
       

      A grandes rasgos, podríamos decir que SSL trabaja de la siguiente forma: 

      • En primer lugar intercambiamos una clave de longitud suficiente mediante un algoritmo de cifrado asimétrico.
      • Mediante esa clave establecemos un canal seguro utilizando para ello un algoritmo simétrico previamente negociado.
      • A continuación, toma los mensajes a ser transmitidos, los fragmenta en bloques, los comprime, aplica un algoritmo hash para obtener un resumen (MAC) que es concatenado a cada uno de los bloques comprimidos para asegurar la integridad de los mismos, realiza el cifrado y envía los resultados.
      • El estado de todas estas operaciones son controladas mediante una máquina de control de estados.
       

      Una sesión SSL puede comprender múltiples conexiones. Adicionalmente, se pueden establecer múltiples sesiones SSL simultaneas. [www.010] 

      3.5.2 FUNCIONAMIENTO DE SSL  

      1. El protocolos SSL esta basado en capas,  al igual que la familia de protocolos de TCP/IP.
      2. La capa de los mensajes incluye longitud,  descripción y contenido.
      3. SSL toma los mensajes que debe transmitirse,  divide los datos en bloques manejables,  comprime los datos si se los desea,  aplica un MAC,  cifra y transmite el resultado en forma de un registro SSL
      4. El receptor debe procesar los datos de forma análoga,  es decir son descifrados,  verificados y descomprimidos (si fueron comprimidos) y reensamblarlos.
       
       
       

      Fig. 3.8 Funcionamiento de SSL 

      En resumidas cuentas, después que se solicita una comunicación segura, servidor y el cliente se deben poner de acuerdo en como se comunicaran (SSL Handshake) para luego comenzar la comunicación encriptada. Luego de terminada la transacción, SSL termina. 

      Solicitud de SSL:

      Típicamente este proceso ocurre en el momento que un cliente accede a un servidor seguro, identificado con "https://...". pero como se mencionó, no necesariamente es usado para HTTP. La comunicación se establecerá por un puerto distinto al utilizado por el servicio normalmente. Luego de esta petición, se procede al SSL Handshake.

      SSL Handshake:

      En este momento, servidor y cliente se ponen de acuerdo en varios parámetros de la comunicación. Se puede dividir el proceso en distintos pasos:

      • Client Hello: El cliente se presenta. Le pide al servidor que se presente (certifique quien es)y le comunica que algoritmos de encriptación soporta y le envía un número aleatorio para el caso que el servidor no pueda certificar su validez y que aun así se pueda realizar la comunicación segura.
      • Server Hello: El servidor se presenta. Le responde al cliente con su identificador digital encriptado, su llave pública, el algoritmo que se usará, y otro número aleatorio. El algoritmo usado será el más poderoso que soporte tanto el servidor como el cliente.
      • Aceptación del cliente: El cliente recibe el identificador digital del servidor, lo desencripta usando la llave pública también recibida y verifica que dicha identificación proviene de una empresa certificadora segura. Luego se procede a realizar verificaciones del certificado (identificador) por medio de fechas, URL del servidor, etc. Finalmente el cliente genera una llave aleatoria usando la llave pública del servidor y el algoritmo seleccionado y se la envía al servidor.
      • Verificación: Ahora tanto el cliente y el servidor conocen la llave aleatoria (El cliente la generó y el servidor la recibió y desencriptó con su llave privada). Para asegurar que nada ha cambiado, ambas partes se envían las llaves. Si coinciden, el Handshake concluye y comienza la transacción.

      Intercambio de Datos:

      Desde este momento los mensajes son encriptados con la llave conocida por el servidor y el cliente y luego son enviados para que en el otro extremo sean desencriptados y leídos

      Terminación de SSL

      Cuando el cliente abandona el servidor, se le informa que terminara la sesión segura para luego terminar con SSL. [www.004] 
       
       
       
       
       


       
       
       

      Fig 3.9 Esquema del proceso Handshake 

      3.6 PROTOCOLO TLS (Transport Layer Security )

      Se construye a partir de las especificaciones de SSL 3.0 y son tan semejantes que a veces se lo conoce como SSL 3.1. Por decirlo con las propias palabras de los autores el protocolo TLS está basado en las  especificaciones de SSL 3.0 publicadas por Netscape. Las diferencias entre este protocolo y SSL 3.0 no son grandes, pero si suficientes para que TLS 1.0 y SSL 3.0 no puedan interoperar (aunque TLS incorpora un mecanismo mediante el cual una implementación de TLS puede trabajar con SSL 3.0). 
       
       
       

      Las principales diferencias entre SSL 3.0 y TLS 1.0 son las siguientes: 

      • En los mensajes Certificate Request y Certificate Verify del protocolo de Handshake. En SSL 3.0 si el servidor solicita un certificado al cliente para que se autentique, este debe de responder con el o con un mensaje de alerta advirtiendo de que no lo tiene. En TLS 1.0 si el cliente no posee certificado no responde al servidor de  ninguna forma a este requerimiento.
      • Cálculo de las claves de sesión. El mecanismo utilizado para construir las claves de sesión es ligeramente diferente en TLS 1.0.
      • TLS 1.0 no soporta el algoritmo de cifrado simétrico FORTEZZA que si es soportado por SSL 3.0. Esto es debido a que TLS busca ser íntegramente público mientras que FORTEZZA es un algoritmo propietario.
      • TLS utiliza un mecanismo diferente y más seguro en el cálculo del MAC.
      • TLS 1.0 introduce nuevos códigos de alerta no contemplados por SSL 3.0
      • TLS 1.0 introduce un nuevo mecanismo en el relleno de los bloques para frustrar ataques basados en el análisis de la longitud de los mensajes.
        1. PROTOCOLO SHTTP 
       

      El protocolo Secure HTTP fue desarrollado por Enterprise Integration Technologies, EIT, y al igual que SSL permite tanto el cifrado de documentos como la autenticación mediante firma y certificados digitales, pero se diferencia de SSL en que se implementa a nivel de aplicación. Se puede identificar rápidamente a una página Web servida con este protocolo porque la extensión de la misma pasa a ser .shtml en vez de .html como las páginas normales.

      El mecanismo de conexión mediante S-HTTP, que ahora se encuentra en su versión 1.1, comprende una serie de pasos parecidos a los usados en SSL, en los que cliente y servidor se intercambian una serie de datos formateados que incluyen los algoritmos criptográficos, longitudes de clave y algoritmos de compresión a usar durante la comunicación segura.

      En cuanto a estos algoritmos, lo usados normalmente son RSA para intercambio de claves simétricas, MD2, MD5 o NIST-SHS como funciones hash de resumen, DES, IDEA, RC4 o CDMF como algoritmos simétricos y PEM o PKCS-7 como algoritmos de encapsulamiento.

      A diferencia de SSL, el protocolo S-HTTP está integrado con HTTP, actuando a nivel de aplicación, como ya hemos dicho, negociándose los servicios de seguridad a través de cabeceras y atributos de página, por lo que los servicios S-HTTP están sólo disponibles para el protocolo HTTP. Recordemos que SSL puede ser usado por otros protocolos diferentes de HTTP, pués se integra a nivel de shocked.

      Las principales ventajas de S-HTTP son su flexibilidad y su integración dentro de HTML (extensiones al lenguaje similares a las introducidas periódicamente por Netscape Co. en sus navegadores). Entre sus debilidades podemos señalar los efectos derivados de mantener la compatibilidad hacia atrás y la necesidad de implementar servidores que soporten las extensiones a HTML aportadas por el protocolo S-HTTP. [www.009] 
       

        1. PROTOCOLO DE SEGURIDAD IP (IPSec)
       

      IPSec (Internet Protocol Security) es en realidad un conjunto de estándares abiertos  para garantizar comunicaciones privadas y seguras a través de redes IP mediante el uso de  funciones de seguridad basadas en criptografía. Es un estándar de la IETF (Internet Engineering Task Force) definido en el RFC 2401. Provee servicios de seguridad como autenticación, integridad, control de acceso,  confidencialidad, y protección frente a reenvío . Combinando tecnologías de clave pública RSA,  algoritmos de cifrado(DES,  3DES,  IDEA, Bolwfish), algoritmos de hash (MD5, SHA-1) y certificados digitales.

      Es implementado en la capa de Red, de tal forma que su funcionamiento es completamente transparente al nivel de aplicaciones, y es mucho más poderoso. IPSec provee un mecanismo estándar, robusto y con posibilidades de expansión, para proveer seguridad al protocolo IP y protocolos de capas superiores

      IPSec está soportado en Windows Server™ 2003, Windows XP, y Windows 2000, y está integrado con el servicio de Directorio Activo. Las políticas IPSec se pueden asignar mediante Políticas de Grupo, lo que permite que los parámetros de IPSec se configuren a nivel de dominio, site o unidad organizativa.

      El objetivo principal de IPSec es proporcionar protección a los paquetes IP. IPSec está basado en un modelo de seguridad de extremo a extremo, lo que significa que los únicos hosts que tienen que conocer la protección de IPSec son el que envía y el que recibe. Cada equipo controla la seguridad por sí mismo en su extremo, bajo la hipótesis de que el medio por el que se establece la comunicación no es seguro. 

      IPSec aumenta la seguridad de los datos de la red mediante: 

      • La autenticación mutua de los equipos antes del intercambio de datos. IPSec  puede utilizar Kerberos V5 para la autenticación de los usuarios.
      • El establecimiento de una asociación de seguridad entre los dos equipos. IPSec se puede implementar para proteger las comunicaciones entre usuarios remotos y redes, entre redes e, incluso, entre equipos cliente dentro de una red de área local (LAN).
      • El cifrado de los datos intercambiados mediante Cifrado de datos estándar (DES, Data Encryption Standard), triple DES (3DES) o DES de 40 bits. IPSec usa formatos de paquete IP estándar en la autenticación o el cifrado de los datos. Por tanto, los dispositivos de red intermedios, como los enrutadores, no pueden distinguir los paquetes de IPSec de los paquetes IP normales.
       

      3.8.1 VENTAJAS Y DESVENTAJAS DE IPSec 

      • Compatibilidad con la infraestructura de claves públicas. También acepta el uso de certificados de claves públicas para la autenticación, con el fin de permitir relaciones de confianza y proteger la comunicación con hosts que no pertenezcan a un dominio Windows 2000 en el que se confía.
      • Compatibilidad con claves compartidas. Si la autenticación mediante Kerberos V5 o certificados de claves públicas no es posible, se puede configurar una clave compartida (una contraseña secreta compartida) para proporcionar autenticación y confianza entre equipos.
      • Transparencia de IPSec para los usuarios y las aplicaciones. Como IPSec opera al nivel de red, los usuarios y las aplicaciones no interactúan con IPSec
      • Administración centralizada y flexible de directivas mediante Directiva de grupo. Cuando cada equipo inicia una sesión en el dominio, el equipo recibe automáticamente su directiva de seguridad, lo que evita tener que configurar cada equipo individualmente. Sin embargo, si un equipo tiene requisitos exclusivos o es independiente, se puede asignar una directiva de forma local.
      • Estándar abierto del sector. IPSec proporciona una alternativa de estándar industrial abierto ante las tecnologías de cifrado IP patentadas. Los administradores de la red aprovechan la interoperabilidad resultante. [www.011]
      • La única desventaja que se le ve a IPSec por el momento, es la dificultad de configuración con sistemas Windows. Windows 2000 y Windows XP proveen herramientas para configurar túneles con IPSec, pero su configuración es bastante difícil (Microsoft nombra a todas las cosas en forma diferente de lo estándar).  
         
         

      3.8.2 Limitaciones de IPSec

      • IPSec no es seguro si el sistema no lo es: Los gateways de seguridad deben estar en perfectas condiciones para poder confiar en el buen funcionamiento de IPSec.
      • IPSec no provee seguridad de usuario a usuario: IPSec no provee la misma clase de seguridad que otros sistemas de niveles superiores. Por ejemplo, el GPG que se utiliza para cifrar mensajes de correo electrónico, si lo que se necesita es que los datos de un usuario los pueda leer otro usuario, IPSec no asegura esto y se tendrá que utilizar otro método.
      • IPSec autentica máquinas, no usuarios: el concepto de identificación y contraseña de usuarios no es entendido por IPSec, si lo que se necesita es limitar el acceso a recursos dependiendo del usuario que quiere ingresar, entonces habrá que utilizar otros mecanismos de autenticación en combinación con IPSec.
      • IPSec no evita los ataques DoS: estos ataques se basan en sobrecargar la máquina atacada de tal modo de que sus usuarios no puedan utilizar los servicios que dicha máquina les provee.

      3.8.3 CARACTERISTICAS DE SEGURIDAD DE IPSec 

      Las siguientes características de IPSec afrontan todos estos métodos de ataque: 

      • Protocolo Carga de seguridad de encapsulación (ESP, Encapsulating Security Payload). ESP proporciona privacidad a los datos mediante el cifrado de los paquetes IP.
      • Claves basadas en criptografía. Las claves cifradas, que se comparten entre los sistemas que se comunican, crean una suma de comprobación digital para cada paquete IP. Cualquier modificación del paquete altera la suma de comprobación, mostrando al destinatario que el paquete ha sido cambiado en su tránsito.     Se utiliza material de claves diferente para cada segmento

        del esquema de protección global y se puede generar nuevo material de claves con la frecuencia especificada en la directiva de IPSec.

      • Administración automática de claves. La claves largas y el cambio dinámico de claves durante las comunicaciones ya establecidas protegen contra los ataques. IPSec usa el protocolo Asociación de seguridad en Internet y administración de claves (ISAKMP, Internet Security Association and Key Management Protocol) para intercambiar y administrar dinámicamente claves cifradas entre los equipos que se comunican.
      • Negociación de seguridad automática. IPSec usa ISAKMP para negociar de forma dinámica un conjunto de requisitos de seguridad mutuos entre los equipos que se comunican. No es necesario que los equipos tengan directivas idénticas, sólo una directiva configurada con las opciones de negociación necesarias para establecer un conjunto de requisitos con otro equipo.
      • Seguridad a nivel de red. IPSec existe en el nivel de red, proporcionando seguridad automática a todas las aplicaciones.
      • Autenticación mutua. IPSec permite el intercambio y la comprobación de identidades sin exponer la información a la interpretación de un atacante. La comprobación mutua (autenticación) se utiliza para establecer la confianza entre los sistemas que se comunican. Sólo los sistemas de confianza se pueden comunicar entre sí. Los usuarios no tienen que estar en el mismo dominio para comunicar con la protección de IPSec. Pueden estar en cualquier dominio de confianza de la empresa. La comunicación se cifra, lo que dificulta la identificación e interpretación de la información.
      • Filtrado de paquetes IP. Este proceso de filtrado habilita, permite o bloquea las comunicaciones según sea necesario mediante la especificación de intervalos de direcciones, protocolos o, incluso, puertos de protocolo específicos.
       
       

      3.8.4 ARQUITECTURA  DE IPSec 

      La arquitectura de IPSec define la granularidad con la que el usuario puede especificar su política de seguridad. Permite que cierto tráfico sea identificado para recibir el nivel de protección deseado. 
       
       
       
       
       
       

       
       

      Fig 3.10 Túneles de comunicación protegidos por IPSec entre redes separadas 
       

      IPSec está diseñado para proveer seguridad interoperable de alta calidad basada en criptografía, tanto para IPv4 como para IPv6.

      Está compuesto por dos protocolos de seguridad de tráfico, el Authentication Header (AH) y el Encapsulating Security Payload (ESP), además de protocolos y procedimientos para el manejo de llaves encriptadas. AH provee la prueba de los datos de origen en los paquetes recibidos, la integridad de los datos, y la protección contra-respuesta. ESP provee lo mismo que AH adicionando confidencialidad de datos y de flujo de tráfico limitado.

      En la Fig 3.10  se aprecia la arquitectura de IPSec. Al utilizar el mecanismo de AH se aplican algoritmos de autenticación, con la aplicación del mecanismo ESP, además de autenticación, también algoritmos de encriptación. El esquema de interoperabilidad se maneja a través de Asociaciones de Seguridad (SA), almacenadas en una base de datos. Los parámetros que se negocian para establecer los canales seguros se denominan Dominio de Interpretación IPSec (Domain of Interpretation, DOI), bajo políticas pre-establecidas dentro de un esquema de funcionamiento estático con valores fijos y previamente establecidos, o  

      bien, en un esquema de funcionamiento dinámico utilizando un protocolo de manejo de llaves, Interchange Key Exchange (IKE). 
       
       
       
       
       
       
       
       
       

       
       
       

      Fig 3.11 Arquitectura de IPSec 
       
       

      3.8.4.1 PROTOCOLO AH 

      Es el procedimiento previsto dentro de IPSec para garantizar la integridad y autenticación de los datagramas IP.  Proporciona un medio al receptor de los paquetes IP para autenticar el origen de los datos y para verificar que dichos datos no han sido alterados en transito.  Sin embargo no proporciona ninguna garantía de confidencialidad,  es decir, los datos transmitidos pueden ser vistos por terceros. Es importante indicar que AH asegura la integridad y autenticidad de los datos transportados y de la cabecera IP.[www. 0.13] 
       
       

       
       

      Fig 3.12 Funcionamiento del protocolo AH 
       

      3.8.4.2 PROTOCOLO ESP 

      El objetivo principal del protocolo ESP(Encapsulating Security Payload) es proporcionar confidencialidad,  para esto especifica el modo de cifrar los datos  que se desean enviar y como este contenido cifrado se incluyen en un datagrama IP.  Adicionalmente puede ofrecer los servicios de integridad y autenticación del origen de los datos incorporando un mecanismo similar al de AH. 

       
       

      Fig. 3.13 Funcionamiento del protocolo ESP 

      3.8.4.3 PROTOCOLO IKE 

      El IETF a definido el protocolo IKE para realizar la función de gestión automática  de claves como el establecimiento de las SAs correspondientes.  Una característica importante de IKE es que su utilidad no se limita a IPSec,  si no que es un protocolo estándar  de gestión de claves  que podría ser útil en otros protocolos como por ejemplo: OSPF, RIPv2.  Consiste en establecer una conexión cifrada y autenticada entre dos entidades, a través de la cual se negocian los parámetros  necesarios para establecer una asociación de seguridad IPSec. 

       
       

      Fig 3.14 Funcionamiento de IKE

      Los servicios que ofrecen los  componentes principales de IPSec son los siguientes: 


        AH ESP (solo encriptación) ESP (encriptación mas autentificación)
      Control de acceso X X X
      Integridad de la conexión X   X
      Autentificación en el origen de los datos X   X
      Rechazo de paquetes retocados X X X
      Confidencialidad   X X
      Confidencialidad limitada por el tráfico   X X

      Tabla 3.3 Servicios de IPSec 

      3.8.5 FUNCIONAMIENTO DE IPSec 

      El diseño de IPSec plantea dos formas de funcionamiento para sus protocolos:  modo de transporte y modo de túnel,  la diferencia se ve en la unidad que se esta protegiendo en modo transporte se protege la carga útil IP (capa de transporte), en modo túnel se protegen paquetes IP (capa de red) y se pueden implementar tres combinaciones: AH en modo transporte, ESP en modo transporte, ESP en modo túnel (AH en modo túnel tiene el mismo efecto que en modo transporte).  

      3.8.5.1 Modo Transporte: la encriptación se realiza extremo a extremo, es decir del host de origen al host de destino. Para extender en una empresa el uso de IPSec en modo transporte es necesario que todos los hosts tengan una implementación de IPSec. 

       
       

      Fig. 3.15 Aplicación de IPSec modo transporte 

      Los paquetes de la capa de transporte como TCP y UDP pasan a la capa de red, que agrega el encabezado IP y pasa a las capas inferiores; cuando se habilita IPSec en modo transporte, los paquetes de la capa de transporte pasan al componente de IPSec (que es implementado como parte de la capa de red, en el caso de sistemas operativos), el componente de IPSec agrega los encabezados AH y/o ESP, y la capa de red agrega su encabezado IP. En el caso que se apliquen ambos protocolos, primero debe aplicarse la cabecera de ESP y después de AH, para que la integridad de datos se aplique a la carga útil de ESP que contiene la carga útil de la capa de transporte, esto se muestra en la Fig. 3.13. [www. 012]

       
       

      Fig. 3.16 Formato del paquete con AH y ESP 

      3.8.5.2 Modo Túnel: el encriptado se efectúa únicamente entre los routers de acceso a los hosts implicados. En este caso la información viaja no encriptada en la parte de la red local. El funcionamiento de IPSec en modo túnel permite integrar de forma elegante IPSec en una VPN, ya que el mismo dispositivo que realiza el túnel VPN se encarga de realizar las labores correspondientes al túnel IPSec

       
       

      Fig. 3.17 Aplicación de IPSec modo túnel  

      IPSec en modo túnel, tiene dos encabezados IP, interior y exterior. El encabezado interior es creado por el host y el encabezado exterior es agregado por el dispositivo que está proporcionando los servicios de seguridad. IPSec encapsula el paquete IP con los encabezados de IPSec y agrega un encabezado exterior de IP como se muestra en la Fig. 3.14

       
       

      Fig 3.18 Formato del paquete aplicando IPSec en modo túnel

       

      Evidentemente el modo transporte es más fiable puesto que ofrece comunicación segura host a host. Sin embargo el modo túnel tiene la ventaja de que permite incorporar la seguridad sin necesidad de incorporar IPSec en los hosts; aunque la seguridad que se obtiene en este caso no es tan alta la sencillez de implantación es mucho mayor y se consiguen la mayor parte de los beneficios del modo transporte, ya que se protege la parte más expuesta del trayecto, que corresponde precisamente a la infraestructura pública o del operador. En función de las circunstancias que rodeen cada caso se deberá optar por una u otra, pudiendo haber incluso situaciones híbridas en las que en una misma empresa determinado  

      tipo de información baste protegerla con el modo túnel mientras que para algún host concreto, que maneje información de mayor importancia, se deba utilizar el modo transporte. 

      Aunque en IPSec se prevé la posibilidad de utilizar una amplia diversidad de algoritmos de autentificación y encriptado el único exigido para todas las implementaciones es el DES (Data Encription Standard) que utiliza claves de 56 bits. Desde hace unos años se sabe que DES es relativamente poco seguro, ya que el código puede ser descifrado utilizando fuerza bruta en un tiempo no demasiado grande con un ordenador potente actual, por lo que también se suele utilizar

      bastante Triple DES, que es mucho más seguro aunque también algo más costoso de calcular.  

      3.8.6 POLITICAS DE SEGURIDAD DE IPSec 

      La política es uno de los componentes más importantes de la arquitectura de IPSec, determina los servicios de seguridad que serán aplicados a un paquete. Las políticas de seguridad son también almacenadas en una base de datos (Security Policy Database, SPD) indexada por seleccionadores.

      La SPD es consultada tanto para el procesamiento de salida como el de entrada, se propone un administrador de la SPD para agregar, borrar y modificar; no hay un estándar que lo defina, pero se propone que los seleccionadores contengan los siguientes campos:  

      Dirección fuente: puede ser indistinta, un rango de direcciones, un prefijo de red, o una dirección IP específica. Indistinta en el caso de que sea la misma política para todos los paquetes con un mismo host de origen, el rango de direcciones y prefijo de red, para los gateways de seguridad y para VPNs, la dirección específica para un host con varias direcciones, o en un gateway cuando los requerimientos de algún host sean específicos.  

      Dirección destino: puede ser indistinta, un rango de direcciones, un prefijo de red, o una dirección IP específica (homologada o no). Los tres primeros para gateways de seguridad, la dirección específica como índice para la SPD.  

      Nombre: nombre de un usuario o sistema sobre el cual se aplique la política de forma específica.  

      Protocolo: el protocolo de transporte.  

      Puertos de capas superiores: los puertos  fuente y destino sobre los que se aplica la política. [www.013] 


Search more related documents:C A P I T U L O III
Download Document:C A P I T U L O III

Set Home | Add to Favorites

All Rights Reserved Powered by Free Document Search and Download

Copyright © 2011
This site does not host pdf,doc,ppt,xls,rtf,txt files all document are the property of their respective owners. complaint#nuokui.com
TOP