SlideShare uma empresa Scribd logo
1 de 28
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
P. Félix, 2006 2SGI: Autenticação
Sumário
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
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á
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}
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”
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
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)
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
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
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
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
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
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
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
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
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”
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 ($,!,#,%)
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”
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”
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)
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
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
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
P. Félix, 2006 25SGI: Autenticação
Exemplo: protocolo HTTP
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
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
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

Mais conteúdo relacionado

Mais procurados

Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoCleórbete Santos
 
Examinando redes com Nmap
Examinando redes com NmapExaminando redes com Nmap
Examinando redes com NmapDaniel Marques
 
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13 Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13 Clavis Segurança da Informação
 
Certificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosCertificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosLeandro Rezende
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosLeandro Rezende
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasAlexandro Silva
 
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...Clavis Segurança da Informação
 
Treta Hunting - Cris Barbosa
Treta Hunting - Cris BarbosaTreta Hunting - Cris Barbosa
Treta Hunting - Cris BarbosaTest Girls
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 

Mais procurados (14)

Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetração
 
Examinando redes com Nmap
Examinando redes com NmapExaminando redes com Nmap
Examinando redes com Nmap
 
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13 Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
Palestra "Teste de Invasão com o Nmap Scripting Engine"" FISL 13
 
Certificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosCertificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 Exercícios
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 Exercícios
 
Palestra Auditoria de Segurança em Redes sem Fio
Palestra Auditoria de Segurança em Redes sem FioPalestra Auditoria de Segurança em Redes sem Fio
Palestra Auditoria de Segurança em Redes sem Fio
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Webinar # 21 – Análise Forense de Redes
 Webinar # 21 – Análise Forense de Redes Webinar # 21 – Análise Forense de Redes
Webinar # 21 – Análise Forense de Redes
 
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...
Webinar # 16 – Ataques de Força Bruta – Método Dicionário, Híbridos e Rainbow...
 
Treta Hunting - Cris Barbosa
Treta Hunting - Cris BarbosaTreta Hunting - Cris Barbosa
Treta Hunting - Cris Barbosa
 
Palestra Clavis - Octopus
Palestra Clavis - OctopusPalestra Clavis - Octopus
Palestra Clavis - Octopus
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Pentest cool
Pentest coolPentest cool
Pentest cool
 

Semelhante a Autenticação: Notas sobre identificação e verificação de identidade

Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxImpacta Eventos
 
Curso hacking com BT5
Curso hacking com BT5Curso hacking com BT5
Curso hacking com BT5Cassio Ramos
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de AcessoCassio Ramos
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...Deep Tech Brasil
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQuality Press
 
Tony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics ArtifactsTony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics Artifactstonyrodrigues
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestEdson Celio
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Jeronimo Zucco
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2Luiz Avila
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2tdc-globalcode
 
Backtrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testBacktrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testPaulo Renato Lopes Seixas
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...Alexandro Silva
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasSegInfo
 
Forense Remota utilizando ferramentas Open Source
Forense Remota utilizando ferramentas Open SourceForense Remota utilizando ferramentas Open Source
Forense Remota utilizando ferramentas Open SourceJulio Cesar Roque Benatto
 
Back track apresentação
Back track   apresentaçãoBack track   apresentação
Back track apresentaçãoKleber Santos
 

Semelhante a Autenticação: Notas sobre identificação e verificação de identidade (20)

H2HC University 2014
H2HC University 2014H2HC University 2014
H2HC University 2014
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Curso hacking com BT5
Curso hacking com BT5Curso hacking com BT5
Curso hacking com BT5
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de Acesso
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHP
 
Tony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics ArtifactsTony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics Artifacts
 
Python e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentestPython e Linux para a criação de ferramentas para pentest
Python e Linux para a criação de ferramentas para pentest
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
 
Backtrack: Solucão open source para pen test
Backtrack: Solucão open source para pen testBacktrack: Solucão open source para pen test
Backtrack: Solucão open source para pen test
 
Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Forense Remota utilizando ferramentas Open Source
Forense Remota utilizando ferramentas Open SourceForense Remota utilizando ferramentas Open Source
Forense Remota utilizando ferramentas Open Source
 
Back track apresentação
Back track   apresentaçãoBack track   apresentação
Back track apresentação
 

Mais de Rigo Rodrigues

Mais de Rigo Rodrigues (20)

Excerto livro-ca-excel2013
Excerto livro-ca-excel2013Excerto livro-ca-excel2013
Excerto livro-ca-excel2013
 
Curso de office
Curso de officeCurso de office
Curso de office
 
Módulo 3-estrutura-da-terra
Módulo 3-estrutura-da-terraMódulo 3-estrutura-da-terra
Módulo 3-estrutura-da-terra
 
Ed78 suplemento economia
Ed78 suplemento economiaEd78 suplemento economia
Ed78 suplemento economia
 
Estrutura celulas
Estrutura celulasEstrutura celulas
Estrutura celulas
 
06 plantas tecidos definitivos - sinteses
06   plantas tecidos definitivos - sinteses06   plantas tecidos definitivos - sinteses
06 plantas tecidos definitivos - sinteses
 
Intro infor
Intro inforIntro infor
Intro infor
 
Informatica na-educacao-ferramenta-de-apoio-ao-ensino-e-de-estruturacao-do-pr...
Informatica na-educacao-ferramenta-de-apoio-ao-ensino-e-de-estruturacao-do-pr...Informatica na-educacao-ferramenta-de-apoio-ao-ensino-e-de-estruturacao-do-pr...
Informatica na-educacao-ferramenta-de-apoio-ao-ensino-e-de-estruturacao-do-pr...
 
Comun65
Comun65Comun65
Comun65
 
Artigo1
Artigo1Artigo1
Artigo1
 
18 10 o-uso_da_informatica_na_educacao
18 10 o-uso_da_informatica_na_educacao18 10 o-uso_da_informatica_na_educacao
18 10 o-uso_da_informatica_na_educacao
 
4 c
4 c4 c
4 c
 
Tcc
TccTcc
Tcc
 
Si
SiSi
Si
 
Introduoinformtica mdulo6
Introduoinformtica mdulo6Introduoinformtica mdulo6
Introduoinformtica mdulo6
 
Constituio bsica-de-um-sistema-informtico-1208985196396520-8
Constituio bsica-de-um-sistema-informtico-1208985196396520-8Constituio bsica-de-um-sistema-informtico-1208985196396520-8
Constituio bsica-de-um-sistema-informtico-1208985196396520-8
 
Comun65
Comun65Comun65
Comun65
 
Anpuh.s23.0077
Anpuh.s23.0077Anpuh.s23.0077
Anpuh.s23.0077
 
1223038698 g8jrf9au8nl18mp8
1223038698 g8jrf9au8nl18mp81223038698 g8jrf9au8nl18mp8
1223038698 g8jrf9au8nl18mp8
 
3180
31803180
3180
 

Autenticação: Notas sobre identificação e verificação de identidade

  • 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. P. Félix, 2006 2SGI: Autenticação Sumário
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. P. Félix, 2006 25SGI: Autenticação Exemplo: protocolo HTTP
  • 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. 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. 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