Servicio de usuario de acceso telefónico de autenticación remota

RADIUS ( Servicio de usuario de acceso telefónico de autenticación remota ) es un protocolo cliente-servidor que se utiliza para centralizar los datos de autenticación . El protocolo RADIUS fue inventado y desarrollado en 1991 por la empresa Livingston (adquirida por Lucent Technologies), que fabricaba servidores de acceso a la red para hardware equipado únicamente con interfaces seriales; posteriormente fue estandarizado por el IETF.

Estandarización

La última versión del protocolo RADIUS está estandarizada por el IETF en dos RFC  : RFC  2865 (autenticación RADIUS) y RFC  2866 (contabilidad RADIUS) deJunio ​​de 2000. El sucesor del protocolo RADIUS podría ser el protocolo Diameter (juego de palabras con el doble del radio). El protocolo a menudo se denomina AAA ( Contabilidad de autorización de autenticación ), y la fase de autorización (definición de derechos de acceso) se realiza durante la respuesta de identificación (adición de atributos al paquete "Respuesta de autenticación"). Otro ejemplo de protocolo AAA podría ser TACACS de Cisco , pero posee; y desde la publicación del estándar 802.1X que da en el apéndice D como único ejemplo de implementación el protocolo Radius, este último se ha convertido en un estándar de facto de AAA.

Utilidad

El propósito original de RADIUS era permitir que los ISP autenticaran a los usuarios remotos utilizando conexiones de módem PSTN desde varios servidores pero con una única base de usuarios. En la situación anterior, los nombres de usuario y las contraseñas debían duplicarse en cada dispositivo que necesitaba identificar a los usuarios. Asimismo, la autenticación POP (correo electrónico) debía manejarse de esta forma. La identificación en los sitios web por un nombre y una contraseña también se gestiona en RADIUS, el servidor Apache es uno de los clientes Radius más extendidos. Este sigue siendo el uso más común del protocolo RADIUS: nombre y contraseña de la conexión a Internet, pero cada vez más redes inalámbricas y cableadas también lo utilizan para identificar a los usuarios.

El protocolo RADIUS permite establecer la conexión entre las necesidades de identificación y una base de usuarios asegurando el transporte de datos de autenticación de forma estandarizada. La operación de autenticación la inicia un cliente del servicio RADIUS, que puede ser una caja de acceso remoto (NAS: servidor de acceso a la red), un punto de acceso a la red inalámbrica, un firewall, un conmutador, otro servidor. El servidor lo procesa accediendo a una base de datos externa si es necesario: base de datos SQL , directorio LDAP , cuentas de usuario de máquina o dominio; un servidor Radius tiene una cierta cantidad de interfaces o métodos para esto.

Cómo funciona la identificación

La estación del usuario ( suplicante en las RFC) transmite una solicitud de acceso a un cliente RADIUS para ingresar a la red. Este cliente es el encargado de solicitar la información que identifica al usuario: el nombre de usuario (login) y la contraseña por ejemplo.

El cliente RADIUS genera de acuerdo con el protocolo una solicitud de acceso que contiene la información de autenticación . El servidor RADIUS puede procesar esta solicitud por sí mismo o transmitirla a otro servidor RADIUS mediante un mecanismo llamado Proxy Radius. El servidor Radius responsable de la identificación final (llamado Home Radius) puede procesar la solicitud si tiene suficientes elementos en el Access-Request o solicitar información adicional reenviando un paquete de "Access Challenge", al que el cliente responderá con otro "Access -Request ", y así sucesivamente. Los intercambios son retransmitidos por la cadena de servidores proxy intermediarios Radius en una dirección y en la otra.

Cuando el servidor Radius tiene suficientes elementos (hasta una docena de intercambios para protocolos complejos de tipo EAP ), el servidor RADIUS valida o rechaza la identificación devolviendo un paquete del tipo: Acceso-Aceptar o Acceso-Rechazar .

RADIUS conoce de forma nativa dos protocolos de contraseña: PAP (intercambio claro de nombre y contraseña) y CHAP (intercambio basado en un hash en ambos lados con intercambio solo del "  desafío  "). El protocolo proporciona dos atributos separados: Usuario-Contraseña y CHAP-Contraseña.

Desde entonces, se han agregado variaciones de Microsoft: MS-CHAP y MS-CHAP-V2; su similitud con CHAP permite transportarlos en RADIUS de la misma forma, a iniciativa del servidor y sujeto a la posibilidad de transporte de extremo a extremo del solicitante al cliente Radius, del cliente al servidor Radius y finalmente del servidor Radius a la base de datos de identificación.

Es en este último paso donde a menudo el zapato se aprieta: no se planea nada, por ejemplo, en LDAP para transportar el desafío ni los pasos específicos de MS-CHAP o MS-CHAP-V2 que, de repente, terminan exclusivamente en las bases de datos locales de identificación de Microsoft para el Servidor de radio.

Autorización

