802.1X – Introducción

 

En este post y en los siguientes explicaré qué es 802.1X y  cómo implementarlo.

Yo llamo a 802.1X “La frontera de la red” y para ilustrarlo, pongo una foto del CheckPoint Charlie de Berlín que separaba al extinto muro del lado soviético y el americano:

802.1X-CheckPoint-Charlie

Intentaré orientar las explicaciones hacia cualquier tipo de perfil técnico para que, aunque no sea su propósito implementarlo, entienda qué es y la importancia que tiene en la seguridad de red.

Veremos varios ejemplos e intentaré ser conciso porque el tema me apasiona y da para alargarse mucho.

Para profundizar sobre el tema, recomiendo la lectura del libro “Radius AAA 802.1X Sistemas basados en autenticación en windows GNU/Linux” de Yago Fernández (@yadox y diariodeunhacker), Antonio Ramos y Jean Paul García-Morán de stackoverflow.es

  • Here we go!

802.1x es una norma o framework que provee autenticación de red.

Su principal uso es la autenticación de usuarios y dispositivos en una red cableada y/o inalámbrica.

Esto es, 802.1x es un método de seguridad que autentica el acceso al puerto del switch o el acceso a la wifi.

Por tanto, podemos decir que 802.1x es un mecanismo de seguridad de acceso al medio.

Su implementación en entornos corporativos puede ser compleja porque hay que tener en cuenta múltiples situaciones y compatibilidades.

  • Complejidad:

La complejidad del despliegue de 802.1X no se basa en el própio framework, que también lo es, sino en cómo hacer que todo el parque de dispositivos de la red, con sus diferentes sistemas operativos accedan de forma segura y dejemos fuera a aquellos que desean entrar ilícitamente.

Si nuestro parque de dispositivos se compone de un 100% de clientes Windows con Active Directory será más fácil implementar por ejemplo el método a priori más seguro, EAP-TLS y desplegar los certificados de cliente de forma automática.

Ahora bien, la realidad es muy diferente. En un entorno empresarial tendremos diversidad de clientes. A saber, windows, mac, linux, teléfonos ip de diferentes marcas con y sin suplicante, androids, iphones, impresoras, máquinas virtuales dentro de un pc corporativo etc.

Muchas veces los departamentos técnicos antes de implementar 802.1X, al realizar la valoración de impacto, se encuentran con dificultades añadidas. Un ejemplo sería una empresa con una política de seguridad baja sobre el usuario, en la que éste es administrador de su equipo y/o en la que el dispositivo no está en dominio. Esto es, podemos tener dispositivos no corporativos en la red pero debemos permitirles entrar usando algún método seguro.

Así pues 802.1X en entornos empresariales se ha visto a menudo como una gran solución de seguridad difícil de implementar, mantener y administrar. En esencia, un gran proyecto pero caro, ya que costará horas de ingeniería y soporte.

Lamentablemente 802.1X y otros métodos de seguridad se han desechado en algunas empresas por una política de seguridad erróneamente “abierta” o por falta de conciencia o presupuesto (aunque sea en horas de trabajo y usemos únicamente software libre). También, hablando con un integrador de seguridad, me comentó que alguna empresa se retractó con el proyecto iniciado y pagado por miedo y complejidad. Ahora bien, tampoco es lo mismo desplegar 802.1x en una empresa farmacéutica en la cual todos los dispositivos son corporativos que en una universidad donde cada cual trae su portátil de casa.

Personalmente recomiendo hacer un despliegue de 802.1X en la red inalámbrica y en la red cableada.

La solución pasará por evaluar el impacto adecuadamente. Por ejemplo, si partimos de una red cableada abierta, es posible configurar los switches en modo aprendizaje o escucha, así los ingenieros de redes y seguridad pueden antes de desplegar la política restrictiva ver si las estaciones estan autenticándose correctamente y detectar posibles situaciones a priori no controladas. Un ejemplo seria un PC conectado por cable, autenticado y de repente éste arranca una máquina virtual que lleva usando un año con acceso a la red y sin configurar 802.1X. En este caso podríamos tener una violación de la seguridad porque el usuario levantó su vmware, virtualvox, xen etc donde realiza pruebas de su desarrollo y ahora tenemos un host sin autenticar detrás de un puerto con un host autenticado. Si la política es muy restrictiva el usuario quedaría expulsado de la red. La política de seguridad es discutible, mal que nos pueda pesar y muchas veces es una decisión de dirección y no de ingeniería.

