Sistema simple de voto electrónico

Introducción

En los sistemas convencionales, el votante se dirige a un colegio electoral, introduce su voto, en forma de papeleta, en un sobre, se identifica ante un agente e introduce su voto en una urna. Los sistemas tradicionales separan el proceso de autentificación del votante del proceso recuento de votos, de forma que éstos se realizan de forma independiente.

El proceso de autentificación no tiene acceso al contenido del voto y sirve meramente para evitar que sólo los individuos autorizados puedan ejercer su derecho al voto. Así mismo, el proceso de autentificación es capaz de evitar votos duplicados, es decir, la emisión del mismo voto más de una vez por el mismo individuo, y también es capaz de ofrecer el cómputo de votos recibidos y calcular estadísiticas como el porcentaje de votos recibidos sobre el total de la población con derecho a voto.

El modelo tradicional confía en que el proceso de autentificación fue correctamente realizado, que el transporte entre el sistema de autentificación y el sistema de recuento es fiable (no hay pérdida de datos, ni manipulación del canal, como la eliminación de votos, etc.) y que el registro de los votos no fue alterado. El proceso de recuento es capaz de clasificar el conjunto total de los votos según su contenido, normalmente en un número discreto, finito y normalmente reducido de posibilidades.

Se desea una implementación de sistema de voto electrónico que permita la autentificación del votante a la vez que mantenga el anonimato del voto, conservando la semántica de los sistemas de voto tradicionales.

Presentación

Se propone una solución de voto electrónico en la que intervienen tres entidades:

  • El votante
  • Un sistema de autentificación
  • Un sistema de recuento o registro de votos

El voto se introduce en un sobre, cuyo destinatario final es el sistema de recuento. Este sobre, a su vez, se introduce en otro cuyo destinatario final es el sistema de autentificación. El voto, encapsulado en dos sobres, pasará por los dos sistemas. Primero por el sistema de autentificación que comprobará la identidad del votante, así como que el votante no haya votado ya alguna vez. El sistema de autentificación no tendrá acceso al segundo sobre, que contiene el voto en sí mismo. De esta forma, el voto se oculta del sistema de autentificación. Una vez autentificada la identidad del votante, y sin conocer el contenido del voto, el segundo sobre se envía al sistema de recuento que registrará el voto. El sistema de autentificación elimina la firma digital del votante y la sustituye por la suya a fin de permitir el voto anónimo.

El objetivo del entorno es que el sistema de autentificación no tenga acceso al voto en sí mismo (anonimato) pero pueda validar la identidad del votante, y que el sistema de recuento tenga acceso al voto en sí mismo pero no a la identidad del votante.

Para ello, se propone el siguiente sistema basado en criptografía de clave pública:

E(K, M) Cifrado con f. de clave pública de un mensaje M utilizando una clave K
V Voto electrónico (el equivalente a una papeleta)
IDV Identidad del votante
KEV Clave pública del votante
KDV Clave privada del votante
KEA Clave pública del sistema de autentificación
KDA Clave privada del sistema de autentificación
KER Clave pública del sistema de recuento
KDR Clave pública del sistema de recuento

Premisas

El votante sólo conoce KEV, KDV (su pareja de claves pública y privada) así como KEA y KER. El sistema de autentificación sólo conoce KEV, así como KEA, KDA (su pareja de claves pública y privada) y KER. El sistema de recuento sólo conoce KEA, así como KER y KDR (su pareja de claves pública y privada).

Implementación

A la hora de emitir su voto electrónico, el votante emite el siguiente mensaje, destinado al sistema de autentificación:

MV = E(KDV, E(KEA, TS1 || IDV || E(KER, V)))

Una vez en posesión de MV, el sistema de autentificación puede validar la firma digital de MV descrifándolo con la clave pública del votante, KEV, y obteniendo:

TS1 || IDV || E(KER, V)

El sistema de autentificación puede validar la autenticidad del votante, pero sin tener acceso al contenido del voto en sí mismo, V, al no tener el sistema de autentificación acceso a KDR. El sistema de autentificación debe establecer que IDV coincide con la identidad del votante (por ejemplo, su NIF). En ese caso, el sistema de autentificación validará que el votante V no haya votado con anterioridad, comprobando que la estampa de tiempo TS1 no difiera de la estampa horaria actual en más de un periodo determinado como seguro (por ejemplo, 48 horas). Si la identidad del votante no puede ser comprobada o la estampa horaria TS1 está fuera del intervalo permitido, el mensaje se descarta. En caso contrario, el sistema de autentificación emite el siguiente mensaje, MA, destinado al sistema de recuento:

