I don't generally expect society to listen if computer programmers tell them to do or not do something. But, just maybe, they might listen if programmers said, "don't use software for this", en masse. I feel like voting systems that have no voter-verifiable paper backup are a horrible idea and (in the literal sense) a threat to democracy. Is it possible for programmers to somehow get this message across to the rest of society? Or do most other programmers think this is not a problem and the security risks are overblown?
[+] [-] LinuxBender|7 years ago|reply
[+] [-] hsienmaneja|7 years ago|reply
[+] [-] whydoineedthis|7 years ago|reply
[+] [-] rossdavidh|7 years ago|reply
[+] [-] rogerthis|7 years ago|reply
[+] [-] itronitron|7 years ago|reply
At this point, voting by mail seems to be the way to go in places that are going all in with software systems.
[+] [-] Chinmayh|7 years ago|reply
1. Open Source software, which can be verified by everyone.
2. Voting via an app with authentication as good as or through your bank account.
3. After Voting, We should be able to query and verify who our vote is with - on a particular day of counting, and get whole history of our votes. An individual persons vote is append only.
Please, do let me know drawbacks.
[+] [-] Scarblac|7 years ago|reply
Querying and verifying your vote doesn't guarantee that it was included like that in the count, just that your real vote is stored somewhere.
[+] [-] endisukaj|7 years ago|reply
What makes you think that the open source software you verified is the software actually loaded on the machine you are using to vote. What about the software on the machine that counts the votes?
> Voting via an app with authentication as good as or through your bank account.
What about voter secrecy? Logging in and then voting defeats the purpose of voting.
> After Voting, We should be able to query and verify who our vote is with - on a particular day of counting, and get whole history of our votes. An individual persons vote is append only.
If you can query to find your vote then anyone else can. Do you want everyone to know who you voted for?
[+] [-] jimrandomh|7 years ago|reply
[+] [-] a-fried-egg|7 years ago|reply
[+] [-] skillachie|7 years ago|reply
[+] [-] theknarf|7 years ago|reply
[+] [-] squozzer|7 years ago|reply
But even if some are, ways exist to undermine an expert's credibility about a complex topic.
For example, when Robert Oppenheimer began warning people about the dangers of nuclear war, the attacks came. Once the government felt comfortable enough with Edward Teller, it could proceed with revoking Oppenheimer's security clearance.
That said, not sure a paper receipt actually helps because it's certainly possible for a voting machine to spit out a receipt, then change whatever data the receipt was supposed to capture. And unless the change was drastic and massive (e.g. Trump wins California) then it will probably go undetected.
[+] [-] rossdavidh|7 years ago|reply
On paper receipts, the idea is that it allows for recounts. Not that paper is invulnerable, but the fact that more people understand how paper works than understand how software works, makes it a better option, I think (speaking as a software person).
[+] [-] gnulinux|7 years ago|reply
I'm a previous human rights activist and I worked in a lot of past elections in Turkey. I am very opinionated on this issue and I strongly believe the future is software-only votes.
Naive reasons why we should use software-only voting:
1. Humans can do mistakes. Machines can't do mistakes (unless humans who programmed them did mistakes)
2. It takes more time and resources to count votes compared to automating it.
3. You'll use less paper, so better for environment.
Better reasons why:
1. Voting is an entirely impossible-to-debug process. If you live in a corrupt republic like Turkey of Russia you need to spend thousands of dollars and people to ensure elections are held democratically. Because government won't ensure that or they will actively work against it. Software can be made debuggable.
2. If you live in a country like Russia, government can attempt collect data about your votes to estimate/learn which party you voted for. With cryptography this can be made mathematically impossible (or equivalent to very hard problems like PvsNP)
3. Recalculating election results is very infeasible in real life. If you store election data (so that it's impossible to find who voted what) and make it open, everyone can confirm election results EVEN IF we find a bug in retroactive computation script.
4. With free software (free as in freedom) it is possible for experts (computer scientists, cryptographers, law makers, attorneys etc...) to audit the process of election. This is not possible in real elections: lawyers cannot audit the election so it's possible some people make wrong decisions interfering in people's votes (i.e. deciding a bad vote to be ok, vice versa)
Problems:
1. Backdoors etc. Solution: use free software and pay experts to redundantly confirm system works. Pay software engineers to maybe write parts of the system in agda, idris, coq so it's provable. This is not terribly worse than the space program etc.
2. Not everyone can use computers. Solution: you can organize the exact same election system, call people to special places to vote and use computer instead of paper.
3. What if we're hacked even after experts checking the system? Solution: redundantly store the data, use parity bits RAID etc to ensure data integrity. If there is some unrecoverable data loss, cancel elections.
[+] [-] decebalus1|7 years ago|reply
That's an incredibly limited view of the issue. Machines can make mistakes regardless of human intervention (albeit probably indirectly, because humans have an unprecedented level of influence on reality). First, there are known software glitches caused by unexpected bit flips. Second, software systems can grow to a level of complexity where unless you invest orders of magnitude more time in theorem provers for it you cannot guarantee that 'machines can't do mistakes'.
Electronic voting is an interesting problem and I agree with you, it's probably the future. But it's not a near future or not as near as you'd think. Electronic voting is vulnerable to attacks which cannot be detected when they happen. Armies of diverse human observers for paper ballots are much more effective for detecting fraud.
[+] [-] erlongsb|7 years ago|reply
[+] [-] Scarblac|7 years ago|reply
[+] [-] AnimalMuppet|7 years ago|reply
Note well: I am not advocating actually doing this. But that's what I think it would take.
[+] [-] rossdavidh|7 years ago|reply
But, if one were doing that, better to cause Mickey Mouse to win the state, it is a more clear signal. But I'm not the person to send that signal, which is why I was thinking about how else to communicate it.
[+] [-] meiraleal|7 years ago|reply
[+] [-] lev99|7 years ago|reply
You see your choices in paper.
You place the paper in a ballot box.
The ballot box is watched by people on both sides.
The ballot box is sealed and transparently transported to a counting facility.
The ballot counting is observed by people on both sides.
The counting facility counts the ballots twice, with both counts having to agree. The counts are communicated to a central tallying location.
The counts for each counting facility and the total are publicly communicated.