发明内容
有鉴于此,本发明提供了一种智能存储卡系统、以及一种智能存储卡系统实现交互的方法,能够支持存储卡的功能扩展。
本发明提供的一种智能存储卡系统,包括:智能存储卡、终端设备、以及应用服务器,其中,
应用服务器,用于存储实现预设功能的智能存储应用程序;
终端设备用作所述智能存储应用程序的运行平台,还用作智能存储卡和应用服务器交互的代理并提供数据通道;
智能存储卡用于通过终端设备与应用服务器交互,其中,
终端设备通过智能存储卡更新访问接口与所述应用服务器相连,通过所述智能存储卡更新访问接口从所述应用服务器中下载智能存储应用程序;
所述终端设备通过智能存储卡控制访问接口与所述智能存储卡相连,通过所述智能存储卡控制访问接口将下载的智能存储应用程序存储于所述智能存储卡中;
所述终端设备通过智能存储卡移动应用管理接口分别与所述应用服务器和所述智能存储卡相连;
所述应用服务器用于存储实现各种移动功能的移动存储应用程序,通过所述智能存储卡移动应用管理接口、并以所述终端设备为代理,向所述智能存储卡发送所述移动存储应用程序;
所述终端设备通过智能存储卡动态服务接口分别与所述应用服务器和所述智能存储卡相连;
所述应用服务器通过所述智能存储卡动态服务接口、并以所述终端设备为代理,添加或删除所述智能存储卡中存储的所述移动存储应用程序。
所述终端设备进一步在从所述应用服务器中下载智能存储应用程序之前,通过所述智能存储卡更新访问接口与所述应用服务器进行认证交互。
所述终端设备进一步通过所述智能存储卡控制访问接口读取所述智能存储卡中存储的智能存储应用程序并运行。
所述应用服务器进一步用于存储卡端应用程序的更新版本;
所述终端设备进一步通过所述智能存储卡更新访问接口从所述应用服务器中下载所述卡端应用程序的更新版本;通过所述智能存储卡控制访问接口与所述智能存储卡通过认证后,将下载的所述卡端应用程序的更新版本发送至所述智能存储卡。
所述智能存储卡中包括存储卡控制器、物理存储介质和扩展应用芯片,其中,
所述存储卡控制器分别与所述物理存储介质和所述扩展应用芯片相连。
所述扩展应用芯片的地址映射为物理存储介质中的预设地址。
所述扩展应用芯片为智能卡芯片。
本发明提供的一种智能存储卡系统实现交互的方法,所述智能存储卡系统包括智能存储卡、终端设备、以及应用服务器,该方法包括:
所述终端设备从所述应用服务器中下载智能存储应用程序;
所述终端设备将下载的智能存储应用程序存储于所述智能存储卡中,其中,
终端设备通过智能存储卡更新访问接口与所述应用服务器相连,通过所述智能存储卡更新访问接口从所述应用服务器中下载智能存储应用程序;
所述终端设备通过智能存储卡控制访问接口与所述智能存储卡相连,通过所述智能存储卡控制访问接口将下载的智能存储应用程序存储于所述智能存储卡中;
所述终端设备通过智能存储卡移动应用管理接口分别与所述应用服务器和所述智能存储卡相连;
所述应用服务器用于存储实现各种移动功能的移动存储应用程序,通过所述智能存储卡移动应用管理接口、并以所述终端设备为代理,向所述智能存储卡发送所述移动存储应用程序;
所述终端设备通过智能存储卡动态服务接口分别与所述应用服务器和所述智能存储卡相连;
所述应用服务器通过所述智能存储卡动态服务接口、并以所述终端设备为代理,添加或删除所述智能存储卡中存储的所述移动存储应用程序。
所述终端设备从所述应用服务器中下载智能存储应用程序之前,该方法进一步包括:所述终端设备与所述应用服务器进行认证交互。
所述终端设备将下载的智能存储应用程序存储于所述智能存储卡中之后,该方法进一步包括:
所述终端设备读取所述智能存储卡中存储的智能存储应用程序并运行。
所述应用服务器进一步存储卡端应用程序的更新版本,该方法进一步包括:
所述终端设备从所述应用服务器中下载所述卡端应用程序的更新版本;
所述终端设备与所述智能存储卡进行认证,并通过认证后将下载的所述卡端应用程序的更新版本发送至所述智能存储卡。
所述终端设备从所述应用服务器中下载所述卡端应用程序的更新版本之前,该方法进一步包括:所述终端设备与所述应用服务器进行认证交互。
所述终端设备与所述应用服务器进行认证交互之前,该方法进一步包括:
所述终端设备向所述智能存储卡请求进行卡内更新;所述智能存储卡检测所述终端设备是否拥有更新权限、智能存储卡内部是否有足够的空间、以及待更新的卡端应用程序的版本后,返回表示是否允许操作的初始化检测结果。
由上述技术方案可见,本发明中的智能存储卡在现有存储卡中增加了扩展应用芯片,该扩展应用芯片中承载有卡端应用程序。这样,智能存储卡基于扩展应用芯片中承载的卡端应用程序,能够通过终端设备与应用服务器交互,实现对与该智能存储卡相连的终端设备中运行的各种智能应用程序的管理,使得智能存储卡的功能不仅限于数据存储。
其中,智能存储卡可以通过终端设备与应用服务器的交互,从应用服务器中下载各种智能应用程序,且智能存储卡中的卡内应用程序也可通过终端设备从应用服务器下载更新。此外,智能存储卡可以通过终端设备与应用服务器的交互,接受应用服务器提供的各种移动应用和动态服务,使得智能存储卡能够支持更多的功能扩展。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明在现有存储卡中增加扩展应用芯片,该扩展应用芯片中承载有卡端应用程序。在本文中,将增加了扩展应用芯片的存储卡称之为智能存储卡。
这样,将智能存储卡连接于终端设备之后,运行于终端设备中用于实现各种增值应用的应用程序即可访问智能存储卡中的扩展应用芯片,以保证扩展应用芯片中承载的卡端应用程序,能够对终端设备中运行的各种应用程序实现例如安全认证、数字版权保护等管理控制,使得智能存储卡能够实现除数据存储之外的其他功能,即能够基于存储卡结构实现数据存储之外的功能扩展。具体的安全认证、数字版权保护等方法可以采用现有方式,在此不再赘述。
下面,首先对本发明中智能存储卡的物理层硬件结构进行说明。
图2为本发明中智能存储卡的结构示意图。如图2所示,以基于现有安全数据(Secure Digital,SD)存储卡实现本发明为例,本发明中的智能存储卡除了包括现有SD存储卡中的物理接口、存储卡控制器、以及物理存储介质,还包括用作扩展应用芯片的智能卡(Smart Card)芯片。
存储卡控制器通过SD协议数据总线与物理接口相连,并通过物理接口与外部交互、基于所述交互实现对卡端协议的解析。
存储卡控制器还通过物理存储介质访问总线与物理存储介质相连,并实现对物理存储介质的访问与管理。其中,物理存储介质访问总线根据介质的不同而不同,例如,物理存储介质为闪存(FLASH),则物理存储介质访问 总线即指FLASH的操作总线。
存储卡控制器还通过ISO7816协议总线、或其他总线与智能卡芯片相连,并实现对智能卡芯片的访问与管理。
上述提及的各协议总线均为已有总线,在本文中不再赘述。
此外,智能存储卡内各部分的电源均由物理接口提供。
图3为本发明中智能存储卡与终端设备的物理层接口结构示意图。如图3所示,物理接口至少包括时钟(CLOCK)信号管脚、数据总线管脚、流控包输入(FC_IN)管脚、流控包输出(FC_OUT)管脚,还有其他管脚未在图3中示出。
具体来说,物理接口的各管脚对应的接口信号可参见表1。
表1 物理接口各管脚对应的接口信号
下面,再对本发明中智能存储卡的传输层软件进行说明。
需要说明的是,现有存储卡控制器中的增强型SD固件程序(Enhance SD Firmware)只能够控制接口协议程序连接至对物理存储介质操作的接口程序,因此,本发明采用的一种传输层实现方式中,对Enhance SD Firmware进行了改进、并增加了扩展应用核心固件程序(Increment Application CoreFirmware),以使得运行于终端设备的应用程序通过存储卡控制器能够访问到扩展应用芯片。
如图4a所示,智能存储卡中的存储卡控制器承载有Enhance SDFirmware和Increment Application Core Firmware。
其中,Enhance SD Firmware通过SD协议数据总线与物理接口相连,通过物理存储介质访问总线与物理存储介质相连,通过预先定义的增值应用接口与Increment Application Core Firmware相连。
Increment Application Core Firmware通过物理存储介质访问总线与物理存储介质相连,通过扩展应用芯片匹配的总线、例如ISO7816总线与扩展应用芯片相连。
此外,在改进固件程序的传输层实现方式中,还需要将扩展应用芯片的地址映射为物理存储介质中的某些预设地址,本发明称物理存储介质中映射有扩展应用芯片的地址为特殊地址。
终端设备中运行的应用程序,可以通过写访问智能存储卡的方式向扩展应用芯片发送命令及相关数据,通过读访问智能存储卡的方式接收扩展应用芯片反馈的应答及相关数据。
这样,对于智能存储卡的写访问:
Enhance SD Firmware判断写访问的访问地址是否为预先设置的映射有扩展应用芯片的特殊地址,如果是,则Enhance SD Firmware将写数据传送至Increment Application Core Firmware,由Increment Application CoreFirmware转发给扩展应用芯片,此时的写数据通常为各种与扩展应用芯片交互的命令及相关数据,因此,扩展应用芯片即可根据写数据执行相应的操作;否则,将写数据写入至物理存储介质中,即实现普通的数据存储功能。
对于智能存储卡的读访问:
扩展应用芯片在执行了写数据对应的相应操作后,会向IncrementApplication Core Firmware返回例如操作成功或失败的应答信息、或用于实现各种应用交互的数据,且Increment Application Core Firmware会将应答信息缓存于输出缓存(Buffer_OUT)中,如图4b所示,因此,如果之前的写访问的访问地址是预先设置的映射有扩展应用芯片的特殊地址,则EnhanceSD Firmware从Buffer_OUT中读取应答信息后反馈给终端设备中运行的应用程序。
当然,本发明中也可以采用其他的传输层实现方式,例如不改进现有存储卡控制器中的软件,而是另行开发驱动程序、或使用存储卡扩展协议来保证能够访问到扩展应用芯片,只是这两种方案的开发周期长、且需要对终端设备进行改进。
本发明还提供了以应用接口,运行于终端设备中的应用程序可通过应用接口访问智能存储卡。
图5为本发明中智能存储卡相关的协议层次结构图。如图5所示的协议层次结构,是针对如前所述的改进固件程序这一传输层实现方式的。
如图5所示,如果终端设备中运行的应用程序需要访问智能存储卡中的扩展应用芯片,则访问的路径为:应用接口、预设的接口文件、终端设备的驱动程序、终端设备的物理层。其中,预设的接口文件的地址,也映射在扩展应用芯片所映射的物理存储介质中的特殊地址;将写数据写入在接口文件中,其访问地址即可看作特殊地址;而智能存储卡反馈的应答及相关信息,则作为读数据返回至接口文件中。
如图5所示,如果终端设备中运行的应用程序或其它外部应用程序需要访问智能存储卡中的物理存储介质,则访问的路径为:应用接口、终端设备的驱动程序、终端设备的物理层。
经应用接口交互的数据,需要以应用接口数据包的方式传输。
应用接口数据包分为命令数据包和应答数据包,其中,命令数据包用于 写访问,应答数据包则用于读访问。应用接口数据包的格式如表2所示。
名称 |
含义 |
数据字段1 |
数据包类型标识 |
数据字段2 |
协议版本号 |
数据字段3 |
目标类型 |
数据字段4 |
命令/应答编码信息 |
数据字段5 |
数据包序列号 |
数据字段6 |
数据域的长度 |
数据字段7 |
数据域 |
表2 应用接口数据包的格式
如表2所示,应用接口数据包中包括:目标类型、编码信息、数据包类型标识、数据包所对应的协议版本号、数据包的序列号、数据域、数据包的数据域长度。
数据包类型标识用于表示该应用接口数据包是命令数据包还是应答数据包,例如可用0×53AC表示命令数据包,0×AC53表示应答数据包。
协议版本号表示应用接口数据包遵循的协议版本号,例如可用0×01表示第一版协议,其余类推。
目标类型表示应用接口数据包的操作对象,例如可用0×01表示操作对象为扩展应用芯片,0×02表示操作对象为物理存储介质,其余保留做扩展对象操作。
命令/应答类型编码则包括数据域内携带的命令/应答的编码信息,用于对命令/应答解码;例如,命令数据包中的编码信息为0×0,则存储卡控制器即可根据0×0解码得到表示复位的命令;应答数据包中的编码信息为0,则终端应用程序可根据0解码得到表示成功的应答;实际上,上述方式的编码信息也可看作是命令标识,而得到编码信息的一方可以根据预设的编码信息与命令/应答的对应关系,获知对应的命令/应答。
数据包序列号可占用4个字节,例如可用第一个字节表示数据包的发送月份,从1~12(十进制),第二个字节表示数据包的发送日期,从1~31(十进制);后两个字节表示发送的序列号,从0×0000~0×FFFF。
数据域的长度表示数据包内带的数据长度,数据长度最大为500(十进制),如果没有数据,则为0。如果数据域的长度不为0,则数据域中可携带命令或应答的相关数据。
以上是对智能存储卡的物理层结构、传输层软件、以及应用接口的说明。下面,对本发明中的智能存储卡系统、以及智能存储卡在该系统中的工作原理进行详细说明。
在本发明中,智能存储卡系统主要包含三个实体:智能存储卡、终端设备、应用服务器。其中,智能存储卡和终端设备通过物理层和传输层建立基本传输通道,终端设备和应用服务器通过现有的传输控制协议/互联网协议(TCP/IP)、网络物理层/数据链路层建立基本传输通道。
除了上述三个实体之外,本发明中的智能存储卡系统中还包含智能存储应用程序这一要素。
其中,智能存储应用程序分为两类:
一类称为智能应用程序,存储于智能存储卡的物理存储介质中,随着智能存储卡的移动而移动,在智能存储卡插接于终端设备后,存储于智能存储卡的智能应用程序可以在终端设备中运行,即为如前所述的终端设备中运行的应用程序,用于为终端设备提供移动应用、业务菜单、实时信息等各种预设增值应用;
另一类称为智能应用服务程序,智能应用服务程序也在终端设备中运行,并与应用服务器以客户端/服务器(C/S)模式交互,使用应用服务器提供的服务优化智能应用程序为终端设备提供的增值应用。
图6为本发明中智能存储卡系统的系统模型示意图。如图6所示,本发明中的智能存储卡系统包括:智能存储卡、终端设备、以及应用服务器。
智能存储卡以数据存储为基本功能,智能存储卡还能够与应用服务器交互。
终端设备是智能存储卡的载体,与智能存储卡之间通过物理层和传输层建立基本传输通道、即如图6所示的接口(2)。所有支持智能存储卡技术标准的设备都可以作为智能存储卡终端,主要的智能存储卡终端包括个人电脑(PC)和移动终端两类,其主要功能包括:访问控制智能存储卡、提供智能应用程序和智能应用服务程序的运行平台、作为智能存储卡和应用服务器数据交互的代理并提供数据通道。
其中,智能存储卡和应用服务器的交互可通过如图6所示的接口(3)和接口(4)实现。
应用服务器通过有线或无线网络、即如图6所示的接口(1)与终端设备连接,实现与智能存储卡的握手识别,从而保证基于智能存储卡的智能存储应用在安全的环境下有效地运行。
在图6中,接口(1)和接口(2)用于智能应用程序和智能存储卡的卡端应用程序的更新;接口(3)和接口(4)是两种应用业务接口,接口(3)用于智能应用程序的管理控制,接口(4)用于智能应用程序的动态服务。
其中,接口(3)和接口(4)主要用于应用服务器与智能存储卡之间的直接交互,终端设备仅仅通过其运行的智能应用服务程序而作为中继转发。
以下,分别针对基于各接口的交互流程对上述系统进行详细说明。
接口(1)称为智能存储卡更新访问接口,其定义了应用服务器与终端设备之间的文件获取和数据交换的基本格式,包括:应用服务器与终端设备之间的智能存储应用程序(即智能应用程序和智能应用服务程序)组织方式、以及应用服务器与终端设备之间的认证方式。
应用服务器中保存了用于实现移动应用、业务菜单和实时信息等多种增值应用的智能存储应用程序、以及各智能存储应用程序的多种更新版本。智能存储应用程序按照接口(1)定义的格式组织起来,以配置文件的形式存储于应用服务器中。
如果获取智能存储应用程序需要通过应用服务器的认证,则终端设备在通过应用服务器认证后,才能够获取配置文件中的智能存储应用程序;如果 获取智能存储应用程序不需要认证,则终端设备可直接获取配置文件中的智能存储应用程序。
实际应用中,终端设备可通过两种模式获取应用服务器内的智能存储应用程序。其中一种模式下,应用服务器采用对象列表文件管理的方式管理智能存储应用程序,终端设备则先取得对象列表文件,然后按照对象列表文件描述的规范获取配置文件中的智能存储应用程序。另一种模式下,终端设备直接按照接口(1)所定义的格式与应用服务器交换数据报文来获取配置文件中的智能存储应用程序。
此外,应用服务器中还存储有智能存储卡中扩展应用芯片的卡端应用程序的各种更新版本、以及智能存储卡进行认证所需要的卡端数据。终端设备也可从应用服务器中获取卡端应用程序的更新版本和卡端数据,并发送给智能存储卡进行内部更新。
在本发明中,智能存储应用程序、卡端应用程序、以及卡端数据统称为应用资源。
图7为本发明中基于智能存储卡更新访问接口的交互流程图。如图7所示,基于智能存储卡更新访问接口的交互流程主要涉及两部分:身份认证以及下载更新。
步骤701、终端设备首先通过预定义的链接或通过浏览,定位到需要从应用服务器下载的应用资源,然后针对该应用资源向应用服务器发起应用资源更新请求(Ressoure_Get_Req)。
本步骤中,发起的Ressoure_Get_Req中可以包括:需要下载的应用资源的标识、类型、版本号、以及会话标识和Ressoure_Get_Req的承载协议。Ressoure_Get_Req的格式定义具体参见表3。
名称 |
数据类型(字节) |
必须的/ 可选的 (M/O) |
说明 |
应用资源标识 (APUID) |
String(36) |
M |
应用资源的唯一标识 |
应用资源标识类型 (AppType) |
Char(1) |
M |
应用资源的类型包括: 智能应用程序、智能应 用服务程序。0x01:智 能应用程序 0x02:智能应用服务程 序 0xff:卡端应用程序和卡 端数据等其他应用资 源。 |
应用资源版本号 (AppVersion) |
String(16) |
M |
应用资源的版本号 |
会话标识(SectionID) |
Int(4) |
M |
当前会话的计数,由0开 始。对方响应后,表示 一个会话完成并自动清 零;没有对方响应,则 重复发送同一标识的数 据包并自动加1。 |
协议版本号 (ProVersion) |
String(16) |
M |
协议版本号 |
承载协议 (PreProtocol) |
Char(1) |
M |
0x00:没有承载协议 0x01:Http协议 |
表3 Ressoure_Get_Req的格式
步骤702、应用服务器端返回应用资源更新响应(Ressoure_Get_Rep)。且在应用服务器的Ressoure_Get_Rep中会指明终端设备所定位的应用资源是否需要身份认证,即身份认证是可选项。
本步骤中,应用服务器会根据Ressoure_Get_Req定位终端设备需要下载的应用资源位置,并根据该应用资源的安全级别生成响应Ressoure_Get_Rep,其中包括:响应的状态、应用资源的标识、类型、版本、大小、会话标识、数据承载的协议、是否需要身份认证、在需要身份认证时所采用的认证协议、是否需要加密、在需要加密时所采用的加密协议。Ressoure_Get_Rep的具体格式定义参见表4。
名称 |
数据类型(字节) |
M/O |
说明 |
响应状态(ACK) |
Char(1) |
M |
0x00:响应失败 0x01:响应成功 |
应用资源标识(APUID) |
String(36) |
M |
应用资源的唯一标识 |
应用资源类型 (AppType) |
Char(1) |
M |
应用资源的类型包括:智 能应用程序、智能应用服 务程序。0x01:智能应用 程序 0x02:智能应用服务程序 0xff:卡端应用程序和卡 端数据等其他应用资源。 |
应用资源版本号 (AppVersion) |
String(16) |
M |
应用资源的版本号 |
会话标识(SectionID) |
Int(4) |
M |
当前会话的计数,由0开 始。对方响应后,表示一 个会话完成并自动清零; 没有对方响应,则重复发 送同一标识的数据包并 自动加1。 |
传输方式 (ThansferType) |
插入(1) |
M |
标识传输的方式: 0x01:文件传输 0x02:数据包格式 |
协议版本号 (ProVersion) |
String(16) |
M |
协议版本号 |
承载的协议 (PreProtocol) |
Char(1) |
M |
0x00:没有承载协议 0x01:Http协议 |
应用资源的大小 (AppSize) |
Int(4) |
M |
|
身份认证方式 (AuthType) |
Char(1) |
M |
0x00:不需要授权 0x01:简单认证协议 0x02:有限认证协议 0x03:增强认证协议 |
数据包加密方式 (PackageEncode) |
Char(1) |
M |
0x00:不加密 0x01:加密协议1 0x02:加密协议2 |
表4 Ressoure_Get_Rep的格式
步骤703、如果Ressoure_Get_Rep中指明需要身份认证,则终端设备发送认证开始请求(Client_Auth_Start_Req)。
步骤704、在应用服务器认证通过后,返回表示认证通过的认证开始响应(Client_Auth_Start_Rep)。
在步骤704之后,即可进入图7中步骤704之后如省略号所示的具体认证流程。具体认证流程可以采用现有任意一种认证方式,在本文中不再赘述。
具体认证流程结束后执行步骤705。当然如果Ressoure_Get_Rep中指明不需要身份认证,则直接执行步骤705。
步骤705,终端设备发送更新资源请求(Update_Res_Req)。
步骤706,应用服务器返回更新资源响应(Update_Res_Rep)。
在步骤706之后,即可进入图7中步骤706之后如省略号所示的具体下载卡端智能应用程序的下载流程。具体下载流程可以采用现有任意一种资源下载方式,在本文中不再赘述。
接口(2)称为智能存储卡控制访问接口,用于终端设备将其下载的应用资源发送至智能存储卡,包括:将应用资源中的智能存储应用程序存储于智能存储卡的物理存储介质中、从智能存储卡的物理存储介质中读取智能存储应用程序以便运行、将应用资源中的卡端应用程序和/或卡端数据发送至智能存储卡的物理存储介质或扩展应用芯片中实现其内部更新升级。
对于智能存储应用程序的写入和读取,只需按照正常读写存储卡的流程来实现,但对于写入卡端应用程序和/或卡端数据以实现智能存储卡内部更新升级,则不能够随意执行。其中,卡端应用程序和卡端数据统称为卡内资源。
基于智能存储卡控制访问接口的交互流程中,写入卡内资源实现智能存储卡的卡内更新的过程,主要涉及三部分:更新初始化、身份认证、以及下载更新。
其中,更新初始化是指:终端设备向智能存储卡请求进行卡内更新,智能存储卡检测终端设备是否拥有更新权限、智能存储卡内部是否有足够的空间、以及更新的卡内资源(即卡端应用程序和/或卡端数据)版本等相关更新信息后,返回初始化检测结果。
图8a为本发明中基于智能存储卡控制访问接口的更新初始化流程图。 如图8所示,基于智能存储卡控制访问接口的更新初始化流程包括:
801a、终端设备向智能存储卡发送更新初始化请求(Update_Initial_Req),请求智能存储卡进行卡内更新。
Update_Initial_Req中包括:会话标识、命令类别、卡内资源标识、卡内资源版本号、卡内资源大小等更新相关信息,具体参见表5。
名称 |
描述 |
M/O |
会话标识 (SessionID) |
|
M |
命令类别 (FlagInfo) |
00h:更新初始化请求 01h:更新初始化响应 02h:下载更新请求 03h:下载更新响应 其余:保留 |
M |
卡内资源标识 (SID) |
|
M |
卡内资源版本号 (SVersion) |
|
M |
卡内资源大小 (SLength) |
|
M |
扩展域 (Extension) |
扩展 |
O |
表5 Update_Initial_Req的格式
步骤802a、智能存储卡接收到终端设备发送的Update_Initial_Req后,首先检测其内部已有的卡内资源版本号是否与Update_Initial_Req中的卡内资源版本号相同、检测智能存储卡中是否有足够的空间存储更新的卡内资源等更新相关信息,并根据检测到的更新相关信息,返回更新初始化响应(Update_Initial_Rep)表示更新初始化成功或失败。
Update_Initial_Rep中包括:会话标识、命令类别、表示更新初始化是否成功的响应状态、更新启示位置、卡内资源版本号、卡内资源大小等更新相关信息,具体参见表6。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:更新初始化请求01h:更新初始化响应02h:下载更新请求03h:下载更新响应其余:保留 |
M |
响应状态(ACK) |
00h:成功01h:操作超时错误02h:新软件与当前软件版本相同 03h:卡内空间不足04h:卡状态错误05h~FFh:保留 |
M |
更新起始位置 (UpdateAddr) |
当ACK为0x00时,该字段标识更新起始位置;否则,该字段为0。 |
M |
扩展域(Extension) |
|
O |
表6 Update_Initial_Rep的格式
图8b为本发明中基于智能存储卡控制访问接口的身份认证流程图。如图8b所示,基于智能存储卡控制访问接口的身份认证流程包括:
步骤801b、终端设备向智能存储卡发送身份认证请求(Host_Auth_Req),请求智能存储卡验证终端设备的身份。
其中,Host_Auth_Req包括:会话标识、命令类别、终端设备标识、终端设备生成的终端设备随机数、密钥种子矢量、终端设备支持的加密或签名算法集合及其协议版本,具体参见表7。
名称 |
描述 |
M/O |
会话标识 (SessionID) |
|
M |
命令类别(FlagInfo) |
00h:身份认证请求 01h:身份认证请求响应 02h:身份认证完成请求 03h:身份认证完成响应 其余:保留 |
M |
终端设备标识(IDH) |
|
M |
密钥种子矢量(IVH) |
|
M |
终端设备随机数 (RNH) |
|
M |
终端设备支持的加 |
|
M |
密及签名算法集合 (Supported Algorithms) |
|
|
加密及签名算法集 合的协议版本 (Version) |
|
M |
扩展域(Extension) |
|
O |
表7 Host_Auth_Req的格式
步骤802b、智能存储卡接收到Host_Auth_Req后,根据密钥种子矢量选择密钥种子并生成智能存储卡认证密钥,然后智能存储卡从终端设备支持的加密及签名算法集合中选择加密或签名算法,并利用生成的认证密钥和智能存储卡随机数对Host_Auth_Req中的终端设备随机数进行加密,加密后的终端设备随机数可表示为Encrypt(智能存储卡认证密钥,终端设备随机数‖智能存储卡随机数)。同时,智能存储卡也产生一个智能存储卡随机数,并向终端设备返回身份认证响应(Card_Auth_Rep)。
Card_Auth_Rep中包括:会话标识、命令类别、智能存储卡标识、智能存储卡选择的加密或签名算法及其协议版本、智能存储卡随机数、加密后的终端设备随机数、以及协商信息,具体参见表8。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:身份认证请求 01h:身份认证请求响应 02h:身份认证完成请求 03h:身份认证完成响应 其余:保留 |
M |
智能存储卡标识(IDC) |
|
M |
智能存储卡随机数(RNc) |
|
M |
智能存储卡选择的加密或签 名算法(SelectedAlgorithm) |
|
M |
智能存储卡选择的加密或签 名算法的协议版本 (SelectedVersion) |
|
M |
经智能存储卡加密后的终端 设备随机数(EC) |
|
M |
附加信息(AppendInfo) |
|
O |
扩展域(Extension) |
|
O |
表8 Host_Auth_Rep的格式
步骤803b、终端设备接收到智能存储卡的Card_Auth_Rep后,首先利用密钥种子矢量产生终端设备认证密钥,然后利用产生的终端设备认证密钥对Card_Auth_Rep中经智能存储卡加密的终端设备随机数进行解密,判断解密后的终端设备随机数是否与终端设备生成的终端设备随机数一致,如果一致,则终端设备将终端设备随机数与智能存储卡随机数相拼接,然后生成终端设备会话密钥,并利用该终端设备会话密钥对拼接后的随机数加密,然后向智能存储卡发送身份认证完成请求(Host_Auth_Finish_req);如果不一致,则认证失败,终止身份认证流程。
Host_Auth_Finish_req中包括:会话标识、命令类别、加密后的拼接随机数,具体参见表9。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:身份认证请求 01h:身份认证请求响应 02h:身份认证完成请求 03h:身份认证完成响应 其余:保留 |
M |
加密后的拼接随机数(EH) |
|
M |
附加信息(AppendInfo) |
|
O |
扩展域(Extension) |
|
O |
表9 Host_Auth_Finish_req的格式
步骤804b、智能存储卡接收到Host_Auth_Finish_req后,以同样的方式产生智能存储卡会话密钥,利用该智能存储卡会话密钥,解密并分解出智能存储卡随机数和终端设备随机数,检验解密分解得到的智能存储卡随机数与之前生成的智能存储卡随机数是否相同,如果相同,返回身份认证完成响应(Host_Auth_Finish_rep)表示认证成功;否则,返回Host_Auth_Finish_rep表示认证失败。Host_Auth_Finish_rep中包括:会话标识、命令类别、响应 状态,具体参见表10。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:身份认证请求 01h:身份认证请求响应 02h:身份认证完成请求 03h:身份认证完成响应 其余:保留 |
M |
响应状态(ACK) |
00h:认证成功 01h:认证失败 其余:保留 |
M |
附加信息(AppendInfo) |
|
O |
扩展域(Extension) |
|
O |
表10 Host_Auth_Finish_rep的格式
基于上述认证流程,保证了智能存储卡内的各种应用资源不得随意增加和更改。
图8c为本发明中基于智能存储卡控制访问接口的下载更新流程图。如图8c所示,由于终端设备和智能存储卡之间每一次传输的数据量有限,因此如果下载更新的卡内资源比较大,则必须分为多个数据包依次下载,而每一次基于智能存储卡控制访问接口的下载更新流程包括:
步骤801c、终端设备向智能存储卡发送携带有数据包的下载更新请求(Update_SI_Req),对智能存储卡进行卡内更新操作。
Update_SI_Req中包括:会话标识、命令类别、更新结尾标识、更新起始位置、当前数据包标识、当前数据包长度、当前数据包中用于卡内更新的卡内资源,具体参见表11。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:更新初始化请求 01h:更新初始化响应 02h:下载更新请求 03h:下载更新响应 其余:保留 |
M |
更新结尾标识 |
0x00:表示后面还有数据包 |
M |
(LastBlock) |
0xFF:表示最后一块数据包 |
|
数据包标识(BlockId) |
表示当前是第几块数据包 |
M |
更新起始位置 (UpdateAddr) |
|
M |
数据包长度 (UpdateInfoLength) |
|
M |
数据包中包含的卡内 资源(UpdateInfo) |
|
M |
扩展域(Extension) |
|
O |
表11 Update_SI_Req的格式
步骤802c、智能存储卡接收到Update_SI_Req后,利用Update_SI_Req携带的数据包中的卡内资源进行卡内更新,并根据更新的结果返回下载更新响应(Update_SI_Rep)。
Update_SI_Rep中包括:会话标识、命令类别、响应状态,具体参见表12。
名称 |
描述 |
M/O |
会话标识(SessionID) |
|
M |
命令类别(FlagInfo) |
00h:更新初始化请求 01h:更新初始化响应 02h:下载更新请求 03h:下载更新响应 其余:保留 |
M |
响应状态(ACK) |
00h:成功 01h:操作超时错误 02h:卡状态错误 03h:读智能存储卡错误 04h:写智能存储卡错误 05h~FFh:保留 |
M |
扩展域(Extension) |
|
O |
表12 Update_SI_Rep的格式
当然,如前所述,由于较大的卡内资源必须分为多个数据包依次下载,因而上述步骤801c和步骤802c是交替循环执行的。
上述如图7、图8a~图8c所示的基于接口(1)和接口(2)的交互流程中,涉及由智能存储卡执行的操作,可以由存储卡控制器来完成,也可以由 扩展应用芯片来完成。
接口(3)称为智能存储卡移动应用管理接口。
移动应用是用于实现各种移动应用业务的移动存储应用程序的简称,移动应用分为两种状态:一种是在尚未安装在智能存储卡中的状态、即在应用服务器中的存在形式,称为移动应用包;另一种是安装到智能存储卡或终端设备等通用应用平台后的状态,称为移动应用程序。移动应用必须通过应用移动管理接口安装到通用应用平台后,才能够在终端设备中运行,实现移动便利的个性化移动应用业务。
也就是说,应用服务器中存储实现各种移动功能的移动应用,通过智能存储卡移动应用管理接口、并以所述终端设备为代理,向智能存储卡发送移动应用。需要说明的是,用于实现各种移动功能的移动应用的构建,为本领域技术人员依据现有技术所能够实现,在此不再赘述。
移动应用通过加载到通用应用平台来实现其功能,在移动应用的整个生命周期里,包括安装、运行、停止、卸载等应运管理操作。应用移动管理接口则定义了与应用管理操作相关的数据和行为规范。
例如,移动应用由应用服务器通过移动应用管理接口安装到智能存储卡之后,生成一个应用信息文件,记录已加载的移动应用的属性和数据。
其中,应用信息文件是一个XML文件,以“AppInfo.wreg”为名称。应用信息文件内分多个记录单元,以一个移动应用程序的相关信息为一个记录单元。
每一个记录单元均可按照如下方式生成:
某一个移动应用安装成功后,将该移动应用包配置文件里<AppConfigure>与</AppConfigure>间的所有元素作为一个完整单元,拷贝到应用信息文件内,记录为该移动应用对应的信息记录单元,并且做如下更改:
a)、加入移动应用程序的基础地址项(AppBase),记录的内容为该移 动应用的基础安装目录。如果是安装在终端设备上,则记录绝对地址;安装在智能存储卡上,则记录相对地址。
b)、将入口地址(AppEntry)改为安装后入口程序文件地址:如果是安装在终端设备上,则记录绝对地址;安装在智能存储卡上,则记录相对地址。
c)、将库名称(Library)内记录的库地址改为安装后的对应地址。
d)、将辅助数据(Auxilary)内记录的辅助数据文件地址改为安装后的对应地址。
e)、可根据需要,对原有的参数(Parameter)、初始化数据(InitialData)做相应的更改。
以移动应用为北京地图导航控制器为例,记录单元的组织形式可参见表13。
表13 记录单元的组织形式
接口(4)称为智能存储卡动态服务接口。
动态服务是指:用户可以根据自己的需要,随时增加或删除智能存储卡内供终端设备运行的业务菜单以及定制等实现增值应用的智能应用程序,以此实现个性化移动应用业务更新的实时性,同时使服务商能更方便、迅速地全面展开各项服务。
业务菜单的下载可借助于网络消息的形式,由应用服务器动态通过智能存储卡动态服务接口、并经终端设备透传至智能存储卡中,然后再由智能存储卡提供给终端设备,从而呈现给使用该终端设备的用户。
具体来说,智能存储卡中的扩展应用芯片承载的卡端应用程序能够通过终端设备向用户提供人机接口界面,用户通过该人机接口界面发起动态服务下载申请,并经智能存储卡、终端设备发送至应用服务器。然后,应用下载服务器根据用户的下载申请,以网络消息的形式将相应的动态服务内容发给用户应用平台,并将下载数据透明地传递给智能存储卡,再由智能存储卡对下载内容进行组织存贮。
也就是说,应用服务器能够在终端设备运行移动存储应用程序的过程中,通过智能存储卡动态服务接口、并以终端设备为代理,添加或删除智能存储卡中存储的供终端设备运行的移动存储应用程序。
图9为本发明中基于智能存储卡动态服务接口的业务菜单下载流程图。如图9所示,以服务内容为业务菜单为例,由于每一次传输的数据量有限,因此如果下载更新的数据量比较大,则必须进行分数据包下载,每一数据包的下载过程包括:
步骤901、用户通过人机界面、经智能存储卡端向服务端发送更新请求、或删除请求,请求更新或删除某一菜单,该请求中包括当前的菜单版本号、菜单ID、父菜单ID、智能存储卡的可用空间。
步骤902、应用服务器接收到更新请求或删除请求后,根据请求中的菜单版本号、菜单ID、父菜单ID、智能存储卡的可用空间进行相应的判断,并根据判断结果,返回是否允许更新或删除的更新响应或删除响应。
步骤903、应用服务器向智能存储卡发送下行命令,智能存储卡根据命 令字段进行相应的更新、删除操作。其中,对于更新操作,则需要携载菜单版本号、菜单ID、菜单名称、菜单内容、菜单分组号、父菜单ID、子菜单数、子菜单ID。
步骤904、智能存储卡对相应的操作结果向应用服务器反馈操作响应,确认操作成功或者重发请求。
至此,上述流程结束。
上述基于接口(3)和接口(3)的交互流程中,涉及智能存储卡的操作,可以由存储卡控制器来完成,也可以由扩展应用芯片来完成。
由上述具体实施方式可见,本发明中的智能存储卡在现有存储卡中增加了扩展应用芯片,该扩展应用芯片中承载有卡端应用程序。这样,智能存储卡的扩展应用芯片中承载的卡端应用程序,能够实现对与该智能存储卡相连的终端设备中运行的各种智能应用程序的管理,使得智能存储卡的功能不仅限于数据存储。而且,包含该智能存储卡的智能存储卡系统中,终端设备能够从应用服务器中下载各种智能应用程序,且智能存储卡中的卡内应用程序也可通过终端设备从应用服务器下载更新。
此外,应用服务器还能够基于智能存储卡,提供各种移动应用和动态服务,使得智能存储卡能够支持更多的功能扩展。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。