Imenik aplikacije MIFARE #
NDEF metode mapiranja memorijskih podataka MIFARE Classic i MIFARE Plus IC koriste strukturu direktorija aplikacija MIFARE (MAD).
Direktorij aplikacije MIFARE (MAD) određuje kojoj aplikaciji pripadaju informacije pohranjene unutar svakog memorijskog sektora.
Navedena su dva direktorija aplikacije MIFARE:
-
-
- MIFARE direktorij aplikacija 1 (MAD1): MAD1 se može koristiti u bilo kojem proizvodu usklađenom s MIFARE Classic. MAD1 se nalazi u MAD sektoru (sektor 00h), U slučaju da se MAD1 koristi na proizvodima s veličinom memorije većom od 1Kbytes, MAD1 može koristiti i adresirati samo 1Kbytes memoriju. Preostala memorija stoga se ne koristi za pohranu NDEF-a i ostaje besplatna.
- MIFARE direktorij aplikacija 2 (MAD2): MAD1 se može koristiti u bilo kojem proizvodu usklađenom s MIFARE Classic s veličinom memorije većom od 1Kbajta. MAD2 nije primjenjiv na proizvode čija je veličina memorije manja ili jednaka 1Kbajtima. MAD2 se nalazi u sektorima MAD (sektor 00h i 10h)
-
Svakoj aplikaciji MAD povezuje jedinstveni identifikator aplikacije (AID). Identifikatori aplikacija (AID-ovi) pohranjuju se unutar MAD sektora 00h.
AID je dugačak dva bajta i podijeljen je u 2 polja od po jednog bajta:
- kod funkcijskog klastera (1 bajt) koji identificira klaster kojem aplikacija pripada, i
- kod aplikacije (1 bajt) koji identificira aplikaciju unutar klastera. Za više informacija o MAD1 i MAD2.
Bajt opće namjene (GPB) sektora MAD postavlja se s DA bitom jednakim 1b (DA bit je mad dostupan bit GPB-a).
Svi trenutno neiskorišteni sektori TREBAJU biti zaštićeni od pisanja tajnim ključevima koje je definirao izdavatelj oznaka kako bi se spriječilo nenamjerno redefiniranje uvjeta pristupa i ključeva. PREPORUČUJE se korištenje različitih ključeva za sve slobodne sektore. To omogućuje buduće oslobađanje nekih sektora novim pružateljima usluga bez potrebe za oslobađanjem svih slobodnih sektora.
Pristup sektoru MAD #
Memorijski sektori u kojima su pohranjeni MAD1 i MAD2 (vidi [MAD]), zaštićeni su ključem A i ključem B. Prema [MAD] memorijskim sektorima su:
-
-
-
- MAD1: sektor MAD je 00h (sektor 0) i
- MAD2: sektori MAD-a su 00h i 10h (sektor 0 i sektor 16).
-
-
Svatko smije čitati sektore MAD-a. To se postiže korištenjem javnog ključa A opisanog u tablici 1. (vidi također [MAD]).
Stol 1. Javni ključ Vrijednost sektora MAD-a
-
Bajt 0 Bajt 1 Bajt 2 Bajt 3 Bajt 4 Bajt 5 A0h A1h A2h A3h A4h A5h
Pristupni bitovi za mad sektore postavljeni su na:
-
-
-
- kako je opisano u tablici 2., ako je sektoru MAD odobren pristup za čitanje i pisanje, ili
- kako je opisano u tablici 3., ako je sektoru MAD odobren pristup samo za čitanje (vidjeti također [MF1K, MF4K, MFPLUS]).
-
-
U tom kontekstu, odobreni pojam pristup čitanju i pisanju znači da je za sektore MAD-a koji su prethodno autentificirani tajnim ključem B moguće pročitati i napisati sve sektorske blokove osim bloka prikolica sektora (za više pojedinosti vidi tablicu 2.).
Umjesto toga, pojam odobren samo za čitanje znači da je za sektore MAD-a koji su prethodno autentificirani javnim ključem tablice A tablice 1. ili tajnim ključem B moguće pročitati samo sve sektorske blokove osim bloka prikolica sektora (za više pojedinosti vidi tablicu 5.).
Pomoću ključa A uvijek je moguće samo čitati blokove mad sektora. Sektorske prikolice imaju posebnu konfiguraciju pristupa kada je odobren pristup za čitanje/pisanje ili pristup samo za čitanje (vidi tablicu 2. i tablicu 3.).
Mad sektori trebaju biti zaštićeni pisanjem pomoću tajnog ključa B (npr. definiranog od strane izdavatelja oznaka) ili postavljanjem oznake MIFARE Classic i MIFARE Plus samo za čitanje pomoću pristupnih bitova.
Stol 2. Postavka bitova pristupa za sektor MAD s odobrenim pristupom za čitanje i pisanje
-
Postavka bitova pristupa za sektor 0 od MAD1 ili MAD2 i za sektor 16. MAD2 Bitovi programa Access Vrijednosti Primjedbe C10 C20 C30 100bi Blok 0 čita se s ključem A ili tipkom B i piše se ključem B C11 C21 C31 100b Blok 1 čita se s ključem A ili tipkom B i napisan je ključem B C12 C22 C32 100b Blok 2 se čita s ključem A ili tipkom B i piše se ključem B C13 C23 C33 011b Sektorski blok prikolica: - Ključ A napisan je ključem B i nikad se ne čita,
- Bitovi pristupa čitaju se ključem A ili tipkom B i pišu ključem B,
- Tipka B napisana je ključem B i nikad se ne čita.
i. Preporučena vrijednost za pristupne bitove C10 C20 C30 sektora 0 (blok proizvođača).
Stol 3. Postavka bitova pristupa za sektor MAD s odobrenim pristupom samo za čitanje
-
Postavka bitova pristupa za sektor 0 od MAD1 ili MAD2 i za sektor 16. MAD2 Bitovi programa Access Vrijednosti Primjedbe C10 C20 C30 010b Blok 0 čita se s tipkom A ili tipkom B C11 C21 C31 010b Blok 1 se čita s tipkom A ili tipkom B C12 C22 C32 010b Blok 2 čita se s tipkom A ili tipkom B C13 C23 C33 110b Sektorski blok prikolica: - Ključ A nikada nije napisan i pročitan,
- Bitovi pristupa čitaju se s ključem A ili tipkom B i nikada nisu napisani,
- Ključ B nikada nije napisan i pročitan.
i. Preporučena vrijednost za pristupne bitove C10 C20 C30 sektora 0 (blok proizvođača).
TLV blokovi #
TLV blok sastoji se od jednog do tri polja:
T (polje oznake ili polje T) označava vrstu bloka TLV (vidjeti tablicu 9.) i sastoji se od jednog bajta koji kodira broj od 00h do FFh. Vrijednosti oznaka 01h, 02h, 04h do FCh i FFh rezervirane su za buduću upotrebu.
L (polje duljine ili polje L) navodi veličinu u bajtovima polja vrijednosti. Ima dva različita formata sastavljena od jednog ili tri bajta. Uređaj čitača MORA razumjeti sve dvodužne oblike polja. Slika 5 prikazuje dvije različite strukture polja duljine. Međutim, ovisno o vrijednosti polja strukturnih oznaka, polje duljine MOŽDA neće biti prisutno.
- Oblik jednog bajta: Oblik jednog bajta kodira duljinu polja vrijednosti između 00h i FEh bajtova. Ovaj bajt će se tumačiti kao kardinal ako je vrijednost između 00h i FEh. Ako sadrži FFh vrijednost se tumači kao zastava koja određuje da se polje duljine sastoji od više od jednog bajta.
- Oblik tri uzastopna bajta: Ovaj format mora sadržavati duljinu polja vrijednosti između bajtova 00FFh i FFFEh. Pretpostavlja se da je prvi bajt zastava jednaka FFh-u koja označava da se duljina još dva bajta tumači kao riječ. Ta se riječ tumači kao kardinal ako je vrijednost između 00FFh i FFFEh. Vrijednost FFFFh rezervirana je za buduću uporabu (RFU).
V (polje vrijednosti ili polje V) Ako je polje duljine jednako 00h ili nema polja duljine, polje vrijednosti NE SMIJE biti, tj. Ako postoji polje duljine i označava duljinu polja vrijednosti N veće od nule (N>0), polje vrijednosti sastoji se od N uzastopnih bajtova.
Tablica 4 navodi TLV blokove navedene u ovom dokumentu koji su opisani u sljedećim odjeljcima.
Stol 4. Definirani TLV blokovi
-
Naziv bloka TLV Vrijednost polja oznake Kratki opis NULL TLV 00h Može se koristiti za podstavu memorijskih područja, a Uređaj čitača to mora zanemariti TLV poruke NDEF-a 03h Sadrži NDEF poruku Vlasnički TLV FDh Označavanje vlasničkih informacija Terminator TLV FEh Posljednji TLV blok u području podataka
Uređaj čitača mora TLV blokove napisati određenim redoslijedom unutar područja podataka prema pravilima u nastavku:
- Blokovi TLV-a pišu se tako da počevši od bajta 0. bloka 0 sektora NFC-a (sektor koji sadrži podatke iz NDEF-a) s najmanjom adresom.
- TLB blok MOŽE se zapamtiti u dva ili više NFC sektora.
- Ako je prisutan Terminator TLV je posljednji TLV blok na MIFARE Classic i MIFARE Plus oznaci.
NULL TLV i Terminator TLV jedini su TLV blokovi duljine 1 bajta (npr. sastoje se samo od polja Oznaka, vidi dolje).
Uređaji čitača MORAJU zanemariti i preskočiti one TLV blokove koji koriste rezervirane vrijednosti polja oznaka (vidi gore). Da bi preskočio blok TLV s rezerviranim vrijednostima polja strukturnih oznaka, uređaj Reader MORA pročitati polje duljine kako bi razumio duljinu polja vrijednosti.
Buduće definicije TLV blokova sastavljenih samo od polja strukturnih oznaka nisu kompatibilne unatrag s ovom aplikacijskom napomenom.
TLV poruke NDEF-a #
Najmanje jedna NDEF poruka TLV uvijek će biti prisutna unutar oznake MIFARE Classic i MIFARE Plus. TLV poruke NDEF-a pohranjuje NDEF poruku unutar polja Vrijednost. Uređaj čitača mora moći čitati i obrađivati TLV poruke NDEF-a pronađenu postupkom otkrivanja NDEF-a (koji se naziva i obvezna poruka NDEF-a TLV ili prva poruka NDEF-a TLV); u svakom slučaju, daljnji TLV blokovi poruke NDEF-a MOGU biti prisutni. Ispod kodiranja 3 TLV polja poruke NDEF-a TLV prikazano je:
T mora biti jednak 03h (vidjeti tablicu 4.).
L mora biti jednaka veličini u bajtovima pohranjene poruke NDEF-a.
V MORA pohraniti NDEF Poruku.
Prazna poruka NDEF-a TLV definira se kao TLV poruke NDEF-a s poljem L jednakim 00h i bez polja V (tj. u polju V nema poruke NDEF-a, vidi [NDEF]).
TLV poruke NDEF-a koja nije prazna može sadržavati prazne ili neprazne poruke NDEF-a.
Vlasnički TLV #
Vlasnički TLV sadrži vlasničke informacije. Oznaka MIFARE Classic i MIFARE Plus MORA sadržavati nula, jedan ili više vlasničkih TLV-a. Uređaj Reader možda zanemaruje podatke sadržane u ovom TLV bloku. Ispod kodiranja 3 TLV polja vlasničkog TLV-a prikazano je:
T mora biti jednak FDh (vidjeti tablicu 4.).
L mora biti jednaka veličini u bajtovima vlasničkih podataka u polju Vale.
V mora sadržavati sve vlasničke podatke.
NULL TLV #
NULL TLV može se koristiti za podstavu podatkovnog područja. OZNAKA MIFARE Classic i MIFARE Plus MOŽE sadržavati nula, jedan ili više NULL TLV.-a. Uređaj Čitač MORA zanemariti ovaj TLV blok. NULL TLV sastoji se od polja oznake od 1 bajta. Ispod kodiranja polja strukturnih oznaka NULL TLV prikazano je:
T mora biti jednak 00h (vidjeti tablicu 4.).
L NEĆE BITI PRISUTAN.
V NE SMIJE biti prisutan.
Terminator TLV #
Terminator TLV MOŽE biti prisutan unutar oznake MIFARE Classic i MIFARE Plus, a uređaj Reader će ga moći čitati/obrađivati. Terminator TLV posljednji je TLV blok u području podatkovne memorije. Terminator TLV sastoji se od polja oznake od 1 bajta. Ispod kodiranja polja strukturnih oznaka terminatorskog TLV-a prikazano je:
T mora biti jednak FEh (vidjeti tablicu 4.).
L NEĆE BITI PRISUTAN.
V NE SMIJE biti prisutan.