2/8) iVote's code is now available online. I examined the decryption proof and, surprise, it can easily be faked while passing verification.
Report
https://people.eng.unimelb.edu.au/vjteague/iVoteDecryptionProofCheat.pdf …
Thanks @noneuclideangrl for checking some maths. @SarahJamieLewis @pereiraucl @matthew_d_green #nswpol
-
-
Prikaži ovu nit
-
3/8) This exposes NSW elections to undetectable electoral fraud by trusted insiders & suppliers, people who guessed the passwords of the trusted insiders, people who successfully phished the trusted insiders, etc. iVote carried 234,000 votes in the NSW State election.
#nswpolPrikaži ovu nit -
4/8) The specific problem can be easily patched by including all relevant data (in particular, the whole ciphertext) in the hash during the Fiat-Shamir transform for the Zero Knowledge Proof. I believe there's already a new version here: https://www.scytl.com/en/accessivote2019/ …
Prikaži ovu nit -
5/8) However, even if this issue is corrected (and I am told it will be), there are other opportunities for vote manipulation. For example, the mixing proof verification spec doesn't even say exactly what data should be hashed. Not sure how anyone managed to verify it.
Prikaži ovu nit -
6/8) This leaves scrutineers, voters, and disappointed candidates with no way to check whether iVote's output accurately reflects voters' intentions. The results might have been manipulated, or they might not, but there is no way to verify the outcome.
Prikaži ovu nit -
7/8) iVote's source code & docs are now available on reasonable terms (good), but it's too late to patch in time for the NSW election. If they'd been openly available before the election, these errors might have been accurately understood and mitigated before the election.
Prikaži ovu nit -
8/8) The really hard part is giving voters evidence that their e-vote matched their intention. iVote's verification app proves nothing: if Scytl changed your vote, they can fake your verification too. In 2015, 10% of verification attempts failed; in 2019 there's no way to know.
Prikaži ovu nit -
tl;dr 1. Run elections on paper 2. If you can't, use an end-to-end verifiable system 3. If you can't, make the source code openly available before the election 4. If you can't, fix the bugs that you are told about 5. If you can't, be honest about them 6. If you can't, goto 1
Prikaži ovu nit
Kraj razgovora
Novi razgovor -
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.