Loading

La seguridad absoluta en internet no existe, y esto es extensible a las votaciones en red. En demokratian hemos tratado de reducir al máximo las posibilidades de uso fraudulento sin caer en la trampa de los sistemas criptográficos opacos.

Censos fiables: el fraude empieza antes del voto

La aplicación está dirigida a censos: solo pueden votar las personas que están censadas. Los censos son precisamente uno de los puntos donde se pueden cometer fraudes en cualquier elección, ya sea presencial u online.

Una tentación habitual en las votaciones online es, pensando en facilitar el voto al mayor número de personas, abrir un formulario para que todo el mundo pueda apuntarse introduciendo algún dato como el DNI cuyo número es fácilmente falsificable. Esta acción debe evitarse si no conlleva un sistema de verificación de que el inscrito existe efectivamente.

En demokratian: el administrador importa el censo desde un CSV verificado. No hay autoinscripción abierta sin validación. La autoridad responsable del censo aplica los filtros y controles que considere oportunos antes de la importación.

Voto separado del votante, sin necesidad de criptografía mágica

En demokratian el voto está absolutamente separado del votante. En la base de datos, ambos datos están en tablas distintas sin posibilidad de relacionar uno con otro. Al contrario que otros sistemas que mantienen la vinculación y necesitan complicados sistemas de encriptación para evitar que se conozca el sentido del voto, fiando esa seguridad a "autoridades externas".

El sistema se inspira en los modelos de votación tradicional: una vez metes tu voto en la urna, no puede ser modificado ni puede conocerse qué ha votado el votante.

Transparencia por encima de todo

Cualquiera puede ver que los votos son los que son. Pueden listarse directamente desde la base de datos sin necesidad de complicados programas o sistemas de desencriptación que generan al usuario con bajos conocimientos informáticos mucha inseguridad —al no estar claro que los algoritmos no estén cambiando datos.

"La opacidad criptográfica no es seguridad. Es fe en quien escribió el algoritmo."

Cadena de hash: cualquier alteración deja huella

Para evitar que se puedan introducir ilegalmente votos en la base de datos hemos creado varios sistemas de seguridad:

  • Una segunda copia encriptada de forma unidireccional con SHA-256. Comparando datos, el sistema detecta diferencias entre el original y la copia.
  • Una tercera copia en fichero aparte con acceso restringido en el propio servidor.
  • En cada voto, una referencia hash de los 5 últimos votos que permite una nueva comprobación de integridad al cierre.

Este encadenamiento es análogo a una blockchain pero optimizado para RDBMS relacional. El uso de SELECT FOR UPDATE con transacción atómica garantiza la integridad ante votos simultáneos.

Capa adicional: interventores independientes

El sistema tiene otra capa de seguridad, muy aconsejable en aras de la transparencia, que el administrador puede habilitar: el envío de un correo anónimo con cada voto, en el momento de generarse, a interventores independientes. Una especie de "copia en papel" de cada voto sin referencia al votante.

Verificabilidad individual sin comprometer el secreto

Al terminar el proceso de votación, el sistema entrega una clave alfanumérica única que el votante puede guardar. Cuando termine la votación y se listen todos los votos del recuento, podrá comprobar que su voto sigue allí inalterado.

Conclusión

Cualquier sistema informático es, como norma, inseguro. Depende en gran medida de la integridad de los administradores, sean cuales sean las medidas implementadas. Otros sistemas "lo fían" todo a complicados sistemas de encriptación, pero incluso con encriptación asimétrica existen las mismas vulnerabilidades a la inclusión de votos ilegales: las claves públicas que encriptan el voto están accesibles en todo momento en el servidor.

La diferencia: en demokratian la auditoría es transparente y comprobable por cualquiera, no por una autoridad externa que tienes que creerte.