Una 'prueba' matemática de que los votos se contaron correctamente — con una puerta trasera secreta integrada
Suiza publicó el código fuente de su sistema de voto electrónico para que cualquiera pudiera verificarlo — y en cuestión de semanas, criptógrafos encontraron una puerta trasera que permitía a un iniciado producir una prueba matemáticamente válida mientras silenciosamente cambiaba los votos.
Es primavera de 2019, y en algún lugar de las oficinas de Swiss Post, se está tomando una decisión que parece transparencia radical. La autoridad postal federal, trabajando con su proveedor español Scytl, está a punto de publicar el código fuente completo del sistema de voto por internet de Suiza. No un resumen. No un folleto. El código real — cada línea — abierto para que el mundo lo lea, lo ataque y lo juzgue.
Se suponía que este era el momento que resolvería el debate.
Suiza había estado discutiendo sobre el voto por internet durante años. Los críticos decían que no podías confiar en una caja negra. Los funcionarios decían que el sistema estaba verificado, auditado, certificado. Entonces Swiss Post hizo algo que casi ninguna autoridad electoral en el mundo se había atrevido a hacer: abrió la caja. Ven y mira, dijo. No tenemos nada que ocultar.
Tres investigadores independientes — Sarah Jamie Lewis, Olivier Pereira y Vanessa Teague — tomaron a Swiss Post en su palabra. Miraron.
Lo que encontraron debería haber sido imposible.
Una prueba que no probaba nada
Para entender lo que Lewis, Pereira y Teague descubrieron, necesitas entender qué afirmaba hacer el sistema.
El voto por internet tiene un problema fundamental: cuando un votante envía una papeleta por internet, ¿cómo puede alguien — incluyendo el votante — confirmar que fue contada correctamente, y no fue intercambiada por una papeleta diferente por un servidor en el medio? La respuesta que los criptógrafos desarrollaron se llama mixnet, o red de mezcla. Los votos llegan cifrados. El sistema los baraja — como cortar una baraja — y luego, crucialmente, publica una prueba matemática de que el barajado fue honesto: que movió los votos pero no cambió ninguno de ellos.
Esta prueba es la afirmación central de verificabilidad del sistema. Cualquiera con el software correcto puede verificarla. Si la prueba pasa, los votos están intactos. Si la prueba falla, sabes que algo está mal.
Excepto que había una puerta trasera integrada en la prueba misma.
Lewis, Pereira y Teague documentaron su hallazgo en un artículo que titularon — como un guiño a Magritte — Ceci n'est pas une preuve. "Esta no es una prueba." Encontraron que la prueba de barajado en el sistema Swiss Post–Scytl usaba un esquema de compromiso con puerta trasera: una estructura matemática que funciona honestamente en condiciones normales, pero que, si conoces un conjunto de valores ocultos (la puerta trasera), puedes explotar. Una autoridad que posea esos valores podría generar un transcripto de prueba de barajado que pasaría cada verificación — mientras que en realidad hubiera alterado votos.
Lee eso de nuevo lentamente. La prueba podría pasar. Las matemáticas se verificarían. Cada software de auditor diría: verificado. Y los votos estarían equivocados.
Esta no era una objeción teórica. Era una puerta trasera funcional, incrustada dentro del mismo mecanismo que el sistema ofrecía como su garantía de integridad. Lo que se suponía que debías verificar para confirmar el recuento era lo que podría ser falsificado.
Lo que "verificable" realmente requiere
Swiss Post y Scytl reconocieron el hallazgo. Las autoridades suizas suspendieron el sistema de voto electrónico en espera de remediación. Ninguna elección vinculante se había realizado en el sistema defectuoso, así que ningún voto fue realmente alterado. Pero el episodio llega al corazón de una pregunta que cada afirmación de tecnología electoral debe responder:
¿Verificable para quién?
Un sistema puede entregarte una prueba matemática y seguir mintiéndote — si la estructura de la prueba misma contiene una palanca secreta que solo el operador del sistema sabe cómo accionar. El sistema de Swiss Post no solo afirmaba ser seguro. Afirmaba ofrecer verificabilidad universal: una garantía de que cualquiera, armado con datos publicados, podría confirmar que el voto fue contado correctamente sin confiar en ninguna autoridad única. Esa afirmación era falsa. La verificación era real solo si la autoridad jugaba limpio. Que es precisamente lo que la verificabilidad se supone que debe proteger.
La Corte Constitucional Federal Alemana entendió esta lógica una década antes, en su sentencia de 2009 que prohibía computadoras de votación que el público no pudiera verificar independientemente. La corte sostuvo que los pasos esenciales de la votación y de la determinación del resultado deben ser examinables por el ciudadano de manera confiable y sin ningún conocimiento especializado. No estaba pidiendo perfección. Estaba pidiendo algo que un no experto pudiera seguir. Una prueba criptográfica que solo un investigador capacitado puede analizar ya es un paso separado de ese estándar — y una prueba que un esquema con puerta trasera produce es peor que ninguna prueba en absoluto, porque activamente engaña.
El caso de Swiss Post muestra el problema más profundo. Un sistema de caja negra que dice "confía en nosotros" obviamente está pidiendo fe. Pero un sistema de código publicado que dice "verifica las matemáticas" e integra una puerta trasera en las matemáticas está pidiendo la misma fe mientras lo disfraza como evidencia. La apariencia de verificabilidad es más peligrosa que la admisión de opacidad, porque cierra la pregunta.
Cómo el código abierto encontró el defecto que la certificación perdió
Aquí está lo que vale la pena recordar: el defecto fue encontrado porque el código fue publicado.
Swiss Post no tenía que abrir su fuente. La mayoría de proveedores no lo hacen. El aparato de certificación que existe en la mayoría de democracias — en Estados Unidos, las pautas voluntarias de sistemas de votación de la Comisión de Asistencia Electoral; en otras jurisdicciones, laboratorios de prueba nacionales — implica que expertos examinen los sistemas bajo condiciones controladas, a menudo bajo acuerdos de confidencialidad, con sus hallazgos resumidos pero no siempre publicados. Cuando un examinador dice "lo probamos y pasó", el público está confiando en el examinador. El razonamiento está oculto.
Cuando Swiss Post publicó el código, hizo posible un tipo diferente de examen: adversarial, independiente, sin restricciones. Lewis, Pereira y Teague no fueron pagados por Swiss Post. No tenían acuerdo de confidencialidad. Publicaron su análisis completo, con citas y ecuaciones, para que cualquiera pudiera leer y disputar. Eso no es un proceso de certificación. Eso es uno científico — y encontró lo que el proceso de certificación no había encontrado.
La brecha entre esos dos procesos vale la pena nombrar con precisión. La certificación prueba si un sistema se comporta correctamente bajo condiciones esperadas. La revisión criptográfica independiente prueba si las garantías afirmadas del sistema se mantienen bajo condiciones adversariales — incluyendo el adversario siendo el operador del sistema. Esa segunda pregunta es la que más importa, y es la que solo la publicación abierta permite.
Compara el ensayo de voto por internet de DC de 2010, donde un equipo de la Universidad de Michigan ganó control casi completo de un piloto de retorno de papeleta pública dentro de aproximadamente 48 horas — precisamente porque la jurisdicción abrió el sistema a pruebas públicas antes de que se emitieran votos reales. Las vulnerabilidades fueron encontradas porque se permitió a alguien atacar. O considera el sistema iVote de Nueva Gales del Sur en 2015, donde investigadores encontraron serios defectos en una elección en vivo que ya había recopilado alrededor de 280.000 votos — defectos que una revisión de seguridad preelectoral había aprobado. En cada caso, el hallazgo vino de fuera del proceso oficial, no de él.
El patrón se mantiene: la inspección abierta encuentra lo que la certificación cerrada se pierde. No siempre. No automáticamente. Pero consistentemente lo suficiente como para que la carga de la prueba tenga que cambiar. Cuando una autoridad dice "lo certificamos", la pregunta a hacer es: certificado por quién, contra qué modelo de amenaza, con qué acceso, y con los hallazgos publicados ¿dónde?
La puerta trasera como un problema de categoría
El defecto específico en el sistema de Swiss Post — una puerta trasera en una prueba criptográfica — no es un error de implementación en el sentido ordinario. No es un desbordamiento de búfer o un servidor mal configurado. Esos son errores. Esto fue una opción de diseño, o como mínimo una falla de diseño, en la estructura matemática en la que la garantía de verificabilidad del sistema se apoyaba.
Esa distinción importa porque te dice algo sobre los límites de las pruebas. Puedes sondear un sistema de software en busca de errores arbitrarios indefinidamente y aún así perder un esquema de compromiso con puerta trasera, porque el esquema funciona correctamente desde afuera — produce salidas de la forma correcta, pasa verificaciones de la forma correcta. El defecto es invisible a menos que examines la especificación matemática y notes que el esquema de compromiso usado tiene una propiedad que los diseñadores o no conocían o no revelaron.
Por eso el argumento de verificabilidad criptográfica en elecciones no puede parar en "publicamos el código". Tiene que extenderse a: la estructura matemática de la prueba misma debe ser independientemente auditable por personas que no sean el proveedor o la autoridad, y que estén motivadas a encontrar problemas en lugar de certificarlos.
Lewis, Pereira y Teague estaban motivados a encontrar problemas. Encontraron uno. Eso no es un indictamiento de las intenciones de Swiss Post — la compañía reconoció el hallazgo y se movió para repararlo. Es un argumento para el proceso que produjo el descubrimiento.
Lo que "la auditoría lo confirmó" deja abierto
Cuando el sistema de Swiss Post fue suspendido, los funcionarios pudieron decir: el proceso funcionó. Se encontró un defecto; se detuvo el despliegue; la remediación seguiría. Y en un sentido estrecho, eso es verdad. Pero vale la pena preguntarse qué hubiera pasado si el código no hubiera sido publicado.
La respuesta es: la misma prueba hubiera corrido, los mismos transcriptos hubieran sido producidos, y cualquiera que los verificara hubiera visto: verificado. La certificación hubiera pasado. Los funcionarios hubieran dicho: el sistema fue auditado. El público no habría tenido forma de saber que la prueba no probaba nada.
Una afirmación de verificabilidad que no puedes verificar independientemente es indistinguible de ninguna verificabilidad en absoluto. Esto no es una crítica única al voto electrónico. Se aplica a cada afirmación de corrección en un sistema electoral — conteos de papeletas incluidos. El recuento manual de Georgia en 2020 de aproximadamente cinco millones de papeletas confirmó el resultado tabulado por máquina dentro de aproximadamente una décima de un por ciento, lo que es impresionante. Pero dependía de la existencia de papeletas de papel duraderas que pudieran ser examinadas independientemente, no de confiar en las máquinas que las contaron la primera vez. El papel fue la verificación independiente. La prueba que realmente pudiste inspeccionar.
El caso de Swiss Post es el equivalente criptográfico: el código, una vez publicado, era el papel. Y el papel mostró que la prueba era una ficción.
Lo que lo haría genuinamente verificable
El episodio de Swiss Post no termina el caso de elecciones verificables criptográficamente. Define lo que ese caso realmente requiere.
Una prueba de barajado es el mecanismo correcto — una garantía matemática de que ningún voto fue alterado en tránsito, verificable por cualquiera con el software para verificarla. Pero para que esa garantía sea real en lugar de representada, varias condiciones tienen que cumplirse simultáneamente:
Primero, el esquema criptográfico no debe contener valores de puerta trasera. Este es un requisito matemático: el esquema de compromiso usado en una prueba de barajado debe ser vinculante y ocultador sin una puerta trasera secreta. Hay esquemas bien entendidos que satisfacen esto sin puertas traseras; la elección de cuál usar no es un detalle de proveedor sino una pregunta de diseño público.
Segundo, la prueba debe ser independientemente verificable por partes que no tengan interés en el resultado. No solo un laboratorio de certificación. Múltiples criptógrafos independientes, con la especificación completa e implementación, publicando sus hallazgos para crítica pública.
Tercero, la cadena de extremo a extremo desde votante hasta recuento final debe ser auditable sin confiar en ningún punto único en la cadena. Un votante que emita una papeleta por internet debe poder confirmar que su papeleta cifrada fue incluida en la mezcla; cualquier observador debe poder confirmar que la mezcla fue honesta; y el descifrado final debe ser reproducible independientemente. Ninguno de estos pasos debe depender de la cooperación o buena fe de la autoridad.
Cuarto — y esto es lo más difícil — el proceso de verificación mismo debe ser lo suficientemente accesible como para que se cumpla el estándar de la Corte Constitucional Alemana: ciudadanos ordinarios, no solo criptógrafos expertos, deben poder confirmar los pasos esenciales. Eso puede requerir herramientas de software, interfaces y documentación que van mucho más allá de lo que cualquier sistema actual proporciona.
Ninguna de estas condiciones fueron completamente cumplidas por el sistema de Swiss Post en 2019. Algunas de ellas no son cumplidas por ningún sistema electoral actualmente desplegado en el mundo. Esa es la posición honesta. El caso de Swiss Post no es una historia sobre un defecto que fue encontrado y reparado y así todo está bien ahora. Es una historia sobre qué sucede cuando publicas lo suficiente para que forasteros encuentren el problema — y qué tomaría publicar lo suficiente para que el hallazgo pudiera suceder antes del despliegue, sistemáticamente, en lugar de como un afortunado accidente de investigación independiente.
El villano es la prueba que no puedes verificar
La puerta trasera específica en la prueba de barajado de un proveedor suizo no es el punto. El punto es la categoría de afirmación: comprobado matemáticamente correcto, ofrecido en una forma que cierra la inspección externa. Cada sistema electoral hace afirmaciones. Los proveedores reclaman certificación. Los funcionarios reclaman auditoría. Los criptógrafos reclaman verificabilidad. Cada una de esas afirmaciones es solo tan fuerte como el mecanismo que permite a un forastero independiente confirmarla o refutarla.
Cuando ese mecanismo es una caja negra, la afirmación descansa en la confianza en quienquiera que construyó la caja. Cuando es código publicado, la afirmación al menos puede ser escrutinizada — y a veces refutada. Cuando es una prueba criptográfica publicada usando un esquema con una puerta trasera, es una representación de verificabilidad: la apariencia de la cosa sin la sustancia.
El villano en la historia de Swiss Post no es Swiss Post, y no es Scytl. Es opacidad disfrazada de transparencia — una prueba que parece verificable y no lo es. La solución no es renunciar a la verificabilidad criptográfica sino exigir la versión real de ella: esquemas sin puertas traseras, revisión sin acuerdos de confidencialidad, pruebas que investigadores independientes pueden verificar y, cuando sea necesario, refutar.
Eso es lo que TrustVoting está construyendo: un sistema cuya corrección nadie tiene que aceptar por fe, porque la evidencia es publicada en una forma que cualquiera puede inspeccionar. No "lo auditamos". No "las matemáticas se verificaron". Aquí están las matemáticas. Verifícalas tú mismo.
La versión compartible: Suiza publicó su código de voto electrónico para probar que era confiable. Investigadores encontraron una puerta trasera que permitía a un iniciado falsificar una prueba válida mientras cambiaba votos. La prueba pasó. Los votos hubieran estado equivocados. "Verificado" solo significa algo si se permite a alguien independiente hacer la verificación — y se le permite decir que no.
Lo que aún no es verificable: si algún otro sistema de voto electrónico criptográfico actualmente desplegado usa un esquema de compromiso igualmente problemático, y si los procesos de certificación que esos sistemas aprobaron incluyeron revisión criptográfica independiente adversarial con hallazgos publicados. Hasta que esa revisión exista y sus resultados sean públicos, "el sistema fue certificado" sigue siendo una afirmación, no una prueba.
Lo que lo haría verificable: publicación completa de especificaciones criptográficas y código fuente, revisión multi-parte independiente sin NDAs, y hallazgos publicados — incluyendo los negativos — antes de que ninguna elección vinculante sea realizada.
Ver cuán común es esta brecha de verificación en todo el mundo →
Lee la versión de 2 minutos de este problema →
Explora casos documentados de resultados electorales no verificables →
Fuentes
- Lewis, Pereira, Teague — Ceci n'est pas une preuve (trapdoor commitments in the Scytl–SwissPost Internet voting system), 2019
- Bundesverfassungsgericht, Judgment of 3 March 2009, 2 BvC 3/07 and 2 BvC 4/07 (English translation)
- Wolchok, Wustrow, Halderman, Prasad — Attacking the Washington, D.C. Internet Voting System, Financial Cryptography 2012
- Halderman, Teague — The New South Wales iVote System: Security Failures and Verification Flaws in a Live Online Election, E-Vote-ID 2015 (arXiv:1504.05646)
- Georgia Public Broadcasting — Risk-Limiting Audit Confirms Biden Won Georgia
- Bundesverfassungsgericht, Press Release No. 19/2009 (English)