Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Criando Sistemas de Autenticação Seguros

Criando Sistemas de Autenticação Seguros

Palestra apresentada na Cryptorave 2017

Dann Luciano

May 06, 2017
Tweet

More Decks by Dann Luciano

Other Decks in Technology

Transcript

  1. Criando Sistemas de
    Autenticação Seguros
    Dann Luciano
    1

    View Slide

  2. 2

    View Slide

  3. 25 Gigabytes de Dados
    30 Milhões de Contas
    Ashley Madison
    https://www.theguardian.com/
    3

    View Slide

  4. 4

    View Slide

  5. 68 Milhões de Senhas
    Dropbox
    https://www.theguardian.com/
    5

    View Slide

  6. Dann Luciano

    View Slide

  7. View Slide

  8. AVISOS!!!
    8

    View Slide

  9. Use por sua
    Conta e Risco!
    9

    View Slide

  10. Tudo possui
    um Custo!
    10

    View Slide

  11. Fuja de
    Soluções Magicas!
    11

    View Slide

  12. Politica de
    Segurança / Privacidade
    12

    View Slide

  13. Guarde o
    Minimo de Informação

    View Slide

  14. OWASP
    14

    View Slide

  15. Open Web Application
    Security Project
    15

    View Slide

  16. TOP-10
    16

    View Slide

  17. A2 – Broken
    Authentication and
    Session Management
    OWASP Top 10 – 2017 (Release Candidate)
    17

    View Slide

  18. 18

    View Slide

  19. Authentication Cheat
    Sheet

    View Slide

  20. Identificadores de
    Usuarios
    20

    View Slide

  21. Identificadores de Usuarios
    • E-mail
    • Username
    • Devem ser Unicos
    21

    View Slide

  22. E-mail
    • Deve ser Validado
    • Netflix

    View Slide

  23. Username
    • Não Devem Ser Sensíveis a Maiúscula/Minúscula
    • 'smith' = ‘Smith’ = ‘SMITH'

    View Slide

  24. Senhas
    24

    View Slide

  25. Senhas
    • Tamanho da Senha
    • Complexidade da Senha
    • Armazenamento de Senhas
    • Recuperação de Senhas
    • Envio de Senhas
    25

    View Slide

  26. Tamanho da Senha

    View Slide

  27. Tamanho da Senha
    • Um tamanho Mínimo deve ser forçado pela
    aplicação
    • Senhas < 10 caracteres são consideradas fracas
    • Um tamanho Maximo não deve ser muito pequeno
    • 128 caracteres está de bom tamanho

    View Slide

  28. Complexidade da
    Senha

    View Slide

  29. Complexidade da Senha
    • Pelo menos 1 letra Maiúscula (A-Z)
    • Pelo menos 1 letra Minúscula (a-z)
    • Pelo menos 1 Digito (0-9)
    • Pelo menos 1 caracter Special ([email protected]#$%ˆ&*_- ‘“…)

    View Slide

  30. Complexidade da Senha
    • Certifique-se que cada caractere digitado seja
    incluido na senha
    • Informe para o seu Usuário a importância de um
    "Boa Senha”

    View Slide

  31. Armazenamento de
    Senhas

    View Slide

  32. NUCA
    • Texto Limpo
    • MD5
    • SHA1
    • SHA256

    View Slide

  33. Armazenamento de Senhas
    • Use SALTs
    • Gere salts únicos para cada senha criada
    • Não apenas por usuário ou sistema
    • Use dados aleatórios seguros

    View Slide

  34. Armazenamento de Senhas
    1. Argon2
    2. PBKDF2
    3. scrypt
    4. bcrypt
    • Custo é Importante

    View Slide

  35. salt +
    pbkdf2(salt, senha, c=10000)

    View Slide

  36. Recuperação de
    Senhas

    View Slide

  37. Recuperação de Senhas
    • Obtenha dados de Identidade
    • e-mail, celular, perguntas de segurança, códigos
    secretos
    • Envie um Token em outro canal de comunicação
    • Permita que o usuário mude a senha em uma
    sessão ja existente
    • Pedindo os dados da senha antiga e da nova

    View Slide

  38. Envio de Senhas

    View Slide

  39. Envio de Senhas
    • As telas de autenticação devem transportar os
    dados através de TLS
    • HTTPS = HTTP + SSL/TLS
    • Navegadores Modernos vão “obrigar” que
    formulários com senhas usem HTTPS

    View Slide

  40. Outros Dados

    View Slide

  41. Outros Dados
    • ID (UUID)
    • Nome
    • CPF
    • IP
    • Ultimo Login
    • Cartão de Crédito

    View Slide

  42. Outros Dados
    • Criptografe Tudo
    • xsalsa20-poly1305
    • TweetNaCl

    View Slide

  43. Re-Autenticação para
    Ações Sensíveis

    View Slide

  44. Mensagens de Erro
    44

    View Slide

  45. Mensagens de Erro
    • Devem ser objetiva sobre qual regra a senha não
    está seguindo

    View Slide

  46. Mensagens de Erro
    • Exemplos Incorretos de Mensagens de Erro
    • “Login para Usuario smith: senha invalida”
    • “Login falhou, usuario invalido”
    • “Login falhou; conta desativada”
    • “Login falhou; esse usuário não estar ativo”

    View Slide

  47. Mensagens de Erro
    • Exemplo Correto de Mensagem de Erro
    • “Login falhou; Usuario ou Senha Invalidos”

    View Slide

  48. Ataques de Força
    Bruta
    48

    View Slide

  49. Ataques de Força Bruta
    • Crie bloqueios de acesso curtos (20 min)
    • quando sucessivas falhas de autenticação
    ocorrerem

    View Slide

  50. Monitoração
    50

    View Slide

  51. Monitoração
    • Falhas devem ser logadas e revisadas:
    • Falhas de Senha
    • Contas Bloqueadas
    • Recuperação de Senhas

    View Slide

  52. Autenticação em Duas
    Etapas

    View Slide

  53. Autenticação em Duas
    Etapas
    • Evite usar SMS
    • Prefira usar Time-based One-Time Password
    (TOTP)

    View Slide

  54. Segurança em Camadas
    54

    View Slide

  55. Autenticação
    !=
    Autorização

    View Slide

  56. Sessões
    https://www.owasp.org/index.php/Session_Management_Cheat_Sheet
    56

    View Slide

  57. HTTP SECURITY
    HEADERS
    https://blog.appcanary.com/2017/http-security-
    headers.html
    57

    View Slide

  58. HTTPS
    https://letsencrypt.org/
    58

    View Slide

  59. Convite!
    Show Me The Code
    59

    View Slide

  60. Muito Obrigado!
    https://speakerdeck.com/dannluciano
    @dannluciano
    [email protected]
    60

    View Slide

  61. ?
    61

    View Slide

  62. Referencias
    62

    View Slide

  63. OWASP
    • OWASP Authentication Cheat Sheet
    • OWASP Forgot Password Cheat Sheet
    • OWASP Password Storage Cheat Sheet
    • OWASP Session Management Cheat Sheet
    63

    View Slide