ASPECTOS DEL NIVEL DE APLICACION

Toda la teoría vista hasta ahora es el soporte para crear aplicaciones que funcionan en nuestras LANs, WANs e Internet. Por ejemplo, nuestros programas de sockets son una aplicación muy modesta que puede funcionar tanto en dos nodos de una misma red como situando el cliente en México y el servidor en Australia o viceversa. Revisaremos en esta sección algunos puntos importantes en el uso de aplicaiones de red.

Seguridad de la red

Debido a que cada vez es más común que realicemos nuestras transacciones a través de un medio electrónico en red, necesitamos reforzar la privacía, la protección, la confiabilidad y autenticidad de la información, todo lo cual concierne a la seguridad en red.

La seguridad puede reforzarse desde el punto de vista de incluir mecanismos en las diferentes capas del modelo OSI para evitar que la información sea modificada en beneficio del infractor. Los mecanismos pueden ser físicos (seguridad física) o programados.

En la capa física es posible que un infractor trate de conectarse al mismo medio físico de transmisión, accesando las señales para su beneficio. En este caso, el uso de fibra óptica entorpecería sus esfuerzos, el uso de cable metálico le permitiría mas facilidades.

En la capa de enlace, el protocolo puede conener un algoritmo que encripte los marcos de manera que la capa de enlace del receptor sea el único que puede descifrarlos. Esta misma técnica puede aplicarse en las capas superiores. Como vimos en la sección de firewalls, esta técnica puede ayudarnos a crear túneles o redes virtuales privadas.

Se han estudiado y desarrolado una multitud de técnicas de encriptamiento y desciframiento que van más allá del alcance de este curso. La idea es que, tomando una cadena original C, le aplicamos un filtro F() que realiza modificaciones a C produciendo una nueva cadena encriptada F(C) = E. Debe existir un filtro G() que sea capaz de tomar una cadena encriptada y que produzca la cadena original G(E) = C. Los filtros F() y G() pueden auxiliarse de una llave que permita que, aunque el algoritmo G() y F() sean conocidos, sea imposible obtener la cadena C si no se conoce la llave K. Mientras más larga sea la cadena de K, más tiempo de cómputo requiere que un infractor intente adivinarla para descifrar los mensajes.

Los filtros pueden funcionar de varias formas: por susbtitución de subcadenas, por trasposición y por la aplicación de una operación de enmascarado. Los filtros basados en substitución se pueden violar haciendo un análisis de la frecuencia con que ocurren las letras en los diferentes lenguajes, por lo cual no se usan aislados. Los filtros de trasposición también son violables con el mismo principio. Los de enmascarado son seguros, y se puede enviar tanta información como la longitud de la llave. La técnica es sencilla: Al mensaje C aplique un XOR con la llave. En el destino, aplique la llave nuevamente al mensaje cifrado y obtendremos el original. Ahora el problema es cómo compartir la llave.

Existen dos principios para usar mensajes cifrados: el primero es que los mensajes deben llevar algunos campos de información redundante que refuercen su significado, de manera que no se puedan confundir con mensajes enviados aleatoriamente. Como esta información redundante puede debilitar el filtro de encriptamiento, se introduce el segundo principio que establece que la información redundante debe ser variable en el tiempo, de manera que evite que el envío de mensajes viejos válidos puedan ser interpretados como correctos y causar problemas.

Los mecanismos para crear llaves secretas o para lograr la autentificación más usados comercialmente son DES (Data Encription Standar), RSA (Rivest, Shamir, Adleman), PGP (Pretty Good Privacy), Kerberos, DSS (Digital Signature Standard).

Repaso al DNS

El servicio de nombres DNS es un servicio oculto para los usuarios finales que están acostumbrados a lograr conexiones de Telnet, WWW, FTP, etc. indicando una dirección del tipo "nodo.dominio". Por ejemplo, "telnet imag.imag.fr". Lo que el usuario desconoce, pero que el administrador de red debe instalar, configurar y registrar, es el servicio de nombres.

DNS Cliente

Normalmente, la configuración como cliente de DNS es sencilla. Por ejemplo en UNIX se edita un archivo llamado /etc/resolv.conf y se le insertan dos o tres líneas. Por ejemplo, si el servidor de nombres de mi dominio es el nodo 160.32.98.7 y mi dominio es "prueba.gob.mx", el archivo antes mencionado queda como:

domain prueba.gob.mx

nameserver 160.32.98.7

El sistema, al encontrar presente ese archivo al tiempo de iniciación (boot), habilita que los servicios de red resuelvan sus nombres con el servidor indicado.

DNS Servidor

