www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mifare Karten


Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Da ich ein sensibles Projekt mit Mifare-Chipkarten plane brauche ich
so viele Informationen wie möglich zur Sicherheit dieser Karten.
Was ich schon rausgefunden habe:
- die Karte hat einen EEPROM mit 1 KB, unterteilt in 16 fixe Sektoren
mit je 4 Blöcken a 16 Byte
- für jeden Sektor gibt es zwei Schlüssel A und (optional) B mit 48
Bit Länge zur Verschlüsselung
- die Schlüssel sind im EEPROM der Karte hinterlegt
- will man mit einem Lese/Schreibterminal Daten bearbeiten muss man
durch einen 3-stufigen Authentifizierungsprozess, bei dem vom
Lesegerät und der Karte testweise zufällige Daten generiert werden,
dieser werden verschlüsselt. Wenn die Verschlüsselung gleich ist, sind
die Schlüssel gleich und der Zugang wird vom Crypto-Prozessor gewährt

Mögliche Angriffsmöglichkeiten:
- Brute-Force: sollte bei 48 Bit möglich sein - aber: die Karte
braucht rund 500 ms für eine Antwort, d.h. es würde dann doch 4,5*106
Jahre dauern
- EEPROM direkt auslesen: wenn man die Karte physisch zerstört und
irgendwie an das EEPROM rankommt, die verschlüsselten Daten ausliest
(da man ja die Authentifzierung durch den Crypto-Prozessor umgeht) und
nun den 1KB-Block verschlüsselt auf der Festplatte liegen hat.
Vielleicht kann man nun eine schnellere Brute-Force-Attacke starten?
Oder liegt dort der Schlüssel im Klartext?
- Lesegerät angreifen: Im EEPROM eines Leseterminals ist auch der
Schlüssel gespeichert. Wenn man an diese EEPROM rankommt kann man
evtl. auch den (im Klartext vorliegenden?) Schlüssel auslesen?

Bin für Hinweise dankbar und hoffe dass sich Mifare wirklich als sehr
sicheres System herausstellt.

Viele Dank an alle für Antworten!

Gruß
Alan

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die frage wäre auch noch der eingesetzte verschlusselungsalgorithmus.
auf viele gibt es mitlerweile optimierte angriffsmethoden

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stimmt.
Allerdings kann ich mir vostellen dass man die Daten entschlüsseln kann
wenn man mal an die Daten rangekommen ist. 48-Bit ist nicht eine allzu
sichere Schlüssellänge.

Das EEPROM wird wahrscheinlich zusammen mit dem Crypto-Prozessor in
einem Chip sein. Kommt man dann da noch ran?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
würde es nicht reichen, wenn man die kommuniaktion zwischen der karte
und dem terminal mitschneidet? wenn der algorithmus schwachstellen hat
könnte das auch schon zum zurückrechnen reichen. mit einer
man-in-the-middle ähnlichen attcke bräuchte man die karte dann nicht
aufschnibbeln

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also meiner ansicht nach ist die einzige methode den schlüssel
herauszufinden den algorythmus zu kennen. Dann sollte man die
kommunikation mitschneiden. Wenn der algorythmus nicht sicher ist, dann
könnte man den schlüssel zurückberechnen. (das wär die optimale methode)
andernfalls muss man eine brute force routine mit dem algorythmus
schreiben, was wesntlich schneller ist als, weil ein PC sicher
schneller ist als 500 ms pro berechnung. wenn es immernoch zu lange
dauert, muss man halt mehrere rechner rechnen lassen.
Aber das a und o ist, den Algorythmus zu kennen. Ohne den stehst du
dumm da.
Auf was besiert denn das system ? ist da auf der einen seite ein
terminal mit einem Prozessor drinne ? oder ein µC ? vielleicht kommt
man ja da auf irgendeine weisen an den algorythmus.
Alan Graves: hast du ein paar fotos von so einer anlage ?

Grundsätzlich würd ich sagen, das system ist knackbar.

Gruß

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Algorithmus könnte DES sein. Und eine Brute-Force-Attacke mit einem
oder mehreren PCs ist schon möglich.
Nur die Frage ist, wie man das EEPROM auslesen kann. Ein normales
Lesegerät lässt einen da ja nicht ran, d.h. man muss den
Crypto-Prozessor der Karte umgehen (und somit das
Authentifizierungsverfahren) um die 1 KB Daten aus dem EEPROM zu
lesen.
Nur wie geht das? Und schafft man das überhaupt?

Außerdem steht im Datenblatt, das in jedem Sektor auch die beiden
Schlüssel gespeichert sind. Sind diese dann im Klartext gespeichert?
Irgendein Ur-Schlüssel muss doch mal im Klartext gespeichert sein...

Infos und Datenblatt gibts unter
http://www.semiconductors.philips.com/markets/iden...

@Simon:
Fotos von der Anlage? Was meinst Du mit Anlage?

Gruß
Alan

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@alan:
wenn man sich zwischen die karte und das leseterminal hängt kann man an
die daten der karte rankommen. zwar nur verschlüsselt aber es ist
möglich. ausserdem würd ich keiner lösung vertraun, wenn nicht
angegeben, welchen verschlüsselungsalgorithmus sie benutzt, weil die
meisten eigebaulösungen mehr security by obscurity verwenden, und das
ist nich so ganz das wahre.

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt also man müsste als Angreifer während der Kommunikation
zwischen einem authentifizierten Lesegerät und der Karte die
Funkübertragung mitschneiden?
Die Frequenz und das Funkprotokoll sind in der Norm ISO14443A
geregelt...es sollte also für einen elektronik-versierten Angreifer
möglich sein, eine solche "Abhöreinrichtung" zu bauen?

