O Kerberos não é um cachorro de 3 cabeças!

Neste artigo procuro explicar de forma simples a estrutura do Kerberos, mostrando exemplos de cada etapa da configuração desse extraordinário sistema de segurança.

[ Hits: 134.241 ]

Por: Oscar Costa em 04/11/2005 | Blog: https://oscarcosta.dev/


Kerberos



Kerberos é um sistema de autenticação que permite usuários utilizarem serviços de rede se identificando e autenticando em tempo real, utilizando um sistema seguro e criptografado.

Em um sistema convencional é requerida ao usuário uma identificação e que este usuário autentique esta identificação antes da utilização do sistema. Uma rede que conecta possíveis clientes a serviços por ela providos também precisa identificar e autenticar estes clientes, que podem ser usuários ou softwares.

O problema é que muitos serviços de rede aceitam sem questionar a autenticação provida pela máquina cliente, que está sobre total domínio do usuário. E um serviço seguro de rede não pode confiar na integridade da autenticação provida por uma máquina cliente.

Com o Kerberos, toda vez que um possível cliente for utilizar um serviço da rede, ele vai questionar sua identidade e a respectiva autenticação, permitindo ou não o uso do serviço pelo cliente. Além disso, Kerberos provê um meio criptografado de comunicação, mesmo em uma rede não segura, como a internet.

2.1. Autenticação Kerberos


O sistema de autenticação Kerberos é baseado no protocolo de autenticação de três vias e foi desenvolvido pelos membros do projeto Athena no MIT (Massachusetts Institute of Technology).

O Kerberos prove aos usuários ou serviços "ticket" que são utilizados para a identificação e chaves criptografadas para comunicação pela rede.

O Kerberos é usualmente utilizado na camada de aplicação, provendo a segurança entre o usuário e o host. Mas também pode ser usado para prover segurança entre hosts, trabalhando com os protocolos IP, TCP e UDP.

Em uma rede com Kerberos é definido um host, denominado Servidor de Autenticação, que centraliza as funções administrativas do Kerberos e é onde também está o Centro de Distribuição de Chaves (KDC). Este servidor mantém uma base de dados com todas senhas secretas dos usuários. Sendo que ele é o responsável por gerar os tickets quando dois usuários desejam se comunicar através de um meio seguro, identificando e autenticando estes usuários.

2.2. Distribuição de ticket


Quando um cliente, que pode ser um usuário ou um serviço, faz um requerimento por um "ticket" para o Centro de Distribuição de Chaves (KDC), esse cria um "ticket granting ticket" (TGT) para o cliente e o criptografa utilizando a senha secreta do usuário. Após isso, o KDC envia o TGT criptografado para o cliente. O cliente descriptografa o TGT com sua senha secreta, garantindo a sua identidade.

O ticket expira de tempos em tempos. O Kerberos permite que o cliente obtenha um outro ticket, permitindo-o continuar a utilizar o serviço. Estes requerimentos adicionais de ticket são transparentes para o usuário.

2.3. Principal


Principal é um termo do Kerberos que define uma entidade, ou seja, um usuário ou um serviço por meio de um endereço. Este endereço é comumente dividido em três partes: a primeira parte contém o nome do usuário ou do serviço, a segunda parte contém o nome do host ou nada quando se trata de um usuário e a terceira parte contém o nome do realm.

host/[email protected]

2.4. Rede Kerberos


Kerberos divide a rede em domínios seguros, denominados "realms". Cada realm tem seu servidor de autenticação e uma política de segurança própria. Isso permite que uma organização defina diferentes níveis de segurança, se assim desejar. A divisão dos realms também pode ser hierárquica, permitindo que cada área da organização possua um realm local vinculado ao realm central.

Essa hierarquia fica transparente para o usuário. Por exemplo, se um usuário autenticado no realm FINANCEIRO.EMPRESAA.COM requerer comunicação com o realm PESSOAL.EMPRESAA.COM, ele não precisa se autenticar novamente. A identidade do usuário é passada entre os realms internos ao realm pai EMPRESAA.

