Kerberos
Introdução O que é Kerberos? Origem do nome 2
Motivação Problemas ao implementar um sistema de segurança em uma organização é a parte interna da rede. Teoricamente trabalha-se com pessoas confiáveis Uma pessoa pode instalar por descuido um software malicioso 3
Descrição Sistema de autenticação distribuído. Formado por 3 servidores (sistema de confiança tripla): Servidor de Autenticação (AS) Servidor de Concessão de Ticket (TGS) Servidor de Serviços (SS) Outros conceitos: Chave de sessão Ticket Principal Base de Dados do Kerberos 4
Servidor de Autenticação (AS) Authentication Server Responsável pela autenticação em si do usuário 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. 5
Servidor de Concessão de Ticket (TGS) Ticket Granting Server Como o nome já diz, é o responsável pela concessão dos tickets para os serviços que utilizam o Kerberos. 6
Servidor de Serviços (SS) Service Server Realiza o serviço pretendido propriamente dito 7
Chave de sessão É uma chave gerada pelo Kerberos objetivo autenticar a conexão feita por um par de usuários autenticados Essa chave atende ao pedido de um desses usuários, e só é conhecida por esses usuários, durando um tempo determinado 8
Ticket Ele é um certificado distribuído pelo Kerberos Criptografado com a chave secreta do usuário destino Finalidade será informar com segurança: a identidade do usuário para quem o ticket foi originalmente concedido 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. 9
Principal É um termo do Kerberos que define uma entidade por meio de um endereço um usuário um serviç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. Ex: host/servico.empresab.br@servidor.empresa B.BR 10
Base de Dados do Kerberos Associado a cada principal existe um nome, uma senha e algumas outras informações. Estes dados são armazenados na base de dados do Kerberos. Local onde estão cadastrados os dados dos clientes e servidores ( principals ). Esta base de dados é criptografada com uma chave mestra do Kerberos, e pode ser replicada para servidores escravos. Ela não pode ser examinada por qualquer um. 11
Funcionamento de modo Geral O cliente se autentica no AS, então demonstra para o TGS que está autorizado a receber um Ticket para utilizar em um serviço (e o recebe), então demonstra ao Servidor de Serviço (SS) que ele está aprovado para receber um serviço. 12
Funcionamento Ticket granting ticket (TGT) = Ticket de Concessão (ID do cliente, endereço de rede do cliente, validade do ticket e a Chave de sessão Cliente/TGS) criptografado utilizando a chave secreta do TGS 13
Funcionamento 1. O usuário coloca o login e senha no cliente A. O cliente aplica uma criptografia de mão única na senha digitada, e isso se torna a chave secreta do cliente. B. O cliente envia uma solicitação de serviço, através de uma mensagem em textoplano, ao AS. Exemplo de mensagem: O usuário XYZ gostaria de receber um serviço. Nota: Nem a chave secreta, nem a senha são enviadas ao AS 14
Funcionamento 2. O AS verifica se o cliente está em sua base de dados. Se estiver, ele manda as seguintes duas mensagens ao cliente: A. Mensagem A: Chave de sessão Cliente/TGS criptografada usando a chave secreta do usuário. B. Mensagem B: Ticket de Concessão (Que inclui a ID do cliente, endereço de rede do cliente, validade do ticket e a Chave de sessão Cliente/TGS) criptografado utilizando a chave secreta do TGS. Este ticket é chamado de ticket granting ticket (TGT). 15
Funcionamento 2. Somente após o cliente receber a mensagem A e B, ele descriptografa a mensagem A e obtém a Chave de sessão Cliente/TGS. A. Essa chave de sessão é utilizada em comunicações futuras com o TGS. (Nota: O cliente não consegue descriptografar a mensagem B, pois essa é criptografada utilizando a chave secreta do TGS). A B. A partir desse momento, o cliente tem informações o suficiente para se autenticar no TGS. 16
Funcionamento 17 Ticket = (ID do cliente, endereço de rede do cliente, período válido, e uma chave de sessão Cliente/Servidor) criptografado utilizando a chave secreta do serviço
Funcionamento 3. Após requisitar o serviço, o cliente envia as seguintes duas mensagens ao TGS: C. Mensagem C: Composta pelo TGT vinda da mensagem B e o ID do serviço requisitado. D. Mensagem D: O Autenticador (que é composto do ID do cliente e o timestamp ), criptografado utilizando a Chave de sessão Cliente/TGS. 18
Funcionamento 4. Após receber as mensagens C e D, o TGS descriptografa a mensagem D (O Autenticador) utilizando a Chave de sessão Cliente/TGS e envia as seguintes duas mensagens ao cliente: A. Mensagem E: Ticket Cliente-para-servidor (que inclui o ID do cliente, endereço de rede do cliente, período válido, e uma chave de sessão Cliente/Servidor) criptografado utilizando a chave secreta do serviço. B. Mensagem F: Chave de sessão Cliente/Servidor criptografado utilizando a chave de sessão Cliente/TGS. 19
20 Funcionamento
Funcionamento 5. Após receber as mensagens E e F do TGS, o cliente tem informações suficiente para se autenticar no SS. Assim, o cliente se conecta no SS e envia as seguintes mensagens: A. Mensagem E do passo anterior (o Ticket Cliente-para-servidor, criptografado utilizando a chave secreta do serviço). B. Mensagem G: Um novo Autenticador, que inclui o ID do cliente, um timestamp, criptografados com chave de sessão Cliente/Servidor 21
Funcionamento 6. O cliente descriptografa a confirmação utilizando a chave compartilhada com o servidor e verifica se o timestamp está atualizado corretamente. A. Se tiver, o cliente pode confiar no servidor e começa a pedir serviços ao mesmo. B. O Servidor retorna os serviços solicitados pelo cliente. 22
Vantagens A vantagem é que enquanto senhas usualmente são válidas por meses, o TGT é válido somente por um curto período de tempo, tipicamente 8 horas. Depois deste tempo, o TGT não pode ser usado por ninguém, nem usuário nem invasor. 23
Exemplo Real Este mecanismo funciona de maneira semelhante a um visitante num local de trabalho. Você mostra sua identificação (pode ser a carteira de motorista) e recebe uma identificação de visitante. Agora quando quiser entrar numa das várias salas, ao invés de apresentar sua identificação oficial a cada sala (corre-se o risco de ter a identidade perdida ou roubada), basta mostrar a identidade de visitante. Se sua identidade de visitante for perdida ou roubada, você poderá torná-la inválida e substituí-la rapidamente e com facilidade, algo que não acontece com sua carteira de motorista. 24
Rede Kerberos O Alto número de requisições pode tornar um único AS/TGS um gargalo no processo de autenticação. Podemos dividir a rede em realms Cross-realm authenticathion Realm 1 Realm 2 TGS Envia o TGT para requisitar um serviço Envia o TGT2 RTGS O TGS não pode enviar o ticket do serviço porque está em outro realm. Então providencia um TGT para o realm certo. Cliente Recebe o ticket do serviço Envia o ticket do serviço e recebe o serviço Serviço 25
Rede Kerberos Hierarquia de realms 26
Configuração do servidor Linux Inicializando o servidor Kerberos Instalar os arquivos binários Editar o arquivo krb5.conf Editar o arquivo /.k5login Editar o arquivo /etc/services Editar o arquivo /etc/inetd.conf Editar o arquivo /etc/rc.<hostname> Criar a base de dados Adicionar entradas para usuários e serviços Executar os servidores krb5kdc e kadmin em background. 27
Configuração do servidor Linux Registrando principals Uma vez inicializada a base de dados, podese executar o kadmin para adicionar principals. Kerberizando aplicações Reconstruir uma aplicação para que ela passe a usar o Kerberos é chamado de kerberizar a aplicação. 28
Aplicações AFS Apache (com o módulo mod_auth_kerb) Apache 2 (usando libapache-mod-auth-kerb) Roteadores e Switches Cisco utilizando IOS Coda File System Eudora Mac OS X Microsoft Windows (2000 e posteriores) utiliza como protocolo de autenticação padrão Mulberry, um cliente de e-mail desenvolvido por Cyrusoft, Inc. NFS (Desde NFSv3) OpenSSH (with Kerberos v5 or higher) PAM (com o módulo pam_krb5) Samba Desde v3.x SOCKS (Desde SOCKS5) Netatalk As implementações X Window System OpenLDAP, Dovecot IMAP4 e servidores POP3, Servidor de e-mail Postfix Rsh, FTP, and Telnet Qualquer software baseado em Java (Desde 1.4.2) utilizando JAAS/JGSS pode utilizar o Kerberos para a sua segurança 29
Limitações Necessidade da disponibilidade contínua do servidor Kerberos Usuário/servidor e não ponto a ponto Os relógios devem estar sincronizados devido ao timestamp É vulnerável contra senhas fracas 30
Conclusão O sistema de autenticação Kerberos é uma ferramenta que trata alguns itens de segurança em uma rede de computadores. Para redes que necessitam de um grau de segurança mais elevado, a utilização de um sistema como o Kerberos juntamente com outros serviços de segurança, como firewalls e proxies, é imprescindível, pois não é só de fora que vem os ataques. A maioria deles ocorrem de dentro da rede e estes são os mais difíceis de serem tratados. 31