0% encontró este documento útil (0 votos)
15 vistas9 páginas

Firewall y Algoritmos de Seguridad en El

firewalls

Cargado por

Raul G. Pizzi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas9 páginas

Firewall y Algoritmos de Seguridad en El

firewalls

Cargado por

Raul G. Pizzi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

FIREWALL Y ALGORITMOS DE SEGURIDAD EN EL WEB

(seguridad en los sistemas educativos)

Ma. de Lourdes Sánchez Guerrero [email protected], [email protected]


Marian Henaine Abed, [email protected],Silvia Gonzalez Brambila [email protected],mx
Universidad Autónoma Metropolitana
Av. San Pablo # 180
Col. Reynosa Tamaulipas
C.P. 02200
México, D.F.
Tel. y Fax 53 18 93 55/ FAX 5394 4534

RESUMEN
Del proyecto de investigación : algoritmo de autenticación, encriptamiento y non-repudation
(no- rechazo) para redes de computadora. cuyos objetivos es de analizar y obtener los diferentes
algoritmos matemáticos de encriptamiento, autenticación y “non-repudation”(no rechazo) para
aplicarlos a internet.. En la siguiente ponencia se habla de los conceptos básicos, y los usos de
los firewalls que son la parte fundamental de los sistemas tanto educativos como para cualquier
sistema

Introducción

Los firewalls (Paredes de fuego) son elementos importantes, son nombrados generalmente en
conjunto con seguridad en redes, encriptamiento, autentificación, etc. Los mecanismos de
seguridad del WEB se complementan con los firewalls, no los sustituyen.

Definiciones

El origen de la palabra viene de las paredes de fuego usadas en almacenes de deposito hechas
explícitamente para detener o alentar los fuegos de una sección del almacén a otra. Firewalls
existen en aviones, coches, barcos y redes de computadoras. En las redes de computadoras, los
firewall permite separar a los usuarios de los hackers ( la idea es separar a los usuarios validos
de los usuarios no validos, estos usuarios son no deseados de utilizar los recursos de computo
locales).

Los firewall son software para poder lógicamente separar a las redes en 2 o más partes
(últimamente se puede encontrar hardware/software especializado para poder entregar anchos
de banda mayores a los que una PC o caja UNIX puede entregar). Es importante mencionar que
la mayor parte de las funciones de un firewall son en poder discriminar entre paquetes de
protocolos los que hay que dejar pasar o no pasar, generalmente se entrega junto con un firewall
los servicios de NAT ( Network Adress Translation ) que permiten tener conjuntos de
direcciones diferentes ( entre la dirección destino y la dirección de la maquina que recibe los
paquetes de la red ), o los servicios de VPN ( Virtual Private Network ) que permite a un
elemento o a un conjunto de elementos pasar por o a través de un firewall en forma transparente
y segura, con elementos de autentificación y encriptamento que permiten asegurar que la
información transferida a través de los tramos públicos o abiertos no están comprometidos
(nadie los puede leer o modificar ) fuera del otro extremo en la conexión. Esto se logra a través
de diferentes algoritmos de encriptamiento, de los que hablamos mas adelante.

Los firewalls permiten que los usuarios de afuera solo puedan entrar a ciertos servicios que se
pueden ofrecer en forma total ( para todos sin distincion ) o para solo un rango de direcciones
fuentes. Los servicios de encriptamiento dentro del WEB permite que el usuario tenga una
sesión segura entre sus computadora y el servidor WEB.

Cuando las personas piensan acerca de la seguridad del Web la criptografía es una de las
primeras cosas que toma en cuenta, gracias a los desarrolladores de los navegadores ha
aumentado la consciencia en el consumidor acerca de los riesgos de transmitir números de
tarjetas de crédito a través de la Web.

La criptografía juega un papel crucial en la Web. Permite que la información confidencial sea
transmitida de un lugar a otro a través de redes inseguras sin el riesgo de intersección o
modificación y permite a los dos lados de la comunicación verificar su identidad sin verse en
persona.

La palabra criptografía viene del griego de “Escritura Secreta” Criptografía ha sido usada por
los militares desde los días de las guerras Helénicas y ha crecido firmemente en la sofisticación
en paralelo con las Matemáticas y Tecnologías de Información.