La identificación RADIUS puede enriquecerse con una autorización, por ejemplo, para un cliente de un proveedor de acceso, su dirección IP, su tiempo máximo de conexión, su tiempo de inactividad. Todos estos parámetros están definidos por atributos del paquete en las RFCs, en este caso para este ejemplo el atributo 8, más conocido por su nombre "amigable" Framed-IP-Address, aunque el protocolo en realidad solo conoce los números, y la sesión -Atributos de tiempo de espera y tiempo de espera inactivo. Los atributos estándar se definen en las RFC, los atributos específicos de un proveedor o VSA (Vendor Specific Attributes) se multiplexan en el atributo 26: a cada proveedor se le asigna un número único que le permite ser identificado, un byte de este atributo define un número VSA , lo que permite a cada proveedor definir hasta 255 atributos específicos para su hardware. El servidor Radius se adapta a estos "dialectos" mediante diccionarios de atributos ...

Contabilidad

La segunda función de un servidor Radius es la contabilidad, que garantiza tanto el registro de acceso como la facturación. Definida por diferentes RFC, administrada en diferentes puertos UDP (1646 o 1813 para los más comunes, mientras que la identificación se realiza en los puertos 1645 o 1812), esta función a menudo la proporciona un programa diferente o incluso un servidor diferente.

La contabilidad se basa en dos tipos principales de paquetes: inicio de contabilidad y detención de contabilidad; una sesión se define como el intervalo entre un inicio y una parada. El paquete de inicio de contabilidad enviado por el cliente Radius después de que el usuario haya iniciado sesión después de una fase de identificación exitosa contiene datos básicos: nombre de usuario (pero no la contraseña inútil aquí), dirección IP asignada, fecha y hora de conexión, tipo de conexión, tipo de servicio, etc.

Cuando el usuario se desconecta del servicio o el cliente Radius lo desconecta debido a inactividad, tiempo de espera de conexión u otro, este cliente Radius envía un paquete de parada de contabilidad con el mismo identificador de sesión , el servidor Radius puede cerrar la sesión y registrar la desconexión, a menudo con una gran cantidad de parámetros en el paquete Stop: tiempo de conexión, tipo de uso, número de paquetes y bytes intercambiados según los distintos protocolos, y posiblemente información más confidencial sobre los sitios visitados o los intercambios contenidos.

Existen otros tipos de paquetes de contabilidad: Intermedio (enviado a intervalos periódicos por el cliente entre Start y Stop, útil en caso de que se pierda el Stop), On (el cliente Radius ha comenzado) y Off (el cliente Radius se detendrá), el último para el registro, es raro que un dispositivo advierta antes de averiarse o estrellarse.

Para facilitar el trabajo de enlace entre la fase de identificación y la fase de contabilidad (el servidor radius puede haber recibido cientos de otras solicitudes en el medio), el atributo Class se envía al cliente con el paquete Access-Accept.; se indica al cliente Radius que lo devuelva como está en el paquete de Accounting Start. Por lo tanto, el servidor Radius puede incluir en este atributo toda la información útil para realizar la conexión entre una identificación exitosa, a menudo acompañada de una reserva de recursos (canal, PVC o dirección IP, por ejemplo) y el uso real de estos recursos.

En el caso de que la operación sea abortada (no hay un paquete de Inicio de Contabilidad correspondiente después de una identificación exitosa), un mecanismo debe restaurar los recursos reservados; la mayoría de las implementaciones utilizan un registro contable fantasma para esto . Los recursos reservados por la identificación, ocupados por el Accounting Start, normalmente son liberados por el paquete Accounting Stop, lo que implica por ejemplo que un servidor Radius solo puede asignar direcciones IP si también administra la función de contabilidad.

La contabilidad también tiene una función legal: el acceso a Internet debe estar identificado, y cualquier usuario debe ser rastreable hasta al menos un número de cuenta o tarjeta bancaria, por lo que la función de contabilidad está siempre activada. Con los ISP y los registros se mantienen: en comisión rogatoria de un juez, el ISP puede proporcionar la identificación en un momento dado de cualquier dirección IP.

Limitaciones

Versiones obsoletas de RADIUS

Extensiones RADIUS

Ver también

Referencias

  1. (en) "  autenticación remota Dial In User Service (RADIUS)  ," Petición de observaciones n o  2865Junio ​​de 2000.
  2. (en) "  Radio de la contabilidad  " Petición de observaciones n o  2866,Junio ​​de 2000.
  3. (en) "  autenticación remota Dial In User Service (RADIUS)  ," Petición de observaciones n o  2058,enero de 1997.
  4. (en) "  Radio de la contabilidad  " Petición de observaciones n o  2059enero de 1997.
  5. (in) "  Servicio de usuario de acceso telefónico de autenticación remota (RADIUS)  ", Solicitud de comentarios n o  2138Abril de 1997.
  6. (en) "  Radio de la contabilidad  " Petición de observaciones n o  2139Abril de 1997.

Artículos relacionados

enlaces externos