Sistemas de Votación (Work in progress)




Este post lo escribo con el objetivo de informar sobre las opciones electorales que hoy existen y detallar los desafíos que proponen los mismos. Su objetivo es que se tenga al tanto los posibles problemas de los mismos para poder proponer propuestas superadoras.

Todos los sistemas tienen sus detalles de implementación particular, pero considero que cualquier sistema de votación cuyo código fuente1)El código fuente es lo que el programador escribió y luego la computadora interpreta. Este código describe todo el funcionamiento de un programa informático no sea libre, debería ser descartado para cualquier votación oficial. Sin excepciones.

Para este análisis se asume que los votos deben ser secretos.

Auditar códigos fuente es MUY difícil

Cuando se utilizan urnas de cartón, es muy fácil auditarlo. Los fiscales la abren las urnas vacías y se ponen todos de acuerdo muy rápido en que está vacía y empieza la votación. Ahora, si está urna pasa a ser reemplazada por una computadora ¿Como garantizamos que este vacía?

Sumado a esto, debo remarcar que auditar que el código fuente que se utiliza en el sistema de muy difícil. La razón de esto se explica en cada sistema de votación. Sumado a que es muy difícil de auditar, es muy poca la gente capaz de auditarla con total seguridad, por lo cual gran parte de la confianza de la elección recae en personas técnicas. Esto hace que el fantasma del fraude esté siempre presente.

Este problema lo tienen también páginas web open source, dado que pueden hacer público su código fuente, pero nada puede garantizar que ese sea el código que se está ejecutando en sus servidores.

Detalle técnico: Una solución posible para garantizar que código corre un servidor es hacer un hash de todo el contenido del disco rígido y verificar que de igual que el código patrón. El problema que esto tiene, es que la consola por la cual se pide el hash puede también estar modificada y retornar un hash válido aunque el código haya sido modificado! Con lo cual solo queda sacar el disco rígido y revisarlo en una computadora para analizarlo, para lo cual se necesitaría un mucha capacitación de las personas que lo hacen.

A todos estos problemas, además, hay que sumarle la complejidad de que un grupo de expertos tiene que auditar y acordar un código patrón, y toda la ciudadanía depositar su confianza en ese grupo de expertos.

Espero haber sido lo suficientemente claro sobre como este problema no es para nada trivial.

Creo que la fuerza de cualquier sistema de votación electrónico bueno va a recaer en no necesitar auditores en su código fuente.

Para empezar, voy a clasificar en Sistemas de Boleta Electrónica y Sistemas de Urna Electrónica, para luego plantear un tercero.

Sistemas de Boleta Electrónica

Este sistema es el implementado por la famosa BUE, que debutó el pasado domingo en las elecciones porteñas. Este sistema no es nada nuevo ya que la empresa que lo implementa ya ha llevado a cabo en otras elecciones en el interior de país. Despegandonos de esta implementación en particular, analizaré las caracteristicas del sistema. Los problemas de la implentación de la BUE en particular se detallan al final de esta sección

Descripción

Es muy similar al sistema de votación tradicional, pero las boletas son impresas por una computadora en el momento por una máquina.

Beneficios:

  • Los partidos no necesitan imprimir sus propias boletas y todos necesitan. Esta también evita el robo de boletas, ya que también es un sistema de boleta única.
  • Evita la posibilidad de emitir votos impugnados involuntariamente2)Por ejemplo poner dos boletas de la misma categoría en el mismo sobre por error..
  • Puede acelerar el proceso de conteo (ver implementación de la BUE para discutir este punto).
  • Elimina la necesidad del cuarto oscuro, una vez que los fiscales le dan una boleta en blanco al votante este puede elegir a que máquina va a emitir su voto. Esto hace que las elecciones sean más ágiles y no se necesiten bajar máquinas para personas con movilidad reducida3)Por lo que yo pude ver, esto no fue así en las elecciones de la Ciudad de Buenos Aires..