Todos los sistemas criptográficos, sin importar cuan complejos tienen las siguientes cuatro
partes básicas.

1.- Plaintex (texto en claro)


Este es el mensaje antes de que se haga cualquier cosa, Este es leíble por los humanos o
en un formato que cualquier software adecuado pueda usar.

2,- Texto Cifrado.


Este es el mensaje en plaintext después de que ha sido modificado para hacerlo
ilegible. El proceso de convertir texto en claro a texto cifrado se dice encriptar y la
operación inversa es desencriptar.

3.- Algoritmo de encripción


Esta es la operación usada para convertir texto en claro a texto cifrado y viceversa.

4.- Llave
Esta es una llave secreta usada para encriptar o desencriptar el mensaje. Cada llave
transforma el mismo texto en claro en diferente texto cifrado. Si el sistema criptográfico
funciona bien, solamente las personas que conocen la llave correcta pueden descifrar el
texto cifrado.

La belleza de la criptografía es tal que el texto cifrado pueda ser transmitido a través de canales
públicos de comunicación inseguros aun si el texto cifrado es interceptado no tiene utilidad
para nadie que no posee la llave de desencriptamiento . Antes de la llegada de las computadoras
digitales el texto cifrado y la llave estaban usualmente en la forma de texto leído para humanos
ahora las tres son típicamente cadenas arbitrarias de información binaria. Vídeo, sonido y
software pueden ser encriptados tan fácilmente como el texto en claro.

Una importante característica de un buen sistema depende completamente en la secrecía de la


descripción de la llave de desencriptamiento. No es necesario guardar en secreto el algoritmo de
encriptamiento. Esto permite al mismo algoritmo se rehusado por muchos personas y evita la
necesidad de proteger el software de encriptamiento.

No es necesario de guardar en secreto el algoritmo de encriptamiento. Esto permite al mismo


algoritmo ser rehusado por muchas personas y evita la necesidad de proteger el software de
encriptamiento.
El texto cifrado puede ser “craked(roto)” y leído por usuarios no autorizados en varias formas,
una forma es a través del criptoanálisis . Criptógrafos entrenados analizan el texto cifrado en
busca de patrones (secuencias) residuales dejados desde el texto en claro. Cualquiera de estos
patrones pueden ser usados para reconstruir el mensaje original ó la llave usada para
encriptarlo. Un buen algoritmo de encriptamiento es uno que genera estos patrones: el texto
cifrado es indistinto del ruido randón Todos los algoritmos comúnmente usados en el Web
tienen esta propiedad y por tanto son resistentes a los criptoanalistas por esta razón.

Otra forma de romper el texto cifrado es adivinar la llave de desencriptamiento, pruebas cada
llave posible en turno hasta que se encuentre una que regrese un mensaje leíble “este es el usado
de ataque de fuerza bruta”. Estro puede sonar impracticó pero recuerde que las computadoras
realizar millones de pruebas por segundo, aun cuando las computadoras individuales no son
muy rápidas pueden ser conectadas en red para trabajar en paralelo, adivinando password a una
velocidad asombrosa. Esta es la razón por la longitud de la llave es tan importante. Una llave de
16 bits de largo tiene 2 a la 16 ó 65536 diferentes posibilidades y van a caer es un ataque de
fuerza bruta inmediatamente. Una llave con 40 bits de largo tiene mas de 10 a la 12
posibilidades. Aunque esto se vea como mucho, llaves de 40 bits son consideradas. Demasiado
débiles para confiarles información valiosa.

Las llaves usadas para encriptar información sensible son típicamente de 128 bits o mayores (10
a la 38 posibilidades) más que el numero de moléculas de agua en todos los océanos del planeta.
La forma más fácil para romper un mensaje encriptado es encontrar una forma de darle la vuelta
al sistema. Uno podría entrar en la maquina en donde el texto en claro esta guardado y robar el
archivo, sobornar a alguien par que revele la llave de encriptamiento, etc.

Criptografía

Criptografía es la ciencia de la escritura secreta. Es un brazo de las matemáticas, parte de la


