Open Source: How E-voting Should Be Done
Open Source in the Voting Booth
Anyone familiar with current e-voting technologies will note that the logistics of this solution are no more or less complex than those of existing systems. The key, however, is that they would be driven by open source code that anyone could download and use.
With all the covers off, it becomes extremely difficult to embed backdoors or commit cloak-and-dagger fraud. The ability to view the code that records our votes should be a basic right -- if only to ensure that the conditions leading to a successfully recorded vote do not set success as a default.
The best bet for an open voting system would be code based on NetBSD or OpenBSD, embedded in nonremovable flash on the mainboard of the device. The device would also require a serial or USB-driven touchscreen, as well as a USB-connected, embedded printer. Code updates to the device would not be allowed via the touchscreen, but rather through a certificate or key-secured USB or serial connection.
Such a device would be less complex than a McDonald's cash register, running extremely basic, open code that's been hardened for years, and can be easily reduced to only the required functions. There's no reason it couldn't be cheap, simple, and extremely easy to produce. Further, it should easily handle being mothballed for a year or two between elections.
Detractors will claim that if the code is open, anyone planning to commit fraud will have the blueprints to circumvent the security of the system. The ever-growing adoption of open source software in businesses large and small, as well as the Internet's reliance on open source solutions, provides evidence to the contrary. For example, open cryptography solutions are no less secure than their closed counterparts. In fact, one could argue that they're more secure, given that complete code visibility greatly reduces the potential for backdoors.
Open Elections Require Open Systems
Ultimately, the call for open source e-voting systems isn't as much about open source software as it is about securing our inalienable right to legitimate elections. It just so happens that open source is the best way to accomplish that goal.
If the past few elections are any indication, secure voting machines are essential to political legitimacy. With machines sold by companies that produce far more secure ATMs than voting systems, something must change, especially as the inaccuracies and irregularities incurred by these systems continue to mount. No effective steps have been taken by the government thus far to address the integrity of our vote, other than small measures by state and county governments that have already blown budgets on insecure systems.
In 2002, Congress passed the Help America Vote Act in response to the hanging-chad debacle of Florida's 2000 presidential elections. The act's main thrust was to provide money to states to replace outdated punch-card- and lever-based voting systems with optical-scan or touchscreen models. The act largely accomplished that goal, filling the coffers of closed source voting system manufacturers. In doing so, the act may have inadvertently placed the country in a worse situation, given how difficult it is to rig large numbers of votes with punch card or lever systems. By contrast, a single poorly designed e-voting machine can be used to covertly modify large numbers of votes.
Of course, even with a paper ballot cast in a locked box, there have never been fail-safe assurances that any given vote has been counted and recorded. Human error and malfeasance are sure to be constants.