Artigo no estilo: Curso

Por que eu devo ler este artigo:Neste artigo vamos compreender melhor o funcionamento de armazenamento de dados seguros através da criptografia de senhas e como que estas ficam quase que “inquebráveis. Com o avanço dos estudos matemáticos, o Hash MD5 foi considerado inseguro e em muitos sites encontram-se várias formas de se descobrir uma combinação sem a necessidade de saber a palavra que foi criptografada.

Então mostraremos como estas modalidades de ataques ocorrem. Também falaremos sobre o Salt, ou reforço de senhas, que torna os hashes MD5 muito mais seguros e bastante protegidos quando vamos persistir nossas senhas nas bases de dados.

De nada adianta ter uma aplicação que se protege contra XSS, CRLF, Injeção de SQL, Furto de Identidade e Quebra de Autenticação e Gerenciamento de Sessão se suas senhas não estão criptografas da forma correta, posto que um atacante possa ter acesso ao seu hash através de terceiros ou de uma rede fragilizada, afinal de contas, a infraestrutura é a atividade meio e a aplicação é a atividade fim.

No início da segurança, com o advento do HTTPS/TLS, o MD5 foi amplamente aceito como hash para senhas que anteriormente eram armazenadas em bases de dados em texto puro sem quaisquer preocupações.

O MD5 trouxe com ele várias melhorias e depois de muito tempo, viu-se que o MD5 é um algoritmo de hash, e não de criptografia, utilizado hoje em dia para armazenagem de senhas em bases de dados.

Foi considerado fraco e que qualquer computador pessoal comum pode quebrá-lo. Há sites que atendem pelo nome de “Break a MD5 password” ou “Hash MD5 DB” para que possamos colocar o nosso hash roubado ou disponibilizado em consulta e a chance de sucesso é de quase 80%, posto que não é necessário saber qual a palavra que foi “embaralhada”, já que o hash pode repetir, dependendo dos caracteres utilizados, o que comprova que bastava isto para se entrar em um sistema.

Hoje em dia o único algoritmo de criptografia que pode ser utilizado junto com o MD5 é o SHA3, que tem o mesmo codinome de seu criador Will Keccak. E é este algoritmo que vamos utilizar para armazenar as nossas senhas, mas isto não quer dizer que não vamos mostrar como criaremos uma senha segura com os outros algoritmos; vamos mostrar também uma classe criada com o intuito de receber toda a parte de segurança pertinente aos algoritmos criptográficos, já com o SHA3 como principal e novo elemento.

Explicando o termo Hash

Algoritmos de hash são funções só de entrada que convertem qualquer quantidade de dados de tamanho fixo, funcionando como uma impressão digital que não pode ser revertida. Tem como propriedade que se a entrada muda, nem que seja por um caractere, o hash resultante é completamente diferente, como podemos ver na Listagem 1.

Esta abordagem é ótima para proteger senhas porque precisamos armazenar senhas de forma criptografada, impossíveis de serem revertidas e, ao mesmo tempo, precisamos também verificar se a senha digitada, em texto puro, é válida.

Listagem 1. Exemplo de transformação de palavras em hash


hash("gabr ... 

Quer ler esse conteúdo completo? Tenha acesso completo