智能卡开放应用的开发方法

文档序号:6572175阅读:140来源:国知局
专利名称:智能卡开放应用的开发方法
技术领域
本发明涉及一种智能卡开放应用的开发方法,尤其是一种可由第 三方下载应用程序到智能卡中的智能卡开》丈应用开发方法。
背景技术
智能卡具有安全性能高、体积小、存储容量大等优点,已经广泛 应用在移动通信、电子商务等领域。现有的智能卡安装有智能卡的操作系统(COS)以及运行在操作系统上应用程序。现有部分智能卡的应用程序并不是由智能卡操作系统开发方开发,而是由第三方,如银 行等开发,使智能卡实现某些特定的功能。现有部分应用程序使用能够编译成机器指令的语言,如c语言开发,然后编译成中央处理器能够直接执行的指令,存储在智能卡中。但这样会对智能卡的安全性能带来隐患。若第三方编写恶意应用程序,对中央处理器进行梯:作,并 恶意修改智能卡存储的数据,可能造成智能卡数据丢失,甚至会窃取 用户存储在智能卡的个人数据,给用户个人信息安全带来隐患,影响 智能卡开放应用的安全性。因此,现有部分智能卡需要第三方使用不能够编译成机器指令的语言,如Java语言编写应用程序。这样,虽然应用程序不能操作中 央处理器,使智能卡能够安全地开放给第三方开发应用程序,但由于 Java语言在智能卡中运行速度较慢,不利于智能卡的快速运行。因此,专利号为US5894550的美国发明专利公告了名为"一种执 行微处理卡安全程序的方法及安装有安全程序的微处理卡,,的发明创 造,该专利公告的微处理卡为一智能卡,智能卡的硬件设备有定时 器、计数器、通用异步收发机、内存管理单元等,该智能卡的中央处 理器与存储器之间的连接关系如图1所示。智能卡1包括中央处理器 20以及存储器30,其中存储器30包括两个存储区,分别是第一存储 区31和第二存储区32,中央处理器20可分别访问第一存储区31和 第二存储区32。其中,第一存储区31存储有智能卡1的操作系统,而应用程序则存储在第二存储区32中,且存储在第二存储区32的应 用程序不能直接访问第一存储区31的数据,即应用程序不能修改存 储在第一存储区31中的数据,这样可以保证存储在第一存储区的数 据不会被恶意修改。但是,这种智能卡仅在硬件设备上将操作系统和应用程序分开存 储,并且存储时需要按照存储器的物理地址存放,不但给开发人员开 发带来麻烦,而且存储在第二存储区32中不同的应用程序仍可相互 访问,恶意第三方仍可以恶意修改存储在第二存储区32中的其它应 用程序,仍然给智能卡的开放应用带来安全隐患。发明内容本发明的主要目的是提供一种能够安全地开放给第三方使用能够 编译成机器指令的语言开发应用程序的智能卡开放应用开发方法。为实现上述的主要目的,本发明提供的智能卡开放应用开发方法储器、定时器、计数器,该方法包括以1^步i: 、 口 '步骤一将智能卡内部结构分为硬件平台层、平台支持层、操作 系统层及应用层,其中,硬件平台层包括智能卡的硬件设备,平台支 持层包括驱动硬件设备的硬件驱动程序,操作系统层包括运行在硬件 平台层上的智能卡操作系统,应用层包括运行在操作系统上的应用程 序。步骤二在智能卡中设置多个特权数据包及多个普通数据包,其 中,该普通数据包用于存储应用程序。步骤三设置特权数据包与普通数据包的访问权限。其中,特权 数据包的访问权限是特权数据包可无条件地访问普通数据包,普通数 据包的访问权限是普通数据包有条件地访问特权数据包,且普通数据 包之间不能直接相互访问,而是需要通过操作系统的调用来实现。步骤四将智能卡硬件设备的驱动程序及操作系统层的操作系统存储到特权数据包中。智能卡操作系统开发方完成上述步骤后,将智能卡交给第三方, 如银行开发应用程序。由于智能卡硬件驱动程序及操:作系统存储在特 权数据包中,而第三方开发的应用程序存储在普通数据包中,操作系 统即可无条件的访问且调用应用程序,而应用程序却需要获得操作系 统允许后才可访问或调用操作系统的数据,可有效保护操作系统,防 止第三方开发的应用程序直接直接读取受保护的数据,如操作系统、 硬件驱动程序等。这样,即使第三方使用能够被编译成机器指令的语 言,如C语言开发应用程序,并将应用程序下载到智能卡中,也不会 影响智能卡开放应用的安全性。因此,第三方可使用能够被编译成机 器指令的语言开发应用程序,提高智能卡的运行速度,且保证智能卡 开放应用的安全性。


