CPU卡詳解之CPU卡讀寫原理
隨著非接觸IC 卡技術(shù)在國內(nèi)的逐步推廣,非接觸應(yīng)用以其快捷方便的操作方式,日益深入人心,并逐漸成為公共交通、城市通卡建設(shè)的首選技術(shù)。
早期投入應(yīng)用的非接觸IC 卡技術(shù)多為邏輯加密卡,比如最為著名的Philips 公司(現(xiàn)NXP)的Mifare 1 卡片。非接觸邏輯加密卡技術(shù)以其低廉的成本,簡明的交易流程,較簡單的系統(tǒng)架構(gòu),迅速得到了用戶的青睞,并得到了快速的應(yīng)用和發(fā)展。據(jù)不完全統(tǒng)計,截至去年年底,國內(nèi)各領(lǐng)域非接觸邏輯加密卡的發(fā)卡量已經(jīng)達到數(shù)億張。隨著非接觸邏輯加密卡不斷應(yīng)用的過程,非接觸邏輯加密卡技術(shù)的不足之處也日益暴露,難以滿足更高的安全性和更復(fù)雜的多應(yīng)用的需求。因此,非接觸CPU 卡技術(shù)正成為一種技術(shù)上更新?lián)Q代的選擇。
CPU 卡的讀寫原理
一般來說,對存儲卡和邏輯加密卡操作,使用接觸式IC 卡通用讀寫器;對CPU 卡使用CPU 卡讀寫器。所謂“通用讀卡器”是
指它可以對大多數(shù)流行的存儲卡和邏輯加密卡操作。而CPU 卡由于有ISO/IEC 7816.3/4 的規(guī)范,其通訊協(xié)議、命令格式都是兼容
的,被看作是一種卡。當(dāng)然,也有將“通用讀卡器”與CPU 讀卡器二合一的真正的接觸式通用讀卡器。PC 端IC 卡應(yīng)用軟件編程,要點是了解卡的數(shù)據(jù)結(jié)構(gòu)和調(diào)用讀卡器函數(shù)。在這方面,非CPU 卡與CPU 卡有不小差別。
a) CPU卡的結(jié)構(gòu):
首先,非CPU 卡,你必須熟悉卡的存儲結(jié)構(gòu),哪里是制造商區(qū),哪里是密碼區(qū),哪里是數(shù)據(jù)控制區(qū),哪里是數(shù)據(jù)區(qū)(應(yīng)用區(qū))……;而CPU 卡,你不必關(guān)心數(shù)據(jù)的地址,卻要關(guān)注文件系統(tǒng)的結(jié)構(gòu):主文件(MF,相當(dāng)于DOS 文件系統(tǒng)的根目錄)、專用文件(DF,相當(dāng)于DOS 文件系統(tǒng)的目錄,可以有多層)、基本文件(EF,相當(dāng)于DOS 文件系統(tǒng)的文件)。CPU 卡的基本文件類型雖然只有透明(二進制)文件、(定長
與不定長)線性記錄文件和循環(huán)記錄文件三類,但由于COS 內(nèi)部控制的需要,派生出一些特定的“變種”——復(fù)位應(yīng)答文件、口令文件、密鑰文件、DIR 文件、SFI 文件……。這些都需要熟悉。純粹的存儲卡是可以自由讀取的;非CPU 邏輯加密卡的訪問控制,需要掌握特定的卡的口令控制、認證控制、特定的數(shù)據(jù)控制標志字節(jié)和卡的熔絲(一種卡上這些控制不一定都有)。而CPU卡的訪問控制,是在建立文件時定義的,讀、寫、更改分別是否
需要認證,用哪個密鑰,是否需要口令,是否需要MAC 驗證等等。需要說明的是,創(chuàng)建文件命令的格式是隨COS 而不同的。所以,你必須熟讀他的COS 手冊。
b) CPU卡的操作:
非 CPU 卡的訪問一般是通過調(diào)用函數(shù)直接完成的,大不了需要熟悉一下調(diào)用參數(shù)。而CPU 卡除了設(shè)備命令(測卡、上下電、選卡座等)和卡的復(fù)位命令以外,所有卡命令都是通過一個通用的命令函數(shù)執(zhí)行的,所以你需要熟悉COS 手冊的命令。COS 的卡操作命令有統(tǒng)一的格式:CLA(命令類別Class)、INS(命令指令I(lǐng)nstruction)、P1(參數(shù)1)、P2(參數(shù)2)、Lc(命令數(shù)據(jù)域Data 長度)、Data 和Le(應(yīng)答數(shù)據(jù)域長度)。命令域中除
了Data,都是1 字節(jié)十六進制數(shù)。數(shù)據(jù)域則是十六進制數(shù)串,可以是二進制數(shù)、BCD 碼或文字的ASCII 碼等等。這有點像匯編語言。調(diào)用命令函數(shù)時,把命令串代入對應(yīng)參數(shù)即可