Hace pocos días los simpatizantes de Podemos votaron las propuestas organizativas del partido, se habló bastante de ello. Pero el tema del voto electrónico se tomó con mucha superficialidad e incluso hype que estaba muy lejos de la realidad.

Antes de entrar al tema dejadme hacer una introducción breve [pero incompleta] de los requisitos de sistemas de votación en sistemas democráticos. Tened en cuenta que el 100% de seguridad o el 0% de error es una meta imposible, lo que se intenta es tener un sistema lo más preciso y fiable posible, donde los errores se minimicen y que estos se distribuyan proporcionalmente entre las diferentes opciones, así se asegura que afecten lo mínimo posible (con porcentajes muy bajos, menores al 1%) al resultado final. Aún en caso de que haya dudas estas se resuelvan con normas claras y definidas antes de la elección (incluso vale con tirar la moneda).

Requisitos y garantías de un sistema de votaciones

Repetimos frecuentemente que en un sistema democrático el voto es universal y que una persona un voto (y viceversa). Por lo que hay que comenzar con un censo que sea fiable y hacer controles para que no haya suplantación ni votos múltiples. Luego hay que asegurar que el voto sea libre, que no haya coacción o soborno para que se vote por una de las alternativas, por ello el voto es secreto, lo que implica que puedas votar sin que nadie sepa lo que votas, y que a posteriori tampoco pueda saber quién emitió ese voto (“voto anónimo“). Por supuesto, hay que evitar que haya fraude en el voto: que no se puedan modificar, que no se puedan agregar o eliminar. El escrutinio de los votos también deben tener requisitos estrictos, además de cumplir con las condiciones anteriores (que no existe adulteración), deben ser rápido, preciso y auditable a posteriori. No acaba aquí, hay otros requisitos, hay que brindar igualdad de condiciones para votar a todo el que esté en el censo.

Fijaros que muchos de esos objetivos son contradictorios, por ejemplo ¿cómo asegurar que los votos que se cuentan son de personas que han votado y que además sea auditable pero que no podamos saber quiénes fueron? Estos problemas fueron afinándose y mejorando con el tiempo hasta que se llegó a la más alta y fiable tecnología que conocemos. La que describo a continuación (entrecomillado):

El censo está mantenido por una red que cubre casi cualquier rincón del país, la Policía y ayuntamientos (para el “censo” de domicilios). Ésta entrega a cada persona una tarjeta identificatoria que es obligatoria para hacer cualquier trámite o contrato en todo el territorio del país, que se identifica con una foto, sus datos, su domicilio legal y un número único (hay unos pocos duplicados). Como se tiene la base de datos completos se asigna a cada persona un sitio cercano a su domicilio para votar. Se sabe cuántas personas votarán en cada sitio por lo que se ponen en marcha las mesas con urnas y personas necesarias para el proceso. Las mesas tienen una lista de qué personas pueden votar en ellas, cada persona puede votar sólo en una mesa (por lo que se eliminan problemas de control remotos, imposible sin redes de comunicación como las actuales). Cada persona se presenta a la mesa para depositar su voto en un sobre cerrado (lo puede llevar desde casa o introducir el voto en mesas y cabinas habilitadas) en la urna de cada mesa. En cada mesa hay varias personas nombradas aleatoriamente más los enviados de los diferentes partidos. Estos verifican que la persona sea la que dice el DNI, verifican que esté en la lista, marcan (en diferentes copias) que DNI ha votado y permiten que la persona introduzca el sobre en una urna transparente (que facilita el control de que no se añaden o quitan sobres). En ese momento el voto se contará pero ya es anónimo, no habrá forma de rastrear hacia atrás autor. Cuando se cierran las urnas comienza el escrutinio público, de forma paralela en cada mesa (lo que asegura rapidez) donde al menos están las personas elegidas al azar más los representantes de partidos o la administración. Dado que el voto es físico es muy difícil cambiarlo, habría que cambiar la papeleta por otra, en presencia de las demás personas, que deberían estar todas de acuerdo (algo muy improbable). El número de votos debe coincidir con el número de votantes apuntados en las listas. Una vez contados se apunta los resultados en formularios ad hoc y estos se enviarán junto con las papeletas (empaquetados y sellados) a la junta electoral. Pero antes de cerrar y sellar un funcionario o persona transmite el recuento de esa mesa vía telemática o telefónica por lo que en muy poco tiempo ya se puede conocer el resultado de las elecciones. Luego estos datos son contrastados nuevamente con los datos apuntados y firmados en los formularios. Al final del proceso electoral quedan registros físicos y con testigo de cada paso sobre los votos y quiénes han votado por lo que es posible auditarlos: recontar los votos, verificar nuevamente si una persona ha votado o no (pero sin poder relacionarlo con su voto), detectar “fraudes” (como los enfermos de de alzheimer que el PP llevó a votar), y hasta hacer análisis estadísticos para detectar fraudes no detectados antes (hay diversos mecanismos).

