📄 ic卡技术.txt
字号:
第一讲 IC卡的种类和特性
--------------------------------------------------------------------------------
随着我国市场经济的发展和金融现代化,现金和各种证件正逐渐被各种卡片所取代。其中IC卡是卡片家庭中出现最晚,但却是最有前途的一种,最终它将取代现在广泛使用的光电卡、条码卡、磁卡的地位而成为主流。我们知道:IC卡又叫智能卡,它是将大规模集成电路(IC)封装在卡片中,卡片上印有说明文字和图像。由于其内部具有现代高科技产品-集成电路,因此,不但可以存储大量信息,具有极强的保密性能,并且抗干扰、无磨损、寿命长。因此在广泛的领域中得到应用。
根据IC卡的应用领域,可以分为金融卡和非金融卡两大类。金融卡又可以分为信用卡和现金卡两种。金融卡是我国大力建设的金卡工程的主要媒体。其中,信用卡由银行发行和管理,持卡人必须在银行有帐号、有存款。持卡人可以用信用卡作为消费时的支付工具,可以使用存款,必要时也允许透支限额内的资金。由于IC卡上记录了持卡人主要信息,故不一定要求消费场所与银行联网。比起磁卡等仅记录少量数据的卡型,具有极大的灵活性和可靠性。而现金卡是持卡人以现金购买的电子货币。可以多次使用,自动计费。使用方便,但不允许透支。如水电费的交费卡、煤气费卡、就餐卡、医疗卡等。在卡上金额少于一定限额时,要重新交费才可继续使用。IC卡在此领域应用,主要是由于其优良的保密性,可以防止伪造和窃用。非金融卡主要是作为电子证件,用来记录持卡人的各方面信息,作为身份识别。如IC卡身份证、进门证、考勤卡、医疗证、住宿证等。由于IC卡可以记录大量信息,并且可以分区存款,因此可以做到一卡多用,简化验证的手续。从IC卡的读写方法上来分类:有接触型和非接触型两种。两种卡的集成电路均密封在塑料卡基片内部,可防水,防尘,防磁。但接触型IC卡的表面可以看到一个方型镀金接口,共有八个或六个镀金触点,用于与读写器接触,通过电流信号完成读写。持卡人刷卡时,须将IC卡手稿读写器,读写完毕,读写器可自动弹出,或由持卡人抽出卡片。因此这种IC卡刷卡慢,但可靠性高,多用于存储信息量大,读写操作复杂的场合。非接触型IC卡卡上设有射频信号接收器或红外线收发器,在一定距离内即可收发读写器的信号,实现非接触读写。这种IC卡常用于身份验证,电子门禁等场合。卡上记录信息简单,读写要求不高,卡型变化也较大,可以作成徽章等形式。
根据IC卡内部结构可以分为以下三类:
1. 存储卡: 这种IC 卡内封装的集成电路一般为电可擦除的可编程只读存储器EEPROM.这种器件的特点是:存储数据量大,容量为几KB到几十KB.信息可以长期保存,也可以在读写器中擦除和改写.读写速度快,操作简单.卡上数据的保护主要依赖于读写器中的软件口令以及向卡上加密写入信息,软件读出时破译.因此这种IC卡安全性稍差.但这种IC卡结构简单,使用方便,成本低,与磁卡相比又有存储容量大, 信息在卡上存储,不需读写器联网的特点,因此也得到广泛的应用. 主要用于安全性要求不高的场合,如电话卡,水电费卡,医疗卡等.
2.逻辑加密卡:这种IC卡中除了封装了上述EEPROM存储器外,还专设有逻辑加密电路,提供了硬件加密手段.因此不但存储量大,而且安全性强,不但可保证卡上存储数据读写安全, 而且能进行用户身份的认证. 由于密码不是在读写器软件中而是存储于IC卡上,所以几乎没有破密的可能性.例如:美国ATMEL1604逻辑加密卡, 卡上设有三级保密功能.总密码用于身份的认证,非法用户三次密码核对错误即可使卡报废. 四个数据存储区可分别存储不同信息,又各和独立的读写密码.可以做到一卡多用, 在不同读写器件中核实相应密码进行某一业务操作,不会影响其它存储区.卡上信息不能随意改写,改写前需先擦除,而擦除需核对擦除需要核对擦除密码. 这样即使是持卡人自己也不能随意更改卡上数据.因此这种逻辑加密卡保密性极强,能自动识别读写器,持卡人和控制操作类型,常用于安全性要求高的场合.
3.CPU卡:这是真正的卡上单片机系统,IC卡片内集成了中央处理器CPU, 程序存储器ROM, 数据存储器EEPROM 和RAM, 一般ROM 中还配有卡上操作系统软件COS(Chip operating system).
IC卡上的微处理器可以执行COS监控程序,接收从读写器送来的命令和数据, 分析命令后控制对存储器的访问.由于这种卡具有智能,读写器对卡的操作要经过卡上COS,所以保密性更强.而且微处理器具有数据加工和处理的能力,可以对读写数据进行逻辑和算术运算,能力很强.这种IC卡存储的数据对外相当于一个-黑盒子-, 保密性极强.目前IC卡上用的微处理器一般为8位CPU,存储容量几十KB上下. 此种智能卡常用于重要场合,作为证件和信用卡.
本讲讨论了几种常见的IC卡的结构和特点.IC卡出现虽然仅短短几年,就已经显示出巨大的优点和广泛的发展前景.随着现代电子技术的飞速发展,随着市场经济发展对IC卡需求的扩大,IC卡的应用将会迅速普及.IC卡的结构性能也会不断改进, 而IC卡的开发与使用也会越来越方便.将大下一讲介绍一个典型的IC卡应用系统,供用户在开发和使用中参考。
第二讲 典型的IC卡应用系统
--------------------------------------------------------------------------------
IC卡由于其高存储量和高保密性,应用领域十分广泛,除覆盖了传统磁卡的全部功能外,还拓展到许多磁卡不能胜任的领域.那么,一个典型的IC 卡应用系统是怎样组成和工作的呢?
一张IC卡从制造到销毁的整个过程为IC卡的生命周期.IC 卡的生命周期可以分为四个阶段.
制造阶段:由IC卡生产企业完成,包括制造集成电路芯片, 将芯片封装到塑料卡基中,装上引出脚.卡片外可印刷图案和说明文字, 对于证件卡还可以负责制持卡人照片.IC卡出厂前还需在芯片中写入生产厂商代码,以便标识不同厂家. 对于远程定货的发行商客户,IC卡中还可写入运输密码,在发行商收到后,核实解密才可使用.此举可防止其他人非法截取空白卡,给发行商造成损失.
个人化阶段:所谓个人化是指IC卡发行商在卡上写入信息,然后发给持卡人的过程.写入的信息包括:具体应用系统中使用的数据,如银行卡上的帐号和存储余额;证件卡上持卡人基本情况等.此外为数据安全所需,还要写入行商代码, 以便与其它应用系统区别,防止持卡人自行修改卡上数据.还需写入持卡人的个人用户密码, 此密码由持卡人保留,每次IC卡读写时由用户核实.从而IC卡即使丢失, 也不会给使用者造成损失.
使用阶段:IC卡个人化后,持卡人可在整个应用系统中的各个终端读写器对IC卡进行读写,即交费和花费卡上存款.使用时需进行身分核实,即键入用户密码.同时, 应用系统还自动核实IC卡上的发行商代码和系统擦除和写入密码. 这些密码保存在系统数据库中,只有核实正确才能对IC卡进行读写操作.
销毁阶段:对于卡片损坏,过期,持卡人变动等情况,应收回,销毁或另发新卡.持卡人若丢失IC卡,也需补发.以上情况都需核实和修改系统数据库内数据.
根据以上分析,一个IC卡应用系统的组织结构大致如图所示.
如图所示,IC卡生产企业成批提供空白卡,并且根据发行者的要求写入发行商代码.作为IC卡应用系统的开发者相当于发行商的角色,需向生产企业订购适用型号的IC卡和读写器.为此应向生产商提供IC卡规格,印刷文字格式,图案和照片,由生产企业按要求制作.目前国内有几十家IC卡生产厂商,年产量达上亿张,IC 卡型号也有几十种,包括存储卡,逻辑加密卡和CPU卡等.各种卡结构相差很大,性能和用途各异,开发者一定要根据应用目标仔细选择和定货.
开发者需要设计并建立IC卡应用系统的中心数据库, 库中保存系统数据及各持卡人的专用数据,这是任一卡基本应用系统必备的.发卡收费站负责发行新卡, 包括按规定格式,对新卡作初始化,分区及写入分区密码,写入原始数据.此站也常用于旧卡添加数据和收费.发卡收费站与中心数据库联结,写卡时同时更新中心数据库. 结算和挂失工作站则用于对日常业务进行结算.同时可以处理IC卡挂失,重失和销毁报废工作.显然也必须与中心库连接,对库中数据进行更新.
系统中最多的是联机工作站和脱机工作站,也就是IC卡用户经常使用的IC 卡读写器,例如在银行的金融服务系统中的ATM机(自动柜员机), 在商业信用卡系统中的POS机(售货收款机).IC卡与磁卡不同, 工作站既可以采用联机方式也可以采用脱机方式工作,这就大大扩大IC卡的应用范围.联机工作站与中心数据库联网到少需要一台微机,用户刷卡时,可随时与中心交换数据.脱机工作站则是简单的读卡机,可以独立工作,刷卡时把数据记录在IC卡上.读写器上也可以记录必要数据,用专用IC 卡收集后,再通过联机工作站输入数据库.
根据IC卡应用系统的这种典型结构,开发者的主要工作包括:(1) 设计和构造应用系统中心数据库,对应用IC卡管理的数据进行分类存储和管理.由于数据库一般建立在小型机或微机网络服务器上,一般在相应环境中开发设计.(2)对IC 卡上数据的存储格式,读写方式,加密和安全保护方式进行规划和设计.这些可借助IC 卡读写器和微机的开发系统来完成.(3)构造IC卡应用环境,建立网络和读写工作站.作为IC卡系统中的发卡站和结算站,可以采用带联机读写器的小型机或微机.系统设计环境可以是WINDOWS下的VB,FOXPOR,ACCESS等软件,一般利用读写器厂家提供的接口函数与数据库软件接口.用户刷卡使用的工作站可以采用PC机加联机读写器组成,需进行用户界面设计,能够提供较友好的用户界面.也可以使用便携式的脱机工作站, 一般由单片机系统组成,带有液晶显示器和小型键盘.这种读写器的用户接口软件, 也需在专用的单片机系统中开发.
因此,一个IC卡应用系统的设计工作除了包括各站点的硬件配置,系统联网, 系统数据库构建和管理软件编程,各工作站用户接口软件的编程,以及IC卡上数据规划与初始分区和数据写入.下一讲我们将讨论常见的IC卡开发环境的组成和使用方法.
第三讲 IC卡开发和制作环境
--------------------------------------------------------------------------------
IC卡是携带应用信息和数据的媒体,空白IC卡是不能立即使用的,必须对IC卡应用系统进行个人化,写入系统IC卡和个人密码,个人专用信息和应用数据. 这就要在银行登记购买金融卡,输入个人密码,姓名等标识,交费并记帐.在IC卡使用过程中也需要核对密码,多次读出和修改卡上数据.如在商场交费时刷卡结帐,在ATM自动取款机取现金等.这些操作都需要一个使用环境,需要专用的IC卡读写器等硬件, 也需要应用系统开发的软件.
一.IC卡读写设备
IC卡读写设备大致可分为两大类:一类为专用读写设备或称脱机读写器.其特点是:充分利用IC卡存储量大,可以独立存储和工作, 不需要和主机相联就可完成数据读写的优点,可与应用设备结合或单独工作.例如:IC卡电表,水表,ATM机, 商场收款机.另一类为通用读写设备,或称联机读写器,是带有单片机和存储器的设备,通过并行或串行口与PC机或应用系统网络相连接. 在运行不同软件时可以读写不同种类的IC卡,组成不同的应用系统.如果配备开发系统软件,可对IC卡作初始规划,数据加密和初始写入,从而构成IC卡应用开发制作环境.在本讲中, 我们重点讨论这种通用开发系统的原理和使用方法.
IC卡读写设备由IC卡卡座,单片机,数据存储器RAM,程序存储器EEPROM,接口电路和外围设备等组成.接口包括与IC卡的通讯接口和与主机的通讯接口.
读写器各部分结构与功能如下:
1.IC卡卡座
IC卡卡座是连接IC卡与读写器的.其功能包括对IC卡供电,提供读写信号和伟送数据.要求提供方便的插拔方式和可靠的接触,并带有带电插拔,过流保护,插卡检测等能力.IC卡和插座的结构尺寸必须符合国际标准化组织(ISO)7816的标准. 对触点数目,位置,信号名称和功能都有明确规定,以保证兼容性.
其中:C1(VCC)为电源;C2(RST)复位信号;C3(CLK)时钟脉冲;C4(RFU) 待用; C5(GND)接地端;C6(VPP)编程电压,用于对EPROM编程;C7( I/O) 数据输入输出端; C8(RFU)待用.
有些系统中IC卡的C4和C8未用,可见卡上仅有六个触点.由于IC卡与我们常见的磁卡,条码卡的动态扫描方式(俗称-刷卡-)不同,是通过卡座触点与IC卡上引脚接触,用电信号静态读写的,因此插拔方式应保证插拔迅速,接触可靠,磨损小.目前IC 卡插拔一般有下述几种形式.
(1)推入-拉出机构:卡的插拔均为手动,因此结构简单.
(2)推入-推入弹出机构:插入为手动,读写后再向内推卡,卡自动弹出.
(3)推入-弹出机构:手动推入,卡由机构锁定,操作后,系统自动释放,将卡弹出.
(4)电动式出入卡机构:卡轻轻插入,卡由机构自动引入,读写后自动送出.
在开发一个IC卡应用系统时,应该根据应用特点来选择卡座类型.如公交售票系统中.要求以快速挺拔,而金融卡则更重视可靠性和寿命.
2.单片机和存储器
读写器中配备单片机和ROM,RAM存储器,构成微机系统,单片机运行ROM中固化的软件,执行与IC卡和上位PC机的通迅规程.控制对IC卡的读写,完成IC 卡与主机间数据的格式转换.如果卡上数据加密加密存储,读写时要执行解密操作.密码,密钥和处理中间结果等参数保存在RAM中.对数据全部加密时,为减轻单片机负担,提高读写速度,常配有硬件密文转换和单元.
3.接口电路和外围设备
专用型和通用型读写器的接口和外围设备有所不同.
由于专用读写器脱机工作, 一般直接配备小型外围设备. 如LCD 液晶显示器或LED发光二极管显示器,用于系统状态监测和输入输出数据显示.配小型16键或24 键键盘,用于数据和密码输入.有些带打印机接口,可外接微型或小型打印机.例如收款机,ATM机可自动打印发货票和清单.由于用于不同领域,专用机外型,体积,功能和操作方式相差很大,对外接口也多为专用接口.
通用读写器一般与PC机或网络联机工作, 常用标准并行或串行口与上位机连接和通讯.常用的是带有25芯或9芯插口的RS232- C 型串行接口, 可直接接到PC 机的COM1或COM2上.此时,可利用主机的显示器作监视器,主机键盘作控制和输入,利用主机打印机输出.此时主机与读写器组成了IC卡应用与开发系统,操作与一般微机相仿,但用户界面将随所配软件而有很大不同.
二.IC卡开发软件及其使用
PC机配备通用读器后,可以对多种IC 卡进行开发和使用. 至于系统功能则要由PC机中运行的软件决定.运行已开发好的应用软件,就组成相应的IC卡开发系统. 在这一环境中,既可以对应用系统中的IC卡进行规划设计,完成卡的个人化进程, 也可用于开发应用管理程序,如医疗数据库系统.下面以一种常见的IC卡开发系统──明华IC卡读写系统为例,说明开发软件的功能和使用方法.该软件由深圳明华公司随读写器一起提供.主要包括一个菜单式IC 卡读写程序, 以及一组可由高级语言调用的IC卡读写函数.
软件安装方法如下:
将系统软盘插入驱动器A:或B:中,键入INSTALL X:然后回车(X:为软件安装的目标路径,一般为C:).此时安装软件运行,并自动在X:盘根目录下建立MWIC\DEMO 子目录,运行DEMO.EXE文件即可进入IC卡开发系统主菜单窗口,DEMO程序运行中会自动识别与读写器连接的串行口,自动识别读写器中的IC 卡型号,相应参数显示在屏幕上.然后程序检测IC卡,若卡参数正常,则光亮条定于读卡操作项上,回车即可读卡.
各行菜单列出了读写器软件基本功能,用鼠标加以选择, 单击即可产生下拉菜单或直接执行相应功能.主要功能解释如下:
卡型选择:通用读写器适于多种卡型.选中此功能产生下拉菜单, 可执行自动检测卡型,IC卡自动弹出及手动选择卡型三个子功能.本读写器适用于美国ATMEL 公司的AT系列和德国西门子公司的SEL系列各种IC卡读写.
选通迅口:根据选择的卡型,可将IC卡上可读数据读出, 并以十六进制形式显示在屏幕上. 多存储区的卡上, 不同区内容以不同颜色显示. 加密区密码和数据显示FFH,表示不能读出.
擦除操作:在改写卡上数据时,需先将待写区域内容擦除. 选中此功能可以输入擦除密码,核对正确,即可擦除指定存储区数据.
写卡操作:选中此功能,移动插入点到写入位置,键入写入数据后,按F5键, 即可写入.对写保护数据,用空格键切换,决定是否写入写保护位.<ESC> 键可退出写入操作.
核对密码:对加有密码保护的IC卡,输入密码后,屏幕中显示错误计数的当前值,右下方显示输入密码是否正确.密码输入出错一次,次数减1, 计数值为零则此卡作废.
熔断操作:用于熔断带熔丝的IC卡上的熔丝.熔断前表示该卡未个人化, 卡上发行商密码可读,可改写,即可用于不同系统.熔断后密码不可改写,不可读出, 表示已个人化.
利用上述功能,我们可以对多种类型的IC存储卡,逻辑加密卡, 多分区卡进行分区,数据规划,加密,可读出,写入,修改卡上数据了.当然, 这时仅举一种开发软件及读写器实例.其它读写器和软件功能虽有差异,但基本功能和操作方法是大同小异的.可参考相应使用手册.
除此之外,在一个实际的IC卡应用系统中,上述功能应包含在应用软件中. 即软件程序员应该能在应用程序中使用高级语言对IC卡进行上述操作. 实现方法是: 在IC卡开发系统中提供了适于不同语言的调用函数, 用户可以在用户程序中通过函数调用来实现对IC卡操作的各种功能. 常见的函数有适于FOXPRO FOR DOS, FOXPROFOR WINDOWS,适用于VB和VC的等.
在IC卡应用系统中,IC 卡上数据常需与管理系统中的数据库进行数据交换. 用IC卡上数据更新数据库内容,或以数据库内容修改卡上数据.因此开发一个IC卡应用系统,除了要对IC卡作规划,进行初始数据写入,还需设计应用系统的程序和数据库,即要构造上述一些高级语言程序开发环境.
综上所述,开发一个IC卡应用系统所需要的软硬件环境包括:PC机或局域网络工作站,连接通用IC卡读写器;与读写器配套的IC卡读写控制软件, 设计应用程序的高级程序开发环境.有了这些条件,下一讲我们将讨论IC卡数据存储结构和对IC卡编程使用的方法.
第四讲 IC卡的编程和使用
--------------------------------------------------------------------------------
IC卡与其它卡片的区别主要是:IC 卡能在卡上存储器中安全可靠地存储大量有用信息,并且可以对数据提供多级安全保密措施.因此,为设计一个好的IC 卡应用系统,必须了解IC卡的数据结构特点.掌握IC卡的编程和读写方法.
从使用角度来看,不管是普通存储卡,逻辑加密卡,或智能CPU卡,卡上必定有:用于与其它应用系统相区别的发行商代码, 用于与本系统中其他用户相区别的个人代码,用于控制对卡上数据修改的擦除密码,以及用于存放数据的存储区.由于IC 卡平时不与电源相接,要保证卡上存储的数据不会丢失,只能使用只读存储器即ROM 型存储器.因此卡上数据可以长期保存,一般数据可存放100年.又由于IC卡上数据在使用中要经常修改,故一般应该使用电可擦除可编程只读存储器,即EEPROM.一般IC 卡数据改写次数大于100000次.
目前的各种IC卡应用系统中使用的IC卡主要是逻辑加密型卡. 这种卡带有多级密码保护,比普通存储卡安全性能强得多;同时又比智能CPU卡结构简单,不需要复杂的密码计算过程,而且结构简单,编程使用方便.本讲中以美国ATMEL公司的逻辑加密卡AT88SC1604为例,来说明对IC卡应用系统中的IC 卡发行软件和用户应用软件的编程方法,以及IC卡写入过程.
一.逻辑存储卡的数据结构和编程特性
AT88SC1604卡具有一个公用区和四个应用数据区.其数据结构如附表所示.公用区内有厂商代码,发行商代码,总密码,密码计数器等等.我们可以规划和利用这些数据区对全卡基本特性进行控制.应用区共四个,第个分区有自己的分区密码, 擦除密码,密码计数器和读写控制位,用于对本区内数据的写入,读出和修改进行控制.应用区其余部分是存储数据的存储单元.1604卡的第一分区存储容量为9K位,其它三个分区数据存储容量为2K位.连同公用区总存储量为16K位.
厂商代码又叫制造商代码,是由IC卡制造商在卡出厂时写入.一般对某一发行商提供的一批卡提供同一代码,以便与其它厂商的卡相区别. 写入时将相应保护熔丝1熔断,此时IC卡开发者可以读出厂商代码,判断其生产厂商,但不能修改它.
发行商代码:用于IC卡个人化,发卡时由系统软件写入, 用来表明此卡属于哪一应用系统.例如:工商行发行的金融IC卡写入的发行商代码,表明了所属的金融系统.此卡使用时,ATM机会自动核实这一代码.如果不正确,说明这不是本系统的卡,不能使用.发行商代码受熔丝2控制,熔断前,此密码可修改,熔断熔丝后.此密码可读出, 可核实,但不能修改.
IC卡上的熔丝是IC卡个人化标记.除控制发行商代码外,也控制整个卡上数据的读写.熔丝熔断前,卡上数据读写受总密码SC和读写控制位控制, 各分区密码不起作用,此时可用IC卡读写器对卡进行初始数据的规划和写入.熔丝熔断后, 卡发给用户个人,此时各分区数据操作不但受总密码SC控制,而且受各分区密码和擦除密码和控制.
总密码SC一般用作用户密码,应通过IC卡发行软件中提供的用户环境,由用户自己设置并且写到卡上.此密码一旦写入,不可读出也不保留在系统中,只能核对.用户在以后使用IC卡时,可能通过由应用程序提供的密码核对功能界面,由用户本人键入加以核对.密码输入正确,说明是合法用户,可以对卡上数据进行读写.密码输入错误时,密码计数器SCAC减1.此外,在熔丝熔断之前,总密码还控制各分区密码的读写.
密码计数器SCAC用于统计用户密码核对次数.输入正确密码时,计数器清零( 即8位全置-1-).每输错一次,计数器一位变为-0-,若八次输入错误,计数器各位全变为-0-时,则此卡已作废.
擦除密码控制对存储器中已写数据的擦除.由于EEPROM 在写入数据时只能写入到空白区(即各位为-1-),对已写有数据的存储区只能先探险,后写入.每次要擦除一行信息.擦除密码在卡发行时写入,由应用系统控制,只能核实,不能读出以防止非法破坏卡上已有的数据.
各分区有自己的分区密码,以便实现一卡多用.分区密码和分区擦除密码控制本区数据的读,写,擦操作.例如用一个1604卡兼工作证,医疗证,工资卡和就餐卡.在不同场合使用此卡时读写器分别核实各分区密码,仅操作本区数据,而不影响其它分区.
存储分区
位地址
位数
字节地址
字节数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -