sábado, julio 04, 2015

Cómo votar múltiples veces con el sistema Vot.AR este domingo en Buenos Aires (Argentina)

Este domingo en Argentina van a tener lugar las elecciones a Jefe de Gobierno de la ciudad autónoma de Buenos Aires, en las que se van a utilizar un sistema de votación electrónico denominado Vot.AR. Ayer, un grupo de investigadores de seguridad no solo publicaba los fallos que tiene el sistema, sino una demostración de cómo es posible utilizar papeletas manipuladas para conseguir engañar al sistema y votar varias veces con una sola boleta de votación. Este es el trabajo, y si alguien comenzara a utilizarlo, podría acabar como la controversia que hubo en EEUU con las primeras elecciones gubernamentales en las que ganó Georg Bush (hijo) en el año 2004.

Figura 1: Ataque a sistema de voto electrónico Vot.Ar (BUE)
permite sumar múltiples votos con una sola boleta

Introducción

El sistema de voto electrónico vot.ar escogido para las elecciones locales de la ciudad de Buenos Aires, inspeccionado por la Facultad de CIencias Exactas y Naturales de la UBA a solicitud del Tribunal Superior de Justicia de la ciudad, permite alterar los resultados del escrutinio en cada mesa.

El domingo 5 de julio del 2015 se realiza por primera vez en la Ciudad de Buenos Aires una elección empleando un sistema de voto electrónico. Son muchas las polémicas que genera tanto a nivel legal como técnico en el ámbito de la seguridad informática.

Durante semanas previas a las elecciones, un grupo de entusiastas de la seguridad informática intentamos ofrecer nuestra ayuda por diferentes medios teniendo innumerables reuniones con responsables y políticos, todas ellas en vano.

Nuestro objetivo era la realización de un informe sobre los aspectos físicos, lógicos y procedimentales de seguridad que fuera totalmente independiente y por sobre todo, no partidario. Simplemente desde la posición de un ciudadano más. A falta de colaboración, nuestro último recurso fue la recolección de información pública en internet y la utilización para realizar pruebas de los puestos públicos de capacitación.

Este documento demuestra uno de los errores de seguridad más graves encontrados, que permite que cualquier elector malintencionado deposite una boleta en la urna con un chip grabado para alterar el resultado del escrutinio provisorio.

Descripción e impacto del Ataque Multivoto

El presidente de mesa entrega a cada votante inscrito en el padrón una boleta. Esta contiene un tag de identificación por radiofrecuencia (RFID), compuesto de un circuito integrado (“chip”) y una antena. Mediante las máquinas de Vot.Ar, el elector elige los candidatos de su preferencia, y esta selección se graba en el chip y se imprime en la boleta, que es luego depositada en una urna tradicional.

Al finalizar los comicios, el presidente de mesa abre la urna y comienza el conteo de los votos empleando la misma máquina vot.ar mediante otra función del programa. Para efectuar el conteo:
- Apoya la boleta en la máquina -> se contabiliza un voto.
- Apoya la próxima boleta -> se contabiliza otro voto.
Y así hasta finalizar el recuento. El software de la máquina de voto (PC corriendo sistema operativo Ubuntu 14.04) no permite restar votos al recuento sin volver a cero.

Durante nuestra investigación descubrimos que este proceso no está correctamente implementado, y a través de un error de programación es posible grabar el chip mediante un simple smartphone de forma que contenga múltiples votos a un mismo candidato. Cuando el presidente apoye la boleta en la máquina, ocurrirá lo siguiente:
- Una boleta con chip -> se contabilizan múltiples votos.

Figura 2: Demostración del votación múltiple con una sola boleta

Detalles técnicos

El pseudo-código del programa que lee y cuenta los votos es:

class Selection(object):
...
def from_string(TAGcontent):
datatag = parse(TAGcontent)
...
candidates = []for e in datatag.vote:
party_code = e["party"]category_code = e["category"]candidate = CandidateClass.get(category_code, party_code)candidates.append(candidate)

Primero se leen los datos del chip de la boleta y se almacenan en la variable datatag. Después se interpreta la selección y se agrega a la lista candidatos.

El código NUNCA verifica si hay más de un voto para el mismo candidato por elector, y tampoco limita un número máximo de votos por boleta.

La función parse() falla también en verificar los datos de forma alguna.

Luego, la clase "Count()" suma los votos. Este es el pseudo-código:

class Count(object):

...
def add_selection(self, selection, RFIDserial=None):
if not RFIDserial or not self.serial_exists(RFIDserial):
for candidate in selection.candidates:
self.results[candidate.party_code, candidate.category_code] += 1
if RFIDserial:
self._RFIDserials.append(RFIDserial)
...
else:
raise RepeatedSerial()
Aquí la lista que contiene los múltiples votos es agregada a la variable 'results'. Nuevamente, no hay mecanismo alguno que detecte votos repetidos.

Falla de Recuento

Este problema podría haberse subsanado en la fase de recuento de votos asegurándose de que la suma de votos coincida con la cantidad de boletas. Como puede verse en la siguiente fotografía de la impresión, esta verificación no se realiza:

Figura 3: La máquina emite acta con un total de votos a Jefe de Gobierno mayor al total general

Prueba de concepto

Hemos intentado hacer llegar nuestra preocupación sobre la fragilidad de este sistema y alertar sobre los riesgos a diferentes autoridades sin éxito. Fracasada esta opción, nuestra responsabilidad como ciudadanos y como practicantes de la seguridad informática nos obliga a publicar esta información para que autoridades de mesa y fiscales estén alerta durante el recuento.

El error detectado no es único, sino un ejemplo de un problema lógico en una de las funciones principales del sistema. Su constatación hace evidente que los programas no fueron auditados conforme a las reglas del arte, en particular para una aplicación que es crítica en la ejecución de un proceso fundamental de la democracia.

La información que permite reproducir este “ataque de boleta multivoto” ya se ha hecho pública por diversos medios. Como medida paliativa, no publicaremos código que facilite la creación de boletas fraudulentas hasta después de transcurrida la elección.

Estamos a disposición de las autoridades, los partidos y/o periodistas que estén interesados en comprobar la vulnerabilidad que se describe en este documento.

Solución Paliativa

La solución de fondo de este problema es no emplear sistemas de emisión del sufragio por medios informáticos. Estos agregan nuevas posibilidades de ataques y fraudes sin solucionar ninguno de los problemas característicos de nuestro sistema electoral que no pueda ser resuelto con la boleta única de papel.

El sistema fue impuesto de forma apresurada, sin educación apropiada a los ciudadanos ni las autoridades y sin una auditoría de código exhaustiva, como claramente deja en evidencia este ejemplo de error de programación. Por otra parte, la experiencia internacional muestra que todo sistema de voto electrónico, más temprano que tarde, ha resultado vulnerable a alguna forma de ataque.

Como paliativo, recomendamos enfáticamente a los presidentes de mesa y a los fiscales realizar la contabilidad boleta por boleta haciendo énfasis en la impresión por sobre la información del chip. Es indispensable asegurarse de que la cantidad de boletas coincide exactamente con los votos contados por la máquina.

Con carácter más general, pero no menor importancia, recomendamos no confiar en los resultados generados por la máquina vot.ar, ya que aunque no hubiera sido manipulada maliciosamente, la aparición de este grueso error ante una inspección limitada en tiempo y medios permite inferir una programación deficiente y el probable surgimiento de otros errores críticos.

Aconsejamos desarrollar un procedimiento manual en paralelo, ejecutado por las autoridades de mesa y los fiscales del mismo modo que históricamente se ha ejecutado para las elecciones convencionales.


LLEVAR CALCULADORA PARA CONTROLAR EL ACTA

En la medida de nuestras posibilidades desarrollaremos una aplicación móvil para detectar el ataque en las boletas electrónicas.

Recomendación

Durante nuestra investigación, notamos que la forma y el estilo de la programación del sistema no parece realizada bajo los estrictos estándares que requieren aplicaciones de infraestructura crítica.

Durante nuestra investigación no pudimos determinar si este y otros errores de seguridad encontrados son intencionales o se deben a la torpeza de los programadores y falta de adecuados procesos de control de calidad del software.

Desde el campo de la seguridad de los sistemas de información. evaluamos que los riesgos que introduce el voto electrónico en términos de errores accidentales o ataques maliciosos a gran escala y fáciles de encubrir superan con holgura los beneficios reales o percibidos de la automatización de un paso crítico del sistema electoral.

Se ha generalizado la creencia que todo sistema social puede ser migrado a un sistema de computadoras, y que esto implica automáticamente una mejora en términos de agilidad y economía, sin ninguna contrapartida. Existen ciertas aplicaciones, con requerimientos críticos de seguridad informática, privacidad y usabilidad, para los cuales la tecnología actual aún no puede dar respuesta. Estos sistemas son complejos y a mayor complejidad, mayor es el riesgo de falla.

La comunidad académica y la industria aún no saben cómo hacer máquinas y sistemas seguros de este tipo. Por esta razón, la buena intención de explorar la migración tecnológica del sistema de votación debe estar englobada en un proyecto que incluya múltiples iteraciones de análisis y retroalimentación con los diversos actores de la comunidad. Ningún avance técnico debe debilitar la democracia.

Adhieren:
Alfredo Ortega
Ivan Ariel Barrera Oro
Enrique Chaparro
Fernando Russ
Francisco Amato
Javier Smaldone
Juliano Rizzo
Nicolas Waisman
Sergio Demian Lerner


Y gente de la Internet..

21 comentarios:

Ivan de la Jara dijo...

voto publico online y problema resuelto... La privacidad del voto trae mas cosas buenas que malas. En una sociedad en la que los derechos humanos ya no entran en discursion, no tiene cabida alguna la privacidad del voto. El cual nunca fue privado porque las huellas dactilares las tiene... Técnicamente ya se puede saber por las opiniones y enlaces que promueve cada persona por las redes...

Anónimo dijo...

Quizás no sea un bug sino una "feature secreta". La empresa que ganó la licitación es privada y cobraría una gran cantidad por el servicio. Tranquilamente también podría ofrecer el conocimiento para explotar esa "feature" por un bonus adicional al mejor postor y facturar mucho mas ...

Diego PG dijo...

lo más sano es publicar el exploit ya, para invalidar el sistema. si ya se sabe que hay brecha, es estúpido seguir adelante a no ser que haya pasta de por medio...

Anónimo dijo...

DIFUSION: Después de encontrar una vulnerabilidad grave en el sistema de voto electrónico a #MSA estan allanando mi casa, los de delitos informaticos.

https://twitter.com/_joac/status/617152001504378880

Anónimo dijo...

Por fin se hace un estudio mas profundo del tema. Soy de la ciudad de Salta (Arg) donde ya se implementó el voto electrónico y también fui técnico del mismo.
Lamentablemente en las auditorías que se realizaron en el sistema no hubo la gente idonea que demuestre lo que ésta publicación muestra.
En la última elección en ésta provincia se implementó el conteo paralelo para evitar lo que se demuestra aqui.
La cuidad de Bs As implementó el sistema muy rápido y supongo que tendrán los mismos problemas que tuvimos aqui: la propia ignorancia de la gente para utilizarlo, sumando al mal funcionamiento de algunos equipos.
Aquí los políticos se enamoraron del sistema y supongo que también es un buen negocio para algunos. Esta historia continuará..
Saludos

Anónimo dijo...

El voto electrónico es la forma más cómoda para poder manipular los datos y/o poder identificar a los votantes y sus votaciones.

Es un sistema que en España se ha planteado en algunas urnas y me da un miedo terrible.

Por supuesto que hay auditorías y unos sistemas de seguridad que, teóricamente, aseguran la limpieza del proceso.

También, teóricamente, la seguridad de los jefes de estado de los países del G8 están totalmente seguras y se lo podrían preguntar al Hollande y antiguos presidentes franceses o a Merkel.

Como dice el refrán, en casa de herrero cuchillo de palo. Yo que soy ingeniero de esto, opino que por seguridad, en un tema tan sensible lo mejor es seguir con el voto de papel y asegurar el anonimato de la votación.

Sí, el papel también es manipulable, pero es más difícil. Si cuentas una forma de manipular el papel todo el mundo va a entenderla. Si explicas que el timestamp de una fila de la BD (qué es el TS?), que hay una injección o que se puede saltar la protección de lo que sea, el 95% de la población no entiende lo que hablas y finalmente los que han hecho la manipulación y los fanáticos del partido favorecido encontrarán argumentos para contar mentiras y sembrar una incertidumbre que provocará que la votación tenga validez.

