El sistema de votación de las enmiendas constitucionales de Rusia, basado en blockchain, tenía una vulnerabilidad que, según se informa, permitía descifrar los votos antes del recuento oficial. 

Los constituyentes podían descifrar sus propias claves privadas 

Según una investigación de la agencia de noticias rusa Meduza, cuando los electores emitían su voto a través de un sitio web especial, los resultados se cifraban por una biblioteca de JavaScript llamada TweetNaCl.js. 

Esta es una implementación de la biblioteca de criptografía "Networking and Cryptography", o NaCi, creada por el matemático Daniel J. Bernstein y los criptógrafos Tanja Lange y Peter Schwabe.

Según Meduza, el sistema de votación se basaba en el llamado cifrado determinista, lo que significa que el uso de los mismos parámetros conduce a textos cifrados idénticos. Tanto el emisor como el receptor recibían una clave compartida, que podía utilizarse para el cifrado o descifrado del mensaje.

Esto significa que cualquier elector teóricamente podría descifrar su propio voto antes de que fuera descifrado por la comisión electoral, o incluso permitir que lo hicieran terceros. Para ello, el votante debía guardar su clave privada.

Para recuperar la clave privada, el elector tenía que ir a la página del boletín electrónico, abrir la consola del desarrollador en su navegador de Internet y hacer un pequeño ajuste en la biblioteca election.js (añadir logpoint, introducir: la clave secreta del elector es', encryptor.keyPair.secretKey) y luego emitir su voto. 

Meduza llevó a cabo un experimento en el que todos los participantes recuperaron sus claves privadas y, según se informó, pudieron descifrar todos los votos como resultado.

Hay un lado positivo en el bug

Según la publicación, la vulnerabilidad teóricamente les permite a los empleadores asegurarse de que sus empleados voten, e incluso comprobar sus votos después de inducirlos a guardar sus claves privadas. Ha habido informes que sugieren que las entidades financiadas por el estado en Rusia presionan a sus empleados para que voten a petición del gobierno.

Por otra parte, el mismo error podría utilizarse para aumentar la transparencia del voto en el caso de que la comisión electoral se niegue a publicar el descifrado de cada voto (como lo hizo después de la elección de la Duma de la ciudad de Moscú en 2019, donde supuestamente también se utilizó blockchain). 

Meduza declaró: "Por ejemplo, los partidarios de un candidato específico pueden acordar instalar la misma extensión de navegador. De esa manera, pueden rastrear el número mínimo de votos que su candidato debería obtener definitivamente después del conteo".

El 77.9% votó a favor de las enmiendas, lo que le permite a Putin gobernar hasta el 2036

La votación electrónica tuvo lugar del 25 al 30 de junio para los residentes de Moscú y Nizhniy Novgorod, y se basó en la plataforma blockchain Exonum desarrollada por Bitfury. El resto de las regiones solo podían votar fuera de línea. 

El referéndum en sí terminó ayer, el 1 de junio. Con todos los votos contados hoy, el 77.9% votó a favor del paquete de reformas y el 21.3% en contra, según la comisión electoral.

En cuanto a los resultados del voto electrónico, el 62.33% de los votantes de Moscú apoyaron las enmiendas y el 37.37% se opusieron a ellas. En Nizhni Nóvgorod, los resultados fueron algo similares: el 59.69% y el 40.31% de los electores votaron "a favor" y "en contra" respectivamente.

En particular, un boletín electrónico se consideró inválido. Como explicó un funcionario del gobierno de Moscú, el usuario de la votación detuvo "la transacción entre un clic del ratón y la introducción en la biblioteca de cifrado de su ordenador". Como la blockchain solo puede tomar "sí" o "no" como respuesta, el sistema supuestamente marcó dicho voto como inválido durante la desencriptación.

De acuerdo con las enmiendas constitucionales, los límites del mandato de Vladimir Putin se restablecerán en 2024, lo que significa que puede seguir siendo presidente hasta 2036.

No dejes de leer: