kerberos - universidade federal do maranhãogeraldo/soii/7.kerberos.pdf · socks (desde socks5)...
TRANSCRIPT
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/[email protected]
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
13
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
Funcionamento1. 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 texto-plano, 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
Funcionamento2. 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/TGScriptografada 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
Funcionamento2. 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
Funcionamento3. 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
Funcionamento4. 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
Funcionamento
20
Funcionamento5. 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
Funcionamento6. 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
25
TGS
Cliente
RTGS
Realm 1 Realm 2
Serviço
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.
Envia o TGT para
requisitar um
serviço
Envia o TGT2
Recebe o ticket do
serviço
Envia o ticket do serviço e
recebe o serviço
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, pode-se 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