Que é un contrasinal, e por que levamos sesenta anos equivocándonos

Publicado o por David Carrero

Un contrasinal é a resposta a unha pregunta moi vella: es dos nosos?

Non o inventou a informática. Polibio, no século II a. C., describe como o exército romano facía circular cada noite unha palabra escrita nunha táboa de madeira —a tessera— que pasaba de unidade en unidade e volvía ao mando. Quen a sabía era dos seus. Quen non, non.

Dous mil anos despois seguimos facendo exactamente o mesmo. O único que cambiou é quen pregunta, e a que velocidade pode intentar adiviñar a resposta.

1961 o contrasinal entra no ordenador

En novembro de 1961, o MIT demostrou o CTSS (Compatible Time-Sharing System), dirixido por Fernando Corbató. Era unha idea nova: un só ordenador, moi caro, compartido por varias persoas á vez.

E aí apareceu o problema. Se a máquina é de todos, os ficheiros de cadaquén teñen que ser de cadaquén. Facía falta un xeito de que o ordenador soubese quen estaba a escribir. A solución foi a máis obvia e a máis romana posible: que cada usuario tivese unha palabra súa.

Convén dicilo con precisión: Corbató non inventou o contrasinal. Inventou o contrasinal por usuario nun ordenador multiusuario, que é outra cousa. El mesmo, xa maior, dixo que aquilo se convertera nun «pesadelo».

1962 a primeira filtración, e foi por tempo de máquina

Un ano despois, Allan Scherr, doutorando nese mesmo MIT, tiña un problema moi terreal: só lle asignaban catro horas de ordenador á semana e precisaba máis para a súa tese.

Así que pediulle ao sistema que imprimise o ficheiro de contrasinais. Nada máis. Estaba alí, en texto plano, e ninguén pensara que alguén o pediría. Co listado na man, usou as contas doutros para seguir traballando.

O interesante non é o truco. É o móbil: a primeira filtración de contrasinais da historia non a fixo un delincuente, senón alguén que quería seguir traballando. Sesenta anos despois, a maioría dos furados de seguridade seguen nacendo de xente razoable buscando o camiño curto.

1979 alguén decátase de que non hai que gardalos

Durante case dúas décadas, moitos sistemas gardaron os contrasinais tal cal. Se alguén lía o ficheiro, levaba todo.

En 1979, Robert Morris e Ken Thompson publicaron en Communications of the ACM un artigo titulado «Password Security: A Case History», sobre o que fixeran en Unix. Dúas ideas que hoxe son a base de todo:

  • Non gardar o contrasinal, gardar o seu hash. O sistema non precisa saber cal é o teu contrasinal; só precisa poder comprobar se o que acabas de escribir dá o mesmo resultado.
  • O sal: engadir un valor aleatorio a cada contrasinal antes de aplicarlle o hash, para que dúas persoas co mesmo contrasinal non teñan o mesmo hash e para que non se poida precalcular unha táboa e rompelos todos dunha vez.

Cando hoxe dicimos que un servizo «non debería saber o teu contrasinal», estamos a citar un artigo de 1979.

2003 as regras que todos aprendemos, e de onde saíron

En 2003, Bill Burr, do NIST estadounidense, escribiu o documento que acabaría rexendo como medio mundo pedía contrasinais: o SP 800-63. De aí saíu todo o que recoñeces ao instante:

Polo menos unha maiúscula, un número e un símbolo. Cámbiao cada 90 días.

Soaba a ciencia. Non o era. Burr non tiña bos datos sobre contrasinais reais —case non existían— así que se apoiou no que había e razoou cara ao que parecía sensato: máis variedade de caracteres, máis combinacións, máis seguridade.

O problema é que as persoas non somos xeradores aleatorios. Pídelle a alguén unha maiúscula e poraa a primeira. Pídelle un número e irá ao final. Pídelle un símbolo e será un !. E se o obrigas a cambialo cada tres meses, Verán2024! converterase en Outono2024!.

O resultado foi toda unha xeración de contrasinais que parecen complexos e son triviais, e uns usuarios esgotados que os reutilizan en todas partes porque xa non poden máis.

2017 o NIST retráctase, e Burr tamén

En 2017, o NIST publicou o SP 800-63B e deu marcha atrás en case todo:

  • A lonxitude importa máis que a complexidade.
  • Nada de rotación forzada agás que haxa indicios de compromiso.
  • Comprobar o contrasinal contra listas de filtrados, no canto de esixir símbolos.

Ese mesmo ano, Burr díxolle ao Wall Street Journal que lamentaba boa parte do que escribira. É unha das rectificacións máis honestas que deu a seguridade informática, e aínda hoxe hai milleiros de formularios pedíndoche un símbolo por culpa dun documento que o seu propio autor desautorizou.

Por que isto non é historia antiga

Todo isto ten unha consecuencia moi concreta, e podes vela aquí mesmo.

O noso comprobador funcionaba ata hai nada coa lóxica de 2003: contaba maiúsculas, números e símbolos. Dáballe un 92 % «Moi forte» a Contraseña1! —literalmente a palabra castelá para «contrasinal»— e un 0 % «Moi débil» a unha frase de cinco palabras ao chou, que é incomparablemente mellor.

Estaba premiando exactamente o que non hai que facer. Cambiámolo: agora busca o teu contrasinal en dicionarios de palabras, nomes, cidades e patróns de teclado, e dicheche canto tardaría en caer de verdade.

E por iso o xerador amósache os bits de entropía no canto dunha porcentaxe. Unha porcentaxe non significa nada. Os bits si: son cantas veces tería que intentalo alguén que non sabe nada de ti.

Que facer, en dúas liñas

  • Longos antes que retorcidos. Catro ou cinco palabras ao chou gañan a P@ssw0rd por moitas ordes de magnitude.
  • Distinto en cada sitio, e nun xestor. É a única regra de 2003 que segue en pé, e á que menos caso lle fixemos.

A pregunta segue sendo a mesma que na Roma do século II: es dos nosos? O que cambiou é que agora quen pregunta pode intentar mil millóns de respostas por segundo. Convén que a túa non estea no dicionario.


Fontes: F. J. Corbató e o CTSS (MIT, 1961) · o relato do propio Allan Scherr sobre 1962 · R. Morris e K. Thompson, «Password Security: A Case History», Communications of the ACM, 1979 · NIST SP 800-63 (2003) e SP 800-63B (2017) · declaracións de Bill Burr ao Wall Street Journal, agosto de 2017.

← Volver ao blog