MA = E(KDA, E(KER, TS2 || TS1 || E(KER, V)))

El sistema de recuento deberá verificar la firma digital de MA. De ser correcta, el sistema de recuento tendrá acceso a:

TS2 || TS1 || E(KER, V)

De no ser correcta, el mensaje MV será descartado. El sistema de recuento comprobará que TS1 = TS2 ±εy que tanto TS1 como TS2 estén dentro de unos márgenes de tiempo aceptables. En ese caso, se podrá proceder a obtener el voto V y registrarlo en un sistema de almacenamiento que sea tamper-resistant (resistente a modificaciones maliciosas o no autorizadas).

Al diferencia de los sistemas tradicionales, donde los votos se acumulan en su totalidad en el sistema de autentificación hasta el cierre de la recepción de votos, el modelo descrito permite dos posibilidades:

  • Acumulación previa:

    Una vez se finalice la admisión de votos, el sistema puede enviar el conjunto de todos los MA acumulados, más el cardinal de dicho conjunto, como un mensaje único firmado digitalmente por el sistema de autentificación.

    Esto ofrece una reducción en la posibilidad de que un agente externo pueda manipular el canal de comunicación entre el sistema de autentificación y el de recuento, invalidando la votación. A su vez, hace que un agente externo pueda invalidar la votación con tan sólo manipular el estado del sistema de autentifcación. Se disminuye el riesgo de compromiso del canal, pero se aumenta el riesgo en caso de compromiso del sistema de autentificación.

  • Envío inmediato:

    Esto ofrece una reducción en la posibilidad de que un agente externo pueda manipular el estado del sistema de autentificación (al ser un sistema store-and-forward, el estado se reduce al mínimo), invalidando la votación. A su vez, hace que un agente externo pueda invalidar la votación con tan sólo manipular el canal de comunicaciones mediante la eliminación selectiva de mensajes. Se disminuye el riesgo de compromiso del estado del sistema de autentificación, pero se aumenta el riesgo en caso de compromiso del canal de comunicaciones.

Particularmente, creo que la segunda opción es la más aconsejable: es más sencillo delegar la seguridad del canal de comunicaciones a protocolos como IPSec y la correcta secuenciación de mensajes a TCP que implementar la seguridad en el propio protocolo de voto electrónico.

Autentificación del votante y anonimato del voto

La seguridad del sistema estriba en que el sistema de recuento desconoce la identidad del usuario que emitió el voto V (IDV), y a la vez que se asegura la autenticidad de éste al ser cada voto anónimo autentificado por el sistema de autentificación. A su vez, el sistema de autentificación sólo tiene acceso a la identidad del usuario que emitió el voto V (IDV), pero no al contenido de su voto.
La seguridad del sistema depende en la relación de confianza del sistema de recuento sobre el sistema de autentificación, así como la capacidad del sistema de autentificación para validar la identidad IDV del votante correctamente, y la capacidad del sistema de recuento para almacenar el recuento de votos de manera que no se pueda manipular maliciosamente.

El modelo descrito sólo es capaz de detectar si el contenido de un voto es inválido en el sistema de recuento. Llegado a este punto, y dado que este sistema no tiene acceso a la identidad del votante, lo único que puede hacer es marcar el voto como inválido. El modelo descrito permite, por lo tanto:

  • Voto válido
  • Voto en blanco
  • Voto inválido

Será necesario determinar si estas características son deseables a la hora de aplicar el modelo aquí descrito.

Advertisements

5 thoughts on “Sistema simple de voto electrónico

  1. Pingback: Noticias » Blog Archive » Sistema simple de voto electrónico

  2. Pingback: MiniNoticias » Blog Archive » Sistema simple de voto electrónico

  3. To Robin’s point, someone once stated that Metallica was influenced by Charlie Parker. It seems a little doubtful to me that Metallica spent much of their formative years sitting around trasncribing Charlie Parker solos, but that’s not what they meant. What they meant was, Charlie Parkers influence on modern music was so great that it worked it’s way in to the big band jazz soundtracks of 60s cartoons, thereby influencing Metallica.

  4. Excellent post. I was checking constantly this blog and I am impressed! Very useful info specifically the closing phase I care for such information much. I was looking for this certain info for a very long time. Thanks and good luck.

  5. My spouse and I absolutely love your blog and find the majority of your post’s to be precisely what I’m looking for. Do you offer guest writers to write content for you personally? I wouldn’t mind composing a post or elaborating on many of the subjects you write regarding here. Again, awesome web log!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s