Guten Morgen,
ich arbeite zur Zeit mit den MiFare Karten Classic und scheitere dabei
die Keys zu setzten.
Weiß einer zufällig wie man die Keys da setzten kann ?
Ich arbeite mit Arduino MEGA 2560 und Adafrut NFC Shield PN532 i2c.
Danke schon mal im voraus falls ihr mehr information braucht sagt
bescheid :P
MFG
Nein, die Mifare Classic verwenden immer noch das alte Verfahren. Aber
da sie so was wie ein Industriestandard sind werden sie immer noch
verwendet.
Wenn man en sichere Lösung will, dann muss man auf einen anderen
Transponder gehen.
Was wir beispielsweise bei Zahlungssystemen für Automaten einsetzen ist
Mifare Desfire (EV1). Dies ist mehr als ausreichend für die meisten
Anwendungen.
> Danke schon mal im voraus falls ihr mehr information braucht sagt> bescheid :P
Na, dann zeig doch mal, wie du's machst und wie du's machen solltest :)
Ralf
Okey also zu nächst kann ich ja durch
nfc.mifareclassic_WriteDataBlock (block, daten); in ein Block der Mifare
Karte reinschreiben. Doch als ich es versucht habe den key mit zu
übergeben konnte ich den Block nicht mehr auslesen.
Kurz ich versuche mit dieser Methode auf den Sector Trailer die keys
reinzuschreiben
z.B
KeyA | Acces Bit | KeyB
uint8_t data = {x1,x2,x3,x4,x5,x6,ff,07,80,69,x5,x4,x3,x2,x1,x0};
nfc.mifareclassic_WriteDataBlock (7, data);
x habe ich gewählt da ich selbstverständlich nicht die richtigen Keys
hier veröffentliche ;)
Aufjedenfall übergebe ich dann data mit WriteDataBlock an den
SektorTrailer aber falls ich den Block wieder auslesen will funktioniert
es mit den keys nicht, verständlich ?^^
Danke schon im voraus
> verständlich ?
Nein, weil keiner weiss woher die Funktionen kommen. Und ich werd jetzt
nicht die NxP- bzw. Mifare-Seite nach dem Stack für den PN532
durchsuchen ;)
Also gib uns erstmal die Grundlage: Zeig die Doku des verwendeten Stacks
und auch mal den kompletten relevanten Codefetzen (der obige Einzeiler
kann kaum alles nötige sein, oder?).
Ralf
Ich programmiere mit der Arduino IDE und nutze die
https://github.com/adafruit/Adafruit_NFCShield_I2C
Libary um die Mifare- Karte zu beschreiben/auszulesen und da ist die
eine Funktion zum beschreiben der Karte drin.
Mehr brauch man nicht um sich mit dem Block zu authentifizieren und dann
in einem Block zu schreiben.
Also damit habe ich das beschreiben geschaft und dann versucht eben die
Keys zu setzten aber danach habe ich kein Zugriff mehr auf den
jeweiligen Sektor.
Vielleicht einfach nur so:
uint8_t data =
{x1,x2,x3,x4,x5,x6,0xff,0x07,0x80,0x69,x5,x4,x3,x2,x1,x0};
Deine Zeile
uint8_t data = {x1,x2,x3,x4,x5,x6,ff,07,80,69,x5,x4,x3,x2,x1,x0};
sollte sich so gar nicht übersetzen lassen...
Habs herausgefunden wie es funktioniert und ich hatte es natürlich mit
0x geschrieben aber ich habe mich doch mit den Accessbits vertan und aus
den jeweiligen Sektoren gekickt :P Aber danke euch trozdem.
Hey, also ich habe nur die ganze Zeit irgendwie die falschen Accesbits
gesetzt und dem entsprechend mich aus den Sektoren gekickt und darauf
muss man eben acht geben und sich mal von Intel die App mifare access
condition calculator und damit kann man sich errechnen welche Rechte man
auf die jeweiligen Blöcke im jeweiligen Sektor haben soll.
mfg