Português (Brasil)

Como a entropia da senha é calculada

A fórmula log2, exemplos práticos para todas as três listas EFF, quanto custa um acróstico e por que um medidor de força de site discorda desta página.

A entropia mede o processo, não a senha

Uma única senha não tem entropia. A frase “grampo correto para bateria de cavalo” não é forte nem fraca por si só – o que importa é como ela surgiu. Se uma máquina extraísse quatro palavras uniformemente de uma lista de 7,776, seria um entre cerca de 3.7 milhões de milhões de resultados igualmente prováveis. Se alguém o escolheu porque o viu em um desenho animado, é um dentre poucos, e nenhuma aritmética muda isso.

Portanto, cada figura neste site descreve o gerador e suas configurações, partindo do pressuposto de que um invasor conhece essas configurações e está reduzido a adivinhar os sorteios aleatórios. Essa suposição é a conservadora. A lista, a contagem de palavras, o intervalo de comprimento, o separador e a regra de caso são todos publicados nesta página, portanto, tratá-los como secretos aumentaria todos os números aqui.

A fórmula

Para uma escolha feita uniformemente a partir de N possibilidades igualmente prováveis, a entropia é log2(N) bits. Cada escolha independente adiciona seus próprios bits, então k retiradas independentes do mesmo conjunto de N fornecem:

bits = k × log2(N)

Esse é o cálculo completo de uma senha. A base de log 2 é o que transforma "quantas possibilidades" em "quantos bits", e os bits são convenientes porque cada bit extra dobra o trabalho que um invasor enfrenta. Setenta bits é duas vezes mais difícil que sessenta e nove e cerca de mil vezes mais difícil que sessenta.

A mesma fórmula cobre uma senha de caracteres aleatórios, com N o tamanho do conjunto de caracteres e k o comprimento: vinte caracteres extraídos de um conjunto de 80 dá 20 × log2(80), que é cerca de 126 bits.

Exemplos resolvidos para as três listas

A longa lista EFF contém 7,776 palavras. log2(7,776) é cerca de 12.925, então cada palavra carrega aproximadamente 12.9 bits. Seis palavras fornecem 6 × 12.925, cerca de 77.5 bits – o padrão nesta página, e a própria recomendação de EFF para essa lista. Sete palavras dão sobre 90.5, oito sobre 103.4.

Ambas as listas curtas contêm 1,296 palavras. log2(1,296) é sobre 10.34, então seis palavras dão sobre 62 bits, sete sobre 72.4 e oito sobre 82.7. É por isso que as listas curtas exigem uma ou duas palavras extras para corresponder à longa.

Cinco palavras de uma lista longa equivalem a cerca de 64.6 bits – quase exatamente o mesmo que seis de uma lista curta. Os dois caminhos para uma determinada força são genuinamente intercambiáveis; escolha o que produz palavras que você acha mais fáceis de digitar.

O que o intervalo de comprimento faz com a figura

O comprimento mínimo e máximo da palavra filtra a lista antes de qualquer palavra ser desenhada, portanto, N na fórmula é o número de palavras que sobrevivem ao filtro, não o tamanho do arquivo. A página recalcula isso conforme você altera o intervalo e mostra a contagem sobrevivente, de forma que o valor da entropia seja sempre sobre o pool realmente em uso.

Este é um efeito pequeno para faixas sensíveis e grande para faixas extremas. Restringir a longa lista a palavras de exatamente quatro letras deixa algumas centenas de candidatos, diminuindo cada palavra de cerca de 12.9 bits para cerca de 8 - o que transforma uma frase secreta de seis palavras de aproximadamente 77 bits em aproximadamente 48. A página mostrará isso e, nesse ponto, solicitará que você amplie o intervalo ou adicione palavras.

O que as opções de separador e caso adicionam

Um separador fixo não acrescenta nada. Se cada lacuna for um hífen, um invasor que conheça as configurações também colocará hífens em cada lacuna; não há escolha para eles adivinharem.

