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