Controle de Acesso Kerberos Considerações iniciais Um processo de autenticação tem como objetivo garantir o acesso à uma rede, e seus serviços, por usuários legítimos, e impedindo qualquer acesso não autorizado. Por isso muitos sistemas requerem que o usuário primeiramente passe por um processo de autenticação para que esteja devidamente identificado e habilitado a utilizar o sistema, antes de permitir o acesso deste usuário à rede Introdução Kerberos é um protocolo de redes desenvolvido pelo MIT (Massachusetts Institute of Technology) em meados dos anos 80, que tem por objetivo prover uma autenticação forte através da utilização de criptografia simétrica Introdução Ao ser construído, foram designados a ele quatro principais requisitos: A segurança - Evitando espionagem ou modificação dos dados A confiabilidade - Que diz respeito a questão da mútua autenticação A escalabilidade - Que refere-se ao fato de que deve ser um sistema capaz de funcionar tanto com redes pequenas quanto com redes muito grandes A transparência - Permitir que as operações ocorram automaticamente Funcionamento Básico O funcionamento básico consiste em autenticar os usuários para aplicações de redes, utilizando: - Um ticket - Um autenticador - Um centro de distribuição de chaves Autenticação através da máquina cliente Problemas - Um usuário pode obter acesso a uma determinada máquina cliente e fingir ser outro usuário, operando através daquele cliente - Um usuário pode alterar o endereço da máquina cliente na rede, de forma que as mensagens de request provenientes desta máquina sejam vistas como vindas de uma outra máquina. - Um usuário pode obter acesso a um servidor ou desfazer operações. Funcionamento O Kerberos trabalha baseado em Tickets, que identificam os usuários. Usuários realizem um cadastro no Authentication Server (AS), a função deste é fornece o Ticket Granting Ticket(TGT). Este ticket deve ter como conteúdo dados que identifiquem o usuário como uma senha e uma estampa de tempo, usada para dar uma proteção contra o roubo e uso posterior do ticket Ticket Os tickets são como credenciais para o Kerberos. Eles possuem um grupo de informações eletrônicas que permitem verificar a identidade do cliente Esse ticket é criptografado pelo servidor que o emitiu com a chave do servidor para o qual ele será enviado Estrutura de um Ticket Servidor de Autenticação ( Authentication Server – AS ) É responsável por receber um pedido de autenticação de um usuário e verificar se a identidade deste usuário é autêntica. Sendo válida esta identidade, o AS fornece um ticket e uma chave de sessão, que vai permitir o contato com outro servidor, o TGS. Servidor de Concessão de Tickets ( Ticket Granting Server -TGS ) Responsável por fornecer tickets para serviços específicos requeridos pelo usuário. O contato com o TGS é feito após a autenticação pelo AS. O usuário tem seu ticket avaliado, e uma vez validado pelo TGS, recebe um novo ticket, agora para obter algum serviço disponível. Servidor de Administração (KADM) Este servidor é o responsável por controlar as chaves secretas (informações criptografadas). Antes de realizar o processo de autenticação, é preciso que o usuário cadastre seus dados através do KADM, para que possua um login e uma senha Centro de distribuição de Chaves (KDC) É um servidor centralizado também responsável pela autenticação dos usuários Ao receber de uma máquina cliente uma requisição por um ticket, o KDC cria o chamado Ticket Granting Ticket (TGT), o criptografa utilizando a senha secreta do usuário, criando a chamada chave secreta, e o envia para o cliente que fez a solicitação Centro de distribuição de Chaves (KDC) O processo de autenticação inicia-se com um pedido do cliente a este servidor central, o KDC, onde estão registradas as chaves secretas dos usuários. Cada máquina cliente compartilha uma chave secreta com o KDC, o qual é o responsável por gerar chaves para serem usadas por um pequeno período de tempo durante uma determinada conexão. O KDC, então, gera uma mensagem incluindo duas componentes: Uma chave de sessão (session key), a qual é codificada com uma chave secreta do usuário. O ticket-granting ticket, (TGT), que inclui uma cópia da chave de sessão. Funcionamento Figura extraída de: www.conectiva.com Chave Secreta Uma chave secreta é associada a cada cliente, com a finalidade de autenticar o usuário ao Kerberos. É obtida a partir da senha fornecida pelo cliente no momento de seu cadastramento, e sua chave secreta fica armazenada na Base de Dados do Kerberos. Chave de Sessão É uma informação encriptada e segura, gerada pelo Authentication Server, que permite identificar se quem está apresentando o ticket é o mesmo cliente para quem o ticket foi concedido, e não uma outra pessoa que possa ter interceptado ticket pelo caminho Benefícios da autenticação Kerberos Autenticação mútua. O cliente pode validar a identidade da entidade de servidor e o servidor pode validar o cliente. Com essa documentação, as duas entidades são denominadas "cliente" e "servidor" mesmo que seja possível estabelecer conexões seguras de rede entre servidores. Permissões de autenticação seguras. São utilizadas somente permissões criptografadas, e as senhas nunca são incluídas na permissão. Autenticação integrada. Uma vez que o usuário faça logon, ele não precisa efetuar logon novamente para acessar algum serviço que suporte a autenticação Kerberos pois a permissão do cliente não expira. Todas as permissões têm um prazo de validade determinado pelas diretivas do Kerberos que geram a permissão. Benefícios da autenticação Kerberos Múltiplos domínios: pode ser criada uma estrutura hierarquizada de autenticação, de forma que usuários de um domínio possam se autenticar em outro. Limitações do Protocolo Único ponto de falha Praticamente toda a segurança reside no servidor que guarda a base de dados dos clientes e servidores. Se este servidor estiver comprometido, o funcionamento da rede também estará O Kerberos necessita que os relógios internos dos clientes estejam sincronizados com o dele, devido o uso de timestamps para o controle dos tempos de expiração dos tickets Referência Bibliografica http://pt.wikipedia.org/wiki/Kerberos http://msdn.microsoft.com/ptbr/library/cc280744.aspx http://www.conectiva.com/doc/livros/online/10 .0/servidor/pt_BR/ch13s04.html http://www.gta.ufrj.br/grad/04_1/kerberos/ker beros/funcionamento.html http://www.gta.ufrj.br/grad/07_1/kerberos/Cha veSecretaeChavedeSessao.html#Topic13