Online Store

MIFARE Classic és MIFARE Plus IC memória NDEF adatleképezési módszerek

MIFARE alkalmazáskönyvtár #

A MIFARE Classic és MIFARE Plus IC memóriaadat-leképezési NDEF módszerei a MIFARE alkalmazáskönyvtár-struktúrát (MAD) használják.

A MIFARE alkalmazáskönyvtár (MAD) azonosítja, hogy az egyes memóriaszektorokban tárolt információk melyik alkalmazáshoz tartoznak.

Két MIFARE alkalmazáskönyvtár van megadva:

      1. MIFARE Application Directory 1 (MAD1): A MAD1 BÁRMELY MIFARE Classic kompatibilis termékben HASZNÁLHATÓ. A MAD1 a MAD szektorban (00h szektor) található, abban az esetben, ha a MAD1-et 1Kbyte-nál nagyobb memóriaméretű termékeken használják, a MAD1 csak 1Kbyte memóriát használhat és címezhet. A fennmaradó memóriát ezért nem használják NDEF-tárolásra, és szabad marad.
      2. MIFARE Application Directory 2 (MAD2): A MAD1 BÁRMELY MIFARE Classic kompatibilis, 1 Kbyte-nál nagyobb memóriaméretű termékben HASZNÁLHATÓ. A MAD2 nem alkalmazható az 1 Kbyte vagy annál kisebb memóriaméretű termékekre. A MAD2 a MAD szektorokban található (00h és 10h szektor)

A MAD minden alkalmazáshoz egyedi alkalmazásazonosítót (AID) társít. Az alkalmazásazonosítókat (AID) a MAD szektor(ok)ban tárolják 00h.

Az AID kétbájt hosszú, és 2 egybájtos mezőre oszlik:

  1. a függvényfürt kódja (1 bájt), amely azonosítja azt a fürtöt, amelyhez az alkalmazás tartozik, és
  2. Az alkalmazás kódja (1 bájt), amely azonosítja az alkalmazást a fürtön belül. További információ a MAD1-ről és a MAD2-ről.

A MAD szektor általános célú bájtját (GPB) 1b-vel egyenlő DA bittel KELL beállítani (DA bit a GPB MAD rendelkezésre álló bitje).

Minden jelenleg nem használt szektort írásvédelemmel KELL védeni a címke kibocsátója által meghatározott titkos kulcsokkal, hogy megakadályozzák a hozzáférési feltételek és kulcsok nem szándékos újradefiniálását. AJÁNLOTT különböző kulcsokat használni minden szabad szektorhoz. Ez lehetővé teszi egyes ágazatok jövőbeli kibocsátását új szolgáltatók számára anélkül, hogy az összes szabad szektort fel kellene szabadítani.

MAD szektor hozzáférés #

A MAD1 és MAD2 memóriaszektorokat (lásd: [MAD]) az A és B kulcs védi. A memória szektorok szerint [MAD] :

        • MAD1: a MAD szektor 00h (0. szektor), és
        • MAD2: a MAD szektorok 00h és 10h (0. szektor és 16. szektor).

Bárki OLVASHATJA a MAD szektorokat. Ez az 1. táblázatban leírt A nyilvános kulcs használatával érhető el (lásd még [MAD]).

1. táblázat. Nyilvános kulcs: A MAD-szektor(ok) értéke

0. bájt 1. bájt 2. bájt 3. bájt 4. bájt 5. bájt
A0h A1h A2h A3h A4h A5h

A MAD szektor(ok) hozzáférési bitjei a következők valamelyikére vannak beállítva:

        • a 2. táblázatban leírtak szerint, ha a MAD szektor rendelkezik olvasási és írási hozzáféréssel, vagy
        • a 3. táblázatban leírtak szerint, ha a MAD szektor csak olvasási hozzáféréssel rendelkezik (lásd még [MF1K, MF4K, MFPLUS]).

Ebben az összefüggésben a megadott olvasási és írási hozzáférés kifejezés azt jelenti, hogy a korábban a B titkos kulccsal hitelesített MAD szektorok esetében a szektor pótkocsiblokkon kívül minden szektorblokk olvasható és írható (további részletekért lásd a 2. táblázatot).

Ehelyett a csak olvasási hozzáférés kifejezés azt jelenti, hogy az 1. táblázat A nyilvános kulcsával vagy a B titkos kulccsal korábban hitelesített MAD szektorok esetében a szektorpótkocsi blokkon kívül csak az összes szektorblokk olvasható (további részletekért lásd az 5. táblázatot).

Az A billentyű használatával mindig csak a MAD szektor blokkjait lehet olvasni. A szektorpótkocsik meghatározott hozzáférési konfigurációval rendelkeznek, ha olvasási/írási vagy csak olvasási hozzáférést biztosítanak (lásd a 2. táblázatot és a 3. táblázatot).

