36
JML JML http://regulus.pcs.usp.br/~jean Protocolo Kerberos Protocolo Kerberos

Protocolo Kerberos · 2016-02-27 · Encryption Algorithm) e o RC (Ron's Code ou Rivest Cipher) jean JML Chave Simétrica. jean JML Um pouco …

  • Upload
    doannhu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

JMLJMLhttp://regulus.pcs.usp.br/~jean

Protocolo KerberosProtocolo Kerberos

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

Chave Simétrica

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

Criptografia Convencional - esquema

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

Arquitetura do Kerberos

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

Abreviações

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

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

O que é Kc?

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)

JMLJMLhttp://regulus.pcs.usp.br/~jean

Continuamos a descrição na próxima aula.....

JMLJMLhttp://regulus.pcs.usp.br/~jean

ReferênciaJ. 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.