29
(Fälschungs-) Sicherheit bei RFID Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier

Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

(Fälschungs-) Sicherheit bei RFID

Vortrag: Oliver Zweifel

Betreuer: Christian Floerkemeier

Page 2: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

� Vorher: Privatsphäre� Location Privacy

� Data Privacy

� Jetzt: Schutz der Tags gegen Fälschung

Page 3: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Übersicht

� Einführung

� Strengthening EPC Tags Against Cloning(Ari Juels)

� Security Analysis of a Cryptographically-EnabledRFID Device(Steve Bono, Matthew Green, Adam Stubblefield, Ari Juels, AviRubin, Michael Szydlo)

Page 4: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Einführung

Grundfunktionalität eines RFID-Tags:

Auf Anfrage mit eigener ID antworten

⇒ Leichte Nachahmung möglich durch� Programmierbare Tags� Tag-Simulation

Trotzdem planen viele Firmen (z. B. Hersteller von Luxusgütern) Tags alsEchtheitszertifikate für ihre Produkte einzuführen.

Fälschungssicherheit kann mit komplexeren Tags erhöht werden.→ ist aber mit wesentlich höheren Kosten verbunden

Page 5: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Strengthening EPC Tags AgainstCloning

Page 6: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Ziel des Projekts

� Schutz von einfachen EPC Tags gegen Klonen, das mittels Daten, die durch Scannen eines Tags (Skimming) in Erfahrung gebracht werden, realisiert wird.

Strengthening EPC Tags Against Cloning

Page 7: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

EPC Tags

� EPC = Electronic Product Code

� Nachfolger des Barcodes

� EPC besteht aus� Eindeutiger ID

� Weiteren Daten (Hersteller, Produkttyp etc.)

� Standardisiert

Strengthening EPC Tags Against Cloning

Page 8: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

EPCglobal Standard

� EPCglobal Class-1 Generation-2 UHF Tags müssen über eine Kill-Funktion verfügen.

Strengthening EPC Tags Against Cloning

Page 9: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Kill-Befehl

� „Zerstört“ Tag� Wird nur akzeptiert, wenn er zusammen mit einer gültigen 32-Bit Kill-

PIN geschickt wird� Kill-Aktion kann nur ausgeführt werden, wenn genügend Energie im

Tag vorhanden (ansonsten wird eine Fehlermeldung zurückgegeben)Der EPCglobal Standard bestimmt aber nicht, wie viel Energievorhanden sein muss, damit Kill-Aktion ausgeführt werden kann⇒ Trick möglich:

Auch wenn Tag immer vorgibt, zuwenig Energie zur Verfügung zu haben, widerspricht dieses Verhalten nicht dem EPCglobalStandard. Aber der Kill-Befehl kann auf diese Weise zur Tag-Authentifizierung zweckentfremded werden.Rollenumkehr: Reader-Authentifizierung → Tag-Authentifizierung

Strengthening EPC Tags Against Cloning

Page 10: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Algorithmus 1: Einfacher Tag-Authenifizierungs-AlgorithmusWir definieren Funktion PIN-test(Ki) wie folgt:

1, wenn Ki korrekter Kill-PIN für Tag iPIN-test(Ki) =

0, sonst

Strengthening EPC Tags Against Cloning

Reader Tag i

EPCi

EPCi bekannt?Ki

b = PIN-test(Ki)b

b == 1 ⇒ gültigb == 0 ⇒ ungültig

Page 11: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Überlegungen zu Algorithmus 1

� Funktioniert nur bei EPCglobal konformen Tags.

� Mittels Skimming kann zwar die EPC leicht in Erfahrung gebracht werden, nicht aber den Kill-PIN.

⇒ Angreifer muss Kill-PIN erraten(bei 32-Bit PIN: 232 ≈ 4 Mia Möglichkeiten)

Strengthening EPC Tags Against Cloning

Page 12: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Algorithmus 2Trick:Generiere Set aus falschen Kill-PINs und füge an beliebiger Stelle den wahren Kill-PIN ein.→ Funktion PINSet(i)[q] = (j, {Pi

(1), Pi(2), … , Pi

(q)})

Strengthening EPC Tags Against Cloning

Reader Tag iEPCi

EPCi bekannt?

Pi(1)

b = PIN-test(Pi(1))b

Pi(2)

b

Pi(q)

b

b = PIN-test(Pi(2))

b = PIN-test(Pi(q))

Alle q Antwortenkorrekt⇒ gültigsonst ungültig

PINSet(i)[q]

Page 13: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Überlegungen zu Algorithmus 2

� Funktioniert auch bei nicht EPCglobalkonformen Tags.

� {Pi(n)} muss bei jeder Ausführung des

Algorithmus gleich sein.� Angreifer kann raten, welcher PIN im Set der

Wahre ist. Bei einer Set-Grösse q gelingt ihm das mit einer Wahrscheinlichkeit von 1/q.

� Bei grossem q langsam⇒ Tradeoff zwischen hoher Sicherheit und Geschwindigkeit