Anónimo dijo...

Hola chema. Soy argentino, la empresa que se dedica al recuento de votos y que implementa este sistema lo hace desde siempre con el gobierno actual, empresa que por mi conocimiento solo está en Venezuela y argentina casualidad no?, en la provincia de córdoba ya paso un supuesto fraude y nunca se aclaró ya que no se pudo analizar el soft según dijo el juez.
Si te fijas en los porcentajes que difunden no se andan con chiquitas ,54% en argentina y creo que algo del 80% en Venezuela, en Perú no pudieron entrar ya que los antecedentes que tienen no son muy buenos, con respecto a la publicación, hackers argentinos vienen advirtiendo hace rato del problema pero todos hacen oídos sordos.
Gracias por difundir este problema, Un abrazo Chema.

Anónimo dijo...

Que reverenda pelotudez, esta página y toda la información mentirosa que publican. No existe la chance de realizar lo que se dice porque el sistema no funciona como aquí dice que funciona.

Anónimo dijo...

por favor, rogaría a los que han escrito el artículo que no confundan voto elctrónico con chapuzas electrónicas

Vot.ar pueda ser basura propietaria de código cerrado, según se desprende del articulo, pero no implica que a día de hoy no se pueda aplicar el voto electrónico y por internet

existen proyectos como AgoraVoting que marcan las pautas de cómo se debe articular un proceso de voto electrónico, es de código abierto y permite la validación del voto

existen varias técnicas que bien combinadas permiten llevar a cabo un sistema fuerte de voto electrónico, nada de "cajas negras", código público y auditable por terceros y lo que es mejor, que terceros puedan validar los datos sin depender de recursos agenos...

Anónimo dijo...

@anónimos de 5:46 y 7:46

Nadie duda que haciendo las cosas bien el voto electrónico debería funcionar correctamente y no debería haber fraude. En teoría, entre la práctica y la teoría no deberían haber diferencias, en la práctica las hay.

Los problemas son que se pueden manipular los datos de una forma tan limpia y casi sin dejar rastro. Encima es tan difícil explicar a la gente cómo se produce esa manipulación por lo que se entraría en una guerra técnico/política que haría que a nadie le quedara claro si se ha manipulado un resultado o no y se terminaría aceptando. Teneis que recordar que casi nadie es técnico y tiene la capacidad de entender cómo funcionan unas máquinas tan complicadas.

El caso es que muchas veces, ya ante casos evidentes y que todo el mundo comprende, te niegan la mayor y se sale con la suya mucho corrupto, cuanto menos si la demostración no la entiende nadie y es un sistema muy complejo.


Con un papel y un simple recuento, dada su sencillez, es difícil que haya manipulación porque está a vista de cualquiera, todo el mundo comprende su funcionamiento y todo el mundo sirve de testigo y vigilante. Si eso lo trasladamos a un sistema informático esta premisa no se cumple, por eso no debería haber voto electrónico nunca en ningún sitio.

Un tipo dijo...

"Nadie duda que haciendo las cosas bien el voto electrónico debería funcionar correctamente y no debería haber fraude. En teoría, entre la práctica y la teoría no deberían haber diferencias, en la práctica las hay."

Esto es una llana mentira. El problema del voto electrónico es que no hay forma de verificar un voto que no comprometa el voto secreto. Fuera de esto estoy totalmente de acuerdo con el comentario anterior.

Estúpidamente, el voto papel garantiza el secreto del voto y su robustez (es decir, su poca tolerancia a fraudes, ya que si tu partido tiene fiscales en una mesa es imposible que te hagan fraude). En cambio, el voto electrónico puede garantizar una u otra cosa, pero no las dos.

La única forma de garantizar las dos con voto electrónico sería algo así como que cada persona tenga una clave privada con la cual pueda firmar su voto y luego probar que su voto fue manipulado, pero esto también tiene sus falencias, la persona podría presentar una clave que no es suya, etc.