Hat man aber nur die Karte, kommt man dann an die (noch
verschlüsselten) Daten ran? Das EEPROM muss doch auslesbar sein, wenn
man die Karte auseinander nimmt, oder?

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der verwendete Verschlüsselungsalgorithmus nennt sich CRYPTO1. Dabei
handelt es sich um einen properitären, geheimen Algorithmus von
Philips. Diesen Algorithmus rauszukriegen wird wohl sehr schwer bis
unmöglich sein.

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da die Datenübertragng per Funk erfolgt wär es schwachsinnig anzunehmen
das die Entwickler der Karten diese Übertragung unverschlüsselt
ablaufen lassen. Viel eher wird es sein das man die Daten +
zufallswerte verschlüsselt überträgt. Hat man den Schlüssel nicht so
kann man auch nichts relevantes aus dem Abhören der Datenübertragung in
Erfahrung bringen.

Desweiteren kann man vermuten das die Daten in den EEPROM Sektionen
ebenfalls verschlüsselt gespeichert sind. Selbst wenn man also diese
"einbruchsichere" hardware analysieren könnte so muß man nach dem
Auslesen der Daten diese noch entschlüsseln. Dort wäre der Aufwand eine
Brute Force Attacke mit 2^48 Schlüsselmöglichkeiten. Man hätte dann aber
nur einen einzigsten Schlüssel gekackt und kann damit nur eine der
EEPROM Sektionen lesen.

RFID Systeme sind durch Kryptoexperten entwickelt mit den
Schwerpunkten: sichere Authentifizierung, sichere Datenübertragung,
sichere Datenspeicherung, einbruchsichere Hardware.

Gruß Hagen

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hagen:
Keiner hat davon gesprochen dass die Übertragung nicht verschlüsselt
sein sollte...selbstverständlich ist sie das. Es geht nur darum wie
sicher das ganze ist und welche Angriffsmöglichkeiten vorhanden sind.

Mifare-Karten sind für mehrere Anwendungen ausgelegt. Meist genügt
einer Anwendung ein Sektor, so dass 16 verschiedene Anwendungen auf
einer Karte möglich sind. Will man die Daten von einer bestimmten
Anwendung entschlüsseln, genügen die zwei Schlüssel dieses einen
Sektors.

Allerdings ist der Schlüssel im EEPROM hinterlegt (siehe Datenblatt).
Und hier muss er ja dann im Klartext vorliegen bzw. mit einem festen
Algorithmus verdrehten Code, sonst kann die Karte selbst ja auch nicht
mehr darauf zugreifen.

Die Frage ist nun: Kommt man an das EEPROM ran und an die Schlüssel?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@hagen
ein kleines gegenbeispiel namens wep... ich denk du weisst worauf ich
hinaus will ;)

wurde auch von experten lange dran rumgewerkelt und als gut erachtet,
ist aber mitlerweile selbst bei längeren schlüsseln als 48bit innerhalb
weniger stunden zu knacken...

das ein verfahren noch nicht geknackt wurde heisst evtl nur, dass es
nur noch nicht der richtige versucht hat...

deshalb würde ich mehr auf lösungen vertrauen, die erprobte
verschlüsselungsverfahren einsetzten, die in einem offenen wettbewerb
gezeigt haben, was sie halten, wie z.b AES. daran hat sich schon bevor
es als neuer standard auserkoren wurde die kryptoexperten elite dieser
welt dran versucht und auch jetzt hat man es nur geschafft die dauer
zum knacken eines schlüssels von zig milliarden jahren auf einige
tausend milliarden jahre zu drücken.
die frage ist, ob das beim ominösen crypto1 auch so lange halten würde.
eine gute verschlüsselung sollte auch absolut sicher sein, wenn der
algorithmus bekannt ist, denn sonst kann es mit der sicherheit sehr
schnell am ende sein weil du keinen direkten einfluss mehr drauf hast.
ein sicherheitsleck bei philips, ein erfolgreicher hack, ein korrupter
mitarbeiter, eine neugierige putzfrau, usw... das findet sich alles
locker in unter 100 milliarden jahren ;)

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobi, ich stimme dir da in allen Punkten zu. Klar sollte man Algos wie
AES nutzen statt Crypto1, nur sehe ich da eben auch ein technisches
Problem der Mifare Architektur. Immerhin ist da drauf kein 1GHz
Prozessor und somit wird der Crypto1 Cipher ziemlich schlecht sein.
Auch ein Grund warum er wahrscheinlich nicht veröffentlicht wurde.
Meine Vermutung, ausgehend von der geringen Rechenpower die verfügbar
ist, wäre das Crypto1 nichts anderes als eine XOR Verschlüselung ist
die durch ein/zwei gekoppelte LFSR gefüffert wird. Dies würde auch die
Schlüssellänge von nur 48 Bits erklären, die ist ideal für größere
LFSR's oder SR-LFSR (Self Shrinking LFSR). Die BasicCard hat auch
lange zeit ein solches Verfahren verwendet.

Ok das sind alles Spekulationen. Eine nützliche Frage ist ob in den
Datenblättern irgendwas über zwei getrennte Schlüssel-teile steht. Also
einmal der 48 Bit Schlüssel und dann noch ein "fester" Schlüssel mit
48 oder 96 Bit Größe. Falls ja dann wäre der zweite Schlüsselteil
nichts anderes als das Polynom der LFSR's. Es wäre also ein Indiz.

Gruß Hagen

Autor: Alan Graves (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und den internen Controller irgendwie anzapfen und so an den Algorithmus
kommen, das geht nicht? Praktisch den Quellcode lesen?

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.