No sé si os habéis parado a pensar en la complejidad del proceso y todas las garantías que ofrece con elementos simples. Parece simple de lograrlo pero es muy complicado, por eso el voto electrónico genera tantas dudas, discusiones y se implementan muchos mecanismos que aún los más sofisticados tienen dificultades para equipararse con las garantías que ofrece el sistema de votos tradicional.

Ahora os explicaré cómo funcionó el sistema de votos de Podemos. Pero como es un sistema tecnológico muy complejo lo haré con una analogía más sencilla de entender. En vez de web lo haremos por teléfono, en vez de programas y CPUs serán personas haciendo cálculos, en vez de memoria y disco serán formularios en papel, pero intenté que salga lo más próximo a la realidad de lo que hacen los diferentes programas [*].

Alta en el censo

Llamas a un número de teléfono de Podemos:

– Centro de altas del censo de simpatizantes de Podemos, dígame

– Hola, quiero darme de alta, soy Pedrito Palotes y mi DNI es 12345V

– La verificación de la letra es correcta, dígame un número de móvil

– 555-123456

– Le envío un número por SMS y tendrá que decírmelo

– Recibido. Es el 12001

– Correcto, ahora cada vez que nos llame diga su DNI y esta es su clave de verificación 123123

Inicio del proceso de votación

Llamas a un número de teléfono de Podemos

– Control de votos de Podemos, dígame

– Hola, soy el DNI 12345V y mi clave es 123123

– Correcto, ¿qué desea votar?

– La de “organización”

El operador de Podemos aplica una fórmula (de hashing) que convierte el DNI en un identificador diferente (hash). Esta fórmula usa parámetros secretos que luego permitirá verificar si el voto de esta persona es de una persona que está en el censo y que no se duplica.

– Señor, su clave de identificación es ABCDEF, y el código de elección es el 35, ahora llame al teléfono de AgoraVoting, 666-123456 y diga esta clave y número.

– Gracias

Ahora esta persona puede o no llamar al teléfono de AgoraVoting, o puede llamar y la comunicación se corta. O su teléfono se queda sin cobertura. Pero no pasa nada, si no acaba correctamente la llamada el sistema simplemente no contabilizará ningún voto. Si pasa mucho tiempo desde la primer llamada tendrá que volver a iniciar el proceso llamando al teléfono de votación de Podemos para obtener una nueva clave.

Emisión del voto

Pero supongamos llama y funciona correctamente. 6pip6pip6pip1pip2pip3pip4pip5pip6pip:

– Mesa de votación de AgoraVoting, dígame

– Hola, mi clave es ABCDEF y quiero votar a la elección 35

– Espere… clave y código de elección correcta. ¿Qué quiere votar? ¿X, Y o Z?

– Voto la opción X

– X, correcto

