← Todos los artículos

Votación de código abierto: necesidad, no tendencia

El software que cuenta tu voto es un secreto — y los funcionarios que te piden que confíes en él no tienen forma de probar que hace lo que dicen.

El 7 de enero de 2021 — la mañana después de que irrumpieran en el Capitolio — un equipo de análisis forense informático entró en la oficina electoral del Condado de Coffee, Georgia y se fue con una copia de todo. El Sistema de Gestión Electoral. Los dispositivos marcadores de boletas. El software Dominion estatal. Todo, grabado en unidades y sacado por la puerta.

El sistema electoral en el Condado de Coffee había sido tratado como un secreto que valía la pena proteger. Oculta el código, asegura las máquinas, confía en los funcionarios. Esa estrategia se derrumbó en el momento en que alguien con una clave decidió que las reglas no se le aplicaban.

El secreto no es seguridad. Coffee County lo probó. Pero hay una lección más profunda enterrada debajo del titular — y es una que se aplica sin importar si alguien alguna vez irrumpe o no.


Lo del código secreto es que nadie puede verificarlo

Cuando una máquina de votación ejecuta software propietario, solo las personas que pueden leer ese código son el proveedor y, a veces, un pequeño equipo de probadores aprobados por el gobierno que firman acuerdos de confidencialidad. Tú no puedes leerlo. Tu comisionado del condado no puede leerlo. El Secretario de Estado que lo certifica probablemente no puede leerlo.

Lo que todos obtienen en su lugar es una promesa: lo probamos, está bien, confía en nosotros.

Eso no es un modelo de seguridad. Eso es un arreglo comercial.

Los investigadores de Princeton que desarmaron una máquina Diebold AccuVote-TS en 2006 — el mismo tipo de pantalla táctil implementada en millones de votantes estadounidenses — encontraron que el software podría ser subvertido en aproximadamente un minuto con una tarjeta de memoria. No solo alterado: subvertido de una manera que reescribió cada registro y contador para mantenerse consistente internamente, sin dejar rastro detectable. El código incluso podría propagarse a otras máquinas durante las transferencias normales de la noche electoral. Los investigadores publicaron esto porque tenían la máquina. Podían mirar el software. La mayoría de las personas nunca tienen esa oportunidad.

El AccuVote-TS no fue un caso aislado. Fue una ventana — brevemente abierta — a sistemas que normalmente están cerrados.

Y aquí está la pregunta incómoda: si eso es lo que un análisis independiente encontró en una semana, ¿qué podría persistir sin detectarse en sistemas que nunca han sido examinados públicamente? No tenemos forma de saber. Ese es todo el problema.


'Lo auditamos' es una afirmación, no una conclusión

A los funcionarios les gusta decir que las auditorías posteriores a las elecciones confirman los resultados. A veces eso es cierto. A menudo es más complicado.

En el Condado de Antrim, Michigan, en noviembre de 2020, se publicaron resultados no oficiales incorrectos. No marginalmente incorrectos — miles de votos en la columna equivocada. El error fue detectado, pero no por ninguna salvaguarda interna. Fue detectado porque el resultado era absurdamente implausible para un condado que todos sabían se inclinaba fuertemente hacia lo Republicano. Un error más sutil, en un condado más cerrado, podría haber pasado desapercibido.

Luego, en diciembre, los funcionarios realizaron un recuento manual completo de cada boleta presidencial para verificar el recuento de máquinas corregido. El recuento manual volvió con una discrepancia de doce votos del total de máquinas de aproximadamente 15,700 boletas emitidas. Doce votos.

En una carrera desequilibrada, doce votos es un error de redondeo. Pero aquí está el problema: en una carrera genuinamente cerrada — una decidida por cincuenta votos, o veinte, o cinco — un recuento manual que en sí mismo está desviado por una docena de votos no puede resolver nada. No puede. No matemáticamente. El recuento manual de "estándar de oro" lleva su propio error humano irreducible: marcas ambiguas, fatiga a las 2 a.m., llamadas de adjudicación disputadas hechas de manera diferente por diferentes pares de manos.

Cuando el Departamento de Estado de Michigan dijo que la auditoría "afirmó la precisión", eso fue un aseguramiento. No fue prueba. La brecha de doce votos no desaparece porque un funcionario convoque una conferencia de prensa.

El argumento real aquí no es que alguien haya hecho trampa. El argumento es que "el Secretario de Estado dice que está bien" y "un recuento manual lo confirmó" son sustitutos para la verificabilidad independiente — y los sustitutos no son lo real.


Lo que el código abierto realmente significa para un sistema de votación

Las personas oyen "votación de código abierto" e imaginan hackers siendo invitados a romper la elección. Esa es la imagen equivocada.

Código abierto significa que el código fuente del software — cada instrucción que la máquina ejecuta — se publica donde cualquiera puede leerlo. Investigadores de seguridad. Académicos. Tu sobrino que tomó dos clases de programación. Otros proveedores. Periodistas. Grupos de vigilancia independientes. Cualquiera.

Esto importa por una razón que suena casi demasiado simple: no puedes ocultar una puerta trasera en código que todos pueden leer. O mejor dicho, puedes intentarlo, pero la probabilidad de detección colapsa a medida que crece el número de lectores independientes.

La investigación moderna de votación criptográfica va más allá. El código abierto es la base, pero la estructura construida encima es lo que convierte "puedes leerlo" en "puedes probarlo."

Así es como encajan las piezas:

Código fuente completamente público significa que cualquiera puede inspeccionar qué se supone que debe hacer el software. Ese es el primer paso, pero solo el primer paso — porque el código que compilas y el código que realmente corre en una máquina pueden ser cosas diferentes.

Compilaciones reproducibles cierran esa brecha. Si el proceso de compilación de un sistema de votación es reproducible, significa que cualquiera que tome el código fuente publicado y siga los pasos publicados llegará a un binario — el archivo ejecutable actual de máquina — que es idéntico bit por bit al binario que corre en máquinas certificadas. Puedes verificar el hash. Si coincide, la máquina está ejecutando lo que dice que está ejecutando. Si no coincide, lo sabes inmediatamente, sin confiar en la palabra de nadie.

Una capa de integridad criptográfica va aún más lejos. Técnicas como votación verificable de extremo a extremo (E2E-V) permiten que cada votante reciba un recibo que les permite — y a cualquier otra persona — confirmar que su boleta se emitió según lo previsto, se registró como se emitió y se contó como se registró, sin revelar por quién votaron. Las matemáticas son públicas. La verificación es pública. El resultado no requiere confiar en ningún funcionario, ningún proveedor o ningún auditor.

Juntos, estos tres niveles mueven la pregunta de "¿confías en el proveedor?" a "¿puedes verificar las matemáticas tú mismo?"

Ese cambio lo es todo.


Por qué Coffee County prueba que el secreto es la estrategia incorrecta

Volvamos al Condado de Coffee por un momento, porque la lección no es exactamente lo que la mayoría de la cobertura sugirió.

La violación fue tratada principalmente como una historia de seguridad de custodia: personas no autorizadas accedieron a un sistema que no se suponía que debían acceder. Cierto. Pero debajo de esa historia hay un supuesto estructural que hizo que la violación fuera tan consecuente en primer lugar.

El modelo de seguridad del sistema dependía de que el software permaneciera en secreto.

Si el software hubiera sido de código abierto, "obtuvieron una copia del código" sería significativamente menos alarmante — porque cualquiera ya podría tener una copia del código. La integridad de la elección no reposería en mantener el código oculto. Reposería en las matemáticas: compromisos criptográficos, registros de auditoría públicos, registros verificables que cualquiera pudiera verificar y nadie pudiera alterar silenciosamente.

Lo que las personas que entraron a esa oficina se llevaron era propietario. Su valor como premio dependía completamente de ser un secreto. Un sistema construido para transparencia y prueba de manipulación no les habría entregado casi tanto.

La reconstrucción de Lawfare del episodio de Coffee County vale la pena leer en su totalidad. El reportaje del Atlanta Journal-Constitution agrega detalles adicionales sobre qué se copió y cómo se propagó. Juntos ilustran un principio que los profesionales de seguridad han entendido durante décadas: los sistemas que dependen de la oscuridad son frágiles exactamente en las formas que más importan.


El problema de las compilaciones reproducibles no es teórico

"Compilaciones reproducibles" suena como un problema administrativo de desarrollo de software. No lo es.

Aquí está el problema concreto que resuelve. Imagina que un proveedor de máquinas de votación publica su código fuente. Periodistas e investigadores lo leen. Se ve bien. El laboratorio de certificación lo prueba. Aprobado. El Secretario de Estado lo certifica.

Ahora imagina que cuando el proveedor compila ese código en el binario que realmente corre en máquinas, hace un pequeño cambio. No en el código fuente publicado — en el paso de compilación. Una sola instrucción diferente. El binario en cada máquina implementada difiere del binario que cualquiera auditó, de una manera que ninguna verificación posterior de papel detectará, de una manera que una auditoría de riesgo limitado no detectará, de una manera que incluso un recuento manual completo no detectará a menos que el registro de papel en sí se haya comprometido.

