Establecimiento de una conexión segura con autenticación
En un protocolo de aplicación cliente/servidor, un servidor se enlaza a un puerto de comunicación, como un socket o una interfaz RPC. A continuación, el servidor espera a que un cliente se conecte y solicite el servicio. El rol de seguridad en la configuración de la conexión es doble en el caso de la autenticación mutua:
- Autenticación de cliente por parte del servidor.
- Autenticación del servidor por parte del cliente.
Los componentes de cliente y servidor de una aplicación de transporte usan un paquete de seguridad para establecer una conexión segura para transmitir mensajes. El primer paso para establecer una conexión segura es crear un contexto de seguridad; es decir, una estructura de datos opaca que contiene los datos de seguridad relevantes para una conexión, como una clave de sesión y la duración de la sesión.
Un contexto de seguridad es básicamente un mensaje del paquete de seguridad asociado al cliente al paquete de seguridad asociado al servidor. Por lo tanto, la creación de un contexto de seguridad normalmente requiere que tanto el cliente como el servidor realicen llamadas a sus respectivos paquetes de seguridad. Para obtener más información sobre las funciones de contexto, vea Administración de contexto.
El protocolo utilizado para establecer una conexión segura y autenticada implica el intercambio de uno o varios "tokens de seguridad" entre el cliente y el servidor. Estos tokens se envían como mensajes opacos por los dos lados junto con cualquier otra información específica del protocolo de aplicación. Como mensaje opaco, el cliente recibe el token de una función de paquete de seguridad, que no puede interpretarlo ni cambiarlo, y se reenvía como un mensaje al servidor. El token también es opaco para el servidor, que no puede interpretar ni cambiar el token. El servidor reenvía el token opaco a su paquete de seguridad para su interpretación. A continuación, el paquete informa al servidor de la autenticación del cliente o del error de autenticación.
El cliente recibe el token del servidor en un mensaje, recupera el token del mensaje recibido y usa ese token en una llamada a su paquete de seguridad. A continuación, el cliente llama al paquete de seguridad de nuevo que indica si se ha establecido una conexión segura o si se necesitan más intercambios antes de que una conexión segura esté lista. Teóricamente, no hay ningún límite para el número de intercambios de tokens de seguridad necesarios. En la práctica, solo se requiere un número limitado de intercambios. La autenticación NTLM se basa en el esquema de desafío y respuesta y usa tres patas para autenticar a un cliente en el servidor. El protocolo Kerberos versión 5.0 puede requerir intercambios de mensajes adicionales.
Temas relacionados