A MAD szektorokat írásvédelemmel KELL védeni a B titkos kulccsal (pl. a címke kibocsátója határozza meg), vagy a MIFARE Classic és MIFARE Plus címkét csak olvashatóként kell beállítani a hozzáférési bitek használatával.

2. Hozzáférési bitek beállítása a MAD szektorhoz a megadott olvasási és írási hozzáféréssel

Hozzáférési bitek beállítása a MAD1 vagy MAD2 0. szektorához és a MAD2 16. szektorához
Hozzáférési bitek Értékek Megjegyzések
C1 0 C20 C30 100bén A 0. blokkot az A vagy B billentyűvel olvassuk be, és a B kulccsal írjuk
C1 1 C21 C31 100b Az 1. blokkot az A vagy B kulccsal olvassuk be, és a B kulccsal írjuk
C12 C22 C32 100b A 2. blokkot az A vagy B kulccsal olvassuk be, és a B kulccsal írjuk
C1 3 C23 C33 011b A szektor pótkocsi blokkja:

  • Az A kulcsot a B kulccsal írják, és soha nem olvassák el,
  • A hozzáférési biteket az A vagy B kulccsal olvassák be, és a B kulccsal írják,
  • A B kulcsot a B billentyűvel írják, és soha nem olvassák el.
i. A 0. szektor (gyártói blokk) C1 0, C20, C3 0 hozzáférési bitjeinek ajánlott értéke.

3. táblázat. Hozzáférési bitek beállítása a MAD szektorhoz, csak olvasási hozzáféréssel

Hozzáférési bitek beállítása a MAD1 vagy MAD2 0. szektorához és a MAD2 16. szektorához
Hozzáférési bitek Értékek Megjegyzések
C1 0 C20 C30 010b A 0. blokkot az A vagy a B billentyűvel olvassa be
C1 1 C21 C31 010b Az 1. blokkot az A vagy a B billentyűvel olvassuk be
C12 C22 C32 010b A 2. blokkot az A vagy a B billentyűvel olvassuk be
C1 3 C23 C33 110b A szektor pótkocsi blokkja:

  • Az A kulcsot soha nem írják le és olvassák,
  • A hozzáférési biteket az A vagy B billentyűvel olvassák be, és soha nem írják,
  • A B kulcsot soha nem írják le és olvassák el.
i. A 0. szektor (gyártói blokk) C1 0, C20, C3 0 hozzáférési bitjeinek ajánlott értéke.

TLV blokkok #

A TLV-blokk egy-három mezőből áll:

T (címkemező vagy T mező) azonosítja a TLV blokk típusát (lásd a 9. táblázatot), és egyetlen bájtból áll, amely 00h és FFh közötti számot kódol. A 01h, 02h, 04h – FCh és FFh címkeértékek későbbi használatra vannak fenntartva.

L (hosszmező vagy L mező) megadja az értékmező méretét bájtban. Két különböző formátuma van, amelyek egy vagy három bájtból állnak. A leolvasó eszköznek meg KELL értenie az összes kéthosszúságú mezőformátumot. Az 5. ábra a két különböző hosszúságú mezőszerkezetet mutatja. A címkemező értékétől függően azonban előfordulhat, hogy a hosszmező nincs jelen.

  • Egybájtos formátum: Az egybájtos formátumnak az értékmező hosszát 00 h és FEh bájt között KELL kódolnia. Ezt a bájtot kardinálisként KELL értelmezni, ha az érték 00h és FEh között van. Ha tartalmazza az FFh-t, az értéket olyan jelzőként KELL értelmezni, amely meghatározza, hogy a hosszmező egynél több bájtból áll.
  • Három egymást követő bájt formátum: Ennek a formátumnak kódolnia KELL az értékmező hosszát 00FFh és FFFEh bájtok között. Az első bájtot FFh-val egyenlő jelzőnek feltételezzük, ami azt jelzi, hogy még két bájt hosszúságú szót KELL értelmezni. Ezt a szót kardinálisként KELL értelmezni, ha az érték 00FFh és FFFEh között van. Az FFFFh érték későbbi használatra van fenntartva (RFU).

V (értékmező vagy V mező) Ha a hosszmező értéke 00h, vagy nincs hosszmező, akkor NEM LEHET értékmező, azaz a TLV blokk üres. Ha van hossz mező, és az N értékmező nullánál (N>0) nagyobb hosszát jelzi, akkor az értékmezőnek N egymást követő bájtból KELL állnia.

A 4. táblázat felsorolja az e dokumentumban meghatározott TLV-blokkokat, amelyeket a következő szakaszok ismertetnek.

