Sunteți pe pagina 1din 9

FIREWALL Y ALGORITMOS DE SEGURIDAD EN EL WEB (seguridad en los sistemas educativos)

Ma. de Lourdes Snchez Guerrero lsg@correo.azc.uam.mx, lsg@aniei.org.mx Marian Henaine Abed, mha@correo.azc.uam.mx,Silvia Gonzalez Brambila sgb@correo.azc.uam,mx Universidad Autnoma Metropolitana Av. San Pablo # 180 Col. Reynosa Tamaulipas C.P. 02200 Mxico, D.F. Tel. y Fax 53 18 93 55/ FAX 5394 4534 RESUMEN

Del proyecto de investigacin : algoritmo de autenticacin, encriptamiento y non-repudation (no- rechazo) para redes de computadora. cuyos objetivos es de analizar y obtener los diferentes algoritmos matemticos de encriptamiento, autenticacin y non-repudation(no rechazo) para aplicarlos a internet.. En la siguiente ponencia se habla de los conceptos bsicos, y los usos de los firewalls que son la parte fundamental de los sistemas tanto educativos como para cualquier sistema Introduccin Los firewalls (Paredes de fuego) son elementos importantes, son nombrados generalmente en conjunto con seguridad en redes, encriptamiento, autentificacin, 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 explcitamente para detener o alentar los fuegos de una seccin del almacn 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 lgicamente separar a las redes en 2 o ms 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 direccin destino y la direccin 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 travs de un firewall en forma transparente y segura, con elementos de autentificacin y encriptamento que permiten asegurar que la informacin transferida a travs de los tramos pblicos o abiertos no estn comprometidos (nadie los puede leer o modificar ) fuera del otro extremo en la conexin. Esto se logra a travs 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 sesin segura entre sus computadora y el servidor WEB. Cuando las personas piensan acerca de la seguridad del Web la criptografa 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 nmeros de tarjetas de crdito a travs de la Web. La criptografa juega un papel crucial en la Web. Permite que la informacin confidencial sea transmitida de un lugar a otro a travs de redes inseguras sin el riesgo de interseccin o modificacin y permite a los dos lados de la comunicacin verificar su identidad sin verse en persona. La palabra criptografa viene del griego de Escritura Secreta Criptografa ha sido usada por los militares desde los das de las guerras Helnicas y ha crecido firmemente en la sofisticacin en paralelo con las Matemticas y Tecnologas de Informacin. Todos los sistemas criptogrficos, sin importar cuan complejos tienen las siguientes cuatro partes bsicas. 1.- Plaintex (texto en claro) Este es el mensaje antes de que se haga cualquier cosa, Este es leble por los humanos o en un formato que cualquier software adecuado pueda usar. 2,- Texto Cifrado. Este es el mensaje en plaintext despus de que ha sido modificado para hacerlo ilegible. El proceso de convertir texto en claro a texto cifrado se dice encriptar y la operacin inversa es desencriptar. 3.- Algoritmo de encripcin Esta es la operacin 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 criptogrfico funciona bien, solamente las personas que conocen la llave correcta pueden descifrar el texto cifrado. La belleza de la criptografa es tal que el texto cifrado pueda ser transmitido a travs de canales pblicos de comunicacin 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 ledo para humanos ahora las tres son tpicamente cadenas arbitrarias de informacin binaria. Vdeo, sonido y software pueden ser encriptados tan fcilmente como el texto en claro. Una importante caracterstica de un buen sistema depende completamente en la secreca de la descripcin 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 ledo por usuarios no autorizados en varias formas, una forma es a travs del criptoanlisis . Criptgrafos 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 randn Todos los algoritmos comnmente usados en el Web tienen esta propiedad y por tanto son resistentes a los criptoanalistas por esta razn. 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 leble 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 rpidas pueden ser conectadas en red para trabajar en paralelo, adivinando password a una velocidad asombrosa. Esta es la razn 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 dbiles para confiarles informacin valiosa. Las llaves usadas para encriptar informacin sensible son tpicamente de 128 bits o mayores (10 a la 38 posibilidades) ms que el numero de molculas de agua en todos los ocanos del planeta. La forma ms fcil para romper un mensaje encriptado es encontrar una forma de darle la vuelta al sistema. Uno podra 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.
Criptografa Criptografa es la ciencia de la escritura secreta. Es un brazo de las matemticas, parte de la criptologa. Criptologa tiene otro hijo, que es el criptoanlisis, que es la ciencia de romper(analizar) la criptografa. Las precauciones principales de seguridad en las aplicaciones estn dirigidas por la criptografa. Primero, las aplicaciones necesitan asegurarse que los usuarios son quienes dicen ser. Proveer identificacin es llamado autenticacin(autenticacin). En el mundo, una licencia de manejo es un tipo de autenticacin. Cuando usas una computadora, usualmente usas un nombre y un password (clave) para autentificarse. La criptologa provee mtodos ms 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 travs de la red esta sujeto a todo tipo de ataques. La criptografa provee soluciones. Por ejemplo:

