Autenticação

251 visualizações

Publicada em

Publicada em: Ciências
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
251
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Autenticação

  1. 1. Autenticação Notas para a disciplina de “Segurança Informática” Pedro Félix (pedrofelix@cc.isel.ipl.pt) Instituto Superior de Engenharia de Lisboa
  2. 2. P. Félix, 2006 2SGI: Autenticação Sumário
  3. 3. P. Félix, 2006 3SGI: Autenticação Identificação e Autenticação • Autenticação é o processo de verificação duma alegada identidade • Motivação – Parâmetro para as decisões de controlo de acessos – Parâmetro para as acções de personalização – Informação de auditoria • Exemplo – “user” + “password” • “user” – identificação • “password” - autenticação
  4. 4. P. Félix, 2006 4SGI: Autenticação Informação de autenticação • “Algo” que se conhece – “Passwords” e “passphrases” • “Algo” que se possui – Ex.: “tokens” criptográficos, RSA SecurID • “Algo” que se é – Ex.: características biométricas • “Algo” que se faz – Ex.: assinatura manual • “Onde” se está
  5. 5. P. Félix, 2006 5SGI: Autenticação Sistema de autenticação • Formalização [Bishop] – Conjunto A de informação de autenticação – Conjunto V de informação de validação – Função f: A  V – Função g: V  A  {true, false} • Exemplo – f(a) = H(a) – g(v)(a) = ( v = H(a)) Sujeito Sistema a f v ga {true,false}
  6. 6. P. Félix, 2006 6SGI: Autenticação “Passwords”: ataques de dicionário • Ataques do tipo 1 – Entrada: informação de validação - v – Saída: informação de autenticação 1. Para cada a’ pertencente a Dicionário 1. Se f(a’) = v retornar a’ 2. Retornar “falha” • Ataques do tipo 2 – Entrada: função de autenticação – g(v) – Saída: informação de autenticação 1. Para cada a’ pertencente a Dicionário 1. Se g(v)(a’) = true retornar a’ 2. Retornar “falha”
  7. 7. P. Félix, 2006 7SGI: Autenticação Ameaça: pesquisa de “passwords” • Pesquisa exaustiva – testar todas as “passwords” possíveis por ordem arbitrária • Pesquisa “inteligente” – testar primeira as “passwords” pertencentes mais prováveis – Dicionários • Palavras – Algoritmos • Combinação de palavras
  8. 8. P. Félix, 2006 8SGI: Autenticação Protecção contra ataques de dicionário • Aumentar a incerteza da “password” – Passwords aleatórias – Selecção proactiva – Verificação offline • Controlar o acesso à informação de verificação • Aumentar o tempo de processamento da função f • Aumentar o tempo de processamento ou limitar o acesso à função g(v)
  9. 9. P. Félix, 2006 9SGI: Autenticação Geração aleatória de “passwords” • Geração aleatória de “passwords” – maximização do tempo de pesquisa. • Problema: dificuldade de memorização – Escolher e memorizar transformação t: A  A – Gerar de forma aleatória e armazenar x – Usar t(x) como informação de autenticação • “Passwords” aleatórias pronunciáveis – “passwords” construídas com base em fonemas
  10. 10. P. Félix, 2006 10SGI: Autenticação Selecção proactiva de “passwords” • A “password” é escolhida pelo utilizador, contudo a sua segurança é verificada pelo sistema • A aceitação da “password” está dependente da verificação realizada pelo sistema • “Passwords” consideradas inseguras – Variantes do nome do utilizador – Variantes do nome do computador – Palavra presente em dicionários • Ao contrário • Letras maiúsculas – Padrões do teclado – Acrónimos – Números associados ao utilizador: BI, NC, Matrícula
  11. 11. P. Félix, 2006 11SGI: Autenticação Filtros de Bloom • Forma eficiente (em espaço) de implementação do dicionário • Parâmetros – Dimensão – n – Conjunto de m funções de hash (h1, ..., hm) • Dados – Array booleano A de dimensão n • Inserção da palavra p – A[vi] = 1, para vi = hi(p), e i = 1, ..., m • Verificação da palavra p – Verificar se A[vi] = 1, para todos vi = hi(p), e i = 1, ..., m
  12. 12. P. Félix, 2006 12SGI: Autenticação Verificação offline • Utilização de ferramentas para a realização de ataques de dicionário – Ataque às passwords dos utilizadores do sistema – Notificação/bloqueio dos utilizadores com “passwords” atacadas com sucesso • Exemplos – L0phtCrack – http://lasecwww.epfl.ch/~oechslin/projects/ophcrack/index.php
  13. 13. P. Félix, 2006 13SGI: Autenticação Protecção contra ataques tipo 1 • Tornar a execução da função f mais demorada • Exemplo – f = H, onde H é uma função de hash – Solução: f = HR • Controlar o acesso à informação de verificação
  14. 14. P. Félix, 2006 14SGI: Autenticação Ataques com pré-computação • Baseai-se no facto da função f ser igual para todos os utilizadores • Seja D um dicionário de palavras prováveis e M um array associativo • Pré-computação – Para todos a’i em D, calcular e armazenar o par (f(a’i), a’i) em M (tal que M[f(a’i)] = a’i) • Ataque – Dado v, retornar M[v] • A pré-computação é usada para obter a “password” de qualquer utilizador
  15. 15. P. Félix, 2006 15SGI: Autenticação Protecção: “salt” • Protecção contra os ataques de dicionário descritos anteriormente • Solução: tornar a função f diferente para cada utilizador • Exemplo: fU(a) = H(saltU | a), onde – fU é a função associada ao utilizador U – saltU é uma sequência de “bytes” gerada aleatoriamente para cada utilizador • Neste cenário, a pré-computação depende de salt – é específica de cada utilizador do sistema – não pode ser utilizada para atacar todos os utilizadores do sistema
  16. 16. P. Félix, 2006 16SGI: Autenticação Protecção contra ataques tipo 2 • Limitar o acesso à função de autenticação g(v) após a detecção de tentativas de autenticação erradas • Técnicas – Backoff • O tempo de execução de g(v) depende do número anterior de tentativas erradas – Terminação da ligação • Terminação da ligação em caso de erro – Bloqueamento • Bloqueamento da função g(v) após um número de tentativas erradas – Jailing • Acesso ao serviço com funcionalidade limitada • Problema: garantir a disponibilidade do serviço
  17. 17. P. Félix, 2006 17SGI: Autenticação “Password” aging • Limitar o tempo de utilização duma password – Tornar o tempo de utilização ,enor que o tempo médio de pesquisa • Aspectos de implementação/parametrização – Memorização das “passwords” anteriores – Tempo mínimo de utilização das “passwords” – Tempo máximo para o utilizador proceder à mudança da “password”
  18. 18. P. Félix, 2006 18SGI: Autenticação Exemplo: Windows XP • Local Security Policy/Security Settings/Account Policies/Password Policy – “Enforce password history” – impedir a reutilização de “passwords” – “maximum password age” – tempo de vida máximo da “password” – “minimum password age” – tempo de vida mínimo da “password” – “password must meet complexity requirements” – selecção proactiva • Não pode conter parte do nome do utilizador • Dimensão mínima de 6 caracteres • Conter caracteres de 3 de 4 conjuntos: A-Z, a-z,0-9 e alfanumérico ($,!,#,%)
  19. 19. P. Félix, 2006 19SGI: Autenticação Exemplo: Windows XP - filtros de “passwords” • Um filtro é uma DLL exportando as seguintes funções – Iniciação BOOLEAN InitializeChangeNotify(void); – Verificação BOOLEAN PasswordFilter( PUNICODE_STRING AccountName, PUNICODE_STRING FullName, PUNICODE_STRING Password, BOOLEAN SetOperation ); – Notificação NTSTATUS PasswordChangeNotify( PUNICODE_STRING UserName, ULONG RelativeId, PUNICODE_STRING NewPassword ); • Instalação – Colocar referência à DLL em “HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetControlLsaNotification Packages”
  20. 20. P. Félix, 2006 20SGI: Autenticação Exemplo: Windows XP • .../Account Lockout Policy – “Account lockout duration” – período em que o acesso é impedido após um determinado número de tentativas falhadas – “Account lockout threshould” – número de tentativas falhadas que resultam no impedimento do acesso – “Reset account lockout counter” – período de tempo após o qual é reiniciado o contador de tentativas falhadas • Local Security Policy/Security Settings/Local Policies/Audit Policy – “Audit logon events”
  21. 21. P. Félix, 2006 21SGI: Autenticação Exemplo: Unix - Crypt • char *crypt(const char *key, const char *salt); • O Unix usa função de hash Crypt baseada na primitiva DES – A permutação de expansão E depende de salt – Entrada é usada como chave – Bloco inicial é 0x00...00 – Processo repetido 25 vezes • O ficheiro etc/passwd – Contém o hash da “password” de cada utilizador – Controla os acessos de escrita • Novas “versões” do Unix usam métodos diferentes – etc/shadow – apenas “root” tem acesso de leitura – PAM (Pluggable Authentication Module)
  22. 22. P. Félix, 2006 22SGI: Autenticação Exemplo: Windows NT • LAN Manager – H(pw) = E(pw1, C1)|E(pw2,C2) – E é a função de cifra da primitiva DES – C1 e C2 são constantes – pw1 e pw2 são duas chaves obtidas a partir da extensão/truncamento de pw, préviamente convertida para “uppercase” • NT – H(pw) = MD4(pwuc) – pwuc é a codificação de pw em unicode • Exemplo (obtido através do utilitário pwdump2) – tuser1:1028:91c7ae7122196b5eaad3b435b51404ee:22315d6ed1a7d5f8a7c98c40e9fa2dec:: : – tuser2:1029:91c7ae7122196b5eaad3b435b51404ee:61ba88d2bfe9b2e0fcff869e2fb5265c::: • Local Security Settings/... / ... Do not store LAN Manager hash value on next password change
  23. 23. P. Félix, 2006 23SGI: Autenticação Ameaça: spoofing attacks • Obtenção da “password” através da simulação da interface de autenticação ou intercepção desta • Prevenção – “Trusted path” (ex. Secure Attention Sequence no Windows) – Autenticação mútua • Detecção – Registo e apresentação do número e data das autenticações falhadas
  24. 24. P. Félix, 2006 24SGI: Autenticação Protocolos Desafio-Resposta • Conjunto C de desafios • Função de resposta r: A x C  A • Função de autenticação g: V x C  A  {true, false} Sujeito Sistema a f v ga {true,false} c r Desafio Resposta
  25. 25. P. Félix, 2006 25SGI: Autenticação Exemplo: protocolo HTTP
  26. 26. P. Félix, 2006 26SGI: Autenticação “Passwords” de utilização única • S/Key • Dado uma semente K0 e uma função de hash H – Ki = H(Ki-1) – Pi = Kn-i+1 – Desafio: índice i (crescente e usado apenas uma vez) – Resposta: Pi H H H H K0 K1 K2 K3 K4 P5 P4 P3 P2 P1
  27. 27. P. Félix, 2006 27SGI: Autenticação Sistemas biométricos • Usados para identificação e autenticação • Exemplos: – Face, geometria da mão, íris, voz, impressão digital, ... • Caracterização – Universalidade – Capacidade de distinção – Permanência – Recolha – Desempenho – Aceitabilidade – Falsificação • Erros – Identificação – Falsa aceitação – Falsa rejeição
  28. 28. P. Félix, 2006 28SGI: Autenticação Comparação Universalidade Distinção Permanência Recolha Desempenho Aceitabilidade Falsificação Face H L M H L H H Impressão Digital M H H M H M M Geometria da mão M M M H M M M Íris H H H M H L L Retina H H M L H L L Voz M L L M L H H Adaptado de: D. Maltoni et al, “Handbook of Fingerprint Recognition”, Springer, 2003

×