Hace unas semanas estuvimos presentes en el evento de «Hackathon» de ONPE sobre la seguridad del Voto Electrónico Presencial (VEP). Aunque se explicaron algunos conceptos del software y hardware que se usará en las elecciones de Octubre, salimos con algunas preguntas que nos parece son importantes para todos, como ciudadanos antes que especialistas.
¿Cómo funciona el Voto Electrónico de ONPE?
Durante la capacitación para la hackathon, el personal técnico de ONPE explicó a grandes razgos la arquitectura y el diseño del sistema del VEP. De manera resumida, el VEP consiste en que los electores seleccionen su preferencia electoral, por ejemplo alcalde para su distrito, en una pantalla en lugar de en una cédula de papel, como toda la vida.
El «pitch» de venta de ONPE es que esta solución va a hacer más rápido y simple el voto, va a hacer más rápidos los resultados, y es «cien por ciento segura».
De cara al votante, el sistema del VEP está dividido en dos componentes: la estación de identificación y la estación de votación. Ambas estaciones consisten en un tablet Samsung Galaxy que usa un sistema Android personalizado («ONPEDroid»), y una aplicación visual que cumple las funciones específicas de cada estación.
El proceso está pensado para que el votante llegue a la mesa de sufragio, se identifique en la primera estación, que es manejada por los miembros de mesa, reciba una tarjeta que le permite votar en la estación de votación, y luego devuelve la tarjeta a los miembros de mesa, cerrando el proceso.
La comunicación entre estas dos estaciones es mediante tarjetas con chip, smartcards, tales como las de débito o crédito que usamos diariamente. Ninguno de los tablets está conectado a internet.
##FOTO
Aunque ya escapa a la intención de este artículo, también hay otros dos sistemas que son de particular interés desde el punto de vista de la seguridad: el sistema de transmisión de resultados, y el sistema de despliegue del software a los tablets.
El sistema de transmisión de datos es un punto obvio de ataque, lo único que sabemos de este aspecto es que se usan certificados digitales para la comunicación, y que la información entregada por cada estación es recibida cifrada, pero no sabemos si es transmitida a la central de ONPE cifrada o no.
Por otro lado el despliegue del software a los tablets, es decir la instalación del software de ONPE en cada tablet antes de ser distribuidos, también es un punto crítico de potencial ataque por parte de un actor malicioso o infiltrado en ONPE. De esto tampoco logramos recoger detalles.
Nuestra primera preocupación es que justamente estos procesos, altamente técnicos, son difíciles de dimensionar por parte de personal o ciudadanos que no son especialistas. Para un observador casual, transmitir los resultados por internet podría sonar infalible, pero como cualquier entusiasta del software sabe, eso es mas bien una gran superficie de ataque si no es manejada con mucho cuidado por los detalles.
ONPEDroid
El sistema base de los tablets para el VEP es Android, específicamente «ONPEDroid», una versión personalizada por ONPE. Según lo que explicaron, ONPEDroid está basado en Android KitKat 4.4 (cuyo soporte terminó en 2014), con los sistemas de red, wifi, bluetooth, navegación y notificación desactivados.
Además, ONPEDroid tiene un servicio de «cripto sistema» desarrollado internamente por ONPE (!!), un sistema GNU/Linux virtualizado para poder imprimir desde los tablets (!!!), y las aplicaciones de votación o identificación. El sistema además viene configurado con llaves de cifrado, que se corresponden entre la estación de votación y la estación de identificación, no está claro cómo se usan estas llaves o dónde se almacenan.
FOTO
A pesar de las repetidas menciones de nombres y tipos de algoritmos y seguridad basada en llaves, no se explicó exactamente para qué o cómo son parte del sistema, especialmente en el contexto del «cripto sistema». Tampoco se dio ningún detalle sobre cómo se generan estas claves, dónde se administran, o cómo se comprueba luego si los tablets estaban tal como salieron del centro de despliegue de software.
El código de ONPE
La primera pregunta en todo este enredo es justamente qué código ha desarrollado ONPE y cómo exactamente funciona. Es de especial interés entender cómo están garantizando la integridad de los datos y su cifrado. El personal de ONPE mencionó que hay hashes de comprobación a lo largo del sistema pero sin ver el código es imposible saber qué tan fiable es el proceso de creación de los hashes, y de validación de los mismos.
Un posible problema, por ejemplo, sería que los hashes se corresponda al número de serie de la máquina, o al nombre de archivo («votos.xml», por ejemplo). O quizá el código que comprueba si el hash es válido da por asumido que el archivo ya fue verificado en otra forma previamente, o solo verifica el hash del archivo, pero no la coherencia interna del contenido.
Igualmente nos gustaría haber tenido oportunidad de conocer cómo es el formato XML en el que se almacenan los votos en la estación de votación, qué se incluye en las tarjetas SD de backup en las estaciones de votación, cómo se transmiten los datos a la central de acopio, si es que hay opciones de desarrollo que por error podrían quedarse activadas, si es que las claves de cifrado dependen de algún factor externo, exactamente cómo funciona el sistema de despliegue del software a los tablets en la central de ONPE, etc.
La complejidad y cantidad de partes involucradas en el sistema no es pequeña, y en todas esas interacciones es donde existe el potencial para errores, o problemas de seguridad. No es necesario imaginar un escenario de catástrofe en el que un actor malicioso logra vulnerar la seguridad del VEP, bastaría con que los tablets fallen o comiencen a emitir errores a mitad de jornada, cosa que una cédula de papel no hace.
Detalles dentro de ONPEDroid
Dentro de lo que pudimos conocer del sistema tomamos nota de algunos factores particulares que pueden presentar los problemas más graves. Sin conocer el código, no podemos más que especular, pero nos parece razonable que estos sean puntos de análisis.
El almacenamiento de los votos
Según explicó el personal de ONPE, las estaciones de votación vienen precargadas con un archivo XML que contiene una cantidad total y fija de líneas donde se almacenan los votos emitidos. Estas líneas, conocidas como nodos o registros, vienen ya cargadas y se usan de forma aleatoria para evitar que posteriormente se pueda identificar a un elector según el momento en que votó.
Es decir, en vez de registrar un voto tras otro, de forma secuencial (por ejemplo, del voto #000 al #230), el archivo XML ya viene cargado con el total de registros necesarios (en este ejemplo 230), y cuando se registra un voto se selecciona de manera aleatoria dónde almacenarlo. De esta manera el primer votante podría ser almacenado en el registro #129, el siguiente votante podría ser registrado como el #012, y así sucesivamente.
El backup en las tarjetas de memoria SD
La estación de votación además tiene tarjetas de memoria SD que sirven como backup en caso de que el tablet fallase. El backup busca proteger los votos emitidos, para que siempre se pueda contabilizar lo votado, así haya algún error durante el proceso.
Nuestras dudas respecto a esa tarjeta SD es exactamente qué contienen y cómo se valida la confiabilidad e integridad de las mismas. Si bien a lo largo del sistema de ONPE se repite e insiste en el concepto de cifrado y hasheado de todos los elementos, ese tipo de medidas depende siempre de qué tan bien escrito y considerado está el código que valida las medidas.
Un ejemplo sería que para vender licor nos pidiesen nuestro DNI, pero el encargado de verificar nuestro DNI hubiese perdido sus lentes. Sí, hay una comprobación de la medida de seguridad (el DNI), pero dicha comprobación no es óptima.
Herramientas de desarrollo, sistemas hechos en casa
Por último nos queda una fuerte duda sobre cómo y qué es lo que ONPE ha desarrollado o añadido a Android. Durante las presentaciones se mencionó el famoso «cripto sistema», y una serie de cambios para deshabilitar opciones de comunicación en los tablets. Todo esto suena muy bien, pero el nivel de complejidad de modificar e implementar un sistema operativo entero es muy alto. Solamente en la configuración del núcleo del sistema, el software que comunica el hardware con las aplicaciones, ya hay miles de opciones que requieren de entendimiento especializado para modificarse.
Más allá del código
Además de los potenciales problemas técnicos, creemos que existen variables sociales que pueden ser fácilmente explotadas por atacantes o actores maliciosos.
Velocidad vs auditoría
Un primer problema en la promesa del VEP es que llegada la hora de cierre, bastará con unos minutos de interactuar con los tablets y le mesa de votación tendrá impreso el acta de cierre, lista para ser firmada. Sin embargo, creemos que se instala un incentivo perverso para que miembros de mesa y personeros simplemente firmen la mesa y se vayan tan pronto como puedan a sus casas.
Imaginemos un escenario en el que un personero con experiencia técnica detecta algo extraño en el cierre de la mesa. Quizá un tablet se tuvo que reiniciar, o alguna de las tarjetas con chip se perdió, o se dio por inoperativa. Si este personero exige un conteo manual, las otras cuatro o cinco personas de la mesa van a querer matarlo. A diferencia de una elección con papel, en el escenario del VEP, el conteo manual es «un último recurso». Se da por asumido que la máquina no puede equivocarse, y no puede ser engañada. Por supuesto, todos sabemos que no es el caso.
La identificación manual
Otro problema social consiste en que en el sistema del VEP, la identificación es mediante el número de DNI (leído con un lector de código de barras, o ingresado manualmente). El presidente o un miembro de mesa recibe el DNI del votante, lo busca en el sistema, y si a su criterio la foto coincide con la persona, la persona es autorizada para votar por ese número de DNI.
A primera vista, parece el proceso de siempre, pero ahora existe una diferencia crucial: no es necesario firmar ni dejar la huella digital. Aunque esto parezca conveniente para evitar tener que quitarse la tinta de los dedos, resulta en realidad en un problema de confiabilidad.
Si anteriormente era necesario falsificar firmas y huellas para generar un voto fraudulento, en el sistema del VEP bastaría con la complicidad de los miembros de la mesa, o algún fallo de software que permita registrar los votos antes o después de la votación oficial. Recordemos que la única comprobación de identidad es la coincidencia visual de foto y persona, y eso es totalmente según criterio del miembro de mesa que opera el tablet de identificación.
Un sistema especializado
Finalmente, otro grave problema social es que el conocimiento requerido para entender, identificar, y auditar problemas en el proceso del VEP es altamente especializado. No cualquier persona puede notar una manipulación técnica de los tablets o el software en ellos. Menos aún, desde fuera, la ciudadanía puede auditar las etapas del proceso.
Imaginemos un caso en el que una mesa de sufragio está compuesta por personas que tienen fobia a la tecnología. Todos conocemos gente de todas las edades que tienen profundo miedo a las computadoras para cualquier cosa más complicada que mandar correos o entrar a redes sociales. Pensemos en qué tan complicado sería engañarlas o confundirlas para manipular las estaciones del VEP frente a ellos.
Esta crítica no es exclusiva de nuestra experiencia, en 2009 la Corte Constitucional Federal de Alemania determinó que el voto electrónico era inconstitucional puesto que el público no era capaz de escrutar de manera significativa el proceso, justamente porque al volverse electrónico muchas etapas se convertían en opacas, o absolutamente incomprensibles para el público no especialista.
Seguridad y hackathon
La pregunta sobre seguridad empieza en 5:23.
En una entrevista reciente con Canal N, Frank Guzmán, gerente de informática de ONPE, fue cuestionado sobre cómo es que el sistema del VEP estaba siendo garantizado y analizado por potenciales problemas de seguridad, dado que muchos especialistas habían manifestado sus dudas. La respuesta de Guzmán fue que la seguridad estaría justamente dada por el evento de la Hackathon.
Como dijimos recientemente, un evento de tipo Hackathon, y con claros cortes publicitarios, no es suficiente para garantizar la seguridad de un sistema tan complejo como este, menos aún un sistema que tendrá a cargo algo tan importante como la elección de autoridades populares.
Creemos que es responsabilidad de ONPE respaldar sus afirmaciones de seguridad, simpleza y confiabilidad. No es responsabilidad de estudiantes o entusiastas absorber el costo de consultorías y auditorías de seguridad que ONPE debería haber encargado de manera pública y transparente.
Se trata de nuestros votos
Es muy importante para nosotros dejar claro que nuestra exposición de estas dudas y preocupaciones no es un ataque al equipo de ONPE, ni tampoco una denuncia de malos manejos o malas intenciones. Creemos que el equipo de ONPE tiene las mejores intenciones en el desarrollo de su sistema, pero como especialistas también sabemos que desarrollar soluciones de software de esta complejidad, sin opiniones externas, es muy difícil, y es aún peor si el tema que se está atendiendo es tan crítico como la elección de nuestras autoridades. Nos parece que con el afán de mantener en secreto el sistema, se están perdiendo valiosas oportunidades de mejora.
Esperamos que ONPE flexibilice su actitud hacia su solución y tome medidas para hacerla realmente confiable, sin tener que confiar en su palabra, o en el entusiasmo de un grupo de estudiantes desvelados durante un fin de semana.
Ex Director de Tecnología (2017-2019)
Comunicador Social de la Universidad de Lima. Antes colaborador en GNOME, Debian, WebKit.
Sr. para cuando escribirá algo sobre la parte técnica, entiendo Ud conoce algo de ello, tengo entendido que claro, como afirma los equipos no están conectados por internet. y uno intuye que todo es un programa que se intercomunica. En mi distrito se inauguro el VE para las anteriores elecciones presidenciales.
Ademas existe un Equipo de identificación donde entiendo mas allá que se escanee el dni del elector , éste equipo debe tener una base de datos con los votantes de la mesa.
existen Usbs para la configuracion del eci que «empatan» a la cabina de votacion, esto se hace antes que operen los miembros de mesa.
Quizás sea motivo para que Ud explique algo sobre como o que funcion tiene una tarjeta inteligente, ademas de las Usb que se utilizan para conectar y «pasar» información todo entre las tablets de Equipos de identiicacion y Equipo de votación, sobre todo para aquellos que no somos nativos digitales y somos de la 3° edad. Espero la 2° parte a la brevedad.
hable sobre esto, Si no todo esto no tiene mucho sentido.
yo tambien tengo inquietudes.
saludos.
Natty
En el voto electronico no hay alternativa de voto viciado,no te dan copia del vaucher,no se si alli se registra x quien vote,el holograma es de pesima calidad de duracion en el tiempo a menos que enmique dni luego del acto de sufragaretc,etc sirvanse contestar a mis interrogantes pues la votacion esta muy proxima Gracias
Vote y no me pusieron el sticker, se olvidaron, el solo haber votado es suficiente, tendré problemas por no tener el sticker?
No me pusieron el sticker al ir a votar, tendré problemas?
A mi tampoco me pusieron el holograma, pero realice el voto