Usando pacotes de segurança
A SSPI ( Interface do Provedor de Suporte de Segurança ) pode ser usada com os seguintes pacotes de segurança:
Os protocolos Kerberos e NTLM são implementados como pacotes de segurança do provedor de suporte de segurança Secur32.dll (SSP) fornecido com o sistema operacional. Por padrão, o suporte para autenticação Kerberos e NTLM é carregado pela LSA ( autoridade de segurança local ) em um computador quando o sistema é iniciado. Em domínios do Windows Server ou do Windows, qualquer pacote pode ser usado para autenticar logons de rede e conexões cliente/servidor. Qual deles é usado depende dos recursos do computador do outro lado da conexão. O protocolo Kerberos é sempre preferencial, se disponível.
Depois que um contexto de segurança para um usuário interativo tiver sido estabelecido, outra instância do pacote Kerberos ou NTLM poderá ser carregada por um processo em execução no contexto de segurança do usuário para dar suporte à troca, assinatura, verificação, criptografia e descriptografia de mensagens. No entanto, nenhum processo além da LSA tem permissão de acesso a chaves de sessão ou tíquetes no cache de credenciais.
Os serviços do sistema e aplicativos de nível de transporte acessam um SSP por meio do SSPI, que fornece funções para enumerar os pacotes de segurança disponíveis em um sistema, selecionar um pacote e usar esse pacote para obter uma conexão autenticada.
Os métodos no SSPI são rotinas genéricas que os desenvolvedores podem usar sem saber os detalhes de um protocolo de segurança específico. Por exemplo, quando uma conexão cliente/servidor é autenticada:
- O aplicativo no lado do cliente da conexão envia credenciais para o servidor usando a função SSPI InitializeSecurityContext (Geral).
- O aplicativo no lado do servidor da conexão responde com a função SSPI AcceptSecurityContext (Geral).
- Depois que a conexão tiver sido autenticada, a LSA no servidor usará informações do cliente para criar um token de acesso.
- Em seguida, o servidor pode chamar a função SSPI ImpersonateSecurityContext para anexar o token de acesso a um thread de representação para o serviço.
Pacote de Segurança Kerberos
O pacote de segurança Kerberos é baseado no protocolo de autenticação Kerberos.
Se o protocolo Kerberos estiver sendo usado para autenticar uma conexão cliente/servidor, InitializeSecurityContext (Kerberos) gerará uma mensagem GSSAPI que inclui uma mensagem KRB_AP_REQ do cliente. AcceptSecurityContext (Kerberos) gera uma mensagem GSSAPI que inclui uma mensagem KRB_AP_REP do servidor.
Para obter informações básicas sobre as etapas que ocorrem nos bastidores na implementação de um protocolo Kerberos, consulte Microsoft Kerberos.
Todos os serviços distribuídos usam SSPI para acessar o protocolo Kerberos. Uma lista parcial das maneiras pelas quais o protocolo Kerberos é usado para autenticação inclui:
- Serviços de spooler de impressão
- Acesso a arquivos remotos CIFS/SMB
- Consultas LDAP para o Active Directory
- Referências e gerenciamento de sistema de arquivos distribuídos
- Autenticação da autoridade de segurança de host para host do IPsec
- Solicitações de reserva para a qualidade de serviço da rede
- Autenticação da intranet para os Serviços de Informações da Internet
- Gerenciamento de servidor remoto ou estação de trabalho usando RPC autenticado
- Solicitações de certificado aos Serviços de Certificados para usuários e computadores de domínio
Pacote de segurança NTLM
O pacote de segurança NTLM baseia-se no protocolo de autenticação NTLM.