criptología. Criptología tiene otro hijo, que es el criptoanálisis, que es la ciencia de romper(analizar) la
criptografía.

Las precauciones principales de seguridad en las aplicaciones están dirigidas por la criptografía.
Primero, las aplicaciones necesitan asegurarse que los usuarios son quienes dicen ser. Proveer
identificación es llamado autenticación(autenticación). En el mundo, una licencia de manejo es un tipo
de autenticación. Cuando usas una computadora, usualmente usas un nombre y un password (clave) para
autentificarse. La criptología provee métodos más seguros, llamados firmas y certificados.

Aplicaciones de computadoras necesitan proteger sus datos de accesos no autorizados. Tu no quieres


personas viendo tus datos(tu quieres confiabilidad), y tu no quieres que cambien datos sin tu
consentimiento (quieres asegurar la integridad de tus datos). Datos guardados en un disco, por ejemplo,
pueden ser vulnerables ser vistos o robados. Datos transmitidos a través de la red esta sujeto a todo tipo
de ataques. La criptografía provee soluciones. Por ejemplo:

Algoritmos

NOMBRE TIPO REFERENCIA


MD5 MD RFC 1321 ftp://ds.internic.net/rfc/rfc1321.txt
NIST FIPS 180-1
SHA-1 MD
http://www.nist.gov/itl/div897/pubs/fip180-1.htm
HmacMD5 MAC RFC 2104 ftp://ds.internic.net/rfc/rfc2014.txt
HmacSHA1 MAC RFC 2104 ftp://ds.internic.net/rfc/rfc2014.txt
NIST FIPS 186
DSA Firma
http://www.nist.gov/itl/div897/pubs/fip186.htm
ElGamal Firma *
Cifrador NIST FIPS 46-2
DES
Simétrico http://www.nist.gov/itl/div897/pubs/fip46-2.htm
Cifrador ANSI X9.17 o ISO 8732
DESede
Simétrico http://www.ansi.org/
PBEWithMD5and Cifrador PKCS#5
DES Simétrico http://www.rsa.com/rsalabs/pubs/PKCS/html/pkcs-5.html
Cifrador
ElGamal *
Asimétrico
Intercambio PKCS#3
DH
de Llaves http://www.rsa.com/rsalabs/pubs/PKCS/ps/pkcs-3.ps

* Véase Applied Cryptography, Bruce Scheneier Addison-Wiley

Después de haber descrito como trabaja la criptografía en principio. En la practica los principios
criptográficos deben ser incorporados a software y protocolos de comunicación que estén
trabajando. Hay una variedad de protocolos criptográficos en el Internet, y cada uno
especializado en diferentes tareas como se muestra en la tabla siguiente:

Protocolos de uso general y particulares

PROTOCOLO PROPOSITO
CyberCash Transacciones electrónica de Fondos
DNSSEC Sistemas de Dominio de Nombres
IPSec Encripción a nivel de paquete
PCT Encriptamiento a nivel de TCP/IP
PGP E-Mail
S/MIME El desplegado de WEB
Secure RPC Llamadas a procedimientos remotos
SET Transacciones electrónica de Fondos
SSL Login Remoto
TLS Encriptamiento a nivel de TCP/IP

Algunos fueron diseñados para seguridad en módulos específicos de comunicación, tales como
el e-mail y el loggin remoto. Otros son generados, proveen servicios de criptografía para
múltiples nodos de comunicación.

En la Web, SSL( Secure Sockets Layer ) es el protocolo dominante para encriptar la


comunicación en general entre los navegadores y servidores, mientras que SET ( Secure
Electronic Transaction ) es un protocolo especializado para salvaguardar transacciones basadas
en tarjetas de crédito.

Security Sockets Layer

Es un sistema de encriptamiento de flexible de propósito general, tu probablemente lo has usado


aún que note has dado cuenta, puesto que esta construido dentro de los navegadores (Browser)
de Netscape Navigator .y Microsoft La habilidad del navegador para encriptar las
comunicaciones fue un punto importante de venta para Nestcape, un característica enfatizada
por frecuentes advertencias desplegadas por el navegador cuando la criptografía no estaba
siendo usada.
En el mismo año un protocolo criptográfico competía conocido como S-HTTP fue introducido
por un grupo de negocios conocido como CommerceNet, aunque los principios criptográficos
usados por HTTP y SSL eran las mismas ( sobres digitales, certificados firmados, verificadores
de mensajes ) hay diferencias importantes entre SHHTP y SSL.

