Hashing de senha: um guia para iniciantes

Hashingo hash √© um processo que permite que algu√©m garanta que a senha usada seja segura e n√£o possa ser recuperada por hackers. Os algoritmos de hash s√£o fun√ß√Ķes de uma dire√ß√£o. Eles pegam um c√≥digo e o transformam em um “Impress√£o digital” de comprimento sempre constante. O c√≥digo hash n√£o pode ser descriptografado facilmente. Em ess√™ncia, esse processo √© semelhante √† criptografia. Portanto, se um hacker violar um sistema, ele n√£o poder√° acessar o c√≥digo.

Muitos sites usam esse método para garantir as senhas de seus usuários.

O processo é como se segue:

  • Inicialmente, o usu√°rio cria uma conta.
  • A senha √© hash e armazenada no banco de dados.
  • Quando um usu√°rio tenta se conectar ao site, o hash do c√≥digo digitado √© comparado ao c√≥digo armazenado e, se for o mesmo, o usu√°rio normalmente est√° conectado ao site. Caso contr√°rio, uma mensagem geral aparecer√° informando que ocorreu um erro nas credenciais, sem especificar se o erro foi detectado no nome de usu√°rio ou na senha, dificultando poss√≠veis hackers.
  • HashingAtaques por “quebr√°-los” hashes

    Brute Força e Ataques de dicionário

    UMA Brute For√ßa ataque tentativas todas as combina√ß√Ķes poss√≠veis de caracteres, com um comprimento espec√≠fico. Isso significa que, em algum momento, o c√≥digo definitivamente quebrar√°. No entanto, este n√£o √© um processo f√°cil. Mesmo senhas muito pequenas podem levar milhares de anos (literalmente) para romper o ataque da For√ßa Bruta, pois o hacker pode n√£o saber quando obter a combina√ß√£o certa de caracteres.

    o Ataques de dicionário eles usam um arquivo contendo palavras, frases ou senhas comuns, que pode ter sido usado por alguém como senha. Os hackers têm acesso a bancos de dados que possuem as 100.000 (ou mais) senhas principais. O ataque mistura esses códigos e compara o hash com a senha que ele deseja quebrar. Este é um método mais rápido que o ataque de força bruta.

    No entanto, h√° outro processo, conhecido como “salga“, qual evita esses ataques mais efetivamente.

    Salga

    A raz√£o pela qual os ataques acima podem ser usados ‚Äč‚Äče eficazes √© que o hash √© sempre feito da mesma maneira. Existe a possibilidade de fazer hash aleat√≥rio, adicionando uma sequ√™ncia aleat√≥ria, chamada salt, √†s senhas ANTES do hash.

    O que fazer e o que n√£o fazer em processo de salga:

    Primeiro de tudo, o que n√£o fazer:

  • N√£o n√≥s temos que us√°-lo mesmo sal para todas as senhas
  • N√£o n√≥s temos que usar pequeno em comprimento de sal
  • N√£o n√≥s temos que usar hashes duplos estranhos (por exemplo: hash (hash (hash (‘mypass’))))))
  • O que n√≥s temos que fazer:

  • Temos que criar sal aleat√≥rio com a ajuda de programas especiais (Cryptographically Secure Number Pseudo-Random Number Generator-CSPRNG)
  • Precisamos criar um novo √ļnico aleat√≥ria sal para cada senha
  • Temos que criar ampla em comprimento de sal
  • A processo de salga √© o seguinte:

  • Primeiro, criamos um sal muito grande com a ajuda de um CSPRNG
  • Em seguida, adicione o salt ao c√≥digo e fa√ßa o hash
  • Salve sal e hash no banco de dados
  • Controle de senha:

  • Pegue sal e hash do banco de dados
  • Adicione sal ao c√≥digo enviado e hash
  • Compare hashes. Se for a mesma, a senha est√° correta