MIFARE系列5《存储结构》
? ? ?Mifare S50把1K字節(jié)的容量分為16個(gè)扇區(qū)(Sector0-Sector15)。每一個(gè)扇區(qū)包括4個(gè)數(shù)據(jù)塊(Block0-Block3)。我們也將16個(gè)扇區(qū)的64個(gè)塊按絕對(duì)地址編號(hào)為0~63。每一個(gè)數(shù)據(jù)塊包括16個(gè)字節(jié)(Byte0-Byte15)。64*16=1024。
? ? ?Mifare S70把4K字節(jié)的容量分為40個(gè)扇區(qū)(Sector0-Sector39),當(dāng)中前32個(gè)扇區(qū)(Sector0-Sector31)的結(jié)構(gòu)和Mifare S50全然一樣,每一個(gè)扇區(qū)包含4個(gè)數(shù)據(jù)塊(Block0-Block3)。后8個(gè)扇區(qū)每一個(gè)扇區(qū)包含16個(gè)數(shù)據(jù)塊(Block0-Block15)。我們也將40個(gè)扇區(qū)的256個(gè)塊按絕對(duì)地址編號(hào)為0~255。每一個(gè)數(shù)據(jù)塊包含16個(gè)字節(jié)(Byte0-Byte15),256*16=4096。
| 型號(hào) | 扇區(qū)號(hào) | 名稱 | 絕對(duì)塊 |
| Mifare S50 | ? ? ? ? ? ? ? ? sector0 ? ? ? ? ? ? ? ? ?? | 廠商代碼 ? ? ? ? ? ? ? ? ? ? ? | B0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? |
| 數(shù)據(jù)塊 | B1 | ||
| B2 | |||
| 扇區(qū)尾塊 | B3 | ||
| - - - Sector15 | ? 數(shù)據(jù)塊 | B60 | |
| B61 | |||
| B62 | |||
| 扇區(qū)尾塊 | B63 | ||
| ? ? ? ? ? ? ?Mifare S70 ? ? ? ? ? ? ? ? | - - - Sector31 | ? 數(shù)據(jù)塊 | B124 |
| B125 | |||
| B126 | |||
| 扇區(qū)尾塊 | B127 | ||
| - - - - - - - - - Sector39 ? | ? ? ? ? ? 數(shù)據(jù)塊 | B240 | |
| B241 | |||
| B242 | |||
| B243 | |||
| B244 | |||
| B245 | |||
| B246 | |||
| B247 | |||
| B248 | |||
| B249 | |||
| B250 | |||
| B251 | |||
| B252 | |||
| B253 | |||
| B254 | |||
| 扇區(qū)尾塊 | B255 |
1. 制造商塊
0扇區(qū)0塊是特殊的數(shù)據(jù)塊,用于存放制造商代碼,包含芯片序列號(hào)。此塊僅僅讀。出于安全和系統(tǒng)需求,此塊是制造商在生產(chǎn)過程中編程后寫保護(hù)的。
2. 普通數(shù)據(jù)塊
? ? ?普通數(shù)據(jù)塊可通過數(shù)據(jù)塊備份進(jìn)行數(shù)據(jù)完整性的管理。
一般每塊16個(gè)字節(jié)中有兩個(gè)用來存放校驗(yàn)碼和備份塊的地址。各區(qū)均有3個(gè)16字節(jié)的塊用于存儲(chǔ)數(shù)據(jù)(區(qū)0僅僅有兩個(gè)數(shù)據(jù)塊以及一個(gè)僅僅讀的廠商代碼塊)。
數(shù)據(jù)塊可作兩種應(yīng)用:
1)??用作一般的數(shù)據(jù)保存,能夠進(jìn)行讀、寫操作。比如用于非接觸門禁管理。
2)? 用作數(shù)值塊,能夠進(jìn)行加值、減值、轉(zhuǎn)存和恢復(fù)。比如用于電子錢包。可直接控制存儲(chǔ)值,如增值、減值。在用于非充值卡的一種情況(‘001’)下。僅僅能夠讀和減值。在還有一種情況(‘110‘)下。能夠用key B充值。
數(shù)值塊具有電子錢包功能(有效命令:read,write, increment,decrement, restore, transfer)。數(shù)值塊有固定的數(shù)據(jù)格式。它採用冗余存儲(chǔ)方法以保證其數(shù)據(jù)的正確性。
以便于錯(cuò)誤檢測、糾錯(cuò)和備份管理。數(shù)值塊格式例如以下:
| ? ? ? ? ? 字節(jié)號(hào) ? ? ? ? ?? | 15 ? | 14 ? | 13 ? | 12 ? | 11 | 10 | 9 ? | 8? | 7 | 6 | 5 | 4 | 3 ?? | 2? | 1 ?? | 0 |
| 存儲(chǔ)形式 | VALUE ? ? ? ? ? ? ? | ?VALUE-1 | VALUE | A | A-1 | A | ? A-1 | |||||||||
| ? ? ? ? ? ? ? ?說明 ? ? ? ? ? ? ? ? ? | 數(shù)值 ? | 地址? | ||||||||||||||
?? 數(shù)值:有符號(hào)4字節(jié)數(shù)值。數(shù)值的最低字節(jié)存儲(chǔ)在最低地址字節(jié)。負(fù)值以標(biāo)準(zhǔn)的2的補(bǔ)碼形式存儲(chǔ)。出于數(shù)據(jù)完整性和安全原因,數(shù)值存儲(chǔ)三次,兩次不取反,一次取反。
?? 地址(Adr):1字節(jié)地址。當(dāng)進(jìn)行備份管理時(shí),可用于保存塊的地址。地址保存四次。兩次取反,兩次不取反。在increment、decrement、restore和transfer 操作中,地址保持不變。它僅僅能通過write命令更改。
3. 尾塊的讀寫條件
? ? ?對(duì)密鑰和控制位的讀寫取決于尾塊(塊3)的訪問控制位,分為“禁止”、“KEYA”、“KEY B”和“KEY A|B”( KEY A或KEY B)。
| 字節(jié)號(hào) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| ? ? ? ? ?說明 ? ? ? ? ? | ? 密鑰A ? | 讀寫控制 | 密鑰B(可選) | |||||||||||||
? ? ? 在每一個(gè)扇區(qū)最后一個(gè)塊即區(qū)尾中存放有密鑰A、訪問條件、密鑰B等內(nèi)容。它們用于控制對(duì)該扇區(qū)的操作。
當(dāng)中第0-5字節(jié)為48位的密鑰A;第6-8字節(jié)為訪問控制條件;第9字節(jié)為備用區(qū)可用于存放特殊的應(yīng)用數(shù)據(jù),如存放數(shù)據(jù)備份區(qū)的地址;剩下的6個(gè)字節(jié)存放密鑰B,如用戶不須要密鑰B,則可用于存放一般的應(yīng)用數(shù)據(jù)。因?yàn)閰^(qū)尾中訪問條件的數(shù)據(jù)非常重要,因此使用了冗余存儲(chǔ)的方法。
??
?控制位字節(jié)詳細(xì)說明例如以下:
| ? ? ? ?bit ? ? ? ? ?? | ? ? ? ?7 ? ? ? ? | ? ? ? ?6 ? ? ? ? ?? | ? ? ? ?5 ? ? ? ? ? ? | ? ? ? ?4 ? ? ? ? ? | ? ? ? ?3 ? ? ? ? ? ?? | ? ? ? ?2 ? ? ? ? ?? | ? ? ? ?1 ? ? ? ? ? | ? ? ? ?0 ? ? ? ? ? ? |
| 字節(jié)6 | C23_b | C22_b | C21_b | C20_b | C13_b | C12_b | C11_b | C10_b |
| 字節(jié)7 | C13 | C12 | C11 | C10 | C33_b | C32_b | C31_b | C30_b |
| 字節(jié)8 | C33 | C32 | C31 | C30 | C23 | C22 | C21 | C20 |
| 字節(jié)9 | ? | ? | ? | ? | ? | ? | ? | ? |
比如:M1的卡片初始控制字為:7F078800,我們對(duì)它分析例如以下:
字節(jié)6-7F:01111111
字節(jié)7-07:00000111
字節(jié)8-88:10001000
字節(jié)9-00:0000 0000??
那么我們能夠得出:
| ? ? ? ? ? ? ? ? ? 塊0 ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ?C10 ? ? ? ? ? ? ? ? ?? | ? ? ? ? ? ? ? C20 ? ? ? ? ? ? ? | ? ? ? ? ? ? C30 ? ? ? ? ? ?? | ? ? ? ? ? ??0 0 0? ? ? ? ? ?? |
| 塊1 | C11 | C21 | C31 | 0 0 0 |
| 塊2 | C12 | C22 | C32 | 0 0 0 |
| 塊3 | C13 | C23 | C33 | 0 1 1 |
?
塊3的訪問控制位為011,依據(jù)下表查得:
passwordA:不可讀。驗(yàn)證KEYB正確后??蓪?#xff08;更改)。
存取控制:驗(yàn)證KEYA或KEYB正確后。可讀。驗(yàn)證KEYB正確后??蓪?。
passwordB:不可讀;驗(yàn)證KEYB正確后,可寫。
| ?訪問控制位 ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 所控制的訪問對(duì)象 | 凝視 | |||||||
| KEY A | 訪問控制位 | KEY B | |||||||
| ?? ? ?C1 ? ? ? ? | ?? ? ?C2 ? | ? ? ? ? ??C3 ? ?? | ? ? ? ? ? ? 讀? ? ? ? ? ?? | ? ? ? ? ? ??寫? ? ? ? ? ?? | ? ? ? ?讀? ? ? ? ? | ? ? ? ? ??寫? ? ? ? ?? | ? ? ? ?讀? ? ? ? ? | ? ? ? ?寫? ? ? ? | ? |
| 0 | 0 | 0 | 禁止 | Key A | Key A | Key B | Key A | Key A | Key B可讀 ? ? ? ? ? ? ? ?? |
| 0 | 1 | 0 | 禁止 | 禁止 | Key A | 禁止 | Key A | 禁止 | Key B可讀 |
| 1 | 0 | 0 | 禁止 | Key B | Key A|B | 禁止 | 禁止 | Key B | ? |
| 1 | 1 | 0 | 禁止 | 禁止 | Key A|B | 禁止 | 禁止 | 禁止 | ? |
| 0 | 0 | 1 | 禁止 | Key A | Key A | Key A | Key A | Key A | Key B可讀 傳輸配置狀態(tài) |
| 0 | 1 | 1 | 禁止 | Key B | Key A|B | Key B | 禁止 | Key B | ? |
| 1 | 0 | 1 | 禁止 | 禁止 | Key A|B | Key B | 禁止 | 禁止 | ? |
| 1 | 1 | 1 | 禁止 | 禁止 | Key A|B | 禁止 | 禁止 | 禁止 | ? |
4. 數(shù)據(jù)塊的訪問控制條件
| 訪問控制位 | 所控制的訪問操作 | 用途 | |||||
| ?? ? ?C1? ?? | ? ? ? ??C2? ? ? ?? | ? ? ? ??C3? ? ? ??? | ? ? ? ? ? ? ? ?讀? ? ? ? ? ? ?? | ?? ? ? ? ??寫?? ? ? ? ?? | ?? ? ? ? ??加值?? ? ? ? ?? | ?? ? ? ? ??減值?? ? ? ? ?? 轉(zhuǎn)存 恢復(fù) | ? |
| 0 | 0 | 0 | key A|B1 | key A|B1 | key A|B1 | key A|B1 | ? ? 傳輸配置狀態(tài) ? ? |
| 0 | 1 | 0 | key A|B1 | key B1 | 禁止 | 禁止 | 讀寫塊 |
| 1 | 0 | 0 | key A|B1 | key B1 | 禁止 | 禁止 | 讀寫塊 |
| 1 | 1 | 0 | key A|B1 | key B1 | key B1 | key A|B1 | 數(shù)值塊 |
| 0 | 0 | 1 | key A|B1 | 禁止 | 禁止 | key A|B1 | 數(shù)值塊 |
| 0 | 1 | 1 | key B1 | key B1 | 禁止 | 禁止 | 讀寫塊 |
| 1 | 0 | 1 | key B1 | 禁止 | 禁止 | 禁止 | 讀寫塊 |
| 1 | 1 | 1 | 禁止 | 禁止 | 禁止 | 禁止 | 讀寫塊 |
注:在傳輸配置狀態(tài)下,必須用key A認(rèn)證。
? ? ? 假設(shè)對(duì)應(yīng)扇區(qū)尾塊Key B可讀,則不得用作認(rèn)證。假設(shè)讀寫器試圖用灰色行的訪問控制條件以Key B認(rèn)證不論什么扇區(qū)的不論什么塊??▽⒃谡J(rèn)證后拒絕全部興許存儲(chǔ)器訪問。
文/閆鑫原創(chuàng)???轉(zhuǎn)載請(qǐng)注明出處http://blog.csdn.net/yxstars/article/details/38081521
轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/5145461.html
總結(jié)
以上是生活随笔為你收集整理的MIFARE系列5《存储结构》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WP8.1开发中关于如何显示.gif格式
- 下一篇: Solr in Action 翻译完成情