Democratic presidential nominee Joe Biden recently suggested that, as the public health emergency deepens, all-mail ballots are “worth looking at, quickly.” Mail-in ballots could be helpful as a stopgap right now, but it’s a slow and inefficient process in a digital age that demands a better answer. In addition, the lack of emergency funding for the United States Postal Service showcases how we cannot depend on this mode of voting for much longer.
Although false starts like Iowa’s Shadow app fiasco appear as setbacks, we indeed have the building blocks for online voting; we just need the determination, focus, and execution to bring it to fruition. It’s much too late to consider a transition to online voting in this year’s elections. But we could make the move in time for 2028, with state-wide beta tests in place as early as 2024. Although we may be eager for implementation sooner rather than later, it will take time for us to do this right.
The most prominent concern is, of course, security. Online voting must overcome several significant hurdles before it can be rolled out widely. These hurdles include voter ID fraud, a learning curve for users to understand the user interface, and attempts by hackers to take down the back-end networks and tamper with mobile apps and data, which could be difficult for election officials to detect.
Federal government, military, and private sector studies have all concluded that internet-based voting is not secure and shouldn’t be used in U.S. elections. The Department of Homeland Security recently released guidelines that point to high security risks for online election voting.
“Until there is a major technological breakthrough in or fundamental change to the nature of the internet, the best method for securing elections is a tried-and-true one: mailed paper ballots,” democracy watchdog group Common Cause has said.
As the chief technology officer of a cybersecurity company with several government customers, I’ve been watching this issue closely. Truth is, the technological building blocks are available now for online elections, such as that for collecting, storing, and mining data at scale securely.
Here’s what else is needed:
For starters, 100% of the source code needs to be open source. The mobile applications and server-side code should be open and shared for everyone to examine and poke holes in. A single organization operating behind closed doors can’t be expected to get this right. A community approach is the way to go.
We also need a process to trust and verify votes. Every American would need Real ID compliant identification, and the voting process would require layers of multi-factor authentication. Once placed, votes would need to be transparent in the sense that the person is anonymized, but certain characteristics about them are known, such as where the individual resides and who they voted for.
A potential problem could be some humans’ lack of trust in the digital process. Mail ballots can be verified, but how would online voters know their ballot was received?
This could be remedied by requesting a confirmation that would then require the voter to confirm their identity once again. It could also be an instance in which blockchain serves as confirmation that someone voted but their identity is masked. Concepts of homomorphic encryption could be applied to ensure that voting data is encrypted yet can still be searched.
Then there’s the voting experience itself. The process would have to be so straightforward that everyone from Boomers to Gen Z could easily take part. That means the final product that voters will interact with, via the web or a mobile device, will need to have undergone a significant amount of usability testing. The apps will need to feel natural to users — and will need to support dozens of languages and be accessible to voters with disabilities.
We’ll need a robust system to collect votes. I don’t see scale as a problem, though. These days, one can develop a service on an off-the-shelf laptop that can write hundreds of thousands of events per second. With good architecture and design, and stress testing, a strong system can be deployed.
Finally, we’ll need to think about how we add security in every layer: the network, the app, and the data store. We’ll have to build and implement controls to generate and review system audit logs, limit access, and apply zero-trust concepts. This might sound like a lot, but it really isn’t much different than what regulated organizations in financial services and healthcare already do today.
A final question we will need to address is who puts the pieces together and creates the software required for online voting. Should a government task force take the lead? A public super company like Google or Apple? Some combination of technology leaders?
The bottom line is, saying online voting won’t happen seems foolish. Surely, voting will happen digitally eventually; it just needs to be done right. And the coronavirus crisis may provide the push we need to make it happen sooner rather than later.
Kunal Anand is CTO at cyber security company Imperva.