A opção de separador aleatório é diferente. Cada lacuna ocupa independentemente um dos cinco caracteres, então cada lacuna adiciona log2(5), cerca de 2.32 bits. Uma senha longa de seis palavras tem cinco lacunas, o que equivale a cerca de 11.6 bits extras – um ganho real, e a página conta isso.

A mesma lógica se aplica ao caso. Inferior, superior, maiúsculo e alternado são regras fixas e não acrescentam nada. O caso aleatório lança uma moeda independente por palavra, adicionando exatamente um bit por palavra: seis bits em uma senha de seis palavras. Isso também é contado.

Vale a pena notar o quão modestos são. Casos aleatórios e separadores aleatórios juntos somam cerca de 17 bits a uma senha de seis palavras, enquanto uma sétima palavra acrescenta cerca de 13 por si só e é muito mais fácil de lembrar. Adicionar palavras é quase sempre a melhor alavanca.

Quanto custa um acróstico

Com um acróstico, cada palavra não é mais extraída de todo o conjunto – ela é extraída das palavras que começam com a letra que você especificou. Portanto, a fórmula se torna uma soma e não um produto: o total é log2 do conjunto para a primeira letra, mais log2 do conjunto para a segunda, e assim por diante.

As cartas estão distribuídas de forma muito desigual. Na longa lista EFF, restrita a palavras de cinco a nove letras, o conjunto que começa com s é várias vezes maior que o conjunto que começa com j e muito maior que o conjunto que começa com x. Um acróstico de seis letras, portanto, fornece um valor algo abaixo de seis vezes o valor irrestrito por palavra, e o quanto abaixo depende inteiramente de quais letras você escolheu.

A página faz essa soma para as letras exatas que você digita, que é a única maneira de fornecer um número honesto. Se uma de suas letras não tiver nenhuma palavra por trás dela na lista atual e no intervalo de comprimento, ela dirá qual letra, em vez de falhar silenciosamente.

O acróstico também não é segredo. Suponha que um invasor saiba as iniciais do nome do seu cachorro, porque esse é o tipo de coisa que é adivinhada.

Transformando bits em tempo, honestamente

As estimativas de tempo nesta página pressupõem um ataque offline de um trilhão de tentativas por segundo contra um banco de dados de senhas roubado, e que metade das possibilidades devem ser tentadas antes que a correta apareça. Essas suposições são declaradas sempre que aparece um tempo, porque uma estimativa de tempo sem elas não tem sentido.

Um trilhão de palpites por segundo é um número deliberadamente severo. Está na região certa para hardware dedicado atacar uma função hash rápida e mal escolhida. Um site que usa um hash de senha moderno corretamente é mais lento para atacar por um fator de milhões, e qualquer formulário de login on-line é ainda mais lento por um fator de bilhões, já que cada tentativa é uma solicitação de rede que o servidor pode limitar a taxa.

É por isso que os números desta página são propositalmente pessimistas. Se a estimativa diz que uma busca levaria muito mais tempo do que qualquer outra pessoa, o número real em relação a um serviço administrado de forma competente é ainda maior.

Por que o medidor de força de um site diz algo diferente

A maioria dos medidores de força pontua os personagens à sua frente, porque isso é tudo que eles têm: eles nunca veem como a senha foi gerada. Eles recompensam classes de caracteres mistas, punem a repetição e muitas vezes comparam dicionários de senhas comuns. Contra uma senha inventada por humanos, essa é uma heurística razoável e é a única coisa que um formulário pode fazer.

Ele pontua mal uma senha gerada exatamente pelo motivo errado. Seis palavras minúsculas do dicionário com espaços entre elas parecem, para uma heurística de contagem de caracteres, exatamente aquilo sobre o qual foram construídas para alertar - embora as palavras tenham sido sorteadas aleatoriamente e o resultado seja mais forte do que quase qualquer coisa que o medidor aplaudiria.

