DEMOKRATIAN, viene de la palabra en esperanto "democracia" y es una aplicación web que permite realizar distintos tipos de votaciones online. Todos los miembros registrados podrán votar de una forma sencilla con la seguridad de que su voto es secreto.
DEMOKRATIAN es software libre bajo licencia agpl-3.0 (GNU Affero General Public License) por tanto eres libre de instalarlo y usarlo sin coste alguno, pero si necesitas soporte técnico o alguna cosa especial podemos hacerte un presupuesto.
Aunque Demokratian no tenga coste y salga gratis, se agradece si puedes hacer una donación para el mantenimiento del proyecto
DEMOKRATIAN está en pleno desarrollo, y se está usado o se ha usado para realizar votaciones en muchos sitios alguno de los cuales puedes ver en esta lista
(Lista de sitios que han usado o estan usando DEMOKRATIAN).
DEMOKRATIAN permite, además de hacer votaciones a través de internet, hacer votaciones simultáneamente en "urna" (forma presencial) ya que permite ver en tiempo real si un usuario ha votado online e impedir el voto a los que lo realizan de forma presencial.
CARACTERÍSTICAS PRINCIPALES
Está escrita en el lenguaje de programación PHP y usa una base de datos MySQL con lo que se puede instalar y usar en la mayor parte de los servidores web.
A la hora de diseñar la aplicación, estos han sido los criterios y funcionalidades principales:
- Facilidad de instalación y uso, tanto por parte de los votantes como por parte de los administradores de las votaciones
- No trazabilidad del voto, su voto es secreto y nadie puede saber qué ha votado. (a excepción del tipo de votación debate ya que en este tipo puede modificar el sentido de su voto a medida que transcurre el debate)
- Una fácil gestión de votantes, de forma que se pueda tramitar por parte del administrador los censos de votantes y que además estos puedan votar en función del tipo de votación que hayamos elegido si son afiliados/asociados o simpatizantes
- La plataforma permite diferentes ámbitos de votación, se estará censado en una provincia y municipio, y podrá votar todas aquellas consultas provinciales y municipales que se creen, además podrá participar en las consultas de su Comunidad Autónoma, y en las Estatales.Además de estas circunscripciones también podemos participar en grupos de trabajo a los cuales el usuario deberá de apuntarse para poder participar. Estos grupos de trabajo también pueden ser de ámbito estatal, autonómico o provincial y podrán ser moderados o abiertos.
- Permite varios tipos de votación, actualmente hay 4 tipos de votaciones. Se puede elegir entre:
- Voto ponderado (Primarias, recuento Borda o Dowdall ).
- VUT. El Voto Único Transferible es un sistema de votación diseñado para medir la voluntad de los votantes con más precisión que con el voto convencional.
- Encuesta. Permite elegir una opción o más entre varias. Es un voto que no tiene ningún tipo de ponderación.
- Debate. Este tipo de votación es una fórmula mixta de foro y votación en el que se pueden enviar comentarios cortos que aparece publicado en un tablón al estilo facebook y además, si se necesita, votar una o varias preguntas. El usuario podrá modificar su voto a medida que transcurre el debate si cambia de opinión. Este sistema no asegura la no trazabilidad del voto, es decir, si alguien accede a la base de datos podría llegar a ver qué ha votado algún usuario, además no implementa alguna de las medidas de seguridad descritas posteriormente ya que el votante puede ver en todo momento su voto
- El sistema es compatible con voto en urna y voto online al mismo tiempo ya que permite comprobar si una persona ha votado online, e impedir el voto online si lo hace presencialmente (en urna). Además, para facilitar el posterior recuento si el voto es ponderado, se puede incluir los votos por parte de los interventores en el sistema de forma manual quedando registrados los votos procedentes de urna así como los interventores involucrados por si hay que realizar controles posteriores.
Si has leído la información de la página de inicio, puedes empezar a leer por aquí
ESQUEMA y MODELO DE DATOS SIMPLIFICADO:
CUESTIONES DE SEGURIDAD, PRIVACIDAD y VERIFICABILIDAD
La seguridad absoluta en votaciones en red no existe, pero se ha intentado reducir al máximo las posibilidades de uso fraudulento de la plataforma.
Por un lado, la aplicación está dirigida a censos, es decir, solo pueden votar las personas que están censadas, por tanto, una parte fundamental es tener unos censos de calidad y fiables. De poco sirve tener la plataforma más segura del mundo si su censo permite votar a personas no deseadas o inexistentes.
Además, el voto está absolutamente separado del votante, es decir en la base de datos donde se guardan los votos ambos datos están separados y no hay posibilidad de relacionar un dato con otro. Al contrario que otros sistemas de votación que mantienen vinculación de este dato y necesitan por tanto complicados sistemas de encriptación para evitar problemas. En ese sentido el sistema ha sido creado pensando en los modelos de votación tradicional en el que una vez metes tu voto en la urna no puede ser modificado ni puede conocerse que ha votado el votante (aunque en aras de la verificabilidad individual hay una posibilidad que no compromete la privacidad, que se explica más adelante).
Se ha primado la transparencia por encima de todo, cualquiera puede ver que los votos son los que son y pueden ser listado directamente desde la base de datos sin necesidad de complicados programas o sistemas de desencriptación que generan al usuario con bajos conocimientos mucha inseguridad al no estar claro que los algoritmos no pueden estar cambiando datos. De hecho, cuando se activan los resultados de la votación, cualquier votante podrá ver todos los votos que hay en “la urna virtual” y mediante un código que se genera automáticamente cuando se vota y que el usuario puede guardar en ese momento, podrá comprobar que su voto sigue alli,no ha sido alterado y se ha contabilizado correctamente.
Para evitar que se puedan meter ilegalmente votos en la base de datos se han creado varios sistemas de seguridad, por un lado se guarda una segunda copia de los datos, esta vez si, encriptados de forma unidireccional con el algoritmo SHA-256, posteriormente mediante comparación de datos se comprueba si hay diferencias.
Además se guarda una tercera copia (en fichero aparte y con acceso restringido) de los datos en el propio servidor de forma que si alguien tiene acceso a la base de datos quedaría una copia con un acceso más difícil.
Adicionalmente, se guarda en cada voto una referencia (hash) de una combinación secreta de los 5 últimos votos que permite, (al final de la votación se revela dicha) combinación, una nueva comprobación de la integridad de los datos.
Por último, el sistema tiene otra capa de seguridad, muy aconsejable en aras de la transparencia, que puede habilitarse también por el administrador, y es el envío de un correo anónimo con cada voto a interventores independientes (que lógicamente serán limitados en número), es decir, se envía un correo en el que no figura ninguna referencia del votante con los datos numéricos de su voto, sería una especie de “copia en papel” de cada voto. Para el uso de este sistema el buzón de correo de los interventores tiene que estar habilitado para que no rechace los correos como spam.
En todo el proceso de votación no se encripta el voto de forma asimétrica en el ordenador cliente ya que puede tener varios inconvenientes entre ellos ataques por “Man-in-the-middle”, por ello se recomienda el uso de servidores seguros SSH para que la información viaje codificada.
Hay quien considera que los datos deben de ser encriptados en el cliente para evitar que un administrador malicioso pueda modificar el código y capturar los datos de los votos, esto es del todo ridículo ya que si hay un administrador malicioso podría cambiar el código para que el cliente envíe los datos dobles, encriptados y sin encriptar. (En todo caso esto se resolvería con la posibilidad de poder auditar en todo momento el código que se está ejecutando en el servidor por programadores independientes).
Uno de los métodos implementados en demokratian para la verificación de la integridad del voto por parte del votante (verificabilidad individual), es que al terminar el proceso de votación, el sistema entrega una clave alfanumérica única que el votante puede guardar para posteriormente, cuando termine la votación y se listen todos los votos que han sido usados en el recuento pueda comprobar que se encuentra allí su voto.
Otro método (puede habilitarse a elección del administrador) es que el votante, cuando está realizando el proceso del voto introduzca una clave que desee (el sistema se asegura de que ésta es única), que es encriptada de forma unidireccional (no puede ser desencriptada) y una vez terminado el proceso de votación, cuando los resultados sean públicos, podrá introducir su clave para comprobar que su voto se encuentra correctamente registrado.
Cualquier sistema informático es como norma inseguro, depende en gran medida de la integridad de administradores del sistema, sea cual sean las medidas implementadas para securizarlo.
Otros sistemas de votación ”lo fían” todo a complicados sistemas de encriptación, pero incluso con sistemas de encriptación asimétrica o de doble llave existen las mismas vulnerabilidades a la inclusión de voto de forma ilegal ya que las claves públicas, las que encriptan el voto, están accesibles en todo momento en el servidor, o cadena de servidores si se usan sistemas tipo mixnets más pensados para la ofuscación.
Usabilidad de la aplicación
Una de las características de la aplicación es que se ha intentado que sea muy sencillo su uso, tanto la instalación del software, como la gestión de la plataforma por parte de los administradores, y el uso por parte de los votantes. Además el lenguaje de programación usado, PHP y la base de datos, MySQL, hace que pueda instalarse en la mayor parte de los servidores web.
El usuario votante, cuando acceda podrá ver las votaciones activas, pueden existir varias votaciones activas y de diferentes circunscripciones, a un votante de Málaga se le puede estar preguntando por la lista electoral de su provincia (solo votan los censados de esa provincia), y a la vez por el cabeza de lista nacional que votaran los censados de toda España, incluso podría estar votando alguna decisión de su pueblo a la que obviamente solo tendrían acceso los inscritos de esa población.
Además, la aplicación permite también la creación de grupos de trabajo por circunscripciones general, autonómica o provincial que pueden ser cerradas, requieren la autorización del administrador del grupo para acceder, o abiertas
La forma de votar depende del tipo de recuento elegido, en sistemas ponderados hay que ordenar la lista de candidatos, para mantener la paridad ( si es una elección paritaria) se elige en dos listas teniendo que escogerse mismo número de candidatos del género masculino como del género femenino. Si no es una elección paritaria o lo que se eligen son opciones aparecerá una sola lista.
Para el administrador, la aplicación resulta igual de fácil de usar.
La creación y/o modificación de una votación se hace mediante un formulario en el cual hay que completar los datos necesarios
La votación se administra mediante un panel de control que permite la gestión de las diferentes opciones de forma muy sencilla.
Para añadir opciones o candidatos se puede hacer también mediante un sencillo formulario que además permite subir y recortar una imagen que queremos que se visualice en cada opción o candidato.
De la misma forma , existe un módulo que permite la gestión de los censos de la aplicación, añadir o modificar votantes de forma masiva, o de uno en uno.
Otros sistemas que incorpora, es el bloqueo de censados para que no puedan votar, existiendo varias opciones, por ejemplo, que van a votar en urna, o que van a participar en un congreso y van a ejercer su derecho al voto alli, etc.