Search code examples
authenticationmifare

Authentication of MiFare 1K Tags


I'm now working with ARC122U NFC Reader with MiFare 1k Tags. What confuses me is the authentication part before reading / writing a sector.

My questions are as follow: (1) Is that Key A and Key B is equivalent to the authentication either using 96 (For Key A) and 97 (For Key B)? (2) If I did not load any authentication key into the reader, what is the default authentication key? (3) What is the default access control for Mifare 1k tag?

What I did was using Key 0 (With no authentication key loaded) with Type A authentication and was intended to update the trailer block data (e.g., Sector 1) into hexadecimal format as:

    00 00 00 00 00 00 78 77 88 00 00 11 22 33 44 55

where 78 77 88 represents the combination of 1 0 0 for access conditions of Data Block 0, 1 and 2 together with 0 1 1 for Trailer Block 3.

However, as I read the trailer block by using Key 0 Type A, it shows that update did not went well and ends up with:

    00 00 00 00 00 00 78 77 88 00 00 00 00 00 00 00

According to the result, I suppose the access setting is correct and therefore I tried to loaded Key 00 00 00 00 00 00 into Key 1 and with Type B Authentication to read the trailer block but access was denied.

May I know which step(s) I've messed up or missed? Any help would be appreciated and sorry for my horrible English.


Solution

  • Update 1:
    Answer for (1): TRUE
    Answer for (2): FF FF FF FF FF FF
    Answer for (3): FF 07 80 which stands for transport configurations for both data blocks and trailer block.

    Update 2:
    The update was actually succeeded but Type A cannot read the Type B's keys in trailer block (same goes to Type A's keys which by default is concealed).

    Update 3:
    By specifying the correct key number, I'm now able to access with Type B authentication. Problem is solved.