Algoritmos NOMBRE MD5 SHA-1 HmacMD5 HmacSHA1 DSA TIPO MD MD MAC MAC Firma REFERENCIA RFC 1321 ftp://ds.internic.net/rfc/rfc1321.txt NIST FIPS 180-1 http://www.nist.gov/itl/div897/pubs/fip180-1.htm RFC 2104 ftp://ds.internic.net/rfc/rfc2014.txt RFC 2104 ftp://ds.internic.net/rfc/rfc2014.txt NIST FIPS 186 http://www.nist.gov/itl/div897/pubs/fip186.htm

ElGamal

Firma Cifrador DES Simtrico Cifrador DESede Simtrico PBEWithMD5and Cifrador DES Simtrico Cifrador ElGamal Asimtrico Intercambio DH de Llaves

* NIST FIPS 46-2 http://www.nist.gov/itl/div897/pubs/fip46-2.htm ANSI X9.17 o ISO 8732 http://www.ansi.org/ PKCS#5 http://www.rsa.com/rsalabs/pubs/PKCS/html/pkcs-5.html * PKCS#3 http://www.rsa.com/rsalabs/pubs/PKCS/ps/pkcs-3.ps

* Vase Applied Cryptography, Bruce Scheneier Addison-Wiley

Despus de haber descrito como trabaja la criptografa en principio. En la practica los principios criptogrficos deben ser incorporados a software y protocolos de comunicacin que estn trabajando. Hay una variedad de protocolos criptogrficos en el Internet, y cada uno especializado en diferentes tareas como se muestra en la tabla siguiente: Protocolos de uso general y particulares

PROTOCOLO CyberCash DNSSEC IPSec PCT PGP S/MIME Secure RPC SET SSL TLS

PROPOSITO Transacciones electrnica de Fondos Sistemas de Dominio de Nombres Encripcin a nivel de paquete Encriptamiento a nivel de TCP/IP E-Mail El desplegado de WEB Llamadas a procedimientos remotos Transacciones electrnica de Fondos Login Remoto Encriptamiento a nivel de TCP/IP

Algunos fueron diseados para seguridad en mdulos especficos de comunicacin, tales como el e-mail y el loggin remoto. Otros son generados, proveen servicios de criptografa para mltiples nodos de comunicacin. En la Web, SSL( Secure Sockets Layer ) es el protocolo dominante para encriptar la comunicacin en general entre los navegadores y servidores, mientras que SET ( Secure Electronic Transaction ) es un protocolo especializado para salvaguardar transacciones basadas en tarjetas de crdito. Security Sockets Layer Es un sistema de encriptamiento de flexible de propsito general, tu probablemente lo has usado an 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 caracterstica enfatizada por frecuentes advertencias desplegadas por el navegador cuando la criptografa no estaba siendo usada.

En el mismo ao un protocolo criptogrfico competa conocido como S-HTTP fue introducido por un grupo de negocios conocido como CommerceNet, aunque los principios criptogrficos 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 diseado para trabajar solamente con los protocolos de Web. SSL es un protocolo de bajo nivel que puede ser usado para encriptar muchos tipos de comunicacin en red. 2.- SSL fue incorporado fue un navegador libre(gratis) que se volvi muy popular. SHTTP estuvo inusualmente disponible en una versin modificada de Mosaic que los usuarios tenan 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 versin 1.0 al 2.x. La versin 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 inplementacin SSl V2.0 en minutos explotando un error en el generador de nmeros randn en el Netscape. Microsoft trabajo en el protocolo PCT que compite con SSL en su primera versin de Internet Explorer en 1996. Netscape responde introduciendo SSL V3.0 una versin que arregla los problemas de v2.0 y agrega muchas caractersticas nuevas ms notablemente soportando el intercambio de llave annima 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 versin v3.0 o mayor y por Internet Explorer v3.0 y mayor. SSL se convirti recientemente en el foco de la actividad de estndares 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 versin diferente de verificadores de mensajes y un conjunto de algoritmos de encriptamiento ligeramente diferentes. Puesto que por la sospecha histrica IETF de los protocolos que se averiguan en la NSA ( National Security Agenci ) no se sabe si va a soportar a Fortezza Caractersticas de SSL El protocolo de SSL opera en la capa de transporte de TCP/IP un nivel debajo de los protocolos especficos de aplicacin tales como NTTP ( News), HTTP( Web) y SMTP ( e-mail). Esto en contraste con el protocolo SHTTP especifico para Web. Esta Caracterstica de SSL flexibilidad e independencia del protocolo. Cualquier programa que usa TCP puede ser modificado para use conexiones seguras SSL haciendo algunos cambios al cdigo fuente. Adems 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 APLICACIN SSL NNTP

TRANSPORTE INTERNET INTERFACE DE RED CAPA FISICA

El principal problema de poner SSL en la capa de transporte es que no esta especficamente afinado para el protocolo HHTP y por lo tanto podra no se tan eficiente para navegar en el Web. Una limitacin 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 caracterstica importante de SSL es su flexibilidad con respecto a escoger el algoritmo de encriptamiento Simtrico, la funcin de verificacin de mensaje y el mtodo de autenticacin. Para la encripcin simtrica SSL puede usar cualquier DES, Triple DES, RS2 RS4. Para la verificacin de mensajes SSL puede usar MD5 SHA como algoritmos de hashing. Para Autenticacin SSL puede usar llaves posibles y Certificados RSA operar en modo annimo en donde el intercambio de llaves de Diffie-Hellman es usado. Una variedad de longitudes de llaves estn disponibles para los algoritmos de encrptamiento incluidas las longitudes truncadas usadas para las versiones de software de SSL de exportacin de Estados Unidos. La combinacin de los algoritmos de encriptamiento simtrico, mtodos de verificacin de mensajes y autenticacin 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 comn. En general los dos tratan de escoger el mtodo fuerte de encriptamiento que los dos tienen en comn. Si un navegador de Web de exportacin que solo soporta llaves de sesin de 40 bits contacta un servidor de Web que no tiene esta limitacin el servidor va a bajar a negociar a 40 bits. Simultneamente 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 exportacin. Algunos Servidores de Web permiten al administrador de hacer una afinacin fina en el proceso de negociacin. Por ejemplo, un administrador de Web puede escoger de permitir el acceso a un directorio en particular solamente aquellos clientes que soportan criptografa fuerte. SSL provee comprensin de datos construido internamente que es importante puesto que un mensaje que es encriptado ya no es comprensible (la comprensin trabaja buscando patrones comunes en los

datos y removiendo quitando la redundancia. El encriptamiento trabaja quitando todos los patrones de los datos dejndolo incompresible. Cuando una conexin SSL se establece todas las conexiones entre el servidor y el navegador estn 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 sesin 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 Transaccin de SSL Un vistazo del protocolo SSL se muestra en la figura ---. Para un descripcin tcnica 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 simtrica 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 conexin al puerto del servidor y enva un mensaje "ClientHello". "ClientHello" lista las capacidades del cliente, incluyendo la versin de SSL que tiene, los cipher suites que soporta, y los mtodos que compresin que tiene. 2.- El servidor responde con un mensaje "ServerHello". El servidor regresa un mensaje que contiene los cipher suite y compresin de datos que a escogido, as como un ID de sesin que identifica a la conexin. Nota que el servidor es el responsable de escoger el cipher suite y mtodos de compresin. Si no hay coincidencias entre los cipher suite soportados entre el cliente y el servidor, entonces el servidor enva un mensaje de "handshake failure" y termina la conexin 3.- El servidor enva sus certificados. Si el servidor esta usando autenticacin basada en certificados ( que usualmente as es casi siempre ), el servidor enva su certificado de sitio X.509v3 firmado. Si el certificado esta firmado por una autoridad non-root, el servidor Tambin enva la cadena de certificados firmados que llegan hasta un CA primario.

4.- El servidor en va al cliente un solicitud de certificado (opcional) Si certificado s de los clientes estn siendo usados para autenticacin de clientes ( actualmente raro pero posiblemente se vea mas en el futuro ), el servidor le enva al cliente un mensaje de solicitud de certificado.

5.- El cliente enva su certificado ( opcional ). Si el servidor lo ha pedido, el cliente enva su certificado X.509v3 firmado. Si el cliente no tiene un certificado, enva una alerta de "no certificate". El servidor puede decidir abortar en este punto con una falla de conversacin (handshake - darse la mano ), o continuar adelante. 6.- El cliente enva un mensaje "ClientKeyExchange". Aqui es donde la llave de sesin simtrica es escogida. Los detalles varan dependiendo de el cipher suite escogido, pero en el caso mas tpico, el cliente genera un secreto "pre-master" usando un buen generados de nmeros randn. 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 sesin ( puesto que diferentes cifradores simtricos usan diferentes largos de llave, la llave de la sesin 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 enva un mensaje de "CertificateVerify" ( opcional). Si se esta usando autenticacin 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 difcil de verlo si alguien esta escuchando la conversacin. El secreto es firmado con la llave secreta RSA del cliente y enviada al servidor, que procede a validarla chocndola contra el certificado del cliente. Ntese que el servidor no tiene que probar su identidad. Puesto que el cliente enva 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 envan el mensaje "ChangeCipherSpec". Este es un mensaje sencillo que confirma que tanto el cliente con el servidor estn listos para empezar la comunicacin usando la llave y cifrado acordado. 9.- El cliente y el servidor envan el mensaje "finished" (terminar). Este mensaje consiste en el hash de MD5 y SHA de toda la conversacin 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 sesin (generada de el secreto pre-master) para cifrar simtricamente transmisiones subsecuentes en ambos sentidos. Adems de los 9 pasos anteriores, existe una transaccin 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 sesin sin que el servidor enve su certificado. Esto puede pasar en cualquiera de los siguientes 3 casos: 1.- El servidor esta usando el protocolo de intercambio de llaves annimo de DiffieHellman. 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 sesin sin

autenticarse uno al otro. Puesto que no hay intercambio de certificados, la interaccin es completamente annima. Esto tambin significa que la transaccin 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 ningn navegador comercial del WEB hasta ahorita. Bibliografa:

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

-Anuff, Ed, JAVA Sourcebook OReilly & 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

S-ar putea să vă placă și