Mifare l射频卡初始值及其相关说明
Mifare l射頻卡初始值及其相關(guān)說明
【本說明是Mifare 1 卡訂貨合同不可缺少的技術(shù)性文檔附件】
電氣特性:
容量為8K位EEPrOM;
● 分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位;
● 每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問控制;
● 每張卡有唯一序列號(hào),為32位;
● 具有防沖突機(jī)制,支持多卡操作;
● 無電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路;
● 工作溫度:-20℃~50℃;
● 工作頻率:13.56MHZ;
● 通信速率:106KBPS;
● 讀寫距離:可達(dá)10mm(與讀寫器以及卡天線尺寸有關(guān));
● 數(shù)據(jù)保存期為10年,可改寫10萬次,讀不限次。
?
工作原理:
卡片由一個(gè)卷繞天線和特定用途集成電路模塊組成。其中,模塊由一個(gè)高速(106KB波特率)的RF接口。一個(gè)控制單元和一個(gè)8K位E2PROM組成。讀寫器向MF1卡發(fā)出一組固定頻率(13.56MHZ)的電磁波,卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,從而使諧振電容內(nèi)有了電荷,在這個(gè)電容的另一端,接有一個(gè)單向?qū)ǖ碾娮颖?#xff0c;將電容內(nèi)的電荷送到模塊存儲(chǔ)電容內(nèi)儲(chǔ)存,當(dāng)所積累的電荷達(dá)到2V以上時(shí),此電容可作為電源向模塊電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器的數(shù)據(jù)。
?
存儲(chǔ)結(jié)構(gòu):
MF1卡分為16個(gè)扇區(qū),每區(qū)有4塊(塊0~塊3),共64塊,按塊號(hào)編址為0~63。第0扇區(qū)的塊0(即絕對(duì)地址塊0)用于存放芯片商,卡商相關(guān)代碼,已經(jīng)固化不可更改。其他各扇區(qū)的塊0,塊1,塊2為數(shù)據(jù)塊,用于存貯用戶數(shù)據(jù);塊3為各扇區(qū)控制塊,用于存放密碼A,存取控制條件設(shè)置,密碼B。各區(qū)控制塊結(jié)構(gòu)相同,如下所示:
| 各區(qū)控制塊3 結(jié)構(gòu) | 字節(jié)號(hào) | 0 1 2 3 4 5 | 6 7 8 9 | 10 11 12 13 14 15 |
| 控制值 | FF FF FF FF FF FF FF | 07 80 69 | FF FF FF FF FF FF | |
| 說明 | 密碼A(0~5字節(jié)) | 存取控制(6~9字節(jié)) | 密碼B(10~15字節(jié)) |
?
控制屬性:
每個(gè)扇區(qū)的用戶密碼和存取控制條件都是獨(dú)立設(shè)置的,可以根據(jù)實(shí)際需要設(shè)定各自的密碼及存取控制。在存取控制中,每個(gè)塊都有三個(gè)控制位相對(duì)應(yīng),用以決定某數(shù)據(jù)塊或控制塊的讀寫條件,定義為:"CXxy",見表1所示。
其中CX代表每塊控制位號(hào)(C1~C3),x代表某塊所屬扇區(qū)號(hào)(0~15), y代表該扇區(qū)內(nèi)某塊號(hào)。例如C1x2 即為x扇區(qū)內(nèi)塊2的第1控制位,余此類推。
注:控制位的設(shè)置存放在存取控制字節(jié)中,見表2所示。
表1:控制位定義"CXxy"
| 塊0 | C1x0 | C2x0 | C3x0 | 用戶數(shù)據(jù)塊,(0區(qū)0塊除外) |
| 塊1 | C1x1 | C2x1 | C3x1 | 用戶數(shù)據(jù)塊 |
| 塊2 | C1x2 | C2x2 | C3x2 | 用戶數(shù)據(jù)塊 |
| 塊3 | C1x3 | C2x3 | C3x3 | 密匙存取控制塊 |
?
表2:三個(gè)控制位在存取控制字節(jié)中的位置(注:" _b" 表示取反)
| 位號(hào) 字節(jié)號(hào) ? | bit 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 字節(jié)6 | C2x3_b | C2x2_b | C2x1_b | C2x0_b | C1x3_b | C1x2_b | C1x1_b | C1x0_b |
| 字節(jié)7 | C1x3 | C1x2 | C1x1 | C1x0 | C3x3_b | C3x2_b | C3x1_b | C3x0_b |
| 字節(jié)8 | C3x3 | C3x2 | C3x1 | C3x0 | C2x3 | C2x2 | C2x1 | C2x0 |
| 字節(jié)9 | BX7 | BX6 | BX5 | BX4 | BX3 | BX2 | BX1 | BX0 |
| 所屬塊 | 塊3控制位 | 塊2控制位 | 塊1控制位 | 塊0控制位 | 塊3控制位 | 塊2控制位 | 塊1控制位 | 塊0控制位 |
?
各扇區(qū)數(shù)據(jù)塊0~塊2的三個(gè)控制位以正反兩種形式存在于塊3的存取控制字節(jié)中,它決定了該塊的訪問權(quán)限(例如進(jìn)行減值及初始化值操作必須驗(yàn)證KEY A,進(jìn)行加值操作必須驗(yàn)證KEY B,等等)。三個(gè)控制位在存取控制字節(jié)(6~9字節(jié))中的權(quán)限如下(陰影區(qū)的存取控制為廠商初始值;字節(jié)9為備用字節(jié),默認(rèn)值為69):
注釋:表3中,KeyA|B表示密碼A或密碼B,Never表示沒有條件實(shí)現(xiàn)。
表3:數(shù)據(jù)塊的存取控制權(quán)限(x=0~15扇區(qū); y=塊0,塊1,塊2)
| C1xy C2xy C3xy | 讀 | 寫 | 加值 | 減值,初始化 |
| 0 0 0 | KeyA|B | KeyA|B | KeyA|B | KeyA|B |
| 0 1 0 | KeyA|B | Never | Never | Never |
| 1 0 0 | KeyA|B | KeyB | Never | Never |
| 1 0 0 | KeyA|B | KeyB | KeyB | KeyA|B |
| 0 0 1 | KeyA|B | Never | Never | KeyA|B |
| 0 1 1 | KeyB | KeyB | Never | Never |
| 1 0 1 | KeyB | Never | Never | Never |
| 1 1 1 | Never | Never | Never | Never |
??
?例如,某區(qū)塊的3個(gè)存取控制位C1xy,C2xy,C3xy=000時(shí)(廠商預(yù)設(shè)的初始值,見陰影區(qū)),驗(yàn)證密碼A或密碼B正確后可讀出/可寫入/可加值/減值及初始化操作。該初始值主要供制卡和發(fā)卡商檢測(cè)心片功能使用,確認(rèn)所有讀寫/加密功能均正常(存取控制初始值"ff078069",請(qǐng)參考"步驟舉例"自行驗(yàn)算)后,再依據(jù)使用需要和參照表4表5設(shè)置新的存取控制權(quán)限值,進(jìn)行用戶數(shù)據(jù)操作和修改新的用戶密碼。
再如當(dāng)某區(qū)塊0的存取控制位C10,C20,C30的設(shè)置均=100時(shí),驗(yàn)證密碼A或密碼B正確后可讀出其數(shù)據(jù);只有驗(yàn)證密碼B正確后才可允許改寫數(shù)據(jù);不能進(jìn)行加值,減值等操作。
以廠商初始值"FF 07 80 69"為例,說明存取控制條件對(duì)數(shù)據(jù)塊的影響。初始存取控制默認(rèn)值(C1x0,C2x0,C3x0=000;C1x1,C2x1,C3x1=000;C1x2,C2x2,C3x2=000;C1x3,C2x3,C3x3=001)和KeyA,KeyB默認(rèn)值(由廠商提供,通常為:ffffffffffff)。那么塊3中,廠商初始的存取控制值如下表所示:
表4:塊3中廠商初始存取控制值(-號(hào)表示需要取反)
| Bit# | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 字節(jié)6 | 1- | 1- | 1- | 1- | 1- | 1- | 1- | 1- |
| 字節(jié)7 | 0 | 0 | 0 | 0 | 0- | 1- | 1- | 1- |
| 字節(jié)8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ? | CXx3 | CXx2 | CXx1 | CXx0 | CXx3 | CXx2 | CXx1 | CXx0 |
?
如果用戶要讀到塊1的內(nèi)容,對(duì)照表4和查對(duì)表3可知,當(dāng)存取控制C1x1,C2x1,C3x1=000時(shí),必需正確校驗(yàn)KEY A或KEY B后才可允許讀取塊1的內(nèi)容,否則,MF1讀寫器會(huì)因校驗(yàn)?zāi)硡^(qū)密碼出錯(cuò)而無法讀取和傳送數(shù)據(jù)!以此類推,用戶要進(jìn)行其它操作時(shí),可根據(jù)存取條件,對(duì)照表2~4來決定其操作權(quán)限。
?? 表5列出了飛利浦公司對(duì)MF1卡的8種控制位設(shè)置值所對(duì)應(yīng)的存取控制權(quán)限表,供發(fā)卡商及用戶設(shè)置MF1卡使用權(quán)限時(shí)參考,其釋義如下:
表5:塊3的存取控制權(quán)限(供發(fā)卡商及用戶設(shè)置權(quán)限時(shí)參考)
| 控制位設(shè)置值 | 密碼A權(quán)限 | 存取控制權(quán)限 | 密碼B權(quán)限 | |||||
| C1x3 | C2x3 | C3x3 | 讀 | 寫 | 讀 | 寫 | 讀 | 寫 |
| 0 | 0 | 0 | Never | KeyA | KeyA | Never | KeyA | KeyA |
| 0 | 1 | 0 | Never | Never | KeyA | Never | KeyA | Never |
| 1 | 0 | 0 | Never | KeyB | KeyA|B | Never | Never | KeyB |
| 1 | 1 | 0 | Never | Never | KeyA|B | Never | Never | Never |
| 0 | 0 | 1 | Never | KeyA | KeyA | KeyA | KeyA | KeyA |
| 0 | 1 | 1 | Never | KeyB | KeyA|B | KeyB | Never | KeyB |
| 1 | 0 | 1 | Never | Never | KeyA|B | KeyB | Never | Never |
| 1 | 1 | 1 | Never | Never | KeyA|B | Never | Never | Never |
例如:當(dāng)塊3的存取控制位C13C23 C33 = 100時(shí),表示:密碼A:不可讀(隱藏),驗(yàn)證KEYB正確后,可寫(或更改);存取控制:驗(yàn)證KEYA或KEYB正確后,可讀不可寫(寫保護(hù));密碼B:不可讀,驗(yàn)證KEYB正確后可寫。
又如:當(dāng)塊3的存取控制位C13C23 C33 = 110或者111時(shí),除存取控制值需要在驗(yàn)證KEYA或KEYB正確后僅僅可讀外,其它如存取控制值的改寫,密碼A,密碼B的讀寫權(quán)限均被鎖死而無法訪問!
?
?
?
?
?
?
?
?
?
?
?
?
?
?
MF1卡修改各區(qū)塊控制位值和數(shù)據(jù)——舉例
(一),以常用設(shè)置"08 77 8F 69"控制條件為例,先搞清楚它――具有的訪問權(quán)限。
1、對(duì)"08 77 8F 69"值進(jìn)行計(jì)算,該值定位于各區(qū)塊3的6,7,8,9四個(gè)字節(jié)內(nèi),字節(jié)6=08,字節(jié)7=77,
字節(jié)8=8F,字節(jié)9=69(默認(rèn)值,不予計(jì)算)。
2、例如:字節(jié)6=08,對(duì)應(yīng)其二進(jìn)制值=00001000,則對(duì)6,7,8這三個(gè)字節(jié)進(jìn)行二進(jìn)制轉(zhuǎn)換結(jié)果見下表:
| 字節(jié)6 = 0 0 0 0 1 0 0 0 | 字節(jié)7 = 0 1 1 1 0 1 1 1 | 字節(jié)8 = 1 0 0 0 1 1 1 1 |
3、參照表2及表4算法,字節(jié)6的全部二進(jìn)制值取反,字節(jié)7的低四位二進(jìn)制值取反,字節(jié)8不變,得到:
| 字節(jié)號(hào) | 對(duì)應(yīng)二進(jìn)制值 | 位置 | 高4位 | 位置 | 低4位 |
| 字節(jié)6 | 0 0 0 0 1 0 0 0 | C2Y | 1 1 1 1 | C1Y | 0 1 1 1 |
| 所屬塊位 | 塊3 塊2 塊1 塊0 | ? | 塊3 塊2 塊1 塊0 | ||
?
4、對(duì)以上6,7,8字節(jié)的存取/控制二進(jìn)制已取反值,依照表2,表4塊位轉(zhuǎn)換為各塊控制值,如下表:
| 塊3位 | 字節(jié)7,字節(jié)6,字節(jié)8 = C13,C23,C33 = C1Y,C2Y,C3Y = 0 1 1 |
| 塊2位 | 字節(jié)7,字節(jié)6,字節(jié)8 = C12,C22,C32 = C1Y,C2Y,C3Y = 1 1 0 字節(jié)7,字節(jié)6,字節(jié)8 = C11,C21,C31 = C1Y,C2Y,C3Y = 1 1 0 字節(jié)7,字節(jié)6,字節(jié)8 = C10,C20,C30 = C1Y,C2Y,C3Y = 1 1 0 |
注意:高4位的各塊值=低4位的各塊值時(shí),其值可用。高4位值≠低4位值時(shí),其值不可用!
5、查對(duì)訪問權(quán)限(數(shù)據(jù)存取控制依照表3,塊3存取控制依照表5),該例"08 77 8F 69"的訪問權(quán)限為:
◆ 塊3 = 011:權(quán)限為:KeyA,KeyB均不可讀,驗(yàn)證KeyB正確后可改寫KeyA和KeyB,驗(yàn)證KeyA或KeyB正確后可讀"控制位"。在此可見密鑰KeyB的重要性,KeyB不正確是無法看到塊3控制值,更無法修改密鑰。
◆ 塊2 = 塊1 = 塊0 =110:權(quán)限為:驗(yàn)證KeyA或KeyB后可讀該塊數(shù)據(jù),減值以及初始化值,只有驗(yàn)證KeyB 正確后才可改寫該塊數(shù)據(jù),在此可以看到密鑰KeyB對(duì)改寫數(shù)據(jù)塊也起著關(guān)鍵性作用。
(二)、"08 77 8F 69" 控制條件設(shè)置步驟:
由(一)可知:KeyB設(shè)置后為不可讀,并且改寫數(shù)據(jù)和改寫控制位都需要正確驗(yàn)證它,故KeyB設(shè)置后程序
操作員必須妥善保管KeyB值,否則以后改寫數(shù)據(jù)和控制位時(shí),不正確的KeyB值將無法實(shí)現(xiàn)卡的任何操作!!!
1、修改塊3控制位的值:最初的各區(qū)塊3內(nèi)的KeyA,KeyB都是廠商12個(gè)"F"默認(rèn)值(KeyA在任何條件下均為不可讀,大部分讀寫機(jī)程序表現(xiàn)KeyA為未知的12個(gè)"0" ),在修改控制值時(shí),先不要修改默認(rèn)密碼KeyA和KeyB,在控制位修改成功后,再去更改新密碼值。即先對(duì)塊3的控制位進(jìn)行修改(默認(rèn)值FF 07 80 69改為新值08 77 8F 69)并執(zhí)行寫操作。控制位寫成功后,KeyB亦為12個(gè)"0"不可讀了,但仍是隱藏的12個(gè)"f"默認(rèn)值。
2、修改塊3的KeyA和KeyB值:控制位0877 8F 69值寫成功后,驗(yàn)證KeyB正確后方可改寫KeyA和KeyB新密碼。在密碼操作模式鍵入要改寫區(qū)塊之先前密碼B(先前密碼為默認(rèn)值時(shí),則不需改動(dòng)和加載),加載后反回?cái)?shù)據(jù)操作模式,再進(jìn)行讀值,KeyA和KeyB值的改寫。
3、修改塊0~塊2中數(shù)據(jù):由新的控制條件08778F69可知,要修改數(shù)據(jù),必須先驗(yàn)證KeyB,故先設(shè)置密碼操作為KeyB認(rèn)證方式,加載后再返回?cái)?shù)據(jù)操作模式,對(duì)要修改的數(shù)據(jù)塊進(jìn)行值的改寫操作。
4、上例中分析了"08 77 8F 69"的訪問條件及其改寫步驟,對(duì)用戶的其它控制條件亦可參照應(yīng)用。
MF1卡常見問題及處理建議
① 盲目操作:造成某些區(qū)塊誤操作被鎖死不能再使用。應(yīng)當(dāng)仔細(xì)參考表3表5的控制權(quán)限后,予先得出操作后的結(jié)果是否適合使用要求,并且列出操作順序表單再操作。最好授權(quán)程序員對(duì)塊3的設(shè)置作專人操作。
② 丟失密碼:再讀寫時(shí)造成密碼認(rèn)證出錯(cuò)而不能訪問卡。特別要求在對(duì)MF卡進(jìn)行塊3編程操作時(shí),必須及時(shí)記錄相關(guān)卡號(hào)的控制值,KeyA,KeyB等,而且應(yīng)當(dāng)有專人管理密碼檔案。
③錯(cuò)誤設(shè)置:對(duì)MF1卡的塊3控制塊了解不透徹,錯(cuò)誤的理解造成設(shè)置造成錯(cuò)誤的設(shè)置。依照表2可知,目前Mf1卡的控制塊僅只有8種數(shù)據(jù)塊訪問控制權(quán)限和8種控制塊設(shè)置權(quán)限,超出這16種權(quán)限的其他代碼組合,將直接引起錯(cuò)誤設(shè)置而使卡片報(bào)廢!
④ 極端權(quán)限:當(dāng)塊3的存取控制位C13C23 C33 = 110或者111時(shí),稱為極端權(quán)限。除特殊應(yīng)用外一般不被使用!啟用前認(rèn)真權(quán)衡對(duì)密碼讀寫,存取控制的鎖死是否必要,否則,數(shù)據(jù)加密后即使有密碼也無法讀取被鎖死的數(shù)據(jù)區(qū)塊(看不見)!
⑤ 設(shè)備低劣:低劣的設(shè)備將直接影響卡的讀寫性能。對(duì)MF卡進(jìn)行塊3編程操作的設(shè)備,特別要求其性能必須十分可靠,運(yùn)行十分穩(wěn)定!建議選用由飛利浦公司原裝讀寫模塊構(gòu)建的知名讀寫機(jī)具!
⑥編程干擾:在對(duì)塊3進(jìn)行編程操作時(shí),不可以有任何的"IO"中斷或打擾!包括同時(shí)運(yùn)行兩個(gè)以上程序干擾甚至PC機(jī)不良的開關(guān)電源紋波干擾等,否則,不成功的寫操作將造成某個(gè)扇區(qū)被鎖死的現(xiàn)象,致使該扇區(qū)再次訪問時(shí)出錯(cuò)而報(bào)廢。
⑦ 數(shù)據(jù)出錯(cuò):在臨界距離點(diǎn)上讀卡和寫卡造成的。通常的讀卡,特別是寫卡,應(yīng)該避免在臨界狀態(tài)(剛能讀卡的距離)讀卡。因?yàn)榕R界狀態(tài)下的數(shù)據(jù)傳送是很不穩(wěn)定的!容易引起讀寫出錯(cuò)!
⑧ 人為失誤:例如,密碼加載操作失誤,誤將KeyA加載為KeyB;或者是誤將其他制卡廠約定的初始密碼值如a0a1a2a3a4a5,b0b1b2b3b4b5加載到本公司生產(chǎn)的MF1卡內(nèi);或者在初始狀態(tài)下(密碼A=000000000000【隱藏狀態(tài),實(shí)際為ffffffffffff】,控制位=FF07 80 69,密碼B=ffffffffffff【可見】)若不經(jīng)意地將KeyA=000000000000刪除后又重新輸入12個(gè)"0",并加載了它!這時(shí)無意中已將KeyA原來12個(gè)隱藏的"f",修改成了12個(gè)"0",其后果可想而知!
⑨ 卡片失效:讀寫均無數(shù)據(jù)傳送,讀寫器報(bào)告"尋卡錯(cuò)誤"!卡片被超標(biāo)扭曲,彎曲而造成內(nèi)電路斷裂。
⑩ 讀寫距離過近:與用戶使用的讀寫器性能有關(guān)。標(biāo)準(zhǔn)型MF1卡的讀寫距離可達(dá)10cm(在飛利浦公司的標(biāo)準(zhǔn)讀寫機(jī)具上測(cè)試的最大距離),國產(chǎn)知名品牌讀寫器一般可達(dá)5-10cm。尺寸較小的匙扣卡,其讀寫距離當(dāng)然比標(biāo)準(zhǔn)卡近許多,但只要可靠的讀寫距離≥5~10mm以上,一般不會(huì)影響正常使用!
?
制卡廠商責(zé)任與義務(wù)
1、MF1卡相關(guān)控制位的算法與設(shè)置,依據(jù)于飛利浦公司的《 Mifera 1 IC S50 》的PDF原始文檔,本文檔僅供客戶參考,如有不當(dāng)之處,應(yīng)以原始文檔為準(zhǔn)!客戶可重點(diǎn)對(duì)照參考第12~15頁的原始英文說明;
2、MF1卡芯片電路均采用飛利浦公司原裝產(chǎn)品,品質(zhì)可靠,性能穩(wěn)定;
3、MF1卡均經(jīng)嚴(yán)格的測(cè)試,保證出廠的正品率≥99。9%;
4、客戶在收到MF1卡的90天內(nèi),務(wù)必盡快使用廠商默認(rèn)值對(duì)卡的所有區(qū)塊進(jìn)行讀寫檢測(cè),超期恕不受理;
5、如果在廠商默認(rèn)狀態(tài)下(保持控制位存取控制值為FF078069,KeyA=KeyB=FFFFFFFFFFFF)不能正確讀寫數(shù)據(jù),屬產(chǎn)品質(zhì)量問題,請(qǐng)?jiān)隍?yàn)收期內(nèi)盡快與制卡商聯(lián)系!屬制卡工藝引起的,由制卡商負(fù)責(zé)解決;確屬芯片質(zhì)量引起的,制卡商有義務(wù)聯(lián)系飛利浦公司的相關(guān)芯片供貨商協(xié)調(diào)解決;
6、如果客戶已經(jīng)改寫了控制位的值(例如將默認(rèn)值FF078069改寫為08778F69),表明客戶已經(jīng)認(rèn)可MF1卡質(zhì)量,而后出現(xiàn)的操作失誤問題(例如丟失KeyB而不能再改寫數(shù)據(jù)塊等等),屬客戶責(zé)任,與供貨商產(chǎn)品質(zhì)量無關(guān)!
7、通常,本廠生產(chǎn)的MF1卡內(nèi)已具有廠商代碼和保修代碼,客戶返回有問題的MF1卡經(jīng)檢測(cè)若非本廠卡,首次退還不予解決,在退卡登記名冊(cè)再次出現(xiàn)非本廠卡,則一律沒收,敬請(qǐng)?bào)w諒!
8、制卡商可依據(jù)客戶要求,義務(wù)提供飛利浦公司相關(guān)《 Mifera 1 IC S50 》等原始文檔(英文PDF文檔)。
9、本廠技術(shù)性文檔為訂貨合同必須附件,客戶可以廣為散發(fā)傳播,但必須同意保證本文檔的完整和不被修改!
南京達(dá)華億卡軟件科技有限公司
南京市珠江路88號(hào)新世界中心A座3013室
025-84068188、84725266、86871177
總結(jié)
以上是生活随笔為你收集整理的Mifare l射频卡初始值及其相关说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件透明加密,保护重要数据的安全性
- 下一篇: CTS测试流程