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.