La operadora aplica a esa clave más el valor X unas fórmulas donde usa unos parámetros secretos que generan otra clave (hash) que combina ABCDE, 35 y X. Apunta en un papel esa clave (NSTUVW) y en otra columna el total de votos para la opción X, le responde:

– Vale, voto correcto, su clave de voto es NSTUVW, guárdelo si luego quiere verificarlo, sólo tiene que llamarnos. Gracias por votar.

– Adiós.

Al final del período de votación se juntan personas de Podemos las claves secretas del partido mas otras claves de AgoraVoting y pueden verificar que cada voto que se cuenta es de una persona que llamó al teléfono de Podemos y que estaba en su censo (pero no pueden saber la clave original del votante -la ABCDEF-, sólo el hash de control y el voto). Estas fórmulas son conocidas, públicas y dicen los expertos en criptografía que son buenas para hacer lo que se acaba de hacer.

Además nos dicen que las personas que atienden las llamadas y pueden verificar que se aplican las fórmulas que se dicen que se aplican son de confianza, son majos, desinteresados, de buen rollo, buenos profesionales y que no tienen interés en que gane una opción u otra en las elecciones.

Y todos tan tranquilos, el sistema es perfecto y no entendemos por qué no nos dejamos de tonterías antiguas y empezamos a usar el voto electrónico para todo. ¡Es tán cómodo!

Pero no

Supongo que ya os habéis dado cuenta del problema. Empezó muy mal el proceso: el censo no sirve, no está bien validado, no se verifica que el DNI siquiera exista, ni que concuerde con el nombre, ni que la persona que llama sea la propietaria de ese DNI. Sólo hace falta un número de móvil, inventarse un DNI y calcular la letra. Al final lo único verificable es que los votos pertenecen a número de teléfonos móviles diferentes. Es decir, un SIM un voto. Dado que hubo unos 100.000 votantes pero tenemos más de 40.000.000 de números de móviles diferentes la facilidad de fraude es enorme.

¿Aceptarías una votación de autoridades cuyo censo haya sido elaborado de esta manera? Si decís que sí por favor avisadme, os enviaré el diploma de “Lector de mi blog más ingenuo”.

Aunque el sistema es matemáticamente sofisticado, el sistema de votación no ofrece garantías equiparables al voto y escrutinio “tradicional”. No sabemos quiénes son todas las personas que acceden a los datos, no es público ni se puede controlar lo que hacen desde que empezó la votación hasta que se contabilizaron los datos. No podemos saber si el operador escribió correctamente X y no Y, no sabemos si la misma u otras personas con acceso a esas tablas y formularios se olvidaron de apuntar el voto en los formularios finales, no sabemos si al final cuentan todos los formularios o se les perdió alguno, no sabemos si guardan las claves que le pasó el votante y la usan para re-escribir y cambiar el sentido de un voto.

Aunque todos esos procedimientos y fórmulas sean públicos no sabemos si realmente es el que usan, no hubo un proceso de verificación público constante durante la votación (como sí hay en las votos tradicionales). Al final tenemos que confiar a ciegas en las personas involucradas en que harán exactamente lo que dijeron que harían y sin cometer errores.

Es muy complejo ofrecer las mismas garantías de las votaciones tradicionales con papeletas con el voto electrónico,¿cómo dejamos constancia física de un voto y seguimos asegurando el anonimato? ¿cómo aseguramos que no haya un troyano escondido que nos cambia los valores que se pasan del servidor web a la aplicación? ¿cómo minimizamos los errores de la interfaz? … Y cuando crees solucionado todos los problemas aparecen otros ¿cómo validamos el software que se ejecuta en cada voto? ¿cómo aseguramos que no entró un administrador? ¿como aseguramos que no se usen datos privados robados?

Así casi hasta el infinito, es una cuestión de compromisos.

