Un protocolo de autenticación es un tipo de protocolo de comunicaciones informáticas o protocolo criptográfico diseñado específicamente para la transferencia de datos de autenticación entre dos entidades. Permite a la entidad receptora autenticar a la entidad que se conecta (por ejemplo, un cliente que se conecta a un servidor) y autenticarse a sí misma ante la entidad que se conecta (un servidor que se conecta a un cliente) declarando el tipo de información necesaria para la autenticación, así como la sintaxis. [1] Es la capa de protección más importante necesaria para una comunicación segura dentro de las redes informáticas.
Con la creciente cantidad de información confiable a la que se puede acceder a través de la red, surgió la necesidad de impedir que personas no autorizadas accedan a estos datos. Robar la identidad de alguien es fácil en el mundo de la informática: se tuvieron que inventar métodos especiales de verificación para averiguar si la persona o el ordenador que solicita los datos es realmente quien dice ser. [2] La tarea del protocolo de autenticación es especificar la serie exacta de pasos necesarios para la ejecución de la autenticación. Debe cumplir con los principios básicos del protocolo:
Una ilustración de autenticación basada en contraseña utilizando un protocolo de autenticación simple:
Alice (una entidad que desea ser verificada) y Bob (una entidad que verifica la identidad de Alice) conocen el protocolo que acordaron utilizar. Bob tiene la contraseña de Alice almacenada en una base de datos para compararla.
Este es un ejemplo de un protocolo de autenticación muy básico vulnerable a muchas amenazas, como escuchas clandestinas , ataques de repetición , ataques de intermediario , ataques de diccionario o ataques de fuerza bruta . La mayoría de los protocolos de autenticación son más complicados para ser resistentes a estos ataques. [4]
Los protocolos son utilizados principalmente por servidores de Protocolo Punto a Punto (PPP) para validar la identidad de clientes remotos antes de concederles acceso a los datos del servidor. La mayoría de ellos utilizan una contraseña como piedra angular de la autenticación. En la mayoría de los casos, la contraseña debe ser compartida entre las entidades que se comunican con antelación. [5]
El Protocolo de Autenticación de Contraseña (Password Authentication Protocol, PAP ) es uno de los protocolos de autenticación más antiguos. La autenticación se inicializa cuando el cliente envía un paquete con las credenciales (nombre de usuario y contraseña) al comienzo de la conexión, y el cliente repite la solicitud de autenticación hasta que recibe la confirmación. [6] Es muy inseguro porque las credenciales se envían " sin cifrar " y repetidamente, lo que lo hace vulnerable incluso a los ataques más simples, como las escuchas clandestinas y los ataques de intermediario . Aunque tiene un amplio respaldo, se especifica que si una implementación ofrece un método de autenticación más fuerte, ese método debe ofrecerse antes que PAP. Tampoco se espera una autenticación mixta (por ejemplo, el mismo cliente que utiliza alternativamente PAP y CHAP), ya que la autenticación CHAP se vería comprometida si PAP enviara la contraseña en texto plano.
El proceso de autenticación en este protocolo siempre lo inicia el servidor/host y puede realizarse en cualquier momento durante la sesión, incluso repetidamente. El servidor envía una cadena aleatoria (normalmente de 128B de longitud). El cliente utiliza la contraseña y la cadena recibida como entrada para una función hash y luego envía el resultado junto con el nombre de usuario en texto sin formato. El servidor utiliza el nombre de usuario para aplicar la misma función y compara el hash calculado y recibido. Una autenticación es exitosa cuando los hashes calculados y recibidos coinciden.
El protocolo EAP se desarrolló originalmente para PPP (protocolo punto a punto), pero hoy en día se utiliza ampliamente en IEEE 802.3 , IEEE 802.11 (WiFi) o IEEE 802.16 como parte del marco de autenticación IEEE 802.1x . La última versión está estandarizada en RFC 5247. La ventaja del protocolo EAP es que es solo un marco de autenticación general para la autenticación cliente-servidor; la forma específica de autenticación se define en sus muchas versiones llamadas métodos EAP. Existen más de 40 métodos EAP, los más comunes son:
Protocolos complejos utilizados en redes más grandes para verificar al usuario (Autenticación), controlar el acceso a los datos del servidor (Autorización) y monitorear los recursos de la red y la información necesaria para la facturación de servicios (Contabilidad).
El protocolo AAA más antiguo que utiliza autenticación basada en IP sin ningún tipo de cifrado (los nombres de usuario y las contraseñas se transportaban como texto sin formato). La versión posterior XTACACS (TACACS extendido) agregó autorización y contabilidad. Ambos protocolos fueron reemplazados posteriormente por TACACS+. TACACS+ separa los componentes AAA, por lo que se pueden segregar y manejar en servidores separados (incluso puede utilizar otro protocolo para, por ejemplo, la autorización). Utiliza TCP (Protocolo de control de transmisión) para el transporte y cifra todo el paquete. TACACS+ es propiedad de Cisco.
El servicio de autenticación remota telefónica de usuario (RADIUS) es un protocolo AAA completo que utilizan habitualmente los ISP . Las credenciales se basan principalmente en una combinación de nombre de usuario y contraseña, y utiliza el protocolo NAS y UDP para el transporte. [7]
El diámetro (protocolo) evolucionó a partir de RADIUS e implica muchas mejoras, como el uso de un protocolo de transporte TCP o SCTP más confiable y una mayor seguridad gracias a TLS . [8]
Kerberos es un sistema de autenticación de red centralizado desarrollado en el MIT y disponible como una implementación gratuita del MIT, pero también en muchos productos comerciales. Es el método de autenticación predeterminado en Windows 2000 y versiones posteriores. El proceso de autenticación en sí es mucho más complicado que en los protocolos anteriores: Kerberos utiliza criptografía de clave simétrica , requiere un tercero de confianza y puede utilizar criptografía de clave pública durante ciertas fases de autenticación si es necesario. [9] [10] [11]