Según han alertado varios expertos en seguridad informática, los datos de más de cinco millones de ciudadanos catalanes mayores de 18 años han sido expuestos por la Generalidad para anunciar el referéndum. El foro especializado Hacker News ha sido el primero en saltar la liebre y el portal Xataka lo ha recogido. Sin embargo, la responsabilidad de investigar y sancionar estos hechos corresponde a la Autoridad Catalana de Protección de Datos, dependiente de la Generalidad, que ha confirmado la apertura de un trámite de información previa pero no ha querido especular con el resultado del mismo ni las posibles sanciones que pudieran aplicarse. ¿Sancionará un organismo de la Generalidad a los responsables del referéndum? No parece probable.
Debido al bloqueo que por orden judicial ejecutó la Guardia Civil sobre las sedes electrónicas oficiales del referéndum, los responsables de su organización emplearon un protocolo llamado IPFS que permite a los usuarios clonar con facilidad una web para poder publicarla en sus propias máquinas. Es una red de pares, o P2P, que permite distribuir archivos, como Torrent o eMule. Pero para poder replicar la funcionalidad de la web también debe distribuirse la base de datos con el censo de votantes, por lo que resulta imprescindible que esté cifrada si no querían que cualquiera tuviera acceso a los datos personales de los españoles empadronados en Cataluña.
La base de datos del censo catalán, efectivamente, fue cifrada, pero cometiendo una serie de errores que hacen muy sencillo para un profesional descifrarla. Hay que tener en cuenta además que al tener que publicar también el código de la web, es mucho más fácil saber cómo se cifran los datos y preparar el código necesario para descifrarlos. El algoritmo utilizado, SHA256, es adecuado, porque no se le ha encontrado aún una vulnerabilidad que acelere el tiempo que tarda en descifrarse. Incluso ahí traspasa la ideología, porque el algoritmo hacía 1714 pasadas para cifrar los datos. Pero es el resto del diseño de la base de datos lo que la hace vulnerable.
Todo cifrado requiere que se aporten unos datos para ser descifrada. Por ejemplo, si usted pone su contraseña en un sitio web para identificarse, el sitio web la cifra y la compara con la que guarda ya cifrada en la base de datos. Pero generalmente no es tan sencillo disponer de esa clave que permite descifrar los datos. Sin embargo, en el caso de este censo, la clave consistía en los últimos cinco dígitos del DNI y la letra, la fecha de nacimiento y el código postal. Al ponerlos el usuario, la web les indicaba el colegio electoral donde votar. Esos datos siguen un patrón sencillo y tienen un número limitado de combinaciones. De hecho, como la letra del DNI se calcula a partir de los dígitos, las combinaciones de las cifras que faltan también se reducen.
Todo cifrado se puede teóricamente resolver mediante el uso de la fuerza bruta: emplear ordenadores probando distintas combinaciones continuamente. Pero si no existe algún otro atajo, el tiempo necesario para hacer esos cálculos puede exceder el tiempo que lleva existiendo el universo, de modo que en la práctica se consideran invulnerables. Pero cuando se mete la pata como lo ha hecho la Generalidad, publicando por todo internet tanto la base de datos como el código de la web, se reducen mucho las combinaciones que hay que probar de modo que acaba resultando sencillo descifrarla en unas pocas horas.
Además, el cifrado no usa "sal", que es un añadido aleatorio que se añade a cada clave de modo que sea aún más difícil descifrarla al aumentar las combinaciones posibles, además de que gracias a su uso aunque logremos descifrar los datos de un ciudadano no tendríamos los de ningún otro, sino que tendríamos que realizar el mismo proceso con cada uno de ellos. En cambio, según explica Sergio López a Xataka, con descifrar los datos de una sola persona ya podríamos hacer lo mismo con los otros cinco millones.