Em 1999, escrevi um livro sobre o Windows 2000 Server em geral e o Active Directory em particular. Tento não olhar para o que escrevi sobre o AD nessa altura em comparação com o que sei agora, mas continuo a gostar de uma passagem que explicava como funciona o protocolo de segurança Kerberos - utilizando uma analogia de uma festa da empresa num salão de baile de um hotel. Embora o OAuth2 e o OpenID Connect sejam os actuais queridinhos do mundo da segurança, a maior parte do mundo empresarial local ainda depende do Kerberos a cada segundo de cada dia.
Acho que uma analogia que envolve uma festa é mais propícia para aprender um assunto árido como o Kerberos. Por isso, modernizei um pouco o meu exemplo e aperfeiçoei-o para o partilhar aqui. O Kerberos trata tanto da autenticação como da autorização no Active Directory. Tecnicamente falando, o Kerberos é um protocolo de autenticação, mas a Microsoft insere dados de autorização (SIDs) no campo PAC do bilhete Kerberos para os serviços (recursos integrados no AD, como partilhas de ficheiros ou aplicações como o Exchange ou o SharePoint) consumirem.
Kerberos na festa da empresa
Imagine que vai a uma grande festa da empresa em que é servido álcool e que é um bar aberto1. Foi anunciada como uma festa temática de ficção científica (ei, é uma empresa de tecnologia), e cada área do bar no salão de baile onde a festa está a decorrer está decorada com um tema específico de ficção científica, como o Planeta Proibido, O Dia em que a Terra Parou, Guerra das Estrelas, etc., e tem empregados de bar cosplaying).
Dirige-se à entrada do salão de baile e há uma daquelas mesas com saias de veludo à frente, com uma grande faixa a dizer "Key Drink Center". Para entrar na festa, tem de mostrar a sua carta de condução (o Pedido de Serviço de Autenticação que contém a sua palavra-passe) às pessoas que trabalham na mesa (o Centro de Distribuição de Chaves, ou KDC).
Você entrega a sua carta de condução(hora actual, encriptada com o hash da palavra-passe que introduziu) a uma pessoa que tem uma lista de convites; ela olha para si, olha para a sua carta de condução e olha para a lista de convites da festa. Se o seu nome corresponder a um nome na lista de convites(o utilizador existe no directório) e se for parecido com a pessoa na fotografia da carta de condução(o hash da palavra-passe introduzido corresponde ao hash da palavra-passe para o nome de utilizador no CD), pode entrar na festa(está autenticado).
Agora que já podes entrar na festa, a pessoa sentada ao lado do verificador da lista carimba a tua mão (o Ticket Granting Ticket, ou TGT). É válido por dez horas - vai ser uma festa e peras! A seguir...
A pessoa seguinte na mesa pergunta-lhe se gostaria de visitar uma determinada área do bar(um serviço). Ouviu dizer que o bar do Hitchhiker's Guide to The Galaxy vai ter um Pan Galactic Gargle Blaster, por isso pede esse bar(nome do serviço principal, ou SPN). Eles vêem o carimbo da sua mão e dão-lhe um bilhete(o bilhete de serviço) para entregar ao empregado do bar HHGG. Este bilhete também é válido por dez horas. Se a sua carta de condução indicar que tem mais de 21 anos, também o carimbarão no verso do bilhete.
Munido do seu bilhete de bar, dirige-se para a festa.
Dirigindo-se directamente ao bar HHGG para ser atendido, apresenta a senha ao barman de três cabeças. Ele vê que é para o bar dele(autenticação para o serviço), vira-o e vê que tem um carimbo que diz que tens mais de 21 anos(o campo PAC do bilhete de serviço contém um SID que corresponde a um ACE para o serviço) e, portanto, estás autorizado a beber uma bebida alcoólica. Ele acena com a cabeça e devolve-lho (lembre-se, é válido para acesso ilimitado durante as próximas dez horas). Ele prepara um Gargle Blaster Pan-Galáctico e serve-lho.
A partir daí, se precisar de outra bebida (e é aconselhável ter cuidado se estiver a pedir um PGGB), basta apresentar ao barman do HHGG o seu bilhete de serviço e ele prepara-lhe outra bebida. Note-se que só pode beber no bar do HHGG com esse bilhete; se quiser que o Gort lhe prepare uma bebida (ele é bastante desajeitado e está sempre a partir copos), tem de voltar à mesa da frente e obter um bilhete de serviço do Day The Earth Stood Still.
Este sistema de bebidas para festas é um pouco intensivo em termos de despesas, mas garante isso:
- Só podem participar as pessoas que constam da lista de convidados
- Não é possível entrar à socapa, pois a identidade tem de ser verificada
- Os frequentadores escolhem um bar específico
- Só os maiores de 21 anos estão autorizados a tomar uma bebida alcoólica
- A festa acabará definitivamente ao fim de 10 horas
É claro que só se pode esticar esta analogia até certo ponto, por isso não olhe muito de perto; veja o artigo detalhado de Brian Desmond sobre o processo de autenticação/autorização Kerberos do Active Directory para obter os detalhes. Mas acho que ele faz um bom trabalho ao explicar a autenticação do AD com trocas de tickets Kerberos, autorização e valores de tempo de vida. E sei que qualquer profissional de TI que tenha participado numa conferência está bem familiarizado com a participação numa festa num salão de baile de uma conferência!
1O meu género de festa.