Também disponível em: English · Español · Français · العربية
Verificador de força de palavras-passe
Estima quanto uma palavra-passe aguentaria num ataque real de adivinhação, e mostra o quanto os medidores habituais a sobrevalorizam.
O que é um verificador de força de palavras-passe
Pega numa palavra-passe e estima quantas tentativas um atacante precisaria. Quase todos o fazem contando caracteres e tipos de caractere, e é por isso que premeiam uma maiúscula e um símbolo e lhe dizem que P@$$w0rd1! é forte.
Este pontua como a adivinhação funciona mesmo: procura aquilo que um conjunto de regras de quebra tenta primeiro — palavras do dicionário, substituições leet, percursos de teclado, anos, sequências — e avalia a sua palavra-passe pelo que isso custa. Depois mostra-lhe, lado a lado, o que um medidor que conta caracteres teria alegado.
A sua palavra-passe não sai desta página. Não há pedidos, nem registos, nem servidor: abra o separador de rede do navegador e confirme, ou desligue-se da internet e continue a usá-la. É o único desenho admissível para uma ferramenta destas.
Como usar o verificador
- Escreva ou cole uma palavra-passe. É analisada enquanto escreve, na sua própria máquina. Use o botão de mostrar e ocultar se não estiver sozinho.
- Escolha um atacante. Formulário com limite de tentativas, formulário sem limite, uma base de dados roubada com hash lento ou com hash rápido. A resposta desloca-se onze ordens de grandeza entre esses quatro, e é por isso que são oferecidos.
- Leia a tabela de padrões. Enumera o que um atacante reconheceria na sua palavra-passe e quanto custa adivinhar cada peça. Se a sua palavra-passe é uma palavra com enfeites, é aqui que isso se vê.
As regras que quase todos os medidores impõem foram retiradas pelo padrão que as inventou
A publicação especial NIST 800-63B é o documento por trás de quase toda a política empresarial de palavras-passe. A sua revisão actual é inequívoca, e merece ser citada em vez de parafraseada. Sobre os tipos de caractere: os verificadores «SHALL NOT impose other composition rules (e.g., requiring mixtures of different character types) for passwords» — ou seja, não devem impor regras de composição. Sobre a expiração: não devem exigir a mudança periódica das palavras-passe. Ambas são proibições, não sugestões, e ambas são o contrário do que faz um formulário de registo típico.
O que exige, isso sim, é comprimento. Uma palavra-passe usada como factor único «SHALL» ter no mínimo 15 caracteres, e não os 8 que quase todos os medidores tratam como a fasquia. Com um segundo factor o mínimo desce para 8. Exige também comparar a palavra-passe com uma lista de palavras-passe comprometidas, que é o único requisito que esta ferramenta deliberadamente não implementa, pelas razões que estão nas limitações.
A aritmética por trás dessa preferência não está renhida. Oito caracteres tirados dos 95 imprimíveis do ASCII dão 6,63e15 possibilidades: 52,6 bits. Quinze caracteres só de minúsculas dão 1,68e21, ou 70,5 bits. A palavra-passe que falha todas as regras de composição tem um espaço de procura 252 820 vezes maior do que a que as cumpre todas.
E as regras de composição são piores do que inúteis, porque há uma forma óbvia de as satisfazer. Pegue numa palavra comum, ponha maiúscula inicial, troque algumas letras por símbolos parecidos e acrescente no fim um algarismo e um sinal de pontuação. Passámos essa receita pelas 10 000 palavras inglesas mais comuns: 99,2% dos resultados satisfazem as quatro classes de caractere. A receita inteira — cada palavra, ambas as capitalizações, em leet ou não, cada algarismo ou ano final, cada símbolo — abrange 29 milhões de possibilidades, cerca de 24,8 bits. Um medidor que conta caracteres pontua P@$$w0rd1! com 65,7 bits. Está a exagerar a dificuldade por um factor de dois biliões.
Mais uma coisa que vale a pena dizer, porque contraria um conselho que este site de outro modo repetiria. A famosa frase de quatro palavras ao acaso são 51,7 bits quando as palavras saem da lista de 7776 que quase todos os guias recomendam — muito pouco menos do que aqueles oito caracteres de ASCII imprimível. Quatro palavras era um bom conselho quando foi escrito e hoje fica curto. Cinco palavras são 64,6 bits, seis são 77,5, e a distância abre-se depressa. Se levar um número desta página, que seja cinco em vez de quatro.
Limitações assumidas
A estimativa é um tecto de fragilidade, não um certificado de robustez. Se a ferramenta encontra um padrão, isso prova que a sua palavra-passe não pode ser mais forte do que o padrão, e essa direcção é sólida. Se não encontra nada, prova apenas que esta ferramenta não reconheceu nada, o que é uma afirmação muito mais fraca. Confie numa má pontuação e trate uma boa como ausência de provas.
O vocabulário são as 5000 palavras mais frequentes de doze livros de domínio público, e é o corpus errado de uma forma concreta que convém declarar: as palavras que as pessoas põem mesmo nas palavras-passe não são as que os romancistas vitorianos usavam. «Password», «admin», «letmein» e «sunshine» faltam por completo, ao passo que «monkey» e «dragon» estão porque aparecem nos romances. A lista de um atacante real começa precisamente pelas palavras que a esta faltam, pelo que o número real de tentativas para uma palavra-passe comum é menor do que o que vê aqui.
A verificação contra listas de fugas que o padrão exige não está implementada, e é uma recusa deliberada e não um esquecimento. Comparar com palavras-passe comprometidas conhecidas exige ou uma descarga de centenas de megabytes ou um pedido ao servidor de outra pessoa. Existe um protocolo bem desenhado para o segundo caso — envia-se um prefixo curto de um hash e nunca a palavra-passe — mas continua a ser um pedido de rede a partir de uma página que promete que não há nenhum. Faça essa verificação à parte, com uma ferramenta que seja honesta quanto ao pedido.
Os tempos de quebra dependem inteiramente da velocidade do ataque, e é por isso que esta página o obriga a escolher uma em vez de a assumir em silêncio. As quatro velocidades oferecidas são valores de ordem de grandeza para o cenário indicado, não medições de qualquer sistema concreto, e a velocidade real depende do hash que o site escolheu, do equipamento, e de o atacante ter sequer a base de dados. Um medidor que imprime um tempo sem dizer a sua velocidade não lhe está a dizer nada verificável.
O motor leva 48 verificações. A principal é o limite: vários milhares de palavras-passe construídas com a receita acima têm de pontuar todas como fracas, a par de um controlo que confirma que as verdadeiramente aleatórias do mesmo comprimento não o fazem. Foi assim que se apanharam dois erros reais: a descodificação leet é de um para muitos e uma tabela de valor único fazia com que W1th1! nunca resolvesse para «with», e a lacuna do corpus acima, que está agora afirmada para não passar despercebida.
Porque é gratuito
Comparar padrões com uma lista de palavras é trabalho que a sua própria máquina faz num milissegundo. Não há servidor a pagar, e é também por isso que não há conta nem nada para enviar: os dois factos são o mesmo facto.
Se quiser uma palavra-passe em vez de um veredicto sobre uma, o gerador de palavras-passe deste site cria-as. O valor de entropia dele é exacto onde o desta página é um limite, e a diferença é instrutiva: a força de uma palavra-passe gerada conhece-se por construção, ao passo que a de uma memorizada só pode ser estimada de fora.