Ersin kszo lu Dan S. Wallach VoteBox Full featured DRE voting - - PowerPoint PPT Presentation

ersin ks zo lu
SMART_READER_LITE
LIVE PREVIEW

Ersin kszo lu Dan S. Wallach VoteBox Full featured DRE voting - - PowerPoint PPT Presentation

EVT/WOTE 09 AUGUST ST 10, 2009 Ersin kszo lu Dan S. Wallach VoteBox Full featured DRE voting machine Paper in USENIX Security Symposium 2008 2 Pre-rendered Network ballot user interface replication increases the


slide-1
SLIDE 1

Ersin Öksüzoğlu Dan S. Wallach

EVT/WOTE ’09 AUGUST ST 10, 2009

slide-2
SLIDE 2

 VoteBox

  • Full featured DRE voting machine
  • Paper in USENIX Security Symposium 2008

2

slide-3
SLIDE 3

3

Pre-rendered user interface simplifies the graphics ics subsystem & co code e size Elgamal ballot encryption allows tallying ing the votes independently Challenge

  • ption

casts the votes as as intende ended Network ballot replication increases the avail ilabil ability ity of voting records

slide-4
SLIDE 4

 One way of encryption  Two ways of decryption

4

slide-5
SLIDE 5

 In a tampered VoteBox, we cannot detect privacy

attacks

  • 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 14500 VoteBox

slide-6
SLIDE 6

Minimized code size for easier inspection End to end cryptography Better random numbers Additional tamper-evidence mechanism

6

Hardware and software hybrid Challenge option Elgamal Encryption Pre-rendered GUI Session ID Bitstream Readback True Random Number Generator

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

 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

slide-10
SLIDE 10

10

Vot

  • teBox

eBox Class ssic ic vs vs. . Vot

  • teBox

Box Nano no

slide-11
SLIDE 11

11

X Y color text X Y color text

slide-12
SLIDE 12

 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 out

  • 1. Bitstream upload and download
  • 2. Software upload and download
  • 3. Accessing software debugger

12

USB For FPGA GAs, s, JTAG AG is u s use sed for

slide-13
SLIDE 13

Programming

13

USB  JTAG

..XXXX

Done !!!

..9F23 23 ..9F23 23 Triggers Session ID Captured from TRNG

slide-14
SLIDE 14

Programming

14

USB  JTAG

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

Write e it down! FPGA is sealed Done !!! The design is ready!

slide-15
SLIDE 15

..0932 32

Readback bitstream

15

Done !!!

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

Same ? Compare

Seal is broken

slide-16
SLIDE 16

 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 Honest bitstream

slide-17
SLIDE 17

17

EVM Language LOC

Pvote Python 460 VoteBox Nano C 996 VoteBox (Stripped) Java ~7300 VoteBox (Full) Java 14500 Diebold AccuVote TSX C++ 64000 Sequoia Edge C 124000

slide-18
SLIDE 18

 Pvote  VoteBox (Full)  VoteBox Nano

18

460 lines Python Python Libraries Linux Kernel PR-GUI SHA1 14500 lines JAVA JAVA Libraries Linux Kernel PR-GUI Network ballot rep. Challenge Elgamal enc. DSA FPGA Modules Custom Modules 122 kB executable PR-GUI TRNG Challenge Elgamal enc. DSA Session ID

slide-19
SLIDE 19

 We have shown that a very compact EVM can

be built using an FPGA with following features:

19

Elgamal Encryption and DSA Externally verifiable attestation Pre-rendered GUI No underlying OS True Random Number Generator Challenge Option

slide-20
SLIDE 20

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 valid Usual flow

Challenge

The votes are invalidated FPGA reveals the random numbers

slide-21
SLIDE 21

 TRNG has 128 ring oscillators, each consisting

  • f 3 inverters

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

21

slide-22
SLIDE 22

22

slide-23
SLIDE 23

 Theft of the device

  • No secret data is stored in long term

 Tapping serial port

  • The votes are encrypted
  • Encryption is probabilistic

23

slide-24
SLIDE 24

24

Hardware LOC Crypto Module 760 TRNG 520 Other 483 Total 1763

slide-25
SLIDE 25

25

TDI: (Test Data In) TDO: (Test Data Out) TCK: (Test Clock) TMS: (Test Mode Select) The line is tripwired to the Session ID

slide-26
SLIDE 26

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

slide-27
SLIDE 27
  • 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 us used for The line is tripwired to the Session ID

slide-28
SLIDE 28

28