Estabelecendo uma conexão segura com a autenticação
Em um protocolo de aplicativo cliente/servidor, um servidor é associado a uma porta de comunicação, como um soquete ou uma interface RPC. Em seguida, o servidor aguarda que um cliente se conecte e solicite o serviço. A função de segurança na configuração da conexão é dupla no caso de autenticação mútua:
- Autenticação do cliente pelo servidor.
- Autenticação de servidor pelo cliente.
Os componentes cliente e servidor de um aplicativo de transporte usam um pacote de segurança para estabelecer uma conexão segura para transmitir mensagens. A primeira etapa para estabelecer uma conexão segura é criar um contexto de segurança; ou seja, uma estrutura de dados opaca que contém os dados de segurança relevantes para uma conexão, como uma chave de sessão e a duração da sessão.
Um contexto de segurança é essencialmente uma mensagem do pacote de segurança associado ao cliente ao pacote de segurança associado ao servidor. Consequentemente, a criação de um contexto de segurança normalmente exige que o cliente e o servidor façam chamadas para seus respectivos pacotes de segurança. Para obter mais informações sobre funções de contexto, consulte Gerenciamento de Contexto.
O protocolo usado para estabelecer uma conexão segura e autenticada envolve a troca de um ou mais "tokens de segurança" entre o cliente e o servidor. Esses tokens são enviados como mensagens opacas pelos dois lados, juntamente com qualquer outra informação específica do protocolo do aplicativo. Como uma mensagem opaca, o token é recebido de uma função de pacote de segurança pelo cliente, que não pode interpretá-lo ou alterá-lo e encaminhado como uma mensagem para o servidor. O token também é opaco para o servidor, que não pode interpretar nem alterar o token. O servidor encaminha o token opaco para seu pacote de segurança para interpretação. Em seguida, o pacote informa ao servidor sobre a autenticação do cliente ou a falha na autenticação.
O cliente recebe o token do servidor em uma mensagem, recupera o token da mensagem recebida e usa esse token em uma chamada para seu pacote de segurança. Em seguida, o cliente chama o pacote de segurança novamente indicando se uma conexão segura foi estabelecida ou se novas trocas são necessárias antes que uma conexão segura esteja pronta. Teoricamente, não há limite para o número de trocas de tokens de segurança necessárias. Na prática, apenas um número limitado de trocas é necessário. A autenticação NTLM baseia-se no esquema de desafio/resposta e usa três etapas para autenticar um cliente no servidor. O protocolo Kerberos versão 5.0 pode exigir trocas de mensagens adicionais.
Tópicos relacionados