Con el paso del tiempo la tecnología va evolucionando y aparecen alternativas como los llamados NAC ( Network Access Control ). Muchos de ellos se basan en parte en 802.1X y otros incorporan además soluciones basadas en agente sobre el dispositivo, de escaneo para determinar si el cliente es confiable o no, en portal cautivo etc.

Con la llegada de las políticas BYOD ( Bring your own device) o “trae tu propio dispositivo” y conéctalo a la red corporativa, los fabricantes se han puesto al día y estan sacando soluciones de seguridad que permiten el acceso a la red de forma segura con cierta “elasticidad”.

Existen múltiples métodos de implementación de 802.1X, unos más seguros que otros, unos más rápidos de implementar pero, añadir una capa seguridad es siempre mejor que no hacer nada.

En sucesivos posts veremos cómo configurar 802.1X con diferentes soluciones e intentaremos minimizar el impacto del despiegue sobre una red sin 802.1x.

También veremos diferentes herramientas para desplegar esta infraestructura sobre los diferentes dispositivos, en algunos casos será automáticamente y en otros será de forma manual.

  • Topología básica y roles:

topologia-802_1X

  • Nomenclatura:

PKI : Public Key Infraestructure o Infraestructura de clave pública. Se trata de la infraestructura para administrar los certificados para los diferentes métodos de autenticación.

Root CA : Root Certificate Authority o Entidad Certificadora de Raíz. Es la entidad que emite los certificados digitales.

Radius : Protocolo de red para la autenticación, autorización y arqueo o AAA. Se suele llamar también así al servidor que provee esta pasarela AAA. En este caso, se trata del servidor que autentica a los dipositivos y que usa el protocolo de comunicación radius con los switches y puntos de acceso inalámbricos. Los software de servidor radius más populares son Freeradius, IAS de Windows 2000 y 2003 server ( Internet Authentication Server ), NPS (Network Policy Server) de Microsoft para Windows Server 2008, 2010 y 2012, radiator etc

NAS: Network Access Server. Se trata del switch o punto de acceso inalámbrico donde se establece la frontera física con el dispositvo a autenticar. También se le llama autenticador.

Suplicante : Se trata del software que tiene el cliente o dispositivo para autenticarse. Pongamos un ejemplo, el suplicante es el software que tiene un pc con Windows que quiere conectarse a la red y que iniciará el proceso de autenticación. Actualmente la mayoria de sistemas operativos incorporan nativamente un software suplicante de 802.1x.

El suplicante se ocupa de autenticar sus credenciales contra el auntenticador. El suplicante no sabe quién es el radius de la red, los NAS ( switches y puntos de acceso inálambricos ) si saben quién es el servidor radius y se ocuparán de reenviar y encapsular la solicitud del suplicante al radius. Dependiendo del método EAP usado sobre 802.1x será más o menos descifrable y por tanto más o menos seguro.

EAP-TLS : Método 802.1x basado en autenticación mútua entre cliente y servidor usando certificados

EAP-PEAP : Método 802.1x basado en autenticación con certificado de servidor y usuario/contraseña en cliente. El cliente debe confiar en el certificado de servidor y lo usará para transportar dentro de un túnel ssl su autenticación, por tanto el tránsito va cifrado. Se usa habitualmente como protocolo para la autenticación del usuario/contraseña a MS-CHAP v2. MS-CHAP v2 provee también un método de cifrado de la autenticación de usuario y contraseña, pero recientemente ha sido descubierto que no usaba triple DES sinó DES 3 veces, con lo que ms-chap-v2 se ha convertido en reversible y por tanto descifrable. Si usuamos EAP-PEAP en un entorno con Active Directory podemos autenticar al objeto “computer” en lugar del objeto usuario. Esto es, no usuaríamos la contraseña del usuario que está logado en el cliente windows,sinó la de la máquina.

