Análisis de Seguridad del Sistema de Votación por Internet de Estonia
Gracias. En particular, gracias por estar aquí tan temprano a la mañana.
Yo sé que, para el estándar del CCC, es el amanecer.
Soy Alex Halderman, soy profesor de Ciencias de la Computación
en la Universidad de Michigan en los EE.UU., y el trabajo sobre el que
les voy a estar contando hoy es principalmente un trabajo colaborativo con otros.
Tengo que agradecer, en particular, a mis estudiantes Drew Springall,
Travis Finkenauer, Zakir Durumeric y nuestros colaboradores
Jason Kitcat, Harri Hursti y Maggie MacAlpine.
Este trabajo no sería posible sin ellos. De hecho, tres de mis estudiantes,
que han trabajado en investigación de sistemas de voto electrónico (e-voting) conmigo,
están aquí hoy: Eric Wustrow, Zakir Durumeric y Drew Springall.
¿Podrían ponerse de pie?
Bien, aplausos para estos estudiantes. Realmente, ellos hicieron el trabajo.
Bien. E-voting es algo que me ha interesado los últimos diez años.
Y me ha interesado, particularmente, porque suena como algo que sería maravilloso,
ser capaces de usar computadoras para contar votos de manera segura.
Ser capaces de votar por Internet, con todas las ventajas que trae la tecnología.
Quizás podamos reducir costos, quizás podamos incrementar la participación.
Al mismo tiempo, el e-voting trae los desafíos más difíciles
en el campo de seguridad informática.
Lo veo como un ejemplo motivador, un problema motivador para avances
de todo tipo: en criptografía, en construcción de sistemas y en usabilidad.
E-voting es un problema de seguridad realmente difícil
por sus requerimientos inusuales.
Necesitamos dos cosas a la hora de asegurar sistemas de e-voting,
por encima de todo.
Una de ellas es integridad, y por integridad me refiero a
que el resultado de la elección coincida con la intención del votante.
Esta es una definición de integridad relativamente débil.
Sólo digamos que el candidato correcto sea el que gane.
Esto significa, por supuesto, los votos deben ser emitidos según la intención del votante,
y el resultado de la elección debe ser contado según los votos fueron emitidos.
Pero el segundo requerimiento,
y el motivo por el que este es más complicado que otros problemas
que solucionamos a diario, como sistemas bancarios en línea,
compras en comercio electrónico, es que también tenemos el requerimiento
del secreto del voto. ¿Correcto? El secreto del voto, que es uno de los
avances tecnológicos más importantes, en la historia de la tecnología electoral.
El secreto del voto, eso que te protege de ser coercionado para votar de cierta manera
y nos protege a nosotros de que puedas vender tu voto.
El secreto del voto es que nadie pueda saber cómo votaste
aún si tú intentas demostrarle cómo votaste.
Esto es por lo que queremos impedir que la gente sea coercionada
e impedirles vender su voto.
La razón por la que el e-voting es un problema difícil es principalmente
porque estas dos propiedades, integridad y secreto del voto, están en tensión.
Muchas defensas que normalmente podríamos tratar de usar
para incrementar integridad, cosas como las que hacemos en
comercio electrónico, darle a las personas un recibo
o un extracto de cuenta. O hacer contabilidad, donde tenemos una gran tabla
con ingresos y egresos de dinero totalizados y nos aseguramos que coincidan.
Estas cosas son muy muy difíciles, o imposibles de implementar
si queremos mantener el secreto del voto fuertemente al mismo tiempo que
intentamos preservar la integridad.
Por eso necesitamos mecanismos muy diferentes para lograr que
los sistemas de e-voting aseguren estas propiedades críticas.
Ahora bien, eso no ha impedido que personas construyan sistemas
de voto electrónico y muchos países alrededor del mundo usan
e-voting o están empezando a intentar elecciones por Internet.
Y he sido muy afortunado, durante los últimos años
de haber estado involucrado directamente en estudios de distintos sistemas.
Por ejemplo, en 2007, fui parte de un equipo en Princeton que hizo
el primer análisis práctico de seguridad por parte de un partido independiente
de un sistema de e-voting utilizado en los EE.UU.
Esta, la Diebold AccuVote-TS, fue la máquina de e-voting más utilizada
en los EE.UU. por ese entonces.
Los fabricantes fueron muy reservados acerca de la tecnología.
Ellos le aseguraban a la gente que por supuesto eran perfectamente seguras
pero cómo funcionaban era un secreto, no podías saberlo.
Ahora, por supuesto, eso rara vez es un buen síntoma.
Después de varios años de debates sin conocer los hechos,
un delator nos dio una de estas máquinas a nuestro grupo de investigación de Princeton.
Para algunas de estas historias, no puedes hacer el mapa,
quiero decir, después de ver "Citizenfour" anoche
esto se siente como algo salido de la película.
Tuve que ir y recoger la máquina y recibirla de la fuente.
Y es tan ridículo, tuve que manejar hasta la ciudad de Nueva York
y estacionar mi auto en doble fila afuera de un hotel en Times Square
entonces fui a un callejón detrás del hotel
donde un hombre con un abrigo impermeable
me dio un maletín negro que contenía la máquina de e-voting.
En fin, pasamos un verano trabajando en secreto haciendo ingeniería inversa.
No sé cuál es el gran secreto, es básicamente una PC
dentro de una caja vistosa con una pantalla táctil
y una tarjeta de memoria removible para cargar el diseño de la boleta
y descargar los votos.
En fin, vimos algunas cosas interesantes sobre su seguridad
Resulta que era el kernel de un sistema operativo normal
y una aplicación que leía y totalizaba los votos.
Y haciendo algunas cosas divertidas con la tarjeta de memoria,
podías reemplazar el software de e-voting, sin ninguna verificación criptográfica,
con cualquier software que quisieras.
Así que desarrollamos una aplicación llamada "the stuffer" que podías cargar
en la máquina, te presentaba una linda interfaz gráfica en la pantalla
que te permitía elegir a quién votar y con cuántos votos.
Entonces procedía a cambiar todo registro de la votación
porque esta máquina sólo mantenía los votos en su memoria electrónica.
De esa forma, podías configurar una elección entre George Washington y
Benedict Arnold, el famoso traidor de la Revolución Estadounidense,
y cuando fuera que hiciéramos esta elección Benedict Arnold siempre ganaría
porque habíamos manipulado la máquina.
Esto es tan fácil de hacer que aún un montón de —en mi caso—
ingenuos estudiantes de grado podían sacarlo en pocas semanas
gracias a la informatización del voto.
También descubrimos que gracias a la informatización de la tecnología
podíamos crear un virus para máquinas de e-voting que se desparramara
en esas tarjetas de memoria, de máquina a máquina, a máquina,
en el curso de un ciclo normal de elección.
Así que alguien que fuera dejado unos pocos minutos a solas,
con una máquina de e-voting, podría cambiar el resultado
de una elección en todo un estado.
Ese es realmente el peligro del e-voting para mí.
No es sólo que la manipulación es posible
—la manipulación es posible también con boletas de papel—
la manipulación, debido al poder de la informatización,
puede ser a una escala mucho mayor con una conspiración muy pequeña
y también muy difícil de detectar.
Pero este no es el único estudio que mostró problemas en máquinas de e-voting.
Fui parte de un estudio encargado por la Secretaria de Estado de California,
Debra Bowen, también en 2007, que relevó cada tecnología de
voto electrónico en uso en California.
Y estudiamos máquinas de e-voting de tres fabricantes:
Hart, Sequoia y Diebold.
Créase o no, cada una de estas máquinas está basada
en código fuente, en cientos de miles de líneas de código.
Demasiado complicado para que sea posible que sean seguras.
Así que no fue una sorpresa que todas estas máquinas
fueran vulnerables a código "roba votos"
y también a ataques que permitirían a los funcionarios de la elección
violar el secreto del voto y averiguar a quién votó cada uno.
Como resultado, todas estas máquinas fueron descertificadas y prohibidas
para ser usadas en el Estado de California.
Pero no es sólo un problema de los EE.UU., en Europa también
la gente ha estado experimentado con e-voting,
y uno de los estudios seminales en Europa fue
conducido por mi amigo, Rop Gonggrijp, quien está sentado aquí,
en la fila del frente. Ronda de aplausos para Rop.
Así que Rop y sus colaboradores estudiaron la máquina Nedap ES3B
que fue introducida en los Países Bajos.
Ellos descubrieron que cambiando fácilmente un chip EPROM, cosa
que pudieron hacer en —creo que lo ellos demostraron en menos de un minuto—
pudieron hacer que la máquina robara votos,
que fuera deshonesta, incluso que jugara al ajedrez.
Inspirado por Rop, el colega Ariel Feldman y yo
tomamos una máquina, que aún está en uso en muchas partes
de los EE.UU., y que unos pocos años más tarde fue convertida en una
muy buena máquina de Pac-Man.
Pero no sólo son los EE.UU. y Europa,
India también usa máquinas de voto electrónico.
Es una de las democracias más grandes del mundo,
y el mayor usuario mundial de e-voting.
Ellos tienen sus propios, hermosos y muy simples,
sistemas embebidos de voto electrónico.
Es una historia muy larga para contarla completa hoy,
pero hace casi cuatros una fuente anónima, un delator,
le dio una de estas máquinas secretas hechas por el Gobierno
a este hombre, el del medio, Hari Prasad para estudiarla
y él nos llamó a mi y a Rop, y fuimos a India y la investigamos.
Como dije, es una larga historia, pero resumiendo termina
con Hari en la cárcel por un tiempo.
Rop y yo casi fuimos deportados del país
y sólo recientemente, la Corte Suprema de India sentenció que
había que introducir un respaldo en papel para que los votantes indios
pudieran tener una seguridad razonable
de que sus votos eran contados de forma segura.
Pero la votación por Internet es aún más difícil
que votar en una máquina aislada en un lugar de votación
¿Si? Porque en la votación por Internet
tienes el problema de que el votante está usando su propia máquina
fuera de un entorno protegido
donde puede ser vulnerable de ser coercionado, de que se roben
su nombre de usuario y contraseña,
o de sitios impostores que declaren ser el sistema real de votación,
de malware en sus máquinas, incluso de botnets que ya han infectado
una gran cantidad de máquinas,
comprometiendo el resultado de la elección.
Y no es sólo eso. El servidor también tiene que ser capaz de resistir
denegación de servicio. Recuerden que una elección tiene lugar en un periodo fijo
así que no puedes decir "bueno, nuestro sistema está caído esta semana,
así que pospondremos la votación por Internet hasta el próximo mes".
Eso no va a funcionar.
Tienes que preocuparte de ataques internos al servidor,
intrusión remota, aún de ataques más avanzados,
como amenazas patrocinadas por estados.
¿Cuántos países creen ustedes que pueden querer afectar el resultado
de la elección nacional más importante del país?
Probablemente hay una cantidad creciente
de estados sofisticados con ese deseo y capacidad.
Pero al mismo tiempo, los sistemas de votación por Internet
son más difíciles de estudiar.
No puedes simplemente confiar en alguien que
te traiga una máquina en el medio de la noche
cuando las cosas se ponen difíciles.
Tampoco puedes hackear el servidor durante la elección.
No puedes, éticamente, hacer eso.
Porque como investigador, como alguien que intenta mejorar el estado
de la tecnología democrática.
Yo no puedo justificar nada que pueda arriesgarse a interferir
con el desarrollo o el resultado de la elección.
Así que tuvimos que buscar otras oportunidades para estudiar
estas cosas de otra forma, y uno de los mejores ejemplos
que pude encontrar hasta ahora
ha sido un incidente en 2010, cuando Washington DC
decidió introducir un sistema de votación por Internet.
Consiguieron un importante subsidio del Gobierno para construir esto.
Y fue para uso por parte de militares y votantes de ultramar
enviando votos a distancia.
Ellos hicieron muchas cosas bien:
lo hicieron como sistema de código abierto,
contrataron algunos desarrolladores web realmente experimentados.
Incluso llamaron a investigadores de seguridad
y nos preguntaron cómo deberían construir
el nuevo sistema de votación por Internet.
Y todos los investigadores dijeron: "¡No, no, los sistemas de votación
por Internet son muy peligrosos! ¡No sabemos! ¡No lo hagan!"
Pero el DC lo hizo de todas formas.
Pero por compromiso, o tal vez para decirnos que
"ponían su dinero donde ponían la boca",
decidieron un ensayo público
y dijeron: la semana antes de las elecciones
vamos a tener una elección de prueba y cualquiera en el mundo
que quiera, podrá intentar hackear el sistema
y mostrarnos cuán vulnerable podría ser.
Bueno, no todos los días eres invitado a hackear una computadora
del gobierno sin ir a la cárcel,
así que armé un equipo con mis estudiantes
y decidimos participar.
Así que, así es como se veía su sistema.
Iniciabas sesión en una agradable interfaz web,
descargabas la boleta, la llenabas en un lector PDF,
la subías de nuevo y eso era todo.
Gracias por votar, dile a tus amigos en Facebook y Twitter.
Agradable y brillante.
De todos modos, la semana anterior a las elecciones,
Eric Wustrow, Scott Wolchok y yo nos reunimos en mi oficina
nos quedamos una noche, hasta muy tarde, leyendo el código fuente
que habían publicado en un repositorio GitHub para nosotros.
Y leímos el código fuente del DC
y fue, tal vez a las tres o cuatro de la mañana,
que estábamos mirando en este procedimiento aquí.
Esto es Ruby on Rails, que ninguno de nosotros había visto antes
pero fuimos capaces de entender cómo funcionaba.
Esta línea resaltada aquí: el sistema de e-voting
está usando GPG para encriptar la boleta subida,
con lo que permanecería secreta hasta que fuera tiempo de contar los votos,
cuando sería movida a otra máquina y desencriptada con la clave privada
almacenada allí.
El problema resulta estar aquí. Ellos usan comillas dobles
en vez de comillas simples.
Eso fue suficiente para permitirnos hackear y robar todos los votos.
El problema es que esto permite un ataque por inyección de script
porque esta biblioteca particular que usaron, la versión que usaron,
sólo arma la cadena de texto y usa una llamada al sistema para pasarlo a Bash,
y fue bueno que sanitizaran el nombre del archivo, pero no sanitizaron la extensión.
Así que si usabas una extensión que tuviera algunos comandos Bash,
éstos serían ejecutados en el shell,
con los permisos del usuario del proceso del servidor web
que estaba aceptando boletas y llevando adelante la elección.
Este fue el primer ejemplo que probamos y funcionó.
De todas formas…
También encontramos en la misma red
algunos otros dispositivos interesantes,
incluyendo una serie de webcams que no tenían usuario ni contraseña,
que estaban en el data center.
Así que aquí están las máquinas que estaban llevando a cabo la elección,
aquí están los trabajadores,
aquí está el guardia de seguridad
que no sabe que estamos hackeando el servidor.
Pero esto fue realmente útil, porque pudimos saber,
monitoreando a estas personas, si sospechaban que algo andaba mal.
De hecho, vimos un cambio en su comportamiento,
en su postura, después que eventualmente,
descubrieron que habíamos conseguido el control del sistema.
No estaban muy felices.
En fin…
Me estoy adelantando un poco.
Finalmente fue tiempo en DC de atacar el sistema,
así que esperamos hasta las 5 en punto
cuando supe, por los vídeos de vigilancia,
que el personal normalmente se iba a sus casas por la noche.
En ese momento,
empezamos a usar la vulnerabilidad de inyección para ejecutar comandos remotos.
De hecho, construimos una especie de "shell simulado" que
haría las cosas correctas para compilar algo en una boleta, subir la boleta,
ejecutar el comando, filtrarlo nuevamente poniendo algo en la carpeta pública
del servidor, y básicamente, hacer que se viera como si
tuviéramos una línea de comandos.
En fin, desde ahí procedimos a atacar el sistema,
jugando el rol de un verdadero atacante.
Si eres un verdadero atacante, has ingresado al sistema de votación,
¿qué sería lo primero que harías?
¿Robar otros votos?
¡No! De hecho, lo primero que harías sería robar cualquier otra cosa
a la que puedas echar mano
que pudiera permitirte volver a entrar al sistema atacado. Estableces persistencia.
La segunda cosa que hicimos fue robar otros votos.
Y los reemplazamos con nuestras propias boletas
donde cada candidato era un robot malvado o inteligencia artificial
de sci-fi o las películas.
¿A quién votarían las computadoras si ellas estuvieran al mando?
En ese punto, arreglamos el sistema para reemplazar cualquier voto nuevo
con votos de nuestra elección,
agregamos una puerta trasera, que rompiera el secreto del voto de otros votantes
y limpiamos los registros para ocultar los rastros.
Sólo tuvimos un dilema más.
Obtuvimos el control total del sistema,
pero la verdadera elección sería dentro de una semana.
Y queríamos que el DC supiera lo que pasó.
Pero no quisimos sólo llamarlos por teléfono,
porque pensamos que sería realmente interesante
probar qué tan bien podrían los funcionarios electorales
detectar y responder a un ataque durante una elección simulada.
Y nunca hubo un buen ejemplo, un buen estudio
acerca de cómo funcionaría.
Así que en lugar de llamarlos, decidimos dejar, lo que se nos ocurrió
como una no tan sutil "tarjeta de presentación".
Lo que hicimos fue cambiar el código fuente
de la página de agradecimientos al final,
eso que dice "Dile a tus amigos en Facebook y Twitter que votaste",
y agregamos algunas líneas, justo aquí.
Esto sucedería tras unos segundos de demora
haciendo en que la computadora de los votantes empezara a sonar
la canción de fútbol de la Universidad de Michigan, "Saludo a los vencedores".
Pasaron casi dos días antes que los funcionarios electorales lo notaran,
y fue sólo cuando alguien llamó
y les dijo "el sistema me parece bien,
pero no me gusta la música del final, me distrae".
Así que, en ese punto, creo que miraron a su alrededor
y se dieron cuenta que eran todos fanáticos de un equipo rival de fútbol
y tuvieron una terrible sensación de hundimiento.
En fin, el DC terminó haciendo algo inteligente:
no usaron el sistema de votación por Internet para recibir votos.
En lugar de eso, para ayudar a votantes remotos
a sufragar a tiempo, les permitían descargar la boleta,
imprimirla y enviarla por correo.
Haciendo eso, eliminaron la mayor parte del riesgo
y cumplieron con los votantes que necesitaban tener sus votos a tiempo.
Bien. Este es el mejor estudio que tenemos hasta ahora
y nos trae al tema principal de hoy: Votación por Internet en Estonia.
Estonia es un caso realmente interesante
que he estado siguiendo por años.
¿Qué ha estado sucediendo con el sistema de votación por Internet de Estonia?
Porque Estonia, más que cualquier otro país en el mundo,
ha desplegado y utilizado votación por Internet.
Para los que nos saben dónde está Estonia,
incluyendo la mayoría de los estadounidenses en la audiencia,
está justo aquí. Como pueden ver limita con Rusia,
también es miembro de la Unión Europea,
para ustedes, estadounidenses. También es miembro de la OTAN.
Estonia es, de hecho, un país bastante desarrollado tecnológicamente.
Son líderes en gobierno electrónico,
están haciendo un montón de experimentos interesantes
con formas de proveer servicios a la gente a través de Internet.
En ese contexto, no resulta sorpresivo que un país como Estonia
haya experimentado con la votación por Internet.
Y en Estonia han hecho más que unas pocas pruebas.
En la década pasada han conducido creo que 7 elecciones por Internet.
Incluyendo la más reciente elección, en mayo de este año (2014)
para el Parlamento Europeo, más del 30% de todos los votos fueron emitidos
a través de Internet.
Eso es increíble. No hay otro país ni por cerca
que confíe tanto en Internet para votar en elecciones nacionales. 30 % y más.
Aún así, si el sistema de Estonia es seguro,
es una pregunta que no ha sido respondida adecuadamente.
De hecho, no había —hasta que llegamos ahí—, un estudio internacional independiente
que hubiera examinado en detalle la tecnología y sus implicaciones de seguridad.
A causa de esto en muchos países, incluyendo el mío,
había gente diciendo: "¡Guau Estonia, miren, ellos votan online!
¿por qué no podemos hacerlo nosotros?
¿No sería genial si pudiéramos votar por Internet?"
Así que yo quiero saber, y mis estudiantes quieren saber
y muchos de mis amigos:
¿Ha solucionado Estonia el problema de votar por Internet con seguridad?
¿Han definido su sistema de forma que responda
al tipo de amenazas reales que los países importantes enfrentan
mientras se llevan a cabo elecciones?
¿Y qué pueden aprender mi país, u otros países, del ejemplo de Estonia?
Estuve buscando por muchos años una oportunidad para ir a Estonia,
conocer la gente ahí, para estudiar el sistema
y tratar de responder estas preguntas en el contexto
de la investigación sobre e-voting.
Finalmente tuve esta oportunidad en octubre del año pasado (2013),
cuando fui invitado junto con un equipo de otros investigadores internacionales,
por el Gobierno de la ciudad de Tallinn,
para ir a Estonia para hablar de nuestra experiencia con e-voting,
y para ser un observador en la elección nacional.
Ver realmente el proceso del sistema de e-voting siendo administrado.
Así que fuimos acreditados oficialmente como observadores de la elección.
Nos dieron un tour por el data center,
donde estaban alojados los servidores que llevaban la elección.
Nos reunimos con varios desarrolladores del sistema
y los entrevisté extensivamente, incluyendo gente como Tarvi Martens,
el padre del sistema, quien dio una charla en el 25° C3 años atrás.
Tarvi es uno de los desarrolladores líderes y este es su bebé.
Así que fue un gran placer poder hablar frente a frente
por largo tiempo, pasar el día con él, y aprender cómo funciona el sistema.
También pudimos examinar el código fuente
porque Estonia, el año pasado, liberó por primera vez,
código fuente parcial del sistema de e-voting.
Ellos liberaron código del servidor. El código del cliente todavía está cerrado.
Te piden que instales un programa de código cerrado en tu computadora.
Ellos dicen que es para impedir que alguien construya software deshonesto o algo así,
o al menos hacer que sea más difícil.
También pudimos revisar, y esto es algo realmente interesante que hicieron,
pudimos revisar docenas de horas de vídeo
del Correo de Estonia durante la elección,
de ellos haciendo la configuración del servidor antes de las elecciones,
haciendo la copia de seguridad diaria, en el data center.
Fue realmente interesante que nos proveyeran esto.
Y nos dieron la posibilidad de llenar un montón de huecos, los vacíos
y cómo el sistema estaba siendo ejecutado realmente.
Lo próximo que quiero mostrarles
es cómo se veía el sistema desde la perspectiva del votante.
Digamos que eres un votante en Estonia,
y vas a emitir tu voto.
Tienes cerca de una semana para hacerlo
antes del día de la votación presencial.
Inicias sesión en tu computadora, descargas la aplicación.
Hay una sola cosa en este escenario que puede lucir inusual para otras personas.
Es esto, ¿qué esto?
Bueno, Estonia, una de las cosas realmente interesantes
que hicieron con tecnología informática
es que sus documentos nacionales de identificación
son también tarjetas inteligentes.
De hecho, todo ciudadano en el país, tiene uno de estos documentos
que tienen un par de claves RSA embebidas en su chip.
Y puedes usar ambas para autenticarte en un servidor web
usando un cliente con autenticación HTTPS/TLS.
Son de los pocos países en los que ha sido ampliamente adoptado.
O para firmar documentos.
Y tienen un formato de documento electrónico
reconocido por el gobierno que acepta firmas de estas tarjetas
con carácter jurídicamente vinculante.
Así que muchos países han intentado hacer cosas como estas,
pero Estonia es única. De hecho, esto es ampliamente utilizado.
Muchas personas, una gran fracción de estonios,
usa estas tarjetas para bancos online,
las usan para llenar sus declaraciones de impuestos,
las usan para acceder a servicios de salud online.
Es ampliamente utilizado.
Pienso que es fantástico que hayan sido capaces de desplegar
una PKI nacional, y ver que la hayan adoptado.
Así que realmente no sorprende
que hayan basado el diseño completo del sistema de votación
en las capacidades y funciones que proveen estas tarjetas.
Así que, como un estonio que va a votar, la primera cosa que haces
es ir a un sitio web oficial y descargar la aplicación cliente
y está disponible para Windows, Mac y Linux.
Entonces instalas el cliente en tu computadora,
y procedes a interactuar con él usando tu tarjeta inteligente,
tu documento nacional de identidad, para emitir tu voto.
Así es como funciona:
Lo primero que haces es correr la aplicación y esta te pide un pin de 4 dígitos.
Este pin es requerido por la tarjeta inteligente,
para poder activar las funciones de autenticación y firmado,
y permitirte usar las claves.
Después de eso, se conecta al servidor de la elección,
se autentica usando el cliente con autenticación TLS,
determina dónde vives y envía la boleta a la aplicación.
Tu seleccionas por quién quieres votar, en la aplicación.
Hay una nueva aplicación para cada elección, por cierto.
En ese punto, cliqueas para emitir tu voto
y el software de la elección realiza algún tipo de encripción.
Así que aquí está lo que hace. Hace dos cosas:
Primero, va a encriptar tu voto usando RSA
y usando algún padding aleatorio que ha sido generado por el cliente.
Entonces, toma esa boleta encriptada,
y la firma digitalmente usando tu tarjeta nacional de identidad.
Del segundo paso, donde firma digitalmente, resulta en una boleta firmada
y la boleta firmada y encriptada va al servidor de la elección
donde es almacenada hasta que sea tiempo de contar los votos.
Así que ese es el proceso de votación, en pocas palabras. Muy simple.
Luego, Estonia tiene una funcionalidad que ha sido
introducida en los últimos años
que te permite hacer algo que ellos llaman "verificación".
Así que la última cosa que hace la aplicación cliente
es mostrarte este código QR. Y el código QR contiene dos cosas:
un identificador de boleta y los valores aleatorios que fueron usados
como padding de la boleta antes de la encripción RSA.
Usando estas cosas, puedes utilizar una aplicación para smartphones
—y están disponibles para iOS y Android— para escanear el código QR,
la aplicación luego consulta a los servidores de la elección,
y los servidores retornan una boleta encriptada con las firmas removidas.
Este es el servidor diciendo que esta fue la boleta que recibió de ti.
OK. En ese punto, usando los valores aleatorios,
que obtienen del código QR, el smartphone puede intentar,
por fuerza bruta, conocer tu voto. Puede tratar cada opción posible,
hasta conseguir una que resulte en la misma encripción.
Si encuentra una que coincide, muestra el candidato resultante.
Como medida de seguridad contra la coerción,
este procedimiento de validación sólo puede ser realizado hasta 3 veces,
y sólo puede ser realizado dentro de los 30 minutos siguientes
a la emisión del voto. De otra forma, alguien que quisiera coercionarte
podría decir: "muéstrame tu verificación".
Como otra salvaguarda interesante contra la coerción,
tienes la posibilidad de reemplazar tu voto, tantas veces como quieras,
hasta la votación presencial.
Así que haces el proceso nuevamente, y tu nuevo voto, reemplaza al anterior.
Sólo cuenta el voto más reciente.
Bien, ese es el proceso de verificación. Ahora, ¿cómo funciona el conteo?
El conteo es interesante en el sistema estonio
porque es, básicamente, tratar de hacer la analogía criptográfica
de los sobres dobles de voto a distancia que son utilizados en muchos países.
Básicamente, con el sobre doble de voto a distancia,
tienes un sobre interno seguro que contiene tu boleta,
y un sobre externo que contiene tu nombre y firma.
Al momento de contar, quitan tu nombre y firma luego de verificar que
has votado una sola vez y que tienes el derecho a votar.
Luego separan el sobre interno, los mezclan, así no pueden
correlacionarse con los nombres, los abren y cuentan los votos.
Bueno, en el sistema estonio están haciendo algo similar.
Los servidores de la elección almacenan los votos
hasta que es tiempo de contar.
Y luego toman esas boletas encriptadas y firmadas,
remueven las firmas, y las graban en un DVD.
Luego toman este DVD y lo usan para llevar las boletas encriptadas
a una máquina físicamente separada y sin conectividad llamada "servidor de conteo".
Y sólo el servidor de conteo tiene acceso a la clave privada
que es usada para desencriptar las boletas.
Así que encriptan todo el camino desde el cliente hasta el servidor de conteo.
Y el servidor de conteo puede desencriptar y ver los votos,
pero nunca ve las firmas que las identifican.
Así que de esa manera intentan mantener el secreto del voto.
El resultado producido por el servidor de conteo es, simplemente,
el resultado de la elección.
Suman los votos presenciales y se declara el ganador.
Así que ese es el proceso estonio.
Y fue realmente interesante entender cómo funciona.
No hay descripciones publicadas en inglés
que cubran todo el proceso, anteriores a nuestro estudio.
Tuvimos que preguntarle a la gente y revisar el código fuente
para tener una buena idea de lo que estaba sucediendo realmente.
La próxima pregunta luego de entender cómo funciona el sistema es:
¿A qué amenazas se enfrenta?
Ya hemos revisado algunos de los problemas de la votación por Internet.
Ataques internos por parte de autoridades electorales deshonestas,
coerción para con los votantes, malware en el cliente.
¿Pero quién más quiere atacar un sistema así?
Bueno, Estonia nos trae un ejemplo particular a la mente.
Porque, antes que nada, Estonia, muy notablemente fue alcanzada en 2007
por algunos de los primeros ejemplos
de lo que muchos observadores consideran como una ciber-guerra entre estados.
Ellos sufrieron ataques de denegación de servicio a gran escala
contra la infraestructura nacional, de grupos asociados con Moscú.
En segundo lugar, el verano pasado Ucrania tuvo una elección post-revolución.
Y durante esas elecciones, hubo ataques extendidos contra
la infraestructura de la elección en sí misma.
Ahora, esa elección no fue realizada online,
pero el proceso de tabulación, el proceso que reunir
todos los resultados a través del país
se apoyaba en redes de computadoras para recibir votos
y publicar los totales online.
Se reportó que ese proceso fue atacado por grupos
que se cree que están vinculados a Rusia también,
quienes intentaron desacreditar la elección
e incluso intentaron, según leí, difundir resultados incorrectos.
Esto se hizo público el verano pasado.
Esto me lleva a pensar que el modelo correcto de amenazas,
para sistemas de votación por Internet, tiene que incluir
atacantes sofisticados a nivel estatal,
que pueden querer influenciar el resultado nacional.
Y para un país como Estonia,
ya saben, un miembro de la UE y la OTAN, que limita con Rusia,
hay posiblemente muchos atacantes sofisticados a nivel estatal,
que podrían querer inmiscuirse en sus futuras alineaciones.
Así que, con ese modelo de amenazas en mente,
evaluemos el diseño del sistema de Estonia.
Y hay dos componentes del diseño de Estonia que —sólo revisando el diseño—
pueden decir son componentes implícitamente de confianza.
Y ya saben, en seguridad, cuando decimos que algo es "de confianza",
básicamente queremos decir que si es hackeado, entonces estamos cagados.
Así que eso queremos decir con "de confianza".
Estos dos componentes son la aplicación cliente del votante,
y el servidor de conteo. Y déjenme decirles por qué
estos dos son puntos potenciales de vulnerabilidad,
o puntos serios de vulnerabilidad en el diseño de Estonia.
Empecemos con la aplicación cliente.
La aplicación cliente del votante en Estonia
podría ser potencialmente comprometida por malware del lado del cliente.
Así que aquí hay un diseño simple de malware, algo que de hecho
implementamos en el laboratorio.
Para implementar estos ataques, por cierto,
hemos reproducido el sistema completo de Estonia
en nuestro laboratorio
usando su código fuente del lado del servidor,
sus procedimientos documentados, y haciendo ingeniería inversa en el cliente
para hacer que hable con nuestro servidor y use nuestras claves en vez de las oficiales.
Así que montamos una elección simulada completa en el laboratorio.
Y tenemos imágenes de las máquinas virtuales en nuestro sitio web
si alguien desea probar jugando con ellas en sus laboratorios.
Imaginen que tienen la aplicación cliente del votante
y son capaces de meter malware en ella.
Ese malware podría, básicamente,
espiar el proceso de elección en el cliente
y robar el pin del votante, mientras lo escribe,
durante la elección real.
Entonces, luego, la próxima vez que el votante ponga
su tarjeta de identificación, digamos para operar con el banco online,
ese malware puede, invisiblemente en segundo plano,
usar ese pin robado para emitir el voto de reemplazo.
El votante nunca se entera, el voto es cambiado
y el atacante es capaz de robar un voto con este procedimiento.
Ahora, hay dos grandes preguntas aquí:
¿Cómo infectar la aplicación cliente y cómo vencer la aplicación de verificación?
¿Cómo infectar los clientes? Bueno, tuvimos que dejar esto
un poco a la imaginación, porque no teníamos una
botnet preexistente infectando miles de computadoras en Estonia para jugar con ella.
Pero otra gente sí la tiene.
Así que una forma… esa es una forma, que puedes imaginar fácilmente,
de cambiar miles de votos.
Otra forma sería, digamos eres la NSA, tienes tu montón de ataques 0-day,
simplemente puedes atacar algún sitio web o aplicación popular usada en Estonia,
y así infectar la aplicación cliente de las personas con el malware.
Una tercera forma puede ser meter código malicioso
dentro de la aplicación oficial de votación.
La que sabemos es algo que todos los que votan online en Estonia
instalan antes de la elección.
De cualquier manera, hay varias formas en las que podrían infectar los clientes.
Luego ¿cómo ganarle a la aplicación de verificación?
Bueno, resulta que esto no es algo tan complicado.
Gracias a sus esquemas de anti-coerción
—recuerden la tensión entre integridad y secreto del voto.
Gracias a los esquemas de anti-coerción,
La aplicación de verificación puede ser solamente usada
por 30 minutos luego de que la elección se ha realizado,
luego de que el voto es emitido.
Así que todo lo que tenemos que hacer es esperar.
Si eso no funciona, si eso es muy sospechoso
también podríamos intentar un ataque híbrido
involucrando una aplicación de Android maliciosa
y comprometiendo la aplicación cliente de los votantes.
Gracias a la convergencia de estas plataformas
ya no es tan difícil de creer
que alguien podría, simultáneamente, y de manera correlativa, atacar ambas.
De cualquier manera, hay varias formas de hacer estas dos cosas.
Podemos continuar y mirar el lado del servidor también.
Ahora, del lado del servidor, el "talón de Aquiles" del sistema
es el servidor de conteo.
Es la única cosa que manipula los votos desencriptados.
Y nadie ve esos votos, sólo ven el resultado.
Así que si el servidor de conteo miente… ¿si?
Si el servidor de conteo miente, entonces simplemente puede
arbitrariamente decir cuál es el resultado de la elección.
Pero ellos trataron que el servidor de conteo
fuera bastante difícil de manipular.
Está sin conexión, es montado antes de la elección,
está sellado, está en algún lugar seguro.
Tenemos que imaginar que es bastante difícil.
Así que, de alguna forma, necesitas una manera
de alterar el comportamiento del código en esa máquina.
Ahora, hemos experimentado y hasta construimos una toolchain para hacerlo
y comprometer esa máquina, incluso con los procedimientos de seguridad que montaron.
Nuestra toolchain se basa en la ideas de "Reflections on Trusting Trust"
de Ken Thompson, que dice que aún si un sistema es seguro,
necesitas otro sistema para construirlo.
¿Si? Y necesitas algún otro sistema para hacer aquel.
Así que si sigues esa cadena,
eventualmente llegarás a un lugar al que el atacante tiene acceso.
Así que, en nuestra investigación, descubrimos que la forma
en la que montaron esa máquina para el servidor de conteo,
que corre, creo, una variante de Debian que es instalada desde un DVD,
ese DVD es quemado en una máquina de desarrollo separada,
que es montada antes de la elección,
y de hecho, descarga una copia fresca de Debian de la web y quema el DVD.
Así que, asumamos que podemos retroceder algunos…
algunos niveles desde el servidor de conteo
y comprometer ese servidor de desarrollo, que está conectado a Internet, que es
montado antes de iniciar la grabación de vídeo al comienzo de la elección.
Digamos que podemos meter algún malware ahí.
Así que construimos una demostración en donde ese malware
infecta el CD de instalación que es quemado,
usa un rootkit para mentir acerca del hash SHA-1 de esa imagen ISO,
porque ellos la verifican. Y entonces ese DVD comprometido
procede a instalar algún código backdoor en el servidor de conteo cuando es montado.
En ese punto, cambiar votos es realmente fácil.
Todo lo que tenemos que hacer
es interceptar algún código en el servidor de conteo,
que usa un HSM conectado, para hacer la desencripción de cada voto
y básicamente mira lo que vuelve del HSM
y lo reemplaza con el voto que elijamos.
De esta forma, toma aproximadamente el tiempo correcto,
el HSM desencripta los votos reales,
pero los resultados son fraudulentos.
OK. Estos son dos ataques
que se basan un poco en capacidades que no tenemos.
Acceso a 0-day, o a una botnet, o acceso privilegiado.
Todas cosas que los atacantes reales sí tienen.
Pero aún puede ser posible
que la seguridad operacional de Estonia sea tan buena
que estos atacantes avanzados tendrían problemas comprometiendo las máquinas.
Así que, ¿qué tan buena es su seguridad operacional?
Esta fue una gran pregunta en nuestro trabajo, y es algo
a lo que dedicamos bastante tiempo revisando los vídeos,
haciendo las entrevistas para averiguarlo.
El presidente de Estonia, este hombre,
dice que su seguridad es mejor que la de Google.
Este es el estándar que se han puesto a ellos mismos.
Es bueno, es algo a lo que aspirar.
Veamos qué tan buena es su seguridad,
basados en los vídeos oficiales, que ellos publicaron durante la elección.
Aquí está Tarvi Martens.
Sobre su cabeza, está el SSID del Wi-Fi y contraseña para el terrorismo de la red.
Aquí están montando algo del software y los servidores
y la configuración para las máquinas reales.
Hagamos zoom sobre la pizarra blanca aquí…
Oh, ellos están usando algún shareware para Windows
que están descargando por HTTP
para escribir los archivos de configuración para los servidores.
Esto no luce bien.
Sigamos adelante. Aquí hay otra computadora en la que están probando
el software cliente, en esta captura de aquí.
Hagamos zoom…
Pueden ver el escritorio bastante bien.
Oh, esperen un minuto. ¿Qué son todos esos íconos en el escritorio?
Aquí hay algún sitio de poker, un cliente de BitTorrent,
creo que esto es música pirateada.
Esto no es una máquina limpia y segura.
Espero que no estén haciendo nada importante.
Oh, aquí están firmando digitalmente el cliente oficial de votación
que van a pedir que cada uno en el país descargue e instale en sus computadoras.
¡Dios mío! Esto es lo más peligroso posible,
tener el binario real del cliente en una máquina potencialmente comprometida.
Así que si alguien compromete esta máquina
pueden meter el malware en el cliente oficial de votación
y distribuirlo a todo votante estonio.
Luego, en la misma máquina está el nombre de Tarvi.
Creo que esta es la laptop personal de Tarvi.
Aquí están configurando uno de los servidores.
Están ingresando como "root". Puedes ver sus pulsaciones de teclas.
Aquí hay alguien ingresando su PIN de su tarjeta nacional de identificación.
Y aquí, en el data center —esto es realmente útil—,
esta gran llave aquí, la llave grande es la que abre la puerta del data center.
¿Alguien tiene una impresora 3D?
Esto no parecer ser el nivel de seguridad operacional que necesitaríamos
para defendernos de atacantes de nivel estatal.
Pero no quiero ser demasiado severo con ellos.
Este es el nivel de seguridad operacional que es típico
en un sistema de TI gubernamental.
Pero esto no es sólo un sistema de TI gubernamental,
esto está determinando cuál será el próximo liderazgo.
Esto es un sistema de seguridad nacional crítico.
Aquí hay algo más que pasó, tenían algunas cosas que andaban mal
después de… en la elección, en la última elección,
al final, cuando era hora de copiar los resultados oficiales del servidor de conteo
la grabadora de DVD no funcionaba.
Así que miraron alrededor, "¿cómo vamos a hacer esto?"
"Tenemos que copiarlos y traerlos a otro sistema
para firmarlos digitalmente y publicarlos"
Así que Tarvi Martens sacó el pen drive de su bolsillo
y lo puso en ese servidor de conteo
—la única que cosa que sabe cuáles fueron los votos reales—
y lo conectó a su laptop con Windows, y firmó los votos y los publicó.
Así que aquí está lo que apareció en su laptop con Windows
cuando conectó el pen drive.
Ustedes pueden ver lo que había,
tenía una charla que él dio sobre votación por Internet.
Este no es un pen drive limpio. Así que otro camino potencial
para meter malware en el servidor de conteo.
Esta fue nuestra evaluación, que el sistema de Estonia
tenía serias vulnerabilidades potenciales
especialmente contra adversarios de nivel estatal.
Y no había forma de que la seguridad operacional que tenían fuera a resistirlo.
Y estábamos en una situación difícil,
porque habíamos estado en Estonia en octubre pasado
y les dijimos a las autoridades electorales, básicamente,
que teníamos esas preocupaciones.
Entonces fuimos y las confirmamos en el laboratorio.
Estonia tenía otra elección cerca, en mayo de 2014.
Sabíamos esta información, ¿qué haríamos con ella?
Sabíamos que las autoridades electorales estaban convencidas de que el sistema
simplemente, estaba bien.
Así que decidimos hacer pública la información, y desafortunadamente
—porque todos tenemos un montón de otros proyectos en curso—
fue llevado más cerca de las elecciones de lo que me resultaba cómodo.
Y fuimos a Estonia unos 10 días antes de la siguiente elección
a decirle al público lo que habíamos descubierto.
Así que volamos, fuimos a ver a Tallinn, hermosa ciudad.
Establecimos un campamento base de hackers,
en un amplio y lindo lugar de Airbnb, con el equipo completo.
Y procedimos a llamar a una conferencia de prensa
y anunciar nuestros hallazgos.
Montamos un sitio web, que lo resumía, como lo tengo ahora,
para que la gente común pueda entender y publicamos un reporte técnico detallado
que luego fue publicado en la conferencia ACM CCS.
Así que la reacción, y entender la reacción,
requiere entender sólo dos cosas acerca de la política en Estonia.
Una, que hay dos grandes partidos políticos:
El Partido de la Reforma Estonio y el Partido del Centro de Estonia.
El Partido de la Reforma, que está actualmente en el gobierno nacional,
ama al sistema de e-voting, es su perrito mascota,
es una de las fuentes de orgullo nacional.
Quieren comercializarlo al resto de Europa
y mostrar cuán sobresaliente y moderna es Estonia.
El Partido del Centro de Estonia
—que estaba previamente a cargo del gobierno nacional—
es actualmente el partido minoritario,
pero ellos controlan la ciudad de Tallinn,
que es, básicamente, la ciudad-estado dentro del país.
Ellos odian el sistema de e-voting.
Posiblemente porque siguen perdiendo elecciones.
El partido que está fuera del poder
siempre odia, o está dispuesto a criticar la tecnología
y los partidos en el poder nunca lo están.
El Partido del Centro ha criticado el sistema por un largo tiempo
y el Partido de la Reforma, lo ama.
Desafortunadamente, cada medio de comunicación en Estonia
parece estar cercanamente afiliado con uno u otro partido.
Así que todos cubrieron los resultados potenciales,
los ataques potenciales que descubrimos.
Pero los cubrieron ya sea diciendo
que esto probaba que las elecciones eran fraudulentas,
o que había gente atacando el sistema de e-voting
porque estaban trabajando para el partido rival.
Así que nosotros aterrizamos en el medio de todo esto.
Y fue bastante increíble, pero no tan divertido.
Así que fue noticia principal por una semana
y estuvo al inicio de cada noticiero nocturno.
Volé a casa en avión, con gente, en las filas cercanas,
leyendo diarios con historias acerca de esto.
Fue la experiencia más rara.
También nos reunimos con las autoridades electorales
en una reunión muy formal con ellos y sus abogados.
Y Tarvi Martens nos agradeció mucho
y nos dijo que ellos habían tomado nota de todo estoy y que no había problemas.
También bebimos unos tragos
con la gente de seguridad que trabajaba para la elección.
Quienes estaban muy convencidos de que todo estaba bien,
porque la gente correcta seguía ganando.
Bueno, les pregunté qué pasaría si por algún error horrible
ganaba la gente incorrecta,
los despedía a todos ellos y seguía corriendo el sistema tal como está.
Con expresión algo triste dijeron que eso sería muy malo.
Más tarde, Harri Hursti, un miembro de nuestro equipo,
que es un finlandés muy corpulento,
y conocido como un prodigioso bebedor,
salió a beber con este agradable compañero ruso,
que es el jefe de la seguridad del equipo de operaciones electorales.
Durante la cena —me dijeron— cada uno consumió dos botellas de vodka.
Después de lo cual, ninguna verdad puede ocultarse.
Harri cuenta que, al final de esa noche,
él le había sacado la contraseña de root al jefe de seguridad.
Y aquí está, de regreso.
Una última cosa, para terminar.
El Primer Ministro de Estonia fue a la TV
y dijo que nos había buscado en Facebook
y que trabajábamos para su oponente para desacreditar el sistema,
porque aparentemente Jason Kitkat,
tenía como amigo a alguien de la oficina del alcalde.
También tenía como amigo al Ministro de Finanzas del Primer Ministro
y tenía una solicitud pendiente de amistad del Primer Ministro,
pero aparentemente nunca lo aceptó.
Finalmente, tenemos algo muy interesante.
Nunca antes había sido atacado en TV por un ministro de la OTAN,
especialmente por quienes fueran mis amigos.
Finalmente, tuvimos algunas respuestas oficiales interesantes, online,
de las autoridades electorales de Estonia.
Dijeron que la aplicación de verificación detecta los malos comportamientos.
Sí, correcto, hemos hablado acerca de la aplicación de verificación.
También dijeron: ¿por qué robar votos cuando podrías robar dinero?
Si pudieras hacer todo esto… Bueno, realmente no compro eso tampoco.
Pero la cosa más sorprendente fue que el CERT de Estonia
puso un post en un blog, que pueden encontrar online, también en inglés.
El título del post es "E-voting es (demasiado) seguro".
"La gente a la que le importa la higiene de su computadora no tiene virus", dicen.
"En la práctica, los riesgos informáticos fueron eliminados" en el sistema de e-voting
"Ellos (mi equipo) están aquí no por ser expertos informáticos sino
por su mensaje políticamente apropiado pero técnicamente incompetente".
No creo que vayamos a tener mucha suerte
convenciendo a Estonia para que cambie su sistema de votación.
Sin embargo, podemos extraer algunas lecciones para otros países.
El sistema de e-voting es, de hecho, inseguro
contra la clase de amenazas nacionales, actores a nivel de Estados,
que podrían potencialmente, tener como objetivo
a países modernos conduciendo elecciones a nivel nacional con e-voting.
Es un asunto de seguridad nacional, no un problema de TI.
Y si todavía piensan implementar un sistema como este
necesitan tener un modelo de amenazas y un nivel de defensa totalmente distintos.
La política, desafortunadamente como vimos, puede ocultar problemas técnicos importantes
Y si su país está considerando adoptar tales sistemas,
por favor, preocúpense por ello.
Nuestra recomendación es que Estonia debería discontinuar
su sistema de votación por Internet
hasta que tenga mejoras de seguridad fundamentales.
Pero espero… No tengo mucha esperanza con ellos.
Pero, sólo para concluir, esto es lo que vi como problema fundamental
con la votación por Internet.
Que queremos sistemas de votación a los que ustedes, o yo, o nuestros amigos,
o Tarvi Martens, o Vladimir Putin, o la NSA no puedan hackear
y cambiar el resultado de la elección. Es tan simple como eso.
¡Queremos democracia!
Fraudes importantes tienen que ser al menos tan difíciles como son con papel.
Y ninguna tecnología, hasta ahora, puede asegurar eso.
Por este motivo, mi opinión, aún sabiendo que no conozco
todas las líneas de investigaciones prometedoras,
es que pasarán décadas, si es que alguna vez,
la votación por Internet pueda ser lo suficientemente segura
para su uso en elecciones nacionales importantes.
Y no sin avances fundamentales en seguridad informática. Muchas gracias.
—Muchas gracias, profesor,
por esta muy aterradora y muy entretenida charla.
Estamos un poco pasados de tiempo
pero afortunadamente tenemos un descanso
en sala 1, después de esta charla,
así que si hay algunas preguntas
por favor hagan cola detrás de uno de los ocho micrófonos.
Sí, número 4, por favor.
—Gracias por la charla. Usted exploró
cómo cambiar, atacar el servidor de conteo,
pero ¿ha analizado si puede hacer esto
si puede atacar este otro servidor?
Porque las firmas son removidas, si recuerdo correctamente,
así que el otro servidor, simplemente, podría
grabar votos arbitrariamente encriptados en el DVD, ¿no es eso correcto?
—Sí, de hecho eso es otra vulnerabilidad,
nos concentramos sólo en el servidor de conteo
porque eso fue, quizás, lo que consideramos que era
la versión más interesante de este ataque
pero hay otros lugares en los que podrías, potencialmente,
estar tentado de hacerlo también.
Creo que tendríamos más evidencia forense.
También sabemos, en términos de servidores frontend,
sabemos que los servidores utilizados en 2013
eran vulnerables a Heartbleed, por supuesto, descubierto meses más tarde.
Sospecho que eran vulnerables a Shellshock también.
Es realmente un problema si implementas un sistema como este
no importa lo cuidadoso que seas.
—Pregunta desde el número 3, por favor.
—Mi pregunta es si hubo algún testeo del servidor de conteo.
Podría imaginar, por ejemplo,
que simplemente podrías producir una gran pila
de DVDs grabados, en los que conoces los votos,
y correrlos en el sistema, quizás el día de la elección,
es decir: aquí hay 10 DVDs de muestra aquí están los votos reales
y lo hacemos en orden aleatorio, y correrlos varias veces,
y ver si todos los DVDs de prueba
están bien, en cualquier orden, el voto también estará bien.
—Sí, ellos no tienen procedimientos como ese.
Pienso que están agregando tales cosas.
Pero eso involucra algunas sutilezas.
Si montas algo así, debes asegurarte de que no hay forma de que el malware
pueda detectar cuándo es una auditoría o cuando se está contando un voto real.
Por decir, canales laterales o "secret knots",
podrías plantar alguna señal en los archivo de prueba
que podría causar que sean contados correctamente.
Así que tienes que ser muy muy cuidadoso cuando diseñas tales sistemas.
Mi preocupación no es tanto que
ninguno de estos problemas pueda ser corregido,
sino que corregirlos a todos perfectamente, resulte en
un sistema demasiado complejo de dirigir y administrar.
Es que vaya a resultar en un sistema "Rube Goldberg".
Pienso que es por eso que el sistema es como es
porque ellos tenían que tomar decisiones de compromiso
para construir un sistema que fuera lo suficientemente barato
y lo suficientemente fácil de ejecutar.
Y sí, podemos pensar en algunas mejoras para cada componente
pero tapar todos los huecos suena extremadamente difícil, al menos para mí.
—Pregunta desde número 4, por favor.
—Muchas gracias por su charla, fue realmente inspiradora.
Quería preguntar qué piensa sobre la pregunta
de si tales sistemas podrían alguna vez evolucionar
para ser lo suficientemente seguros, ya que veo
los desarrollos que suceden en seguridad
siempre disparados por hackers.
No solamente, pero cómo
los huecos en seguridad se van tapando según son detectados
es como una carrera entre los dos
que hacen que los sistemas evolucionen,
me pregunto si podrán alguna vez… —Es una gran pregunta,
y hay un área de investigación prometedora en esto.
Algo llamado "Verificabilidad por el votante de extremo a extremo".
Está basado en criptografía avanzada.
La idea aquí es, básicamente,
que quieres un sistema que asegure que tu voto es emitido como pretendes,
que es contado como se emite,
que todos los votos son contados como se emiten
y que cada votante pueda confirmar esto.
Una forma de lograr esto
es publicando el nombre de cada uno y cómo votaron en un diario, ¿si?
Pero por supuesto, no queremos eso. No es voto secreto.
Pero usando algunas versiones más avanzadas de criptografía
podemos obtener eso también.
Créase o no, es realmente poco intuitivo que puedas tener todas esas propiedades.
Hay tales sistemas en desarrollo
y si están interesados en intentar hackearlos y hacerlos mejores,
mirar en estos sistemas es un gran lugar para empezar.
Pero no están preparados para el "prime time",
hay un montón de preguntas acerca de la usabilidad,
acerca de la seguridad de los protocolos,
acerca de la complejidad de la implementación,
acerca de si podrían correr de forma apropiada a escala nacional.
Así que hay esperanza, hay esperanza viniendo de la investigación,
pero aún pienso que estamos, al menos a una década de distancia,
y eso si todo va bien, antes de que estén listos para el "prime time".
Aunque es una gran pregunta. —¿Puedo hacer otra pregunta corta?
¿Cómo piensa que los usuarios finales serán capaces de confiar en estos sistemas
si no son desarrolladores como los que estamos aquí?
No tienen medios para verificar que no está habiendo fraude.
—Realmente, esa es una pregunta abierta,
quiero decir, sólo pensando en el contexto estadounidense,
no sé cómo reaccionarán los votantes cuando su gurú de radio favorito
salga al aire y diga el voto fue… la elección es un fraude
y algún nerd criptógrafo vaya y diga:
"No, puedo probarlo porque esta propiedad y esta, ya sabes,
esta mix net muestra que esto y aquello".
Sabes, creo que no sabemos cómo solucionar ese problema aún.
Y obtener confianza, —y confianza racional—
es uno de los grandes desafíos en cualquier tecnología electoral.
—Muchas gracias. —Gracias a ti.
—Número 1 tiene una pregunta.
—Si esas tarjetas inteligentes firman las transcripciones
y documentos bajo demanda, ¿se puede confiar en que
ningún handshake TLS o documento pueda pasar como una boleta encriptada?
—Hay claves separadas para autenticación y firma.
Espero que ellos hayan pensado en ese ataque.
Pero es una pregunta interesante, Adam. No es algo que hayamos mirado.
De hecho, dijimos que la seguridad
de esta PKI estaba fuera del alcance de nuestro estudio.
Pero Tarvi Martens es también el padre de la PKI nacional.
Así que podrías preguntarle sobre la seguridad de implementación y operaciones.
—Parece que puede no estar enteramente abierto a la pregunta. Pero gracias.
—Número 5 tiene una pregunta.
—Es como que, aún si hubo avances significativos en criptografía y…
¿cómo un ciudadano confiaría en el sistema,
si esa persona no es un criptógrafo y no puede probarlo? Y la otra cosa es,
de niño te dicen que estamos en democracia, pero cuando creces
te das cuenta de que hay un montón de resultados sesgados,
y algunos votos cuentan más que otros y así sucesivamente.
Tienes que ser un cientista político para entender cómo se cuentan los votos,
y tienes que ser un criptógrafo para entender que el conteo es preciso.
¿Hay alguna persona que tenga todo ese conocimiento y…
—Lo sé, lo sé. Son preguntas muy difíciles y no tengo las respuestas.
Puedo decir que mi creencia,
lo que personalmente pienso que debería ser el caso
es que los votantes deberían ser capaces de confiar en el resultado de la elección
sin tener que confiar en las autoridades electorales
o en cualquier casta especializada de gente.
Incluyendo los nerds, los criptógrafos, los cientistas políticos.
Debería ser posible. Tiene que ser posible para alguien
ir con sus amigos, con su grupo, con su club, con su partido
y observar el proceso electoral y establecer una confianza racional.
Debería ser diseñado así. Sé que eso es un problema.
De hecho, hay muchas maneras en las que podemos tratar de usar la tecnología
para dar a la gente formas de incrementar la confianza
incluyendo medios electrónicos para auditar elecciones con boletas de papel.
Ha habido una significativa cantidad de investigación en eso,
que te permitiría, sin criptografía avanzada,
sólo con alguna estadística básica, obtener confianza adicional
de que el resultado de la elección fue correcto.
Así que hay cosas que podemos hacer con tecnología.
Pero no tengo todas las respuestas.
—Número 2, por favor.
—Me gustaría preguntar si está familiarizado con el workflow de Bitcoin.
¿Considera que mecanismos de encripción y desencripción como estos
pueden funcionar en elecciones electrónicas?
—Algunas personas han hablado de construir esquemas de votación
basados en algunas variantes del protocolo Bitcoin.
Pienso que es una idea interesante.
No sé si queremos confiar el resultado de una elección nacional
incluso al ecosistema Bitcoin porque podría ser que digan
que el resultado de la elección de un presidente de los EE.UU.
vale más que la economía de Bitcoin. No sé si eso es verdad o no aún.
Pero es algo para pensarlo.
De cualquier manera, pienso que la idea de un libro mayor distribuido
como el que se usa en Bitcoin es potencialmente una idea muy interesante
para futuros esquemas de votación. Pero, nuevamente, parece algo lejano
comparado a donde está el estado del arte hoy.
—Una más, número 2 por favor.
—Bueno, ha encontrado varios problemas diferentes con el sistema de votación.
¿Podría evaluar qué proporción podría ser fácilmente corregida
y cuáles son inherentes al sistema en sí
y necesitan una re-ingeniería mayor completa?
—Bueno, la cuestión inherente a todos estos sistemas
es que confían en la operación correcta y segura
de cierto código que está corriendo en una máquina
donde la gente no puede ver los votos.
Tú no puedes verificar los votos con tus ojos, con tus manos.
Porque tienen que ser procesados en secreto por una computadora.
Y esa clase de propiedad de caja negra nos lleva directo a la preposición
de que si la computadora es comprometida de algún modo,
digamos a través de ataques supply-chain o ingresando malware,
o uno de estos ataques del estilo de "Reflections on Trusting Trust",
entonces eso puede llevar a comprometer los resultados de la elección.
Y eso es algo difícil de arreglar.
Es lo que el cifrado de verificabilidad por el votante de extremo a extremo
eventualmente intentará corregir.
Las pequeñas cosas, los fallos, el shell-injection, sí, por supuesto
esos son problemas fáciles de arreglar, pero, en la realidad
cuando estás operando una elección y hay una gran vulnerabilidad
en uno de los paquetes en los que se basan tus cosas,
que fue emparchado la noche anterior y no tienes tiempo de repetir pruebas
y reauditar todo el código,
estás ante la opción de, ya sea entregar algo que no fue probado
o entregar algo que tiene vulnerabilidades conocidas.
Así que no sé cómo, en nuestro mundo de seguridad basada
en liberación de parches podemos tratar con problemas como este.
Pienso que es algo donde realmente necesitamos avances fundamentales
en la forma en la que nos manejamos nosotros mismos
con la seguridad informática, antes de que podamos tener una buena solución a eso.
—Así que, sobre todo, lo que está diciendo
es que no hay esperanza de que pudiera haber tales sistemas
y que el lápiz y papel todavía prevalecen
de acuerdo a las propiedades que nos preocupan en una elección.
—El papel y el lápiz tienen una propiedad muy buena:
que tú, como votante, puedes decir cómo ha sido registrado tu voto
y que otra gente puede observar el proceso de escrutinio.
Ahora, tenemos cientos de años de experiencia con fraude boletas de papel.
Así que no estoy diciendo que no haya nada que la tecnología pueda hacer
para mejorar eso. Podemos hacer cosas.
Pero pienso que la manera más prometedora de mejorar las elecciones con papel
no empiezan tirando el papel. Empiezan con el papel, agregando luego
alguna otra tecnología que sea capaz de seguir, de registrar,
de ayudar a auditar ese registro en papel
para asegurarnos de que podemos confiar en el resultado.
—Gracias.
—Quizás dos o tres preguntas más… Número 6 por favor.
—¿Usted cree que es posible diseñar un sistema que
pueda garantizar ambos, la integridad del voto y el anonimato del voto?
Porque creo que esas dos cosas no van completamente juntas.
—Ciertamente, están en tensión.
Estos criptosistemas verificables de extremo a extremo intentan hacer eso.
Pero, como dije, tienen otros problemas con usabilidad, con la implementación
que no han sido resueltos. Ese es ciertamente el objetivo,
pero eso lo hace un problema difícil.
Y creo que eso es lo que a todos nos gustaría ser capaces de construir.
No sabemos cómo hacer eso a gran escala en la práctica todavía.
Estamos trabajando en eso.
Pero no hay garantía de que seamos capaces alguna vez de resolver
esos problemas de manera adecuada.
Quiero rápidamente mostrar como una auto-promoción
las charlas de mis estudiantes y charlas de mis colegas
sobre otros trabajos que estamos haciendo, que por cierto,
puede que ustedes también disfruten, escuchando cómo estamos usando
nuestra herramienta de escaneo zmap, que construimos para estudiar Heartbleed,
cómo compramos un escáner TSA para desnudar en eBay y encontramos
todos esos ataques contra él, y cómo hemos estado desarrollando
con la EFF y Mozilla una autoridad de certificación gratuita
que será nuestro intento de hacer que se encripte toda la web,
así que, auto-promoción. Gracias por quedarse.
—Número 1 por favor.
—Gracias por la charla, pero también por compartir su investigación
en formato de curso gratuito online en Coursera,
"Asegurando la Democracia Digital".
Así que, sé que usted no quiere alardear, yo lo estoy haciendo por usted.
Ahora, para hacer finalmente una pregunta, ¿habrá una siguiente edición?
—Bueno, muchas gracias. Sí, la habrá. Si están interesados en aprender más,
tengo un curso gratuito online de 5 semanas
sobre tecnología de voto digital disponible en Coursera.
Es gratuito, volverá a empezar pronto. De hecho, estoy en el proceso de
liberarlo esencialmente en forma de libro de texto online.
Donde pueden ir y ver las vídeo clases a su propio ritmo.
Si quisieran ver la versión de 10 clases de esta charla
pueden encontrarla en Coursera o encontrar un enlace a ella en mi página.
Muchísimas gracias por mencionarlo.
Gracias a todos.
—Antes de que vayamos a la última pregunta de número 4,
quisiera recordarles que si se van,
por favor, se lleven los desechos con ustedes
y que pueden venir y consultar al disertante después de la charla.
Por favor, número cuatro.
—Mi entendimiento sobre elecciones democráticas
es que deben ser libres y privadas.
Así que, aún si todos los problemas que usted mencionó fueran resueltos,
¿no quedaría aún el problema de que votar en casa no asegura esos principios?
Imagine que algún miembro de la familia fuerza a los otros miembros a votar
lo que él desea… porque ellos no pueden votar en sus propias cabinas.
—Estoy completamente de acuerdo contigo en que es un problema muy difícil,
asegurar al votante un entorno seguro y libre de coerción
cuando votan remotamente por Internet.
Sí, pueden fácilmente imaginar un cónyuge o un empleador coercionando a alguien
para votar de cierta forma.
Un enfoque estonio a eso es interesante esta idea de que ellos permiten
a la persona emitir un voto de reemplazo. Esto hace a la coerción más difícil,
pero no la descarta. Quien coerciona puede tomar
la tarjeta nacional de identificación hasta que la elección haya terminado
para impedir que emitan el voto de reemplazo.
Ellos podrían esperar hasta el último minuto y entonces forzarlos
justo antes de que la votación cierre a emitir el voto de reemplazo.
Yo creo que este es uno de los problemas difíciles
y es una de las concesiones que se hacen a nuestros principios democráticos
cuando decidimos que la votación por Internet es el camino que queremos seguir.
Tal vez haya enfoques tecnológicos que puedan tratar de mejorar eso,
pero no estoy muy confiado en que los haya.
Creo que es un problema abierto donde la respuesta probablemente
sea que la coerción es parte de lo que obtienes a cambio
de la potencial ventaja de votar online.
—Gracias.
—Muchas gracias. Un aplauso por favor.
—Gracias. Gracias.