1.- S-HHTP fue diseñado para trabajar solamente con los protocolos de Web. SSL es un
protocolo de bajo nivel que puede ser usado para encriptar muchos tipos de comunicación en
red.

2.- SSL fue incorporado fue un navegador libre(gratis) que se volvió muy popular. SHTTP
estuvo inusualmente disponible en una versión modificada de Mosaic que los usuarios tenían
que comparar

SSL propiamente en protocolo predominante de seguridad en el Web y SHHTP se hundió en el


olvido.

Hay actualmente tres versiones de SSL. SSL-1 usando internamente en el Netscape tiene serios
errores y nunca fue liberado. SSL-2 fue incorporado al Netscape Navegator versión 1.0 al 2.x.
La versión 2.0 tenia algunas debilidades relacionadas con ataques del hombre en el medio. Hubo
un episodio embarazoso en donde 2 estudiantes de la universidad rompieron la inplementación
SSl V2.0 en minutos explotando un error en el generador de números randón en el Netscape.

Microsoft trabajo en el protocolo PCT que compite con SSL en su primera versión de Internet
Explorer en 1996. Netscape responde introduciendo SSL V3.0 una versión que arregla los
problemas de v2.0 y agrega muchas características nuevas más notablemente soportando el
intercambio de llave anónima de DEFFI-HELLMAN y la tarjeta inteligente Fortezza.

En este punto Microsoft se retracto y acepto soportar SSL en sus versiones del software de
Internet( aunque su software aun soporta PCT por compatibilidad). SSL versión v3.0 o mayor y
por Internet Explorer v3.0 y mayor.

SSL se convirtió recientemente en el foco de la actividad de estándares en Internet por el IETF


( Internet Engineering Task Force ). TLS ( Transport Layer Security ) es un protocolo
propuesto que es el derivado SSL V3.0 que usa versión diferente de verificadores de mensajes y
un conjunto de algoritmos de encriptamiento ligeramente diferentes. Puesto que por la
sospecha histórica IETF de los protocolos que se averiguan en la NSA ( National Security
Agenci ) no se sabe si va a soportar a Fortezza

Características de SSL

El protocolo de SSL opera en la capa de transporte de TCP/IP un nivel debajo de los protocolos
específicos de aplicación tales como NTTP ( News), HTTP( Web) y SMTP ( e-mail). Esto en
contraste con el protocolo SHTTP especifico para Web. Esta Característica de SSL flexibilidad
e independencia del protocolo. Cualquier programa que usa TCP puede ser modificado para use
conexiones seguras SSL haciendo algunos cambios al código fuente. Además de navegadores de
Web con capacidades SSL y Servidores, hay programas Telnet , lectores de noticias y
programas de transporte de e-mail que usan SSL.
HTTP FTP

S - HTTP

TELNET APLICACIÓN NNTP

SSL

TRANSPORTE

INTERNET

INTERFACE DE RED

CAPA FISICA

El principal problema de poner SSL en la capa de transporte es que no esta específicamente


afinado para el protocolo HHTP y por lo tanto podría no se tan eficiente para navegar en el
Web. Una limitación menor es que las conexiones de SSL deben de usar un socket de TCP/IP
dedicado. Cuando un servidor de Web esta corriendo en el modo SSL usa un puerto de red
distinto ( usualmente el puerto 443) para sus comunicaciones encriptadas.

Otra característica importante de SSL es su flexibilidad con respecto a escoger el algoritmo de


encriptamiento Simétrico, la función de verificación de mensaje y el método de autenticación.
Para la encripción simétrica SSL puede usar cualquier DES, Triple DES, RS2 ó RS4. Para la
verificación de mensajes SSL puede usar MD5 ó SHA como algoritmos de hashing. Para
Autenticación SSL puede usar llaves posibles y Certificados RSA ó operar en modo anónimo
en donde el intercambio de llaves de Diffie-Hellman es usado. Una variedad de longitudes de
llaves están disponibles para los algoritmos de encrptamiento incluidas las longitudes truncadas
usadas para las versiones de software de SSL de exportación de Estados Unidos. La
combinación de los algoritmos de encriptamiento simétrico, métodos de verificación de
mensajes y autenticación es conocido como “Cipher Suite” la tabla siguiente muestra la lista de
los Cipher suites.

