53
Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

Embed Size (px)

Citation preview

Page 1: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

1Digital Security, Informatica

Kraken in de praktijk

Ronny Wichers Schreur

Digital Security Radboud Universiteit Nijmegen

Page 2: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

2Digital Security, Informatica

Overzicht

• Kraken in de praktijk

– aan de hand van OV-chip hack

• Praktische gebruik cryptografie

– aan de hand van (aanvallen op) RSA

Page 3: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

3Digital Security, Informatica

• De beste (enige?) manier om te kijken of beveiliging

goed is:

– probeer de beveiliging te breken

– denk als een aanvaller

Page 4: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

4Digital Security, Informatica

De OV chipkaart

Page 5: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

5Digital Security, Informatica

Een OV chipkaart van binnen

antennechip

Page 6: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

6Digital Security, Informatica

Hoe hack je een RFID systeem?

Page 7: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

7Digital Security, Informatica

• Luister af wat ov chipkaart tegen de lezer zegt;

• Communicatie protocol tussen poortje en kaart.

Reverse Engineering: Hoe werkt het.

Wie bent u?

Ik ben kaart 987312

?

Page 8: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

8Digital Security, Informatica

replay attack

• luister af wat ov chipkaart tegen de lezer zegt

en maak apparaat dat precies hetzelfde zegt

Wie bent u?

Ik ben kaart 987312

Page 9: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

9Digital Security, Informatica

replay attack werkt voor wegwerp ov chipkaart!

poortje ziet geen verschil

tussen echte kaart en

de kloon

Ghost device van

Roel Verdult

Page 10: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

10Digital Security, Informatica

Hoe kun je een replay attack voorkomen?

• zorg dat communicatie tussen RFID en lezer steeds

anders is (zgn challenge-response mechanisme)

vraag

antwoord

??

Page 11: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

11Digital Security, Informatica

challenge-response protocol

• hierbij wordt versleuteling gebruikt:

het antwoord is een versleuteling van de vraag met

een geheime sleutel

n?

versleutelKEY{n}

wie bent u?

ik ben kaart K

Page 12: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

12Digital Security, Informatica

challenge-response protocol

• Eerste sessie:

2499?

5014

wie bent u?

ik ben kaart 987312

Page 13: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

13Digital Security, Informatica

challenge-response protocol

• Volgende sessie:

9811?

2944

wie bent u?

ik ben kaart 987312

Page 14: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

14Digital Security, Informatica

reverse engineering

Hoe kun je zo'n challenge-response mechanisme kraken?

1. probeer achter het versleutelingsalgoritme te komen

– vaak is dat een openbare standaard, soms niet

2. probeer achter de sleutel te komen, door

– alle mogelijke sleutels te proberen

– kost meestal (te)veel tijd

of

– bij slecht ontworpen versleutelingsalgoritme, is de sleutel

vaak sneller te bepalen

– algoritme op Mifare Classic RFID kaarten is slecht

ontworpen...

Page 15: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

15Digital Security, Informatica

kraken

Reverse-engineering OV-chip

• Globale structuur bekend

• Schuifregister + niet-lineair filter

Page 16: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

16Digital Security, Informatica

LFSR

Linear Feedback Shift Register

(Schuifregister met lineaire terugkoppeling)

Page 17: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

17Digital Security, Informatica

LFSR

• Voorbeeld

⊕ staat voor optellen modulo 2

Page 18: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

18Digital Security, Informatica

LFSR

• Voorbeeld

Page 19: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

19Digital Security, Informatica

LFSR

• Voorbeeld

Page 20: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

20Digital Security, Informatica

LFSR

• Voorbeeld

Page 21: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

21Digital Security, Informatica

LFSR

• Voorbeeld

Page 22: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

22Digital Security, Informatica

LFSR

• Voorbeeld

Page 23: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

23Digital Security, Informatica

LFSR

Voorbeeld

Page 24: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

24Digital Security, Informatica

LFSR

• Voorbeeld

Page 25: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

25Digital Security, Informatica

Two-table attack

Page 26: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

26Digital Security, Informatica

Feedback op regelmatige posities

