jparthj
jparthj

Reputation: 1636

MiFare - Difference between UID and Serial Number of MiFare Card

I need to read serial number of MiFare card usin WinSCard. I am able to read 7B UID from the MiFare card.

The confusion is that i dont know if the UID and the serial number of MiFare card are same?!!

I have googled the issue but only could get partial success. I found a question on stackoverflow also but it did not help.

I found a document of NXP online which says UID and serial number are different. (on page number 3, line number 5)

There is an application of OmniKey that reads the serial number of the card, and it also returns UID only.

NXP documentation says UID <> Serial Number and a other standard OmniKey application returns UID as Serial Number.

I have started pulling my hair off on the issue. I'd greatly appreciate if anyone could help.

Upvotes: 17

Views: 93581

Answers (3)

jiten
jiten

Reputation: 5264

Each smart card contains an integrated chip with a unique permanent identification (UID) number burned-in during the manufacturing process. This UID is often referred to as the Card Serial Number (CSN). The card serial number is not encrypted and any reader that is ISO compliant can read the card serial number.

Edit 1:

Mifare Card Serial Number is the unique identifier defined in ISO 14443-3A. There are 3 types of UID defined in the standard - single (4 bytes), double (7 bytes) and triple (10 bytes). Only in first versions of the Mifare card, the UID was 4 bytes but now have migrated to 7 bytes.

EDIT 2: It might be helpful to you...

What is the difference between a 4 byte UID and a 4 byte ID?

A 4 byte UID is an identifier which has been assigned by the card manufacturer using a controlled database. This database ensures that a single identifier is not used twice. In contradiction, a 4 byte ID is an identifier which may be assigned to more then one contactless chip over the production time of a product so that more then one card with the same identified may be deployed into one particular contactless system.

Upvotes: 20

drlolly
drlolly

Reputation: 194

For DesFire cards:

  1. UID is analogous to ethernet MAC address. It is assigned by the chip manufacturer from a database. Everyone who creates applications for the card has access to the UID.
  2. The Card Serial Number is specific to the application loaded on to the card. It can only be accessed by that application via an encryption key. If the card had several applications loaded on to it (unlikely but possible), then each could have a different CSN.

Upvotes: 0

Eduardo
Eduardo

Reputation: 51

The differentiation in this case comes from the fact that a "Serial Number" implies that the numbers are a series, thus sequentially assigned.

MIFARE cards have Unique Identification Numbers (or in short UID), which are generated by an internal rule which is not necessarily sequential. This means that if you see a card with UID 01020304050607 it does not mean that there are at least that many cards produced so far.

If you ever see someone referring to the Card Serial Number, they are in fact referring to the UID.

The only last confusion can come from the fact that MIFARE cards can be configured to return Random IDs during activation. If that is the case, you would get different "UID" each time you activate the card. In that scenario you need to read the data contained in Block 0 (for which you will need to know the key to sector 0) to get the real UID of the card.

Upvotes: 5

Related Questions