Buenas! Hoy escribo post largo, pero que creo que era necesario que alguien lo escriba :)
Hay mucha gente hablando sobre voto electrónico y lo que se hizo en Salta, pero la
verdad es que pocos tienen conocimiento de qué se hizo realmente, cómo funciona, y
demás. Muchos opinólogos que sacan conclusiones acerca de lo magnífico o terrible que es,
pero a partir de cosas que adivinan o inventan. Y remarco que pasa en los dos lados,
tanto de parte de los detractores como de parte de los defensores de este sistema.
Así que primero lo primero: como le gusta decir a un amigo, "desasnémosnos". Empecemos
entendiendo cómo funciona el sistema de voto electrónico que se utilizó en Salta.
Como soy programador es lógico que mi explicación va a incluir unas cuantas cosas bien
técnicas, pero también voy a abarcar otras más referidas al proceso.
Luego de la explicación también voy a incluir algunos de los planteos más comunes que
surgen, y las respuestas a esos planteos. Así que si durante la explicación se les
plantea algún cuestionamiento, estén atentos a si no lo respondo en esa sección.
Y recién después de eso voy a plantear mi opinión (por si a alguien le interesa, jeje),
y dejar abierto el debate para que todos opinen y pregunten :)
Por mi salud mental y la del debate, abstenerse de opinar quienes no tengan ganas de
leer todo el post.
Ah, y casi me olvido: ¿por qué escribo yo sobre esto, y cómo se lo que se? Porque hace
un tiempo empecé a trabajar para la empresa que desarrolla el sistema (MSA).
¿Eso le quita objetividad a lo que digo? Puede que sí en la parte de opinión, pero no en
lo referido al funcionamiento, es información y hechos verificables :)
No está de más aclarar que todo lo que digo en este post es opinión y palabra
mia y no de la empresa para la que trabajo, ya que se trata de mi blog personal. Así
que por cualquier cosa, yo (Juan Pedro Fisanotti, DNI 32.726.247) soy el responsable.
La parte objetiva: funcionamiento del sistema
Podemos dividir al sistema en tres grandes partes: el proceso de votación en sí, el
recuento por mesas, y el recuento final donde se transmiten y suman los recuentos de
todas las mesas.
El hardware que vamos a usar:
Para la votación en sí y el recuento de las mesas se usan pcs especiales que vamos a
llamar "máquinas de votar" (más detalles después). Para transmitir la información de
las mesas también se van a utilizar máquinas de votar (aunque no las mismas, sino
otras dispuestas especialmente para la tarea). Y como se imaginarán los que tengan
conocimientos técnicos, del "otro lado" hay servidores que van a recibir esa
información a la hora del recuento global (en este caso el "otro lado" está ubicado
en el tribunal electoral).
Las máquinas de voto merecen un poco más de explicación, ya que tienen algunas
características especiales:
- Consisten en una valija con una pc todo en uno (pantalla táctil), una batería de
emergencia, una impresora térmica, y un lector/grabador de RFID.
- La pc no tiene ningún tipo de almacenamiento ni conexión a ninguna red. Sí tiene
una lectora de DVD.
- La batería de emergencia garantiza alimentación suficiente para cortes no tan
prolongados, mientras que si se espera una ausencia de energía prolongada las
máquinas también poseen los cables necesarios para conectar una batería de auto, que
le da autonomía suficiente para una votación completa.
Y finalmente, dentro de lo que podemos considerar como "hardware", están las boletas
de voto electrónico. Son boletas con papel para impresión térmica, y un chip RFID de
poco alcance dentro.
Hay varios tipos de boletas: las que se utilizan para la apertura de las mesas, las de
voto, y las de cierre y transmisión. Después vamos a ir viendo cuándo se utiliza cada
una.
Es importante ya ir sabiendo que una vez que el chip se graba con datos, ya no puede ser
alterado. Se graban y se "queman" de manera que no se pueda modificar la información
almacenada.
El software:
Para la votación en sí y el recuento por mesa las máquinas de votar van a usar un
sistema que vamos a llamar "sistema de voto".
Para la transmisión de los datos se va a usar un "sistema de transmisión".
Y en los servidores vamos a tener el "sistema de recuento global".
(Son todos nombres que pongo yo en este post para entendernos, vale la aclaración)
Tanto las máquinas de votar como los servidores corren Ubuntu (en el caso de las
máquinas de votar, con modificaciones para que tengan solo lo necesario para el
sistema). Y las aplicaciones desarrolladas por MSA para este sistema están escritas
casi en su totalidad en el lenguaje de programación Python.
¿Base de datos de los servidores? Postgresql. ¿Y de las máquinas? No usan ningún sistema
de base de datos (después van a entender por qué no es necesario. Si les digo ahora que
las máquinas de voto no guardan info, probablemente no entiendan cómo puede ser
por ejemplo que hagan el recuento, jeje).
¿Recuerdan que les conté que la máquina de votar no tiene ningún tipo de almacenamiento?
Entonces, ¿cómo puede tener el sistema de votación o el de transmisión?
Simple: ambos sistemas se distribuyen en CD antes de comenzar la votación (livecds de
Ubuntu customizados, con cada sistema ya instalado y configurado). Como pueden imaginarse
hay medios para garantizar que estos CDs no sean alterados. Los mismos son generados en
una única tirada con la presencia de los fiscales, son precintados, y luego se abren el
día de la elección. Y para los más técnicos: cada CD tiene un detalle de los hashs MD5 de
todos sus archivos, que un fiscal podría luego comparar contra el maestro que posee el
tribunal electoral. [EDIT: ya no usamos MD5, ahora usamos SHA512]
Y la gente:
En el proceso van a participar las mismas personas de siempre (presidentes de mesa,
fiscales, el tribunal electoral, etc.), y un grupo nuevo de personas: los técnicos en
las escuelas. La labor de estos técnicos va a ser la de soporte a las autoridades de
la elección en cada escuela, y van a ayudar a transmitir los datos en conjunto con los
presidentes de mesa.
Ahora sí, votemos con el sistema. El proceso:
Arranca la mañana, los presidentes de mesa tienen que hacer la apertura de las mesas.
Este proceso va a permitir que la gente comience a votar con la máquina.
Para ello necesitan de:
- Una máquina de votar (normalmente es una máquina por mesa, pero es posible plantear
otros esquemas).
- El sistema de votar (livecd).
- Sus credenciales (con chip RFID que los identifica como presidentes de mesa).
- Una boleta de apertura de mesa en blanco.
El presidente de mesa inicia el sistema de votar (que arranca automáticamente al bootear
el CD), se identifica con sus credenciales que le permiten abrir la mesa que tiene asignada,
y elige dentro del sistema la opción de apertura de mesa.
Esto le grabará e imprimirá la boleta de apertura, que después va a poder utilizar para
volver a abrir la mesa en caso de reemplazo de la máquina o reinicio por cualquier
motivo (abajo explico un poco más esto de poder reemplazar la máquina o reiniciarla).
Este acta impresa es el documento legal que el presidente de mesa requiere, y además
el proceso de apertura le permite a la máquina saber qué opciones debe presentar a
los votantes, ya que todos los livecds son iguales.
Abierta la mesa, elige la opción de poner la máquina en modo de votación, y ya está,
tenemos una máquina preparada para que la gente comience a votar.
¿Y cómo votan las personas?
Pepe votante llega a la mesa, presenta su DNI. Normalmente a Pepe le habrían dado un
sobre para que entre al cuarto oscuro. Pero en este caso le dan una boleta de voto (de
las que les conté antes) que no tiene datos, y está en blanco en uno de los lados.
Pepe se dirije a la máquina de votar, inserta su boleta en la máquina.
Vale aclarar en este punto: la boleta todavía está en blanco! en ningún momento la boleta
tiene datos sobre quién es Pepe. Y la máquina no tiene ningún tipo de conexión de red,
aparte de que el presidente no tiene contacto con la máquina, por lo que el presidente
no puede decirle a la máquina de alguna manera "es Pepe el que está votando" (salvo que
el presidente y la máquina hagan un curso acelerado de telepatía antes de empezar la
votación). Esto es crucial para que el voto sea anónimo.
De hecho el presidente puede darle a Pepe cualquiera de las boletas que tiene, e incluso
podría darle a Pepe la opción de que elija la boleta que él prefiera.
Y no está de más aclarar que la máquina también verifica que la boleta se encuentre
vacía. En caso de no cumplirse esa condición, expulsa la boleta apenas se la ingresa
En la pantalla de la máquina aparecen las opciones para votar. Estas opciones van a
depender de la votación, pero básicamente Pepe va a tocar la cara del candidato que
quiera para cada cargo que se esté eligiendo (de cada candidato aparecen todos los
datos lógicos, como nombre, partido, etc.).
Importante: los candidatos aparecen todos del mismo tamaño, con los mismos datos, y
en orden aleatorio cada vez que son mostrados, para no dar ningún tipo de ventaja.
Cuando Pepe ya ha elegido todo la máquina le pregunta si desea confirmar su voto. Pepe
puede elegir no confirmarlo y volver a armar su voto, o confirmarlo. Al confirmarlo la
boleta se imprime, y se guarda lo elegido por Pepe dentro del chip RFID.
Pepe debe cerciorarse de que lo que salió impreso en la boleta es lo que él quería
votar, ya que lo impreso es lo que cuenta. Y además puede verificar lo grabado en el
chip pasando la boleta por el lector de la máquina, que le presenta por pantalla lo
que el chip contiene. Y puede hacer esto en cualquier máquina (que no poseen conexión
entre sí), con lo que en este punto tenemos una seguridad importante, una pieza en
el rompecabezas que tenemos que acordarnos:
Hasta el momento del voto en sí incluido, es imposible que la máquina nos mienta, ya que
lo que cuenta es lo que está en la boleta, y podemos ver lo impreso y el contenido del
chip.
Sí, ya se, faltan cosas para estar seguros de todo el sistema. Sean pacientes :)
Finalmente, Pepe dobla su voto para que nadie vea lo impreso y lo deposita en una
urna de cartón, igual a las de las elecciones tradicionales (acá es donde empezamos
a ver que este sistema es de boleta electrónica, pero no de urna electrónica. Algo que
es crucial para ayudar a que sea transparente).
Después de Pepe vendrá Luis, Juan, José, y todos los votantes de esa mesa.
Y en este punto viene otra aclaración crucial: la máquina NO VA CONTANDO LOS VOTOS QUE
GRABA E IMPRIME! No, no los cuenta. NO, como dije, no los cuenta. ¿Y cómo se cuentan
entonces los votos? Paciencia, un poco más abajo lo voy a explicar. Pero ahora lo
importante es eso, que la máquina no va contando los votos.
¿Y por qué es tan importante? Porque le puede pasar cualquier cosa a la máquina, que no
va a afectar a la votación. Si se apaga, un psicópata la parte con un hacha, le cae un
rayo o lo que sea que le impida seguir funcionando, basta con buscar otra máquina,
volver a hacer la apertura (que se hace rápidamente con la boleta de acta ya grabada),
y listo. Seguimos votando.
Incluso nos permite independizar a la mesa de la máquina. Los votantes de una mesa
podrían votar en cualquier máquina, ya que la única tarea de la máquina es emitir las
boletas electrónicas, y no ir llevando el recuento.
Para los más técnicos: esto nos permite hasta aplicar un poco de teoría de colas y
balancear la carga entre las mesas.
Son las 6 de la tarde (o un poco más). Terminan de pasar todos los votantes, tenemos que
cerrar la mesa y realizar el recuento.
El presidente de mesa sigue un procedimiento similar al de la apertura de la mesa con
su credenciales y un acta de cierre en blanco, solo que en este caso elige la
opción de cierre de mesa. Iniciado el proceso de cierre de la mesa llega el momento de
contar los votos.
Tradicionalmente se habría abierto la urna, contado a mano los votos contenidos en los
sobres, y anotado el resultado en un acta en papel.
En este sistema lo que hacemos es abrir la urna, sacar las boletas de voto, y pasarlas
una a una por el lector de la máquina, que va contando los votos y mostrándonos por
pantalla lo que cuenta.
Los fiscales también están presentes durante el recuento para fiscalizar el procedimiento,
de la misma manera que podían hacerlo en el voto tradicional.
Es importante recordar que las boletas tenían impreso el voto, y que el presidente es
responsable de observar que lo que dice la boleta es lo mismo que la máquina muestra
por pantalla al pasar el voto. Y en todo momento es posible ver el total de lo que la
máquina lleva contado.
Y otra cosa importante es que cada chip tiene un serial único (similar a una dirección mac),
que le permite al sistema evitar contar dos veces el mismo voto. Esto mismo se puede
comprobar con tranquilidad al realizar el recuento, pasando dos veces una misma boleta.
El sistema rechaza el segundo intento informando que ya ha sido contada anteriormente.
Y esto no implica un riesgo para el anonimato del voto porque como ya vimos, no existe
manera práctica de asociar a la boleta con la persona que la utilizó.
Cuando se han pasado todos los votos el presidente de mesa le indica a la máquina de
voto que se ha terminado el recuento, y la misma le imprime el acta de cierre con el
recuento realizado (lista de partidos con votos para cada uno y demás). Esta información
se imprime y se guarda en el chip del acta, y se vuelve a imprimir y guardar en el chip
de una segunda boleta: la de transmisión.
Aquí un segundo punto crítico de control: al estar el recuento impreso en las boletas y
por haber podido controlar todo el recuento viendo lo que los votos tenían impreso, la
máquina de voto tampoco puede mentirnos hasta este punto. A este punto llegamos con
un acta cuyos datos impresos son completamente verificables, donde la máquina no tuvo
posibilidad de alterar esos datos sin que nosotros nos demos cuenta.
Tema aparte es lo que se vaya a transmitir, ya llegamos a eso, pero es importante que
sepamos que esas actas no pueden ser "inventadas" y que son la evidencia física de lo
que la gente votó.
¿Se dan cuenta de que hasta este punto siempre podemos controlar a la máquina? A
diferencia de la creencia de que es imposible estar seguro que lo que dice una máquina
es real, acá el proceso mismo nos permite tener esa seguridad. La clave está en el
proceso, y no en la tecnología en sí.
Bien, tenemos los recuentos de las mesas, verificables y seguros. Llegó el momento de
transmitir estos datos al tribunal electoral para realizar el recuento global.
El presidente de mesa se dirige a la máquina de transmisión (una por escuela), donde se
encuentra el técnico responsable de esa escuela.
El técnico inicia la máquina con el sistema (livecd) de transmisión, y conecta esta
máquina a internet (por ADSL, 3G o conexión satelital, dependiendo del caso y
disponibilidad). Se autentica con su credencial y certificados SSL.
Para los lectores con conocimientos técnicos: se usa SSL para cifrar la transmisión,
con certificados para autenticar ambos lados, tanto al servidor como al cliente.
El técnico pasa la boleta de transmisión que trae el presidente (quien sigue a su lado)
por el lector de la máquina. La máquina envía los datos al servidor, y el servidor
devuelve una imágen con lo que debería tener impreso la boleta de transmisión (el
recuento).
El técnico y el presidente de mesa verifican que el servidor reconstruyó un recuento
idéntico al impreso en la boleta de transmisión, y cuando ambos concuerdan en que es
correcto, vuelven a pasar la boleta por el lector y confirman la transmisión.
Del lado del servidor esa boleta se marca como ya recibida, y sus valores se agregan
al recuento global de manera automática.
Los más rápidos ya deben estar preguntando: ¿y qué pasa ahora con eso de que la máquina
no puede mentir? ¿Los servidores no pueden manipular el recuento global?
Bien simple: las actas de cierre y las urnas no se tiran a la basura, se guardan. Y por
tanto seguimos teniendo la evidencia física verificable, cierta, que las máquinas no
pueden alterar. Tenemos las actas, que por el proceso sabemos que no tienen error. Eso
evita que las computadoras puedan mentir.
Y aparte de esta seguridad, también se dispone de los mecanismos tradicionales de
verificación: los partidos tienen dentro del tribunal electoral a sus fiscales, que
pueden verificar que lo recibido se corresponde con lo que los fiscales en las mesas
observaron en el recuento.
Fin del proceso.
¿Y cómo se compara esto con la seguridad que todos tenemos sobre el sistema tradicional?
Bueno, tendríamos que desmitificar un poco esa seguridad.
Comparemos por partes.
El sistema tradicional no nos otorga ninguna seguridad respecto a que los presidentes
de mesa y fiscales realizan el recuento adecuadamente.
En el sistema de voto electrónico expuesto, ellos también podrían alterar los valores,
pero si analizamos bien vemos que les sería mucho más difícil, ya que el
recuento no es un simple papel escrito a mano, sino que se deben pasar votos reales por
una máquina. No podemos hacer que un voto para el candidato X cuente como un voto para
el candidato Y, porque la máquina lee X y suma X. En papel tranquilamente el presidente
puede modificar esos valores (y hasta tiene boletas con las cuales rellenar las urnas
para que coincidan).
Y si confían mucho en los presidentes de mesa y creen que estas cosas no pasan, entonces
miren lo sucedido recientemente en Chubut, donde llegó a haber diferencia de 800 votos
en un acta...
Así que respecto al recuento en las mesas, el voto electrónico con el sistema planteado
nos otorga más seguridad que el voto tradicional.
El sistema tradicional tampoco nos otorga ninguna seguridad respecto a la "transmisión"
de los datos. Estoy seguro de que la gran mayoría de los que leen esto nunca antes se
habían preguntado "¿cómo se llevan las actas y las urnas para el recuento global?". En el
sistema tradicional eso es clave, y sin embargo no tenemos manera de verificar que quien
se haga cargo de dicho transporte (correo, gendarmería, etc.) no altere el contenido,
modificando las actas o las urnas.
En el sistema que explicamos también podría suceder que se alteren los contenidos de las
urnas y las actas, pero se encontrarían con un problema: deberían hacer que coincidan
con lo que se transmitió antes, lo que les sería imposible, ya que lo transmitido se lee
desde el chip RFID que no puede ser modificado una vez grabado, y además no es escritura
a mano sino una impresión.
En este punto entonces también ganamos seguridad mediante el sistema de voto electrónico.
Aparte de esos puntos, en el sistema tradicional también eran posibles muchas otras
trampas, como el robo/ocultación de boletas del cuarto oscuro, que la digitalización y
unificación de la boleta ya no permiten (esto es una ventaja también en los sistemas de
voto en papel con boleta única). Además de el hecho de que al mostrar todos los candidatos
en órden aleatorio y no depender de cuántos fiscales y boletas pueda poner cada partido
en las mesas, se favorece la igualdad de condiciones para los partidos, no perjudicando
a los más chicos.
Comparando entonces con lo que explicamos antes, objetivamente podemos afirmar que
el sistema de voto electrónico implementado en Salta nos otorga seguridades que el voto
tradicional, en papel, no nos otorgaba. Y sigue siendo verificable, no se convierte en
una caja negra que no podamos controlar.
Por ello es importante antes de creer que el sistema de voto electrónico expuesto es
inseguro, ver si las inseguridades que planteamos no existen también en el sistema de
voto tradicional (papel). Porque la realidad es que como todo sistema lo que se utilizó
en Salta no es perfecto, pero sí mucho más seguro y controlable que el sistema
tradicional.