Here in the states we are coming up on a very important election – the election of the President of the United States. And I would be remiss if I did not address this topic in a blog dedicated to the topic of open source.
The last two presidential elections proved that our system of voting is either broken or corrupt (or both). In August of this year Diebold (the maker of electronic voting machines) finally admitted their systems have been broken for ten years:
Chris Riggal (a spokesman for Diebold) says their system contained a:
“…critical programming error that can cause votes to be dropped while being electronically transferred from memory cards to a central tallying point.”
And then, you can hearken back back to 2003, a group discovered a version of Diebold’s secret software which contained numerous flaws. This software, of course, is proprietary. Of course, shortly after that, the then-President of Diebold wrote in a letter to a presidential candidate’s supporters, “I am committed to help Ohio deliver its electoral votes to the President.”
In 2006 Diebold knew they were shipping out voting machines that had defective motherboards. They shipped them anyway. The machines were used.
With so much corruption and poorly written code, I have to stop and ask myself, “Why does this country put up with this system?”
I know that advocates of proprietary systems would quickly argue that using open source software on a system as critical as e-voting would be a grievous mistake. Here’s why they are wrong: With open source software you have far more checks and balances than you have with proprietary. With a piece of closed-source software your code is only as good as the employees you can afford to pay. With open source software the checks and balances go beyond budgets and boards. And a system as critical as e-voting should have the largest peer-review system available. Think about it – a group of developers creates a voting system and releases it under the GPL (or some modified version). They release the code so that developers around the world can help with the process of making this software safe and error-free. Once the code is finalized another group of developers (open source developers) are selected to comb through the code to ensure its safety (make sure no back-doors, trojans, root-kits, etc., were placed inside) and then the code is installed into the systems.
This type of system would put companies like Diebold out of business.
Ahh – there’s the rub. Business. But really – does business have any, well, business in the business of voting? Shouldn’t the system of elections be by and for the people since that is (at least, in the original U.S. configuration) what elections were created for? Companies should not be making money on elections. And that’s where open source voting software makes perfect sense.
The Australians have done it. They started this in 2003 where a private company created the voting software and posted it online for all to see and evaluate. The system went from proof-of-concept to reality in six months. Here in the States we’d be lucky to have such a system up and running in six years. Why? Governmental red-tape that strangles such forward-thinking ideas as using open source for voting systems.
Obviously, I am a big advocate of open source voting. Our government is ours and is there to serve and protect us…the people. But that doesn’t mean we should not become a part of this system. And as system administrators, developers, networkers, and security pros, we should consider it part of our duty to help further along a system that could ensure critical elections are handled properly. And what better way to ensure the propriety of such a system?
Now might be as good a time as any to write your congressional leaders and insist they support open source voting systems. Diebold has had it’s chance and it failed. It’s time open source was given the chance to show the country that voting can be done without grievous error and without code that my step-daughter would call “epic fail.”
The voting system is one of the most important pieces of software that can be created. It should be given to the public. It should be open source.