1 / 53

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

Kraken in de praktijk Ronny Wichers Schreur Digital Security Radboud Universiteit Nijmegen. Overzicht. Kraken in de praktijk aan de hand van OV-chip hack Praktische gebruik cryptografie aan de hand van (aanvallen op) RSA. De beste (enige?) manier om te kijken of beveiliging goed is:

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kraken in de praktijkRonny Wichers SchreurDigital Security Radboud Universiteit Nijmegen

  2. Overzicht • Kraken in de praktijk • aan de hand van OV-chip hack • Praktische gebruik cryptografie • aan de hand van (aanvallen op) RSA

  3. De beste (enige?) manier om te kijken of beveiliging goed is: • probeer de beveiliging te breken • denk als een aanvaller

  4. De OV chipkaart

  5. Een OV chipkaart van binnen chip antenne

  6. Hoe hack je een RFID systeem?

  7. Reverse Engineering: Hoe werkt het. • Luister af wat ov chipkaart tegen de lezer zegt; • Communicatie protocol tussen poortje en kaart. Wie bent u? ? Ik ben kaart 987312

  8. 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

  9. replay attack werkt voor wegwerp ov chipkaart! poortje ziet geen verschil tussen echte kaart en de kloon Ghost device van Roel Verdult

  10. Hoe kun je een replay attack voorkomen? • zorg dat communicatie tussen RFID en lezer steeds anders is (zgn challenge-response mechanisme) vraag ? ? antwoord

  11. challenge-response protocol • hierbij wordt versleuteling gebruikt: het antwoord is een versleuteling van de vraag met een geheime sleutel wie bent u? ik ben kaart K n? versleutelKEY{n}

  12. challenge-response protocol • Eerste sessie: wie bent u? ik ben kaart 987312 2499? 5014

  13. challenge-response protocol • Volgende sessie: wie bent u? ik ben kaart 987312 9811? 2944

  14. reverse engineering Hoe kun je zo'n challenge-response mechanisme kraken? • probeer achter het versleutelingsalgoritme te komen • vaak is dat een openbare standaard, soms niet • 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...

  15. kraken Reverse-engineering OV-chip • Globalestructuurbekend • Schuifregister + niet-lineair filter

  16. LFSR • Linear Feedback Shift Register • (Schuifregister met lineaire terugkoppeling)

  17. LFSR • Voorbeeld ⊕staat voor optellen modulo 2

  18. LFSR • Voorbeeld

  19. LFSR • Voorbeeld

  20. LFSR • Voorbeeld

  21. LFSR • Voorbeeld

  22. LFSR • Voorbeeld

  23. LFSR • Voorbeeld

  24. LFSR • Voorbeeld

  25. Two-table attack

  26. Feedback op regelmatige posities

  27. 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

  28. 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

  29. Gevolgen • OV-Chip (Mifare) gehackt • Responsible disclosure • AIVD op bezoek • Rechtzaak NXP • OV-chip nog in gebruik (maar welwatverbeterd) Ander onderzoek: geheugenchips, femtocel, startonderbrekers (rechtzaak VW vooralsnogverloren)

  30. RSA • Kies priemgetallen p en q, waarbij p ≠ q . • Bereken m=p⋅q en φ(m). • Kies een restklasse e. • Bereken de restklasse d (e-1in Zφ(m)) • Vernietig de getallen p, q en φ(m)! • Publieke sleutel (m, e), geheime sleutel (m, d ) • c = bein Zmb = cd in Zm

  31. Waar zitten mogelijke problemen?

  32. RSA • Kies priemgetallen p en q, waarbij p ≠ q . • Bereken m=p⋅q en φ(m). • Kies een restklasse e. • Bereken de restklasse d (e-1in Zφ(m)) • Vernietig de getallen p, q en φ(m)! • Publieke sleutel (m, e), geheime sleutel (m, d ) • c = bein Zmb = cd in Zm

  33. Kies priemgetallen p en q willekeurig! • Berekeningen zijn deterministisch • Vergaar entropie (toeval) van buiten: timing van gebeurtenissen (toetsaanslagen, aankomst netwerkprocessen, timing harde schijf, levensduur processen, etc) • gebruik fysieke toevalsgenerator

  34. Voorbeeld 1 :Debian/OpenSSL debacle • 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.)

  35. Voorbeeld 2: Routers • 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?

  36. Voorbeeld 2: Routers, vervolg • Heninger et all. verzamelden miljoenen publieke (SSL en SSH) sleutels op het internet • Tienduizenden publieke sleutels met gemeenschappelijke factor gevonden

  37. RSA • Kies priemgetallen p en q, waarbij p ≠ q . • Bereken m=p⋅q en φ(m). • Kies een restklasse e. • Bereken de restklasse d (e-1in Zφ(m)) • Vernietig de getallen p, q en φ(m)! • Publieke sleutel (m, e), geheime sleutel (m, d) • c = bein Zmb = cd in Zm

  38. Houd sleutelmateriaal geheim! • 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

  39. Voorbeeld: DigiNotar affaire • 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

  40. RSA • Kies priemgetallen pen q, waarbij p ≠ q . • Bereken m=p⋅qen φ(m). • Kies een restklasse e. • Bereken de restklasse d(e-1in Zφ(m)) • Vernietig de getallen p, qen φ(m)! • Publieke sleutel (m, e), geheime sleutel (m, d) • c = bein Zmb = cd in Zm

  41. Lek geen geheimen • 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

  42. Voorbeeld: Power analysis RSA ondertekening • 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 mbase = base2 mod m exp = exp div 2return r

  43. Power Analysis • Meet het stroomverbruik tijdens de powermod • Onderscheid vermenigvuldigen en kwadrateren • Voorbeeld trace (RFID):

  44. Fouten veroorzaken • Aanvaller verstoort de berekening (fault injection) • Uit de foute uitkomst is informatie over de sleutel te achterhalen

More Related