KERBEROS
História
Recebeu este nome devido a um cachorro da mitologia grega
que possuía três cabeças e rabo de serpente, e ele vigiava os
portões de Hades, tendo como sua principal missão evitar a
entrada de pessoas ou de coisas indesejáveis. Assim sendo foi o
nome dado ao serviço de autenticação do projeto Athena por ele
estar baseado em três servidores, e possuir uma função de
defesa que só permite a entrada de clientes autorizados.
Kerberos & Herakles
Requisitos
Necessita de três servidores para que possa fazer a autenticação
com mais segurança:
- Servidor de Autenticação (SA)
Responsável pela autenticação em si do usuário, pois a
partir de um pedido a este servidor, ele receberá um ticket e uma
chave de sessão, podendo assim continuar tentando se conectar
com o sistema.
- Servidor de Concessão de Ticket (TGS)
Como o nome já diz, é o responsável pela concessão dos
tickets para os serviços que utilizam o Kerberos.
Requisitos
- Servidor de Administração (KADM).
Responsável pelo controle das chaves secretas,
cadastrando-as tanto no cliente quanto no servidor. Para isso o
usuário precisa fazer o seu cadastramento, escolhendo um
username e uma senha.
Funcionamento
O Kerberos é um protocolo de autenticação que combina
os serviços dos três servidores citados anteriormente, como
esses servidores trabalham independentes um dos outros é dito
que o Kerberos é um serviço de autenticação distribuído.
A figura no próximo slide mostra simplificadamente o tipo
de segurança proporcionada por este protocolo. Ela mostra que o
cliente precisa primeiramente se conectar ao Kerberos, isso
indica que é necessário que o cliente execute o login. Uma vez
que este cliente foi aceito pelo Kerberos ele recebe uma
resposta, e a partir daí ele pode acessar algum serviço que esteja
disponível na rede.
Funcionamento
Estes processos de login e de
acesso a um serviço serão agora
explicados detalhadamente.
Primeiramente são registrados no banco de dados do
servidor Kerberos a chave secreta dos clientes e também a chave
secreta dos serviços. Este registro é feito pelo servidor de
Administração, como foi falado anteriormente. Para que possa
haver a autenticação do usuário no protocolo Kerberos, este
entra com o seu identificador (username) e a sua senha, a qual
sofrerá um processo criptográfico e se tornará a sua chave
secreta.
Funcionamento
Como forma de autenticação de clientes e dos servidores,
o Kerberos cria mensagens, as quais possuem a chave secreta do
usuário e o nome do TGS(Servidor de Concessão de Tickets)
correspondente, o qual vai enviar para o usuário, o ticket, que foi
requisitado por ele, cifrado com a sua chave secreta.
No caso de acesso a um serviço, o ticket que será
requisitado pelo cliente ao TGS será um ticket correspondente a
este serviço. Caso esteja tudo correto este ticket é enviado para
o cliente, que agora vai se relacionar com o servidor Kerberos
apresentando tal ticket. Este ticket é comparado com as
informações que o cliente possui, entre elas o seu nome, chave
secreta e o timestamp (horário que foi estabelecida a conexão),
caso seja verdadeira esta comparação, os usuários podem se
comunicar.
Funcionamento
Esse processo também é importante para evitar que a
mesma mensagem seja mandada várias vezes, isso é possível
pelo fato de sempre ser verificado o horário em que foi criado.
Alguns termos usados podem gerar algumas perguntas,
entre elas estão as seguintes:
O que é chave de sessão?
É uma chave gerada pelo Kerberos, que tem como
objetivo autenticar a conexão feita por um par de usuários, os
quais já foram autenticados, essa chave atende ao pedido de um
desses usuários, e só é conhecida por esses usuários, durando
um tempo determinado.
Funcionamento
O que vem a ser o ticket?
Ele é um certificado distribuído pelo Kerberos
criptografado com a chave secreta do usuário destino, cuja
finalidade será informar com segurança, a identidade do usuário
para quem o ticket foi originalmente concedido e uma chave de
sessão a ser utilizada no intercâmbio. O ticket também contém
dados que garantirão que o usuário que está utilizando esse
ticket é o mesmo que solicitou a sua concessão.
Resumidamente, o protocolo de autenticação básico do
Kerberos permite ao usuário com conhecimento da chave secreta
do cliente, a obtenção de um ticket, e de uma chave de sessão.
Funcionamento
Normalmente a chave secreta do cliente deveria ser
conferida cada vez que o cliente realizasse autenticação com um
novo servidor, entretanto tal procedimento geraria problemas,
uma vez que o cliente precisaria sempre estar colocando a sua
identificação e a sua senha.
Deixar estes dados armazenados no sistema não é uma
solução eficiente, uma vez que ela poderia ser facilmente
encontrada por um hacker, o que poria tudo a perder no quesito
de segurança. A solução encontrada pelo Kerberos é a seguinte:
ao invés de armazenar a chave secreta, ele armazena os tickets e
chaves de sessão que possuem validade por um período limitado
(normalmente 8 horas). Assim com essas informações só
podendo ser acessadas por usuários que já tenham sua chave
secreta conferida e confirmada.
Funcionamento
O funcionamento do Kerberos será mostrado esquematicamente
de acordo com a figura abaixo:
Funcionamento
1) Conexão ao Servidor de Autenticação - O usuário se
autentica perante o SA, com isso recebe um ticket e uma chave
de sessão, os quais são criptografados com a sua chave secreta
, e são relacionadas entre o cliente e o servidor;
2) Solicitação de ticket ao TGS – O ticket e a chave de
sessão são novamente gerados, só que são de outro tipo e estão
relacionados entre o cliente e o serviços que serão realizados,
com essas informações sendo enviadas para o cliente também
criptografadas;
Funcionamento
3) Acesso ao Servidor - O ticket recebido no passo anterior
é enviado na comunicação com o servidor. Como esse ticket está
criptografado com a chave secreta do servidor, ele deverá
descriptografá-lo e assim terá acesso à chave de sessão que
durará um tempo limitado.
4) Base de Dados do Kerberos - Cadastramento e
manutenção das chaves secretas do cliente e do servidor.
Aplicação
Algumas das aplicações que utilizam o Kerberos para fazer
autenticação:
–
–
–
–
–
–
–
Telnet
Rlogin
Ssh
Linux
Solaris (Desde a versão 2.6)
Windows .Net
Windows 2000
Aplicação
Funcionamento do Kerberos no Windows 2000:
No Windows 2000 para o usuário poder efetuar o logon no
sistema, ele precisa digitar o seu username e a sua senha, a qual
será criptografada, e passará a ser a chave secreta deste usuário.
Esta chave estará guardada no banco de dados dos clientes, e
servirá para comprovar a identidade deste cliente, pois esta
chave estará presente nas informações passadas pela rede,
sendo usado tanto no processo de criptografia quanto no
processo de descriptografia.
O cliente envia sua pré-autenticação com a sua
identificação (seu nome), o nome do serviço desejado e
informações de que conhece a senha, usualmente um timestamp
(dia e hora do computador) criptografado com a chave de longa
duração.
Aplicação
O servidor verifica se o
cliente conhece realmente a
senha
descriptografando
a
senha
do
seu
banco
e
analisando se o seu timestamp é
igual ao enviado, dentro de uma
margem de erro de 5 minutos,
certificando-se que é o usuário
certo que está requisitando o
serviço. Se isso se confirma ele
cria uma chave de sessão que
será usada nas próximas trocas
de
informação
enviado-a
criptografada ao cliente.
Exemplo
de
usuário
autenticado no Kerberos
Problemas e Limitações
A única limitação do Kerberos é a necessidade de uma
disponibilidade contínua do servidor central. Quando o servidor
do Kerberos está indisponível, ninguém pode mais se autenticar
na rede. Isso pode ser resolvido utilizando diversos servidores
Kerberos.
Sobre as falhas a mais perigosa é que caso algum intruso
tenha acesso à transmissão dos pacotes de informações entre o
cliente e o servidor de autenticação, usando para isso um sniffer,
ele poderá conseguir informações vitais que levarão à senha do
usuário.
Problemas e Limitações
O protocolo Kerberos é um padrão conhecido que usa
portas de comunicação documentadas, o nome do usuário no
formato texto, e uma parte da mensagem criptografada que
identifica o cliente são enviadas. Esta parte criptografada é
composta da senha do usuário mais o timestamp, usando-se o
algoritmo RC4-HMAC de criptografia. A partir destas condições
citadas no slide anterior de um sniffer ter acesso à transmissão
dos pacotes de informações, pode ocorrer a quebra da segurança
e a senha pode ser capturada.
Download

Slide 1