Strengthening EPC Tags Against Cloning

Page 14: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Zusammenfassung

� Algorithmus 1:simpel, funktioniert aber nur bei EPCglobalkonformen Tags

� Algorithmus 2:funktioniert auch bei nicht EPCglobal konformen Tags

Schutz von herkömmlichen EPC Tags gegen Klonen.Trick: Rollenumkehr bei Kill-Befehl

Strengthening EPC Tags Against Cloning

Page 15: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Ungelöste Sicherheitsprobleme

� Eindringen in Datenbank

� Reverse Engineering

� Man-in-the-middle Attacke

� Abhören

Strengthening EPC Tags Against Cloning

Page 16: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Security Analysis of a Cryptographically-Enabled RFID Device

Page 17: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Ziel des Projekts

� Sicherheitsmängel des TI DST aufzeigen

� Chip-Entwickler auf Problematik sensibilisieren, sodass in Zukunft solche Probleme im Voraus vermieden werden können

Nicht Ziel: Hack-Anleitung

Security Analysis of a Cryptographically Enabled RFID Device

Page 18: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Texas Instruments DST

� DST = Digital Signature Transponder� Unterstützt Authentifizierungs-Protokoll

(Challenge-Response)� Typische Einsatzgebiete

� KFZ-Wegfahrsperren� Elektronisches Zahlungsmittel

z. B. ExxonMobil SpeedPass™

Security Analysis of a Cryptographically Enabled RFID Device

Page 19: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

TI DST Challenge-ResponseAuthentifizierung

Lesegerät DST

40-bit Challenge C

40-bit Schlüssel K

24-bit Response R

R = fK(C)

Security Analysis of a Cryptographically Enabled RFID Device

Page 20: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Vorgehensweise

1. Reverse Engineering (Bestimmung des Algorithmus)

2. Key Cracking

3. Tag-Simulation

Security Analysis of a Cryptographically Enabled RFID Device

Page 21: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Reverse Engineeringfeedback shift register

Hilfsmittel:• Grobe schematische Darstellung der Verschlüsselungslogik• „Black-Box“ Zugriff auf echten DST

Security Analysis of a Cryptographically Enabled RFID Device

Page 22: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Reverse Engineering

Key = 0-VektorC' = alle Bits in Challenge C ausser dem letzten

Inhalt des C/R-Registers nach einer Runde:C0 = 0| C' oder C1 = 1| C'

Annahme C0 trifft zu:⇒ wenn man kompletten Algo auf C0 (statt auf C) anwendet, bekommt man dasselbeResultat wie bei der Anwendung auf C, einfach um ein Bit nach rechts verschoben.Falls Annahme falsch, dann gibt es ein sehr unterschiedliches Resultat

analog für C1

Security Analysis of a Cryptographically Enabled RFID Device

Page 23: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Key Cracking

• Schlüssel ist nur 40 Bit gross• Challenge 40 Bit, aber Response nur 24 Bit (least significant 24 Bit)

⇒ damit Schlüssel eindeutig berechnet werden kann sind daher2 abgehörte Challenge-Response-Paare erforderlich

• Array von 16 FPGAs knacken Schlüssel in weniger als einer Stunde (Brute Force)

Security Analysis of a Cryptographically Enabled RFID Device

Page 24: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Tag-Simulation

Laptop + DAC Board + Antenne

� Erfolgreiches Knacken einer KFZ-Wegfahrsperre

� Tanken mit der „SpeedPass™“-Karte

Security Analysis of a Cryptographically Enabled RFID Device

Page 25: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Weitere Überlegungen

� Warum haben TI ihren Chip nicht sicherer gemacht?� Laufzeit

� Kosten

Security Analysis of a Cryptographically Enabled RFID Device

Page 26: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Meine Einschätzung

� Problematik abhängig vom Einsatzgebiet.

Beim Autoschlüssel ist sie weit weniger gravierend als beim elektronischen Zahlungsmittel.

Security Analysis of a Cryptographically Enabled RFID Device

Page 27: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Zusammenfassung

1. Algorithmus herausfinden (Reverse Engineering)

2. Schlüssel knacken (Brute Force, da nur 40-Bit Schlüssel)

3. Tag simulieren (mit relativ geringem Hardwareaufwand möglich)

Security Analysis of a Cryptographically Enabled RFID Device

Page 28: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Schlussfolgerung

� TI hätten Sicherheitsmängel vermeiden können, wenn sie eine grössere Schlüssellänge gewählt hätten.� Reisepass 56 Bit

� Experiment zeigt, dass die alleinige Verheimlichung eines Algorithmus kein zuverlässiger Weg zu mehr Sicherheit ist.

Security Analysis of a Cryptographically Enabled RFID Device

Page 29: Vortrag: Oliver Zweifel Betreuer: Christian Floerkemeier · Strengthening EPC Tags Against Cloning Reader Tag i EPC i EPC i bekannt? Pi (1) b b = PIN-test( Pi(1)) Pi (2) b Pi (q)

Das war‘s…

� Fragen?

� Kritik?