No puedes detectar esto sin compilaciones reproducibles. Con ellas, puedes: compila la fuente tú mismo, compara el hash, y sabes. Instantáneamente. Sin confiar en nadie.

Esto no es un escenario hipotético construido para efecto retórico. El ataque a la cadena de suministro contra SolarWinds — que no tenía nada que ver con elecciones pero todo con el principio — mostró que actores sofisticados pueden modificar software en la etapa de compilación, dejando código fuente que se ve limpio mientras implementan binarios que no lo son. La misma superficie de ataque existe en software de votación dondequiera que las compilaciones no sean independientemente reproducibles.

Ningún sistema de votación estadounidense actualmente implementado a escala ofrece compilaciones reproducibles independientes que cualquier miembro del público pueda verificar. Esa brecha es real. Es medible. Y no está cerrada por nadie que te diga que el sistema fue probado.

Mira cómo esta brecha se compara entre jurisdicciones en todo el mundo →


Qué significa realmente 'verificable' — y qué aún no significa

Vale la pena ser preciso aquí, porque "verificable" se usa de manera suelta.

Una auditoría de riesgo limitado, como la que Colorado pionera en 2017 o Georgia implementó a escala estatal en 2020, es una mejora genuina sobre verificaciones puntuales de porcentaje fijo. Examinar manualmente boletas de papel da confianza estadística de que el recuento de máquinas es correcto — si el papel es confiable y si el muestreo es verdaderamente aleatorio.

Esos son "ifs" reales. Pero incluso una RLA perfecta solo verifica que el papel y las máquinas estuvieron de acuerdo. No te dice si el software que ejecutó esas máquinas era lo que afirmaba ser. No verifica el paso de compilación. No permite que un votante confirme que su boleta específica fue incluida y contada. Confirma el recuento contra el papel; no hace que el software en sí sea verificable.

Un sistema de código abierto, compilación reproducible, verificable de extremo a extremo no reemplaza auditorías. Le da a las auditorías algo sólido en lo que pararse.

La jerarquía se ve así:

  • Software cerrado y propietario: confía completamente en el proveedor
  • Solo código abierto: confía en que nadie insertó algo malicioso en la compilación
  • Código abierto + compilaciones reproducibles: confía en que el código publicado y el binario en ejecución coinciden, independientemente verificable
  • Código abierto + compilaciones reproducibles + verificabilidad E2E: confía en las matemáticas, no en las personas

Cada capa elimina una cosa más en la que tienes que tener fe. El objetivo no es la perfección. El objetivo es hacer que la pregunta "¿funcionó esto correctamente?" sea respondible por cualquiera con una computadora y tiempo para verificar — no solo por funcionarios con interés en decir que sí.


La verdad para compartir

Aquí está la línea que vale la pena capturar:

"Cada vez que un funcionario electoral dice 'confía en nosotros, lo auditamos', te están pidiendo que confíes en los auditores. El punto de la votación verificable es que no deberías tener que hacerlo."

Los casos en esta pieza — el código que no podía ser verificado, los resultados que eran incorrectos hasta que eran obvios, el software copiado fuera de una oficina del condado en un disco duro — no son argumentos de que las elecciones estén amañadas. Son argumentos de que el modelo actual pide un nivel de confianza que la arquitectura no puede justificar.

Los registros de papel ayudan. Las auditorías ayudan. Pero no son suficientes si el software que genera los resultados es una caja negra, si los binarios que corren en máquinas no pueden ser independientemente verificados contra código fuente público, y si los votantes no tienen forma matemática de confirmar que su boleta fue contada.

¿Qué haría esto verificable por cualquiera? Tres cosas, ahora sin resolver en la mayoría de jurisdicciones estadounidenses:

  1. Código fuente público completo para cada sistema de votación — no código-disponible-bajo-NDA, sino genuinamente público
  2. Compilaciones reproducibles con hashes publicados que cualquiera pueda verificar
  3. Recibos criptográficos de extremo a extremo para que votantes individuales puedan auditar la inclusión de su propia boleta

Hasta que esas tres cosas existan, "la auditoría lo confirmó" es una declaración sobre qué encontraron los funcionarios cuando miraron. No es una declaración que alguien fuera de la sala pueda verificar independientemente.

Eso no es una teoría de conspiración. Es un requisito de ingeniería.

Lee la versión de 2 minutos de estas brechas → Mira qué sistemas y jurisdicciones tienen brechas de código secreto hoy → Explora fallas de compilación reproducible en el atlas de brechas →


Fuentes