Vérifiez vous-même le secret du vote | METIS Italia Aller au contenu

Sécurité du vote

Vérifiez par vous-même

Nous ne vous demandons pas de nous faire confiance. Voici ce que vous pouvez vérifier vous-même, ou faire vérifier par un technicien, pour être sûr que le système ne sait pas et ne peut pas savoir ce que vous avez voté.

Le noyau du vote

Le secret du vote ne dépend que de 5 fichiers. Leurs empreintes (SHA-256) sont calculées maintenant, sur les fichiers utilisés par le serveur. Si un seul caractère change, l'empreinte change complètement.

Version 1.1 du 09/11/2026 Expertise indépendante en cours : la version est publiée mais pas encore vérifiée par un tiers. Voter first and last name encrypted with the election key: the "About you" box decrypts them before showing them. Blind signature, ballot box and receipt unchanged.
FichierEmpreinte SHA-256
js/AN05_blind.js8ecfe8d8b1d51c1aaba7b1021baa9a360bda79e4c8df58161d82e648318dab26
js/AN05_voto.jsbe40074f8abe90e0fe86334a5a5a77fd0dbd4b0527f8bc45f9d52cd65016b370
AN05_voto_firma.php7ff0bd7c0bba21594360530605e40906b8c0cc3f633e8b675f449ffd30ae2650
AN05_voto_urna.phpa4e98db625c2aa44c78b3f8dae273ec08e96ecaa635a419fe78c3ddedc876531
includes/AN05_blind.phpf8350ed80e3e1f10017c7f027235dabb79681ff14f02d4c7893c54c10dc04679
Empreinte du noyau2c002f34578595611a3fa2339eed4dc61fe71b369307630917c5bd8f7b077c51

S'obtient avec : sha256sum js/AN05_blind.js js/AN05_voto.js AN05_voto_firma.php AN05_voto_urna.php includes/AN05_blind.php | sha256sum

Registre public des versions (hors de notre site)

Un site peut mentir sur ses propres empreintes : c'est pourquoi la même liste est aussi publiée dans une archive externe et dans l'expertise. Comparez les empreintes ci-dessus avec celles du registre.

https://github.com/marcoterzolo/metisitalia-nucleo-voto

Le fichier dans votre navigateur

Le travail qui protège le secret (mettre le « masque » sur votre vote) est fait par votre navigateur, avec deux fichiers que vous pouvez télécharger et vérifier.

  1. Ouvrez ces deux adresses et enregistrez les fichiers (clic droit, « Enregistrer sous ») : https://www.metisitalia.it/js/AN05_blind.js et https://www.metisitalia.it/js/AN05_voto.js.
  2. Calculez l'empreinte de chaque fichier. Windows : ouvrez l'Invite de commandes et tapez certutil -hashfile AN05_blind.js SHA256 . Mac : Terminal, shasum -a 256 AN05_blind.js . Linux : sha256sum AN05_blind.js .
  3. Comparez le résultat avec l'empreinte de la même ligne ci-dessus et avec celle du registre public. Elles doivent être identiques.
  4. Pendant le vote, vous pouvez le refaire depuis le bulletin : outils de développement (F12), onglet « Sources » ou « Réseau », les deux mêmes fichiers.

Ce qui sort du navigateur

Ouvrez le bulletin, appuyez sur F12, choisissez l'onglet « Réseau » (Network) et votez. Vous verrez deux requêtes vers le serveur, à quelques secondes d'intervalle.

1. AN05_voto_firma.php

Elle contient votre lien personnel et un long nombre illisible (l'enveloppe fermée). Vos choix n'y sont PAS. Le serveur signe le nombre sans pouvoir le lire.

2. AN05_voto_urna.php

Elle contient les choix, le jeton et la signature. Elle ne contient PAS votre lien ni de cookies (vérifiez l'en-tête « Cookie » : il est absent). Elle part après une attente aléatoire de 5 à 20 secondes, pour ne pas pouvoir être rapprochée de la première.

Il n'y a rien en commun entre les deux requêtes que le serveur pourrait relier : le nombre de la première est « masqué » avec une valeur qui reste uniquement dans votre navigateur.

Comment est faite l'urne

Voici les vraies colonnes des deux tables où arrivent les bulletins, lues maintenant dans la base de données (structure seulement, aucune donnée). Aucune colonne ne contient le nom, l'e-mail, le lien, l'heure ou l'adresse IP.

op11_schede
ColonneTypeÀ quoi elle sert
op11_idchar(32)clé aléatoire du bulletin (pas un numéro d'ordre : l'ordre ne révèle rien)
op11_an05_idbigintvote
op11_ricevuta_hashchar(64)empreinte du code de reçu (pour la vérification)
op11_sceltevarchar(500)les choix
op11_datadateseulement le jour, sans l'heure
op12_gettoni_spesi
ColonneTypeÀ quoi elle sert
op12_hashchar(64)empreinte du jeton déjà utilisé (empêche de voter deux fois)
op12_an05_idintvote

La même clé pour tous

Une astuce possible serait de donner à chaque électeur une clé différente, pour le reconnaître à la signature. Pour l'exclure, avec le reçu votre navigateur calcule l'empreinte de la clé qu'il a réellement utilisée. La même empreinte figure sur la page des résultats et dans le procès-verbal : si tout le monde voit la même, personne n'a reçu de clé « personnelle ».

Ce que nous ne pouvons pas prouver

  • Le serveur web (Aruba) enregistre l'adresse IP et l'heure de chaque requête, comme tous les sites. L'attente aléatoire et la requête anonyme rendent très difficile de relier les deux requêtes, mais avec très peu de votants et un accès à ces journaux, ce n'est pas impossible en théorie.
  • Les empreintes des fichiers PHP ne peuvent être vérifiées que par quelqu'un qui a accès au serveur : c'est pourquoi le registre externe et l'expertise indépendante sont nécessaires.
  • Les votes créés avant la signature aveugle utilisent encore l'ancien système : cette page vaut pour ceux qui ont la signature aveugle (tous les nouveaux).

Explication complète de la signature aveugle

Pour les experts

Si vous devez certifier le système pour un client, nous pouvons vous fournir : le code du noyau (aussi dans le registre public), la description du protocole, la liste des tests déjà faits et comment les refaire, un environnement de test et la structure complète de la base de données (sans données). Écrivez-nous depuis la page Contact.

Nous contacter