Page 27: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

27Digital Security, Informatica

Page 28: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

28Digital Security, Informatica

Page 29: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

29Digital Security, Informatica

Page 30: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

30Digital Security, Informatica

Page 31: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

31Digital Security, Informatica

Page 32: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

32Digital Security, Informatica

Page 33: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

33Digital Security, Informatica

Twee-tabellen aanval

Even en oneven gedeelte van LFSR kunnen

afzonderlijk berekend worden

20-bits invoer: gemiddeld 220/2= 219 (half

millioen) fragmenten passen bij keystream

Breid elk fragment uit: gemiddeld 219

fragmenten in elke tabel

Combineer de twee tabellen

Page 34: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

34Digital Security, Informatica

Cryptanalysis

Vele andere zwakheden gevonden:

langere nonces geacceptreed door lezers

cijferstroom hergebruikt voor pariteitsbits

kaartnonce versleuteld voor volgende sector

linker bit niet gebruikt in filterfunctie

regelmatig posities bits voor filterfunctie

versleutelde foutmeldingen

parititeitsbit over klare tekst

lage entropy nonces (16 bits)

voorspelbare kaartnonces

cijferstroom verbuigbaar

Page 35: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

35Digital Security, Informatica

• OV-Chip (Mifare) gehackt

• Responsible disclosure

• AIVD op bezoek

• Rechtzaak NXP

• OV-chip nog in gebruik (maar wel wat verbeterd)

Ander onderzoek: geheugenchips, femtocel,

startonderbrekers (rechtzaak VW vooralsnog

verloren)

Gevolgen

Page 36: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

36Digital Security, Informatica

1. Kies priemgetallen p en q, waarbij p = q .

2. Bereken m=p⋅q en φ(m).

3. Kies een restklasse e.

4. Bereken de restklasse d (e-1 in Zφ(m))

5. Vernietig de getallen p, q en φ(m)!

6. Publieke sleutel (m, e), geheime sleutel (m, d )

7. c = be in Zm b = cd in Zm

RSA

Page 37: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

37Digital Security, Informatica

Waar zitten mogelijke problemen?

Page 38: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

38Digital Security, Informatica

1. Kies priemgetallen p en q, waarbij p = q .

2. Bereken m=p⋅q en φ(m).

3. Kies een restklasse e.

4. Bereken de restklasse d (e-1 in Zφ(m))

5. Vernietig de getallen p, q en φ(m)!

6. Publieke sleutel (m, e), geheime sleutel (m, d )

7. c = be in Zm b = cd in Zm

RSA

Page 39: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

39Digital Security, Informatica

• Berekeningen zijn deterministisch

• Vergaar entropie (toeval) van buiten: timing van

gebeurtenissen (toetsaanslagen, aankomst

netwerkprocessen, timing harde schijf, levensduur

processen, etc)

• gebruik fysieke toevalsgenerator

Kies priemgetallen p en q willekeurig!

Page 40: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

40Digital Security, Informatica

• Door programmeerfout meeste entropie niet gebruikt

• Fout geïntroduceerd in OpenSSL open Debian/Linux

(en dus ook in afgeleide Ubuntu, etc)

• Slecht enkele honderdduizenden mogelijke sleutels

• Fout gemaakt in 2006, ontdekt in 2008

• Alle gegeneerde sleutels uit deze periode zwak en

dus de systemen kwetsbaar (SSL, ssh, etc.)

Voorbeeld 1 :Debian/OpenSSL debacle

Page 41: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

41Digital Security, Informatica

• Router thuis beschikt over weinig entropie

– sleutels gegenereerd bij eerste keer opstarten

– géén toetsenbord

– géén harde schijf

– weinig processen

– weinig/géén netwerkverkeer

• Gevolg: grote kans dat twee verschillende routers

een RSA priemfactor delen.

• Gemeenschappelijke factor snel te vinden: Hoe?

Voorbeeld 2: Routers

Page 42: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

42Digital Security, Informatica

• Heninger et all. verzamelden miljoenen publieke

(SSL en SSH) sleutels op het internet

• Tienduizenden publieke sleutels met

