Windows Server – Entendendo o Kerberos Authentication

Por Bruno Lopes e Fernando SilvaMTI%2520Logo

Olá galera,

Neste mês de Fevereiro, estamos iniciando uma série de atividades sobre a plataforma Windows Server, principalmente novidades e features da versão 2012 R2 e 2016, que já está no seu Tech Preview 4.

Em conjunto com esta série, também estamos fazendo parte de um novo projeto. Vocês já devem ter percebido a logo acima. Ela representa o MTI – Mixed Technology Influencers, um grupo de especialistas em tecnologias, com skill nas mais variadas áreas de atuação, trabalhando juntos para entregar conteúdo de qualidade para a comunidade. Aguardem mais novidades, que vem por aí!

Nosso intuito de hoje é iniciar esta série de Windows Server falando um pouco do protocolo Kerberos, amplamente utilizado para as questões de autenticação nos produtos Microsoft, desde os anos 2000, quando este recurso foi entregue como parte do Windows 2000 Active Directory implementations. O protocolo original foi criado pelo MIT (quase nosso grupo, hein?) e disponibilizado em BSD, e o nome KERBEROS tem alusão a mitologia grega, onde “CERBERUS” é o cão de três cabeças responsável por guardar as portas do inferno de Hades.

O conceito geral sobre o funcionamento da estrutura KERBEROS pode parecer um pouco complexo, pois estamos falando de um processo de autenticação de baixo nível, porém fica mais simples de entender um um exemplo prático, que daremos logo a seguir.

Prosseguindo, o Kerberos provê uma autenticação a nível de Tickets, baseada na estrutura de TGT – Ticket to Get Tickets e TGS – Ticket-Granting Service, respectivamente validados e emitidos  pelo KDC – Key Distribution Center e demais agentes (AS – Authentication Services, PDC – Primary Domain Controller e outros).

2Bb742516.kerb01_big(l=en-us)

Todo controlador de domínio (DC) possui o serviço de KDC, fazendo com que toda a organização consiga obter seus tickets apenas contatando um dos controladores de domínio, que irá realizar o processo de autenticação. Após a emissão do ticket, que por sua vez é criptografado e com tempo de vida, o cliente passa a autenticar e usar os serviços, sem que suas informações de credenciais estejam explícitas e divulgadas na rede. Esta criptografia é feita com base na senha fornecida pelo usuário e também pela senha do objeto computador, que após ser validada, estabelece o que chamamos de Secure Channel.

Vamos descrever este processo de forma simples e ordenada:

  • Etapa 1: O usuário faz logon na estação de trabalho e o serviço LSASS.EXE é responsável por coletar e encaminhar as informações de login para o KDC, criptografadas pela própria senha do usuário, através do Secure Channel.
  • Etapa 2KDC tenta descriptografar o pacote enviado pelo cliente utilizando a senha presente na base de dados do Active Directory. Uma vez o pacote descriptografado com sucesso, ocorre o processo de pré-autenticação, onde informações de data/hora e os direitos de acesso do usuário são validados. Ao fim deste processo, o KDC cria um TGT e uma chave de sessão para aquele determinado usuário, com prazo de validade e envia o mesmo para o cliente.
  • Etapa 3: Quando o usuário precisa de acesso a um serviço de outro recurso, o serviço LSASS.exe da estação cliente envia uma solicitação para o KDC contendo o TGT, e os dados do serviço a ser acessado.
  • Etapa 4: KDC  verifica se o TGT enviado ainda é válido, e caso esteja, um novo ticket chamado TGS é criado e enviado para o cliente. Este ticket será utilizado para autenticação do cliente com o serviço a ser acessado em outro servidor.
  • Etapa 5: O cliente apresenta o TGS ao serviço a ser acessado. O LSASS.EXE do servidor da aplicação valida este TGS, e garante sua autenticação, retornando ao cliente que o mesmo está autenticado. Na sequência, as permissões daquele determinado cliente serão válidadas com base na ACL – Access Control Lists do serviço.
  • Etapa 6: O cliente estará pronto a se comunicar com o respectivo serviço, e as devidas validações de permissão serão feitas com base nas ACLs do serviço.

É importante termos em mente que existe uma grande diferença entre Autenticação e Permissão. A estrutura Kerberos tem o objetivo de garantir a autenticação de usuários, contas de serviço e assim por diante. Para que ocorra a permissão de acesso, mais fatores são levados em conta, entre eles podemos destacar as ACLs, configuradas nas guias de segurança de processos e objetos.

GuiaVistoEUA

Para finalizar, podemos comparar todo este processo de autenticação à uma viagem aos Estados Unidos da América – EUA.  Para início do processo, o primeiro passo que fazemos é ir até a Polícia Federal (KDC) solicitar um Passaporte (TGT), apresentando os documentos atuais que temos para validação. De posse do documento comprobatório da identidade (TGT), vamos até o consulado americano (AS no KDC) solicitar nosso Visto (TGS). Após a emissão do Visto (TGS), já temos a garantia de acesso aos serviços, e podemos usufruir da entrada na sessão dos EUA! Lembrando que, como o Passaporte, os Tickets também tem data de validade.

É isso aí galera. Espero que esse simples overview tenha ajudado vocês!

Até o próximo post.

Referências:

Kerberos Explained

What Is Kerberos Authentication?

Kerberos Key Distribution Center

Windows Authentication Deep Dive: What Every Administrator Should Know

MicroNugget: How Does Kerberos Work?

Anúncios

Sobre MVP Bruno Lopes

Profissional MBA em Redes de Computadores e Telecomunicações, MVP Microsoft e atualmente Technical Trainer e Engenheiro de Suporte na Microsoft/Wipro, especialista em Exchange/Office 365; sou mais um voluntário desta grande pátria de blogueiros a me dedicar em prol das informações compartilhadas à todos...Se já me salvou um dia, creio que ajudará a muitos mais...

Publicado em 05/02/2016, em Servidores Windows, Tecnologia e marcado como , , , , , , , , . Adicione o link aos favoritos. Deixe um comentário.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: