一、当前IC卡应用存在的问题 IC卡在国内的应用已有十多年的历史,在解决查表收费及提高公用事业各公司自动化管理水平方面起到了积极的推动作用。
目前,IC卡使用中存在下面的问题:
IC卡主要为逻辑加密卡,逻辑加密卡有密码保护,具有一定的安全性,但其缺点是: 1)逻辑加密卡种类繁多,没有统一的规范,兼容性差,可扩展性差。 2)对逻辑加密卡的改写操作需要核对密码,核对密码时,卡密码是以明文的方式出现在数据线上的,容易被外界截获,使卡的安全性下降。
从引入竞争,提供优质服务的角度来说,各公司应至少选用两家的IC卡表。但是,通常各个IC表厂家使用的IC卡、卡内数据结构及销售管理系统各不相同,这会造成日常管理混乱,重复设置销售网点。因此,各公用事业公司在使用IC卡表之前应统一规划好卡片结构,考虑好IC卡销售管理系统的兼容问题,这可以摆脱日后对表厂的依赖,有更大的主动性,更多的选择余地。
IC卡表除了抗攻击性问题的物理安全性之外,还有系统的安全性问题,除加强日常的系统维护与管理外,在设计之初就要全面考虑系统的安全性问题。
现在,许多城市都在开展“一卡通”、“一卡多用”等工作,希望一张IC卡可以在不同IC卡表之间通用,以及水、电、气、暖、公交、电信等等都可以互相通用,真正实现“一卡通”。
其实,上述问题的关键就是IC卡的选用问题,选好IC卡,问题迎刃而解!
二、IC卡的应用
IC卡又称集成电路卡,它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。IC卡从芯片结构上可以分为存储卡、逻辑加密卡、CPU卡(又称IC智能卡)。
1、IC卡在国内应用情况
在我国,为了促进集成电路(IC)卡在国内应用的规范化,保证国内的应用在国际上的兼容性、先进性、独立性,中国人民银行从1997年12月18日以来,先后颁发了《中国金融集成电路(IC)卡规范》和《中国金融集成电路(IC)卡应用规范》、《中国金融集成电路(IC)卡终端规范》、《PSAM卡规范》等一系列规范,详细规定了智能CPU卡内部的数据文件格式、指令集和发卡流程,并且设立了检测中心对IC卡和终端进行严格检测,这些行动一方面规范了IC卡的应用,同时对于IC卡在金融和非金融领域的标准化应用给予了极大的推动。IC卡已在许多非银行领域得到广泛的应用,如:电信、组织机构代码、交通、路桥自动收费、税务、工商管理、社会保障、驾驶员违章管理、加油、第二代身份证、城市公用事业(如水、电、水);其它有校园卡、门禁卡、各种优惠卡等。
2、EMV迁移
EMV迁移即银行卡按EMV标准由磁条卡向智能IC卡(智能CPU卡)转移,其目的是为了有效防范诸如跨国制作和使用假信用卡、信用卡欺诈等各种高科技手段的金融智能犯罪。EMV标准,即Europay、MASTER-CARD(万事达)、VISA(维萨)三大国际信用卡组织借用其首字母合称EMV而设立的智能卡金融支付终端应用标准。从2005年1月起在欧洲,借记卡、贷记卡的责任风险将依据国际卡组织最新的EMV标准规定划分,将伪卡风险损失由发卡行、收单行中未实施EMV迁移的一方承担。
目前,EMV迁移已对卡欺诈产生影响。在英国,卡欺诈预期至2010年将达到12亿欧元,通过EMV迁移有望保持在7亿欧元的水平,因而英国银行业投入10亿欧元启动EMV。英国2005上半年伪卡欺诈额下降31%,丢失与被盗卡欺诈额下降27%,2005年较2004年,卡的欺诈降低了35%,2006年较2005年降低了43%。另外,至2004年底,台湾地区已发行Visa品牌EMV卡300万张。Visa亚太的数字显示,目前台湾伪造信用卡欺诈率降至4年来最低的0.04%,2000年底这一数字高达0.34%,是亚太区整体伪卡率的3倍。EMV技术在对抗卡的欺诈方面发挥了很大的作用。
由此可见,智能CPU卡非常适合于对数据安全性及可靠性要求十分敏感的应用。目前,金融领域的信用卡、电信领域的SIM卡(移动电话身份识别卡)等已成为CPU卡应用的几个最大领域。此外,由CPU卡支持并代表的一卡多用(多功能卡)概念越来越受到人们的重视。
3、在IC卡表中应用的IC卡
在IC卡表中应用的IC卡主要经历了三个过程:存储卡、逻辑加密卡、智能CPU卡。 早期的IC卡表采用存储卡,存储卡本身的安全性差,可以随意复制,很快就被逻辑加密卡取代。 逻辑加密卡有密码保护,但抗攻击性稍差,密码相对来说容易破解。 智能CPU卡有更好的安全性、规范性、兼容性和可扩展性。CPU卡的特点:
1)先进性。CPU卡可以作为银行的金融卡使用,代表当前IC卡应用的最高安全等级,正在成为IC卡应用中的主流产品。 2)规范性。支持符合ISO7816-3标准的T=0、T=1通讯协议,符合《中国金融集成电路(IC)卡规范》、《中国金融集成电路(IC)卡应用规范》,支持符合银行规范的电子钱包、电子存折功能。 3)兼容性。由于有中国人民银行的统一规范及严格检测,CPU卡具有很好的兼容性。 4)安全性。芯片和COS的安全技术为CPU卡提供了双重的安全保证。支持DES、TripleDES等加密算法,支持线路加密、线路保密功能,防止通信数据被非法窃取或篡改,使用过程密钥实现加密、解密。 5)可扩展性。卡片支持多种容量选择,如2K、4K、8K、16K、32K字节的E2PROM空间。CPU卡从卡结构到卡容量可以很容易扩展到多应用,可以与银行联合发,实现真正意义上的一卡多用。 6)可实现脱机操作。自带操作系统的CPU卡可完成合法性检查,能存储交易的详细数据,对计算机网络系统要求较低,不必为每一笔交易与中央计算机/数据库进行通信,提高了交易速度,降低了处理费用。 三、CPU卡的加密算法国产化
目前,CPU加密算法主要掌握在外国人手中,为打破这种被垄断的不正常格局,住房和城乡建设部IC卡应用服务中心近日表示,支持国产算法的CPU卡研发工作即将启动。
随着我国IC卡技术应用的持续快速发展,IC卡系统的安全性凸显重要和紧迫。根据国家对IC卡系统安全的要求,推进具有我国自主密码技术在城市公用事业IC卡领域的应用,经住房和城乡建设部相关主管部门批准,决定在城市公用事业CPU卡芯片、加密机、POS智能刷卡支付终端及相关产品中开展国产算法应用的技术研究和开发工作,为今后城市公用事业IC卡系统应用符合国家密码管理局的国产算法奠定基础。 为推进该项工作的实施,住房和城乡建设部IC卡应用服务中心于7月30日在京组织召开了“国产算法在城市公用事业IC卡系统中应用”的工作会议。本次会议邀请了具有国家密码管理局相关资质的部分芯片及COS企业参与,明确了研发支持国产算法的CPU卡芯片和其操作系统须遵循《建设事业非接触式CPU卡芯片技术要求》、《建设事业CPU卡操作系统技术要求》等相关国家行业标准,同时应支持3DES和SM1算法,以保障IC卡系统的兼容性。会上,住房和城乡建设部IC卡应用服务中心总工程师王辉要求各相关单位应提高认识、团结协作,充分发挥自身技术实力,按照工作要求和计划尽快研发出适应行业应用的新一代CPU卡芯片。 目前,针对于该项工作,相关单位已开始进行技术储备和方案讨论等准备工作。相信不久的将来,支持国产算法的CPU卡将成为行业的主流产品,并将受到广大应用单位的青睐。 四、CPU卡发卡程序设计过程中的注意事项
构建IC卡应用系统过程中,如何定义卡中的数据信息(相对逻辑加密卡)或卡中的应用类型及其数据信息(相对CPU卡)及将数据信息写入卡中,以便应用于系统中进行交易是一个重要环节。这一环节在业界通常称为卡片个人化。卡片个人化既可以在专门的设备机器上进行,以便于对大批量的卡片进行个人化;也可以在PC机上通过连接IC卡读写器进行,以便于对小批量的卡片进行个化。不管硬件设备如何,都必须设计一套程序软件来进行个人化。这个程序软件通常称为发卡程序。本文讨论CPU卡发卡程序设计过程中将会遇到的关键技术问题及其解决方法。 CPU卡发卡大体可分为三个组成部分:(1)卡结构建立;(2)密钥写入;(3)个人化数据写入。当然,为确保正确发卡,程序设计过程中最好是采用一边建立卡结构,一边写入密钥和个人化数据。
4.1发卡前的准备工作 一般地,卡片供应商提供卡片时,已经对卡片进行过初始化(主要用于对卡片进行测试),亦即卡片上已经建立了主文件(MF)及主密钥文件(MF下的Keyfile文件),主密钥文件中也已写入了初始卡片主控密钥。 在对CPU卡建立特定的卡结构及写入密钥和数据之前,程序设计中的第一步应该对卡片进行外部认证。外部认证所使用的密钥正是初始卡片主控密钥。 当完成外部认证后,接下来最好是擦除卡片上已有的卡片结构,然后再开始重新建立卡片结构。 许多发卡程序在设计过程中,没有考虑到擦除卡片上已有的卡片结构,而是在完成外部认证后直接改写原有卡片的主密钥文件的卡片主控密钥。常见问题是由于原有主密钥文件创建时的空间大小不够,而发卡程序试图写入除卡片主控密钥外还想写入卡片维护密钥时,势必造成写入空间不够而导致写入不成功。 4.2密钥文件的建立与密钥值的写入 为了独立地管理一张卡上不同应用之间的安全问题,CPU卡中的每一个应用放在一个单独的ADF中。各个ADF及其下属各文件数据的访问(包括改写、读取)只能应用该ADF下的密钥文件中的密钥数值。为讨论方便,此处假设只有一个ADF。
用户卡结构中主要存在以下两个密钥文件及相应的几个密钥:
(1)MF下的密钥文件(简称KMF),其装载的密钥是卡片主控密钥(简称CCK,以下同); (2)ADF下的密钥文件(简称KADF),其装载的密钥有应用主控密钥(简称ACK,以下同),应用维护密钥(简称AMK),及其它应用密钥; (3)其它密钥,如口令密钥PIN,口令解锁密钥,DES运算密钥等等。 4.2.1密钥文件的创建
各密钥文件在建立时必须慎重考虑以下两个要素: (1)文件大小的分配; (2)有关权限和密钥使用后的后续状态值的规定。 密钥文件的大小分配取决于要装载的密钥个数。每个密钥均为一条可变长的记录,每条记录的长度为密钥数据长度加7。以此可以计算密钥文件的大小。在发卡程序设计过程中,常常会出现因为密钥文件的大小分配不够而造成后面的密钥无法写入。
密钥文件建立过程中的有关权限和密钥使用后的后续状态值的规定一方面起到对密钥文件本身的安全维护作用,另一方面也将决定对卡片操作的流程。显然这个要素至关重要。 4.2.2各密钥值的写入 关于密钥值的写入,关键问题是要弄清楚该密钥要求以何种形式写入。通常有以下几种形式: (1)以明文形式写入(常见的如口令密钥PIN的写入); (2)以带线路保护的形式写入(要求计算MAC); (3)以对密钥值进行加密后的密文形式写入(要求计算DES或3DES); (4)以对密钥值进行加密并带线路保护的形式写入(要求计算DES&MAC)。 如果密钥值的写入要求加密并带线路保护,则密钥值写入时须对该密钥值进行DES&MAC计算后以密文形式写入(当然卡片操作系统内部会自动将其解释成明文),带线路保护的目的是防止密钥值在写入的过程中被劫取。如果不要求带线路保护写入,可直接以明文方式写入。 在发卡程序设计过程中,尤其要注意卡片主控密钥、应用主控密钥、应用维护密钥及其它密钥之间的关系及其写入要求。 卡片主控密钥与应用主控密钥 卡片主控密钥是对整个卡片的访问起控制作用的密钥,由卡片生产商写入,由发卡方替换为发卡方的卡片主控密钥。发卡程序设计过程中,在对卡片进行任何操作之前,必须使用卡片主控密钥作外部认证, 应用主控密钥是应用的控制密钥,在卡片主控密钥控制下写入。一般地,发卡方替换卡片的主控密钥之后,为验证替换工作正确,再用新的卡片主控密钥作一次外部认证。
|