No veo forma en que el voto electrónico sea seguro y al mismo tiempo garantize el secreto del voto, que es algo fundamental para la democracia, a pesar de que airadamente algunos comentarios dejan intuír que ya no importa... evidentemente no estudiaron historia y cómo se manipulaban las elecciones con el voto cantado. Increíble que piensen que eso no pueda volver a pasar. Cuánta candidez.

Un tipo dijo...

"Los problemas son que se pueden manipular los datos de una forma tan limpia y casi sin dejar rastro. Encima es tan difícil explicar a la gente cómo se produce esa manipulación por lo que se entraría en una guerra técnico/política que haría que a nadie le quedara claro si se ha manipulado un resultado o no y se terminaría aceptando."

Exactamente. Y se pone en peligro toda la democracia por qué exactamente... el voto electrónico ni siquiera es mas barato, sólo es mas rápido. Es decir, por ganar unas horas para saber cuál va a ser el resultado de una elección. No tiene sentido.

Anónimo dijo...

Sobre el comentario que dijo el Anónimo de 4/7/15 2:05 p.m.

No tengo idea de que esa empresa que hace esas elecciones allá es "la misma empresa" que hace las elecciones en Venezuela. Eso suena a campaña sucia política.

Aquí la "empresa" que hace las elecciones es el Organismo Electoral llamado CNE.
Y para más colmo el proceso es TOTALMENTE diferente a como está descrito en éste artículo.

En Venezuela no hay papeletas con chips y cosas raras.
En Venezuela el tarjetón es electrónico, como si fuese un teclado donde cada candidato es una letra y Votar es Enter.
Al momento que se vota, el voto se almacena cifrado en una máquina (ni siquiera dos votos por el mismo candidato se cifran igual), ADEMÁS se imprime un ticket con la opción elegida.
Dicho ticket es recogido por el votante, el cuál puede comprobar que la máquina marcó lo que él deseaba y el votante lo deposita en una urna (al estilo manual de toda la vida).
Al cerrar la mesa, la máquina envía la información al centro e imprime el acta (imprime varias de hecho, para que los testigos tengan una copia) reflejando los votos que tiene almacenado.
En éste momento los miembros de las mesas pasan a contabilizar los votos/tickets depositados y compararlos con los votos del acta impresa y validan que ambos coincidan. Osea, hay 100% auditoría al momento, mientras que el Centro de Contabilización tiene resultados instantáneos.

Para más seguridad, en los días siguientes se audita DE NUEVO el 51% de las cajas elegidas al azar. Incluso, ha pasado que el sector político antidemocrático desconoce los resultados cuando pierde y entre tantas exigencias y chantajes se ha pasado ha auditar el 100%.

Para aún más seguridad, además, los resultados de cada Estado, cada Ciudad, cada Municipio, cada Centro, cada Mesa, son publicados por Internet y cualquiera con mucho tiempo libre puede comprobar que todo sume y/o coincida con las actas que tienen los testigos emitidas el día del cierre.

En la muy sucia política al sistema electoral venezolano lo han tratado de desprestigiar de mil maneras y nunca han podido probar ninguna estafa aún con todos los recursos y apoyo nacional y extranjero que poseen los grupos antidemocráticos.
Quizás no sea perfecto, pero bastante fiable debe ser.

No tengo idea de cómo será en Argentina, alguien arriba dijo que tampoco es como dicen. No me sorprendería que todo sea mentira y manipulación porque así es la política, sobretodo de parte de los sectores radicales y antidemocráticos. "Miente que algo queda" y en política mentir deja mucho ya que hay gente que quiere creer cosas.

Y sobre quienes añoran el voto "manual", no tienen idea de lo que piden. En Venezuela tuvimos escuela de cómo hacer fraude con el voto manual, desde repartición de votos, hasta quema de cajas. Lo mejor que pudo pasar fue la llegada del voto electrónico.

Y sobre quienes añoran el "voto público" igualmente no saben lo que piden. Es MUY importante que el voto siga siendo secreto. Es una amenaza muy grande para la democracia que se pierda eso.

Anónimo dijo...

El voto es contacto cívico. La impersonalización y la maquinaria nos aleja del sentido social que el acto democrático encierra. Todo sistema electrónico es hackeable. NO AL VOTO ELECTRONICO.

Anónimo dijo...

