Instrucciones para las autoridades de emisión de credenciales
El rol principal de la autoridad de emisión de credenciales es generar y transmitir una credencial privada a cada votante.
Configuración
Durante la configuración de la elección, la autoridad de credenciales recibirá:
- Un enlace con la siguiente la siguiente forma:
https://votar.unc.edu.ar/credauth#generate/UUID/TOKEN
. - Un archivo en formato CSV con dos columnas, una llamada
fullname
que contiene el nombre completo de cada votante, y otra llamadaemail
que contiene su dirección de correo electrónico.
El enlace conduce a una página como la siguiente:
En esta página se encuentra la lista de direcciones de correo electrónico de los votantes. La autoridad de credenciales debe verificar que la lista coincida con las direcciones de correo del archivo CSV recibido.
Al hacer clic en Generar aparecerá una página como esta:
En esta página es necesario realizar tres acciones:
- Descargar las acreditaciones privadas. Estas se guardarán en el archivo
creds.txt
, que es un archivo en formato JSON que contiene el mapeo de direcciones de correo electrónico a credenciales. Este archivo debe guardarse en un lugar seguro (contenedor cifrado, memoria USB guardada en un lugar cerrado, etc.) porque es una protección contra la introducción de votos fraudulentos. También permitirá a la autoridad de credenciales enviar de nuevo la credencial a un votante que la haya perdido. - Descargar el censo electoral. Este se guardará en el archivo
voters.txt
. - Enviar las acreditaciones públicas, mediante el botón que se habilitará después de haber realizado los dos pasos anteriores. Una vez realizado este paso, la página indicará que las acreditaciones han sido recibidas y verificadas.
También es necesario guardar:
- la URL de la elección;
- la huella digital (fingerprint) de la lista de votantes.
- la huella digital (fingerprint) de las credenciales públicas.
La autoridad de credenciales es la responsable de enviar a los votantes, mediante correo electrónico, las credenciales y la URL de la elección.
Para enviar las credenciales por correo electrónico, es posible usar el script send_credentials.py
disponible en el repositorio https://gitlab.unc.edu.ar/belenios-unc/send-credentials. El archivo README.md
contiene las instrucciones necesarias para la ejecución del script.
Fase de votación
Tan pronto como la elección esté abierta, y al final de la elección, se espera que la autoridad de credenciales:
- verifique que el número de votantes corresponde a la lista de votantes usada durante la configuración y que el fingerprint de la lista de votantes corresponde al fingerprint guardado previamente;
- verifique que el fingerprint de la lista de las credenciales públicas corresponde con el guardado;
- envíe, cuando un votante lo solicite, su credencial privada si la ha perdido.
Después del cierre de la elección
Al final de la elección, para validar los registros, se espera que la autoridad de credenciales:
verifique que los registros de votación proporcionados por el administrador corresponden a las papeletas en la urna. Esta verificación se puede hacer con el comando
belenios-tool
:belenios-tool election compute-voters --privcreds PRIVCREDS --url https://votar.unc.edu.ar --uuid UUID
(donde PRIVCREDS es el nombre del archivo que contiene las credenciales privadas, y UUID es el identificador de la elección).
La lista resultante de este comando debe coincidir con la obtenida por el administrador (quizás en un orden diferente).
Una vez que la elección esté finalizada y validada, se espera que la autoridad de credenciales:
- destruya el archivo
creds.txt
. De hecho, este archivo proporciona el vínculo entre un votante y su papeleta (cifrada). Este vínculo podría comprometer el secreto del voto a largo plazo, por ejemplo, si las claves de cifrado se vuelven demasiado débiles para la capacidad de cómputo futura (o si un ordenador cuántico estuviera disponible…).