#!/intro
As frases-passe aleatórias são uma alternativa prática às palavras-passe escolhidas por pessoas. A diferença não está na estética. Está na previsibilidade. Quando a escolha é humana, surgem padrões recorrentes. Quando a escolha é aleatória, a resistência pode ser estimada com rigor.
O método mais simples consiste em escolher várias palavras ao acaso, a partir de uma lista. A robustez cresce com o número de palavras e com o tamanho da lista. A lista, contudo, não é um detalhe secundário. A lista define a fricção de escrita, a probabilidade de erro e a facilidade de memorização. Tudo isto condiciona a adoção.
> porque_a_lista_importa
Uma frase-passe gerada por palavras aleatórias tem uma propriedade útil. A dificuldade de ataque está diretamente ligada ao espaço de pesquisa. Se forem escolhidas k palavras de uma lista com n entradas, existem n^k combinações possíveis. O valor de n é decidido pela lista. O valor de k é decidido pela política ou pelo utilizador.
Há ainda um aspeto operacional. Muitas pessoas preferem gerar a frase-passe offline, sem depender de um serviço. Dados físicos fornecem aleatoriedade suficiente para este propósito. Uma lista com 7 776 entradas encaixa naturalmente em cinco lançamentos de um dado de seis faces. Uma lista com 1 296 entradas encaixa em quatro lançamentos.
> diceware_e_a_friccao_real
A lista Diceware popularizou este modelo. É funcional e oferece segurança por palavra comparável a outras listas do mesmo tamanho. O problema é a usabilidade. Uma lista pode ser matematicamente sólida e, ainda assim, induzir erros.
Quando a lista contém palavras raras, nomes próprios, pontuação, sequências estranhas, letras isoladas ou entradas que não são palavras, a experiência degrada-se. Agrava-se em teclados virtuais e em sistemas que tentam reconhecer palavras. Há ainda ambiguidades práticas relacionadas com a separação entre palavras, sobretudo quando uma entrada pode ser interpretada como junção de outras.
> o_que_a_eff_mudou
A EFF publicou um conjunto de listas com o objetivo de reduzir atrito sem perder segurança quando o tamanho se mantém. A lista longa mantém 7 776 palavras, tal como a Diceware. A diferença está nos critérios de seleção e filtragem. Foram privilegiadas palavras mais familiares, com apoio em dados de reconhecimento lexical, e foi usado um critério adicional de concretude para favorecer termos mais fáceis de visualizar e recordar.
Foram removidos termos considerados ofensivos ou emocionalmente carregados. Foram removidas palavras difíceis de soletrar e homófonas, para reduzir confusão na recordação. Foi ainda assegurado que nenhuma palavra é prefixo exato de outra, para evitar ambiguidades.
A recomendação prática associada a esta lista é clara. Seis palavras fornecem cerca de 77 bits de entropia. Cada palavra adicional acrescenta cerca de 12,9 bits.
> listas_curtas_quando_escrever_pesa
A EFF publicou também listas curtas com 1 296 palavras. O objetivo é reduzir o número de caracteres por palavra, com palavras de comprimento máximo mais baixo. Isto pode ser vantajoso quando a frase-passe é introduzida com frequência ou em dispositivos menos confortáveis.
A consequência é inevitável. A entropia por palavra desce. Nesta escala, cada palavra vale cerca de 10,3 bits. Para recuperar níveis semelhantes, é necessário aumentar o número de palavras. Um exemplo dado é oito palavras na lista curta, para obter cerca de 82 bits, ligeiramente acima de seis palavras na lista longa.
> prefixos_unicos_e_tolerancia_a_erros
A terceira lista curta introduz duas propriedades adicionais, pensadas para software. Cada palavra tem um prefixo único de três caracteres. Isto permite, em teoria, autocompletar após três letras, desde que a aplicação suporte essa funcionalidade. Além disso, as palavras foram escolhidas para manter distância de edição mínima, com o objetivo de permitir correção de um erro de escrita em cenários futuros.
Estas propriedades não resolvem um problema criptográfico. Atacam um problema de usabilidade. São uma proposta de desenho para tornar a experiência mais tolerante a erro, com suporte explícito por ferramentas.
> o_que_os_sistemas_devem_permitir
Uma lista bem desenhada é inútil se o sistema rejeitar a frase-passe. O suporte do verificador conta. Comprimentos elevados têm de ser aceites. A introdução tem de ser facilitada. A aceitação de caracteres ASCII imprimíveis e do espaço é relevante para frases-passe. A imposição de regras de composição também é um erro comum, porque induz padrões e não acrescenta segurança quando existe comprimento e aleatoriedade.
Do lado do armazenamento, a resistência a ataque offline é decisiva. A frase-passe deve ser armazenada com sal e com uma função de derivação apropriada. Caso contrário, a vantagem do espaço de pesquisa é corroída por taxas de tentativa elevadas.
> conclusao
Listas de palavras são um componente de segurança e um componente de ergonomia. O tamanho da lista define entropia por palavra. A qualidade da lista define erros, memorização e adesão. As listas da EFF ilustram uma abordagem pragmática. Mantêm o tamanho quando se quer preservar entropia por palavra. Reduzem o tamanho quando se quer reduzir escrita. E introduzem propriedades que permitem, no futuro, autocompletar e corrigir erros.
> status: completed
> exit 0