>_ josetilabs.com
← blog

10 out 2026 · segurança, senhas, infraestrutura · 4 min

123456 abriu 8,8 milhões de registros dinamarqueses

A conta de administrador da empresa que consultava o registro civil dinamarquês usava a senha 123456. Não era a única: pelo menos três contas da Pays, empresa da ilha de Fyn, entravam com a mesma senha no sistema que guarda nome, endereço e número de registro de praticamente todo dinamarquês, vivo ou morto.

A conta tinha acesso legítimo. É o detalhe que faz esse caso valer mais que a piada da senha. Empresas privadas dinamarquesas podem consultar o CPR, o registro central de pessoas, quando têm motivo legal e identificam quem estão consultando. O invasor não quebrou criptografia, não adivinhou hash, não vazou banco de dados: usou credencial de quem já estava autorizado. Segundo a apuração do Politiken, o próprio invasor contou que usou a senha para chegar a 5,5 milhões de registros de pessoas vivas e 3,3 milhões de falecidas.

O registro tem cerca de 11 milhões de pessoas, incluindo falecidos e quem emigrou. Quem pediu proteção de nome e endereço ficou fora do que foi exposto, segundo a administração do CPR. A atividade irregular aconteceu ao longo de setembro, e a administração percebeu na noite de 2 de outubro. O acesso da empresa foi cortado, houve notificação à autoridade de proteção de dados e a polícia investiga.

A conta do hash, medida

Vale medir o que a senha fraca custa de verdade, porque a resposta muda muito conforme o que o atacante tem em mãos. Rodei as contas de hash num núcleo de CPU e projetei o tempo para uma lista de 10 mil senhas comuns e para 100 milhões de tentativas:

esquema tempo por tentativa tentativas por segundo 10 mil senhas 100 milhões
MD5 0,0005 ms 1.826.510 0,005 s 55 s
SHA-1 0,0005 ms 1.825.296 0,005 s 55 s
SHA-256 0,0006 ms 1.605.404 0,006 s 1 min
SHA-512 0,0007 ms 1.456.672 0,007 s 1,1 min
PBKDF2-SHA256, 600 mil iterações 0,240 s 4 40 min 278 dias
scrypt, n=2^15, 32 MB 0,087 s 12 14,5 min 100 dias

A diferença entre o primeiro e o último item é de quase meio milhão de vezes. Uma lista de 10 mil senhas sai em 5 milésimos de segundo com MD5 e em 40 minutos com PBKDF2. O pico de memória do processo foi 45 MB.

E a lista inteira não serve para nada aqui, porque a primeira tentativa acerta. A 123456 é a primeira colocada nas listas públicas de senha mais usada em 2025 e em 2026, com mais de 21 milhões de ocorrências na contagem da NordPass, segundo a lista da Wikipédia. Quem monta uma wordlist começa exatamente por ali.

python
import hashlib, time

senha = b"123456"
sal = bytes(range(16))

t0 = time.perf_counter()
for _ in range(10000):
    hashlib.md5(senha).hexdigest()
print("MD5: %.4f s para 10 mil tentativas" % (time.perf_counter() - t0))

t0 = time.perf_counter()
hashlib.pbkdf2_hmac("sha256", senha, sal, 600000)
print("PBKDF2 600 mil: %.3f s por tentativa" % (time.perf_counter() - t0))

O que teria ajudado

Hash não. O algoritmo de hash protege um banco de dados roubado, e um sistema KDF lento continua sendo a escolha certa para senha de usuário, mas não tem nada a ver com um invasor que faz login. Aqui a porta estava aberta e a fechadura era boa.

O que teria ajudado é contagem. Se a extração de setembro durou os trinta dias do mês, 8,8 milhões de consultas dão 3,4 por segundo, sem pausa, de madrugada e no domingo. É um número que um script sustenta e um funcionário não. Um alerta de volume, um limite por credencial e um aviso quando a consulta sai do padrão horário da empresa custam menos que a senha forte que ninguém usou.

A segunda lição é sobre agregação. Uma credencial que consulta milhões de registros legalmente é, por desenho, um risco de insider. O caminho é tratar esse acesso como privilegiado: segundo fator, rotação de segredo, registro de cada consulta e revisão periódica de quem precisa daquele volume.

Ressalva: a medição de hash é de um núcleo, sem GPU, e projeta a partir do custo de uma tentativa. Placa de vídeo deixa MD5 e SHA ordens de grandeza mais rápidos, e deixa PBKDF2 e scrypt muito menos competitivos.

Minha opinião é que esse caso vai virar piada de treinamento de segurança e a piada vai esconder o ponto. A senha idiota é o sintoma. O sistema que permitiu a uma senha idiota extrair um país inteiro durante um mês é o problema. Senha é o controle mais barato de checar e o que menos decide nesses casos, e é sempre ele que aparece quando a parte que quebra não é a que parecia frágil. Quem quiser ver esse mesmo raciocínio do lado de fora, com número que o dono não tinha, tem o caso das medições externas de um modelo.

Leia também

// Por e-mail

Os textos publicados aqui também vão por e-mail. O envio ainda não começou: quem deixar o endereço agora entra na primeira lista.

Guardo só o seu e-mail, a data e o registro desta autorização. Sem cookies, sem rastreador e nada compartilhado com terceiros. Detalhes na política de privacidade.