2016-08-22 66 views
1

我最近使用的是Mifare Classic 1k智能卡。我使用製造商模塊(扇區0,塊0)來識別卡,因爲Mifare Classic卡的UID並不是真正獨特的。Mifare DESFire EV1 4k製造商區塊

我的應用場景是我想從智能卡中讀取一個標識符,並將其與數據庫進行比較,每個用戶都有一個智能卡分配給他們。所以用戶可以用他們的卡登錄。現在我不得不使用新的Mifare DESFire EV1 4k卡。這些卡片是否也有製造商區塊或只有7字節的UID?使用此UID來識別卡是否安全?

+0

取決於「* identify *」的含義......您是否打算確定您的卡是一批MIFARE Classic或MIFARE DESFire卡中的特定卡?或者您打算確定該卡是MIFARE Classic還是MIFARE DESFire? –

+0

目前還不清楚,你試圖達到什麼程度的安全。那裏有**卡允許寫這些信息... – guidot

+0

我想寫一個軟件,從智能卡讀取一個標識符,並與數據庫進行比較,其中每個用戶都有一個智能卡分配給他。所以用戶可以用他的卡登錄。當我使用Mifare Classic Cards時,我使用製造商模塊作爲標識符,但我的公司現在切換到Mifare DESFire卡。我正在尋找類似卡的序列號的東西,以便我可以將卡分配給用戶。 – Chrisser

回答

2

您可以預期的7字節UID真正 MIFARE DESFire EV1卡是唯一的。但請注意,DESFire EV1卡可以配置爲使用隨機4字節UID。在這種情況下,每個RF激活都會隨機生成UID。這些卡的7字節UID只能在認證後使用GetCardUID命令(命令代碼0x51)獲得。

但是,您應該知道(特別是考慮您的用例)UID可以輕鬆克隆,並且不適合對卡(或其用戶)進行身份驗證。另請參見

如果你想要的東西,是compareable對MIFARE經典的製造商塊(即東西,揭示了產品類型和生產批次信息),MIFARE DESFire卡有一個GetVersion命令(命令代碼0x60)。

最後,請注意,MIFARE Classic卡的製造商區塊實際上並不比UID提供更多的獨特性。原因是製造商模塊的前4個字節是UID本身。下一個字節是UID上的校驗和(因此對於具有相同UID的卡,其值是相同的)。接下來的3個字節是SAK和ATQA值,對於所有(大多數?)MIFARE Classic 1K卡,通常爲'88'和'0400'。其餘字節標識芯片類型(因此對於所有相同類型的卡都是相同的)和生產批次(因此至少每個批次相同)。