Redes Privadas Virtuales Jose Luis Ruiz González VPN - Redes Privadas Virtuales Jose Luis Ruiz González, Marzo 2002 Introducción: La nueva economía exige, no como un lujo sino más bien como una necesidad, una cobertura global entre oficinas locales y remotas de una misma organización. Una red privada virtual (RPV o VPN, Virtual Private Network) es la interconexión de varias redes locales (LAN, Local Area Network) que están separadas físicamente (remotas) y que realizan una transmisión de datos entre ellas de un volumen considerable. De forma habitual, lo que se pretende es que dicho grupo de redes locales se comporten como si se trataran de una única red local, aunque por diversos motivos, fundamentalmente de índole económica, la interconexión entre dichas redes LAN se efectúa a través de medios potencialmente hostiles o inseguros (Internet, Red telefónica conmutada o RTC a través de módem, Líneas alquiladas, RDSI o ISDN, X.25, Frame Relay, ATM,...), de forma que hay que articular diversos mecanismos, especialmente de encriptación y de firma digital, para garantizar la seguridad de los sistemas. El principal elemento que subyace bajo el establecimiento de una VPN son las pasarelas (gateways) entre la red privada y la red pública. Sean estas basadas en software, hardware o una combinación de ambos, estos elementos se encargan de trabajar al servicio de la red privada que están protegiendo. Cuando un host local envía información a un host remoto que pertenece a la misma VPN, los datos tienen que atravesar el primer gateway protector antes de salir a la red pública, y luego a través del segundo gateway a la entrada de la red local remota en la que está el host receptor de la información. El sistema protege dicha información de forma automática encriptándola, haciéndola de tal forma incomprensible a terceras partes. Los gateways pueden asimismo hacer una doble función, al actuar también como firewalls o cortafuegos que deneguen el acceso de datos dañinos o maliciosos a nuestra red. Para que el tránsito de información sea seguro, el sistema de red privada virtual actúa a través de dos mecanismos simultáneos: Certificación: Cada uno de los gateways que pretendan unirse a la VPN debe garantizar de alguna forma que está autorizado. Esto se hace a través de algún mecanismo de firma digital, normalmente a través de una autoridad de certificación (Certification Authority). Esta certificación suele ser doble, e incluye un elemento electrónico y un número de identificación personal o PIN (Personal Identification Number). De esta manera, el usuario debe poseer de alguna forma un código electrónico, bien sea una tarjeta magnética o un fichero en un ordenador, y memorizar otra parte del código. Esto reduce drásticamente el problema de que alguien pueda falsear una identidad para entrar al sistema, puesto que debe poseer ambos elementos. 1 Redes Privadas Virtuales Jose Luis Ruiz González Encriptación: Una vez dentro de la VPN, cada uno de los gateways envían su clave pública a todos los demás gateways pertenecientes al sistema. Con el uso de sistemas de encriptación simétricos, de clave pública y clave privada, la información se encripta matemáticamente de tal forma que es extremadamente complejo desencriptar la información sin poseer las claves. Existe un proceso de gestión de dichas claves (Key management) que se encarga de su distribución, su refresco cada cierto tiempo, y revocarlas cuando sea necesario hacerlo. Se ha de conseguir un balance entre los intervalos de intercambio de las claves y la cantidad de información que se transfiere: Un intervalo demasiado corto sobrecargaría los servidores de la VPN con la generación de claves, mientras que uno excesivamente largo podría comprometer la clave y la información que esta protege. Esquema habitual de una VPN: 2 Redes Privadas Virtuales Jose Luis Ruiz González FreeS/WAN: Linux FreeS/WAN (http://www.freeswan.org) es una implementación de IPSec e IKE para Linux. IPSec (Internet Protocol SECurity) usa criptografía fuerte para los servicios tanto de certificacion como de encriptación de la información, de tal forma que ésta provenga realmente del emisor que tiene que venir, que no haya sido modificada en su paso por la red pública, y que además no pueda haber sido leída por terceras personas no autorizadas. Estos servicios permiten construir túneles seguros de información a través de redes no seguras. Los protocolos IPSec han sido desarrollados por la IETF (Internet Engineering Task Force), y formarán parte de la versión 6 del protocolo IP (IPv6), la nueva generación del mismo. De igual forma, están siendo ampliamente implementados en redes IPv4. De hecho, casi todos los fabricantes de productos de firewall o de software de seguridad tienen soporte de IPSec ya en el mercado, o bien en desarrollo. Asímismo hay varios proyectos Open Source relativos a IPSec, como puede ser FreeS/WAN. VPN con Windows 2000: Microsoft Windows 2000 proporciona servicios de VPN a través del protocolo de túnel punto a punto (PPTP, Point-to-Point Tunneling Protocol) y de protocolo de túnel de capa dos (L2TP). Se puede consultar en la web de Microsoft cómo configurar un sistema de este tipo (http://www.microsoft.com/latam/technet/articulos/200008/art04/default.asp). Además del acceso remoto basado en VPN, se puede proporcionar acceso telefónico remoto mediante módem a través del servicio de autenticación Internet (IAS, Internet Authentication Service) como servidor RADIUS. Organizaciones: La IETF (Internet Engineering Task Force) es la organización que define los protocolos estándares de funcionamiento de Internet, como por ejemplo TCP/IP. Es supervisada por la IAB (Internet Society Internet Architecture Board). Los miembros de la IETF son escogidos entre los miembros de la Internet Society y de las organizaciones que la conforman. Los estándares son publicados en forma de RFCs (Requests for Comments). SU página web está en http://www.ietf.org 3 Redes Privadas Virtuales Jose Luis Ruiz González La Internet Society (ISOC) es una organización internacional sin ánimo de lucro. Fué fundada en 1992, y tiene su base en Reston, Virginia, en USA. La Internet Society sostiene a la IAB (Internet Architecture Board), que supervisa asuntos técnicos entre otros. Entre las actividades de la IAB se encuentra la IETF (Internet Engineering Task Force), que supervisa la evolución del TCP/IP. Su página web se encuentra en http ://www.isoc.org La IAB (Internet Architecture Board) es el organismo consultor, encargado de analizar la evolución técnica de Internet para la Internet Society. La IAB suprevisa a la IETF (Internet Engineering Task Force), que analiza la evolución del TCP/IP, y la IRTF (Internet Research Task Force), que trabaja en tecnología de redes. Su dirección web es http://www.iab.org La IRTF (Internet Research Task Force) es un área de actividad de la Internet Society. La función de la IRTF es trabajar en tecnología de redes. Se encuentra en Internet a través de la página web http://www.irtf.org NIST (National Institute of Standards and Technology, anteriormente conocido como National Bureau of Standards, es una unidad del US Commerce Department. Promueve y mantiene estándares, y tiene además programas activos para promover y ayudar a la industria y al sector científico y técnico a desarrollar y adoptar dichos estándares. Un RFC (Request for Comments) es un documento formal de la IETF (Internet Engineering Task Force), que es el resultado de un borrador redactado por un comité, y las revisiones posteriores de las partes interesadas. Algunos RFC son de naturaleza informativa. De aquellos que intentan transformarse en estándares de Internet, la versión final del RFC se transforman en el estándar, y no se permite ningún comentario o cambio posterior en el texto redactado. Se pueden incorporar cambios, sin embargo, a través de nuevos RFCs que modifiquen o extiendan estándares propuestos por RFCs anteriores. Se pueden obtener a través de http://www.ietf.org/rfc.html , de http://www.rfceditor.org/ , o de numerosos mirrors a través de Internet. Protocolos: Los protocolos TCP/IP (Transmission Control Protocol/Internet Protocol) conforman el lenguaje básico de comunicación en Internet. Se puede encontrar información abundante sobre estos protocolos en toda Internet, por ejemplo en http://www4.uji.es/~al019803/Tcpip.htm o en http://members.es.tripod.de/janjo/janjo1.html El protocolo L2TP (Layer Two Tunneling Protocol) es una extensión del protocolo PPTP, usado por un ISP para conseguir crear una red privada virtual o VPN (Virtual Private Network) a través de Internet. L2TP surge de la cunfluencia de las mejores características de otros dos protocolos de entunelamiento: PPTP de Microsoft, y L2F (Layer-2 Forwarding) de Cisco Systems. Además de las diferencias en el sistema de autentificación, L2TP ha 4 Redes Privadas Virtuales Jose Luis Ruiz González adquirido una popularidad particular por el uso de IPsec (IP Security) para garantizar la privacidad. Los dos principales componentes que conforman L2TP son el LAC (L2TP Access Concentrator), que es el dispositivo que canaliza físicamente la llamada, y el LNS (L2TP Network Server), que es el que canaliza y autentifica (si es necesario) el stream PPP. Se define en el RFC 2661. El protocolo PPTP (Point-to-Point Tunneling Protocol) permite extenderse a una red privada a través de una red pública como Internet a través de túneles. Es un estándar propuesto por Microsoft, entre otras compañías, y junto con L2TP, propuesto por Cisco Systems, son los candidatos más sólidos para sentar las bases de un nuevo estándar de la IETF. Con PPTP, que es una extensión del protocolo PPP (Point-to-Point Protocol), cualquier usuario/a de un PC con soporte de cliente PPP, puede usar un ISP (Internet Service Provider) independiente para conectar con un servidor cualquiera dentro de la red privada a la que esté accediendo, de forma segura. El protocolo PPP (Point-to-Point Protocol), es un protocolo diseñado para establecer la comunicación entre dos ordenadores a través de un interfaz serie, típicamente un ordenador conectado con un servidor a través de una línea telefónica. PP usa el protocolo IP (Internet Protocol), aunque está diseñado para poder usar otros. A veces se considera incluso parte de la familia de protocolos TCP/IP. Respecto al modelo de referencia OSI (Open Systems Interconnection), PPP proporciona servicios en la capa 2 (data-link layer o capa de enlace). El protocolo PPP es un protocolo full-duplex que puede ser usado sobre diferentes medios físicos de transmisión de datos. Usa una variación del HDLC (High Speed Data Link Control) para la encapsulación de paquetes. Normalmente se prefiere PPP sobre el estándar de facto anterior denominado SLIP (Serial Line Internet Protocol), porque puede gestionar comunicaciones tanto síncronas como asíncronas. PPP puede compartir una línea con otros usuarios, y tiene además detección de errores, de la que carece SLIP. PPP soporta tanto el Password Authentication Protocol (PAP) como el Challenge Handshake Authentication Protocol (CHAP) como métodos de autentificación. HDLC (High-level Data Link Control) es un grupo de protocolos para la transmisión de datos entre nodos, o puntos de una red. En HDLC, los datos se organizan en unidades o frames y son enviadas a través de una red hasta un nodo de destino que verifica la llegada correcta del frame. El protocolo HDL también gestiona el flujo al que se envían los datos. HDLC es uno de los protocolos más usados en la capa 2 del modelo OSI. HDLC es un estándar ISO (ISO 3309 e ISO 4335) basado en el protocolo SDLC de IBM. Se usan variaciones de este protocolo en redes públicas que funcionan sobre el protocolo de comunicaciones X.25, y sobre frame ralay, un protocolo usado tanto en redes WAN (Wide Area Network) públicas como privadas. El protocolo SLIP (Serial Line Internet Protocol), es un protocolo sobre TCP/IP que se usa para la transmisión de datos entre dos máquinas previamente configuradas para comunicarse entre ellas. El protocolo PPP es notablemente superior al SLIP. 5 Redes Privadas Virtuales Jose Luis Ruiz González IPsec (Internet Protocol Security) es un estándar en desarrollo para garantizar la seguridad de las comunicaciones a nivel de red. Será especialmente útil para el desarrollo de redes privadas virtuales (VPNs), y para acceso remoto a través de conexiones dial-up a redes privadas. Un gran avance de IPsec es que los ajustes en la seguridad se pueden gestionar sin necesidad de realizar cambios individualmente en todos los ordenadores. Cisco ha liderado la propuesta de IPsec como estándar, y ha incluido su suporte en sus rputers de red. IPsec proporciona dos opciones en su servicio de seguridad: Authentication Header (AH), que esencialmente permite la autentificación del emisor de la información, y Encapsulating Security Payload (ESP), que soporta tanto autentificación del emisor como la encriptación de los datos. La información específica asociada a cada uno de estos servicios es insertada en los paquetes en una cabecera que sigue a la cabecera IP. Se pueden elegir diferentes protocolos de llave, como el protocolo ISAKMP/Oakley. Aunque la IETF lo escribe oficialmente como IPsec, a menudo aparece escrito como IPSec o IPSEC. ESP (Encapsulating Security Payload) es un estándar de encriptación y validación usado con IPsec. IKE (Internet Key Exchange) es un servicio de negociación automático y de gestión de claves, usado en los protocolos IPsec. TLS (Transport Layer Security) es un protocolo que garantiza la privacidad de las comunicaciones entre aplicaciones y sus usuarios en Internet. Cuando se comunican un cliente y un servidor, TLS se encarga de que ninguna tercera parte pueda espiar o modificar la comunicación. TLS es el sucesor de SSL. TLS se compone de dos capas: el TLS Record Protocol y el TLS Handshake Protocol. El TLS Record Protocol aporta seguridad en la conexión con un método de cifrado como DES (Data Encryption Standard). El TLS Record Protocol también puede ser usado sin encriptación. El TLS Handshake Protocol permite al servidor y al cliente autentificarse entre ellos y negociar un algoritmo de cifrado y las llaves criptográficas antes de iniciar el intercambio de datos. EL protocolo TLS se basa en el protocolo SSL 3.0 de Netscape. De todas formas, SSL y TLS no son interoperables. El protocolo TLS contiene un mecanismo que permite a la implementación TLS descender hasta SSL 3.0. Las versiones más modernas de los navegadores soportan TLS. El TLS Working Group, creado en 1996, continá trabajando en el protocolo TLS y las aplicaciones relacionadas cn éste. Se describe formalmente en el RFC 2246. SSL (Secure Sockets Layer) es un protocolo usado muy habitualmente para gestionar la seguridad en la transmisión de datos en Internet. TLS se ha convertido recientemente en el sucesor de SSL, en el cual se basa. SSL se ubica en una capa intermedia entre el protocolo HTTP (Hypertext Transfer Protocol) y el TCP (Transport Control Protocol). SSL se incluye como parte de los navegadores de Netscape y de Microsoft, así como en casi todos los servidores. Desarrollado por Netscape, SSL se ha ganado además el soporte de Microsoft y de otros desarrolladores de aplicaciones cliente/servidor, y se ha convertido en el estándar de facto hasta su evolución hacia TLS. SSL usa el sistema de encriptación de clave pública y privada de RSA (Rivest-ShamirAdleman), que además incluye el uso de un certificado digital. Los protocolos 6 Redes Privadas Virtuales Jose Luis Ruiz González TLS y SSL no son interoperables, aunque un mensaje enviado con TLS puede ser manejado por un cliente que use SSL pero no así TLS. SSH (Secure Shell, a veces interpretado también como Secure Socket Shell) es un interfaz de comandos basado en UNIX y un protocolo para obtener acceso a un ordenador remoto. Es ampliamente utilizado por administradores para gestionar servidores de forma remota. SSH es realmente un conjunto de tres utilidades, slogin, ssh y scp, que son versione seguras de utilidades anteriores de unix: rlogin, rsh y rcp. los comandos SSH son encriptados y asegurados de múltiples formas. Ambos extremos de la conexión clienteservidor se autentifican mediante un certificado digital, y las contraseñas se protegen mediante encriptación. SSH usa criptografía RSA de clave pública tanto para la conexión como para la autentificación. Los mecanismos de encriptación incluyen Blowfish, DES e IDEA. IDEA es el que se usa por defecto. SSH2, la última versión, es un estándar propuesto por la IETF (Internet Engineering Task Force). SSH puede establecer una conexión segura para cualquier protocolo de aplicación a través de una conexión cliente-servidor encriptada y autentificada, como por ejemplo los protocolos POP y SMTP. Diffie-Hellman es un protocolo de negociación de claves o key agreement, que es también denominado exponential key agreement, y está definido en el Request for Comments 2631. Fué desarrollado en 1976 por W. Diffie y M. E. Hellman, y publicado en el paper "New Directions in Cryptography" (IEEE Transactions on Information Theory 22, 1976, 644-654). Este protocolo permite a dos usuarios intercambiar una clave secreta sobre un medio inseguro, sin secretos anteriores entre los extremos negociantes. Consiste básicamente en la generación en ambos extremos de unas claves privadas, el intercambio de unos valores públicos, y la generación de la clave en ambos extremos. Su seguridad depende del problema del logaritmo discreto, ya que reventarlo es equivalente matemáticamente a calcular logaritmos discretos bajo ciertas condiciones. Es vulnerable al ataque man-in-the-middle. Un elemento intermedio podría modificar los mensajes y forzar la generación clave que quisiera en ambos extremos, conociendola por tanto, ya que no se autentifica a los participantes, aunque se puede solucionar con el uso de firma digital o mediante variantes del protocolo. En los últimos años, se ha empezado a considerar este protocolo como un ejemplo de una técnica criptográfica mucho más amplia, que tiene como elemento común la generación de un valor secreto compartido por los participantes (clave) a partir de la clave privada de cualquiera de los dos participantes y la clave pública del otro. STS (Station To Station) o authenticated Diffie-Hellman key agreement protocol, fué desarrollado por Diffie, van Oorschot, y Wiener en 1992, para evitar un posible ataque man-in-the-middle sobre el protocolo Diffie-Hellman, a través del uso de firmas digitales y certificados de claves públicas. RADIUS (Remote Authentication Dial-In User Service) es un protocolo clienteservidor que permite a servidores de acceso remoto (concentradores VPN en este caso) comunicarse con un servidor central para autentificar a usuarios externos (dial-in) y permitirles el acceso a los servicios requeridos. RADIUS permite que una organización mantenga los perfiles de usuarios en una base 7 Redes Privadas Virtuales Jose Luis Ruiz González de datos central que compartan el resto de servidores. Proporciona, por tanto, una mejor seguridad, permitiendo a cualquier organización aplicar una política de gestión de usuarios desde un único punto administrativo de la red. Esto simplifica además la traza de uso del servicio para las tarifas y para su control estadísitico. Fue creado por Livingston (ahora propiedad de Lucent), y es un estándar de facto en la industria, siendo usado por Ascend y otras compañías de productos de red. Ha sido propuesto como estándar de la IETF en el Request for Comments 2138. TACACS (Terminal Access Controller Access Control System) es un antiguo protocolo de autentificación, común en redes UNIX, que permite a un servidor remoto reenviar la contraseña de autentificación de un usuario a otro servidor que lo autentifique, antes de darle paso al uso de un servicio del sistema. TACACS es un protocolo de encriptación y, por tanto, menos segur que los posteriores TACACS+ y RADIUS (Remote Authentication Dial-In User Service). Una versión posterior de TACACS es XTACACS (Extended TACACS). Ambos protocolos se definen en el Request for Comments 1492. En 1997, Cisco declaró que TACACS y XTACACS estaban fuera de mantenimiento, es decir, que no se solucionarían los problemas que hubiera, debido a que habían sido reemplazados por nuevos protocolos. TACACS+ es, a pesar de su nombre, un protocolo de autentificación totalmente diferente a TACACS. TACACS+ y RADIUS han reemplazado de forma generalizada a los protocolos anteriores en las redes más modernas o las que hayan sido actualizadas. TACACS+ usa enlaces TCP (Transmission Control Protocol), al contrario que RADIUS, que usa datagramas UDP (User Datagram Protocol). Algunos aldministradores recomiendan el uso de TACACS+ por este motivo, ya que TCP es más fiable. TACACS+ separa las operaciones de autentificación y de autorización, al contrario que RADIUS, que las combina en la ficha de usuario (user profile). A pesar de ello, aún se sigue usando TACACS and XTACACS en muchos sistemas viejos. MPLS (Multiprotocol Label Switching) es una tecnología para acelerar el tráfico de red y hacerlo más sencillo de gestionar. MPLS configura un camino específico para una secuencia dada de paquetes de información, identificados por una etiqueta insertada en cada paquete. De esa forma, el router se ahorra el tiempo necesario para buscar la dirección siguiente a la que debe enviar el paquete. MPLS se denomina multiprotocolo puesto que funciona con los diferentes protocolos de red IP (Internet Protocol), ATM (Asynchronous Transport Mode) y frame relay. Respecto al modelo OSI, MPLS permite a la mayoría de los paquetes ser reenviados en el nivel 2 (switching) en lugar de en el nivel 3 (routing). Además de acelerar el movimiento del tráfico de datos, MPLS hace más sencillo gestionar una red para dar una determinada calidad de servicio (QoS, quality of service). Por todo ello, se espera que esta técnica se empiece a adoptar al empezar a transportar las diversas redes mezclas de distintos tráficos. 8 Redes Privadas Virtuales Jose Luis Ruiz González Algoritmos de encriptación: El cifrado de bloques (block cipher) es un método de encriptación de datos en que una llave criptográfica y un algoritmo son aplicados a un bloque de datos (por ejemplo, 64 bits contiguos) de una vez sobre todo el grupo, en lugar de aplicarlo a un bit cada vez. Para evitar que bloques idénticos de datos queden cifrados igual, lo que haría mñas sencillo de reventar el sistema, es habitual aplicar el texto cifrado del bloque anteriormente cifrado al bloque siguiente, en una secuencia. Para evitar que mensajes idénticos encriptados de la misma forma no den el mismo resultado, un vector de inicialización, derivado de un generador de números aleatorios, se combina con los datos del primer bloque y la llave. Esta operación garantiza que al encriptar los siguientes bloques, se genere cada vez un mensaje encriptado diferente. El cifrado de flujos (stream cipher) es, por contraposición al cifrado de bloques, un método de encriptación en el que se aplica la clave y el algoritmo de cifrado a cada dígito binario del flujo de datos, un bit de cada vez. No se usa habitualmente en criptografía moderna. RSA (Rivest-Shamir-Adleman) es el algoritmo de encriptación y autentificación más comunmente usado. Fué desarrollado en 1977 por Ron Rivest, Adi Shamir y Leonard Adleman, y se incluye como parte de los navegadores de Netscape y Microsoft, así como aplicaciones como Lotus Notes y muchos otros productos. El sistema de encriptación era propiedad de RSA Security hasta que en septiembre de 2000 caducó la patente que había sobre este algoritmo. El funcionamiento de este algoritmo se basa en multiplicar dos números primos extremadamente grandes, y a través de operaciones adicionales obtener un par de números que constituyen la clave pública y otro número que costituye la clave privada. Una vez que se han obtenido las claves, los números primos originales ya no son necesarios para nada, y se descartan. Se necesitan tanto las claves públicas como las privadas para encriptar y desencriptar, pero solamente el dueño de la clave privada lo necesitará. Usando el sistema RSA, la clave privada nunca necesitará ser enviada. La clave privada se usa para desencriptar el código que ha sido encriptado con la clave pública. Por tanto, para enviar un mensaje a alguien, hay que conocer su clave pública, pero no su clave privada. Al recibir el mensaje, se necesitará la clave privada para desencriptarlo. También se puede usar para autentificar un mensaje, firmando con la clave privada un certificado digital. AES (Advanced Encryption Standard) es un algoritmo de encriptación para proteger información delicada, aunque no clasificada, por las agencias gubernamentales de USA y, como consecuencia, puede transformarse en el estándar de facto para las transacciones comerciales en el sector privado. La criptografía para las comunicaciones clasificadas, incluyendo las militares, es gestionada por algoritmos secretos. En enero de 1997, El NIST (National Institute of Standards and Technology) inició un proceso para encontrar un algoritmo más robusto que reemplazara a DES y en menor medida a triple DES (3DES). La especificación solicitaba un algoritmo simétrico usando encriptación por bloques de 128 bits de tamaño, que soportara como mínimo claves de 128, 192 y 256 bits. Debía ser royalty-free para su uso en todo el mundo, y ofrecer 9 Redes Privadas Virtuales Jose Luis Ruiz González un nivel de seguridad suficiente para los próximos 20 ó 30 años. Que fuera sencillo de implementar por hardware y software, así como en entornos restringidos (cómo smart cards, por ejemplo), y ofrecer buenas defensas contra diversas técnicas de ataque. De los algoritmos presentados (MARS de IBM research, RC6 de RSA Security, Rijndael de dos criptógrafos belgas: Joan Daemen y Vincent Rijmen, Serpent de Ross Andersen, Eli Biham y Lars Knudsen, y Twofish de un amplio equipo de criptógrafos entre los que se encuentra Bruce Schneier de Counterpane) se seleccionó a Rijndael como el candidato propuesto como AES. En diciembre de 2001, el NIST (National Institute of Standards and Technology, instituto nacional de estándares y tecnología) convirtió al AES en un estándar norteamericano oficial. Para sorpresa de muchos, el algoritmo está desarrollado por dos criptógrafos europeos, en detrimento de productos genuinamente norteamericanos. El proceso, en líneas generales, gozó de una transparencia envidiable. Con este nuevo estándar, muchos órdenes de magnitud más seguro que DES, la criptografía "oficial" se pone al día y adecúa su seguridad al "estado del arte" actual. DES (Data Encryption Standard) es un método de encriptación de clave privada muy usado. El gobierno de USA restringió su exportación a otros paises debido a su estimación de la dificultad para reventarlo por hackers. Hay 72 cuadrillones (72,000,000,000,000,000) o más de posibles claves. Para cada mensaje, se elige una clave al azar entre todas esas posibilidades. Es un método de encriptación simétrico, lo que obliga a que tanto el emisor como el receptor han de conocer la clave privada. DES aplica una clave de 56 bits a cada bloque de 64 bits de datos. El proceso se puede ejecutar en diferentes modos e implica 16 turnos de operaciones. Aunque está considerado como un algoritmo de encriptación fuerte, muchas organizaciones usan "triple DES", o sea aplicar 3 claves de forma sucesiva. Esto no quiere decir que un mensaje encriptado por DES no pueda ser reventado. En 1997, Rivest-Shamir-Adleman, propietarios de otro sistema de encriptación de diferente filosofía, el RSA, ofrecieron una recompensa de 10 mil dólares ($10,000) por reventar la encriptación de un mensaje encriptado con el algoritmo DES. Más de 14,000 ordenadores de todo el mundo, en un enorme esfuerzo cooperativo, finalmente descifraron el mensaje, descubriendo la clave después de probar únicamente 18 cuadrillones de entre las posibles 72 cuadrillones de claves. Pocos mensajes pueden estar sujetos a este esfuerzo tan intensivo para desencriptarlos. DES fué desarrollado por IBM en 1977 y posteriormente adoptado por el U.S. Department of Defense. Está especificado en los estándares ANSI (American National Standards Institute) X3.92 y X3.106, y en los estándares FIPS (Federal Information Processing Standards) 46 y 81. Preocupados por su posible uso por gobiernos enemigos, el gobierno de USA no permite su exportación. Pese a ello, versiones libres de este software están ampliamente disponibles en numerosos sitios web y BBSs (Bulletin Board Services). Puesto que hay seria preocupación sobre que el algoritmo se mantenga invulnerable, NIST (National Institute of Standards and Technology) ha indicado que no se volverá a certificar DES como un estándar. El siguiente estándar será denominado Advanced Encryption Standard (AES). La clave del algoritmo DES tiene un valor de 64 bits, 8 de los cuales se usan para comprobar la paridad, y 56 para el algoritmo de encriptación. Triple DES 10 Redes Privadas Virtuales Jose Luis Ruiz González (3DES) usa tres claves de 56 bits, un total de 168 bits. DES es un tipo de cifrado de los conocidos como Red Feistel Tradicional. IDEA (International Data Encryption Algorithm) es un algoritmo de encriptación desarrollado en el ETH de Zurich (Suiza) por James Massey y Xuejia Lai. Usa criptografía de bloque con una clave de 128 bits, y se suele considerar como muy seguro. Está considerado como uno de los algoritms más conocidos. Durante los años que lleva siendo usado, no ha sido publicado ningún método práctico para reventarlo, a pesar de los numerosos intentos que ha habido de encontrar uno. IDEA está patentado en USA y en la mayor parte de los paises europeos, y la patente está en manos de Ascom-Tech AG. El uso no comercial de IDEA es gratuito. Blowfish es un algoritmo de encriptación que puede usarse como sustituto de DES y de IDEA. Es simétrico y encripta bloques, con una clave de longitud variable, desde 32 bits hasta 448 bits. Fué diseñado en 1993 por Bruce Schneier como una alternativa a los algoritmos existentes entonces, y con procesadores de 32 bits en mente, lo que lo hace significativamente más rápido que DES. Desde su origen, ha sido considerablemente analizado. No está patentado, ni bajo licencia, y está libremente disponible para cualquier uso. CAST-128 es un algoritmo de encriptación del mismo tipo que DES. Es un criptosistema SPN (Substitution-Permutation Network) que parece tener buena resistencia contra ataques diferenciales, lineales y related-key, Además de poseer algunas otras propiedades criptográficas interesantes (avalancha, SAC (Strict Avalanche Criterion), BIC (Bit Independence Criterion), propiedad de no complementación, ausencia de claves débiles y semidébiles), lo que hace que sea un buen candidato para su uso con propósito general para la comunidad de Internet donde se necesite un algoritmo criptográficamente fuerte y disponible libremente. Pertenece a la clase de algoritmos denominada como cifrados Feistel, y su mecanismo, de 4 pasos, es similar al DES. TEA (Tiny Encryption Algorithm) es uno de los algoritmos de encriptación más rápidos y eficientes que existen. Fué desarrollado por David Wheeler y Roger Needham en el Computer Laboratory de Cambridge University. Consiste en un cifrado Feistel que usa operaciones de grupos algebraicos mixtos (ortogonales), XORs y sumas en este caso. Encripta bloques de 64 bits usando una clave de 128 bits. Parece altamente resistente al criptoanálisis diferencial y consigue difusión total (una diferencia de un bit en el mensaje original causa aproximadamente 32 bits de diferencia en el mensaje cifrado) en solamente 6 pasos. Hasta ahora no se ha conseguido reventar este algoritmo de encriptación, y se estima (James Massey) que TEA es tan seguro como IDEA. Usa la misma técnica de grupos algebraicos mixtos que IDEA, pero es mucho más simple y,por tanto, más rápido. Además es de dominio público, al contrario que IDEA. Existen además varias variantes de este algoritmo, que solucionan problemas menores de éste, principalmente el de claves equivalentes, que hace que el algoritmo TEA original tenga 126 bits efectivos de seguridad en vez de 128, así como un posible ataque de claves relacionadas que requiere poder encriptar 2^23 textos determinados bajo dos claves relacionadas (la segunda depende de la primera). 11 Redes Privadas Virtuales Jose Luis Ruiz González Ejemplos de productos comerciales: Una red privada virtual (VPN) necesita que exista en ambos extremos de la comunicación un software capaz de encriptar el tráfico saliente a la red pública, y desencriptar el tráfico entrante. Este software puede ser ejecutado en un dispositivo hardware dedicado, o en un PC con un sistema operativo de propósito general, como Linux, *BSD, NetWare o Windows. Es más recomendable disponer de un hardware específico dedicado a esta tarea, normalmente denominados concentradores (concentrators). En los PCs se ejecutan tantas tareas no relacionadas de forma simultánea que es más fácil que haya en ellos agujeros de seguridad. Además, son más propensos a dar fallos debido a que tienen más partes movibles. El control de acceso, la autentificación y la encriptación de los datos son elementos vitales de una conexión segura. El protocolo PPP (Point-to-Point Protocol) ha sido el usado desde hace mucho tiempo como la capa de enlace universal para crear conexiones punto a punto entre diferentes dispositivos en Internet, aunque en la época más reciente están empezando a prevalecer los protocolos PPTP (Point-to-Point Tunneling Protocol) y L2TP (Layer 2 Tunneling Protocol). L2TP es una combinación de elementos de PPTP y de L2F (Layer-2 Forwarding de Cisco Systems). Además de las diferencias en el sistema de autentificación, L2TP ha adquirido una especial popularidad por el hacho de que usa IPsec (IP Security) para garantizar la privacidad de las comunicacines. Actualmente, IPsec se ha convertido en el principal protocolo de seguridad para conectar dos dispositivos o redes. La única pregunta sin respuesta aún es qué esquema de encriptación usar. DES (Data Encryption Standard), durante mucho tiempo la opción más extendida, ha sido reemplazado por muchos administradores de sistemas desde finales de los 90. Su clave de 56 bits no proporciona un desafío demasiado grande para los hackers con los poderosos ordenadores personales actuales. El esquema 3DES, aceptado por la industria, funciona con una clave de 168 bits, proporcionando tripe encriptación con tres claves separadas. Estos métodos de encriptación no neceitan procesadores dedicados o de gran capacidad. La compatibilidad entre sistemas de VPN es un asunto importante a tener en cuenta. La implementación de cada fabricante de las especificacione y protocolos ha sido como mínimo ligeramente diferente. Ha habido simplemente una amplitud de miras y un espacio de movimiento demasiado amplio en los estándares como para poder garantizar la interoperabilidad. Si la organización que quiere instalar una red privada virtual se decide por un proveedor, puede encontrarse atada al mismo hasta que la interoperabilidad deje de ser un problema, lo que tardará en ocurrir, según Ian Williams, analista de Datamonitor, como poco 2 años. http://www.pcmag.com/article/0,2997,s%253D1553%2526a%253D12352%252 6app%253D1%2526ap%253D2,00.asp 12 Redes Privadas Virtuales Jose Luis Ruiz González Nokia CC2500 & CC500 VPN Gateway Precio: CC2500, para usuarios ilimitados, $9,995 CC500, para usuarios ilimitados, $1,495 Compañía: Nokia Internet Communications, Mountain View, CA; 877 997-9199; http://www.nokia.com/securenetworksolutions Calificación PCWorld: ***** Cisco VPN 3030 & 3005 Concentrators Precio: Cisco VPN 3030 Concentrator, para usuarios ilimitados, $22,000 Cisco VPN 3005 Concentrator, para usuarios ilimitados, $4000. Compañía: Cisco Systems Inc., San Jose, CA; 800-553-6387; http://www.cisco.com Calificación PCWorld: **** RedCreek Ravlin 5300 & 3300 With Node Manager Precio: 5300, $4,000 3300, $1,500 RedCreek Node Manager, $1,000 (licencias de cliente para 100 usuarios, $2,000). Compañía: RedCreek Communications Inc., Newark, CA; 888-745-3900; http://www.redcreek.com Calificación PCWorld: **** SonicWall Pro-VX & XPRS2 Precio: Pro-VX, para 50 users, $4,995 XPRS2, para usuarios ilimitados, $1,795. Compañía: SonicWall Inc., Sunnyvale, http://www.sonicwall.com Calificación PCWorld: *** CA; 888-222-6563; WatchGuard Firebox 1000 Precio: Firebox 1000, para usuarios ilimitados, $4,990 SOHO con VPN, $599 VPN Manager, $995 Mobile User VPN client software, para 100 usuarios, $6,400. Compañía: WatchGuard Technologies, Seattle; 877-232-3531; http://www.watchguard.com Calificación PCWorld: *** Microsoft Windows 2000 Advanced Server Precio: Advanced Server, para 25 usuarios, $3,999 Server, para 5 usuarios, $999 Compañía: Microsoft Corp., Redmond, WA; 800-936-4900; http://www.microsoft.com/windows2000/advancedserver/default.asp Calificación PCWorld: ** 13 Redes Privadas Virtuales Jose Luis Ruiz González Novell BorderManager Enterprise Edition 3.6 Precio: para 10 usuarios, $400 Compañía: Novell Inc., Provo, http://www.novell.com/products/bordermanager Calificación PCWorld: * UT; 800-453-1267; Comparativa PCWorld: http://www.pcmag.com/article/0,2997,s%253D1553%2526a%253D12376,00.as p Bibliografía: Information and Tutorials on Networks http://www.rad.com/networks/inf_main.htm Safe Passage By Karen J. Bannan, PC Magazine, 25-Sept-2001 http://www.pcmag.com/article/0,2997,s%253D1553%2526a%253D12376,00.as p Internet Engineering Task Force (IETF) - IP Security Protocol (ipsec) Charter http://www.ietf.org/html.charters/ipsec-charter.html Internet Engineering Task Force (IETF) - Transport Layer Security (tls) Charter http://www.ietf.org/html.charters/tls-charter.html National Institute of Standards and Technology (NIST) http://www.nist.gov Introduction to SSL (Netscape, 1998) http://developer.netscape.com/docs/manuals/security/sslin/contents.htm Linux FreeS/WAN http://www.freeswan.org/ OpenSSH http://www.openssh.com/ The IETF provides a comprehensive list of papers about IPsec. http://www.ietf.org/ids.by.wg/ipsec.html Cisco - IPSec Overview http://www.cisco.com/warp/public/cc/techno/protocol/ipsecur/prodlit/ipsec_ov.ht m Counterpane Labs Crypto Links - Virtual Private Networks http://www.counterpane.com/vpn.html 14 Redes Privadas Virtuales Jose Luis Ruiz González Counterpane Labs - A Cryptographic Evaluation of IPsec http://www.counterpane.com/ipsec.html VPN Info on the World Wide Web (Tina Bird) http://kubarb.phsx.ukans.edu/~tbird/vpn.html Virtual Private Networks Frequently Asked Questions (Tina Bird) http://kubarb.phsx.ukans.edu/~tbird/vpn/FAQ.html Microsoft Point-Point Tunneling Protocol (PPTP) FAQ http://www.microsoft.com/ntserver/ProductInfo/faqs/PPTPfaq.asp VPNs: Virtually Anything? - A Core Competence Industry Report http://www.corecom.com/html/vpn.html http://www.corecom.com/external/vpn/compare.html RFC 2661 - Layer Two Tunneling Protocol "L2TP" http://www.landfield.com/rfcs/rfc2661.html RFC 1661 - The Point-to-Point Protocol (PPP) http://www.faqs.org/rfcs/rfc1661.html RFC 2246 - The TLS Protocol Version 1.0 http://www.ietf.org/rfc/rfc2246.txt RFC 2631 - Diffie-Hellman Key Agreement Method http://www.ietf.org/rfc/rfc2631.txt RFC 2144 - The CAST-128 Encryption Algorithm http://www.faqs.org/rfcs/rfc2144.html RFC 2612 - The CAST-256 Encryption Algorithm http://www.faqs.org/rfcs/rfc2612.html RFC 1492 - An Access Control Protocol, Sometimes Called TACACS http://www.ietf.org/rfc/rfc1492.txt RFC 2138 - Remote Authentication Dial In User Service (RADIUS) http://www.ietf.org/rfc/rfc2138.txt RFC-ES - Traducción al castellano de RFCs http://www.rfc-es.org/ TACACS+ http://www.mentortech.com/learn/welcher/papers/tacacs.htm MPLS Resource Center http://www.mplsrc.com/ RSA Laboratories' Frequently Asked Questions About Today's Cryptography 15 Redes Privadas Virtuales Jose Luis Ruiz González http://www.rsa.com/rsalabs/faq/index.html http://www.rsasecurity.com/rsalabs/faq/index.html Cryptographic Algorithms http://www.ssh.fi/tech/crypto/algorithms.html A short history of crypto http://webhome.idirect.com/~jproc/crypto/crypto_hist.html AES (Advanced Encryption Standard) http://csrc.nist.gov/encryption/aes/ The Block Cipher Lounge - AES http://www.ii.uib.no/~larsr/aes.html The Rijndael Block Cipher (AES) http://rijndael.com/ TEA - Tiny Encryption Algorithm http://vader.brad.ac.uk/tea/tea.shtml Block Cyphers and Cryptoanalysis - Fauzan Mirza http://mesa-sys.com/~eternal/fame/solutions/report.pdf Speed Comparison of Popular Crypto Algorithms http://www.eskimo.com/~weidai/benchmarks.html The Mathematical Guts of RSA Encryption http://world.std.com/~franl/crypto/rsa-guts.html The CAST-128 Encryption Algorithm http://finecrypt.tripod.com/cast.html "Weaknesses in the Key Scheduling Algorithm of RC4" by Scott Fluhrer, Itsik Mantin and Adi Shamir. http://www.eyetap.org/~rguerra/toronto2001/rc4_ksaproc.pdf whatis.com - Definitions for thousands of the most current IT-related words http://whatis.techtarget.com 16