Electronic voting

It’s voting day in the local elections tomorrow. And this comes with apologies to my mum, who retweeted this poll and made it appear in my Facebook and subsequently got a passionate rant from her son. She’s awesome and I totally ❤️ her! But it’s a good excuse to get people thinking about this…

I’m a software developer. I develop software. I have written software that helps aircraft fly! So I kinda know how computers work and how to make computers safe.

Now, I’m not saying the current paper based voting system isn’t flawed. There surely are ways that it could be exploited.

BUT the thing about the current system is that it’s INCREDIBLY simple. You enter a room. You put a mark on a piece of paper. That goes in a sealed box. The boxes are all accounted for. The boxes are opened under scrutiny and the marked bits of paper are counted in public, under scrutiny from anyone that wants to see it happening.

If you wanted to you could wait outside (or presumably inside) the polling station and then follow your vote, in the box, to the count, and watch all the votes from your box being counted.

And if it’s tampered with there is usually a trail – a way to see how it was tampered with.

This system is SO simple and transparent that I could explain it to my six year old and he would probably understand.

And we know what this system’s flaws are and they have been mitigated over many years.

Software

e-Voting introduces software. So let’s talk about software.

Software is INCREDIBLY complex. It’s very difficult to prove the properties of. It’s very difficult to show that it does what it should without error. It’s likely to have multiple flaws, any of which could be an exploitable security issue. You don’t know what it does. You don’t know how it works. You have no idea how trustworthy it is.

Simple, 1-decimal-place arithmetic is pretty easy, right? A computer should be able to do that accurately in micro seconds, right? Well, here is a picture of my web browser adding 0.1 and 0.2:

Computers, huh?

Now, I could explain how this is caused by a lack of precision in the JavaScript implementation of binary floating point arithmetic, but it’s unlikely that would make any sense.

But it makes the point that when you think you’re simply adding 0.1 and 0.2, some incredibly complex things that you don’t understand are happening under the bonnet of your computer to make that happen.

Let’s make a deal, then: if you can tell me what happens when you click the “Vote” button, then you can keep the idea of an electronic vote!

The Internet

And you want to send votes over the internet. So let’s talk about the internet.

The internet is made up of millions of devices. You don’t know what they are. You don’t know WHERE they are. You don’t know what they do. You don’t know what software they are running. You don’t know what flaws they have. You can’t take them apart and inspect what’s going on inside.

A casino was recently hacked into because it had an internet-connected thermometer in an aquarium in the lobby. Hackers used this as an entry point to the casino’s private network and downloaded a database of gamblers.

Do you really want a cobbled-together system of frankly-who-knows-what sending your vote to the authorities.

But we have internet banking? Surely if that’s safe and reliable and trustworthy…

Ahem…

(Irony notice: that article linked above is on the website owned by the man who ran the Twitter poll)

Democracy

And to top it all, the government, and particularly local government, know precious little about how anything computer related works. Until a few years ago the local transport people sent informational emails with hundreds of people visibly cc’d in them. I wouldn’t trust them to even set a secure password on their own systems!

Not long ago our NHS systems were infected with a program that locked them, encrypted them and threatened to delete all the data on them unless a ransom was paid.

The Cambridge Analytica thing has proven that democracy is too important to allow it to be interfered with by software and algorithms that we don’t understand and that can be exploited in ways that we did not expect.

So…maybe I convinced you, can we keep marks on bits of trees, please!?

And if I didn’t, here’s 8 minutes of a fellow University of York Alumnus who is equally passionate about the topic.