Fondo
Buscando crear un sistema de votación anónimo. El sistema debe rastrear si un usuario votó o no sobre un elemento (información pública), pero solo ese usuario puede saber si votó a favor o en contra de un elemento (información privada).
Los usuarios deben iniciar sesión con un identificador único y una contraseña.
Problema
Todos los datos y todo el software están abiertos al público para su inspección.
Pregunta
¿Cómo evitaría que las personas minen la base de datos pública para descubrir cómo votaron los electores, y al mismo tiempo permitirles ver cómo votaron?
Idea # 1
Encriptar:
- El lado del cliente encripta el voto (arriba / abajo) usando AES ( JSAES ) en contra de su contraseña con hash.
- El cliente envía el voto (para el recuento) y el voto cifrado AES al servidor.
- El servidor registra la cuenta (pública) y el voto encriptado AES (a favor / en contra) por separado.
Descifrar:
- El cliente solicita el registro de votos.
- El servidor transfiere el voto cifrado AES.
- El cliente decodifica el voto cifrado AES utilizando una contraseña con hash.
Imagino dos instancias de contraseña con hash: una para la contraseña encriptada AES aplicada a los votos y otra para la contraseña real del usuario.
Para fines de autenticación, el cliente puede enviar un hash de la contraseña repetida dos veces para usarla en el hash de la contraseña real. No sé si eso agregaría información que los atacantes podrían usar para dirigirse a la votación encriptada AES.
Restricciones
El sistema tiene las siguientes restricciones:
- Todos los datos se transfieren a través de un protocolo seguro (por ejemplo, HTTPS).
- La gente usa el sistema en privado (es decir, no se asoma a las pantallas).
- Sistema basado en la web (no se puede almacenar información de forma permanente en las computadoras de los usuarios).
Reducir las pérdidas de compra
El sistema implica votar por las políticas. Las políticas se envían de forma anónima, están sujetas a moderación y requieren una reputación suficiente (como StackExchanges) antes de "estar activas". Puede cambiar su voto en cualquier momento, por lo que incluso si recibió (de alguna manera) un pago, el pagador no tiene garantía de que no cambie la votación después del pago. Una vez que se promulgue la política, ya no podrá ver cómo votó.
Enlaces relacionados
Relacionados: