新技术趋势下的多应用智能卡“一卡通”
文章出处:http://www.nexussmartsolutions.com 作者:语馨 收编 人气: 发表时间:2011年09月23日
提起“一卡通”,人们可能想到银行的“一卡通”,某大学的“校园一卡通”,或是市政交通“一卡通”。其实真正意义上的“一卡通”,应充分参与到社会公共事业中来。有这样一张卡,可以不带驾照就上路驾车;可以不挂工作牌出入公司;甚至连身份证都不用带,就可以像乘坐公交车一样便利地搭乘飞机;学生带着‘一卡通’去上学,在校门口的银联机上轻轻一刷,一条‘我安全到达学校’的短信息就会发到父母的手机上。”可见,“一卡通”业务具有十分巨大的想象空间。
传统的文件型IC卡多是通过记录“一卡通”所涉及到的所有应用相关信息来实现“以卡多用”。mifare应用目录(MAD)方式是一卡通方案的传统解决之道,它将不同的应用以文件的形式有机组合在一起,只要把这些分别代表不同用途的文件通过读写器写入同一张卡中,就可以实现一张卡片多种用途(即一卡通)。对于不同的用途(例如门禁、停车场管理)以及同一种用途在不同的地方使用(例如各业主的门禁考勤),采用不同的文件名进行区分,例如:同是作为门禁,甲、乙、丙三个业主分别采用三个各不相同的文件名,公用地方的门禁则采用另外一个文件名。
用作不同用途或者同一用途但不同场所使用的读写设备上存放着对相应应用文件(代表相应用途)的进行访问的主密钥和权限密钥,这些设备只能对相应的应用文件进行访问和处理(例如门禁记录,食堂售饭扣款和交易记录),不能对其它应用文件进行访问和处理,即一台非接触式IC卡读写器只能完成卡片众多应用中的一个应用。
在文件型IC卡的“一卡通”解决方案中,所有的卡片内容相同,都记录了卡片的全部用途,这些内容在发卡时确定下来,发卡后不能进行变更。
这种解决方案存在以下问题:
1、 成本问题:为每一种应用服务发行一张卡片,不仅使持卡者感到使用起来不够方便,也积累了对持卡者使用服务的成本。
2、 硬件选型及开发问题:传统IC卡的应用开发是在专有环境下封闭、繁琐的过程。由于上述“一卡多用”的部分解决方案在硬件上,这就造成了对卡系统集成商在硬件选型上的约束。
3、 安全性问题:在一张传统的文件型卡上存放多个应用的相关信息,由于没有特殊的机制保证其内容不被其它应用或其它应用提供者的写入动作所监听或篡改,具有一定的安全隐患。所以当前的“一卡通” 都是支持同一应用领域之内的、基于相同安全策略的多种用途,而不能实现对跨行业多应用的支持。
4、 定制化需求与服务升级问题:文件型卡由于不支持安装机制,应用在卡片发行时就固定下来,所有发行卡片的内容都相同,在卡片使用的过程中,卡上的应用服务不能做相应的变更或升级,服务系统的升级将导致卡片的废弃。持卡人在卡片使用的过程中不能根据自己的需求定制服务。
传统智能卡应用最广泛的模式是在一个封闭的方案中为客户提供单一功能的应用,这很大地限制了客户可获得服务的多样性和潜在的增值服务空间;单一功能应用的局限性成为在同一张卡上提供多功能应用联盟的驱动力。JavaCard技术和全球平台标准应运而生。
随着新技术的发展,未来“一卡通”的解决方案是:基于一个开放的多应用智能卡操作系统整合多种应用服务。其中多应用智能卡操作系统是解决方案的基石,它由符合JavaCard标准的底层运行时环境和上层符合GlobalPlatform规范的多应用卡平台组成。基于这样的多应用智能卡操作系统的上层应用开发是独立的、开放的、可移植和易于操作的。本篇将着重介绍基于Java Card技术的多应用智能卡COS解决方案。
JavaCard是加利福尼亚州的Integrity Arts公司开发的,后被Sun公司收购。JavaCard的诞生使虚拟机技术得以应用到IC卡中。从而打破了传统IC卡封闭开发模式,使卡上系统具有可移植特征,卡上应用可以“write once, run anywhere”。Java Card技术因提供应用防火墙和应用安装机制等,从安全上解决了一卡多用和复用的问题。
GlobalPlatform是一个致力于制定智能卡基础设施标准规范的组织,它成立于1999年,其目标是“制订、维护并推动标准,以构建一个开放、互通的智能卡、设备及系统的基础架构,从而简化并加速行业间智能卡应用的开发、推广和管理”。GlobalPlatform规范定义了一套完整的端到端的智能卡应用技术体系。它包括对卡、对卡读写设备、对卡应用系统的定义。
图1 多应用智能卡操作系统
1. 一个安全的运行时环境
这个运行时环境包含了硬件无关的应用编程接口,以便支持卡内应用开发的可移植性,GP规范并没有指定某个特定的运行时环境,我们采用Java Card运行时环境,这包括以下内容:
虚拟机(Virtual Machine):JCVM是“Java卡虚拟机”的简称,它负责Java字节码的解析和执行,一些安全管理工作也是JCVM来做的。JCVM是java虚拟机的一个子集,是精简了的Java虚拟机,主要是为了满足IC卡这样的硬件环境。
运行环境(Runtime Environment):JCRE是“Java卡运行时环境”的简称,它是系统的核心部分,Java卡标准中所描述的所有逻辑都是在JCRE中体现出来的。安装器是JCRE中的重要组成部分,应用的下载、安装、移除都是通过卡上的应用安装器来进行的。
核心应用接口The core APIs (the 'framework'):JC API是“Java卡应用编程接口”的简称,在Java卡标准中定义了一系列可供卡上应用使用的公共接口,这样就保证了卡上应用的可移植性,为了保证卡上应用的正常运行就需要对这些API进行实现。
2. 在卡中扮演集中式管理员的角色的Card Manager
图2 GP卡结构
CM(card manager)是GP卡里的重要组件,它在GP卡里扮演了集中式管理员的角色,其主要职责是在卡上执行卡发行者的职责。总的来说,CM应该由以下三部分构成:
GlogalPlatform的运行时环境 (OPEN):GlobalPlatform环境(以下简称OPEN)的主要职责是为应用提供API,这些API的功能包括执行命令的分发,完成应用的选择,逻辑通道的管理(可选功能)和卡内容的管理。如果运行时环境没有提供这些功能,或在某种程度上以不符合GP规范的方式提供了这些功能,这时就需要OPEN来实现这些功能。
发行者安全域 (ISD):卡发行者安全域在卡上以卡发行者的身份存在,它的主要职责是在卡上执行卡发行者的职责。有对发行者或其应用提供者提供的应用进行装载、安装、删除的功能。
对卡持有者的校验方法 (CVM):提供一些对持卡人进行校验的服务。CVM为提供一种可能卡上所有应用都要使用的校验持卡人的机制。本规范里给出了一个通过全局PIN来校验持卡人的方式。
3. 应用提供者安全域(SD)
应用提供者安全域(SD)是一种特殊的应用程序,它的主要责任是管理密钥和提供这些密钥相关的加密操作,这些密钥独立于发行者安全域(ISD),不受其控制。通过创建应用提供者安全域来保证密钥和卡发行者以及多应用提供者之间的完全分离。
4. GP API实现
GP API是“GP应用编程接口”的简称。它用于给GP卡上的应用提供一些服务。它是GP卡上应用能够正常运行的保证。
在多应用智能卡上实现“一卡通”是一件水到渠成的事情,不仅有效解决了传统的文件型卡不能支持跨行业多应用的问题,而且通过支持发卡后应用下载真正使“一卡通”具有可扩展和定制化的应用特征。今天,多应用智能卡正在世界越来越多的国家得以推广应用。随着金融EMV迁移计划(金融磁卡向IC卡过渡)的全球推广和移动通信3G的到来,多应用智能卡的需求在未来几年中将呈井喷之势。此外,这种新技术在社保、交通、电子政务等领域也有广泛的应用前景。多应用卡替代单一应用卡已成为智能卡发展的必然趋势,全球Java Card的出卡量已经达到14.5亿片。
与国际趋势相同,在中国,IC卡未来几年的主要市场集中在金融,移动通信领域,并且IC卡应用融合(即一卡多用)的需求非常突出,这体现在以下几个方面:
1. 2006年起生效的风险转移政策将使EMV迁移更具紧迫性;2008年北京奥运会、2010年上海世博会对具有金融支付功能的、附加了多种便利性增值服务的IC卡有大量需求;
2. 未来的3G卡片平台,必须能够应付各种智能要求,包括遵循EMV规范的金融应用、卡片漫游及无线通信、数字签名、保存电子版权证书以及忠诚积分、公共交通的支付等应用,这将大大提高对手机SIM卡的智能要求;
3. 在智能卡领域,银行卡、电信卡、交通卡等各类卡片功能的相互交叉和融合正成为智能卡发展的一大趋势。而最突出的,莫过于银行卡与其他各行业卡的绑定及合作应用。移动支付和社保卡与银行卡绑定项目是最主要的体现;
基于多应用智能卡技术,我们可以设想未来的“一卡通”系统是基于开放网络的、支持多终端的、开放的多应用智能卡服务体系。通过这样的“一卡通”系统所搭建起来的平台,发卡商可以在网络环境下进行发卡、注销、挂失等卡生命周期管理;服务供应商可直接将待下载的智能卡应用服务放在网络的应用服务器上;持卡用户通过网络直接向服务供应商请求服务下载,并通过连接在互联网上的终端将服务下载到智能卡上;注册认证中心负责对服务提供商、发卡商、卡应用和卡进行认证并颁发数字证书,确保网上行为的合法性。