Interconexión de Redes VPN (Virtual Private Networking) Mauricio Alonso Caneiro Mauricio Alonso Caneiro -1- VPN Indice 1.Introducción. . . . . . . . 04 2. Mecanismos de Protección. . . . . . 06 3. Implementación. . . . . . . 07 . . . . . . 08 . 4. Problemas de VPN. . 5. Requisitos. . . . . . . . . 09 6. Protocolos. . . . . . . . . 11 . . . . . . . 13 7.2. El origen del protocolo IPSec. . . . . 13 7.3. VPNs e IPSec . . . . . . . 14 7.4. Servicios de IPSec. . . . . . . 17 7.5. Asociaciones de seguridad (SAs). . . . 19 7. IPSec 7.1. Introducción. 7.6. Base de datos de asociaciones de seguridad (SAD). 24 7.7. Base de datos de política de seguridad ( SPD). . 26 7.8.. Gestión de claves. . . . . . . 27 7.9. Proceso de tráfico: un ejemplo práctico. . . 28 8. Conclusiones. . . . . . . . 30 9. Bibliografía. . . . . . . . . 32 Mauricio Alonso Caneiro -2- VPN Indice de figuras 3.1. Dos redes conectadas a una pública con gateway seguro .14 3.2. Formato de paquetes IPSec en modo transporte. . . .18 3.3. Formato de paquetes IPSec en modo túnel. . . . .18 3.4. Una conexión IPSec a dos niveles. . . . . .18 3.5. Comunicación bidireccional con IPSec. . . . .19 3.6. Adyacencia de transporte.. . . . . .20 3.7. Encapsulamiento iterativo. Nivel 1. . . . . .20 3.8. Encapsulamiento iterativo. Nivel 2. . . . . .21 3.9. Encapsulamiento iterativo. Nivel 3. . . . . .21 . . .22 3.11. Modos de comunicación en la combinación básica 1. . .22 3.12. Soporte para VPN's simples . . . 3.10. Seguridad entre los hosts a través de Internet. . . . .22 3.13. Combinación de los dos primeros casos. . . . .23 3.14. Una VPN mediante acceso remoto . . . . . .23 Mauricio Alonso Caneiro -3- . VPN 1. Introducción ¿Qué es? Una VPN es una forma de conectar uno o más redes privadas preexistentes por medio de una red pública (como Internet) de tal manera que las redes parezcan una sola para los usuarios. En este sentido, las siglas hacen referencia a que la red es Virtual porque para los usuarios parece que sea una única red, y será Privada porque la comunicación a través de ella es segura y está protegida. ¿Para qué se usa? Un escenario típico de uso de VPN es una compañía que tiene una serie de trabajadores remotos a los que quiere permitir el acceso a sus servicios. Si esto es lo único que se desea hacer, no hace falta una VPN: basta con utilizar tecnologías como Firewalls o proxys. Ahora bien, una VPN permite, además que la comunicación se realice por un canal seguro. Por seguro se entiende que la comunicación cumpla estos requisitos: • Confidencialidad: Los datos que circulan por el canal sólo pueden ser leídos por emisor y receptor. La manera de conseguir esto es mediante técnicas de encriptación. • Autentificación: Emisor y receptor son capaces de determinar de forma inequívoca sus identidades, de tal manera que no exista duda sobre las mismas. Esto puede conseguirse mediante firmas digitales o aplicando mecanismos desafío-respuesta. • Integridad: Debe garantizarse la integridad de los datos, esto es, que los datos que le llegan al receptor sean exactamente los que el emisor transmitió por el canal. Para esto se pueden utilizar firmas digitales. • No repudio: Cuando un mensaje va firmado, el que lo firma no puede negar que el mensaje lo emitió él. Existen varias formas de garantizar la existencia de un canal seguro entre emisor y receptor. Algunas de ellas pueden ser el uso de extranets, o bien proteger los servidores propios mediante passwords utilizando mecanismos de autentificación de terceras partes, o incluso utilizar líneas privadas para todas las comunicaciones que requieran un canal seguro. Sin embargo, utilizar tecnología VPN tiene una serie de ventajas con respecto a otras soluciones, como pueden ser: • Ahorro en costes de comunicaciones. En el caso de usuarios remotos, cuando quieren utilizar los servicios de la compañía no necesitan conectarse directamente a los servidores de la compañía, sino que se conectan directamente por su conexión a Internet. Por otro lado, la compañía puede utilizar sus líneas de conexión a Internet para realizar transmisiones de datos, sin necesidad de contratar líneas privadas adicionales. Mauricio Alonso Caneiro -4- VPN • Ahorro en costes operacionales. Usando VPN para dar acceso a los usuarios, la compañía puede deshacerse de los bancos de módems y de los servidores para acceso remoto, de manera que ya no habrá que administrar esos dispositivos. • Entorno de trabajo independiente de tiempo y lugar a un coste reducido. Mediante el uso de una VPN, los trabajadores remotos pueden acceder a los servicios de la compañía sin necesidad de realizar llamadas a larga distancia ni utilizando líneas privadas. • Los servicios de la compañía están disponibles siempre. Una VPN permite a las compañías ofrecer servicios globales. Los trabajadores remotos pueden conectarse a la red interna sin importar dónde estén situados físicamente. Esto implica que pueden utilizar los servicios de la LAN de la compañía, como impresoras o archivos compartidos, sin problemas. • Una compañía puede ofrecer servicios a sus socios mediante una VPN, ya que la tecnología VPN permite accesos controlados y proporciona un canal seguro para compartir información de negocios. Mauricio Alonso Caneiro -5- VPN 2. Mecanismos de protección Los mecanismos para garantizar la privacidad de las comunicaciones dentro de una VPN son dos: - Basados en password. - Basados en clave pública. Los basados en password son similares a la autentificación tradicional mediante pares ID de usuario-password. Estos mecanismos tienen la desventaja de que no es fácil conseguir un password seguro y que a la vez sea fácil de recordar por el usuario. Por lo tanto, los passwords se vuelven vulnerables a ataques basados en diccionarios o en fuerza bruta. Un refinamiento de estos sistemas son los basados en dispositivos que generan claves de un solo uso. Estos dispositivos generan passwords temporales automáticamente, que caducan al cabo de un cierto tiempo. Este mecanismo es razonablemente seguro, ya que para romper la seguridad de un sistema basado en claves únicas se deben dar dos circunstancias: poseer el dispositivo generador y el código para activarlo. Los sistemas basados en passwords tienen el defecto de que suelen ocuparse solamente de la autentificación, sin prestar demasiada atención a la privacidad. En este sentido, los sistemas basados en clave pública ofrecen: confidencialidad, autentificación, integridad y garantía de no repudio. − La confidencialidad implica que sólo el destinatario podrá leer los datos, lo que se consigue encriptándolos de tal manera que sólo podrá leerlos quien posea la clave para desencriptarlos. − La autentificación (por ejemplo mediante firmas digitales) permite establecer exactamente la identidad de ambas partes. − En cuanto a la integridad, consiste en impedir que los datos puedan ser modificados por terceras personas sin que ello pase inadvertido. − Finalmente, la garantía de no repudio implica que cuando un mensaje lleva una firma digital, el dueño de la firma no puede negar que el mensaje fue enviado por él. En una VPN, se utilizan sistemas de clave pública para la autentificación, mientras que la integridad y privacidad de los datos se garantiza con protocolos como IPSec. Por último, mencionar que en un esquema de clave privada lo más importante es precisamente proteger la clave privada, puesto que la clave identifica a su dueño, y si es robada, el ladrón puede actuar como si fuera el dueño real, con consecuencias imprevisibles. Es por ello por lo que normalmente se deberían utilizar dispositivos hardware para protegerla, tales como tarjetas inteligentes o tokens hardware, que son difíciles de copiar y ofrecen parecidas garantías de seguridad que los dispositivos generadores de claves que se mencionan más arriba. Mauricio Alonso Caneiro -6- VPN 3. Implementación En una primera aproximación, se puede implementar una VPN mediante mecanismos hardware. Éstos se basan normalmente en routers con encriptación, que tienen la ventaja de ser lo más parecido a equipos "plug&play". Su única tarea es encriptar y desencriptar las tramas que pasan a través de ellos, por lo que tienen buenas prestaciones y no introducen demasiado retardo en la red. Ahora bien, no tienen tanta flexibilidad como los sistemas basados en software. Otra aproximación son sistemas basados en Firewalls. Estos sistemas aprovechan las ventajas del firewall como la restricción de acceso a la red o generación de registros de posibles amenazas, y ofrecen además otros como traducción de direcciones o facilidades de autentificación fuerte. Ahora bien, el hecho de insertar el servicio de VPN dentro de un firewall puede afectar en mayor o menor medida al rendimiento del sistema, lo que puede o no ser un problema dependiendo de nuestras necesidades. Si esto se convierte en un problema, algunos fabricantes de firewalls ofrecen procesadores dedicados a encriptación para minimizar el efecto del servicio VPN en el sistema. Por último, los sistemas puramente software son ideales en los casos en los que los dos extremos de la comunicación no pertenecen a la misma organización, o cuando aun estando dentro de la misma organización, las tecnologías de routers y/o firewalls difieren. Esta solución permite mayor flexibilidad en cuanto a la decisión de qué tráfico enviar o no por el túnel seguro, pudiendo decidir por protocolo o por dirección, a diferencia de los sistemas hardware, que normalmente sólo permiten decidir por dirección. Puede ser conveniente en situaciones donde la VPN es útil en algunos casos (consultas a una base de datos) pero irrelevante en otros (navegación normal por la web). También es útil en los casos en los que la conexión se realiza por líneas lentas. Ahora bien, no todo son ventajas. Los sistemas software son difíciles de administrar, ya que requieren estar familiarizados con el sistema operativo cliente, la aplicación VPN y los mecanismos de seguridad adecuados. Y algunos paquetes VPN requieren cambios en las tablas de encaminamiento y los esquemas de traducción de direcciones. Sin embargo, las fronteras entre estas tres aproximaciones se van diluyendo conforme pasa el tiempo. Existen fabricantes que proporcionan soluciones basadas en hardware, pero que incluyen clientes software para VPN e incluso características que sólo se encontraban en los sistemas basados en firewalls. Por otro lado, la introducción del protocolo IPSec está facilitando la mezcla de distintos productos VPN. En cuanto a los algoritmos de encriptación, se puede utilizar prácticamente cualquiera: desde la encriptación de 40 bits que lleva W9x por defecto a algoritmos más elaborados como triple DES. La autentificación de usuarios se realiza utilizando cualquier técnica, desde métodos software a passwords dinámicos tanto software como hardware. Mauricio Alonso Caneiro -7- VPN 4. Problemas de VPN VPN puede provocar una sobrecarga en la conexión de red debido a la encriptación utilizada. La mayoría de dispositivos VPN, tanto software como hardware podrán manejar encriptación para velocidades de conexión 10baseT. Para conexiones más lentas, como los módems, el procesamiento puede ser más rápido que la latencia de la red. Muchas veces las bajas prestaciones dependen más de la pérdida de paquetes provocada por una mala conexión a Internet que por la sobrecarga debida a la encriptación. Mauricio Alonso Caneiro -8- VPN 5. Requisitos Para poder establecer una VPN, ya sea entre varias subnets o entre una LAN y un host "móvil", son necesarios algunos requisitos: Requisitos Hardware: Es necesario tener un encaminador o router a internet, que va a ser la pieza clave de la VPN. Cualquier tipo de encaminador, en principio, sería suficiente. Por supuesto, también es necesario el soporte físico para la comunicación entre las dos subnets o entre la LAN y el host "móvil". Requisitos Software: Se debe tener un sistema de transporte `opaco' entre los dos puntos a unir por la VPN. Esto es, que debe actuar sólo como transporte, sin `mirar' dentro de los datos que va a transportar. El transporte debe asegurar una cierta calidad de servicio, si esto es posible, y debe proporcionar seguridad (encriptación) a los datos. Además será necesario que junto con los encaminadores (ya comentados en los requisitos hardware) se disponga de algún tipo de encapsulamiento disponible para que la red de transporte intermedio (ya sea dialup, Internet u otro tipo de red) sea capaz de entregar los paquetes entre los dos encaminadores de la VPN, sin tener que `mirar' dentro de los datos de la transmisión que, además, podrían estar encriptados. Otro de los requisitos más importantes a la hora de construir una VPN es el hecho de que las aplicaciones deberían seguir funcionando perfectamente como hasta ahora habían funcionado. Es decir, la creación de la VPN debería ser transparente a las aplicaciones que se estén usando o se puedan usar en cualquiera de las redes que forman la VPN. Es de observar que un protocolo que cumple la parte de seguridad y opacidad es el IPSec, y es por ello que será en el que más empeño ponga en su descripción. El encapsulamiento de los datos se podrá cumplir con IPSec también. Veamos las soluciones propuestas por los fabricantes y estándares para estos requisitos: En primer lugar, existen variedad de compañías: Cisco, Alcatel, 3Com, .... que ofrecen paquetes completos de solución, con un hardware que hace las funciones de encaminador-pasarela (a través de Internet) de la VPN, y unos protocolos soportados (normalmente embebidos en el hardware). Mauricio Alonso Caneiro -9- VPN Yo me voy a centrar en lo siguiente: − Internet o alguna red IP como medio de transporte entre las dos más) redes a unir. − Router o similar capaz de encaminar paquetes IP. Mauricio Alonso Caneiro - 10 - VPN (o 6. Protocolos Con el fin de sintetizar algunos de los protocolos de VPN, aquí tenemos una lista de los más famosos: • mppe (Microsoft Point-to-Point Encryption): protocolo que sirve para encriptar los datos de las transmisiones. • mschap: tanto la versión 1 como la número 2, que sirve para establecer la conexión segura y el intercambio de las claves. En la versión 1 se descubrió una vulnerabilidad, que todavía no ha sido confirmada, que le obligó a evolucionar hasta la versión 2 (actual). • IPIP: protocolo de encapsulamiento de IP sobre tramas IP. Este protocolo, que puede parecer poco útil, nos sirve para hacer el tunneling que se marca como uno de los requisitos de VPN. • IP-GRE: protocolo de encapsulamiento de otros protocolos sobre IP. En un principio el tráfico que puede encapsular IP-GRE sería cualquiera. Es útil en el sentido de que podemos tener redes de otro tipo además de IP (como por ejemplo IPX) y funcionar con una VPN de igual manera. Más adelante se verá como IPSec sirve para este mismo fin (a la vez que proporciona otros muchos servicios). • PPTP (Point-to-Point Tunneling Protocol) : protocolo de encapsulado de PPP sobre IP. Es una especificación desarrollada por un consorcio de fabricantes, entre los que estaban gente como Microsoft, 3Com o U.S. Robotics. El protocolo se diseñó originalmente como una forma de encapsular protocolos no TCP/IP (como IPX) para poder ser transmitidos por Internet usando GRE (Generic Routing Encapsulation). Es una especificación genérica, que permite la adición de diversos mecanismos de autentificación y algoritmos de encriptación. Nótese que estas técnicas de seguridad no están dentro del protocolo, sino que se añaden a posteriori. • L2TP (Layer 2 Tunneling Protocol) : protocolo que permite separar el servidor de conexión de nivel 2 OSI (el que “escucha” en el final de la línea telefónica en un módem por ejemplo) del servidor de PPP. De esta manera el cliente accede a un servidor de conexión (ej. banco de módems) y éste -usando L2TP- se comunica con la red (host) con el que el cliente quiere tener acceso. Esto consigue `juntar' dos segmentos de red (uno de ellos es point-to-point) virtualmente. • IPSec : protocolo que sirve para establecer una sesión segura entre dos hosts que se comuniquen a través de IP, proporcionando encriptación a nivel de la capa de red, definiendo nuevos formatos de paquete: la cabecera de autentificación (AH), que permite asegurar la integridad de los datos y el ESP (Encapsulating Security Payload), que permite asegurar la privacidad e integridad de los datos. AH protege la integridad y autenticidad de los datos, incluyendo los campos invariantes de la cabecera IP. Esta cabecera no proporciona confidencialidad, mientras que ESP protege tanto la confidencialidad como la integridad y Mauricio Alonso Caneiro - 11 - VPN la autenticidad de los datos. Cuando se usa para comprobar la integridad de los datos no incluye los invariantes de la cabecera IP. Éste es el protocolo estrella para la comunicación segura, y es el que, consecuentemente, voy a explicar con más detalle. Mauricio Alonso Caneiro - 12 - VPN 7. IPSec 7.1. Introducción IPSec es un acrónimo de IP Security. Se trata de un protocolo cuyo objetivo es proporcionar seguridad y autentificación para las comunicaciones que utilicen el protocolo IP. Es un protocolo de seguridad a nivel de red que se sitúa entre IP y los protocolos de transporte. De esta manera proporciona seguridad a la capa de transporte y de aplicación según el modelo de referencia TCP/IP. Si tomamos el modelo de referencia ISO OSI, IPSec proporcionaría seguridad desde el nivel 3 o nivel 4. Esto será matizado más adelante cuando diferenciemos entre IPSec en sus dos modalidades: transporte y encapsulamiento (tunneling). 7.2. El origen del protocolo IPSec Los orígenes de este protocolo se remontan al año 1994, cuando la Comisión de Arquitectura de Internet (Internet Architecture Board o IAB) realizaron un informe que llevaba por título “La seguridad en la arquitectura de Internet” (RFC 1636). Según dicho informe la opinión generalizada sobre Internet era que carecía de mecanismos para una mayor seguridad. Se identificaron diversas áreas para implementar dichos mecanismos, como la intrusión no autorizada, control de tráfico de red y formas para cifrar y autentificar una comunicación entre dos máquinas cualesquiera dentro de la red. Estas preocupaciones se vieron confirmadas en otro informe más tardío, de 1998, del Equipo Informático de Emergencia y Respuesta (Computer Emergency Response Team o CERT) en el que figuraba una extensa lista de incidentes relacionados con la seguridad de Internet (disponible en http://www.cert.org/annual_rpts/cert_rpt_98.html). El número era superior a 1.300 y afectaba a casi 20.000 localizaciones distintas. Los ataques más serios eran los relacionados con la técnica de suplantación de IP (más conocida según la terminología anglosajona como IP spoofing), aunque también se incluían diferentes formas de intrusión y espionaje del tráfico de paquetes, mediante las cuales los atacantes leían información concerniente a identificación y contraseña dentro de un sistema, bases de datos y otra información de tipo confidencial. Fue por estas razones por las cuales la IAB incluyó cifrado y autentificación como características estrictamente necesarias en la nueva versión del protocolo IP (IPv6). Sin embargo, también se diseñaron de forma que pudieran ser usadas en versiones previas del protocolo IP, como el muy extendido IPv4. Mauricio Alonso Caneiro - 13 - VPN 7.3. VPNs e IPSec Como ya se ha comentado anteriormente, IPSec es el protocolo que se ha considerado más adecuado para diseñar e implementar VPNs. Veamos brevemente por qué. A lo largo de estas líneas se hará referencia a diferentes campos del protocolo IPSec, aunque será más adelante cuando exponga el formato de los paquetes IPSec detalladamente. Toda VPN requerirá algún tipo de mecanismo de encapsulamiento, como ya hemos visto. Supongamos que tenemos dos redes, red A y red B. Tanto la red A como la red B están separadas entre sí por una red pública IP. A su vez, ambas están conectadas a esta mediante un router o firewall capaz de utilizar el protocolo IPSec (a partir de ahora los llamaré gateways seguros para ser consistentes con la bibliografía existente sobre IPSec). Esta situación la vemos ilustrada en la figura a continuación. Figura 3.1: Dos redes conectadas a una pública con gateway seguro Lógicamente, si cualquier máquina dispone de una implementación IPSec cualquier conexión entre ambas sería segura, pero se podría realizar un análisis de tráfico, pues es posible ver el diálogo entre ellas. La aproximación más convencional y que resulta más lógica es que tan sólo los gateways seguros estén conectados utilizando IPSec. De esta forma, para los hosts que forman las dos subredes, la integración en una VPN es totalmente transparente y se deja que sean los gateways quienes realicen todo el trabajo. Para toda VPN en la que esté presente el encapsulamiento es deseable que se realice una multiplexación de paquetes, ya que pueden existir múltiples túneles VPN entre dos mismos extremos, precisamente cuando nos encontramos con un caso como el de la figura anterior pero con más de dos redes. Tráfico para diferentes clientes viaja por el mismo dispositivo físico, así que se hace necesario distinguir qué paquetes pertenecen a qué túnel o conexión. De entre los protocolos presentados L2TP (por medio de los campos tunnel-id y session-id) e IPSec (por el campo SPI) permiten multiplexación. Mauricio Alonso Caneiro - 14 - VPN Igualmente cierta información de configuración debe saberse por un extremo al que se solicita establecer un túnel VPN, como la dirección IP del otro extremo y atributos relevantes sobre el túnel como, por ejemplo, el nivel de seguridad deseado. El intercambio de estos datos se puede realizar de dos formas: con una operación realizada por un gestor de túneles o a través de un protocolo de señalización que permite el establecimiento de túneles de forma dinámica. El protocolo de señalización, al estar integrado en el propio protocolo de encapsulamiento reduce la sobrecarga del sistema para formar VPNs. Reduce claramente la cantidad de configuración y administración. Todos los datos antes mencionados pueden ser negociados de forma automática entre dos puntos, mientras que un gestor significa una herramienta administrativa. En entornos con usuarios móviles que están intermitentemente conectados a la red privada las ventajas de un protocolo de señalización se muestran más evidentes si cabe. Los protocolos que implementan protocolos de señalización son L2TP (protocolo de control L2TP), IPSec (protocolo IKE) e IPGRE (usado con encapsulamiento de IP móvil). En muchas aplicaciones de VPNs, la red puede transportar tráfico opaco (incomprensible por el hecho de estar cifrado) o multiprotocolo. El protocolo de encapsulamiento debe, por tanto, permitir el transporte multiprotocolo. - L2TP está diseñado para transportar paquetes PPP, que a su vez puede ser usado para transportar tráfico multiprotocolo. - IPGRE también incluye identificación de protocolo. - IP/IP e IPSec asumen que el tráfico encapsulado es de tipo IP, protocolo para el cual están diseñados, pero, de todas formas, IPSec se puede extender al transporte multiprotocolo durante la negociación de los parámetros del túnel, con lo que habría que modificar este módulo del protocolo (el protocolo de señalización IKE). Si queremos características propias de calidad de servicio (Quality of Service o QoS) IPSec no proporciona un mecanismo de secuenciación de tramas como L2TP o IPGRE. IPSec utiliza un identificador de trama para evitar el reenvío y así protegerse de ataques de denegación de servicio (Denial of Service o DoS), pero no garantiza una entrega ordenada de paquetes. El mantenimiento de túneles es otra característica a tener en cuenta. Especialmente relevante resulta este aspecto cuando se trata de cerrar túneles inactivos para liberar así recursos no usados. Al igual que ocurría con el protocolo de señalización esto puede no estar contemplado en el protocolo de encapsulamiento propiamente dicho. Un ejemplo de este último caso sería el envío de mensajes fuera de banda por parte del protocolo de encaminamiento. Estos mensajes serían enviados fuera de banda declarando la no necesidad del túnel entre los dos extremos, dando por finalizada la conexión segura. El algoritmo de encaminamiento podría detectar esta situación cuando no es capaz de obtener respuesta de un vecino durante un período de tiempo prudencial. Mauricio Alonso Caneiro - 15 - VPN Por otro lado, L2TP examina periódicamente la validez de los túneles supuestamente activos. IPSec establece los túneles ante la llegada de datos que lo exigen (por su dirección IP de destino, como veremos más adelante) y tiene parámetros para establecer un tiempo de vida tras el cual se deben renegociar los parámetros para iniciar un nuevo túnel seguro, si la comunicación entre los dos extremos no ha finalizado, claro está. En el caso contrario se cierra la conexión. La sobrecarga que introduce un protocolo de encapsulamiento puede ser un asunto preocupante a priori, pero como veremos, teniendo en cuenta que IPSec utiliza cifrado simétrico o de clave privada, esto no llega a suponer un verdadero problema. Y en lo que se refiere al proceso de encapsulamientodesencapsulamiento, la automatización es extremadamente simple y rápida. De hecho, las implementaciones por software suelen ser eficientes con ordenadores domésticos de gama media/alta. El punto más importante es que un protocolo de encapsulamiento en una VPN debe permitir diferentes niveles de seguridad, sean cuales sean los exigidos por los clientes de la red. Esto se logra con algoritmos de cifrado y autentificación con diferente nivel de complejidad. Ningún protocolo mencionado, a excepción de IPSec, lleva mecanismos de cifrado y/o autentificación intrínsecos, sino que se apoyan en la seguridad de los niveles inferiores (en concreto el nivel 2). Esta característica es la que nos conlleva a adoptar de forma definitiva el protocolo IPSec como el medio de implementar una VPN segura. Cabe destacar que una VPN sin cifrado ni autentificación es posible con encapsulamiento IP/IP o IPGRE, pero no sería una VPN segura. Sería una red privada a efectos administrativos porque todos los hosts intercambiarían información como si estuvieran en una misma red. No obstante hay que tener presente, en todo momento, que la información sería visible a terceros cuando los envíos se producen entre las dos redes separadas por la red pública y que carece de seguridad. Mauricio Alonso Caneiro - 16 - VPN 7.4. Servicios de IPSec IPSec proporciona tres servicios: − Una función únicamente de autentificación denominada Authentication Header (AH), es decir, cabecera de autentificación, − Una función de autentificación y/o cifrado llamada Encapsulating Security Payload (ESP) que equivale a carga encapsulada de forma segura y por última, − Una función de intercambio de claves en un principio contemplada por el protocolo ISAKMP/Oakley, pero que finalmente fue integrado en el protocolo IKE. En una VPN tanto el cifrado como la autentificación son deseables ya que es importante asegurar: (1) Qué usuarios no autorizados se introduzcan en la red. (2) Qué terceras partes que practiquen la escucha o espionaje de comunicaciones en la red pública IP (de ahora en adelante Internet) puedan leer mensajes enviados por nuestra VPN. En concreto, AH facilita integridad sin conexión, autentificación propiamente dicha y un servicio opcional para evitar el reenvío de paquetes. ESP puede proporcionar confidencialidad (cifrado) y ocultación limitada del flujo de tráfico así como los servicios ya mencionados de AH. Cuando ESP es invocado, es obligatorio que al menos uno de los dos servicios sean utilizados. Estos dos protocolos pueden ser usados independientemente o de forma combinada. Las diferentes combinaciones se utilizan para aumentar el nivel de seguridad de IPSec. Por ejemplo, ESP puede proporcionar los dos servicios, en cambio, AH tan sólo puede facilitar uno de ellos, pero se diferencia de ESP en que, al autentificar puede también ocultar determinados campos de la cabecera de un paquete IP. Aunque en general se utiliza ESP, una combinación de ESP para cifrado y AH para autentificación proporciona un grado adicional de seguridad. Ambos protocolos pueden ser utilizados de acuerdo a dos modalidades: Modo Transporte: Está contemplado, principalmente, para protocolos de capas superiores. En IPv4, el encabezado IPSec en modo transporte aparece inmediatamente después del encabezado IP más opciones y antes de cualquier protocolo de nivel superior (por ejemplo TCP o UDP). Se diferencia de IPv6 en que en este último se sitúa tras el encabezado IP junto con sus extensiones y, opcionalmente, antes o después de opciones de destino pero siempre antes de los protocolos de capas superiores. Mauricio Alonso Caneiro - 17 - VPN Figura 3.2: Formato de paquetes IPSec en modo transporte Modo Túnel: Además de aplicar los servicios de seguridad, realiza un encapsulamiento del paquete IP, haciendo de IPSec un protocolo ideal para la construcción de VPNs. Recordemos que el diseño de IPSec no está relacionado, en modo alguno, con el concepto de VPN, sino con la concepción de Internet como una red con escasos mecanismos de seguridad. Cuando se aplica un encapsulamiento aparecen dos direcciones IP de destino. La exterior que indica el destino capaz de desencapsular tráfico IPSec y la interior, el destino final a donde se entrega el paquete. El encabezado de IPSec aparece entre la dirección exterior y la interior. Figura 3.3: Formato de paquetes IPSec en modo túnel Puede deducirse de lo anterior que la granularidad con la que se puede utilizar el protocolo IPSec es variable. Si deseamos que los paquetes entre dos hosts de dos redes distintas atraviesen Internet de forma segura, pero además queremos asegurarnos que nadie más dentro de la red A o red B es capaz de leerlos, se pueden combinar ESP y AH (opcionalmente) en modo transporte y encapsulado. Un escenario de estas características es el representado a continuación. Figura 3.4: Una conexión IPSec a dos niveles Mauricio Alonso Caneiro - 18 - VPN 7.5. Asociaciones de seguridad (Security Associations o SAs) El concepto clave en el protocolo IPSec son las asociaciones de seguridad o Security Associations, a las cuales me referiré de ahora en adelante por su acrónimo en inglés, SA. Una SA es una conexión unidireccional entre un emisor y un receptor que además proporciona seguridad sobre el tráfico que circula entre los dos extremos que conforman dicha conexión. Nótese que se trata de una comunicación unidireccional o simplex. Si el diálogo entre las dos máquinas es bidireccional significa que necesitamos dos SAs (una en cada dirección, según la figura 3.5, en la que las flechas apuntan al extremo receptor de la SA). Figura 3.5: Comunicación bidireccional con IPSec Una SA tiene un identificador único formado por tres parámetros: • Índice de parámetros de seguridad (Security parameters index o SPI): una cadena de bits asignada a esta SA y tiene significado en un contexto local, es decir, en los extremos de la SA. El SPI se envía dentro de los encabezados de ESP o AH para permitir al receptor seleccionar la SA bajo la cual se procesará el paquete recibido. • Dirección IP de destino: en un principio la dirección de destino puede ser de tipo unicast, broadcast o multicast, pero los mecanismos actuales de gestión de SAs en IPSec sólo están definidos para tratar direcciones unicast. Esta dirección será, por tanto, un host dentro de una red o un gateway seguro. • Identificador del protocolo de seguridad: indica si se utiliza AH o ESP en la SA. Sobre una misma SA puede actuar ESP o AH, pero no ambos. Para combinar los dos protocolos se necesitaría establecer dos SAs, cada una con un protocolo, e indicar mediante las herramientas de gestión apropiadas el orden por el que se procesará el tráfico de paquetes. Cuando más de una SA se aplica sobre el tráfico de paquetes aparece el término de agrupación de SAs (SA bundle), esto es, una secuencia de SAs, ejecutadas de manera ordenada para satisfacer cierto nivel de seguridad. Mauricio Alonso Caneiro - 19 - VPN Las agrupaciones responden a dos tipos diferenciados: Adyacencia de transporte Hace referencia a la aplicación de más de un protocolo de seguridad al mismo datagrama IP, sin invocar encapsulamiento. Esta aproximación sólo aumenta la seguridad respecto a una SA (no una agrupación) cuando aplicamos primero ESP y AH posteriormente (ver arriba Servicios IPSec). Figura 3.6: Adyacencia de transporte Encapsulamiento iterativo Consigue construir niveles de seguridad a base de combinar SAs en modo túnel entre los dos hosts que desean establecer una comunicación segura y entre los gateways seguros. Las tres formas contempladas presuponen que los hosts son capaces de procesar tráfico encapsulado con IPSec. En un primer nivel de seguridad se encapsula doblemente, directamente entre los hosts combinando ESP y AH. Utilizar el mismo protocolo es una elección poco probable ya que no se consigue incrementar cualitativamente la complejidad a la que se enfrentaría un atacante espiando el tráfico de red. Figura 3.7: Encapsulamiento iterativo. Nivel 1 Mauricio Alonso Caneiro - 20 - VPN En el siguiente nivel de seguridad sólo uno de los dos extremos de las SAs es el mismo. Los túneles pueden ser o bien AH o bien ESP. Figura 3.8: Encapsulamiento iterativo. Nivel 2 El tercer nivel de seguridad aplica dos túneles en los que ningún par de extremos coinciden. Al igual que antes AH o ESP son aplicables. Figura 3.9: Encapsulamiento iterativo. Nivel 3 A partir de esta tipología se obtienen las llamadas combinaciones básicas de SAs. Cualquier sistema que se considere que cumpla la definición del protocolo IPSec, obligatoriamente tiene que ser capaz de generar estas combinaciones y también de procesarlas si es el receptor de la información. En todos los diagramas mostrados, la línea doblemente punteada representa una SA o una agrupación de SAs, indistintamente. Mauricio Alonso Caneiro - 21 - VPN Combinación Básica 1 Figura 3.10: Seguridad entre los hosts a través de Internet Se trata del caso más simple. Se puede seleccionar modo transporte o modo túnel, así que los encabezados del host 1 y del host 2 pueden tener cualesquiera de los siguientes aspectos: Figura 3.11: Modos de comunicación en la combinación básica 1 Combinación Básica 2 Figura 3.12: Soporte para VPN's simples Este es un ejemplo muy ilustrativo de la capacidad de IPSec para implementar VPNs seguras. Veremos este caso con cierto detalle en la aplicación de un caso práctico más adelante en el proceso de comunicación, paso a paso, entre el host 1 y el host 2. AH o ESP se pueden utilizar dependiendo de cual sea la política de seguridad de la organización. Mauricio Alonso Caneiro - 22 - VPN Combinación Básica 3 Figura 3.13: Combinación de los dos primeros casos Añade un nivel adicional de seguridad respecto al caso anterior. Como ya hemos comentado evita la intromisión de terceras partes dentro de la red local y asegura que única y exclusivamente el extremo receptor puede leer la información enviada por el emisor. En esta modalidad un cliente itinerante puede autentificarse dentro de la red privada y pasar a formar parte de la misma con los mismos derechos que si fuera físicamente parte de la misma. Esta modalidad, aunque contemplada por IPSec, es la menos utilizada ya que hay protocolos más aconsejables como L2TP o PPTP ideados específicamente con este fin. Con esta división vemos como a partir del primer caso como bloque básico, el resto de lo casos se van añadiendo y superponiendo, haciendo de IPSec un protocolo ideal para construir VPNs en todas sus diferentes modalidades, ya sea conectando dos redes remotas a través de una red pública no segura o añadiendo hosts remotamente. Figura 3.14: Una VPN mediante acceso remoto Mauricio Alonso Caneiro - 23 - VPN 7.6. Base de datos de asociaciones Association Database o SAD) de seguridad (Security En cada una de las entradas de esta base de datos (que se genera de forma dinámica) se definen los parámetros de una SA. Para el proceso hacia el exterior cada una de estas entradas está vinculada a una entrada de la base de datos de políticas de seguridad o SPD (ver el siguiente punto). Si llega un paquete dirigido a un host o gateway con el que se quiere establecer una conexión segura, se crea junto con la SA una entrada en la SAD asociada y se vincula a la SPD. Para tráfico entrante, cada entrada de la SAD se indexa por dirección IP de destino, tipo del protocolo utilizado en esa conexión de IPSec (ESP y/o AH) y SPI. Cada entrada de esta base de datos contiene una lista de parámetros que se dividen según se utilicen para asociar el tráfico que llega por una SA a la entrada en concreto de la SAD (se realiza una búsqueda secuencial por las tuplas hasta que se encuentra una coincidencia), y otros campos destinados al proceso de paquetes IPSec. Voy a incluir una lista de los parámetros de cada una de las entradas de esta base de datos. Tan sólo se incluyen los estrictamente necesarios. Otros parámetros son posibles si se desean funcionalidades adicionales o características específicas, pero no están contempladas por IPSec: • Dirección IP exterior: la dirección destino. • Protocolo IPSec: AH o ESP. Especifica el protocolo a ser aplicado sobre el tráfico de esta SA. • SPI: el valor de 32 bits que se usa para distinguir entre diferentes SAs que terminan en el mismo extremo y que utilizan el mismo protocolo. Hasta aquí los campos relacionados con la identificación de una entrada con la SA por la cual se recibe tráfico entrante. Los parámetros usados para el proceso de IPSec son estos (tanto para tráfico entrante como saliente): • Contador de número de secuencia: valor de 32 bits usado para generar un número de secuencia en el campo correspondiente en la cabecera AH o ESP. • Desbordamiento de contador de secuencia: flag indicando si un desbordamiento en el contador de secuencia debería registrar este evento (evento auditable) para evitar transmisión adicional de paquetes sobre la SA. • Ventana anti-reenvío: contador de 32 bits y mapa de bits (o equivalente) usado para determinar si un paquete ESP o AH entrante es un reenvío. • Algoritmo de autentificación AH, claves, etc. • Algoritmo de cifrado ESP, claves, modo IV, IV, etc. Mauricio Alonso Caneiro - 24 - VPN • Algoritmo de autentificación ESP, claves, etc. Si el servicio de autentificación de ESP no está activado este campo estará vacío o marcado como null. • Tiempo de vida de la SA: intervalo de tiempo tras el cual una SA debe ser reemplazada por una nueva SA (y nuevo SPI) o darla por finalizada, junto con qué opción de estas dos posibles debería ser ejecutada. Expresable como un valor temporal, cuenta de bytes o ambos. El primero que se supere será el que provoque la acción marcada. • Modo del protocolo IPSec: túnel, transporte o cualquiera de los dos. En este último caso la implementación de IPSec debe tener mecanismos para saber cuando aplicar cada modo de forma apropiada. De esta forma podemos enviar protocolo en ambos modos por la misma SA. • PMTU: cualquier variable relacionada con el MTU y otros datos cambiantes del camino seguido por el paquete. Mauricio Alonso Caneiro - 25 - VPN 7.7. Base de datos de política de seguridad (Security Policy Database o SPD) Con esta base de datos se especifica en un sistema qué servicios se ofrecen a los datagramas IP procesados y en qué manera. El protocolo IPSec no incluye detalles de implementación o la interfaz de dicha base de datos, pero sí que especifica ciertas funcionalidades mínimas para que un usuario o administrador en un sistema pueda controlar cómo IPSec debería ser aplicado al tráfico de red, enviado o recibido por un host o gateway seguro. Todo paquete que abandone o llegue al sistema debe generar una consulta en esta base de datos para tomar una decisión respecto a cómo tratarlo. Podría implementarse como dos bases de datos diferenciadas o con un campo determinado para distinguir los dos tipos de tráfico. Para todo paquete entrante o saliente existen tres acciones posibles: • Aplicar IPSec: consiste en cifrar y/o autentificar un paquete de acuerdo con las normas establecidas en la propia entrada de la base de datos. Cuando esto se hace se comprueba si la entrada correspondiente está vinculada a una de la SAD (para consultar claves y resto de parámetros a añadir a las cabeceras ESP o AH) y si no se crea una nueva y se procede al envío de la información. • No aplicar IPSec: consiste en realizar un encaminamiento normal del paquete, o tratarlo como lo haría un sistema que no implementase IPSec. • Descartar el paquete: significa inhibir todo tipo de acción, similar a lo que haría un firewall. Generalmente se emplea como medida de seguridad. Cuando se aplica IPSec, en esta misma base de datos se incluye una especificación de una SA o agrupación de SAs, el listado de protocolos de IPSec, modos y algoritmos empleados junto con los requisitos de anidamiento. Aunque en un principio cierta información pudiera parecer redundante respecto a la SAD, recordemos que las entradas de la SAD se forman dinámicamente y a priori no sabemos siquiera si existe una SA destinada a manejar el tráfico IPSec entrante o saliente. A la hora de elegir una entrada se hace en base a las direcciones de destino u origen IP que se encuentran en la cabecera del datagrama IP. Cada una de las tuplas de la base de datos tienen como primer campo un selector, que consiste en una dirección IP, un rango o un rango mediante comodines. Mauricio Alonso Caneiro - 26 - VPN 7.8. Gestión de claves La porción de IPSec encargada de la gestión de claves incluye la elección y distribución de claves secretas para cifrado simétrico. La arquitectura IPSec obliga a que cualquier producto IPSec soporte dos tipos de administración de claves: • Manual: el administrador de una red dada configura manualmente cada sistema con sus propias claves para que coincidan entre sí. Es práctico para entornos pequeños y relativamente estáticos. • Automático: un sistema automático permite la creación de claves para SAs en base a una petición y da servicio al uso de claves en grandes sistemas distribuidos con una configuración en permanente cambio. El protocolo por defecto definido para la distribución de claves en IPSec fue, inicialmente, el conocido como ISAKMP/Oakley, que hace referencia a los dos módulos que permiten el intercambio de claves. Ambos se integran en un esquema más general, IKE. Veamos en qué consisten, exactamente, los módulos Oakley e ISAKMP, respectivamente: • Protocolo de determinación de claves Oakley : Oakley es un protocolo de intercambio de claves basado en el algoritmo Di-e-Hellman, pero con ciertas medidas adicionales de seguridad. En particular, el algoritmo Di-e-Hellman por sí solo no autentifica a dos usuarios que intercambien claves, por lo que el protocolo es vulnerable a ataques de suplantación. Oakley incluye mecanismos para evitar este problema. • ISAKMP (Internet Security Association and Key Management Protocol): ISAKMP especifica un marco para el intercambio de claves en Internet junto con los protocolos (y formatos) capaces de negociar atributos de seguridad. ISAKMP por sí mismo no dicta el uso de un algoritmo de intercambio de claves; en lugar de ello, ISAKMP consiste de un conjunto de tipos de mensajes que permiten el uso de una serie de algoritmos. Oakley es el algoritmo de intercambio de claves en concreto que apareció con la versión inicial de ISAKMP. Mauricio Alonso Caneiro - 27 - VPN 7.9. Proceso de tráfico: un ejemplo práctico El caso práctico que presento se remite a la combinación básica 2, VPNs simples (Ver figura 3.12). En esta VPN disponemos de 2 hosts, pertenecientes a dos redes distintas. Cada una de estas dos redes están conectadas a Internet mediante un gateway seguro, que serán los que establezcan una comunicación mediante IPSec. Dada la simplicidad de la configuración de nuestra VPN el secreto compartido (la clave) se introducirá manualmente. En un caso real donde la complejidad sea de esta magnitud también es lo más aconsejable, así que podemos afirmar que intentamos ajustarnos a una realidad práctica en la que una organización desea implementar una VPN. Los pasos en los que se produce la comunicación son los siguientes: 1. El host 1 envía un paquete al host 2. La difusión del paquete en la red local es atendida por el gateway seguro. 2. El gateway seguro analiza el paquete, comparando su dirección IP de destino contra las entradas de la SPD. Al encontrar una entrada o patrón que coincida, negocia una SA con el gateway seguro que separa al host 2 de Internet. 3. Mediante el protocolo IKE el gateway seguro 2 acepta establecimiento de la SA. Al ser el secreto compartido conocido antemano ninguna distribución de claves es necesaria ni el envío certificados digitales. El segundo gateway informa al primero que abierto al SA. el de de ha 4. El primer gateway, ya habiendo asociado la entrada apropiada de la SPD con una entrada establecida dinámicamente en la SAD cifra y encapsula el paquete con los parámetros contenidos en esta base de datos. Se procede así al envío. Cualquier encabezado adicional AH y/o ESP es añadido al paquete y luego este se introduce en el campo de datos de un nuevo paquete, dirigido al segundo gateway. 5. El paquete, a primera vista, es un paquete IP sin ninguna distinción y es encaminado de forma normal hasta llegar al segundo gateway. Este paso, en el que no interfiere IPSec en modo alguno, es no obstante la clave de la VPN segura, ya que cualquier atacante que intente averiguar el contenido de la información enviada se encontrará con un mensaje cifrado y/o autentificado en la carga de datos. Si quiere leer el texto en claro o modificar el contenido del mensaje se enfrenta a un problema computacionalmente intratable. 6. El paquete llega al segundo gateway. Se aplica el tercer paso de forma inversa. Se compara contra las entradas de la SPD de tráfico entrante. Una de sus entradas está vinculada a una de la SAD, en la que se encuentran los parámetros de la SA que comparten emisor y receptor. La parte de datos del paquete es extraída (desencapsulamiento) y descifrada. Mauricio Alonso Caneiro - 28 - VPN 7. El paquete original con el texto en claro es entregado al host 2. Todo tráfico con los datos no cifrados se realiza en un entorno seguro, siendo el envío a través de la red pública con los niveles de seguridad deseados por los dos extremos que se ponen en contacto. Mauricio Alonso Caneiro - 29 - VPN 8. Conclusiones Como vemos, la creación de una VPN ha dado solución a la mayoría de los retos que le habíamos impuesto. Ahora, gracias a que podemos tener direcciones IP correspondientes a una misma subred IP, podemos cumplir el punto de requisitos que nos pedía mayor facilidad para la administración de la red. Usando IPSec hemos conseguido, además, otorgar los servicios de autentificación (AH) y encriptación / opacidad de los datos (ESP). El punto de requisitos que mencionaba la necesidad (o quizás el deseo) de que las aplicaciones deberían seguir funcionando sin tener que modificarlas debido a la creación de la VPN no se va a cumplir enteramente. Esto es debido a que algunas aplicaciones que trabajen directamente a un nivel inferior que el de IP (que deberían de ser aquellas que monitoricen la red, por ejemplo) van a "darse cuenta" de que hay dos redes físicamente separadas, ya que, por ejemplo, no serán capaces de analizar el tráfico que suceda entre dos hosts de otras subredes, que sí serían capaces de analizar en un segmento de una auténtica LAN. Esto se puede solucionar, si es una necesidad crítica, usando un protocolo que trabaje sobre el nivel 2 OSI (L2), como sería por ejemplo L2TP, que está pensado para `juntar', en un principio, un host con una subnet, pero que puede servirnos para comunicar dos gateways de las subnets a unir por el VPN. Las aplicaciones que hacen uso de las capacidades de broadcast de IP plantean un problema que tampoco se soluciona con el uso de IPSec para la creación de la VPN. Debido a que IPSec tiene un secreto compartido por cada par de IP's, el broadcast no tiene sentido para él, ya que tan sólo un host sería capaz de desencriptar los datos. El último problema que podría existir aparece cuando intentamos reunir dos VPN's existentes (o más) en una sola VPN. Pongamos un ejemplo: La compañía A tiene configurada una VPN, al igual que la compañía B, y, de mutuo acuerdo, deciden unir ambas, para formar una sola empresa. Tanto A como B deben de asegurarse que ninguna de ellas tiene direcciones de red que existan en la otra, es decir, sus direcciones de red privadas no deben de solaparse, para que no exista ninguna IP que esté tanto en la red de A como en la de B. Esto puede no ser un problema si las IP's asignadas a sus redes son IP's reales de Internet. Pasada la primera comprobación se debe asegurar que tanto A como B usan el mismo estándar de comunicación en sus subnets ya que, en caso contrario no se podría, en un principio, establecer rutas de encaminamiento para protocolos diferentes. Este mismo problema aparece cuando una de las compañías usa IPSec para la comunicación entre sus hosts de sus subnets, y la otra compañía no. Mauricio Alonso Caneiro - 30 - VPN Para solucionar estas dificultades de `entendimiento' que pudiesen aparecer entre dos VPN's, el VPNC (VPN Consortium) ha definido unos tests que definen nuestra VPN con uno de los tres niveles que voy a indicar a continuación. Según si nuestra solución de VPN consigue pasar 1, 2 ó 3 de los tests definidos, será más segura y "estándar". VPNC Comformance Tests: Basic Test : La prueba consiste en averiguar si un gateway de VPN (con IPSec) funciona correctamente o no. Para ello, se escoge un host de la red de detrás del gateway a probar, y se intenta acceder a una página web que está en otra red detrás de otro VPN-gateway. Este último gateway debe de haber sido probado previamente, y para asegurarse de ello, VPNC escoge dos VPN-gateways ampliamente usados: uno corriendo sobre OpenBSD y el otro sobre KAME Rekeying : Se probará si nuestro VPN-gateway es capaz de hacer 'rekeying'. Esto es que cuando se le solicite, nuestro gateway deberá ser capaz de renegociar una nueva clave de secreto compartido. Esto se hará a través del IKE. Certificates Test : El test probará en nuestro VPN-gateway la capacidad de autentificarse usando un certificado digital PKIX en modo firma RSA, que es el método más común de certificación usado con IKE. Los certificados los expide el VPNC tras comprobar ellos mismos que se superan las pruebas establecidas. La primera vez que se pide pasar el test es necesario pagar una cantidad (media) al consorcio. Desde entonces se pueden renovar los certificados de forma gratuita, si se deciden volver a pasar, o intentar pasar los que quedasen. Es de notar que los certificados hacen mención a los gateways implementando únicamente IPSec, con lo que el problema anterior con respecto a la necesidad de definir un estándar de conexión para las VPN's ha quedado bastante reducido. Ahora sólo nos tendríamos que preocupar de no compartir las mismas IP's. Si nuestras necesidades no se ajustan al uso de IPSec para tráfico IP, estos tests no podrán ser superados, puesto que se realizan exclusivamente para comprobar IPSec funcionando como cápsula. Mauricio Alonso Caneiro - 31 - VPN 9. Bibliografía La bibliografía usada encontrada en la web. corresponde principalmente a documentación Hago especial hincapié en los RFC's (Request For Comments) que he tenido que leer por ser la fuente principal de información que he usado. • Internet Engineering Task Force (www.ietf.org) RFCs: 2401, 2764, 2709, 2411, 2521, 2685 (IPSec) • Virtual Private Network Consortium (www.vpnc.org) • Cisco (www.cisco.com) IPSec (White paper) • TechGuide (techguide.com) Managing the costs and complexities of VPN deployment • Network World Fusion Focus on VPNs, 06/16/99, by Tim Greene Mauricio Alonso Caneiro - 32 - VPN