Techner

Data: 23/11/23
Compartilhe:

O que é Password Hashing?

Um dos principais desafios da segurança na internet é garantir que as senhas dos usuários sejam armazenadas de forma segura. Para isso, é comum utilizar uma técnica chamada Password Hashing, que consiste em transformar a senha original em uma sequência de caracteres aparentemente aleatória. Neste glossário, vamos explorar em detalhes o que é Password Hashing e como ele funciona para proteger as senhas dos usuários.

O que é Password Hashing?

Password Hashing é uma técnica utilizada para armazenar senhas de forma segura em um sistema. Ao invés de armazenar as senhas em texto claro, o Password Hashing aplica uma função matemática chamada hash na senha original, gerando uma sequência de caracteres única e aparentemente aleatória. Essa sequência de caracteres, conhecida como hash, é então armazenada no sistema.

Como funciona o Password Hashing?

Para entender como o Password Hashing funciona, é importante conhecer alguns conceitos básicos. O primeiro deles é a função hash, que é uma função matemática que recebe uma entrada (no caso, a senha) e gera uma saída (o hash). A função hash é determinística, ou seja, para uma mesma entrada, sempre será gerada a mesma saída.

Além disso, a função hash possui algumas características importantes. A primeira delas é que ela é unidirecional, ou seja, é fácil calcular o hash a partir da senha original, mas é praticamente impossível obter a senha original a partir do hash. Isso significa que, mesmo que um hacker tenha acesso ao hash armazenado no sistema, ele não conseguirá descobrir a senha original.

Outra característica importante da função hash é que ela produz uma saída de tamanho fixo, independentemente do tamanho da entrada. Isso significa que, não importa se a senha original tem 8 caracteres ou 100 caracteres, o hash terá sempre o mesmo tamanho.

Para tornar o Password Hashing ainda mais seguro, é comum utilizar uma técnica chamada “salting”. O salting consiste em adicionar um valor aleatório, conhecido como “salt”, à senha antes de aplicar a função hash. O salt é então armazenado junto com o hash no sistema.

Por que usar Password Hashing?

O uso do Password Hashing é fundamental para garantir a segurança das senhas dos usuários. Ao armazenar as senhas em formato de hash, mesmo que um hacker consiga acesso ao banco de dados do sistema, ele não terá acesso às senhas originais. Isso é especialmente importante porque muitos usuários utilizam a mesma senha em diferentes serviços, o que significa que, se um hacker descobrir a senha de um serviço, ele poderá acessar diversos outros serviços.

Além disso, o Password Hashing também protege os usuários contra ataques de força bruta. Um ataque de força bruta consiste em tentar todas as combinações possíveis de senhas até encontrar a senha correta. Com o Password Hashing, mesmo que um hacker consiga obter o hash das senhas, ele terá que gastar uma quantidade enorme de tempo e recursos para tentar todas as combinações possíveis.

Quais são os algoritmos de Password Hashing mais comuns?

Existem diversos algoritmos de Password Hashing disponíveis, cada um com suas características e níveis de segurança. Alguns dos algoritmos mais comuns são:

MD5

O MD5 é um dos algoritmos mais antigos e amplamente utilizados. No entanto, ele é considerado inseguro atualmente, pois é vulnerável a ataques de colisão, onde dois inputs diferentes geram o mesmo hash.

SHA-1

O SHA-1 é outro algoritmo bastante utilizado, mas também é considerado inseguro atualmente. Ele possui uma vulnerabilidade conhecida como “ataque de preimagem”, onde é possível encontrar uma entrada que gere um hash específico.

bcrypt

O bcrypt é um algoritmo mais moderno e considerado seguro. Ele utiliza uma função de hash adaptativa, que torna o processo de hash mais lento e dificulta ataques de força bruta.

Argon2

O Argon2 é um algoritmo mais recente e considerado o estado da arte em Password Hashing. Ele foi selecionado como vencedor do concurso Password Hashing Competition em 2015 e é recomendado pelos especialistas em segurança.

Conclusão

O Password Hashing é uma técnica fundamental para garantir a segurança das senhas dos usuários. Ao transformar as senhas em hashes únicos e aparentemente aleatórios, o Password Hashing impede que hackers tenham acesso às senhas originais, mesmo que consigam obter os hashes armazenados no sistema. Além disso, o uso de algoritmos de Password Hashing seguros, como o bcrypt e o Argon2, é essencial para garantir a proteção das senhas contra ataques de força bruta e outras vulnerabilidades.