Chema: Estás despedido.

Anónimo dijo...

No llego a entender porque esa moda del voto eléctrónico, cuando es de lo más inseguro. Y, ¿Que es lo que se supone que ahorra? ¿Unas horas en un recuento?

Daniel Eduardo Alonso dijo...

No estoy de acuerdo con la boleta electrónica, pero no por este caso que es teórico pero imposible en la práctica. Fui presidente de mesa y soy profesor de ingeniería de software en la universidad (no lo digo como argumento ad verecundiam sino para situar que hablo desde la experiencia real). Cada boleta, la abrí, la leí en voz alta, la mostre a los fiscales y al pasar el chip verificabamos que el contador (que está todo el momento a la vista, tipo planilla excel) sumara uno en el candidato anunciado y uno en el contador de boletas contabilizadas (que está grande la pie de la pantalla). Ninguna programación que yo conozca, genera alucinaciones auditivas y/o visuales al presidente y fiscales para que éste presunto fraude puede ocurrir.
Al finalizar el conteo, dije a viva voz los resultados finales (que supongo que cada fiscal registro para si) e imprimimos la boleta final de conteo por 8 copias. Cada una fue firmada por mi y los fiscales (firma, documento, mombre y partido). Una copia se metió en la urna con las boletas y se fajó, otra copia se entrega al correo para que la transmita (como se hacía con las planillas manuales) y el resto se la llevaron los fiscales para su partido.
El procedimiento que seguí es el que está establecido en el manual, si un presidente de mesa no lo hace, si los fiscales no lo exijen, si el correo recibe unos datos y transmite otros, este sistema no funciona, el anterior tampoco y ningún otro que se les ocurra.

Anónimo dijo...

Hace 30 años que me especializo en seguridad informatica, he escuchado burradas de todo tipo como que Kevin Mitnick tenia prohibido usar un telefono de linea en la carcel por temor a que lanzara misiles nucleares. Pero sinceramente no esperaba que tu Chema cayeras en esta gansada pero entraste como el mejor y compraste pescado podrido.
Antes de publicar esto por trasendidos ¿Te preguntaste como obtuvieron el software? ¿Te preguntaste si el software con el que se hicieron las pruebas es identico? ¿Te preguntaste como obtuvieron el equipo? Te cuento que esta actuando la justicia porque aparentemente el equipo lo hurtaron. ¿Investigaste los antecedentes de la personas que te pasaron la informacion? ¿Sabes si no trabajan para algun partido politico? ¿Sabes que estos personajes se dedican a difamar personas por twitter y que ya acumulan varias causas por calumnias e injurias? ¿Sabes que en otra eleccion donde se uso el mismo mecanismo de votacion denunciaron fraude para quedar bien con cierto partido politico y despues se demostro que los burros hicieron mal las cuentas? http://www.nuevodiariodesalta.com.ar/noticias/18980/smaldone-no-sabe-lo-que-son-los-votos-nulos.html

La boleta electronica es un excelente sistema de votacion en Argentina, antes votaban los muertos, se compraban votos, votaban extrajeros, etc. Te pido Chema que como persona pensante que eres antes de sumarte a esta payasada te hagas varias preguntas y piensas porque en Argentina ciertos partidos no quieren un sistema de votacion transparente.

Anónimo dijo...

¿Y mi comentario fue borrado?.

Por lo que veo en los últimos comentarios, mis sospechas finales van siendo ciertas. Todo parece tratarse de politiquería de algún sector interesado en manchar al árbitro y a un sistema más fiable que otros históricamente fraudulentos (voto manual).

Martín V dijo...

Gracias Chema por ayudar a dar difusión a esto que es un problema gravísimo.

En Argentina ya está arraigado culturalmente defender lo indefendible por razones políticas, pero también se presta mucha atención a lo que se dice de nosotros "desde afuera", y el hecho de que un especialista en seguridad informática de tu categoría se haga eco de lo que muchos han estado intentando hacer llegar a oídos de todo el mundo (mayormente en vano), representa una ayuda increíble.

Gracias denuevo

Martín.

Anónimo dijo...

¿ Creen que todo esto es verdad?

Dime de que presumes y te diré quien eres.........

Saludos....

blackhat-black

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares