Wahlgeheimnis selbst prüfen | METIS Italia Zum Inhalt springen

Sicherheit der Abstimmung

Prüfen Sie selbst

Wir verlangen nicht, dass Sie uns vertrauen. Hier steht, was Sie selbst prüfen oder von einer Fachperson prüfen lassen können, um sicher zu sein, dass das System nicht weiß und nicht wissen kann, wie Sie abgestimmt haben.

Der Kern der Abstimmung

Das Wahlgeheimnis hängt nur von 5 Dateien ab. Ihre Fingerabdrücke (SHA-256) werden jetzt berechnet, auf den Dateien, die der Server verwendet. Ändert sich auch nur ein Zeichen, ändert sich der Fingerabdruck vollständig.

Version 1.1 vom 09/11/2026 Unabhängiges Gutachten läuft: Die Version ist veröffentlicht, aber noch nicht extern geprüft. 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.
DateiSHA-256-Fingerabdruck
js/AN05_blind.js8ecfe8d8b1d51c1aaba7b1021baa9a360bda79e4c8df58161d82e648318dab26
js/AN05_voto.jsbe40074f8abe90e0fe86334a5a5a77fd0dbd4b0527f8bc45f9d52cd65016b370
AN05_voto_firma.php7ff0bd7c0bba21594360530605e40906b8c0cc3f633e8b675f449ffd30ae2650
AN05_voto_urna.phpa4e98db625c2aa44c78b3f8dae273ec08e96ecaa635a419fe78c3ddedc876531
includes/AN05_blind.phpf8350ed80e3e1f10017c7f027235dabb79681ff14f02d4c7893c54c10dc04679
Fingerabdruck des Kerns2c002f34578595611a3fa2339eed4dc61fe71b369307630917c5bd8f7b077c51

Ergibt sich aus: sha256sum js/AN05_blind.js js/AN05_voto.js AN05_voto_firma.php AN05_voto_urna.php includes/AN05_blind.php | sha256sum

Öffentliches Versionsregister (außerhalb unserer Website)

Eine Website kann über ihre eigenen Fingerabdrücke lügen: Deshalb wird dieselbe Liste auch in einem externen Archiv und im Gutachten veröffentlicht. Vergleichen Sie die Fingerabdrücke oben mit denen im Register.

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

Die Datei in Ihrem Browser

Die Arbeit, die das Geheimnis schützt (Ihre Stimme zu "maskieren"), erledigt Ihr Browser mit zwei Dateien, die Sie herunterladen und prüfen können.

  1. Öffnen Sie diese beiden Adressen und speichern Sie die Dateien (Rechtsklick, "Speichern unter"): https://www.metisitalia.it/js/AN05_blind.js und https://www.metisitalia.it/js/AN05_voto.js.
  2. Berechnen Sie den Fingerabdruck jeder Datei. Windows: Eingabeaufforderung öffnen und certutil -hashfile AN05_blind.js SHA256 eingeben. Mac: Terminal, shasum -a 256 AN05_blind.js . Linux: sha256sum AN05_blind.js .
  3. Vergleichen Sie das Ergebnis mit dem Fingerabdruck in derselben Zeile oben und im öffentlichen Register. Sie müssen identisch sein.
  4. Während der Abstimmung können Sie es auf dem Stimmzettel wiederholen: Entwicklertools (F12), Reiter "Quellen" oder "Netzwerk", dieselben zwei Dateien.

Was Ihren Browser verlässt

Öffnen Sie den Stimmzettel, drücken Sie F12, wählen Sie den Reiter "Netzwerk" und stimmen Sie ab. Sie sehen zwei Anfragen an den Server, einige Sekunden auseinander.

1. AN05_voto_firma.php

Sie enthält Ihren persönlichen Link und eine lange unlesbare Zahl (den verschlossenen Umschlag). Ihre Auswahl ist NICHT dabei. Der Server signiert die Zahl, ohne sie lesen zu können.

2. AN05_voto_urna.php

Sie enthält die Auswahl, das Token und die Signatur. Sie enthält NICHT Ihren Link und keine Cookies (prüfen Sie den Header "Cookie": er fehlt). Sie wird nach einer zufälligen Wartezeit von 5-20 Sekunden gesendet, damit sie nicht der ersten zugeordnet werden kann.

Zwischen den beiden Anfragen gibt es nichts Gemeinsames, das der Server verknüpfen könnte: Die Zahl der ersten ist mit einem Wert "maskiert", der nur in Ihrem Browser bleibt.

Wie die Wahlurne aufgebaut ist

Das sind die echten Spalten der beiden Tabellen, in denen die Stimmzettel landen, jetzt aus der Datenbank gelesen (nur die Struktur, keine Daten). Es gibt keine Spalte mit Name, E-Mail, Link, Uhrzeit oder IP-Adresse.

op11_schede
SpalteTypWofür
op11_idchar(32)zufälliger Schlüssel des Stimmzettels (keine laufende Nummer: die Reihenfolge verrät nichts)
op11_an05_idbigintAbstimmung
op11_ricevuta_hashchar(64)Fingerabdruck des Belegcodes (für die Prüfung)
op11_sceltevarchar(500)die Auswahl
op11_datadatenur der Tag, ohne Uhrzeit
op12_gettoni_spesi
SpalteTypWofür
op12_hashchar(64)Fingerabdruck des verbrauchten Tokens (verhindert doppelte Stimmabgabe)
op12_an05_idintAbstimmung

Derselbe Schlüssel für alle

Ein möglicher Trick wäre, jeder wahlberechtigten Person einen anderen Schlüssel zu geben, um sie an der Signatur zu erkennen. Um das auszuschließen, berechnet Ihr Browser mit dem Beleg den Fingerabdruck des Schlüssels, den er wirklich verwendet hat. Derselbe Fingerabdruck steht auf der Ergebnisseite und im Protokoll: Sehen alle denselben, hat niemand einen "persönlichen" Schlüssel erhalten.

Was wir nicht beweisen können

  • Der Webserver (Aruba) speichert wie jede Website IP-Adresse und Uhrzeit jeder Anfrage. Die zufällige Wartezeit und die anonyme Anfrage machen es sehr schwer, beide Anfragen zu verknüpfen, aber mit sehr wenigen Abstimmenden und Zugriff auf diese Protokolle ist es theoretisch nicht unmöglich.
  • Die Fingerabdrücke der PHP-Dateien kann nur prüfen, wer Zugang zum Server hat: Deshalb braucht es das externe Register und das unabhängige Gutachten.
  • Abstimmungen, die vor der blinden Signatur angelegt wurden, verwenden noch das alte System: Diese Seite gilt für Abstimmungen mit blinder Signatur (alle neuen).

Vollständige Erklärung der blinden Signatur

Für Gutachter

Wenn Sie das System für einen Kunden zertifizieren müssen, stellen wir bereit: den Code des Kerns (auch im öffentlichen Register), die Beschreibung des Protokolls, die Liste der bereits durchgeführten Tests und wie man sie wiederholt, eine Testumgebung und die vollständige Datenbankstruktur (ohne Daten). Schreiben Sie uns über die Kontaktseite.

Kontakt