E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency...

24
September 10, 2007 presentation at SHARCS 2007 Vienna, Austria E-Passport: Cracking Basic Access Control Keys with COPACOBANA Yifei Liu, Timo Kasper, Kerstin Lemke-Rust and Christof Paar Communication Security Group Ruhr University Bochum, Germany http://www.crypto.rub.de

Transcript of E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency...

Page 1: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

September 10, 2007

presentation atSHARCS 2007Vienna, Austria

E-Passport:Cracking Basic Access Control Keys

with COPACOBANA

Yifei Liu, Timo Kasper, Kerstin Lemke-Rust and Christof Paar

Communication Security GroupRuhr University Bochum, Germany

http://www.crypto.rub.de

Page 2: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

2

Outline

1. Introduction to the E-Passport

2. The Attack Scenario

3. Basic Access Control (BAC) Protocol

4. Complexity Analysis of Key Space

5. Introduction to COPACOBANA Hardware

6. Implementation of the BAC key-search

7. Practical Results

8. Conclusion

Page 3: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

3

Introduction to the E-Passport

• Standardized by the ICAO*

• Contactless chip stores data

• Basic Access Control

• Encryption of interchanged data

• Passive Authentication

• Extended Access Control

*) ICAO = International Civil Aviation Organisation

Page 4: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

4

Security Mechanisms of the Epass

• Standarized by the ICAO

• Contactless chip stores data

• Basic Access Control

• Encryption of interchanged data

• Passive Authentication

• Extended Access Control

prevents unauthorized access to personal data ?

Page 5: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

5

The Attack Scenario

Page 6: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

6

Basic Access Control (BAC)

Reader (IFD) E-Pass (ICC)

optically scan printed data

RNDICC ∈ {0,1}64

RNDIFD ∈ {0,1}64 , KIFD ∈ {0,1}128

EIFD := ENCK_ENC (RNDIFD || RNDICC || KIFD)

MIFD := MACK_MAC (EIFD)

RNDICC

EIFD || MIFD

decrypt and verify EIFD || MIFD

KICC ∈ {0,1}128

EICC := ENCK_ENC (RNDICC || RNDIFD || KICC)

MICC := MACK_MAC (CICC)

KSSeed:= KIFD ⊕ KICCEICC || MICC

decrypt and verify EICC || MICC

KSSeed := KIFD ⊕ KICC

plaintext

ciphertext = msb8 (EICC)

ciphertext

plaintext

Page 7: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

7

Derivation of BAC Keys

Information of the MRZ (Machine Readable Zone) is used for key derivation:

Page 8: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

8

Derivation of BAC Keys

• C0 = 00 00 00 01 for KENC

• C1 = 00 00 00 02 for KMAC

Page 9: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

9

Start: August 26, 2006 November 1, 2005

Validity: 5 years 10 years

Working days Tworkuntil June 1, 2007 196 413

Passport owners: approx. 9 million approx. 20 million

Passports issuedper working day: approx. 7000 approx. 8000

