Bonjour,
je recherche un logiciel qui permette d'organiser des élections sur internet.
Le principal problème que je me pose est celui de la sécurité. Admettons une base SQL avec tous les utilisateurs, un générateur de mots de passe, une connexion sécurisée (https), comment envoyer aux utilisateurs leur mot de passe non crypté (qui ne serait pas présent dans la base donnée) sans que personne (pas même l'administrateur de la machine ni le service courrier) n'y ait accès ? Comment assurer une traçabilité, en cas de litige, pour qu'une personne soit sure que son vote a bien été pris en compte ? Comment assurer que le vote reste secret, c'est à dire que l'administrateur ne puisse savoir qui a voté pour qui ?
# questions...
Posté par ragoutoutou . Évalué à 2.
Quel est le mode de recensement des utilisateurs?
Comment les utilisateurs sont-ils définis actuellement?
On ne peut pas sécuriser une chaîne si on en attrape pas un bout.
[^] # Re: questions...
Posté par celastus . Évalué à 1.
Par une liste de noms et d'adresses postales
> Quel est le mode de recensement des utilisateurs?
C'est un sous-ensemble des employés d'une entreprise
> Comment les utilisateurs sont-ils définis actuellement?
Des regles de gestion claires permettent de définir, à partir du fichier des employés de l'entreprise, qui est électeur et qui ne l'est pas
# Vote invalide
Posté par arnaudus . Évalué à 2.
Pour les problèmes techniques, ça me parait encore plus délicat. Soit tu donnes l'enveloppe contenant le mot de passe en personne, soit il faut un artifice particulier (du type de ces enveloppes que tu ne peux ouvrir qu'en déchirant des pointillés, ou un code caché derrière un scotch noir qui ne peut pas être recollé).
J'espère ne pas dire de conneries, mais :
* On a N clés C1 distribuées sous forme de mot de passe de manière confidentielle
* On a N clés C2 sans aucune autre info stockées sur le serveur
* On a N checksum S générés par C1 * C2, stockés sur le serveur, et les C1 sont définitivement supprimées du serveur.
Quand on vote, on rentre sa clé C1, le serveur la combine avec toutes les C2 existantes jusqu'à tomber sur un S : il valide le vote, stocke le résultat et supprime le C2 et le S qui ont matché.
Ce qui est sûr, c'est que l'admin du serveur a accès à des données sensibles, mais c'est inévitable, mais il ne peut pas reconstituer les mots de passe. De toutes manières il aura aussi les logs avec les IP etc, donc tu ne peux pas empêcher un point faible de ce côté là. On peut certainement bricoler un truc avec deux serveurs et deux admins différents pour plus de sécurité.
Enfin en fait j'y connais pas grand chose, donc c'est peut-être complètement idiot mon truc.
[^] # Re: Vote invalide
Posté par Raphaël G. (site web personnel) . Évalué à 3.
Soit tu a dans l'entreprise un système de messagerie électronique qui gère le chiffrement avec une clef par utilisateur.
Dans ce cas là tu fait un petit script php ou autre qui fait ceci :
- génération du mot de passe
- insert ENCRYPT('ton_mot_de_passe'), login .... dans ta base sql
- génère un mail
- chiffre avec la clef publique le mail de l'utilisateur
- envoie
- Suppression du fichier de log de transaction de mysql !
(sinon tu va avoir tes insert en clair avec les logins !)
Après tu monte une machine sous clef en isoloir pour que les utilisateurs puisse voter.
Si il y a un utilisateur qui a déjà eu un vote fait a sa place tu a eu un trou quelque part...
Après ton système de vote tu choisi d'associer un vote a un id ou non, c'est a toi de voire...
Au pire un couple id+mot de passe sans association avec la personne physique serait mieux (ou séparé dans une autre base) histoire de pouvoir ne pas savoir qui a voté quoi (tout en permettant un dépouillement des voies avec vérification)
Après une autre solution est une url générée a la con, qui te met une page du style : connaître mon identifiant et mot de passe.
(évite la page directe qui génère le mot de passe unique sinon tu va être ennuyé si l'utilisateur la recharge parce que ça foire la première fois si tu veux un ticket unique)
Dans ce système tout le monde vote sur la machine isoloire, puis tu valide un a un les identifiant des votants.
(vérification carte identité+identifiant, y a plus qu'a forger ton select avec les identifiants validés, les autres votes poubelle, on peux les voir comme frauduleux)
Bref, tu est toujours ennuyé parce que tu dois faire le lien entre la personne, son identifiant de manière humaine (ne serait-ce que pour savoir si il a bien voté), puis la correspondance entre mot de passe et identifiant pour le vote en lui-même.
Bref tu te retrouve avec deux table de correspondance identité(=)identifiant(=)mot de pass(alias le vote correspondant), donc ton seul soucis est que personne ne puisse avoir accès a la table correspondance identité(=)identifiant.
Conclusion c'est la misère pour être sur que personne saura qui a voté quoi, et il faut détruire les tables après le vote...
[^] # Re: Vote invalide
Posté par Alex . Évalué à 1.
une clée privée générée par l'utilisateur puis signé par une CA de ton coté, le numéro de série de chaque certificat étant unique, il te permet coté serv d'identifier l'utilisateur. La clé privé étant générée coté user, ton root n'y aura jamais accès.
Apache + mod_ssl savent faire l'authent par certificat, reste a avoir lappli derrière qui le gère aussi...
[^] # Re: Vote invalide
Posté par Alex . Évalué à 1.
# Le vote électronique c'est mal ...
Posté par Olivier Guerrier . Évalué à 2.
Si c'est pour accélerer le temps de traitement, tu peux aussi mettre un code barre sur les bulletins...
# demexp
Posté par rootix . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.