飛利浦是世界上最早研制非接觸式IC卡的公司,其產(chǎn)品系統(tǒng)包括Mifare Standard(邏輯加密卡,EEPROM容量為8 KB)、Mifare Light(邏輯加密卡,EEPROM容量為384 KB)、Mifare PLUS(第一代雙界面卡)、Mifare PRO(第二代雙界面卡)等。
Mifare Standard卡型號(hào)為Mifare S50,簡(jiǎn)稱S50卡)與讀寫器之間的工作距離小于100 mm,數(shù)據(jù)傳輸率為106 kb/s,完完成一次讀卡時(shí)間可小于0.1 s,工作頻率為13.56 MHz,具有可靠性高、防碰撞能力強(qiáng)、一卡多用、安全性能好等特點(diǎn)。
內(nèi)部結(jié)構(gòu)與工作過程
Mifare S50整個(gè)電路(除線圈外)都集成在一個(gè)芯片內(nèi),其內(nèi)部邏輯框圖如圖所示,芯片電路可以分為射頻接口電路和數(shù)字模塊。
射頻接口模塊由整流器、電壓調(diào)節(jié)器、上電復(fù)位(Power On Reset,POR)模塊、時(shí)鐘產(chǎn)生器、調(diào)制器以及解調(diào)器等部分組成,主要有以下功能。
1、為芯片內(nèi)部各部分電路提供工作時(shí)所需能量;
2、提供POR信號(hào),使各部分電路同步啟動(dòng)工作;
3、從載波中提取電路正常工作所需要的時(shí)鐘信號(hào);
4、將載波上的指令數(shù)據(jù)解調(diào)出來(lái)供數(shù)字電路模塊處理以及對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行調(diào)制。
數(shù)字電路模塊主要由如下部分組成:
1、ATR(Answer to Request)模塊:當(dāng)接收到讀寫器的Request命令后,芯片啟動(dòng)該模塊建立與讀寫器的通信。
2、Anti-Collision模塊:當(dāng)多個(gè)電子標(biāo)簽同時(shí)位于讀寫器天線工作范圍內(nèi)時(shí),此模塊根據(jù)電子標(biāo)簽的序列號(hào)選擇其中一個(gè)電子標(biāo)簽。
3、Authentication & Access Control模塊:確認(rèn)電子標(biāo)簽被選中后,此模塊進(jìn)行讀寫器與電子標(biāo)簽之間的相互認(rèn)證,只有通過相互認(rèn)證,才能進(jìn)行進(jìn)一步操作。
4、Control & Arithmetic Unit模塊:此模塊是芯片的控制中心,是中央處理器單元。
5、RAM:配合Control & Arithmetic Unit將運(yùn)算結(jié)果進(jìn)行暫時(shí)存儲(chǔ);動(dòng)態(tài)存取EEPROM中的數(shù)據(jù)供Control & Arithmetic Unit操作使用。
6、ROM:固化電子標(biāo)簽所需要的程序指令。
7、EEPROM Memory:EEPROM存儲(chǔ)器,用于存放用戶數(shù)據(jù),可讀可寫。
8、EEPROM Interface:訪問EEPROM存儲(chǔ)器的控制接口。
Mifare S50的工作過程如圖所示,讀寫器發(fā)送Request命令給所有在天線場(chǎng)范圍內(nèi)的電子標(biāo)簽,通過防碰撞循環(huán),得到一張卡的序列號(hào)后,選擇此卡進(jìn)行認(rèn)證,通過認(rèn)證后對(duì)存儲(chǔ)器進(jìn)行操作。Mifare S50對(duì)存儲(chǔ)器的操作包括:
1、Read:讀存儲(chǔ)器的一個(gè)分組。
2、Write:寫存儲(chǔ)器的一個(gè)分組
3、Decrement:減少分組內(nèi)容,并將結(jié)果存入數(shù)據(jù)寄存器。
4、Increment:增加分組內(nèi)容,并將結(jié)果存入數(shù)據(jù)寄存器。
5、Transfer:將數(shù)據(jù)寄存器的內(nèi)容寫入EEPROM的一個(gè)分組。
6、Restore:將分組內(nèi)容存入數(shù)據(jù)寄存器。
存儲(chǔ)器組織與訪問控制
Mifare S50卡有8 KB的EEPROM,分成16個(gè)區(qū),每個(gè)區(qū)又分成4個(gè)分組(Block0~Block3),一個(gè)分組有16 B,其存儲(chǔ)結(jié)構(gòu)組織如圖
(1)每個(gè)扇區(qū)由4塊(塊0、塊1、塊2、塊3)組成(也有的將16個(gè)區(qū)的64個(gè)塊按絕對(duì)地址編號(hào)為0~63)。
(2)第0扇區(qū)的塊0(即絕對(duì)地址0塊)都是一個(gè)特殊的塊,該塊存儲(chǔ)了制造商代碼,已經(jīng)固化,不可更改。
(3)每個(gè)扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,用于存儲(chǔ)數(shù)據(jù),可以進(jìn)行讀寫操作。
(4)每個(gè)區(qū)的塊3為控制塊,包括了密鑰A、訪問控制條件、密鑰B。具體結(jié)構(gòu)如下:密鑰A有6字節(jié),訪問控制條件有4字節(jié),密鑰B有6字節(jié),其結(jié)果如圖5-17所示。由于每個(gè)區(qū)都有各自的密鑰和訪問條件,各區(qū)之間互不干擾,因此Mifare S50可作為多功能卡使用。
圖區(qū)尾部(塊3)的組成
每個(gè)區(qū)的密鑰和訪問控制條件相互獨(dú)立,可以根據(jù)實(shí)際需要設(shè)定各自的密鑰及訪問控制條件。每個(gè)塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由密鑰和訪問控制條件共同決定的,訪問控制條件四個(gè)字節(jié)所表示的含義如表5-4所示(注:_b表示取反)
表訪問控制條件的定義
其中,在存取控制中每個(gè)塊都有相應(yīng)的三個(gè)控制位,定義如下。
塊0: C10 C20 C30
塊1: C11 C21 C31
塊2: C12 C22 C32
塊3: C13 C23 C33
三個(gè)控制位以正、反兩種形式存在于表5-4所示訪問條件字節(jié)中,決定了該塊的訪問權(quán)限。三個(gè)控制位在存取控制字節(jié)中的位置如下(Byte 9為備用字節(jié),默認(rèn)值為0x69)。
例如,上述存取控制字節(jié)為FF 07 80 69時(shí),對(duì)應(yīng)的每一位為表所示。
表存取控制位為FF 07 80 69對(duì)應(yīng)的二進(jìn)制碼
那么對(duì)應(yīng)每個(gè)塊的存取控制位
如下。
塊0:000
塊1:000
塊2:000
塊3:001
查詢?cè)L問控制碼的結(jié)構(gòu)表,可得到相應(yīng)塊所對(duì)應(yīng)的訪問條件。例如,當(dāng)塊3的存取控制位C13 C23 C33=001時(shí),驗(yàn)證密鑰A或密鑰B正確后可讀、不可寫、不可加值;驗(yàn)證密鑰A或密鑰B正確后可進(jìn)行Decrement、Transfer、Restore操作。其中,KeyA|B表示密鑰A或密鑰B,Never表示任何條件下均不能實(shí)現(xiàn)。