Posibles problemas

  • La máquina es una computadora y por esto recaemos en la necesidad de auditar el código.
  • Por lo de arriba, nada garantiza que una computadora no pueda guardar información sobre los votos emitidos.

Los problemas de la BUE

Los problemas que puede tener este sistema es que las boletas surgen de tener un chip RIDF. Este chip guarda la información del voto y su objetivo es que los fiscales puedan contabilizar los votos asistidos con la máquina y así se pueda lograr un conteo rápido y sin errores4)Los que hayan sido fiscales sabrán que si bien contar votos debería ser una tarea simple, algunos fiscales son unos idiotas no son capaces de contarlos correctamente y estos retrasa el resultado..

Este chip tiene dos graves problemas:

  • Puede ser modificado simplemente con un celular y una aplicación adecuada, modificando un voto o hasta agregar dos votos para el mismo candidato;
  • Si bien esto no lo he podido confirmar, leyendo gente que dice haber escaneado las boletas con sus teléfonos, afirman que cada chip posee un identificador único, el cual permitiría conocer el voto de una persona.

Los problemas de este chip pueden ser fácilmente resueltos al reemplazarlos con códigos QR que se impriman junto con las boletas y tengan la misma información que hoy tienen los chips RIDF. Esto además sería mucho más económico.

Además, la BUE no cumple con algo que fue puesto con algo básico de cualquier voto electrónico. No es software libre. Ese punto es muy grave y nunca debería aceptarse un sistema así.

También pasaron cosas raras como está, que yo vi con mis propios ojos en la página de los resultados.

Sistemas de urna electrónica

Descripción

Estos sistemas guarda toda la información de los votos en uno (o varios5)Puede ser uno por cada urna, por ejemplo.) servidores centralizados. Un ejemplo de este sistema podría ser DemocracyOS.

Beneficios

  • Poder auditar el voto. Cada voto puede ir junto con un identificador único elegido al azar al momento de votar y que solo el votante conozca. El votante puede luego acceder a una interfaz web y contabilizar su voto.
  • Conteo de votos instantáneo.

Problemas

  • Suponiendo que haya habido denuncias generalizadas, si los votos digitales fueron mal grabados no hay forma de recuperarlos. Aquí es donde es infalible el método clásico, cada voto tiene un resguardo físico.
  • Mucha responsabilidad en el código, por mas que cada persona audite su voto falta auditar el código que hace la suma total6)En el caso de votaciones de cagos públicos, es lógico que exista una desconfianza sobre el auditor, ya que el mismo gobierno también suele tener intereses sobre los cargos en disputa. En propuestas como las del Partido de la Red, se suponen que los votantes ya depositaron la confianza en el responsable del sistema..
  • No toda la masa votante va a auditar su voto.
  • Propenso a ataques informáticos7)Se puede detallar mucho sobre esto, pero un ataque informático que comprometa los servidores puede literalmente arruinar la elección..
  • Posibilidad de que alguien con acceso a la base de datos libere información sobre el resultado de la votación antes de que esto sea permitido8)Por ejemplo, en la Ciudad de Buenos Aires está prohibido difundir resultados antes de que cierren las urnas..

Métodos de clave privada/pública

Aclaración inicial: Si bien está muy de moda en este momento, para implementar esto no es necesario una blockchain, es más, estas tienen implementaciones distribuidas muy costosas y hasta ahora solo hay un puñado de implementaciones exitosas conocidas. Todas estas implementaciones tienen la características de ser sistemas financieros (Bitcoin es el ejemplo obvio) y a cada nodo se le paga para procese y valide transacciones correctamente.

En un sistema de votación, si todo el poder de cómputo de los nodos son mantenidos9)Recomiendo leer sobre como funciona la red Bitcoin para entender esta afirmación. por organizaciones gubernamentales, caemos en el mismo problema de centralidad de los votos de urna electrónica.

