Home > 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:
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.
Los protocolos en el
equipo origen:
Los protocolos en el
equipo de destino constan de la misma serie de pasos, pero en sentido
inverso.
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:
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:
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 :
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:
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:
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:
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:
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":
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:
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
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:
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
Fig. 3.3 Parámetros para crear una conexión
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:
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:
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
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.
A grandes rasgos, podríamos
decir que SSL trabaja de la siguiente forma:
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
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:
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:
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]
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:
3.8.1 VENTAJAS Y
DESVENTAJAS DE IPSec
3.8.2 Limitaciones de IPSec
3.8.3 CARACTERISTICAS
DE SEGURIDAD DE IPSec
Las siguientes características
de IPSec afrontan todos estos métodos de ataque:
del esquema de protección global y se puede generar nuevo material de claves con la frecuencia especificada en la directiva de IPSec.
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]
All Rights Reserved Powered by Free Document Search and Download
Copyright © 2011