La polémica generada por el reférendum independentista en Cataluña va más allá de la política: los bloqueos que las autoridades españolas realizaron a los sitios web provocaron que los organizadores de ese proceso hicieran uso del protocolo IPFS. Eso ha acabado siendo un grave error.
Lo es porque al usar este protocolo para replicar el sitio web original la base de datos de los votantes quedó expuesta. Hemos hablado con Sergio López (@slp1605), un profesional de la tecnología que sin trabajar específicamente en temas de seguridad informática se dio cuenta del peligro: cualquiera con un PC normal puede averiguar el nombre, NIF, año de nacimiento y el resto de datos personales de los votantes. Esa información ya está probablemente en manos de muchos otros usuarios, que podrían usarlos con todo tipo de fines, incluida la suplantación de identidad.
La base de datos de los votantes, expuesta
Sergio López abría la caja de Pandora hace unas horas en Twitter, explicando el proceso por el que llegó a esa conclusión. Todo empezó con una noticia publicada en Hacker News en la que se hablaba precisamente de cómo los responsables del referéndum habían decidido usar IPFS (InterPlanetary File System).
Asimismo, si hay alguna web que emplee estos datos como verificación, debe buscar una alternativa URGENTEMENTE.
— Sergio Lopez (@slp1605) 4 de octubre de 2017
Este protocolo "hace la web más rápida, segura y abierta" según sus creadores, y básicamente replica sitios web (contenidos, código, base de datos) entre los usuarios que la visitan y acceden a convertirse en nodos de ese sitio web. Como nos explicaba López, esa solución es interesante para evitar el bloqueo, pero muy pobre a la hora de proteger la seguridad de esos datos, porque la base de datos queda expuesta.
Dar acceso a la base de datos ya es un problema serio —al final es cuestión de tiempo y de potencia de computación lograr descifrar esos datos—, pero es que además el propio diseño de la base de datos utilizada hacía que un potencial ataque fuese aún más sencillo.

Cada una de las entradas definidas por el NIF, la fecha de nacimiento y el código postal tenía un código correspondiente, un 'hash' generado mediante 1714 iteraciones del algoritmo SHA256 sobre esos datos de cada ciudadano. ¿Por qué ese número y no otro? Pues porque se trata de un número simbólico: Barcelona cayó el 11 de septiembre de 1714 en la guerra de Sucesión Española, y ya existe una curiosa tradición en los partidos de fútbol del Barça en el Camp Nou en los aficionados gritan "independencia" en el minuto 17:14.
La aplicación de ese hash no es suficiente: por ese diseño de la base de datos esas entradas no estaban cifradas ni se les aplicaba el tradicional 'salt' que cifran cada una de esas entradas para proteger los datos a los que hacen referencia.
La diferencia a la hora de facilitar los ataques, como destacaba López, es enorme: si esas entradas tienen su propio 'salt' solo se pueden atacar de una en una, pero al no tener esos salt, las comparaciones son de todas las entradas a la vez, algo que acorta el proceso de descifrado de forma brutal.
Un ataque trivial
López explicaba en Twitter cómo el ataque por fuerza bruta que algunos estimaban que era muy difícil se convierte en algo trivial. Dado que los hashes no tienen SALT, revelaba, "se puede comparar cada hash generado con todas las entradas indexadas en memoria" (la base de datos ocupa unos 2,2 GB). Ese proceso era aún más sencillo teniendo en cuenta que hay una parte predecible (fecha de nacimiento y código postal) que "se repite y es semánticamente completa, lo que facilita ataques por lotes y Divide&Conquer".

¿Qué significa esto? Pues que cualquier usuario puede hacer ataques dirigidos. Un ataque exhaustivo necesitaría unos 66 años en un PC convencional para obtener todos los valores, pero es que "para obtener todos los datos para un código postal y año concretos tan solo necesito un máximo de dos días y medio", y ese tiempo se aplica si el cálculo lo realiza una CPU modesta (Phenom II X4 955).
Con una tarjeta gráfica igualmente modesta (en su caso, una R7 250) el tiempo se reduce a apenas 90 minutos. El ataque sería aún más eficaz con GPUs más potentes en paralelo o incluso con ASICs, y se convertiría en una tarea casi trivial.
Sergio López publicaba además una prueba de concepto incompleta (para no ponerlo demasiado fácil) en la que demostraba lo sencillo que es desmontar la seguridad del sistema utilizado en el referéndum. Con la capacidad de cómputo actual ese potencial ciberataque resultaba muy sencillo: la entropía se reducía al seleccionar por ejemplo "todos los DNIs de los nacidos en 1974 del código 08080", sobre todo porque hablamos de 100.000 números y 23 letras, porque el código postal y el año de nacimiento ya lo sabes.
De hecho en ese proceso había más errores: "aunque al hash le faltan los 3 primeros dígitos del DNI", apuntaba López en el hilo de Twitter, "se incluye la letra del NIF, que actúa como carácter de control. Por lo tanto, con los 5 dígitos y la letra NIF, se pueden calcular unos 45 posibles números correspondientes a ese DNI. Si descartamos los números excesivamente bajos o altos, se quedan en 10-15 posiblidades. Menos, si afinamos por localidad y/o nacimiento". El problema, como demostraba Alejandro Rivero en su blog, tiene fácil solución.
Los datos probablemente ya están en malas manos
La investigación de Sergio López es notable y a la vez preocupante, sobre todo porque como él decía "Si yo, que NO me dedico a la seguridad TI y sólo tengo conocimientos básicos de criptografía, me he dado cuenta, los "malos" lo saben seguro. Por lo tanto, es FUNDAMENTAL que todos los que tengan una copia de la web, PAREN INMEDIATAMENTE su distribución".

