En las próximas elecciones municipales de octubre, ONPE implementará el Voto Electrónico Presencial, reemplazando la tradicional cédula de papel con tablets. En esta segunda entrega de nuestra serie sobre el VEP, hablaremos de los problemas técnicos que hemos detectado.
Durante este año, y como preámbulo a las elecciones municipales de octubre, ONPE ha desplegado recursos de comunicación y publicidad para reforzar una idea clave: que el voto electrónico es seguro y a prueba de «masivos ataques cybernéticos» (ver campaña de la Hackathon). Sin embargo, en nuestra investigación no hemos encontrado suficiente evidencia para apoyar esa idea.
El escenario de seguridad para el VEP
Recordemos que el elemento que se busca proteger en el VEP es la elección por voto popular. Proteger el voto popular en realidad signica varias cosas, por ejemplo: la integridad de los votos, el secreto de los votos, la supervisión ciudadana del proceso, etc.
Como vimos en la primera parte de esta serie, ONPE ha tomado algunas medidas para proteger algunos aspectos del concepto. Sin embargo consideramos que hay aspectos técnicos que deben tomarse en cuenta y ponerse en análisis para hablar de verdadera seguridad y confianza en el sistema del VEP.
En nuestro análisis nos hemos preocupado principalmente por escenarios en los que un atacante, o un error del sistema, puedan afectar el resultado aparente de la votación. Es decir, que por un atacante, o por un error, una autoridad sea elegida incorrectamente.
Los posibles atacantes del VEP
La sospecha inmediata sería un actor político que busca lograr, o impedir, la elección de una autoridad. Este actor político no necesita ser especialista en computación, o tener un equipo de hackers en su agrupación política. Lo que necesita es que alguien le ofrezca el servicio de manipulación del VEP.
Los posibles «vendedores» de manipulación son diversos: desde grupos de especialistas en seguridad que pueden ser contratados, tal como uno contrataría una agencia de comunicación política, hasta agentes internos de ONPE, o de alguno de sus proveedores, que encuentren oportunidades de intervención que generen poca o nula evidencia.
A continuación detallaremos algunos potenciales problemas técnicos, y los escenarios asociados, que consideramos como los más llamativos. Queremos repetir, como en nuestra anterior publicación, que nuestra opinión y análisis no son una condena o denuncia a ONPE, si no mas bien un llamado e invitación a adoptar una actitud más crítica sobre el sistema en general.
El sistema de ONPE
El VEP puede dividirse en tres grandes etapas: implementación de materiales (estaciones de identificación y votación), día de la votación, y reporte de resultados. En estas tres etapas hay amenazas diferentes que pueden hacerse efectivas.
La implementación
En la etapa de implementación, según la información dada por ONPE en la Hackathon, se generan las imágenes de software, se instalan en los tablets, y se arman los módulos. No tenemos detalles operativos de esta etapa, excepto por los pasos que se siguen. Consideramos varias interrogantes en esta etapa: ¿Cómo exactamente se carga el software a los tablets? ¿Es un proceso supervisado, automático? ¿Quién supervisa el proceso, o qué controles automáticos están incluidos en él?
Sabemos a través de ONPE que el código de los tablets está acumulado en un solo repositorio pero no tenemos detalles de prácticas operativas o de desarrollo respecto a si este repositorio tiene controles de acceso determinados, o si la generación de imágenes para los tablets sigue algún proceso de «release engineering» específico. Esto es importante porque permite mantener un control más preciso y auditable de exactamente qué código y qué configuración acaba en cada tablet. Una vulneración de este proceso, especialmente si no es auditable o supervisado, podría comprometer todos los tablets, y por tanto, todo el proceso de votación.
El sistema de los tablets: ONPEDroid
El sistema operativo que usan los tablets Samsung Galaxy de ONPE es una versión modificada de Android KitKat 4.4. Esta versión de Android, bautlizada «ONPEDroid» por ONPE, tiene los sistemas de red (wifi, bluetooth), notificaciones y navegación desactivados, según ONPE. Solamente en este punto es importante mencionar que KitKat dejó de tener soporte de actualizaciones y seguridad en 2014.
ONPEDroid tiene además algunas modificaciones y adiciones, la más visible es el software gráfico para votar, y para identificarse, la interface principal de los tablets. Pero además, según contó ONPE en sus presentaciones técnicas, se ha escrito un «cripto sistema» a cargo de diferentes tareas de cifrado en el sistema. No se detalló exactamente qué tareas, o cómo, ni por qué el código de un «cripto sistema» debía ser escrito por ONPE directamente.
imágenes de slides ONPE
ONPEDroid además tiene un «cripto sistema» desarrollado internamente por ONPE. Este «cripto sistema» se encarga de «tareas de cifrado» pero no está claro exactamente qué tareas o cómo las ejecuta. ONPE no compartió detalles ni acceso al código de cómo exactamente funciona ONPEDroid. Según ONPE, sus modificaciones y adiciones a Android han sido en C y en Java.
Además, para resolver el problema de la impresión de las actas de resultados en las impresoras HP de inyección de tinta de cada módulo, ONPEDroid tiene un sistema GNU/Linux virtualizado dentro de Android (leen bien) exclusivamente para poder imprimir. No sabemos cómo está configurado ese sistema GNU/Linux, ni cómo se comunica con el resto del sistema Android. Dado que ese sistema de impresión se encarga de imprimir las actas que son firmadas por los miembros de mesa y los personeros, es un punto vulnerable a considerar.
Por otro lado, las aplicaciones de identificación y votación son las únicas que aparentemente se ejecutan en el tablet una vez se inicia, pero no sabemos exactamente qué tareas ejecutan, o cómo están hechas.
Por último, cada imagen de ONPEDroid es cargada a su respectivo tablet con una llave de cifrado e identificación única. No está claro dónde se almacena esta llave o cómo se usa, tampoco está claro cuándo o cómo se genera. A pesar que el personal de ONPE insistió en mencionar diferentes técnicas y algoritmos de cifrado, no se dieron detalles específicos de cómo se generan o usan las llaves o comprobaciones que dijeron tener a lo largo del sistema.
El registro de votos
ONPE explicó las medidas que tomaron para mantener el secreto del voto y al mismo tiempo resolver la necesidad de almacenar los votos que se van emitiendo en la cabina de votación durante la jornada. En concreto decidieron precargar las cabinas de votación con archivos XML que incluyen un número predeterminado de nodos, ese número es el total de electores de una mesa. Entonces, por ejemplo, una mesa con 400 electores tendrá una cabina de votación que viene precargada con un XML que ya tiene 400 nodos. Al momento de registrar un voto, el sistema elige aleatoriamente uno de los nodos y guarda ahí el voto.
Inmediatamente surgen algunas dudas sobre esta solución, por ejemplo: ¿Qué código comprueba que esos nodos no se modifiquen excepto en el momento del registro? ¿Cómo se garantiza que un nodo no sea escrito dos veces? ¿Cómo se contabilizan los nodos? ¿Se usan identificadores únicos en los nodos? ¿Es posible tener varios nodos con un mismo identificador único?
No pudimos resolver estas dudas durante nuestra investigación ni los eventos de ONPE debido a que ellos consideran el formato del código XML, y el código que lo lee, como un tema secreto y reservado. Nosotros no estamos de acuerdo con esa visión. Como cualquier desarrollador de software sabe, leer e interpretar datos que son generados por el usuario es un campo minado de errores y omisiones. El potencial para errores, conteos erróneos, o intervenciones maliciosas, es alto.
Adicionalmente, las cabinas de votación cuentan con memorias micro SD para guardar un respaldo de la cabina. No sabemos qué contiene esa tarjeta, o cómo se garantiza que no sea manipulada en la planta de ensamblaje, en la instalación de las mesas, o en su uso como copia de seguridad si fuese necesario (situación que un atacante podría forzar).
La transmisión de resultados
La parte menos clara de todo el sistema consiste en la transmisión de datos hacia la central de ONPE. Los datos son acopiados en los centros de votación por el personal técnico de ONPE y luego transmitidos a la central de ONPE. Esta transmisión es por internet, pero no conocemos ningún detalle de cómo se hace, cómo se asegura, o cómo se comprueba.
Por supuesto, la transmisión de datos de resultados es un punto ideal para intervenir la comunicación y crear alteraciones o perturbaciones al proceso. Los errores en seguridad en el Estado, en operaciones aparentemente muy sencillas, no nos son ajenos. Aunque no tenemos suficientes indicios para especular posibles ataques, sí queremos resaltar la vulnerabilidad del proceso. Especialmente por sus problemas de auditabilidad.
La auditoría
Por último, nos preocupa que (#)como dijimos en el artículo anterior, la dificultad de articular objeciones, curiosidad, o duda, sobre este sistema lleven a una falta de supervisión ciudadana, partidaria, e incluso institucional.
En los años anteriores, ONPE ha progresivamente aprovechado en eliminarse la obligación de ejecutar auditorías al proceso de voto electrónico. (links a los anteriores chongos, confirmar con miguel/carlos)
Nos parece que no es un tema para pasar por alto, y que mas bien ONPE debería ser la primera en resaltar y promover una auditoría de las mesas de votación electrónica, permanente y no opcional o esporádica.
Nuestros votos cuentan
Finalmente, queremos repetir que nuestro interés es asegurar que el aspecto tecnológico, y el afán por demostrar progreso a través de usar tecnología, no acaben siendo un elemento en contra de nuestros derechos. Consideramos saludable que el Estado busque innovar con soluciones tecnológicas, pero nos parece que la tecnología no debe ser tomada como un elemento que está más allá de juicio, o un elemento que siempre es bueno y más seguro.
Nuestra invitación es nuevamente a que ONPE comparta públicamente evidencia más concreta de la seguridad del sistema que usará para recoger nuestros votos en las siguientes elecciones municipales.
Si tienes dudas o información sobre el voto electrónico, puedes compartirla con nosotros escribiendo a diego@hiperderecho.org. Si prefieres contactarnos de manera más reservada, te recordamos tomar las precauciones necesarias como usar un correo creado solo para ese propósito, o hacerlo desde un lugar no relacionado a tu trabajo o identidad. (???)
Ex Director de Tecnología (2017-2019)
Comunicador Social de la Universidad de Lima. Antes colaborador en GNOME, Debian, WebKit.