Pensa unha palabra ao azar. Agora mesmo, a primeira que se che ocorra.
Sexa cal sexa, non era ao azar. Era unha palabra túa: algo que liches esta semana, un obxecto que tes diante, a letra pola que empeza o teu nome. Cando a unha persoa se lle pide azar, o que produce é autobiografía. E a autobiografía adivíñase.
Este é o problema enteiro dos contrasinais, resumido. Non é que a xente sexa preguiceira —que tamén—, é que somos incapaces de xerar aleatoriedade. Gústannos certas letras, evitamos as repeticións porque «non parecen aleatorias», alternamos vogais e consoantes sen darnos conta e, se nos piden un número, tiramos dos que temos á man: datas, idades, cifras con significado. Un atacante non precisa saber quen es para explotar iso. Abóndalle con saber que es humano.
Un enxeñeiro, cinco dados e unha lista
En 1995, Arnold G. Reinhold publicou na súa páxina web un método que chamou Diceware. A idea é tan simple que dá un pouco de rabia que haxa que explicala: se o problema é que o humano non sabe elixir ao azar, quítalle ao humano a elección.
O procedemento enteiro cabe en tres liñas:
- Tiras cinco dados e anotas os resultados por orde. Sae, poñamos,
4-2-6-1-3. - Buscas
42613nunha lista. - Esa é a túa palabra. Repites para a seguinte.
A lista ten 7.776 entradas, e ese número non é caprichoso: é 6⁵, todos os
resultados posibles de cinco dados. Cada combinación —de 11111 a 66666—
apunta a unha entrada distinta, e ningunha queda fóra nin se repite. A lista
orixinal mestura palabras curtas en inglés con algunhas sílabas, cifras e signos
soltos, precisamente porque atopar 7.776 palabras boas é máis difícil do que
parece.
O importante non é a lista. É o dado.
Por que 12,9 bits son 12,9 bits
Aquí está a parte que case ninguén entende, e é a única que importa.
A entropía dunha palabra de Diceware é log₂(7.776) = 12,9 bits. É aritmética, non seguridade: hai 7.776 resultados e todos teñen exactamente a mesma probabilidade.
Compárao co que pasa cando elixes ti. Se che pido unha palabra dun dicionario de 7.776 palabras, a conta parece a mesma —tamén hai 7.776 opcións— pero non o é, porque ti non as elixes coa mesma probabilidade. Vas elixir palabras comúns, palabras que che gustan, palabras que viches hoxe. Ese dicionario ten 12,9 bits sobre o papel e moitos menos na túa cabeza, e o atacante ordena a súa lista por frecuencia e proba primeiro as que a xente elixe. A entropía non é cantas opcións hai: é cantas opcións quedan unha vez descontado o que o atacante sabe dos teus gustos.
Os dados non teñen gustos. Tampouco teñen memoria: o dado non sabe que na tirada
anterior saíu fraga, así que non evita repetirse, non busca variedade e non lle
dá vergoña que saian dúas palabras que empezan igual. Por iso os 12,9 bits de
Diceware son 12,9 bits de verdade, e non unha cifra optimista de folleto.
E por iso saen as contas cara arriba. Cada palabra suma:
- Cinco palabras: uns 64 bits.
- Seis palabras: uns 77 bits.
- Sete palabras: uns 90 bits.
É suma limpa, non multiplicación máxica, porque cada tirada é independente das demais. Reinhold recomenda non baixar de cinco palabras, e seis ou máis para o que importa de verdade. Podes ver o efecto no xerador: engadir unha palabra sempre suma o mesmo, e ese «sempre» é todo o invento.
O segredo non é a lista
A obxección chega soa: se a lista é pública, non é máis doado rompelo?
Non, e convén dicilo amodo. Os 12,9 bits xa asumen que o atacante ten a lista. Tamén asumen que sabe que usas Diceware, que sabe cantas palabras ten a túa frase e que sabe a orde na que as escribes. Todo iso está descontado. O único que non sabe é que saíu nos teus dados, e iso é o que estás contando cando dis «77 bits».
É o contrario do que facemos con P@ssw0rd, onde toda a esperanza está depositada
en que a ninguén se lle ocorra substituír a a polo @. Ocórreselle. É das
primeiras regras que aplica calquera ferramenta de ataque por dicionario. Se tes
a tentación, próbaa no comprobador e mira canto aguanta.
A EFF e as listas alternativas
En 2016, a Electronic Frontier Foundation publicou as súas propias listas de palabras para frases con dados. A lista longa mantén as 7.776 entradas —os mesmos cinco dados, os mesmos 12,9 bits— pero cambia o contido: fóra sílabas raras e signos, dentro palabras correntes, doadas de teclear e de distinguir unhas doutras. Tamén publicaron listas curtas, de 1.296 palabras (6⁴, catro dados, 10,3 bits por palabra): unha con palabras máis curtas e memorables, e outra pensada para que cada palabra se distinga das demais polas súas primeiras letras e se poida autocompletar. A cambio, cada tirada vale menos e hai que tirar máis veces.
O elegante do asunto é que a aritmética non cambia co gusto de ninguén. O número de entradas manda. Podes facer a túa propia lista en galego, en éuscaro ou en klingon: mentres teña 7.776 entradas distintas e elixas con dados, cada palabra vale 12,9 bits. O único que estás decidindo ao cambiar de lista é o agradable que che resulta o resultado, non o seguro que é.
As tres formas de estragalo
Diceware falla de tres maneiras, e as tres son o mesmo erro: o humano volvendo meter a man.
- Tirar e repetir porque «esa non me gusta». Se descartas resultados, xa non estás a usar dados: estás a usar o teu criterio cun dado de atrezzo. Sae o que sae.
- Reordenar as palabras para que soen a frase. A orde tamén é parte da tirada.
- «Melloralo» cun
!ao final e unha maiúscula ao principio. Iso non engade nada fronte a un atacante que sabe que a xente pon un!ao final e unha maiúscula ao principio. Se precisas cumprir unha política estúpida, faino, pero non creas que gañaches seguridade: gañáchela tirando outra vez.
E unha advertencia que Reinhold xa daba: os dados correntes chegan de sobra —os de casino son máis precisos, pero non fan falta—, convén tirar sobre unha superficie lisa e o resultado anótase segundo sae.
O resumo
Unha frase de seis palabras sacadas a dados é máis longa de escribir que
P@ssw0rd, máis doada de lembrar que Tr0ub4dor&3 e moitas ordes de magnitude
máis cara de romper cás dúas. Non porque sexa máis rebuscada —non o é, son seis
palabras normais— senón porque é o único do teu contrasinal que non decidiches
ti.
Ese é o chiste enteiro de Diceware: o mellor contrasinal que podes ter é aquel no que a túa opinión non participa.
Fontes: Arnold G. Reinhold, «The Diceware Passphrase Home Page» e a súa lista de 7.776 palabras (1995) · Electronic Frontier Foundation, listas de palabras para frases de contrasinal con dados (2016) · a aritmética é comprobable: 6⁵ = 7.776 e log₂(7.776) ≈ 12,92 bits por palabra.