2016-05-05 30 views
1

Ich verwende ein ACR 1255U-J1 als externes Lesegerät, das über Bluetooth verbunden ist. Die Bibliothek, die ich für den Zugriff auf den Reader verwende, ist acsbt-1.0.0preview7. I die folgenden Befehle zu Sektor 1 (Block 4) eines MIFARE Classic-Tag zu authentifizieren:Authentifizierung für ein MIFARE Classic-Tag, das als NDEF-Tag verwendet wird

 
FF 82 0000 06 FFFFFFFFFFFF 
FF 86 0000 05 01 00 04 60 00 

Wenn ich in einen leeren MIFARE Classic-Tag (mit Herstellerstandardkonfiguration) authentifizieren, I empfangen die Antwortstatuswort 9000 . Dies zeigt an, dass die Authentifizierung erfolgreich war. Wenn ich versuche, mich bei einem MIFARE Classic-Tag zu authentifizieren, das für die Verwendung als NDEF-Tag formatiert wurde, lautet das zurückgegebene Statuswort 6300.

Gibt es einen Unterschied zwischen den zu authentifizierenden Tag-Formaten?

+0

Da Sie eine APDU aus dem PC/SC-Speicherzugriffsbefehlssatz verwenden, nehme ich an, dass Sie den Standard nicht verwenden Android NFC API. Daher müssen Sie weitere Informationen angeben: Welchen Reader verwenden Sie? In welchen Rahmen greifen Sie auf den Reader zu? Welcher Tagtyp/Tag-Produkt verwenden Sie als "NDEF-Tag"? –

+0

Hallo Michael, ich habe die Informationen aktualisiert. Ich benutze keine Android NFC API, weil es ein externer NFC-Leser ist. – lcsmoretto

+0

Okay, welchen Schlüssel haben Sie dann für den Reader als Authentifizierungsschlüssel konfiguriert? –

Antwort

4

Das Statuswort 6300 zeigt an, dass die Authentifizierung fehlschlägt. Daher verwenden Sie höchstwahrscheinlich den falschen Schlüssel für die Authentifizierung.

Sie versuchen gerade, sich mit dem Schlüssel A (0x60) mit dem Schlüsselwert FFFFFFFFFFFF zu Sektor 1 zu authentifizieren (0x04, da dieser bei Block 4 beginnt).

proprietäre NDEF Abbildungsvorschrift in der folgenden Datenblatt definiert NXP verwendet, wenn ein MIFARE Classic-Tag für die Verwendung als NDEF Tag formatiert ist:

Die NDEF Mapping ändert die Zugangsschlüssel zu wohldefinierten Werten:

  • MAD Sektor 0 (und Sektor 16 auf 4K-Karten):

    • Key A wird auf A0A1A2A3A4A5 eingestellt werden.
    • Taste B kann auf einen beliebigen Wert eingestellt werden. Android wird zum Beispiel den Standardwert FFFFFFFFFFFF beibehalten.
    • Zugangsbedingungen entweder eingestellt werden können zulassen, mit den beiden Tasten Lese-/Schreibzugriff oder schreibgeschützt mit Schlüssel Ein Zugang zu ermöglichen und Lese-/Schreibzugriff mit Schlüssel B.
  • NDEF Sektoren (wie erklärt in das MAD, im Bereich 1..15 (und 17..39 auf 4K-Karten)):

    • Key A wird auf D3F7D3F7D3F7 eingestellt werden.
    • Taste B kann auf einen beliebigen Wert eingestellt werden. Android wird zum Beispiel den Standardwert FFFFFFFFFFFF beibehalten.
    • Zugangsbedingungen festgelegt werden kann, entweder die Möglichkeit, Lese-/Schreibzugriff mit den beiden Tasten oder schreibgeschützt mit Schlüssel Ein Zugang zu ermöglichen und Lese-/Schreibzugriff mit Schlüssel B.
  • Andere Bereiche (wie erklärt in die MAD, im Bereich 1.15 (und 17. ..39 auf 4K-Karten)), die nicht für das NDEF Mapping verwendet:

    • Schlüssel und Zugangsbedingungen auf ihre anwendungsspezifischen (oder Standard) Werte eingestellt und werden nicht durch die NDEF Abbildungsvorschrift berühren.

So wie der Tag der NDEF Mapping verwendet, und Sie versuchen, auf den ersten NDEF Sektor zu authentifizieren, würden Sie stattdessen müssen die NDEF Schlüssel A mit dem Wert verwenden D3F7D3F7D3F7 statt:

 
FF 82 0000 06 D3F7D3F7D3F7 
FF 86 0000 05 01 00 04 60 00 

Beachten Sie, dass Sie je nach Konfiguration der Zugriffsbits möglicherweise nur Lesezugriff mit Schlüssel A haben.

+0

Vielen Dank Michael! – lcsmoretto