electronic voting machine – votebox client device

28
Ersin Öksüzoğlu Dan S. Wallach EVT/WOTE ’09 AUGUST 10, 2009

Upload: others

Post on 02-Dec-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Electronic Voting Machine – Votebox Client Device

Ersin Öksüzoğlu

Dan S. Wallach

EVT/WOTE ’09

AUGUST 10, 2009

Page 2: Electronic Voting Machine – Votebox Client Device

VoteBox ◦ Full featured DRE voting machine

◦ Paper in USENIX Security Symposium 2008

2

Page 3: Electronic Voting Machine – Votebox Client Device

3

Pre-rendered user interface

simplifies the graphics

subsystem & code size

Elgamal ballot encryption

allows tallying the votes independently

Challenge option

casts the votesas intended

Network ballot replication

increases the availability of voting

records

Page 4: Electronic Voting Machine – Votebox Client Device

One way of encryption

Two ways of decryption

4

Page 5: Electronic Voting Machine – Votebox Client Device

In a tampered VoteBox, we cannot detect privacyattacks◦ The random number can be used as a subliminal channel

VoteBox still needs to be smaller

5

EVM Language LOC

Pvote Python 460

VoteBox Java 14500

Diebold AccuVote TSX C++ 64000

Sequoia Edge C 124000

14500VoteBox

Page 6: Electronic Voting Machine – Votebox Client Device

Minimized code size for easier inspection

End to end cryptography

Better random numbers

Additional tamper-evidencemechanism

6

Hardware and software hybrid

Challenge option

Elgamal Encryption

Pre-rendered GUI

Session IDBitstream Readback

True Random Number Generator

Page 7: Electronic Voting Machine – Votebox Client Device

7

A blank chip that the user can program on the field

Emulate any chip

Used for prototyping custom silicon

Accelerate designs taking the advantage of the parallelism

Widely deployed in the industry ($2.75 billion in 2010)

Fast time to market

Low initial cost

Re-programmable hence easy to update

Page 8: Electronic Voting Machine – Votebox Client Device

8

500k gate FPGA Chip

Flash RAM

DRAM

VGA port

Dot Matrix LCD (2x16)

A rotary encoder

RS232 serial ports

Buttons and switches

USB configuration port

No CPU, GPU, network chip

Page 9: Electronic Voting Machine – Votebox Client Device

Network replication and storage facilities◦ We have limited space on board

Ethernet communication module◦ Instead we have RS232 port

High resolution bitmap based GUI◦ We have character graphics

9

Page 10: Electronic Voting Machine – Votebox Client Device

10

VoteBox Classic vs. VoteBox Nano

Page 11: Electronic Voting Machine – Votebox Client Device

11

X Y color textX Y color text

Page 12: Electronic Voting Machine – Votebox Client Device

IEEE port standard for IC’s to: Debug

Program

Monitor

Daisy chain connection for all the components on board One wire data in

One wire data out1. Bitstream upload and download

2. Software upload and download

3. Accessing software debugger

12

USB

For FPGAs, JTAG is used for

Page 13: Electronic Voting Machine – Votebox Client Device

Programming

13

USB JTAG

..XXXX

Done !!!

..9F23..9F23Triggers

Session ID

Captured from TRNG

Page 14: Electronic Voting Machine – Votebox Client Device

Programming

14

USB JTAG

..0932..9F23..7FED..1456..3247..6831..127F..E2D6..E12C..FAFA..ED92..259A..2201..F032..CC21..0932..0932

Write it down!

FPGA is sealed

Done !!!

The design is ready!

Page 15: Electronic Voting Machine – Votebox Client Device

..0932

Readbackbitstream

15

Done !!!

..0932..7FED..1456..3247..6831..127F..E2D6..E12C..FAFA..ED92..259A..2201..F032..CC21Same ?

Compare

Seal is broken

Page 16: Electronic Voting Machine – Votebox Client Device

Upload a new bitstream

16

Elections Start

Elections End

Change software

JTAG port is monitored

Session ID is read-only

Evil bitstream

Session ID

Bitstream verification

Elections Start

Elections End

Evil bitstream

Session ID

Bitstream verification

Honestbitstream

Page 17: Electronic Voting Machine – Votebox Client Device

17

EVM Language LOCPvote Python 460

VoteBox Nano C 996

VoteBox (Stripped) Java ~7300

VoteBox (Full) Java 14500

Diebold AccuVote TSX C++ 64000

Sequoia Edge C 124000

Page 18: Electronic Voting Machine – Votebox Client Device

Pvote

VoteBox (Full)

VoteBox Nano

18

460 lines Python

Python Libraries

Linux Kernel

PR-GUI SHA1

14500 lines JAVA

JAVALibraries

Linux Kernel

PR-GUINetwork

ballot rep.

ChallengeElgamal enc.

DSA

FPGA Modules Custom Modules

122 kBexecutable

PR-GUI TRNG

Challenge Elgamal enc. DSA

Session ID

Page 19: Electronic Voting Machine – Votebox Client Device

We have shown that a very compact EVM can be built using an FPGA with following features:

19

ElgamalEncryption and

DSA

Externally verifiable attestation

Pre-rendered GUI

No underlying OS

True Random Number Generator

Challenge Option

Page 20: Electronic Voting Machine – Votebox Client Device

20

At the last step, the voter is given two options

FPGA only publishes the random numbers, the secret key is still safe

With a certain amount of challenges, the results are reliable enough

Cast

The votes are validUsual flow

Challenge

The votes are invalidatedFPGA reveals the random numbers

Page 21: Electronic Voting Machine – Votebox Client Device

TRNG has 128 ring oscillators, each consisting

of 3 inverters

fs is 25 MHz and throughput is 195 kB/s.

21

Page 22: Electronic Voting Machine – Votebox Client Device

22

Page 23: Electronic Voting Machine – Votebox Client Device

Theft of the device

◦ No secret data is stored in long term

Tapping serial port

◦ The votes are encrypted

◦ Encryption is probabilistic

23

Page 24: Electronic Voting Machine – Votebox Client Device

24

Hardware LOC

Crypto Module 760

TRNG 520

Other 483

Total 1763

Page 25: Electronic Voting Machine – Votebox Client Device

25

TDI: (Test Data In)TDO: (Test Data Out)TCK: (Test Clock)TMS: (Test Mode Select)

The line is tripwiredto the Session ID

Page 26: Electronic Voting Machine – Votebox Client Device

26

Xilinx Spartan-3E 500 Starter Kit

500k gate FPGA Chip

Flash RAM (16 MB)

DRAM (32 MB)

VGA port

Dot Matrix LCD (2x16)

A rotary encoder

RS232 serial ports

Buttons and switches

USB configuration port

Ethernet Port

PS/2 port

8 LEDs

Page 27: Electronic Voting Machine – Votebox Client Device

1. Bitstream upload and download

2. Software upload and download

3. Accessing software debugger

27

TDI: (Test Data In)TDO: (Test Data Out)TCK: (Test Clock)TMS: (Test Mode Select)

USB

JTAG

For FPGAs JTAG is used for

The line is tripwiredto the Session ID

Page 28: Electronic Voting Machine – Votebox Client Device

28