Obviamente los diferentes grupos dentro de Podemos acordaron usar un sistema como éste (creo que fue una mala decisión) y no parece que el triunfo (80% del ganador) esté en dudas. Quizás sigan pensando que para el tipo de votaciones que hacen es suficiente, pero les hago un llamado de atención: si el resultado hubiese sido ajustado -o en cualquier otra elección importante- volverán locos a la comisión de garantías y hasta a un juez. Y en estos casos, si saben lo que analizan, no les quedará más opciones que anular las votaciones porque no hay ni las mínimas garantías en el censo.

Aún así, eso es problema de Podemos (y sus simpatizantes), yo estoy más preocupado de otros temas (aquí una razón): que se esté haciendo tanto hype del voto electrónico tratándolo de forma muy superficial y sin siquiera mencionar los problemas fundamentales. Como ha pasado en el artículo Si se votó online, ¿cómo sabemos que la votación de Podemos no ha sido manipulada? (sé que se enfadarán, pero eso parece más un publirreportaje que un reportaje-análisis mínimamente serio). Aunque la plataforma AgoraVoting sea espectacular y su gente muy seria, no se puede decir que todo un proceso es seguro cuando se está ignorando adrede su eslabón más débil y que convierte a todo el proceso en igual de débil: el censo.

Sí al voto electrónico, pero con garantías

No estoy queriendo decir que es imposible el voto electrónico, ni que no se pueda hacer (se usa en muchos países) [**], simplemente que es complicado. Cambiamos papeletas, personas y escrutinios completamente públicos por operaciones que se hacen en un ordenador, por un código que no podemos observar como hacemos en una votación tradicional y que al ser todo un sistema tan complejo (mucho más que mesas con urnas y papeletas) tiene muchos frentes de ataques.

Tampoco digo que la plataforma de AgoraVoting sea mala o no fiable. Simplemente es que aunque el código sea perfecto (en teoría) es muy complicado ofrecer garantías similares a las que asumimos como dadas en las elecciones. Por supuesto que no hace falta ofrecer las mismas garantías para todos los tipos de elecciones. Por ejemplo, un partido con un censo de afiliados fiable dará muchas más garantías que la que se tuvieron en Podemos (Podemos debería rehacer todo su censo, o al menos mejorar los controles de alta y revisar los actuales).

Como en seguridad informática, un sistema de voto electrónico es igual de seguro al eslabón más débil de toda la cadena, hay que flipar menos con la tecnología y analizarlo en su totalidad. Muchas veces el problema ni siquiera es técnico, ¿cuántos problemas técnicos solucionaba el DNI-e? Pero nadie los usa, ni los sabe usar.

Segunda parte: Las elecciones de Podemos, voto electrónico, y AgoraVoting.

—-

[*] Disculpad si faltan matices o se me perdió algún detalle importante (los corregiré si me convencen 😉 ). Lo que represento en la analogía es lo que pude averiguar mirando un poco el código (aunque no tenía claro cuál se usaba, no miré el código en los servidores de Podemos, no sé si están accesibles) y los documentos en Github de AgoraVoting. Otras dudas que tenía se las pregunté a Eduardo Robles, me contestó algunas, otras no, y el último email (29 de octubre a las 10:42) ya no me contestó (no me quejo, lo entiendo, estaba de viaje y debe estar muy liado para responder preguntas complicadas a un no iniciado en su código).

[**] Ojo, hay dos sistemas básicos diferentes de voto electrónico. El físico-presencial donde se reemplaza la papeleta y urna por una “urna electrónica” (como en mayoría de los casos de elecciones) con incluso identificación biométrica (como en el caso de muchos en Brasil) y el remoto, que se puede hacer desde casa con cualquier ordenador (como es el comentado). El primero ofrece muchas más garantías, ya que cada “ordenador” y el software que ejecutan está controlado por la justicia electoral (y aún así tienen problemas). En el segundo hay más variables no controladas por la autoridad electoral y hay que usar mecanismos de autentificación muy fiables (basados en certificados criptográficos, son más complejos de usar y de adoptar, véase -otra vez- el DNI-e).