Mas se um usuário autenticado na EMPRESAA.COM for utilizar um serviço ou informação do realm SERVICO.EMPRESAB.BR, o Kerberos requer uma nova autenticação ao usuário da EMPRESAA.COM. Para que essa comunicação ocorra, as duas organizações tem que trocar chaves criptografadas dos servidores de chave. Desta forma é estabelecida uma comunicação segura através da internet, entre as duas organizações.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Kerberos
   3. Segurança
   4. Decisões do sistema
   5. Instalação e configuração
   6. Utilização
   7. Conclusões e Bibliografia
Outros artigos deste autor

SSH - Uma breve abordagem

A teoria por trás do firewall

Automatizando a montagem de partições Windows (FAT e NTFS) no Linux

Leitura recomendada

Nmap do início ao fim (parte 1)

Attik Firewall

Implementação de um sistema de arquivos criptografado transparente ao usuário

Instalando o Nagios

Bootando CDROM com o grub / lilo

  
Comentários
[1] Comentário enviado por chavesfelipe em 04/11/2005 - 08:57h

Muito bom!!! Exelente!

[2] Comentário enviado por augusto_hp em 04/11/2005 - 11:58h

Caramba meu ... este é um artigo ímpar no VOL !! A deficiência de material sobre o kerberos é enorme, e quando existe é em uma linguagem praticamente inacessível ....excelente artigo kilocan ....

Acho que temos muito o que ganhar com este artigoão aqui !!! ;D

[3] Comentário enviado por removido em 04/11/2005 - 17:39h

nem doeu.....he...he...he...
;-))

[4] Comentário enviado por removido em 04/11/2005 - 23:04h

como disse augusto_hp, quando se acha algo sobre kerberos a linguagem é compreenssível apenas pelos "iniciados" e este artigo de qualidade contribui muito para o esclarecimento e implementação de rotinas de segurança tão inexistentes em nossas intranets e elevar ainda mais a qualidade do site.
parabéns.

[5] Comentário enviado por jeffestanislau em 05/11/2005 - 00:02h

Tá show de bola o artigo... bem esclarecedor!!!
Parabéns!!!

[]'s
Jefferson

[6] Comentário enviado por casterman em 06/11/2005 - 13:35h

Realmente parabéns pelo seu artigo, ta bem completo muito bom mesmo!!!

[7] Comentário enviado por cassao em 07/11/2005 - 11:44h

Bem legal, parabéns.
Mas só comentando o post do augusto_hp, tem muito material na net sobre o Kerberos cara... Em inglês tem bastante, em português tem menos, mas tem.

[8] Comentário enviado por forrest1777 em 17/03/2006 - 18:23h

Gostei muito desse artigo :P
bem esclarecedor, linguagem fácil de entender, nota 10!!

só to com um problema... o Kilocan citou o seguinte: "o programa de login pode ser adicionado a inicialização do sistema"
será que alguem poderia me dizer como fazer isso???
[]'s

[9] Comentário enviado por EnzoFerber em 14/12/2006 - 00:38h

Cara, excelente artigo. Parabéns.

Só pra constar: kerberos realmente não é um cachorro de 3 cabeças... e sim Cerberus, o guardiao da entrada do Submundo. :) Pelo menos eles compartilham uma qualidade: ambos zelam pela segurança. :)

Parabéns novamente pelo artigo.
[]'s
Slackware_10

[10] Comentário enviado por EnzoFerber em 14/12/2006 - 00:45h

Qual algoritmo de criptografia o kerberos usa? DES? Triple-DES? Ou algum algoritmo próprio?

[11] Comentário enviado por yetlinux em 24/04/2009 - 06:19h

Kerberos é nome grego. Cerberus é latim. Cérbero é aportuguesamento.

http://pt.wikipedia.org/wiki/C%C3%A9rbero

[12] Comentário enviado por samuelbpc em 19/03/2014 - 09:48h

Amigo,

- Obrigado pelo seu tempo dedicado.
Foi de grande ajuda o seu artigo.

Apesar de não ter resolvido o meu problema, me deu algumas pistas.

Obrigado.


Contribuir com comentário