36 ms·
To Protect Voting, Use Open-Source Software
- r721 9y agoRecent discussion: https://news.ycombinator.com/item?id=14920513 https://news.ycombinator.com/item?id=14920513
- alkoumpa 9y agoto protect voting, audit your software/system extensively. Openssh is open-source and we all know the story..
- fredley 9y agoBut how can I (a voter), audit it in the voting booth? How can I verify that the extensively audited software is actually running on the machine in front of me?
- Sholmesy 9y agoYou can't. Especially at scale (every person validating the software before voting). Paper ballots with a anonymised ledger of votes placed is, in my opinion, the best method.
- fredley 9y agoPaper doesn't scale well, attacks on paper are extremely difficult to scale well, which is why paper is a good system for voting.
- Sholmesy 9y agoIt scales "well enough", in that we currently do it, and pay for people to verify the results. In Australia a lot of this work is done by volunteers from the major parties. Edit: I agree, its difficult to scale an attack on paper :)
- Findeton 9y agoYou can audit your ballot in some systems. For example https://nvotes.com https://nvotes.com (open source software here https://github.com/agoravoting/ https://github.com/agoravoting/). You could even create your ballot offline, even by hand.
- mtgx 9y agoYou can't. And even if the software is open source, it doesn't guarantee that state or election officials will set aside budgets to deploy such patches swiftly, or even care to deploy them.
- alkoumpa 9y agodo you think these questions are addressed by open-source software? I mean, if you only have a few buttons in front of you, how can you verify/audit the software it's running?
- alkoumpa 9y agoplus, I might add, you can create secure software, that can't be penetrated from outside, but what about the hardware? Unless you write this (software) too, how can you trust the underlying hardware? e.g.: broadpwn. Yes, open source makes it easier to audit/collaborate/patch but it's not enough.
- danirod 9y agoElectronic voting is a bad idea and I'd be suspicious on anyone trying to promote it. How can you know that even if the source code for the voting machine is open, the voting machine is running the exact same source code? How can you know nobody has tampered the code the instance is running? I'm glad my country is still running on paper ballots and glad we require voter ID.
- giancarlostoro 9y agoI agree with you entirely. There is no absolute way that we know of to truly know the code running is the exact code on GitHub. You can fake that it is in many ways, I don't see people running shell commands on the software before and after they vote to make sure it's the correct software. Even IF that software remains uncompromised, who owns the database? Who stops them from- Way too many factors...
- fredley 9y agoOn top of this, we all know that if it was implemented as well as physically possible, there would still be vectors for attack. However, if current voting machine trials are anything to go by, it's usually implemented extremely poorly.
- DarkKomunalec 9y ago> I don't see people running shell commands on the software before and after they vote to make sure it's the correct software. How would you know the shell itself, running on the machine you're trying to verify, isn't lying to you?
- nurettin 9y agoEvery time we vote, there is more talk about the burned ballots, unopened chests, uncounted votes and fraud concerning votes being collected from neighboring countries posing as people from my nation. So yeah. Doesn't really matter whether it's electronic or not.
- zAy0LfpBZLC8mAC 9y ago
- fredley 9y agoTo protect voting, use paper ballots.
- Shivetya 9y agoValid ID should also be required. With paper ballots how do we guarantee those with a right to vote who cannot travel to a secure voting location have the ability to do so?
- dsr_ 9y agoID is only necessary if you haven't already established the right to vote in a particular location. After that, you're on the list and it's remarkably difficult to get you off of it; as it should be. ID requirements are frequently used in order to deny voting to people who are poor or otherwise find it difficult to get particular documents.
- richardknop 9y agoPaper ballots without voter ID requirement are ridiculous.
- dghf 9y agoThe UK seems to manage OK (ID is only required in Northern Ireland). 2015 saw 37 allegations of personation out of 51.4 million votes cast (https://www.ncpolitics.uk/2016/12/how-big-a-problem-is-voting-fraud-in-uk-elections.html/ https://www.ncpolitics.uk/2016/12/how-big-a-problem-is-votin...).
- richardknop 9y agoYes. My point would be allegations of personation is a meaningless number. Because if there is no voter ID you would not get many of these allegations either way.
- dghf 9y ago
- danhardman 9y agoI'd like to reference Tom Scott's video[0] here. There is no need for an electronic voting system, paper ballots work perfectly. [0] https://www.youtube.com/watch?v=w3_0x6oaDmI https://www.youtube.com/watch?v=w3_0x6oaDmI
- fredley 9y agoDepends on what your need is. If you need to alter votes, it's an extremely good system!
- TeMPOraL 9y agoThis video is absolutely an amazing summary. Thanks for linking it!
- warcode 9y agoUntil you want to scale due to using rapid direct democracy. Paper ballots will still WORK perfectly, but the workload will be massive.
- zython 9y agoWhich is something you can justify IMO for a direct, just, free, equal and confidential election.
- specialist 9y agoThe gold standard is paper ballots cast at a precinct, counted the moment the polls close. In the USA, average precincts are 500 voters. Totally doable. In fact, that's how many jurisdictions did it.
- jk563 9y agoA lot of talk about securing voting machines/verifying that they run the correct software. Why do we have to have physical machines? If it's electronic, surely a website would do if you have the correct means of ID? NB: this is not an indication of which side I fall on the debate, it is an observation. [EDIT] Also, I'm aware similar issues exist with a website, but it seems a lot of focus goes on the actual machine.
- fredley 9y agoIn case anyone can't see why this is a whole heap more terrible on top of the terribleness of electronic ballots... Verifying actual real identity over the internet is impossible. Even if you did webcam-based biometric authentication of identity - these are fooled by a photograph. Going to a polling station and verifying your identity to a human being is much harder to fake, and almost impossible to scale. The web is an untrustworthy delivery mechanism. What say if a nation state wants to disrupt your election, and starts DDoSing the hell out of it all. Protecting against such attacks at that scale would be extremely difficult. Also on the topic of state-level disruption, it is well known that orgs such as GCHQ, the NSA etc. hoard zero-days. How do you know your extensively tested system isn't vulnerable to a zero-day that another state has and you don't?
- jk563 9y agoLast time I voted I took a driving licence. All they did was check my face matched my card, and the name and address matched my registration no real check on whether or not the card was genuine. When I created my government account I provided passport and driving licence numbers on top of the above. I feel this invalidates your veracity point, and probably the scaling point too? The second and third points seem more viable and are potential issues. Especially the third, this would be the main concern IMO. Though I'm sure there are protections against this too (thinking virtually distributed).
- scaryclam 9y agoAll that, in addition to the problems that would arise from voter coercion and threats to vote a certain way.
- vowelless 9y agoSomeone needs to start a campaign: "Say No To Electronic Voting"
- clarkevans 9y agoThis past election has shown that it's not just the voting software, but the software/systems that control who is permitted to vote.
- boomboomsubban 9y agoAs someone who is a firm supporter in free software as the best option in every area, this feels like a subversive attack. Voting software is bound to fail, no bug bounty is big enough to offset the billions that could be made off of hacking an election. It is bound to fail spectacularly, and then for the rest of time people can point at the election and say "the ability to see the source code let this happen."
- ai_ja_nai 9y agoThis is plain bullshit. Opensource gives no guarantee that the vote won't be altered by whoever runs the machine. What we need is a zero-knowledge proof: we need the entire voting dataset to be publicly downloadable and some kind of checksumming so that, while maintaining anonimity, I can 1)check that my vote is the same 2)run whole the counting in a blink on my PC. This gives much better guarantees of no tampering
- cmiles74 9y agoI think this make a lot of sense. I'm not sure a checksumming method that can indicate tampering can be devised, but my hope would be that by making the data publicly available for every stage of the processing pipeline, auditors or interested parties might be able to detect fraud.
- zAy0LfpBZLC8mAC 9y agoBut the data is worthless if you cannot trust the way is has been acquired.
- cmiles74 9y agoI'm not sure there's a way that a skeptical person can ever trust that data, short of physically handling each piece of paper and manually summing up the totals. People are as much of a black box as any software. I suppose the only benefit of people is that they are more difficult to coordinate.
- zAy0LfpBZLC8mAC 9y agoThe point is not using people in place of machines as trust anchors. The point is that you remove the trust anchor (or move it to the public at large, really). In a properly run paper election, there is no individual that you have to trust. In principle, anyone can go and watch, and usually there are representatives of many/all parties in every polling place, watching every step of the process. It's not just that people are more difficult to coordinate or control in general, it's that if someone distrusts you, they can come and watch for themselves.
- greggeter 9y agoPros and cons of paper ballots. Go!
- ivanbakel 9y agoPrevious discussion (5 days ago): https://news.ycombinator.com/item?id=14920513 https://news.ycombinator.com/item?id=14920513
- kome 9y agoMy first job was an ethnography of electronic voting in a wealthy region in northern Italy. By our observations electronic voting added several layers of complexity that are difficult to justify.
- nkohari 9y agoI'm not a crypto fanboy or anything, but I feel like voting is a great application of blockchain technology. It seems like the system could be made to be both anonymous and publicly verifiable, and the vote count would return more or less immediately.
- drdaeman 9y agoUh. Blockchain is just a doubly-linked list with hashes. And a set of rules how the peers validate blocks and come to a consensus. Not some magic crypto pixie dust that brings anonymity or prevents fraud. It could come useful, e.g., for keeping census data to avoid some forms of fraud. E.g. prevent rouge organizers loading elections with "dead souls" voters (Gogol-style). But I don't see any immediate use for election themselves. Say, the blocks would store anonymized votes (nothing about blockchain itself implements the anonymization). One immediate issue I see is that blockchain only verifies integrity of the blocks after they're in there and out to the public, so it could be verified. Sending them too early would skew election results (observers would be able to see the intermediate results and bias their votes accordingly), and sending them too late would probably make blockchain mostly pointless.
- tiku 9y agowhy not blockchain voting. everyone receives 1 voteCoin, and transfers it to the correct wallet address of the person he or she votes for?
- tiku 9y agoand it could even help with vote counting per city, if they originate from a "city" wallet, that came out of a "region" wallet and so on..
- zAy0LfpBZLC8mAC 9y ago1. Because it lacks anonymity? 2. Because the average voter cannot possibly understand and verify the security properties of that setup.
- pjmorris 9y agoTo protect voting, use paper ballots and count them in public (OK, and voter ids if you insist).
- noja 9y agoA child can understand paper ballots and why they work. There are probably less than a hundred people in the world who can understand an electronic voting system at every level down to and including the silicon.
- specialist 9y agoBingo. And those of us who've studied voting computers extensively have concluded they're to be avoided.
- marcelsalathe 9y agoGeneva has made its e-voting software public: https://republique-et-canton-de-geneve.github.io/chvote-1-0/index-en.html https://republique-et-canton-de-geneve.github.io/chvote-1-0/... I'd much prefer electronic to paper. Last year I voted on 24 initiatives, and that is just the federal level. It also does not include elections.
- cletus 9y agoTo protect voting don't use electronic voting. Paper ballots (the kind with marks read optically, not the ridiculous punch cards at the center of the Florida 2000 debacle) are easy to use and understand with a very low error rate and keep a paper trail, being the actual ballots. I don't understand why anyone other than the companies who sell e-voting machines actually want electronic voting.
- specialist 9y agoYou have to hang out with election administrators to grok that. Their motivations are not the same as the voters. Their election night prayer is "Please God, don't let this election be close." They want certainty more than any thing else. For decades, computers were regarded as more accurate, impartial, certain than human tabulators. Second factor is appropriations. Elections are big money. And like all industrires, there's a revolving door between government and industry. Admin also want control. Their impulse is to centralize, simplify. Think of the logistics of running 100s of voting sites, 1,000s of precincts. All the training, people, materials, gear that has to be stored, shuttled around, repaired, etc. Moving to voting computers, reducing head count, moving to central count seemed like a huge win. (But you and I people computer people, we know they just traded problems.)
- joseppe 9y agoOne word: blockchain
- deleted 9y ago[deleted]
- wu-ikkyu 9y agoWhy is it that electronic voting is so vehemently opposed here on HN and by many technologists in general when virtually every other existentially vital system they rely on is run electronically?
- zAy0LfpBZLC8mAC 9y agoBecause it doesn't work.
- wu-ikkyu 9y agoDoes a system have to be 100% free of security concerns to "work"?
- zAy0LfpBZLC8mAC 9y agoNo, but it has to be free of devastating vulnerabilities.
- wu-ikkyu 9y agoThe electronically run global financial system is not free of devastating vulnerabilities, and yet it "works"
- zAy0LfpBZLC8mAC 9y agoSo, what is your point? The financial system is actually going to collapse, and that's not a problem? Or the vulnerabilities aren't actually devastating, just bad? Or what?
- wu-ikkyu 9y agoThat many technologists are being hypocritical by wanting to prohibit electronic voting because of "security concerns" while at the same time developing and using other institutional systems with equal or greater attack surfaces and consequences.
- CapsUnLock 9y agoWell, IMHO a good way to digitize voting would be to give out a USB-drive-like (NFC) device with an option to set a value and lock it in the read-only mode using voter ID. How it will work: A person gets this device in the voting center enters/gets his voter ID, does the voting (anonymously), presses the read-only lock and throws it into the bin. After all the voting these device are scanned and voting data is retrieved. A voting database is populated in each center in a transparent way, to prevent tampering (several parties can be allowed to read this data separately and then all data variants can be compared against each other, just in case). After consensus on the voting data, each voting center sends the results for counting. And the voting is completed. In the end, these devices are reset and the cycle continues. Well, I'm sure that there must be some problems when voting the aforementioned way. But I guess it could work out, with some modifications. EDIT: Grammar.
- castis 9y agoThe only winner in that scenario is the company manufacturing the NFC devices. That system is too complex.
- scaryclam 9y agoThat sounds a whole lot like paper voting to me...except more expensive and more complicated. What's wrong with giving everyone a pencil and a ballot paper, at the polling station, in place of the NFC device?
- jjawssd 9y agoRelated comment to a related thread https://news.ycombinator.com/item?id=14921935 https://news.ycombinator.com/item?id=14921935
- blackkettle 9y agoNo. To protect voting, don't use software. Everyone needs to be able to _understand_ as well as be able to verify that they successfully voted. Besides the issues with what software the machine is actually running, most people cannot comprehend or understand that software - even if it is open source. That is not acceptable for an open democratic society, or to sustaining it. In this particular situation it should not be necessary to rely on an expert to explain whether the vote counting mechanism is reliable. This only adds to the problem of unreliable or scheming officials - it doesn't improve anything in terms of transparency.
- eksemplar 9y agoI think you could do some secure voting software if all your citizens had a secure two factor signature and you used block chain. I'm not sure why you would do it in a non-corrupt country though.
- beat 9y agoWhy do something simple, when we can do something complicated instead?
- eksemplar 9y agoWell if your country is doing digital elections without citizen signatures and block chain, then chances are you live in a corrupt country. :p
- pgeorgi 9y agoThe point is to do pen&paper elections instead. It's the ultimate "open source" solution since everybody who can hold a crayon in the right direction can participate in the verification of the process.
- eksemplar 9y agoThe problem with pen and paper elections is that they rely on honest counting. It's true that it's easier to manipulate a terrible digital system but that doesn't mean pen and paper is safe. Block chain technology would offer an open record that couldn't be manipulated, something paper does not. I mean, I live in Denmark, one of the least corrupt countries in the world and we've had politicians caught changing votes with a pencil and an eraser during the count.
- tzs 9y agoTo protect voting, use this or something similar: https://en.wikipedia.org/wiki/Scantegrity https://en.wikipedia.org/wiki/Scantegrity
- scierama 9y ago"The blockchain is an undeniably ingenious invention – the brainchild of a person or group of people known by the pseudonym, Satoshi Nakamoto." It isn't even definitively known who invented blockchain, it is behind the pyramid scheme known as bitcoin and no, no way should that ever be used in voting system computers.
- huhlig 9y agoIf you consider Bitcoin a pyramid scheme I would love to hear your treatise on fiat currency, fractional reserve banking, and capitalism in general.
- JumpCrisscross 9y agoI'll bite. What's the failure mode for a paper-money based fractional banking system with deposit insurance that makes it a pyramid scheme?
- cgmg 9y agoI don't think you know what a pyramid scheme is. How about learning the definition of the words you use before throwing them around?
- scierama 9y agoHow about you learn some manners, learn to Google, learn to read the results that will appear on your screen.
- cgmg 9y agohttp://lmgtfy.com/?q=pyramid+scheme http://lmgtfy.com/?q=pyramid+scheme "A pyramid scheme is a business model that recruits members via a promise of payments or services for enrolling others into the scheme, rather than supplying investments or sale of products or services." http://lmgtfy.com/?q=bitcoin http://lmgtfy.com/?q=bitcoin "Bitcoin is a worldwide cryptocurrency and digital payment system. The system is peer-to-peer, and transactions take place between users directly, without an intermediary... Besides being created as a reward for mining, bitcoin can be exchanged for other currencies, products, and services in legal or black markets."
- beat 9y agoFirst and foremost, use paper ballots. Before anything else. The paper ballots are the System of Record. If ever in doubt about downstream results, paper ballots can be hand-counted. (Additionally, use paper voter rolls. Mark registered voters when they vote, and track any same-day registrations on paper. The exact number of ballots cast can be extracted from the voter rolls.) Second, never allow paper ballots to be handled by just one person, or by only members of one party - whether blank or used. Require that members of at least two political parties be present any time the ballots are physically touched. Third, if using machines to read the ballots (ScanTron, etc), conduct spot counts of random machines, to make sure the machine results match the paper ballots. Conduct spot counts of entire polling stations randomly to make sure result totals match voter roll totals. Although this isn't 100% certain, it doesn't take a lot of spot checks to detect any sort of large-scale fraud effort. Do these things, and it's exceedingly difficult to do statistically meaningful vote fraud, because we have a high degree of trust in the paper ballots and their surrounding process. From there, you can use automatic ballot reading and tallying to get fast results - the vote counting/tallying automation is derived data, not the System of Record.
- Zigurd 9y agoFirst, you have to understand the problem: 1. You don't need to commit widespread election fraud to throw an election if you can predict where a small fraud will matter. 2. Not all election fraud is a miscount of ballots. Throwing out minorities' registrations is also election fraud, and you can't fight that with more-reliable ballots. 3. The best solution might not be a technology solution. Paper ballots make it hard to scale fraud. But that's not enough, since fraud doesn't always need to scale. 4. Early voting and absentee voting need to be taken into considerations and are a growing part of voting in the US. 5. If software systems are used in voting, tallying, or anything connected to election results, the systems should be open to inspection and to pen testing.
- wnevets 9y agoUse open source software that prints a paper ballot then count the paper ballot.
- a_imho 9y agoRetire voting in favor of sortition.
- davidgerard 9y agoTo protect voting use paper. Why did anyone ever think computerising voting was a good or useful idea?
- ApolloFortyNine 9y agoWhy can't you have everything set up so that when you vote, you get what amounts to a JSON Web Token to be able to later verify that you did in fact vote? You could use the governments publicly available key to verify that your vote reached the central service, and part of the JWT could contain your vote as well as your identifying information (SSN in USA). Obviously everything could have fancy UIs created for end users so they don't see that really all have is a JWT (maybe a QR code printed out when they vote? And all the info easily human readable?). Verification could be handled by a .gov address and also through manual use of the public key (so other services could be set up to verify votes as well). And internet connectivity wouldn't be a problem as they could just require T1 lines at polling locations (I assume if phones went out across the country the election would be delayed regardless). You could likely tell if someone had stolen the private key (the only way I can think of breaking this system), if you have a service to verify someone's vote, and it doesn't show up there, even though you have a signed JWT containing your vote. That would prove someone had stolen the private key, allowing for a makeup election. Am I missing something basic of how this would be hackable? I'm one of those who finds it odd that many elections around the world are susceptible to simple human mistakes/purposeful malicious actions when it comes to counting ballots.
- thescriptkiddie 9y agoThe amount of anti-free-software FUD in this thread is staggering. Did Microsoft buy off all of you?
- cortesoft 9y agoWait, what? I haven't seen a single anti-free-software comment in this thread; most people are against electronic voting entirely, whether it is open or closed source. Why would Microsoft be anti-electronic voting?
- ruffrey 9y agoThere's got to be some way to put votes on a blockchain. More important than voting electronically is being able to verify your own vote was not tampered with, and that all the votes add up as reported.
- peterwwillis 9y agoThis story has been posted four times now. Click the 'past' link at the top.
- return0 9y agoTo what extent is voting fraud an issue in the developed world and why is Nytimes upset about it?
- xealgo 9y agoSecurity may not ever be 100% with e-voting systems, but it can be secured enough to where the probability of any hack attempt would have minimal impact on the overall outcome. I can think of several ways to a secure, verified registration could work just off the top of my head. I think the issue is more, where's the incentive for the government to make this happen?
- Arkanosis 9y ago“R. James Woolsey […] former director of [CIA]. Brian J. Fox, […] develop open-source voting systems” — even if I had no opinion on the matter, it'd seem to me that there's a clear conflict of interest there. To protect voting, do NOT use software. At all. Open-Source software is no more trustable than paper, and is orders of magnitudes more complex to set up and audit. If you can't explain a 5 years old how it works, your voting approach is not trustable.