Nueva pieza publicada en ETC by VOZ.COM, la revista de Empresa, Tecnología y Comunicación, en su edición de invierno. Esta vez, sobre el impacto nocivo que tiene los usos tergiversados de sistemas de censo digitales, haciendo hincapié en una vulnerabilidad presente en una librería de código utilizada en el cifrado RSA-2014, presente en muchos de estos sistemas, y cuya pieza ya está disponible en la versión PDF de la revista física (ES).
Un tema que me preocupa sobremanera, ya que entiendo que por un lado es el camino a seguir, y por otro, entraña problemáticas que realmente podrían ser catastróficas para un porcentaje significativo de la sociedad.
Envié el artículo a la revista a mediados de octubre, y al día siguiente pedí que dejaran un pelín más abierto las posibles consecuencias en DNIe de otros países, ya que después de indagar un poco, me di cuenta que lo mismo el DNIe español también podría ser vulnerable.
Dicho y hecho. A principios de noviembre nos enteramos que el gobierno español ha decidido revocar los certificados de todos los DNIe expedidos desde abril del 2015, y poco después, ya de las palabras de Yago Jesús (ES/uno de los encargados de diseñar el sistema), se confirmaba que es por este motivo.
Debería dejar la consultoría y hacerme adivino :).
Por aquí la pieza:
Los riesgos de la digitalización “segura” del censo de un país
Década de los 30, Holanda: El país decide, con el fin de gestionar lo más justamente posible los presupuestos que debía destinar a las diferentes opciones religiosas presentes en la ciudadanía, incluir en el censo las preferencias religiosas de sus habitantes.
1940-Holanda: El país es ocupado por la Alemania nazi, y ese censo, que se hizo con toda la buena voluntad del mundo, sirve para identificar y “dar caza” a los judíos holandeses. Al término de la Segunda Guerra Mundial, solo el 10% de la población judía sobrevivió al Holocausto (ES).
Vale que es un caso extremo, y entono el mea culpa por caer en ello, pero creo que ilustra a la perfección cómo una decisión aparentemente beneficiosa para la sociedad puede acabar tergiversándose hasta el punto de suponer una tragedia sin parangón.
Pero dejemos de mirar atrás en el tiempo, y volvamos a nuestros días. Porque, ¿algo así no nos va a volver a pasar, verdad?
Como bien sabe, desde 2003 Estonia ha decidido poner en marcha el llamado e-Estonia State Portal (EN), un programa verdaderamente revolucionario en el que se plantea la creación de un documento de identidad digital abierto a extranjeros, con la idea de romper esas históricas limitaciones geográficas europeas y crear un ecosistema burocrático muchísimo más líquido.
Es, a todos los efectos, un ejemplo a seguir en esta vieja Europa, y un reclamo claro para todos aquellos emprendedores que, como un servidor, trabajamos cada vez más fuera que dentro de nuestras fronteras.
Volviendo a la tierra, estamos ante un sistema identificativo electrónico. Un documento de identidad digital que limaría las asperezas administrativas europeas, y que, como ocurre en la amplia mayoría de documentos de identidad presentes en cada una de las naciones, está basado en cifrados considerados hoy en día robustos, como es el caso de RSA-2048.
Sin querer entrar muy en profundidad, y por dotar de contexto a esta pieza, RSA es un cifrado de clave pública, es decir, que para poner en comunicación al emisor y el receptor de un mensaje cifrado mediante RSA, es necesario que ambos cuenten con dos claves de cifrado: la pública, que es la que ambos conocen (o bien se envía de antemano, o bien existe una base de datos en algún lado accesible), y la privada, que por supuesto hay que guardarla a buen recaudo. El mensaje entonces se cifra mediante la clave pública del receptor, de forma que éste cuando recibe ese mensaje, y en base a su clave privada, puede descifrarlo y leerlo.
Para descifrar un mensaje cifrado es necesario, por tanto, ambas claves, que se crean en base a unas operaciones matemáticas un tanto complejas (creo que este medio no es el más adecuado para que nos pongamos a hablar de ello) en las que, por resumir, interfieren dos números primos elegidos al azar. Por supuesto, hablamos de números primos muy grandes, y al aplicarse un cifrado RSA de 2048 bits, las operaciones necesarias para descubrir esos números primos con el hardware que tenemos en la actualidad presumiblemente llevarían algunos cuantos millones de años.
Pero hecha la ley, hecha la trampa, ya que al parecer algunos de estos sistemas están utilizando librerías como la del fabricante Infineon (EN/PDF), que permiten, entre otras cosas, agilizar el proceso. Ergo, hacerlo más débil.
Recientemente unos investigadores han demostrado (EN) cómo, a sabiendas que servicios como el de e-Estonia hacen uso de esta librería, en vez de tener que someter el cifrado a ataques de fuerza bruta con todos los números primos existentes (infinitos, de hecho), basta con hacerlo en base a la factorización de dicha biblioteca. Con un ordenador potente se tardarían unos 100 años. Ponemos una granja de ordenadores y la cosa se hace mucho más asequible: unos pocos días.
De esta manera se pone en jaque un cifrado que hasta el momento se consideraba técnicamente inviolable. No es que RSA-2048 sea ahora vulnerable, ojo, es que las implementaciones de RSA-2048 llevadas a cabo mediante bibliotecas como la de Infineon sí lo son. El ataque no vulnera el propio cifrado, sino la librería que genera los códigos de cifrado, aunque en la práctica el resultado sea exactamente el mismo (usurpación de identidad).
Y es un problema que lleva desde 2012 en activo. Y afecta, como decía, al sistema de e-Estonia de identidad digital (que, de hecho, y como medida cautelar, han tomado la decisión de cerrar la base de datos de claves públicas), pero también podría afectar a parte del sistema que gestiona nuestro DNIe y el DNI de muchos otros países (entre muchísimos otros sistemas, por cierto). Sin ir más lejos, recientemente hemos conocido que todos los DNIe españoles expedidos desde abril del 2015 son vulnerables, lo que ha llevado al gobierno a desactivar su certificado digital.
Lo que ya no me entra en la cabeza es cómo es posible que situaciones como esta se acaben dando en programas tan críticos como puede ser la creación de sistemas de identificación ciudadana, sujetos por ley a varios controles de seguridad. Es más, la librería Infineon ha tenido que pasar ya varios filtros de certificación y en ninguno ha sonado la alarma.
¿Cómo se realizan estas certificaciones? Como hablamos de desarrollos propietarios, en donde el código es privado, ¿es que estamos entonces delegando la seguridad a factores de oscurantismo en pleno siglo XXI? Porque ya se ha demostrado por activa y por pasiva que no son eficaces…
¿No sería mejor apostar por mecánicas de seguridad basadas en la transparencia? Un entorno en el que cualquiera pueda, si así lo desea, auditar el código y asegurarse de que no hay posibles debilidades en su implementación.
Que no estamos hablando tan siquiera de un nuevo modelo matemático que echa por tierra un cifrado antiguo, o de una evolución drástica de la capacidad de procesamiento que pone en jaque la seguridad de un cifrado, sino de un fallo de diseño que permite, en base a una librería certificada, bypasearlo.
Y en juego ya no están “únicamente” los mensajes chorras que enviamos por WhatsApp o las fotos de gatitos que lanzamos a Internet desde nuestra WiFI, sino la identidad de muchísimas de personas.
Basta que algo así acabe en malas manos para que peligre la vida de miles o millones de ciudadanos.
Es un tema serio, de verdad. No repitamos los errores del pasado.