Qué es.

RADIUS (Remote Authentication Dial-In User Service), es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP.

El protocolo de autenticación RADIUS se basa en el esquema cliente-servidor, usando el puerto 1812 UDP para establecer sus conexiones.

Este sistema de seguridad distribuida permite autenticarse a los usuarios o dispositivos antes de acceder a una red, los autoriza para usar determinados servicios y reporta y realiza seguimiento del uso de los dichos servicios. Por eso se dice que es un servidor AAA (Authentication, Authorization and Accounting).

 

Funcionamiento y características.

La implementación de un sistema de autenticación RADIUS responde a varias necesidades:

  • Flexibilidad y adaptabilidad, autenticación de usuarios en servidores con mayor capacidad de procesado frente a routers y switches
  • Protocolo extensible, al utilizar un campo de atributos de tamaño variable en sus paquetes, permite agregar nuevos atributos (incluidos nuevos métodos de autenticación) sin interrumpir las implementaciones previas del protocolo.
  • Compatibilidad, los servidores RADIUS pueden comprobar las credenciales de sus usuarios en bases de datos de fuentes externas, (SQL, Kerberos, LDAP…) pudiendo implementarse utilizando un banco de usuarios ya existente.
  • Capacidad de manejar sesiones, notificando cuándo comienza y termina una conexión (Accouthing).

 

Como explicamos anteriormente el funcionamiento del protocolo RADIUS se basa en un esquema cliente-servidor. Nuestro NAS (Network Access Server, generalmente un router, firewall o switch) funciona como un cliente para el servidor RADIUS.

 

https://www.flickr.com/gp/139894310@N06/WV427R

 

 

El usuario hace una petición, vía PPP al NPS. El cliente (NPS) es responsable de enviar la información del usuario que desea acceder a la red, hasta el servidor RADIUS. Esta comunicación (NPS<–>servidor RADIUS) se realizará mediante el protocolo RADIUS. El servidor RADIUS se encargará de verificar la autenticidad del usuario e informar su validez al NAS (Access Accept si supera la validación o Acces Reject en caso de no superar la validación), que podrá devolver la respuesta adecuada para el usuario. El servidor RADIUS incluye en el Access Accept información fundamental para controlar el uso de un determinado recurso por parte del usuario, como, por ejemplo, cuáles son los límites de acceso del usuario y cuál es el tiempo máximo de conexión antes de que caduque, uso de ancho de banda…

La validación realizada en el servidor (autenticación) se realizará dependiendo de los mecanismos soportados: PAP, CHAP, EAP, unix login, LDAP…

 

Problemas en RADIUS.

RADIUS tiene de una serie de vulnerabilidades:

  • Los mensajes no viajan cifrados, a excepción de aquellos datos especialmente sensibles como las contraseñas.
  • Utiliza MD5como algoritmo criptográfico de hashing, lo que lo hace vulnerable a ataques de colisión.
  • La comunicación se realiza a través del protocolo UDP, lo que permite que las direcciones IP puedan ser fácilmente falseadas y susceptible de suplantación de identidad.
  • Las especificaciones para la clave compartida no son lo suficientemente robustas y es reutilizada por el servidor con los clientes. Por tanto, es vulnerable a ataques de fuerza bruta. Una vez obtenida la clave, el campo “Autenticator” utilizado en mensajes de autenticación (Access-Request) es fácilmente generado.

Algunas contramedidas para reforzar la seguridad del RADIUS, pasarían por contemplar la implementación de IPSec para cifrar las comunicaciones entre cliente y servidor. Como medida propia o en combinación con la anterior se puede reforzar la autenticación haciendo uso de protocolos robustos de desafío-respuesta, como CHAP.

 

Diameter es una evolución de RADIUS y para solucionar las vulnerabilidades anteriores, cuenta, entre otras con las siguientes mejoras:

  • Uso de protocolos de transporte fiables (TCPo SCTP)
  • Usa seguridad a nivel de transporte (IPSECo TLS)
  • Tiene un espacio de direcciones mayor para atributos (AVP, Attribute Value Pairs) e identificadores (32 bits en lugar de 8)
  • Es un protocolo punto a puntoen lugar de cliente-servidor. Por lo tanto, cualquier nodo puede iniciar el intercambio de mensajes.

 

 

 

 

 

 

 

 

 

 

Autor: José Millán Jara Ferrero

Curso: Microsoft MCSA Windows Server 2016 + Microsoft MCSE Cloud Platform & Infrastructure

Centro: Tajamar

Año académico: 2017-2018