Cuando un cliente SSl hace certificado con un servidor los dos reconocen un “cipher suites”
común. En general los dos tratan de escoger el método fuerte de encriptamiento que los dos
tienen en común.

Si un navegador de Web de exportación que solo soporta llaves de sesión de 40 bits contacta un
servidor de Web que no tiene esta limitación el servidor va a bajar a negociar a 40 bits.
Simultáneamente un servidor de Web va entregar una llave publica valida de RSA de 512 bits
de una llave de longitud total de 1024 bits cuando se comunica con un cliente de exportación.
Algunos Servidores de Web permiten al administrador de hacer una afinación fina en el proceso
de negociación. Por ejemplo, un administrador de Web puede escoger de permitir el acceso a un
directorio en particular solamente aquellos clientes que soportan criptografía fuerte. SSL provee
comprensión de datos construido internamente que es importante puesto que un mensaje que es
encriptado ya no es comprensible (la comprensión trabaja buscando patrones comunes en los
datos y removiendo ó quitando la redundancia. El encriptamiento trabaja quitando todos los
patrones de los datos dejándolo incompresible.

Cuando una conexión SSL se establece todas las conexiones entre el servidor y el navegador
están encriptadas, incluyendo:

• El URL del documento Pedido


• El contenido del documento pedido
• El contenido de cualquier campo de una forma
• Las Cookies enviadas del Navegador al Server
• Las Coockies enviadas del Servidor al Navegador
• El Contenido del Hedder de HHTP

La única cosa que no puede disfrazar por una sesión SSL es el hecho que un navegador en
particular esta hablando a un servidor en particular. Para darle la vuelta a esto, uno puede usar
SSL en conjunto con un Proxl anonimizador.

La Transacción de SSL

Un vistazo del protocolo SSL se muestra en la figura ---. Para


un descripción técnica completa se consulte
http://home.netscape.com/newsref/std/SSS.html.

El objetivo del protocolo es autenticar al servidor y opcionalmente, al cliente,


terminando con una llave secreta simétrica que tanto el cliente como el servidor pueden usar
para enviar mensajes encriptados.

En resumen, los pasos del proceso son:

1.- El cliente ( esto es, el navegador ) abre una conexión al puerto del servidor y envía
un mensaje "ClientHello". "ClientHello" lista las capacidades del cliente, incluyendo la versión
de SSL que tiene, los cipher suites que soporta, y los métodos que compresión que tiene.

2.- El servidor responde con un mensaje "ServerHello". El servidor regresa un mensaje


que contiene los cipher suite y compresión de datos que a escogido, así como un ID de sesión
que identifica a la conexión.
Nota que el servidor es el responsable de escoger el cipher suite y métodos de compresión. Si no
hay coincidencias entre los cipher suite soportados entre el cliente y el servidor, entonces el
servidor envía un mensaje de "handshake failure" y termina la conexión

3.- El servidor envía sus certificados. Si el servidor esta usando autenticación basada en
certificados ( que usualmente así es casi siempre ), el servidor envía su certificado de sitio
X.509v3 firmado. Si el certificado esta firmado por una autoridad non-root, el servidor También
envía la cadena de certificados firmados que llegan hasta un CA primario.

4.- El servidor en vía al cliente un solicitud de certificado (opcional) Si certificado s de


los clientes están siendo usados para autenticación de clientes ( actualmente raro pero
posiblemente se vea mas en el futuro ), el servidor le envía al cliente un mensaje de solicitud de
certificado.
5.- El cliente envía su certificado ( opcional ). Si el servidor lo ha pedido, el cliente
envía su certificado X.509v3 firmado. Si el cliente no tiene un certificado, envía una alerta de
"no certificate". El servidor puede decidir abortar en este punto con una falla de conversación
(handshake - darse la mano ), o continuar adelante.

6.- El cliente envía un mensaje "ClientKeyExchange". Aqui es donde la llave de sesión


simétrica es escogida. Los detalles varían dependiendo de el cipher suite escogido, pero en el
caso mas típico, el cliente genera un secreto "pre-master" usando un buen generados de números
randón. Este secreto será usado tanto del lado del cliente como del servidor para generar el
verdadero secreto que es usado como la llave de la sesión ( puesto que diferentes cifradores
simétricos usan diferentes largos de llave, la llave de la sesión no es generada directamente ). El
navegador cifra el secreto usando la llave publica RSA del servidor ( que la obtuvo del
certificado del servidor ) para crear un sobre digital. El sobre es enviado al servidor.

7.- El cliente envía un mensaje de "CertificateVerify" ( opcional). Si se esta usando


autenticación del cliente, el cliente se tiene que autenticar con el servidor mostrando que el
conoce la llave privada de RSA correcta. El mensaje "CertificateVerify" consiste en el secreto
pre-master generado en el paso 6, que ha sido manipulado en varios formas para que sea mas
difícil de verlo si alguien esta escuchando la conversación. El secreto es firmado con la llave
secreta RSA del cliente y enviada al servidor, que procede a validarla chocándola contra el
certificado del cliente. Nótese que el servidor no tiene que probar su identidad. Puesto que el
cliente envía el secreto pre-master al servidor usando la llave publica del servidor, solo el
legitimo poseedor del certificado del servidor podrá descifrarlo y usarlo.

8.- El cliente y el servidor envían el mensaje "ChangeCipherSpec". Este es un mensaje


sencillo que confirma que tanto el cliente con el servidor están listos para empezar la
comunicación usando la llave y cifrado acordado.

9.- El cliente y el servidor envían el mensaje "finished" (terminar). Este mensaje


consiste en el hash de MD5 y SHA de toda la conversación hasta este punto y permite a las
partes confirmar que los mensajes fueron recibidos intactos y no fueron modificados en el
camino.

En este punto tanto el cliente como el servidor cambian a modo cifrado, usando la llave de la
sesión (generada de el secreto pre-master) para cifrar simétricamente transmisiones
subsecuentes en ambos sentidos.

Además de los 9 pasos anteriores, existe una transacción adicional en los servidores
SSL 3.0 . En lugar de enviar sus certificados en el paso 3, el servidor puede enviar un mensaje
"ServerKeyExchange". Esto es usado para negociar una llave de sesión sin que el servidor envíe
su certificado. Esto puede pasar en cualquiera de los siguientes 3 casos:

1.- El servidor esta usando el protocolo de intercambio de llaves anónimo de Diffie-


Hellman.

2.- El servidor esta usando el ciframiento de la llave inteligente Fortezza.

3.- El servidor tiene una llave privada solo para firmas ( por ejemplo, una llave DSS ).

El mas interesante de estos escenarios es el uso del algoritmo de intercambio de llaves


Diffie-Hellman.En este caso, el cliente y el servidor negocian una llave de sesión sin
autenticarse uno al otro. Puesto que no hay intercambio de certificados, la interacción es
completamente anónima. Esto también significa que la transacción es susceptible de ataque del
hombre-en-el-medio.

Aunque una parte del protocolo SSL v3.0, el intercambio de llave de Diffie-Hellman no esta
soportado por ningún navegador comercial del WEB hasta ahorita.

Bibliografía:

Applied Crytography
Brunce Schneider
John Wiley & Sons,Inc.
(USA,1994)
ISBN0-47-5976-2

-Anuff, Ed,
JAVA Sourcebook
O´Reilly & Associates. Inc,
(USA, 1995)
ISBN 0-471-14859-8

- Danesh, Arman
Teach Yourself JAVAScript
Samsnet
(USA, 1996)
ISBN 1-57521-0738

- Cooper,Frederic J. Chris Goggans


Implementing Internet Security
New Riders Publishing
(USA,1995 )
ISBN 1 56205-471-6

Dening, Dorothy
Cryptography and Data Security
(USA 1982)
Addison Wesley
ISBN 0-201-1|0150-5

También podría gustarte