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.
subtitles created by c3subtitles.de
Join, and help us!