CPU卡详解之CPU卡读写原理

2013-12-29 20:35:56 重庆诺塔斯智能科技有限公司 228

       随着非接触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 码等等。这有点像汇编语言。调用命令函数时,把命令串代入对应参数即可