图l是现有智能卡中央处理器与存储器连接关系的示意框图; 图2是应用本发明智能卡开放应用开发方法的智能卡层次的结构 示意图;图3是应用本发明智能卡开放应用开发方法的智能卡虛拟地址与 物理地址转换示意图;图4是应用本发明智能卡开放应用开发方法的智能卡特权数据包 与普通数据包的划分示意图;图5是本发明智能卡开放应用开发方法实施例的流程图;图6是应用本发明智能卡开放应用开发方法的智能卡中应用程序 与才乘作系统访问关系示意图;图7是应用本发明智能卡开放应用开发方法的智能卡中两个应用 程序之间访问关系示意图。以下结合附图及实施例对本发明作进一 步说明。
具体实施方式
应用本发明智能卡开放应用开发方法的智能卡包括有硬件设备, 这些硬件设备包括中央处理器、存储器、定时器、计数器、通用异步 收发机、内存管理单元等,其中中央处理器可读取或改写存储在存储器中的数据,存储器包括随机存储器RAM、只读存储器R0M、电可擦 可编程只读存储器EEPROM等,这些与现有的智能卡是一致的。智能卡的存储器中存储有驱动硬件设备的驱动程序、智能卡的操 作系统、文件系统管理程序以及应用程序,这些程序、文件被划分为 不同层次存储在存储器中。参见图2,图2是应用本发明智能卡开放 应用开发方法的智能卡层次的结构示意图。由图中可见,智能卡内部结构被划分为五个层次,包括处于最底 层的硬件平台层11,包括智能卡的硬件设备,如定时器、计数器、 内存管理单元等。在硬件平台层11上的是平台支持层12,包括驱动 硬件设备的驱动程序。运行在硬件平台层11上的操作系统形成了本 实施例的操作系统层13,操作系统层13是智能卡的核心,可通过平 台支持层12的驱动程序驱动硬件设备进行相关的操作。运行在操作 系统上的多个应用禾呈序构成应用层15。应用禾呈序可以由第三方,如 银行开发并下载到智能卡中,可实现智能卡的多种功能。在应用层 15与才喿作系统层13中间有一系统服务层14,系统服务层14包括文 件系统管理程序,且运行在操作系统上。上述各层中均设置有接口函数,用于相互调用其它层的程序,这 样各层的程序可以同时开发,加快开发的速度。平台支持层12的驱动程序、操作系统层13的才喿作系统、系统服 务层14的文件系统管理程序及应用层15的应用程序存储在智能卡的 存储器中,但这些数据并不是顺序存储的。智能卡内使用虚拟内存管 理,即程序编写人员编写程序时,使用虚拟地址编写程序,程序编译 时,则通过一个转换页表将虛拟地址转换智能卡中的物理地址,再下 载到智能卡中。参见图3,图3是应用本发明智能卡开放应用开发方 法的智能卡虚拟地址与物理地址转换示意图。程序编写人员使用虚拟地址编写程序后,通过编译器件进行编译 时,编译器件使用转换页表将虚拟地址转换成智能卡的物理地址。某 一虚拟地址传送到转换页表时,转换页表使用专用的算法,计算出该 虛拟地址对应的物理地址。转换页表使用的专用算法是由编译器件定 义的,且确保转换的唯一性,即每一虛拟地址转换后获得唯一确定的物理地址,而每一物理地址也只能对应唯一确定的虚拟地址。并且, 地址转换是非线性转换,转换成物理地址后,程序不是顺序排列,而 是无规则的排列。这样,第三方开发应用程序时也是使用虚拟地址进 行编写,则第三方应用程序编写人员无法直接对物理地址进行操作, 仅能使用虛拟地址进行编程,有效保证智能卡开力文应用的安全性。硬件驱动程序、操作系统以及应用程序下载到智能卡后,智能卡 内存管理单元使用虚拟地址对程序进行管理。程序运行时,内存管理 单元使用转换页表,即使用相同的算法计算物理地址,再执行对应物 理地址存储的指令。当然,物理地址可以是智能卡的随机存储器RAM、只读存储器 R0M、非易失性内存NVM等存储器的实际物理地址。智能卡实现虚拟内存管理,同时也将虚拟内存空间划分为多个大 小相等的特权数据包和普通数据包。参见图4,图4是应用本发明智 能卡开放应用开发方法的智能卡中特权数据包与普通数据包的划分示 意图。由图中可见,平台支持层12的硬件驱动程序、才乘作系统层13的 操作系统和系统服务层14的文件系统管理程序存储在特权数据包21 中,而应用层15的应用程序存储在普通数据包22中。其中,每一特 权数据包21中均设有一特权程序调用模块,特权数据包21可通过特 权程序调用模块访问普通数据包22,而普通数据包22也设有普通程 序调用模块,普通数据包22也可以通过普通程序调用模块访问特权 数据包21。但是,特权数据包21与普通数据包22具有不同的访问权限,特 权数据包21可无条件地访问普通数据包22,也就是特权数据包21 的程序需要访问普通数据包22时,普通数据包22需要无条件地接收 特权数据包21的访问。而普通数据包22是有条件地访问特权数据包 21,即普通数据包22需要访问特权数据包21时,需要获得特权数据 包21的允许,并且在访问时需要受到特权数据包21的监控。另外, 普通数据包22之间是不能直接访问,而是需要通过操作系统的调用来冗成o参见图5,图5是本发明智能卡开放应用开发方法实施例的流程 图。应用本发明的方法时,首先将智能卡的内部结构分层(步骤 Sl),分成硬件平台层、平台支持层、操作系统层、系统服务层及应 用层。其中,硬件平台层包括智能卡的硬件设备,如中央处理器、存 储器、计数器、定时器等,平台支持层包括硬件设备的驱动程序,操 作系统层包括运行在硬件平台层上的操作系统,系统服务层包括运行 在操作系统上的文件系统管理程序,而应用层包括智能卡的应用程 序,这些应用程序可由第三方,如银行开发。当然,智能卡操作系统 开发方开发操作系统后,将智能卡交给第三方时,智能卡中可不存储 有任何应用程序,即应用层不存储有任何程序。然后,将智能卡的虛拟内存空间划分为多个大小相等的特权数据 包和多个普通数据包(步骤S2),并在特权数据包中设置特权程序调用模块,在普通数据包中设置普通程序调用模块。然后,设置每一 特权数据包和普通数据包的访问权限(步骤S3)。其中,特权数据 包可以无条件的访问普通数据包,而普通数据包是有条件的访问特权 数据包。也就是,特权数据包需要访问普通数据包时,不需要获得普 通数据包的允许即可访问。若普通数据包需要访问特权数据包,需要 获得特权数据包的允许。这种允许可以通过设置哪些普通数据包可以 访问某一特权数据包的方式实现,当普通数据包需要访问某 一特权数 据包时,特权数据包先判断该普通数据包是否有权限访问,若没有访 问权限,则普通数据包不能访问该特权数据包。同时,还可以设置普通数据包之间的访问权限,例如普通数据包 之间不能直接访问,而是需要经过操作系统调用来实现访问。并且,普通数据包访问另 一普通数据包时,需要获得祐:访问的普通数据包允许才能访问等。最后,将平台支持层的硬件驱动程序、操作系统层的操作系统和系统服务层的文件系统管理程序存储到特权数据包中(步骤S4)。 同时在各层中预留相应的接口函数,方便第三方开发并下载智能卡的 应用程序到智能卡中。至此,智能卡开放应用开发便完成,可将智能 卡交给第三方开发应用程序。智能卡操作系统开发方完成上述工作后,将智能卡交给第三方, 如银行开发智能卡的应用程序。第三方使用能够被编译成机器指令的语言,如c语言开发相应的应用程序,并对应用程序进行编译,同时对应用程序进行安全处理,如对应用程序进行加密或签名处理,再将 其下载到智能卡中。应用程序下载到智能卡后,将其存储在普通数据 包中。当然,不同的应用程序应该存储在不同的普通数据包中,而同 一应用程序可以存^f渚在两个或两个以上的普通数据包中,以确保应用 程序不能直接访问。应用程序下载到智能卡后,智能卡对其进行身份识别及解密,只 有通过身份验证的应用程序才能被智能卡执行。参见图6,图6是应用本发明智能卡开放应用开发方法的智能卡 中应用程序与操作系统访问关系示意图。当存储在普通数据包中的应 用程序41需要访问存储在特权数据包内的操作系统45时,需要通过 系统调用程序46访问操作系统45,而操作系统45需要访问应用程 序41时,则可直4妄访问应用程序41。也就是特4又数据包访问普通数 据包时是无条件的访问,而普通数据包访问特权数据包时需要特权数 据包的允许才能访问,这样可有效防止应用程序41对操作系统45的 恶意破坏,也确保智能卡开放应用的安全性。另外,普通数据包之间也是不能直接访问,也就是应用程序之间 调用也是需要获得允许才能调用。参见图7,图7是应用本发明智能 卡开放应用开发方法的智能卡中两个应用程序之间访问关系示意图。 当第一应用程序42需要访问第二应用程序43时,第一应用程序42 通过操作系统45的系统调用程序46发出访问请求,系统调用程序 46将该访问请求发送到信任判断模块47,信任判断模块47判断第一 应用程序41是否具有访问第二应用程序的权限,若有,则将相关数 据发送到才乘作系统45,再由操作系统45发送至第一应用程序42。若 第一应用程序42不具备访问的权限,则拒绝第一应用程序访问。这 样,有效防止恶意应用程序读取或篡改其它应用程序的数据,确保开 放应用的安全性。当然,上述实施例仅是本发明部分实施方案,实际应用中还可以 有更多的变形,例如,将虛拟内存划分为访问权限不同的更多级别的 数据包,也就是数据包的级别不限于特权数据包和普通数据包,还可 以设置更多级别。或者智能卡内划分为更多层次结构,对应用程序使 用加密和签名以外的安全处理等,又或者特权数据包与普通数据包的 大小不相等,这些并不影响本发明的实施。同时,本发明的智能卡也是多种多样的,不但是应用在电信领域 的电信智能卡,还可以是使用在公共交通领域的公交卡,还有社保卡 等,也可以使用本发明实现提高智能卡存储数据的安全性。最后,需要强调的是,本发明不限于上述实施方式,诸如智能卡 存储器类型的改变、地址转换页表使用算法的改变、应用程序编写语 言的改变等微小变化也应该包括在本发明的保护范围内。
权利要求
1、智能卡开放应用的开发方法,该智能卡的硬件设备包括有中央处理器及可由所述中央处理器访问的存储器、定时器、计数器,该方法包括以下步骤步骤一将智能卡内部结构分为硬件平台层、平台支持层、操作系统层及应用层,所述硬件平台层包括智能卡的硬件设备,所述平台支持层包括驱动所述硬件设备的硬件驱动程序,所述操作系统层包括运行在所述硬件平台层上的智能卡操作系统,所述应用层包括运行在所述操作系统上的应用程序;步骤二在智能卡中设置多个特权数据包及多个普通数据包,所述普通数据包用于存储所述应用程序;步骤三设置特权数据包与普通数据包的访问权限,特权数据包的访问权限是特权数据包可无条件地访问普通数据包,普通数据包的访问权限是普通数据包有条件地访问特权数据包,普通数据包之间的访问需要通过所述操作系统的调用来实现;步骤四将智能卡硬件设备的驱动程序及操作系统层的操作系统存储到所述特权数据包中。
2、 根据权利要求1所述的智能卡开放应用的开发方法,其特征 在于所述步骤一中,所述智能卡内部结构还划分有系统服务层,所述 系统服务层包括运行在操作系统上的文件系统管理程序。
3、 根据权利要求2所述的智能卡开放应用的开发方法,其特征 在于所述步骤四中还包括将所述系统服务层的文件系统管理程序存储 到特权数据包中。
4、 根据权利要求1至3任一项所述的智能卡开放应用的开发方 法,其特征在于所述步骤二中还包括在特权数据包中设置特权程序调用模块,在 普通数据包中设置普通程序调用模块;特权数据包通过特权程序调用模块无条件访问普通数据包,普通 数据包通过普通程序调用模块有条件访问特权数据包。
全文摘要
本发明提供一种智能卡开放应用的开发方法,包括将智能卡分层,分为硬件平台层、平台支持层、操作系统层及应用层,然后将智能卡的虚拟空间划分为多个特权数据包和普通数据包,并设置特权数据包与普通数据包的访问权限,再将操作平台支持层的硬件驱动程序及操作系统层的操作系统存储在特权数据包中。本发明可使智能卡可安全地开放给第三方开放应用程序,并让第三方,如银行,应用能够被编译成机器指令的语言来开发智能卡的应用程序,提高智能卡的运行速度。
文档编号G06F9/44GK101216758SQ200710033019
公开日2008年7月9日 申请日期2007年12月27日 优先权日2007年12月27日
发明者徐云峰, 伟 郭 申请人:东信和平智能卡股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1