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

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

Transcript of 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud...

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