Conferencia del investigador en seguridad informática J. Alex Halderman en el 31st Chaos Communication Congress (31C3) realizado en Hamburgo, Alemania, en diciembre de 2014. Aunque el tema central es el sistema de votación a través de Internet de Estonia, Halderman toca numerosos aspectos relacionados con los sistemas de voto electrónico en general.
Descargar:
A continuación, la transcripción en español.
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.