adjust argon2 parameters, update readme

This commit is contained in:
Christian Staudte 2020-11-05 12:45:45 +01:00
parent e8e5a14494
commit 7c3e64a3d1
Signed by: christian.staudte
GPG key ID: 88ED5070FE0D5F23
2 changed files with 11 additions and 11 deletions

View file

@ -7,24 +7,24 @@ Die Berechnung findet vollständig im Browser statt. Es werden keine Daten zurü
# Hintergrund
Dieses Werkzeug ist eine mögliche Ergänzung für https://git.verdigado.com/Netzbegruenung/polls, um Abstimmergebnisse datenschutzfreundlich validieren zu können.
Dazu wird allen an einer Abstimmung teilnehmenden Personen eine Liste ausgehändigt, die alle abgegebenen Stimmen enthält. Allerdings sind die Namen pseudonomisiert. Mit Hilfe der Liste kann in Summe das Gesamtergebnis geprüft werden. Außerdem können einzelne Stimmen (stichprobenartig) validiert werden, in dem im Abstimm-ID-Rechner die Abstimm-Runde und ein Name einer abstimmenden Person eingegeben werden. Mit Hilfe der erzeugten Abstimm-ID kann in der Ergebnisliste geprüft werden, wie die entsprechende Person abgestimmt hat.
Dazu wird allen an einer Abstimmung teilnehmenden Personen eine Liste ausgehändigt, die alle abgegebenen Stimmen enthält. Allerdings sind die Namen pseudonymisiert. Mit Hilfe der Liste kann in Summe das Gesamtergebnis geprüft werden. Außerdem können einzelne Stimmen (stichprobenartig) validiert werden, indem im Abstimm-ID-Rechner die Abstimm-Runde und ein Name einer abstimmenden Person eingegeben werden. Mit Hilfe der erzeugten Abstimm-ID kann in der Ergebnisliste geprüft werden, wie die entsprechende Person abgestimmt hat.
Der Vorteil der Methode ist, dass alle Personen sofort das Gesamtergebnis mit ihrer eigenen Stimme nachvollziehen können, sowie stichprobenartig Stimmen anderer Personen. Um das Abstimmverhalten anderer Personen prüfen zu können, muss der Namen der anderen Personen bereits bekannt sein. Es sind also alle Stimmen einzeln nachvollziehbar, ohne dass eine Liste aller Namen verteilt wird. Außerdem ist der Rechenaufwand zum Erzeugen einer Abstimm-ID so hoch gewählt, dass zum Deanonymisieren einer Abstimm-ID mindestens ungefähr 10 Sekunden nötig sind.
Der Vorteil der Methode ist, dass alle Personen sofort das Gesamtergebnis mit ihrer eigenen Stimme nachvollziehen können, sowie stichprobenartig Stimmen anderer Personen. Um das Abstimmverhalten anderer Personen prüfen zu können, muss der Name der anderen Personen bereits bekannt sein. Es sind also alle Stimmen einzeln nachvollziehbar, ohne dass eine Liste aller Namen verteilt wird. Außerdem ist der Rechenaufwand zum Erzeugen einer Abstimm-ID so hoch gewählt, dass zum Deanonymisieren einer Abstimm-ID eine Zeit in der Größenordnung von 10 Sekunden nötig ist.
Um eine Manipulation der Ergebnislisten zu verhindern, wird eine Signatur der Ergebnisliste empfohlen, beispielsweise mittels PGP.
# Argon2 Parameter
* Memory: 4096 KiB
* Time: 1000
* Hash Length: 32
* Memory: 262144 KiB (= 2^18 KiB)
* Iterations: 5
* Hash Length: 16
* Parallelism: 1
* Argon2id
Auf Linux-Systemen kann das Ergebnis mit folgendem Befehl reproduziert werden:
Auf Linux-Systemen (das Paket `argon2` muss installiert sein) kann das Ergebnis mit folgendem Befehl reproduziert werden:
`echo -n "Max Mustermann" | argon2 "Abstimmung 1" -p 1 -k 4096 -t 1000 -l 32 -id`
`echo -n "Max Mustermann" | argon2 "Abstimmung 1" -p 1 -k 262144 -t 5 -l 16 -id`
Auf der Unabhängigen Website https://antelle.net/argon2-browser/ kann ebenfalls das Ergebnis verfiziert werden.
Auf der unabhängigen Webseite https://antelle.net/argon2-browser/ kann ebenfalls das Ergebnis verfiziert werden.
# Lizenz
Copyright 2020 Netzbegrünung e.V.

View file

@ -17,9 +17,9 @@
argon2.hash({
pass: document.getElementById("input_name").value.toLowerCase(),
salt: "Abstimmung " + String(document.getElementById("vote-round").value),
time: 1000,
mem: 4096,
hashLen: 32,
time: 5,
mem: 262144,
hashLen: 16,
parallelism: 1,
type: argon2.ArgonType.Argon2id
}).then(function(h){