Segurança de senhas: Como gerar, armazenar e auditar senhas fortes
Resposta rápida
Gere senhas aleatórias com mais de 16 caracteres com nosso Gerador de Senhas, nunca as reutilize e armazene-as em um gerenciador de senhas. No servidor, hash com bcrypt (fator de trabalho 12+), scrypt ou Argon2id —nunca MD5 ou SHA-256. Violações de auditoria por meio do k-anonimato de Have I Been Pwned API. Nunca transmita ou registre senhas em texto simples.
Introdução
Senhas fracas, reutilizadas e armazenadas incorretamente causam a maioria das invasões de contas. Este guia resolve quatro problemas concretos: (1) gerar senhas com entropia suficiente para resistir à força bruta, (2) fazer hash de senhas com um KDF lento em vez de um hash rápido, (3) evitar a reutilização entre serviços e (4) auditar credenciais vazadas. Cada solução é acionável e apoiada por ferramentas.
Passo a passo
-
Gere uma senha de alta entropia
Use o Gerador de senha para criar uma senha com mais de 16 caracteres misturando letras maiúsculas, minúsculas, dígitos e símbolos. Entropia = log2(charsetSize^length); um alfabeto de 16 caracteres com 94 símbolos fornece ~ 105 bits, o que é inviável à força bruta, mesmo a 10 ^ 12 tentativas/segundo.
-
Nunca reutilize senhas entre serviços
Reutilizar uma senha significa que uma única violação compromete todas as contas que a compartilham. Gere uma senha exclusiva por serviço e armazene-a em um gerenciador de senhas (Bitwarden, 1Password, KeePassXC). A senha mestra é a única que você precisa lembrar – torne-a uma senha longa.
-
Hash de senhas com um KDF lento no servidor
Nunca armazene senhas com MD5, SHA-1 ou SHA-256 bruto – elas são muito rápidas e as GPUs podem tentar bilhões por segundo. Use bcrypt com fator de trabalho 12+, scrypt com N=2^17 ou Argon2id com 64 MB de memória. Esses KDFs são deliberadamente lentos e com muita memória para derrotar ataques de GPU/ASIC.
-
Use um sal para derrotar as mesas do arco-íris
Um salt é um valor aleatório exclusivo por senha, acrescentado ou combinado antes do hash. Ele garante que senhas idênticas produzam hashes diferentes, tornando inúteis as tabelas Rainbow pré-computadas. bcrypt e Argon2 geram e incorporam o salt automaticamente - não crie o seu próprio.
-
Auditoria de senhas violadas
Antes de aceitar uma senha, verifique-a em Have I Been Pwned API usando o protocolo k-anonimato: envie apenas os primeiros 5 caracteres do hash SHA-1, receba a lista de sufixos correspondentes e compare localmente. Isso nunca revela a senha completa para API.
Exemplos
Senha gerada forte (16 caracteres, entropia de ~105 bits)
Entrada: Comprimento 16, todas as classes de personagens
Saída: K9$mP2#vL7@nQ4!x (aleatório, único, nunca reutilizado)
Senha para uma senha mestra (memorável + forte)
Entrada: 4 palavras comuns aleatórias
Saída: correct-horse-battery-staple (~44 bits but easy to remember; use 5-6 words for ~60+ bits)
hash bcrypt de uma senha (fator de trabalho 12)
Entrada: senha123 com custo bcrypt 12
Saída: $2b$12$N9qo8uLOickgx2ZMRZoMy.MrqKQp7vqB4V1e5sTq7vqB4V1e5sTq (sal + custo + hash incorporado)
Problemas comuns
- Usando MD5 ou SHA-256 para hash de senha: ambos são hashes rápidos. Uma GPU moderna computa aproximadamente 10 bilhões de SHA-256/s, quebrando uma senha de 8 caracteres em minutos. Sempre use bcrypt, scrypt ou Argon2id.
- Reutilizar uma senha entre sites: uma violação no site mais fraco vaza a senha de todos os sites. Gere senhas exclusivas e armazene-as em um gerenciador.
- Armazenar senhas em texto simples ou criptografia reversível: se o banco de dados vazar, todas as contas serão instantaneamente comprometidas. O hash é unidirecional e irreversível – nem mesmo o servidor consegue recuperar o original.
- Baixo fator de trabalho no bcrypt: o custo 4 foi bom em 2002; em 2026, o uso custou 12+ (aproximadamente 4.096 iterações). Repita o hash no login para atualizar hashes antigos sem forçar uma redefinição de senha.
Dicas
- Procure pelo menos 100 bits de entropia para contas de alto valor – ou seja, 16 caracteres aleatórios de um alfabeto de 94 símbolos ou 6 palavras aleatórias de diceware.
- Ative a autenticação de dois fatores (TOTP ou chave de hardware) para todas as contas que a suportam – uma senha forte por si só não é suficiente se a senha for roubada.
- Use a opção 'excluir caracteres ambíguos' do nosso Gerador de Senhas (0/O, 1/l/I) quando as senhas forem lidas em voz alta ou digitadas na impressão.
- Alterne as senhas somente após uma violação confirmada, e não em um cronograma fixo – a rotação forçada leva os usuários a padrões previsíveis como Spring2026!.