EAP-PEAP si está bien configurado, sigue siendo un método robusto y seguro de 802.1x ya que se tuneliza ms-chap v2 sobre tls gracias al certificado del servidor.

MSCHAP-V2 es desde hace poco un protocolo de autenticación débil per se y no está recomendado en soluciones vpn antiguas basadas en PPTP ya que la autenticación va sobre ms-chapv2 y pptp no provee cifrado. Las vpn PPTP se hicieron populares en sistemas operativos antiguos como windows 98 y NT ya que incorporaban nativamente el cliente vpn pptp.

Ventajas de EAP-PEAP sobre EAP-TLS:

EAP-PEAP fue desarrollado conjuntamente por Cisco y Microsoft. EAP-PEAP se puede desplegar de forma automática sobre clientes Windows en un entorno con Active Directory usando la version de Windows Server Standard. Es más sencillo de desplegar que EAP-TLS sobre los dispositivos ( sean windows o no ) ya que no hace falta instalar un certificado de cliente. Sigue siendo un método robusto si está bien configurado de 802.1x. Es compatible y nativo en la mayoría de sistemas operativos ( mac, linux, windows, ios, android etc ).

Desventajas de EAP-PEAP sobre EAP-TLS:

Si el cliente no está bien configurado se le puede realizar un Man in the Middle usando un punto de acceso falso ( rogue ap ) y un certificado falso, desencapsular el tráfico ms-chap-v2 y por tanto debido a la debilidad reciente del protocolo ms-chap-v2 descifrar el usuario y contraseña. En clientes Windows en Active Directory es fácil evitar el ataque porque los clientes poseen el certificado raíz y se puede configurar remotamente mediante una GPO que únicamente confíen en el certificado que ya tienen y desactivar la interacción y la edición por parte del usuario. Por lo tanto no se les podrá realizar el ataque Man in the Middle a dia de hoy 🙂

Sin embargo EAP-TLS mal configurado en un cliente también es vulnerable a un Man in the Middle usando un certificado falso. Ahora bien, el resultado de un Man in the Middle satisfactorio sobre EAP-PEAP con ms-chap-v2 nos puede permitir obtener el usuario y contraseña del dominio del cliente si la autentificicación es de usuario, si es de máquina obtendríamos el password del objeto computer.

En el siguiente post, veremos como configurar Freeradius con EAP-TLS.

4 Comments

  • Rodrigo
    11/09/2016 - 9:12 am | Permalink

    Hola, muy bueno el articulo. Me queda una duda donde hablas de levantar una maquina virtual en un puerto con un host autenticado. Si configuro en el switch que la autenticación sea por MAC y no por puerto usando PEAP, que pasaría si en la maquina virtual clono la ip y la MAC de la pc que esta autenticada? Tendría acceso a la red también? Ademas configuraria en el switch port security e ip source guarda. Hay alguna solución contra ésto?

    • 05/01/2017 - 12:25 pm | Permalink

      Hola Rodrigo,
      primero disculpa que no haya contestado antes, no me activé alertas de cuándo hay un comentario pendiente…

      En el caso que comentas de la MAC clonada e ip duplicada, a priori te ocasionará un problema en el bridge del host/hipervisor.

      Gracias por participar en el blog!

  • miguel rivera
    20/10/2016 - 1:24 pm | Permalink

    Muy buen post amigo , interesante, llegue acá porque tengo este tipo de autenticación de los equipos y generalmente o cada cierto tiempo me aparecen conectado a la red pero sin autenticar o simplemente no autentica y aparece ´simbolo amarillo en la red y no se como solucionarlo

    • 05/01/2017 - 12:13 pm | Permalink

      Hola,
      primero disculpa que no haya contestado antes, no me activé alertas de cuándo hay un comentario pendiente…

      Diría que si en algún momento han estado autenticados correctamente por 802.1X y pasado un tiempo dejan de estarlo, si no se ha modificado la configuración del cliente, el problema estará en el radius o en la autenticación ( credenciales caducadas, certificado caducado … ).

      Gracias por participar en el blog!

  • Leave a Reply

    Your email address will not be published. Required fields are marked *