一种跨行业多应用智能卡系统模型及实现
文章出处:http://www.nexussmartsolutions.com 作者:董威 杨义先 人气: 发表时间:2011年09月22日
[文章内容简介]:在分析单应用智能卡和多应用智能卡关键技术的基础上,提出了一种跨行业多应用智能卡系统模型,对模型各模块关键技术及模型安全性进行了研究,采用Java Card技术对模型予以实现,并对该实现进行了评估,讨论了下一步的研究重点。
智能卡可以安全地存储个人私密信息并便于携带,逐渐成为身份鉴别和提供认证服务的关键模块,现被广泛应用于不同领域,被称为信息时代的通行证。
随着微电子技术的发展,智能卡硬件资源越来越丰富,使智能卡上实现通用操作系统、开发复杂应用以及存储更多行业数据成为可能。同时,利用智能卡技术提供服务或进行增值业务推广的行业逐渐增多,使跨行业多应用智能卡技术成为智能卡技术的发展方向。
通过研究智能卡工作原理和特点,分析了单应用卡的缺点,提出了一个支持跨行业多应用的智能卡软件系统模型,分析了模型中各模块关键技术及模型安全性,采用Java Card技术进行了实现,证明模型的可行性,最后讨论了下一步的研究方向。
1单应用智能卡技术分析
1.1智能卡技术分析
ISO78l6系列规范对智能卡(Smart Card)的物理电气特性、文件系统结构、通信协议进行了规定。智能卡不能单独提供服务,必须配合终端(如带卡读写器的电脑、手机等)工作,智能卡和终端之间采用应用协议数据单元(Application Protocol Data Unit,APDU)进行通信。其中智能卡主要负责安全的数据访问和数据存储。对智能卡中敏感数据的操作由卡上的CPU完成,不需传出卡外,只是由终端发出命令,卡内部进行处理之后再给出相应的应答数据并表明处理过程成功或失败,保证了信息的安全保密性。
智能卡以文件系统的形式组织管理数据。文件系统的逻辑结构如图1所示。
文件系统整体结构为树状目录结构,其中目录文件MF(Master File)是所有文件的根节点,MF包含其它目录文件DF(Dedicated File)和数据文件EF(Elementary File)。目录文件DF可包含其它目录文件和数据文件,不能用来存储数据,所有的数据都存储在不同目录下的数据文件EF中,数据文件EF不能作为其它文件的目录,是末节点。
通过设置文件访问操作的安全机制,可以实现数据的安全访问。安全机制包括基于PIN 码(Personal Identification Number)的身份鉴别、基于密钥的身份鉴别、数据冗余校验和数据加密。PIN 码和密钥由特殊的数据文件保存,用于进行文件访问时的安全校验。外部实体必须具有特殊的权限,才允许读取和修改密钥和密码文件数据。
根据分析,智能卡应用主要体现为按照终端的APDU命令在智能卡上执行相应的处理逻辑,用来完成安全认证、对卡上数据的读写操作以及进行操作的安全检查等功能。
1.2单应用卡技术分析
单应用智能卡是只能与同一类终端配合、提供单一行业服务的智能卡。单应用智能卡的应用由单个服务提供商开发,只有针对特定APDU命令的处理逻辑,只有一套文件系统来维护数据,用同一套PIN码和密钥保证文件数据的安全读写。单应用卡的应用和卡操作系统往往绑定在一起,优点是结构紧凑、系统简单,但卡的升级和增加APDU处理逻辑困难。
由于当前应用于各行业的智能卡主要是单应用智能卡,用户需要使用多张智能卡才能得到不同行业的智能卡服务。由此产生如下问题:
(1)用户需保管多张智能卡,增加了用户携带和管理卡的难度。
(2)多张卡往往会保存很多相同的数据信息,造成数据的重复存储。
(3)单张智能卡数据存储空间和数据处理能力未能得到充分利用,造成硬件资源的浪费。
(4)不同行业在开发自己服务的时候,需要各自开发操作系统和数据服务,造成操作系统、同类指令处理逻 的重复开发。
(5)发卡后,无法动态添加应用,尤其是不同行业的应用添加困难、增值服务开发部署的困难。
(6)不同行业约定的具体APDU命令指令内容不同,不利于终端的标准化和终端多应用的实现。多应用智能卡技术可以充分利用智能卡的硬件资源,减少持卡人携卡数量,降低卡的使用成本。
2多应用智能卡模型
当前智能卡提供的服务主要可分为3类:
(1)安全的个人数据存储:如身份证卡。
(2)认证:如SIM卡。
(3)电子支付:如信用卡。
通过合理的系统设计,完全可以将以上的服务集成到同一张卡上。
2.1多应用技术问题分析
多应用智能卡技术将多个应用提供商提供的应用发布在一张智能卡上而互不影响,在为用户提供多种服务的同时,减少数据冗余,降低使用成本,提高新应用发布效互苤,为用户携带、使用和管理智能卡提供便利。一张卡上开发多个应用尤其是不同行业间的应用,核心问题如下:
(1)不同的应用之IhI~1何做到互不干扰,防止应用问恶意访问。包括实现数据文件相互隔离和APDU命令处理逻辑隔离。
(2)如何在保证安全的基础上实现基本数据和处理逻辑的共享。
(3)终端如何识别和启动智能卡上的不同应用。
(4)不同应用如何认证卡外实体(如终端、持卡人.卡工作所在的网络等)。卡外实体如何认证卡。
(5)如何为不同的应用与终端建立安全通信通道。
(6)如何添加和删除应用。
(7)发卡商和服务提供商如何分别管理控制自己的卡上应用。
针对上述问题,下文给出了一个多应用智能卡软件系统模型。
2.2模型整体结构
模型的设计原则遵从ISO7816相关规范,以便提高系统行业兼容性。系统结构如图2所示。
(1)卡操作系统模块:卡操作系统主要负责存储器的管理、I/0通信等硬件相关的功能,同时完成对上层程序的管理。卡操作系统为上层程序提供标准API(Application Programm—ing Interface),上层的程序不需要直接操作硬件,实现应用和硬件的隔离、应用和系统的分离。
(2)多文件系统模块:目前的智能卡主要以文件系统的逻辑形式维护数据,基于兼容性考虑,本模型的数据存储采用文件系统结构,并将单文件系统改造为多文件系统。多文件系统逻辑结构由不同行业的专有文件系统和基本文件系统组成,每个文件系统的结构与单文件系统的结构相同。不同文件系统有各自的根节点,互不隶属。基本文件系统主要包含卡的公共信息、基本文件系统自身的PIN 码和密钥,同时保存卡上应用的注册信息。注册信息在创建应用时写入基本文件系统的注册文件,用来为终端提供应用选择的入口。行业专有文件系统保存各自的行业数据、密钥和PIN 码信息。为了安全,多文件系统需要满足:所有的文件系统均可以共享基本文件系统内容,但不同的文件系统严格透明,不能相互访问;文件系统的安全访问策略一致,但PIN码和密钥独立。
(3)基本处理逻辑模块:基于文件系统结构一致性,将文件系统访问APDU命令接口规范化,进而实现统一的基本处理逻辑模块。基本处理逻辑模块由3个子模块组成。其中文件服务子模块完成不同行业通过标准APDU命令申请的文件服务。PIN 管理逻辑子模块提供基本的PIN服务,完成基于密码的用户身份认证逻辑。密码服务逻辑子模块主要负责密钥管理、基本加密算法服务、基于密码的基本认证协议(外部实体认证卡内应用,卡内应用认证卡外实体)和通信信道数据加密服务。PIN 码管理和密码服务子模块是智能卡安全的核心。密码算法的选取需要考虑智能卡的硬件资源限制。不同应用共享文件处理逻辑模块不会降低系统的安全性,系统安全性依赖于文件系统的独立和PIN密码、密钥的独立保密性,也就是安全不取决于处理流程的保密,而是取决于数据的独立和密码的保密性。
(4)行业专有处理逻辑模块(可选项):不同行业服务会要求处理特殊APDU命令,因此能在卡上动态添加行业专有逻辑可提高系统通用性。为了保证不同行业处理逻辑的独立和安全,需要设置安全隔离机制对行业专有逻辑实施隔离。
(5)模型总结:本模型将应用和系统分离,使得应用的动态部署成为可能。模型中的应用由行业专有处理逻辑、基本处理逻辑,专有文件系统和基本文件系统组成。通过基本处理逻辑模块和基本文件系统的共享,克服了资源的浪费,充分降低了卡的开发成本。不同应用的白有处理逻辑问通过隔离机制阻隔,行业文件系统间的互不隶属、PIN 码和密钥的独立存储保证了数据和密码的安全性。密码服务子模块提供卡与卡外实体的相互认证、数据通信的加密,基于密码服务子模块可实现高层的安全协议。
2.3多应用卡工作流程
2.3.1应用的添加和删除流程
在卡上添加行业应用,首先终端和卡通过密码服务子模块进行身份认证,建立信任关系、协商信道会话密钥、建立安全信道。然后获得特权的终端用密文申请文件系统服务,卡通过密码服务子模块解密命令、检查卡的安全状态,在安全条件满足的情况下,通过文件服务子模块创建行业文件系统结构,根据终端的命令,将文件系统内容初始化。最后在基本文件系统的注册记录文件中添加新应用的注册信息。根据需要,可下载专有的处理逻辑到卡上,卡操作系统负责处理逻辑的注册和管理。删除卡上行业应用,其安全机制与添加过程一致。在安全状态满足的情况下,删除这个应用(包括行业专有处理逻辑、专有文件系统)。最后在基本文件系统的注册记录文件中删除本应用的注册信息。卡操作系统负责处理逻辑注册信息的删除。
2.3.2应用的工作流程
终端通过选择并读取基本文件系统的注册记录文件,获得应用的注册信息,根据注册信息访问某行业文件系统、激活行业专有逻辑。终端调用卡上不同服务时,发生应用切换,即:当前提供服务的文件系统发生切换,同时卡所能调用的行业专有逻辑也会发生切换,原来的行业专有逻辑不能被调用,卡的安全状态复位。通过行业文件系统与专有逻辑的一致性切换和安全状态复位机制,可保证应用的整体切换,阻止应用间恶意攻击。
2.4安全分析
安全是智能卡系统的核心,本多应用系统模型安全性并未降低,分析如下:
(1)多行业专有处理逻辑共存不会降低系统安全性。各行业处理逻辑间有隔离机制防护,只能在卡操作系统规定的程序空问内运行,无法入侵系统和其它处理逻辑。各处理逻辑相互透明,卡操作系统通过隔离机制为每个逻辑模拟了一个单应用系统环境。如某处理逻辑模块在功能设计和实现中存在问题,其缺陷仅能影响本行业服务,而不会影响其它正常服务,所以行业专有操作逻辑的失误在多应用卡上造成的后果与单应用卡上相同。
(2)多个文件系统共存和基本处理逻辑的共享不会降低系统安全性。除基本文件系统为不同的应用共享外,其它文件系统相互独立和透明,彼此之间互不影响。支撑文件系统安全机制的密码和密钥相互独立,为文件系统提供独立的安全空间,安全空间内的文件系统安全性等同于单文件系统卡。
基本处理逻辑的设计不基于具体的文件系统内容,而是对抽象的文件系统结构进行处理,不同的文件系统对基本处理逻辑来说是同一个对象。因而从文件系统的角度来看,共享的基本处理逻辑与单文件系统中的独享处理逻辑没有区别;从基本处理逻辑的角度来看,多文件系统结构与单文件系统结构不存在差别。
(3)发卡商和服务提供商共同管理卡和应用不会降低卡和应用的安全性。通过设计合理的密码协议,可以保证多应用卡的安全管理而不降低应用的安全性。一个安全管理协议如下。首先定义两类密钥,卡管理密钥和服务密钥。卡管理密钥负责对卡的管理权限进行认证;服务密钥负责实现应用的安全机制。管理协议的框架如下:
1)由发卡商定义所有卡的管理操作(如卡的生命周期的管理,应用的添加、删除等)。
2)发卡商按不同服务商的需要将卡管理操作分组,每组操作指定一个卡管理密钥。
3)发卡商将不同的卡管理密钥分配给各服务提供商。
4)发卡商通过和服务提供商分享卡管理密钥共同管理卡,服务提供商用得到的卡管理密钥进行身份认证,就可以执行密钥对应的某些卡管理操作。而发卡商拥有对卡的最高管理权限密钥 不同服务商的卡管理密钥不同,因而对卡的管理权不同,且无法互相伪装。
5)服务提供商在卡上独立创建各自的服务密钥,负责实施服务的安全机制。由于服务密钥独立于卡管理密钥和其它的服务密钥,因此无法用卡管理密钥和其它服务密钥替代本服务密钥申请服务。
6)服务商在卡管理上对卡商的依赖性保护了卡商管理卡的地位,同时其对自己应用的安全机制独立负责。
3模型实现及评估
模型实现的硬件平台采用三星公司S3FS9QB智能卡芯片,系统软件设计采用Java Card技术。Java Card技术是目前主流的卡操作系统技术,可提供用Java语言进行上层处理逻辑开发的运行环境,上层处理逻辑可以动态下载到卡上,系统为不同的处理逻辑提供防火墙隔离。
Java Card技术的防火墙和数据共享机制 可以有效完成处理逻辑的隔离和数据共享,但难以实现灵活的行业问数据共享。本模型中将行业数据以多文件系统的形式进行维护,克服了Java Card技术的缺点。
多文件系统模块在实现中遵循了3GPP 电信组织(3rd Generation Partnership Project)定义的相关规范 J,使得模型实现具有通用性。密码服务子模块在实现中采用了GlobalPlatform技术的安全策略,可以实现发卡商和服务提供商对卡上各自应用的管理。
基于本多应用系统模型的实现,通过部署电信服务处理逻辑和电信业文件系统实现了SIM 卡服务功能,通过下载电子钱包处理逻辑和创建电子钱包文件系统,实现了电子钱包服务,在一张卡上实现了多应用,证明了方案的可行性。
基于本模型,系统在部署新行业服务时,既要在卡上提供新APDU命令的处理逻辑,又要在卡读写终端上添加同样的ADPU命令发送逻辑,为多应用部署和终端的标准化造成了障碍。本模型进一步的El标是在满足兼容性前提下,研究非文件系统结构的数据存储形式和设计基于APDU的卡与终端的高层通信协议。
本文关键词:智能卡,系统模型,JavaCard技术,,能卡,系统模型,JavaCard技术,多,卡,系统模型,JavaCard技术,多应,,系统模型,JavaCard技术,多应用
上一篇:MF1卡常见问题及处理建议[ 09-22 ]
下一篇:非接触式智能IC卡在井下人员定位系统中的应用[ 09-22 ]