Clifford Neuman e Steve Miller são os principais responsáveis pelo protocolo Kerberos. O Kerberos foi criado nos meado dos anos 80, no instituto de tecnologia de Massachusetts. Ele foi desenvolvido durante durante o Projeto Athena, usando como base o protocolo Needham-Schroeder. A razão de seu nome peculiar é porque foi nomeado baseado no guardião dos portões de Hades, Cerberus. A versão 5 foi a última a ser lançada.
Objetivo
Eles definiram como objetivo para o protocolo autenticar usuários e criptografar informações, criando uma rede em que nenhum momento a senha possa ser furtada ou que um computador estranho possa invadi-la durante a comunicação sem a necessidade de ficar recolhendo dados constantemente durante o processo.
Funcionamento
O funcionamento, de maneira geral, se baseia inicialmente em autenticar com base nas credenciais do usuário, com depois a criação e envio de pacotes de informação chamados tickets entre os clientes e seus servidores. No Kerberos são usados três servidores para isso: AS, servidor de autenticação, TGS, o servidor de tickets e o servidor do serviço desejado.
A primeira fase, autenticação, se baseia em o cliente enviar um pedido para o AS com suas credenciais registradas e o pedido relacionado ao servidor desejado, que serão verificadas com base nos dados armazenados já no servidor AS. Em caso positivo, o AS irá enviar um TGT, conhecido como ticket granting ticket e uma chave criptográfica Cliente/TGS. O TGT seria um pacote de informações especiais, que carrega as informações tanto do cliente como da própria rede que estavam contidos no servidor AS. Elas serão necessárias posteriormente pelo TGS, o servidor de tickets. Dentro deste ticket existirá um timestamp. Timestamp nada mais é que uma marcação do tempo atual do servidor. A razão deste procedimento é cortar a comunicação se ela ficar inativa por muito tempo, por exemplo cinco minutos. Isto também serve pelo fato de o Kerberos contar os segundos entre um envio de uma mensagem para a outra, com o intuito de verificar se houve invasão ou se um dos parceiros na rede foi clonado ou derrubado.
A chave de sessão criada dependerá de cada situação, com base na criptografia e na configuração padrão do Kerberos. É importante notar que em oito horas ela perderá seu valor, dessa forma se um cracker capturar um pacote, ele não terá tempo de descobrir a informação através de um ataque de força bruta. O cliente envia o TGT recebido para o servidor TGS, conhecido como ticket granting server, juntamente a outro pacote, este contendo suas credenciais. O objetivo deste servidor é ser o intermediador entre o servidor de autenticação e os servidores que ofereceram serviços. Para isso, ele analisará as informações e criará o service ticket, o ticket que contêm informações do serviço desejado, junto de outra chave com base no timestamp recebido. Este ticket estará trancado com uma chave que somente o servidor de serviços poderá abri-lo.
Depois, o cliente irá receber o ticket junto da chave de sessão Cliente/Servidor. Ele irá descriptografar a chave recebida e depois avisar o servidor TGS que acabou de fazê-lo. Feito isso, ele irá mandar o ticket de serviço para o serviço desejado, que irá descriptografá-lo e verificar se o timestamp ainda será válido. Se estas informações estiverem corretas, o serviço enviará uma mensagem para o KDC, centro de distribuição de chaves para receber uma chave sessão. Ela será direcionada ao cliente, que irá descriptografá-la e se tudo estiver correto, a comunicação será iniciada e continuará até o cliente interrompê-la ou a validade da sessão se esgotar.
Conclusão
O método desenvolvido por Neuman e Miller são, ainda hoje, importantes não só no uso mas para o desenvolvimento de novas tecnologias para a segurança, sendo que todos nós profissionais de TI, especialmente os de vínculo com a área de segurança, precisamos compreender o uso e funcionamento deste protocolo.
Por fim, vale a pena lembrar que existem situações que nem mesmo o Kerberos poderá nos proteger, como em ataques de negação de serviço, engenharia social ou perda de senhas.