Numbering: fixed `N´, 1 alphanumeric digit, 4 numeric digits for local authority,

6 numeric digits, 1 digit checksum 5 numeric digits serial number

Complexity Analysis of Key SpaceSpecial (public) parameters for issuing passports:

The Netherlands Germany

Page 10: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

10

Complexity Analysis of Key Space

Adversary‘s knowledge on the system:1. public knowledge

2. stochastic dependency between passport number and expiry date*

3. complete database of BAC keys

Knowledge on the passport holder:1. issuing state

2. photo of passport holder

3. date of birth

4. site of eavesdropping (only relevant for Germany)

*) in Germany: for each local authority

Page 11: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

11

Complexity Analysis of Key Space

Example Scenario:• public knowledge, stochastic dependency between passport number and expiry date*,

age of passport holder with margin of 10 years, and issuing state known

Entropy for Germany Entropy for the NetherlandsGDE

GDB

GPN

G HHHH ++= NLDE

NLDB

NLPN

NL HHHH ++=

δ8.11)36510(log

21.5 )52(log )952(log

)(log

2

22

**2

≈×≈≈

++=

GDE

GDB

workGPN

HH

TH

δ3.33 +≈GH

**) working days since start of system until June 1, 2007

δ11.8)36510(log

4.20)7000(log

2

**2

=

≈×≈

≈×=

NLDE

NLDB

workNLPN

HH

TH

δ2.32 +≈NLH

*) in Germany: for each local authority

Page 12: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

12

Major Flaw in the BAC Scheme

Low entropy of the BAC keys in present numbering schemes:

1. key space of the passport number: fixed digits, check digit, mainly numeric characters

could be nine alphanumeric characters

2. stochastic dependency between passport numberand the expiry date

don‘t assign passport numbers serially

3. dependency on publicly available data (date of birth) don‘t use publicly available data

Page 13: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

13

COPACOBANA: A Brief Overview

• Cost-Optimized PArallel COde Breaker

• an FPGA-based machine for DES cracking

• Parallel architecture built out of 120 Xilinx Spartan3 XC3S1000 FPGAs

• Modular design:- Backplane with FPGA modules (each with 6 low-cost FPGAs)- Controller card with USB interface

Page 14: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

14

The First Thought about the Design

• Two approaches for key search:1. msb8(EICC) = EK_ENC (RNDICC)2. MACK_MAC(EIFD) = MIFD

Page 15: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

15

Problems and Solutions

• Problem: The bottleneck of the architecture of the COPACOBANA is the communication via the buses and to the Host PC.

Page 16: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

16

Problems and Solutions• Problem: The bottleneck of the architecture of the COPACOBANA is

the communication via the buses and to the Host PC

• Solution:- Every FPGA possesses a MRZ generator to support the key derivation- Special memories will be established to store the plaintext and ciphertext

Page 17: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

17

Layout of a single FPGA

• Part_of_MRZ: -fixed for every FPGA, e.g., expiry day or birthday.

• Plaintext: RNDICC

• Ciphertext: msb8(EICC)

• MRZ_Generator: -producing 4 MRZs/clock

• Enginei: -Deriving KENC

-Encrypting the plaintext into ciphertext

• Comp: -Ciphertextnew = Ciphertext ?

Page 18: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

18

plaintext

ciphertext

SHA-1

SHA-1

Triple DES

KENC

MRZ

ciphertext

Design of one engine

engine

Solution:

Pipelined SHA-1: Needs 80 clock cycles per key candidate (SHA-1 is bottleneck)

3DES needs 48 clock cycles

80 c

ycle

s48

cyc

les

Key

der

ivat

ion

Enc

rypt

ion

80 clock cyclesper ciphertext

Page 19: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

19

Layout of a single FPGA

• Part_of_MRZ: -fixed for every FPGA, e.g., expiry day or birthday.

• Plaintext: RNDICC

• Ciphertext: msb8(EICC)

• MRZ_Generator: -producing 4 MRZs/clock

• Enginei: -Deriving KENC

-Encrypting the plaintext into ciphertext

• Comp: -Ciphertextnew = Ciphertext ?

Page 20: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

20

Design of the MRZ Generator

• They are the only components depending on the concrete attack scenario (adversary, knowledge about passport holder,…)

• Part_of_MRZ: fixed for every FPGA; but how?- One Idea: Age estimate: 10 years = 120 months = 120 FPGAs

Fixed part of MRZ is year and month of birth.

• MRZ Generator- Input: Part_of_MRZ- Output: Subspace of MRZ information

Page 21: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

21

Implementation for Scenarios

MRZ Generator

Compute the check digits

86 50 0 0 0 1 6 4 0 8 1 2 71 1 1 0 01 2 2 0

Counters

for this FPGA: 6408

pass no. birthday expiry daya.id

INP

UT

• size of Part_of_MRZ field depends on application scenario

• as does the MRZ Generator

Page 22: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

22

Practical Results

10.3 second22 secondAverage time to find the MRZ

4.9 *1091.06 *1010Total amount of MRZ candidatesScenario:

240 Mio. Keys/second 227.84 Keys/second120 FPGAs

2 Mio. Keys/second 220.93 Keys/second1 FPGASpeed of the Key search

40 MHzClock rate

Efficiency of the implementation

~~ ~~

The NetherlandsGermany

• public knowledge, stochastic dependency between passport number and expiry date,

age of passport holder with margin of 10 years, and issuing state known

Page 23: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

23

Conclusion

• Scenario for eavesdropping attacking BAC keys introduced

• Two approaches for two-way and one-way communication

• Complexity Analysis of BAC key space Entropy of present schemes is too low

• Fast hardware implementation of the BAC key search

• Throughput: 227.8 = 240 million BAC keys per second on COPACOBANA

• 235 key candidates require 2 minutes and 23 seconds

Key search machines are a real threat for privacy and security of electronic passport holders.

Page 24: E-Passport: Cracking Basic Access Control Keys with COPACOBANA€¦ · 2. stochastic dependency between passport number and expiry date* 3. complete database of BAC keys Knowledge

September 10, 2007

presentation atSHARCS 2007Vienna, Austria

Thanks for your attention!

{yliu,tkasper,lemke,cpaar}@crypto.rub.de