4. táblázat. DefiniáltTLV-blokkok  

TLV-blokk neve Címkemező értéke Rövid leírás
NULL TLV 00óra Lehet, hogy memóriaterületek kitöltésére használható, és az olvasóeszköznek ezt figyelmen kívül kell hagynia
NDEF-üzenet TLV 03óra Ez tartalmazza az NDEF közleményt
Saját TLV FDh Védett információk címkézése
Terminátor TLV FEh Utolsó TLV-blokk az adatterületen

A leolvasó eszköznek meghatározott sorrendben KELL írnia a TLV-blokkokat az adatterületen belül az alábbi szabályok szerint:

  • A TLV blokkokat a legkisebb címmel rendelkező NFC szektor (NDEF adatokat tartalmazó szektor) 0 bájtjától kezdve kell írni.
  • Egy TLB blokk két vagy több NFC szektoron keresztül memorizálható.
  • Ha jelen van, a Terminator TLV az utolsó TLV blokk a MIFARE Classic és MIFARE Plus címkén.

A NULL TLV és a Terminator TLV az egyetlen TLV blokk, amely 1 bájt hosszú (pl. csak a Címke mezőből áll, lásd alább).

Az olvasóeszközöknek figyelmen kívül KELL hagyniuk és át kell ugraniuk azokat a TLV-blokkokat, amelyek fenntartott címkemező-értékeket használnak (lásd fent). A fenntartott címkemező-értékekkel rendelkező TLV-blokk átugrásához az olvasóeszköznek le KELL olvasnia a hosszmezőt, hogy megértse az értékmező hosszát.

A csak a címkemezőből álló TLV-blokkok jövőbeli definíciói visszamenőlegesen nem kompatibilisek ezzel az alkalmazási megjegyzéssel.

NDEF-üzenet TLV #

Legalább egy NDEF TLV közleménynek mindig jelen KELL lennie a MIFARE Classic és MIFARE Plus címkéken belül. Az NDEF-üzenet TLV az NDEF-üzenetet az Érték mezőben tárolja. Az olvasóeszköznek képesnek KELL lennie az NDEF-észlelési eljárás során talált NDEF közlemény TLV olvasására és feldolgozására (más néven kötelező NDEF közlemény TLV vagy első NDEF közlemény TLV); Mindenesetre további NDEF Message TLV blokkok LEHETNEK jelen. Az alábbiakban az NDEF Message TLV 3 TLV mezőjének kódolása látható:

T egyenlő 03h-val (lásd a 4. táblázatot).

L EGYENLŐ a tárolt NDEF közlemény bájtban kifejezett méretével.

V KÖTELES tárolni az NDEF közleményt.

Az üres NDEF TLV közleményt olyan NDEF közlemény TLV-ként KELL meghatározni, amelynek L mezője 00h, és nincs V mező (azaz a V mezőben nincs NDEF közlemény, lásd: [NDEF]).

A nem üres NDEF-üzenet TLV tartalmazhat üres vagy nem üres NDEF-üzeneteket.

Saját TLV #

A védett TLV védett információkat tartalmaz. A MIFARE Classic és MIFARE Plus címkének nulla, egy vagy több saját TLV-t KELL tartalmaznia. Előfordulhat, hogy az olvasóeszköz figyelmen kívül hagyja az ebben a TLV-blokkban található adatokat. Az alábbiakban a saját TLV 3 TLV mezőjének kódolása látható:

T egyenlő FDh-val (lásd a 4. táblázatot).

L EGYENLŐ a Vale mezőben lévő védett adatok bájtban kifejezett méretével.

V TARTALMAZNIA KELL minden védett adatot.

NULL TLV #

A NULL TLV használható az adatterület kitöltésére. A MIFARE Classic és MIFARE Plus címkék nulla, egy vagy több NULL TLV-t tartalmazhatnak. Az olvasó eszköznek figyelmen kívül KELL hagynia ezt a TLV-blokkot. A NULL TLV egy 1 bájtos címkemezőből áll. Az alábbiakban a NULL TLV címkemezőjének kódolása látható:

T egyenlő 00 órával (lásd a 4. táblázatot).

L NEM lehet jelen.

V nem lehet jelen.

Terminátor TLV #

A Terminator TLV jelen LEHET a MIFARE Classic és MIFARE Plus címkében, és egy olvasó eszköznek képesnek KELL lennie annak olvasására/feldolgozására. A Terminátor TLV az utolsó TLV blokk az adatmemória területén. A Terminator TLV egy 1 bájtos címkemezőből ÁLL. Az alábbiakban a Terminator TLV címkemezőjének kódolása látható:

T egyenlő FEh-val (lásd a 4. táblázatot).

L NEM lehet jelen.

V nem lehet jelen.