Descripción

En este sistema, cada votante recibiría un juego de claves públicas y privadas. Con esta clave escribiría su voto en un libro público, donde solo el sabe que voto emitió. Este voto se puede emitir de forma online, pero esto no es obligatorio.

Beneficios

  • Auditoría total de todos los votos, ya que todos son públicos.
  • Los votantes pueden votar desde cualquier lado, luego de que hayan obtenido sus claves.

Problemas

  • Requiere auditoria sobre quien otorga las claves claves, ya que es fácil corroborar los votos válidos, pero no que no haya votos de más.
  • No hay forma de evitar que los resultados se conozcan antes de que cierre la votación, ya que todos los votos son públicos, pero emitidos de forma secreta10)Por ejemplo, en la Ciudad de Buenos Aires está prohibido difundir resultados antes de que cierren las urnas.11)También se podría conseguir una implementación tal que los votos pueden ser escritos en el libro público en el horario de la votación pero el servidor solo acepte pedidos de información (request) luego de una determinada fecha, aunque esto volvería a caer en algunos problemas de los votos de urna electrónica.

Sobre el conteo de votos tradicional

He leído argumentos que afirman que si hoy en día los votos luego de ser contados a mano, son escritos en telegramas y luego enviados a centros de cómputos, no habría mucha diferencia entre votar directamente de forma digital.

Pienso que esto es incorrecto, ya que este voto se hace solo de forma provisoria, con el respaldo físico siempre disponible en caso de que haya disputas en el resultado.

Conclusiones

A criterio del autor, todos los métodos enumerados tienen problemas de seguridad y la pregunta a plantearse realmente es ¿Cuanta seguridad es realmente necesaria?. El sistema de boletas de papel también tenía posibles problemas de seguridad y yo personalmente nunca me puse a revisar que no haya una cámara en el cuarto oscuro revisando mi voto o no estén marcadas las boletas. ¿Por que ahora le exigiría seguridades superiores a un sistema informático?

Sobre el sistema BUE, lo admito como una implementación aceptable y corrigiendo algunos pequeños errores aquí marcados.

De lo que no quedan dudas es que como sociedad debemos informarnos mas sobre los problemas de los sistemas de votos electrónicos y debatir con información concisa como queremos votar en el futuro.

Do not be a Naysayer.

Si llegaste hasta acá abajo, quizás deberías seguirme en Twitter:


References   [ + ]

1. El código fuente es lo que el programador escribió y luego la computadora interpreta. Este código describe todo el funcionamiento de un programa informático
2. Por ejemplo poner dos boletas de la misma categoría en el mismo sobre por error.
3. Por lo que yo pude ver, esto no fue así en las elecciones de la Ciudad de Buenos Aires.
4. Los que hayan sido fiscales sabrán que si bien contar votos debería ser una tarea simple, algunos fiscales son unos idiotas no son capaces de contarlos correctamente y estos retrasa el resultado.
5. Puede ser uno por cada urna, por ejemplo.
6. En el caso de votaciones de cagos públicos, es lógico que exista una desconfianza sobre el auditor, ya que el mismo gobierno también suele tener intereses sobre los cargos en disputa. En propuestas como las del Partido de la Red, se suponen que los votantes ya depositaron la confianza en el responsable del sistema.
7. Se puede detallar mucho sobre esto, pero un ataque informático que comprometa los servidores puede literalmente arruinar la elección.
8, 10. Por ejemplo, en la Ciudad de Buenos Aires está prohibido difundir resultados antes de que cierren las urnas.
9. Recomiendo leer sobre como funciona la red Bitcoin para entender esta afirmación.
11. También se podría conseguir una implementación tal que los votos pueden ser escritos en el libro público en el horario de la votación pero el servidor solo acepte pedidos de información (request) luego de una determinada fecha, aunque esto volvería a caer en algunos problemas de los votos de urna electrónica