Conhecendo o Protocolo de Rede Kerberos

AGRADEÇA AO AUTOR COMPARTILHE!

Introdução

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.

Referência

NEUMAN C.; RAEBURN K.; HARTMAN S.. RFC 4120. Disponível em: <http://www.ietf.org/rfc/rfc4120.txt>. Acesso em: 30 set 2011.

Autores: Alan Baldani Campos Luz, Fadir Salmen e Sergio Castilho

AGRADEÇA AO AUTOR COMPARTILHE!

4 Comentários

Rômulo
3

Gostei muito do post, ajudou bastante. Mas mesmo assim ainda sou um novato no assunto. Gostaria de saber se o Kerberos poderia ser utilizado para autenticar duas pessoas, por exemplo. É como se o servidor fosse uma outra pessoa e o usuário quisesse estabelecer uma comunicação segura com essa segunda pessoa. Isso poderia ser feito?

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">