雖然 IC 卡本身的加密安全性能一般,但仍然有必要了解一下。
1、主要指標
1.1、S50 非接觸式 IC 卡性能簡介(M1)
1)容量爲 8K 位 EEPROM(1K 字節)
2)分爲 16 個扇區,每個扇區爲 4 塊,每塊 16 個字節,以塊爲存取單位
3)每個扇區有獨立的一組密碼及訪問控制
4)每張卡有唯一序列號,爲 32 位
5)具有防衝突機制,支持多卡操作
6)無電源,自帶天線,內含加密控制邏輯和通訊邏輯電路
7)數據保存期爲 10 年,可改寫 10 萬次,讀無限次
8)工作溫度:-20℃~50℃(溼度爲 90%)
9)工作頻率:13.56MHZ
10)通信速率:106KBPS
11)讀寫距離:10cm 以內(與讀寫器有關)
1.2、MiFare one IC S70 主要指標
1)容量爲 32K 位 EEPROM
2)分爲 40 個扇區,其中 32 個扇區中每個扇區存儲容量爲 64 個字節,分爲 4 塊,每塊 16 個字節;
3)8 個扇區中每個扇區存儲容量爲 256 個字節,分爲 16 塊,每塊 16 個字節;以塊爲存取單位
4)每個扇區有獨立的一組密碼及訪問控制
5)每張卡有唯一序列號,爲 32 位
6)具有防衝突機制,支持多卡操作
7)無電源,自帶天線,內含加密控制邏輯和通訊邏輯電路
8)數據保存期爲 10 年,可改寫 10 萬次,讀無限次
9)工作溫度: -20 ℃ ~50 ℃ ( 溼度爲 90%)
10)工作頻率: 13.56MHZ
11)通信速率: 106 KBPS
12)讀寫距離: 10 cm 以內(與讀寫器有關)
2、存儲結構
M1 卡分爲 16 個扇區,每區有4塊(塊0~塊3),共 64 塊,按塊號編址爲 0-63。
第0扇區的塊0(即絕對地址塊0)用於存放芯片商、卡商相關代碼,已經固化不可更改。
其他各扇區的塊0、塊1、塊2爲數據塊,用於存貯用戶數據;
塊3爲各扇區控制塊:用於存放密碼 A、存取控制條件設置、密碼 B。
各區控制塊結構相同,容量 = 16區 * 4塊 * 16字節 = 1024 字節。
1)存儲結構
2)第 0 扇區的塊 0(即絕對地址 0 塊),它用於存放廠商代碼,已經固化,不可更改。
3)每個扇區的塊 0、塊 1、塊 2 爲數據塊,可用於存貯數據。
數據塊可作兩種應用:
用作一般的數據保存,可以進行讀、寫操作。
用作數據值,可以進行初始化值、加值、減值、讀值操作。
4)每個扇區的塊 3 爲控制塊,包括了密碼 A、存取控制、密碼 B。
具體結構如下:
密碼 A(6 字節)+ 存取控制(4 字節)+ 密碼 B(6 字節)
5)每個扇區的密碼和存取控制都是獨立的,可以根據實際需要設定各自的密碼及存取控制。
存取控制爲 4 個字節,共 32 位,扇區中的每個塊(包括數據塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存取控制中每個塊都有相應的三個控制位。
定義如下:
塊 0: C10 C20 C30
塊 1: C11 C21 C31
塊 2: C12 C22 C32
塊 3: C13 C23 C33
如:C10 中的 C 代表這是控制位,1 代表第一位,0 代表是塊 0 的控制位
三個控制位以正和反兩種形式存在於存取控制字節中,決定了該塊的訪問權限。
如進行減值操作必須驗證 KEY A,進行加值操作必須驗證 KEY B。
例如:
字節 6:0xFF 1111 1111
字節 7:0x07 0000 0111
字節 8:0x80 1000 0000
字節 9:0x69
其中:1111 1111 1110 是 0000 0000 0001 的取反
000:塊 0 數據塊權限
000:塊 1 數據塊權限
000:塊 2 數據塊權限
001:塊 3 控制塊權限
6)數據塊(塊0、塊1、塊2)的存取控制:
KeyA|B 表示密碼 A 或密碼 B
例如:
當塊 0 的存取控制位 C10 C20 C30=1 0 0 時,驗證密碼 A 或密碼 B 正確後可讀;
驗證密碼 B 正確後可寫;不能進行加值、減值操作。
7)控制塊塊 3 的存取控制與數據塊(塊 0、1、2)不同,它的存取控制如下:
例如:
當塊 3 的存取控制位 C13 C23 C33=1 0 0 時,表示:
密碼 A:
不可讀,驗證 KEYA 或 KEYB 正確後,可寫(更改)。
存取控制:
驗證 KEYA 或 KEYB 正確後,可讀、可寫。
密碼 B:
驗證 KEYA 或 KEYB 正確後,可讀、可寫。
3、工作原理
卡片的電氣部分只由一個天線和 ASIC 組成。
1)天線:
卡片的天線是隻有幾組繞線的線圈,很適於封裝到 IS0 卡片中。
2)ASIC:
卡片的 ASIC 由一個高速(106KB 波特率)的 RF 接口,一個控制單元和一個 8K 位 EEPROM 組成。
3)工作原理:
讀寫器向 M1 卡發一組固定頻率的電磁波,卡片內有一個 LC 串聯諧振電路,其頻率與讀寫器發射的頻率相同,在電磁波的激勵下,LC 諧振電路產生共振,從而使電容內有了電荷,在這個電容的另一端,接有一個單向導通的電子泵,將電容內的電荷送到另一個電容內儲存,當所積累的電荷達到 2V 時,此電容可做爲電源爲其它電路提供工作電壓,將卡內數據發射出去或接取讀寫器的數據。
4)復位應答(Answer to request)
M1 射頻卡的通訊協議和通訊波特率是定義好的,當有卡片進入讀寫器的操作範圍時,讀寫器以特定的協議與它通訊,從而確定該卡是否爲 M1 射頻卡,即驗證卡片的卡型。
5)防衝突機制 (Anticollision Loop)
當有多張卡進入讀寫器操作範圍時,防衝突機制會從其中選擇一張進行操作,未選中的則處於空閒模式等待下一次選卡,該過程會返回被選卡的序列號。
6)選擇卡片(Select Tag)
選擇被選中的卡的序列號,並同時返回卡的容量代碼。
7)三次互相確認(3 Pass Authentication)
選定要處理的卡片之後,讀寫器就確定要訪問的扇區號,並對該扇區密碼進行密碼校驗,在三次相互認證之後就可以通過加密流進行通訊。
在選擇另一扇區時,則必須進行另一扇區密碼校驗。
8)對數據塊的操作
讀(Read):讀一個塊;
寫 (Write):寫一個塊;
加(Increment):對數值塊進行加值;
減(Decrement):對數值塊進行減值;
存儲(Restore):將塊中的內容存到數據寄存器中;
傳輸(Transfer):將數據寄存器中的內容寫入塊中;
中止(Halt):將卡置於暫停工作狀態;