gemeenschappelijke factor gevonden

Voorbeeld 2: Routers, vervolg

Page 43: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

43Digital Security, Informatica

1. Kies priemgetallen p en q, waarbij p = q .

2. Bereken m=p⋅q en φ(m).

3. Kies een restklasse e.

4. Bereken de restklasse d (e-1 in Zφ(m))

5. Vernietig de getallen p, q en φ(m)!

6. Publieke sleutel (m, e), geheime sleutel (m, d )

7. c = be in Zm b = cd in Zm

RSA

Page 44: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

44Digital Security, Informatica

• Sleutelmateriaal moet geheim blijven, maar moet wel

gebruikt kunnen worden.

• Gebruik HSM (hardware secure module): sleutel kan

niet worden gekopieerd

• Beveilig toegang tot sleutelmateriaal

– wachtwoorden

– goed beveiligde, up-to-date systeem

Houd sleutelmateriaal geheim!

Page 45: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

45Digital Security, Informatica

• DigiNotar: Certificaatautoriteit, ondertekende

publieke sleutels, werd vertrouwd door alle browsers

• Computersysteem werd gekraakt

• Aanvaller kon zelf certificaten ondertekenen in naam

van DigiNotar

• Hiermee man-in-the-middle aanvallen mogelijk

• Gevolg: DigiNotar niet meer vertrouwd, vele NL

overheidssites tijd niet bruikbaar

Voorbeeld: DigiNotar affaire

Page 46: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

46Digital Security, Informatica

1. Kies priemgetallen p en q, waarbij p = q .

2. Bereken m=p⋅q en φ(m).

3. Kies een restklasse e.

4. Bereken de restklasse d (e-1 in Zφ(m))

5. Vernietig de getallen p, q en φ(m)!

6. Publieke sleutel (m, e), geheime sleutel (m, d )

7. c = be in Zm b = cd in Zm

RSA

Page 47: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

47Digital Security, Informatica

• Side-channel analyse: observeer gedrag berekening

en probeer hier informatie uit te halen

• Tijd: hoe lang duurt een berekening

• Stroom: (power analysis) wanneer gebruikt de

berekening hoeveel stroom

• Geheugen: wanneer gebruikt de berekening hoeveel

geheugen (bijvoorbeeld cache)

• Straling, geluid, enzovoorts

Lek geen geheimen

Page 48: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

48Digital Security, Informatica

• Ondertekening bericht a met geheime RSA-sleutel

(d, m): s = ad mod m

• functie powermod (base, exp, m):

r = 1

while exp > 0:

if exp mod 2 = 1:

r = base * r mod m

base = base2 mod m

exp = exp div 2

return r

Voorbeeld: Power analysis RSA ondertekening

Page 49: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

49Digital Security, Informatica

• Meet het stroomverbruik tijdens de powermod

• Onderscheid vermenigvuldigen en kwadrateren

• Voorbeeld trace (RFID):

Power Analysis

Page 50: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

50Digital Security, Informatica

• Aanvaller verstoort de berekening (fault injection)

• Uit de foute uitkomst is informatie over de sleutel te

achterhalen

Fouten veroorzaken

Page 51: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

51Digital Security, Informatica

• RSA digitale handtekening

• snelle CRT versie van s = ad mod m

• q’ = q-1 mod p

• sp = sd mod p

• sq = sd mod q

• s = sq + ((sp – sq) q’ mod p) q

• GGD(a – se, m) = 0

Voorbeeld

Page 52: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

52Digital Security, Informatica

• RSA digitale handtekening

• snelle CRT versie van s = ad mod m

• q’ = q-1 mod p

• s’p = sd mod p + x = sp+ x

• sq = sd mod q

• s’ = sq + ((s’p – sq) q’ mod p)⋅q = s + y⋅q

• GGD(a – s’e, m) = q

Voorbeeld

Page 53: 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen

53Digital Security, Informatica

• Wiskundige correct geen garantie voor veilig

• Gebruik standaard, open algoritmes (Kerckhoffs)

• Gebruik standaard bibliotheken

• Zeer terughoudend zijn met zelf knutselen

Conclusie