© André Zúquete Segurança Informática e nas Organizações 1
Protocolos de autentica Protocolos de autentica Protocolos de autentica Protocolos de autenticação ção ção ção
Autenticação Autenticação Autenticação Autenticação
Definição
Prova de que uma entidade é quem afirma ser
— Olá, sou o Zé
— Prova-o!
— Aqui estão as minhas credenciais de como sou o Zé
— Credenciais aceites/não aceites
Tipos de prova
Algo que sabemos
Um segredo memorizado (ou escrito…) pelo Zé
Algo que temos
Um objecto possuído apenas pelo Zé
Algo que somos
A biometria do Zé
© André Zúquete Segurança Informática e nas Organizações 3
Autenticação:
Autenticação:
Autenticação:
Autenticação:
Objectivos Objectivos Objectivos Objectivos
Autenticar entidades interactuantes
Pessoas, serviços, servidores, máquinas, redes, etc.
Permitir a aplicação de políticas e mecanismos de autorização
Autorização ⇒autenticação
Facilitar a exploração de outras ações no âmbito da segurança
eg. distribuição de chaves para comunicação segura
Autenticação:
Autenticação:
Autenticação:
Autenticação:
Requisitos Requisitos Requisitos Requisitos
Confiança
Quão boa é a provar a identidade de uma entidade?
Quão difícil é de subverter?
Secretismo
Não-divulgação de credenciais usadas pelas entidades legítimas
Robustez
Impedir ataques às trocas de dados do protocolo
Impedir cenários de DoS interactivos
Impedir ataques desligados com dicionários
Simplicidade
Deverá ser tão simples quanto possível para evitar que os utentes escolham simplificações perigosas
Lidar com vulnerabilidades introduzidas pelas pessoas
Têm uma tendência natural para facilitar ou para tomarem iniciativas perigosas
© André Zúquete Segurança Informática e nas Organizações 5
Autenticação:
Autenticação:
Autenticação:
Autenticação:
Entidades e modelos de implantação Entidades e modelos de implantação Entidades e modelos de implantação Entidades e modelos de implantação
Entidades
pessoa
Máquinas
Redes
Serviços / servidores
Modelos de implantação
Ao longo do tempo
Quando a interação se inicia
Continuamente ao longo da interação
Direcionalidade
Unidirecional
Bidirecional
Protocolos de autenticação:
Protocolos de autenticação:
Protocolos de autenticação:
Protocolos de autenticação:
Aproximações elementares Aproximações elementares Aproximações elementares Aproximações elementares
Aproximação directa
Apresentar credenciais
Esperar pelo veredicto
Aproximação com desafio-resposta
Obter desafio
Calcular e fornecer uma resposta calculada com base no desafio e nas credenciais
Esperar pelo veredicto
© André Zúquete Segurança Informática e nas Organizações 7
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Aproximação directa com senha memorizada Aproximação directa com senha memorizada Aproximação directa com senha memorizada Aproximação directa com senha memorizada
Como funciona
A senha é confrontada com um valor guardado para a pessoa que se está a autenticar
Valor pessoal guardado:
Transformação efetuada com a senha + função unidirecional
DES hash + salt em UNIX
Função de síntese em Windows
MD5 em Linux vantagens
Simplicidade
Problemas
Utilização de senhas fracas/inseguras
Permitem ataques com dicionários
Transmissão de senhas em claro em canais de comunicação inseguros
Escutas podem revelar senhas
eg. serviços remotos do UNIX, PAP
DES hash= DESpwd25(0) DESkn(x) = DESk(DESkn-1(x))
Permutação of 12 bit pairs of 48-bit key schedules with salt (12 bits)
0 DES
(1) pwd
salt
DES (25) pwd
salt DES
(2) pwd
salt = ?
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Aproximação directa com Biometria Aproximação directa com Biometria Aproximação directa com Biometria Aproximação directa com Biometria
Como funciona
Uma pessoa autentica-se usando medidas do seu corpo
Impressão digital, íris, geometria da face, timbre vocal, escrita manual, etc.
Estas medidas são comparadas com um registo pessoal similar (template)
Criado no sistema de forma similar mas no âmbito de uma inscrição anterior Vantagens
As pessoas não precisam de memorizar nada
As pessoas não podem escolher senhas fracas
De facto, não escolhem nada
As credenciais não podem ser transferidas entre pessoas
Problemas
A biométrica ainda está incipiente
Em muitos casos pode ser enganada facilmente
As pessoas não podem mudar de credenciais
As credenciais não podem ser transferidas entre pessoas
Pode criar riscos para as pessoas
Não é fácil efectuar autenticação remota
A biometria pode revelar informação pessoal sensível
Doenças
© André Zúquete Segurança Informática e nas Organizações 9
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Aproximação directa com senhas descartáveis Aproximação directa com senhas descartáveis Aproximação directa com senhas descartáveis Aproximação directa com senhas descartáveis
Senhas descartáveis (one-time passwords)
Senhas que se podem usar no máximo uma vez
Vantagens
Pode ser escutadas, isso não adianta a quem o fizer para personificar o dono da senha
Problemas
As entidades interactuantes precisam de saber que senhas devem usar em diferentes ocasiões
Implica uma qualquer forma de sincronização
As pessoas podem precisar de recursos extra para manter ou gerar as senhas descartáveis
Folha de papel, programa de computador, dispositivos adicionais, etc.
Exemplo:
Exemplo:
Exemplo:
Exemplo:
RSA SecurID RSA SecurID RSA SecurID RSA SecurID
Equipamento de autenticação pessoal
Há também módulos de software para dispositivos móveis (PDAs, smartphones)
Geram um número único a uma taxa fixa
Normalmente um por cada minuto ou meio minuto
Associado a uma pessoa (User ID)
Número único calculado com base em
Uma chave de 64 bits guardada no equipamento
A data/hora actual
Uma algoritmo exclusivo (SecurID hash)
Um PIN extra (apenas para alguns equipamentos) Autenticação com senhas únicas
Uma pessoa gera uma OTP combinando o seu User ID com o número apresentado pelo equipamento
OTP = User ID, Token Number
Um RSA ACE Server faz o mesmo, dado o User ID, e verifica e igualdade
Também conhece a chave pessoa guardada no equipamento
Tem de haver alguma sincronização extra para lidar com desvios dos relógios
RSA Security Time Synchronization Robusta contra ataques com dicionários
As chaves não são escolhidas por pessoas
© André Zúquete Segurança Informática e nas Organizações 11
Aproximação com desafio Aproximação com desafio Aproximação com desafio
Aproximação com desafio----resposta:resposta:resposta:resposta:
Descrição genérica Descrição genérica Descrição genérica Descrição genérica
Como funciona
O autenticador fornece um desafio
A entidade a ser autenticada transforma o desafio usando as suas credenciais de autenticação
O resultado é enviado para o autenticador
O autenticador verifica o resultado
Produz um resultado próprio usando a mesma aproximação e verifica a igualdade
Produz um valor a partir do resultado e verifica se iguala o desafio ou algum valor relacionado
Vantagem
As credenciais de autenticação não são expostas
Problemas
As pessoas tem de ter meios para calcular respostas a partir de desafios
Hardware ou software
O autenticador poderá ter de manter segredos partilhados
Como é que se pode impedir que usem esses segredos noutros locais?
Ataques com dicionários autónomos usando pares desafio-resposta
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Desafio Desafio Desafio
Desafio----resposta com resposta com resposta com resposta com smartcardssmartcardssmartcardssmartcards
Credenciais de autenticação
O smartcard
eg. o Cartão de Cidadão
A chave privada guardada no smartcard
O PIN de acesso à chave privada
O autenticador sabe
A chave pública correspondente
Protocolo com desafio-resposta
O autenticador gera um desafio aleatório
Ou nunca antes usado (nonce)
O dono do smartcardcifra o desafio com a sua chave privada
Guardada no smartcard, protegida pelo PIN
O autenticador decifra o resultado com a chave pública
Se o resultado for igual ao desafio, a autenticação teve sucesso
© André Zúquete Segurança Informática e nas Organizações 13
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Desafio DesafioDesafio
Desafio----resposta com senha memorizadaresposta com senha memorizadaresposta com senha memorizadaresposta com senha memorizada
Credenciais de autenticação
Senha selecionada pelo utente
O autenticador sabe
Uma transformação da senha
Preferencialmente unidirecional
Protocolo com desafio-resposta elementar
O autenticador gera um desafio aleatório
Ou nunca antes usado (nonce)
O utente calcula uma transformação unidirecional do desafio e da senha
eg. uma síntese comum, resposta = síntese (desafio, senha)
O autenticador faz o mesmo
Se os resultados forem iguais, a autenticação teve sucesso
Exemplos
CHAP, MS-CHAP v1/v2, S/Key
PAP e CHAP PAP e CHAP PAP e CHAP PAP e CHAP
(RFC 1334, 1992, RFC 1994, 1996) (RFC 1334, 1992, RFC 1994, 1996) (RFC 1334, 1992, RFC 1994, 1996) (RFC 1334, 1992, RFC 1994, 1996)
Protocolos usados com PPP (Point-to-Point Protocol)
Autenticação unidirecional
O autenticador não se autentica, ou não é autenticado PAP (PPP Authentication Protocol)
Apresentação simples de um par UID/senha
Transmissão (insegura) da senha em claro
CHAP (CHallenge-response Authentication Protocol)
Aut U:authID, desafio
U Aut:MD5(authID, senha, desafio) Aut U:OK/not OK
O autenticador pode requerer a autenticação em qualquer instante
© André Zúquete Segurança Informática e nas Organizações 15
MS MS MS
MS----CHAP (Microsoft CHAP)CHAP (Microsoft CHAP)CHAP (Microsoft CHAP)CHAP (Microsoft CHAP)
(RFC 2433, 1998, RFC 2759, 2000) (RFC 2433, 1998, RFC 2759, 2000) (RFC 2433, 1998, RFC 2759, 2000) (RFC 2433, 1998, RFC 2759, 2000)
Version 1
A U:authID, C U A:R
A U:OK/not OK
R = DESPH(C) PH = LMPHou NTPH
LMPH = DEShash(senha) NTPH = senha
Version 2
A U:authID, CA m1 U A:CU, Ru m2 A U:OK/not OK, RA
RU= DESPH(C)
C = SHA(CU, CA, username) PH = MD4(senha)
RA= SHA(SHA(MD4(PH), R1u, m1), C, m2)
Autenticação mútua
As senhas podem ser alteradas
MS MS
MS MS----CHAP v2 CHAP v2 CHAP v2 CHAP v2
CA SHA-1 DES CU
nome
senha MD4
RU
RA SHA-1 SHA-1 MD4
m1 m2
C
nome m1 = AuthID, CA
m2 = CU,RU ok/nok, RA
© André Zúquete Segurança Informática e nas Organizações 17
S/Key S/Key S/Key S/Key
(RFC 2289, 1998) (RFC 2289, 1998)(RFC 2289, 1998) (RFC 2289, 1998)
Credenciais de autenticação
A senha
O autenticador sabe
A última chave única (one-time password, OTP)
O índice da última OTP usada
Define a ordem relativa entre OTP consecutivas
Uma semente (ou raíz) de todas as OTP
Preparação do autenticador
O autenticador define uma semente aleatória
A pessoa gera a OTP inicial (OTPn) da seguinte forma:
OTPn= hn( semente, senha), where h = MD4
Há versões do S/Key que usam MD5 ou SHA-1 em vez de MD4
O autenticador guarda semente, n(o índice) e OTPncomo elementos de validação da autenticidade
MD4 MD4 MD4
semente
senha OTP1 OTP2MD4 OTPn
S/Key S/Key S/Key S/Key
Protocolo de autenticação
O autenticador envia a semente e o índicepessoais
Servem como desafio
O utente gera índice-1OTP consecutivas
E seleciona a última, OTPiíndice-1, como resultado
O autenticador calcula h (resultado)e compara o valor produzido com o OTPíndice que tem armazenado
Se os valores forem iguais, a autenticação teve sucesso
Em caso de sucesso, guarda os últimos valores usados para o índice e para a OTP
índice-1e OTPíndice-1
© André Zúquete Segurança Informática e nas Organizações 19
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Autenticação de pessoas:
Desafio DesafioDesafio
Desafio----resposta com uma chave partilhadaresposta com uma chave partilhadaresposta com uma chave partilhadaresposta com uma chave partilhada
Usa uma chave criptográfica partilhada em vez de uma senha
Mais robusto contra ataques de dicionário
Requer um dispositivo para guardar a chave
Exemplo:
GSM
GSM: GSM:
GSM: GSM:
Arquitectura de Autenticação Arquitectura de Autenticação Arquitectura de Autenticação Arquitectura de Autenticação
Baseada numa chave secreta partilhada entre o HLR e o telefone móvel
128 Ki, guardada no cartão SIM do telefone móvel
Só pode ser usada após a introdução do PIN de desbloqueio Algoritmos (inicialmente não públicos):
A3 para autenticação
A8 para gerar a chave de sessão
A5 para cifrar a comunicação
A3 e A8 realizados pelo cartão SIM
Podem ser escolhidos pelo operador
© André Zúquete Segurança Informática e nas Organizações 21
GSM:
GSM:
GSM:
GSM:
Autenticação de um terminal móvel Autenticação de um terminal móvel Autenticação de um terminal móvel Autenticação de um terminal móvel
MSC pede 5 trios ao HLR/AUC (RAND, SRES, Kc)
HLR gera 5 RAND e os correspondentes trios usando Ki do subscritor
RAND (128 bits) = valor aleatório
SRES (32 bits) = A3 (Ki, RAND)
Kc (64 bits) = A8 (Ki, RAND)
Normalmente os operadores usam COMP128 para o A3/A8
Recomendada pelo GSM Consortium
[SRES, Kc] = COMP128 (Ki, RAND)
Autenticação de máquinas Autenticação de máquinas Autenticação de máquinas Autenticação de máquinas
Por nome ou endereço
Nome DNS, endereço IP, endereço MAC, outros
Extremamente fraco, sem prova criptográfica
Mesmo assim, usada por alguns serviços
eg. NFS, TCP wrappers
Com chaves criptográficas
Chaves secretas partilhadas com interlocutores comuns
Pares de chaves assimétricas por máquina
Chaves públicas certificadas por terceiros
Chaves públicas pré-partilhadas com interlocutores comuns
© André Zúquete Segurança Informática e nas Organizações 23
Autenticação de serviços/servidores Autenticação de serviços/servidores Autenticação de serviços/servidores Autenticação de serviços/servidores
Autenticação da máquina hospedeira
Todos os serviços co-localizados são automaticamente e indirectamente autenticados
Credenciais próprias do serviço
Autenticação:
Chaves secretas partilhadas com clientes
Quando envolvem a autenticação dos clientes com as mesmas
Pares de chaves assimétricas por máquina/serviço
Certificadas por terceiros ou não
SSH (Secure Shell) SSH (Secure Shell) SSH (Secure Shell) SSH (Secure Shell)
Autenticação do servidor com um par de chaves assimétricas
Distribuição da chave pública no âmbito da interação
Os clientes guardam as chaves públicas que já usaram
A guarda deve ocorrer após um contacto num ambiente confiável
A alteração do par de chaves do servidor cria um problema aos seus utentes habituais
Autenticação do cliente
Nome de utente + senha
Nome de utente + chave privada
A chave pública tem de ser pré-instalada no servidor