La instalación, configuración y registro de un servidor de DNS lleva cuatro pasos:

1. Instalar el software necesario para DNS (BIND) si es necesario

2. Editar los archivos de configuración

· El archivo inicial es /etc/named.boot en UNIX

3. Registrar el dominio en el NIC (Network Information Center) correspondiente

4. Registrar el dominio in-addr.arpa para la resolución inversa en USA.

La mayoría de los sistemas operativos tienen integrado el software para DNS, la edición de los archivos es una tarea ardua.

 

Dominios

Un dominio es una cadena conformada por la concatenación (usando un punto) de los diferentes subdominios partiendo del dominio superior punto. Por ejemplo, existen dominios genéricos y de país. Para México, el dominio superior es "mx". Un subdominio de "mx" es "itesm" o bien "udlap". A su vez, "pue" es un subdominio de "udlap", lo cual nos da el dominio completo "pue.udlap.mx.".

Nombres completamente calificados

Un nombre completamente calificado consiste del nombre del nodo concatenado (con un punto) al dominio completo. Por ejemplo, el nodo "imag" y su dominio completo "imag.fr." nos dan el nombre completamente calificado "imag.imag.fr.".

Investigue cuál es el dominio de su red y nombre completamenta algunos nodos. Si tiene aceso a un nodo con UNIX, ejecute ahí el comando "nslookup nodo.dominio" y observe el resultado.

Nombres del dominio inverso o in-addr.arpa

Algunos servicios de Internet necesitan realizar una traducción inversa, es decir, dado una dirección IP se requiere saber su nombre completamente calificado. Para este caso existe el dominio "in-addr.arpa". Un nombre bajo ese dominio tiene un aspecto extraño, por ejemplo, el nodo 192.9.9.7 tiene el nombre "7.9.9.192.in-addr.arpa.". Observe como la dirección IP está al revés.

Por ejemplo, algunos servidores de NetNews revisan que los clientes que están conectándose sean realmente un par correcto (nombre calificado, dirección-IP). Lo que hacen es una petición al dominio in-addr.arpa para que, dado su IP, obtengamos su nombre calificado, también denominado como "nombre canónico". Ejecute en un nodo con UNIX los siguientes pasos:

unix> nslookupookup

> set query=ptr

> 1.9.9.192.in-addr.arpa

... salida ...

> quit

unix>

En resumen, el serviciode DNS permite a la comunidad de Internet saber qué IP tiene cada nodo a nivel mundial y logra nombrarlos de manera única. La resolución del nombre es jerárquica y la obligación de cada administrador de red es mantener un servidor primario (tiene las tablas locales de nombres e IPs de los nodos locales únicamente), un servidor secundario (que obtiene copias periódicas del primario) y sus clientes locales.

Repaso al SNMP

Otro servicio ampliamente usado en la comunidad de Internet es el monitoreo de redes fundamentado en el protocolo SNMP (Simple Network management Protocol), descrito en los RFC 1157, 1441-1452).

Su funcionalidad es sencilla: En cada nodo de la red se instala un pequeño programa llamado "agente de SNMP" que se encarga, de manera general, de colectar información local del nodo, tal como el número de paquetes de red que se recibieron, el número de paquetes dañados, el número de colisiones, la dirección IP, las tablas locales de enrutado, etc. Este agente, a través del protocolo SNMP, es capaz de comunicarse con un nodo central y enviarle toda esta información o un subconjunto de la misma. Al conjunto completo de información que cada agente soporta se le llama MIB (Management Information Base). El nodo central, denominado Network Operation Center (NOC) puede inspeccionar a intervalos regulares a los agentes de toda una red recolectando la información pertinente para saber es estado actual y generar reportes estadísticos para la toma de decisiones.

Las MIB están especificadas en un lenguaje estándard llamado Abstract Sintax Notation One que tiene cuatro tipos de datos primitivos: Entero, cadena de bits, Octeto, Nulo e Identificador de objeto.

El protocolo en sí soporta un conjunto de operaciones muy sencillas que son: Get-request (obtiene el valor de una variable MIB), Get-next-request (obtiene la siguiente variable MIB), Get-bulk-request (obtiene toda una tabla de variables MIB), Set-request (le dice al agente que modifique el valor de una variable MIB), Inform-request (dsecripción de la MIB local) y SnmpV2-trap (reporte de un agente hacia el NOC).

Por ejemplo, una variable MIB típica, la que contiene el IP de un nodo es:

1.3.6.1.2.1.6.13.1.2

Tarea: Consiga el software de SNMP de CMU y realice algunos "queries" sobre su red local.