În mod implicit, cardul plus emis de nxp este un card neinițializat la nivelul L0. În acest moment, operațiunea activă arată că acceptă caracteristicile cardului CPU iso1443-4 (ATQA: 02 00, SAK: 20 UID: CD 65 E5 03), atunci când se execută AES legate de scriere După ce cheia și blocul de date sunt inițializate și comise, acesta intră în nivelul de securitate L1. Funcționarea sa activă arată caracteristicile unui card M1S70 (ATQA: 02 00, SAK: 18 UID: CD 65 E5 03), dar, de fapt, poate suporta în continuare ISO1443-4 , Șobolanii sunt executați cu succes (trebuie, de asemenea, să fie sprijinite, în caz contrar switchL2 și operațiunile switch3 nu pot fi efectuate). După ce autentificarea switchL2 se efectuează la nivelul L1 și se convertește la nivelul L2, valoarea returnată după operațiunea activă este (ATQA: 02 00 SAK:11, UID: CD 65 E5 03). În acest moment, dacă nu există o astfel de potrivire SAK în driverul existent, acesta va fi un tip de card necunoscut. După ce autentificarea switch3 se efectuează la nivelul de securitate L2, cardul este actualizat la nivelul de securitate L3, iar valoarea returnată este (ATQA: 02 00 ,SAK:20, UID:CD 65 E5 03).
Executați operațiuni de nivel L1 și L2 în stare activă (strat ISO14443-3); atunci când cardul este la nivelul L1, interfețele legate de M1 pot fi implementate pe deplin sau certificarea AES SL1 poate fi efectuată mai întâi și apoi certificarea M1 poate fi efectuată. După efectuarea autentificării AES SL1, nu este nevoie să generați o bază de chei de sesiune și să calculați cu cheia M1 pentru a obține noua cheie M1 ca cheie de autentificare M1 reală, utilizați doar cheia M1 originală direct (acest punct este diferit de nivelul L2).
La nivelul L0, codul de returnare al PICC după execuție este ACK/NAK în concordanță cu cardul M1, este un cod de returnare ciugulit fără CRC, astfel încât atunci când verificarea CRC este activată, apare o eroare CRC;
În procesul de autentificare de nivel L1 AES SL1, atunci când executarea este corectă, se va returna codul de returnare și informațiile cu CRC, iar atunci când există o eroare (eroare cheie AES, eroare de decriptare RNDB, etc), se va întoarce NAK în concordanță cu cardul M1, care este un octet jumătate și nu există nici o eroare CRC, astfel încât atunci când verificarea CRC este activată , va apărea o eroare CRC.
Instrucțiunea switchL2 este executată la nivelul ISO14443-4. După ce executarea este de succes, PICC intră la nivelul de securitate L2. În acest moment, instrucțiunile switchL2 sunt executate la prima transmisie a Cmd+BNo+LenCap+PCDCap2, care returnează doi octeți de stare 0x02, 0x09. 0x09 poate fi înțeles ca un număr de bloc nevalid, dar 0x02 nu poate fi înțeles.
În nivelul L2, după se menționează în manual, autentificarea AES trebuie efectuată înainte de autentificarea M1, iar cei 6 octeți inferiori ai bazei cheii de sesiune generate de AES sunt XORed cu cheia M1 a blocului real pentru a deveni cheia reală de autentificare bloc M1. După testare, tipul de cheie AES trebuie să fie în concordanță cu tipul de cheie M1 (adică ambele sunt A sau B), în caz contrar autentificarea M1 nu va reuși! Atunci când tipurile și valorile tastelor AES și M1din sectorul A sunt în concordanță cu cele din sectorul B, accesul la sectorul B după autentificarea sectorului A este în concordanță cu accesul la sectorul A și nu este necesar să se acceseze sectorul B. Certificarea.
În timpul debugging de mifpLAuthInPro la nivel de securitate L2, atunci când se numește s_AESCbcEnDecrypt, iv de intrare va fi rescris după criptare și decriptare este finalizată, rezultând în următoarea criptare și decriptare iv modificări și criptare și decriptare nu reușește! Trebuie să acorde o atenție la valoarea de iv!
La nivelul de securitate L2, autentificarea obligatorie a cheii AES+M1 trebuie să păstreze tipul de cheie AES în concordanță cu tipul de cheie M1 (adică tasta AES TypeA+M1 TypeA sau tasta AES TypeB Key+M1 TypeB, ar fi autentificarea cheii AES TypeA Key+M1 TypeB nu va reuși chiar dacă cheile sunt corecte!)
După terminarea debugging nivel L2, puteți efectua FirstAuth în mod repetat, iar valoarea TI obținută de FirstAuth este diferită de fiecare dată. După efectuarea unei autentificații FirstAuth corecte și obținerea TI, se poate efectua followAuth corect (followAuth's iv se bazează pe autentificarea FirstAuth). După ce FirstAuth corect este executat o dată, followAuth poate fi repetată. Deoarece FirstAuth și followAuth rula în modul ISO14443-4, PICC rămâne în modul ISO14443-4 atunci când apare orice eroare, și nu este nevoie să re-căutare pe card.
Comenzile MultiWriteBlock și MultiReadBlock ale nivelului de securitate L2 acceptă numai operațiuni de citire și scriere a mai multor blocuri de date în același sector! Comenzile ReadBlock și WriteBlock ale nivelului de securitate L3 acceptă citirea și scrierea continuă a blocurilor de date în toate sectoarele (numai în acest sector!!!)
Nivelul de securitate L3 followAuth operațiune pentru a obține ENC KEY și MAC KEY criptare utilizate iv vector este 0 în loc de TI + W_ctr + R_ctr !
În modul ISO14443-4, atâta timp cât există orice eroare, operațiunea FirstAuth trebuie efectuată!
Înțelegerea operațiunilor legate de valoarea cardului M1: Esența comenzii Restaurare este de a copia valoarea corespunzătoare a blocului de date de intrare (trebuie să fie în format portofel) într-un tampon de transfer de 16 octeți din interiorul cardului M1, iar esența comenzii Transfer este la valoarea Tampon de transfer din interiorul cardului M1 este copiată în blocul de date de intrare. Esența comenzii Increment este de a adăuga valoarea blocului portofelului de intrare la valoarea adăugată și de a-l copia în tamponul de transfer, astfel încât comanda Transfer trebuie apelată din nou pentru a copia valoarea Tampon de transfer în blocul de date specificat.

https://www.szrcloud.com/card-reader/rfid-card-reader/rfid-card-reader-in-games.html
