this post was submitted on 13 Sep 2023
95 points (100.0% liked)
Free and Open Source Software
17934 readers
95 users here now
If it's free and open source and it's also software, it can be discussed here. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
@Penguincoder I have no degree in Computer Science. I graduated International Relations. However I am still really passionate about FOSS due to the way it brings real world democracy into technology.
While there are some places in which technology has no place (particularly voting), I believe that technology can help our societies become more open, transparent, involving and better functioning.
There's nothing wrong with using technology in voting, it just has to be done in an open, verifiable way.
The problem is how difficult it is to ensure it is open and verifiable. Not to mention how much easier it is to scale up attacks on digital voting systems.
If I want to forge enough paper ballets to swing an election I’m going to need a few hundred people in on it, with a group that large, someone is going to squeal, or get caught doing something dumb and uncover the conspiracy, if I want to forge digital ballots, well, I just need one person with know how and the right exploit.
It is certainly possible to make a digital voting system that is immutable once the votes are submitted, it is nearly impossible to make one that ensures that the votes being submitted are legitimate.
It’s a lot of effort and increased risk to roll out an acceptable electronic voting system, it is much easier and safer to just keep using paper ballots.
Believe it or not those are all solved problems
The largest blockers to implementing them for voting are no longer technological, they’re political
We can absolutely cryptographically verify your voting choice from your phone, and have you and everyone be able to verify when it changed, where, on what device, etc, while also preserving the anonymity of the voter.
(Edit: while also making it far easier to combat fraud by making elections trivial enough to go “ok, everyone go check and resubmit your choices!” And immediately validate the majority of the votes as valid, minus those who don’t have internet access who would still need to travel)
Problem is, there are a lot of very powerful organizations who would suddenly lose much of that power if voting were in any way convenient and accessible to everyone.
Every time someone confidently claims that we can cryptographically verify voting, they are deliberately or ignorantly keeping the complexity and necessity of verifying the verifier runtime, the data source, and the communication channels out of the picture.
Cryptography doesn’t solve voting verification problem, it obscures and shifts it.
Rando there is really talking about about putting elections on a blockchain and trying really hard not to say the word.
OK, cool now teach your family that calls their web browser "The internet" enough computer science to adequately understand and audit this proposed open system and convince themselves that their votes are counted in a fair, verifiable and secret manner. Also that the implementation does not have obvious side channels and what is actually running is built from the published source code.
Like, If I was part of some shady powerful elite I'd love a fully automated setup. Most people will not be able to check the system deeper than "phone displays green check mark" without an unreasonable time investment.
On the other hand, "room full of people opens box full of papers and counts them while verifying each other" is intuitive enough for almost anyone to grasp and gain confidence in.
You may be able to verify that a given code is correct, or that a given device is correct, but no amount of software can conclusively prove that a given person has voted. All that cryptography prevents is a man in the middle attack, it does not prevent bad inputs from being entered by people who have stolen credentials.
Voting should be easy and convenient, but paper ballots and voting booths can be easy and convenient.
For voting where it can be seem who voted on who, this can be and was done.
But don't even try to touch voting where everyone has to have exaclly one secret vote. There is no way to do it currently and math is debating if it's even possible with computers.
More on that topic: https://www.youtube.com/watch?v=LkH2r-sNjQs
use 3 different open source voting systems. at the same time.
problem solved.
there is no way one exploit can be used at 3 different pieces of software.
All 3 systems use openssl and get attacked using Heartbleed.
(And even if they don't reuse even a single piece of code, attackers can still just use multiple exploits.)
yes but 3 different exploits would result in different results. which is an indication that the voting result is irrelevant, and should be repeated
edit: I am by far no expert, yet having anykind of kniwledge in that area, so I apologize for naivity in advance.