Puede que ya sea demasiado tarde: los datos han estado accesibles durante días para cualquiera que replicase el sitio web a través de IPFS, y es por tanto probable que esa base de datos ya está en manos de personas que podrían descifrar todos los datos o al menos una gran cantidad de ellos.
Los DNIs, fechas de nacimiento y códigos postales se pueden asociar por tanto a nombres y direcciones (aparte de otros datos) de ciudadanos incluidos en ese censo, y quienes dispongan de esos datos pueden usarlos para todo tipo de ataques, incluidos los dedicados a suplantar la identidad para cambiar contraseñas o acceder a todo tipo de servicios de forma no autorizada.
En Xataka | Cómo el de Equifax se ha convertido en el mayor robo de datos personales de la historia
Ver 85 comentarios
85 comentarios
dabelo
Para entrar en tu cartera del gencat solo necesitas el dni y la fecha de nacimiento, 2 datos que los pueden sacar de esa base de datos, a partir de ahí cualquier tramitación en nombre de otra persona, desde permiso de pesca, apertura de actividad, hasta la etiqueta energética...
oriolbosch
Si queréis esta información, pero con un rigor científico más alto y elaborada por gente con más conocimientos, por favor pasaros por el web entredevyops . es / posts / referendum-votar.html
La manera de codificar la información es una genialidad, sólo se desencripta con el DNI.
Si alguien cree que lo puede hacer, que lo demuestre con hechos. Ya hace más de 2h que se ha publicado el artículo y no veo evidencias de que se haya desencriptado nada.
pabloj
Deliciosamente irónico, luego dirán que no son españoles, pero pocas cosas hay tan españolas que cagarla así con las nuevas tecnologías.
danfndz_1
Una lista de datos de ese tipo puede resultar muy interesante, mucha gente por ejemplo utiliza para el paro el dni como usuario y contraseña. Tan fácil como entrar dar de baja el paro y a la mierda la prestación sin contar que baje la cifra de parados :p
Es un ejemplo bobo, pero se pueden sacar cosas interesantes.
hokusaionxataka
Vaya cagada más gorda. Parece que el informático a cargo de esto era el mismo Junqueras y no un profesional. Me recuerda a la cagada del portal de justicia.
wizbcn
Según este artículo yo entiendo que están bastante seguros:
http://www.entredevyops.es/posts/referendum-votar.html
remixed2
politica aparte, me sorprende que a la UE le preocupe mucho muchisimo que pongamos cartelitos de cookies en todos los lados y no se le ocurra nada al respecto de esto.
NasGros
Como experto en seguridad de mi empresa, nos percatamos de este error en el número de iteraciones dado que los datos de entrada eran demasiado acotados. En un ordenador normal puedes conseguir la fecha de cumpleaños y CP a partir de un DNI en unas 8 horas de computación...
De todas formas, los datos expuestos son solamente el DNI, fecha de nacimiento, y código postal. Ni tan siquiera el nombre de la persona.
A lo mas que nos arriesgamos con esto es que el próximo cumpleaños te felicite tu amigo hacker. Usar tu fecha de nacimiento como password tiene delito.
Finalmente esta lista no sirvió para nada dado que la votación fué universal.
darkyevon
Creo que se debería hablar con propiedad, porque un algoritmo de hasheo no es reversible, uno de cifrado si. Dudo mucho que lo hiceran con cifrado, ya que simplemente se trata de un proceso de verificación. Os pondré un ejemplo para que lo etendáis. Es como cuando nos bajamos un fichero de internet, y nos dan un hash de unos 64 o 256 caracteres para verificar que este no ha sido alterado y es correcto. Si desde esos 64 caracteres, pudiéramos obtener el fichero original (100GB por decir algo), habríamos inventado el algoritmo de compresión mejor del planeta. Podríamos enviar pelis 4k en un SMS.
Lo único que han descubierto es el algoritmo de hasheo utilizado, vamos que tienen una base de datos llena de mensajes indescifrables, que solo es útil para las personas que saben los datos originales. Pura polémica como otras cientos.
Dimas
¿ @javipas habéis contrastado la información con otros expertos en seguridad? Yo me pierdo la verdad, como seguro la mayoría que lo leerán. Además hay quien dice y argumenta que no es así de fácil: https://twitter.com/klon/status/913892255156592640
darkyevon
Por cierto, para más cachondeo, de hackeo nada. El algoritmo era público ya que se hizo en javascript. Conocer el algoritmo tampoco sirve de nada, ya que no es un proceso reversible.
Dimas
¿Si solo quieres exponer tu ignorancia y no hablar de tecnología porqué no te pasas por forocoches o similares? Deja de calentar el tema cabezón.
grangat
Política aparte. No entiendo la preocupación. Con el hash de mi DNI, fecha nacimiento y CP se obtiene una dirección de dónde me toca votar, no? El problema es que si alguien conoce mis datos también sabe donde me toca votar? Porque si es eso no veo problema, digamos que no son datos sensibles, no? De hecho en mi comunidad había un papelito diciendo "Si usted está empadronado aquí le toca votar en tal sitio". O el problema es que se alguien que almacena la BD pueda tener un montón de DNI+fecha+CP si hace un hash inverso? Si alguien lo sabe me gustaría entender el problema. Gracias!
oriolbosch
Si alguien quiere un artículo sobre este tema pero con un rigor científico más elevado, que consulte el site www . entredevyops .es / posts / referendum-votar.html
Utilizar el propio DNI como clave privada para desencriptar el resto de datos es una genialidad. Sólo con el DNI se pueden obtener el resto, y si alguien cree que es capaz de desencriptar los datos sin él, que proceda a demostrarlo con hechos y no con palabras.
Ya hace bastante más de 2h desde que se publicó el post y no veo ningún dato desencriptado.
xavi67
Pues aqui dice que es mentira:
//xnet-x.net/ca/ca-sobre-manipulacio-informativa-proteccio-dades-cens-catalanreferendum/
gerbi
Todo sistema informático es vulnerable, no hay ninguno que sea seguro 100%. Si los datos hubieran estado en una base de datos central ésta también podría ser hackeada (aunque probablemente más difícil, ciertamente).
No creo que pueda ser denunciable a la Agencia de protección de Datos porque no se han distribuido los datos en plano.
El caso es que esto lo han tenido que hacer así porque necesitaban una forma de poder replicar la web fácilmente. Si el TSJ no cerrara webs indiscriminadamente no tendrían que haber recorrido a esto.
acynonix
Publicando esta noticia solo haceis que augmente la posibilidad de que salgan los datos a la luz. Verguenza os debería dar... . Como catalan no me hace nada de gracia que se sepan mis datos personales.
sashimi
Y así señores es, como quien no quiere la cosa, se meten noticias políticas en un blog de tecnologia para echar más leña al fuego.
En Magnet ya no se habla de otra cosa, ahora toca hacer lo mismo en los otros blogs.
Quien paga manda y sus lacayos a obedecer con garrafas de gasolina para avivar el fuego.
Que triste todo, la verdad.
javieralvarezjorrin
YA HA QUE SER TONTO Y ESTUPIDO PARA COMETER TAL CAGALLON!!!! JODER QUE BIEN LES VA A IR A LAS EMPRESAS INFORMÁTICAS CATALANAS TRAS LA INDEPENDENCIA CON SEMEJANTES CEREBRITOS...Y ENCIMA SE VAN A COMER UNAS PEDAZO DE MULTAS DE CUIDADIN POR EL USO DE DATOS PERSONALES...LO ÚNICO QUE ESPERO ES QUE LOS DATOS QUE PUEDAN SACAR LOS HACKERS RUSOS SEAN SOLO DE LOS ESTUPIDOS QUE FUERON A VOTAR...Y ENCIMA COMO SON TODOS UNOS LUMBRERAS HABRÁN PUESTO DE CLAVES DE ACCESO EN SUS BANCOS SUS FECHXAS DE NACIMIENTO ASIQUE YA TIENEN TODOS LOS DATOS PARA ENTRAR EN SUS BANCAS ONLINE Y LIMPIARLES LOS CUATRO DUROS QUE TENGAN...LA PENA ES QUE PUGDEMON Y SUS SECUACES LO TENDRÁN TODO EN ANDORRA QUE PARA ESO ESTÁN HACIENDO EL REFERÉNDUM PORQUE SE LEVANTA EL SECRETO BANCARIO EL 1 DE ENERO
karibe
Tal vez me equivoque, pero los datos expuestos son los del censo, no los de las votaciones. Para hablar de política búscate otro lugar, gracias.
ilota
Supongo que el Ministerio del Interior ya habrá tomado nota pues nunca está de más tener una lista en la que están todos los independentistas. Aunque 1 de cada 10 de la lista no lo sea, no son todos los que están, pero si están todos los que son. Es lo que tiene hacer las cosas sin cumplir ninguna garantía democrática ni de seguridad, terminas dándole al Estado una lista completa de los tuyos, y lo que es peor, exponiendo sus datos a los ataques de criminales.