Protocolo Kerberos
Origem do termo: mitologia grega Cerberus (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).
Associação 1: AAAs Autenticação Autorização Auditoria Por que a simbologia?
Por que a simbologia? Associação 2: três entidades básicas Cliente Servidor KDC (Centro de Distribuição de Chaves)
Premissas Internet é um local inseguro As mensagens podem ser interceptadas Tem sempre alguém querendo roubar informações Não existe nada 100% seguro
Protocolo Kerberos Autenticação confiável: cliente e servidor Criptografia de mensagens Baseado em chaves simétricas
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)
Chave Simétrica
Um pouco mais de detalhe DES: IDEA: Criado em 1977 pela IBM Usa chaves de 56 bits "força bruta" para descobrir a chave: aplicar o algoritmo 2 56 vezes, cerca de 72 000 000 000 000 000 vezes. 1991 RC: Chaves de 128 bits (3,4 x 10 38 chaves) 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)
Criptografia Convencional - esquema
Atividade 1. 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.
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!
Arquitetura do Kerberos
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
Sequencia de Atividades 1. Requisição: obter ticket para falar com TGS 2. Resposta: ticket para falar com TGS 3. Requisição: obter ticket para falar com Servidor 4. Resposta: ticket para falar com Servidor 5. Requisição de serviço
Abreviações
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
Tipos de credenciais Tickets Autenticadores Utilizam criptografia por chave privada Chaves utilizadas são diferentes!
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
Ticket Contém: Nome do cliente Nome do servidor Ip do cliente Timestamp Tempo de vida Chave de sessão randômica criptografada
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:
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:
Passo 1: Detalhando o Protocolo Kerberos Usuário informa seu username (via prompt) como em um sistema timesharing Servidor de Autenticação
Passo 2: Servidor de Autenticação
Passo 2: Servidor de Autenticação Chave de Sessão entre C e TGS
Passo 2: Servidor de Autenticação Ticket para C usar com o TGS
Passo 2: Servidor de Autenticação Ticket para C usar com o TGS O que tem no Ticket?
Passo 2: Servidor de Autenticação Ticket para C usar com o TGS O que tem no Ticket? - Nome do cliente - Nome do TGS - Timestamp - Lifetime - IP do cliente
Passo 2: Servidor de Autenticação Criptografia: Chave privada conhecida pelo TGS
Passo 2: Servidor de Autenticação O que é K c?
Passo 2: Servidor de Autenticação Criptografia: Chave privada conhecida pelo C
Passo 2: Servidor de Autenticação Criptografia: Chave privada conhecida pelo C Key gerada através do Password do Cliente
Usuário é questionado 1) Quando a resposta chega ao usuário seu password é solicitado 2) O password servirá de entrada para o DES que gerará uma chave 3) Esta chave será usada para decifrar a mensagem enviada pelo SA 4) O Ticket e a chave de sessão são armazenados e o restante da msg apagados da memória
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)
Continuamos a descrição na próxima aula...
Referência J. G. Steiner, B. Clifford Neuman, and J.I. Schiller. Kerberos: An Authentication Service for Open Network Systems. In Proceedings of the Winter 1988 Usenix Conference. February, 1988.