Protocolo Kerberos · 2016-02-27 · Encryption Algorithm) e o RC (Ron's Code ou Rivest Cipher)...
Transcript of Protocolo Kerberos · 2016-02-27 · Encryption Algorithm) e o RC (Ron's Code ou Rivest Cipher)...
JMLJMLhttp://regulus.pcs.usp.br/~jean
Origem do termo: mitologia gregaCerberus (Kerberus para os gregos) é um cão com três cabeças que tem por missão proteger a entrada do inferno de Hades (deus do submundo e das riquezas dos mortos).
Como o senhor implacável e invencível da morte, é Hades o deus mais odiado pelos mortais (Homero).
JMLJMLhttp://regulus.pcs.usp.br/~jean
Por que a simbologia?Associação 1: AAAs• Autenticação • Autorização • Auditoria
JMLJMLhttp://regulus.pcs.usp.br/~jean
Por que a simbologia?Associação 2: três entidades básicas
– Cliente– Servidor – KDC (Centro de Distribuição de Chaves)
JMLJMLhttp://regulus.pcs.usp.br/~jean
Premissas• Internet é um local inseguro• As mensagens podem ser interceptadas• Tem sempre alguém querendo roubar
informações• Não existe nada 100% seguro
JMLJMLhttp://regulus.pcs.usp.br/~jean
Protocolo Kerberos• Autenticação confiável: cliente e servidor• Criptografia de mensagens
– Baseado em chaves simétricas
JMLJMLhttp://regulus.pcs.usp.br/~jean
Abrindo um parênteses: Chave Simétrica Modelo mais simples Emissor e o receptor fazem uso da mesma
chave na codificação e decodificação da informação.
Existem vários algoritmos que usam chaves simétricas, como o DES (Data Encryption Standard), o IDEA (International Data Encryption Algorithm) e o RC (Ron's Code ou Rivest Cipher)
JMLJMLhttp://regulus.pcs.usp.br/~jean
Um pouco mais de detalhe DES:
Criado em 1977 pela IBM Usa chaves de 56 bits "força bruta" para descobrir a chave:
aplicar o algoritmo 256 vezes, cerca de 72 000 000 000 000 000 vezes. IDEA:
1991 Chaves de 128 bits (3,4 x 1038 chaves)
RC: Usado em: SSH, WEP, etc Várias versões: RC2, RC4, RC5 e RC6 Chaves vão de 8 a 2048 bits (parâmetro do algoritmo)
JMLJMLhttp://regulus.pcs.usp.br/~jean
Atividade1. Faça uma pesquisa sobre os algoritmos de
criptografia mais utilizados e compare suas características principais.
2. Escreva um programa para gerar todas as combinações de chaves de 16, 32, 64 e 128 bits e deixe rodando na sua máquina, contando o tempo. Faça um gráfico comparando os tempos de execução.
JMLJMLhttp://regulus.pcs.usp.br/~jean
Características do Kerberos• Protocolo rápido• Baseia-se no uso de tickets de permissão• Lifetime e Timestamps • É um padrão aberto (RFC 1510)• Suporte para smartcards: kerberos pkinit• Extensões para Windows e Linux
– Serviços kerberizados!
JMLJMLhttp://regulus.pcs.usp.br/~jean
Protocolo Kerberos• Visão Geral:
– Todas as conexões entre clientes e servidor começam com uma autenticação
– Ações são desencadeadas– Uma ponta da conexão tenta verificar se a
outra é verdadeira– Se ok, uma sessão segura é estabelecida
entre cliente e servidor
JMLJMLhttp://regulus.pcs.usp.br/~jean
Sequencia de Atividades
1. Requisição: obter ticket para falar com TGS2. Resposta: ticket para falar com TGS3. Requisição: obter ticket para falar com Servidor4. Resposta: ticket para falar com Servidor5. Requisição de serviço
JMLJMLhttp://regulus.pcs.usp.br/~jean
Detalhando o protocolo• O protocolo kerberos é organizado em 3 fases:
1.Usuário obtém credenciais que serão utilizadas para requisitar outros serviços
2.Usuário solicita autenticação no TGS para um Servidor X
3.Usuário apresenta suas credenciais ao Servidor X e faz a requisição das solicitações
JMLJMLhttp://regulus.pcs.usp.br/~jean
Tipos de credenciais• Tickets • Autenticadores
• Utilizam criptografia por chave privada• Chaves utilizadas são diferentes!
JMLJMLhttp://regulus.pcs.usp.br/~jean
Tickets• É a identidade do cliente ou processo• É certificado pelo servidor de autenticação e
pelo TGS• Garante que a pessoa que está usando o ticket
é a mesma para qual ele foi gerado• É único e exclusivo para cada serviço na rede
JMLJMLhttp://regulus.pcs.usp.br/~jean
Ticket• Contém:
– Nome do cliente– Nome do servidor– Ip do cliente– Timestamp– Tempo de vida– Chave de sessão randômica criptografada
JMLJMLhttp://regulus.pcs.usp.br/~jean
Ticket• Pode ser utilizado várias vezes, enquanto não
expirar!• Só pode ser utilizado pela mesma tupla
{cliente_c,servidor_s}
• Formato do ticket:
JMLJMLhttp://regulus.pcs.usp.br/~jean
Autenticadores Só podem ser utilizados uma única vez Devem ser gerados antes de cada solicitação
do cliente O próprio cliente é responsável por criar seu
autenticador Formato do autenticador:
JMLJMLhttp://regulus.pcs.usp.br/~jean
Detalhando o Protocolo KerberosPasso 1:Usuário informa seu username (via prompt) como
em um sistema timesharingServidor de Autenticação
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
Chave de Sessão entre
C e TGS
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
Ticket para C usar com o
TGS
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
O que tem no Ticket?
Ticket para C usar com o
TGS
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
O que tem no Ticket?
- Nome do cliente- Nome do TGS- Timestamp- Lifetime- IP do cliente
Ticket para C usar com o
TGS
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
Criptografia:Chave privada
conhecida pelo TGS
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
Criptografia:Chave privada
conhecida pelo C
JMLJMLhttp://regulus.pcs.usp.br/~jean
Passo 2: Servidor de Autenticação
Criptografia:Chave privada
conhecida pelo C
Key geradaatravés do
Password doCliente
JMLJMLhttp://regulus.pcs.usp.br/~jean
Usuário é questionado1) Quando a resposta chega ao usuário seu
password é solicitado2) O password servirá de entrada para o DES que
gerará uma chave 3) Esta chave será usada para decifrar a
mensagem enviada pelo SA4) O Ticket e a chave de sessão são armazenados
e o restante da msg apagados da memória
JMLJMLhttp://regulus.pcs.usp.br/~jean
O que foi feito até o momento?
O processo cliente tem informações que podem ser utilizadas para provar a identidade do usuário por um certo tempo (lifetime)