Quando um medidor e esta página discordam sobre uma senha gerada aqui, a página descreve o processo e o medidor descreve a aparência. Nenhum dos dois está mentindo; eles estão medindo coisas diferentes e apenas um deles sabe de onde vieram as palavras.

O que acontece com o que você gera

ToolAcre gera senhas localmente em seu navegador. Para ambientes altamente confidenciais, verifique se seu navegador, dispositivo e sistema operacional são confiáveis ​​antes de usar qualquer gerador de senha baseado na Web.

  • Cada senha e senha são geradas na guia do seu navegador, pelo próprio gerador criptográfico de números aleatórios do seu navegador. Nenhum servidor é envolvido depois que a página é carregada.
  • Nada gerado aqui é enviado para ToolAcre. A Política de Segurança de Conteúdo deste produto restringe a página à sua própria origem, de modo que o próprio navegador bloqueia qualquer tentativa de enviar dados para outro lugar.
  • Nada é gravado no armazenamento local, no armazenamento de sessão, em um cookie, em um banco de dados do navegador, na barra de endereço ou no console do navegador. Recarregar descarta-o; fechar a guia a descarta.
  • Não há conta, login, script de análise e script de publicidade. Os únicos arquivos baixados são as listas de palavras estáticas.
  • Nenhum histórico é mantido. Gerar novamente substitui o valor e o anterior não é recuperável.

Questões

Quantos bits são suficientes?

Para uma conta comum atrás de um gerenciador de senhas, qualquer coisa acima sobre 70 bits está além de qualquer adivinhação realista. Para as poucas senhas que protegem todo o resto – o próprio gerenciador, seu dispositivo, seu e-mail – mire mais alto, em torno de 90 bits ou mais, que são sete ou oito palavras da longa lista.

Por que adicionar uma palavra ajuda mais do que adicionar um símbolo?

Uma palavra da longa lista multiplica o número de possibilidades por 7,776, cerca de 12.9 bits. Um símbolo anexado a uma posição fixa multiplica-o por um, porque o atacante sabe que ele está lá. Somente as escolhas que são realmente aleatórias contam.

A página conta a opção de caso aleatório na figura?

Sim, um bit por palavra, porque cada palavra é um lançamento de moeda independente. As regras de caso fixo são contadas como zero, porque um invasor que conhece a regra pode aplicá-la sozinho.

Por que metade do keyspace é usado nas estimativas de tempo?

Porque em média uma pesquisa exaustiva encontra a resposta a meio caminho. Usar o keyspace completo exageraria o tempo por um fator de dois, o que é um erro de arredondamento nessas escalas, mas ainda assim é o contrário.

77 bits é suficiente considerando a velocidade dos computadores?

Adivinhar o custo dobra a cada bit extra, então a aritmética favorece fortemente o defensor. Os riscos realistas para uma senha de 77 bits não são computação bruta – eles são phishing, malware em seu dispositivo, reutilização em sites e um serviço que a armazenou descuidadamente. Essas são as coisas nas quais vale a pena prestar atenção.

Limitações

  • A entropia é um limite superior para a dificuldade de adivinhação, e não uma previsão de como uma conta será realmente comprometida. A maioria das contas é perdida devido a phishing, reutilização e violação de bancos de dados, e não por adivinhação.
  • Os números assumem que a fonte aleatória é sólida. Esta página usa o gerador criptográfico do navegador e se recusa a funcionar sem ele, mas não pode auditar esse gerador de dentro da página.
  • As estimativas de tempo dependem inteiramente de uma taxa de adivinhação assumida. A taxa usada aqui é declarada, deliberadamente severa e pode estar errada em qualquer direção para qualquer invasor específico.
  • O cálculo pressupõe que cada palavra seja desenhada de forma independente e uniforme. Seria um exagero se isso não fosse verdade, e é por isso que o gerador desenha com substituição em vez de remover palavras que já usou.
  • Nenhum valor de entropia leva em conta uma senha sendo reutilizada, escrita em algum lugar inseguro ou digitada em uma máquina comprometida.