1 Digitale beveiliging Erik Poll Digital Security groep Radboud Universiteit Nijmegen.
1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud...
-
Upload
michiel-maas -
Category
Documents
-
view
213 -
download
0
Transcript of 1 Digital Security, Informatica Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud...
1Digital 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
3Digital Security, Informatica
• De beste (enige?) manier om te kijken of beveiliging
goed is:
– probeer de beveiliging te breken
– denk als een aanvaller
4Digital Security, Informatica
De OV chipkaart
5Digital Security, Informatica
Een OV chipkaart van binnen
antennechip
6Digital Security, Informatica
Hoe hack je een RFID systeem?
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
?
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
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
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
??
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
12Digital Security, Informatica
challenge-response protocol
• Eerste sessie:
2499?
5014
wie bent u?
ik ben kaart 987312
13Digital Security, Informatica
challenge-response protocol
• Volgende sessie:
9811?
2944
wie bent u?
ik ben kaart 987312
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...
15Digital Security, Informatica
kraken
Reverse-engineering OV-chip
• Globale structuur bekend
• Schuifregister + niet-lineair filter
16Digital Security, Informatica
LFSR
Linear Feedback Shift Register
(Schuifregister met lineaire terugkoppeling)
17Digital Security, Informatica
LFSR
• Voorbeeld
⊕ staat voor optellen modulo 2
18Digital Security, Informatica
LFSR
• Voorbeeld
19Digital Security, Informatica
LFSR
• Voorbeeld
20Digital Security, Informatica
LFSR
• Voorbeeld
21Digital Security, Informatica
LFSR
• Voorbeeld
22Digital Security, Informatica
LFSR
• Voorbeeld
23Digital Security, Informatica
LFSR
Voorbeeld
24Digital Security, Informatica
LFSR
• Voorbeeld
25Digital Security, Informatica
Two-table attack
26Digital Security, Informatica
Feedback op regelmatige posities
27Digital Security, Informatica
28Digital Security, Informatica
29Digital Security, Informatica
30Digital Security, Informatica
31Digital Security, Informatica
32Digital Security, Informatica
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
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
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
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
37Digital Security, Informatica
Waar zitten mogelijke problemen?
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
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!
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
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
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
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
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!
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
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
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
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
49Digital Security, Informatica
• Meet het stroomverbruik tijdens de powermod
• Onderscheid vermenigvuldigen en kwadrateren
• Voorbeeld trace (RFID):
Power Analysis
50Digital Security, Informatica
• Aanvaller verstoort de berekening (fault injection)
• Uit de foute uitkomst is informatie over de sleutel te
achterhalen
Fouten veroorzaken
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
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
53Digital Security, Informatica
• Wiskundige correct geen garantie voor veilig
• Gebruik standaard, open algoritmes (Kerckhoffs)
• Gebruik standaard bibliotheken
• Zeer terughoudend zijn met zelf knutselen
Conclusie