一种对象间关联关系的提供方法、装置及智能卡与流程

文档序号:13137542阅读:194来源:国知局
一种对象间关联关系的提供方法、装置及智能卡与流程
本发明涉及智能卡
技术领域
,尤其涉及一种对象间关联关系的提供方法、装置及智能卡。
背景技术
:基于规范《globalplatformcardspecification2.2.1》,用户可通过读卡设备(如支持nfc功能的手机、读卡器、pos机等)向智能卡中的安全域发送getstatus指令,用户可获取智能卡的卡片状态信息、安全域列表、卡应用列表、可执行加载文件列表以及每个可执行加载文件对应的可执行加载模块列表。现有的智能卡内对象包括主安全域、辅助安全域、卡应用、可执行加载文件、可执行模块等,基于规范《globalplatformcardspecification2.2.1》,现有的智能卡框架还支持对中关联关系,即智能卡中包括卡内对象间的关联关系,对象间的关联关系包括:安全域(securitydomain)之间的关联关系、安全域与可执行加载文件的关联关系、安全域与卡应用的关联关系、卡应用与可执行模块的关联关系以及执行加载文件与卡应用的关联关系(以下将这种通过关联而形成的体系,简称为关联树)。但这些关联关系只在智能卡内可见,用户无法从智能卡中获取这些关联关系。技术实现要素:本发明提供一种对象间关联关系的提供方法、装置及智能卡,用以解决现有技术智能卡中对象间关联关系只在智能卡内可见,用户无法从智能卡中获取对象间关联关系的问题。一种对象间关联关系的提供方法,包括:被选中的主安全域接收卡外部设备发送的获取与指定对象具有指定关联关系的对象的指令;所述主安全域从注册表中查找与所述指定对象具有所述指定关联关系的对象;所述主安全域通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备。所述方法中,所述指定对象为指定卡应用时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定卡应用所属的可执行加载文件的指令,或,获取指定卡应用所属的可执行模块的指令,或,获取指定卡应用所属的可执行加载文件和可执行模块的指令;所述指定对象为指定安全域时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定安全域下直接关联的所有对象的指令,或,获取指定安全域下间接关联的所有对象的指令,或,获取指定安全域下直接关联的所有对象以及间接关联的所有对象的指令;所述指定对象为指定可执行加载文件时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定可执行加载文件下的所有应用的指令。本发明实施例,通过不同的指令获取不同的关联关系,从而得到对象间的关联关系。所述方法中,所述指令的数据域字段中携带所述指定对象的标识,并且所述指令中的数据域的格式为tlv格式;所述指令的第一扩展字段p1中携带获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识,其中,不同的获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识对应的指定关联关系不同,所述指令的第二扩展字段p2中携带单次向所述卡外部设备响应的最大数据量。所述方法中,从注册表中查找与所述指定对象具有所述指定关联关系的对象,具体包括:根据所述指令中携带的指定对象的标识,查找所述注册表中是否包含所述指定对象的标识,其中,注册表中预先存储对象标识以及对象间的关联关系;如果是,根据所述指定对象的标识,从注册表中查找与所述指定对象具有所述指定关联关系的对象的标识;否则,返回不存在指定对象的提示信息。本发明实施例,首先确定指定对象是否合法,即查找注册表中是否存在指定对象的标识,如果不存在,则说明该指定对象为不合法对象,返回提示信息。所述方法中,所述通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备,具体包括:将查找到的与所述指定对象具有所述指定关联关系的各个对象按照设定顺序编辑到所述响应报文的指定字段;将编辑后的响应报文响应给所述卡外部设备。本发明实施例,智能卡获取与指定对象具有指定关联关系的对象后,通过针对获取与指定对象具有指定关联关系的响应报文,将获取的对象返回给卡外部设备。所述方法中,将查找到的与所述指定对象具有所述指定关联关系的各个对象编辑到所述响应报文的指定字段,具体包括:针对与所述指定对象具有所述指定关联关系的每个对象,将该对象的标识的长度、该对象的标识、该对象的类型标识的长度以及该对象的类型标识,编辑到该对象在所述响应报文中对应的指定字段,其中,以不同的标识表示不同类型的对象,对象的类型包括:安全域类型、卡应用类型、可执行加载文件类型以及可执行模块类型。本发明还提供一种对象间关联关系的提供装置,包括:指令接收单元,用于接收卡外部设备发送的获取与指定对象具有指定关联关系的对象的指令;查找单元,用于从注册表中查找与所述指定对象具有所述指定关联关系的对象;响应单元,用于通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备。所述装置中,所述指定对象为指定卡应用时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定卡应用所属的可执行加载文件的指令,或,获取指定卡应用所属的可执行模块的指令,或,获取指定卡应用所属的可执行加载文件和可执行模块的指令;所述指定对象为指定安全域时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定安全域下直接关联的所有对象的指令,或,获取指定安全域下间接关联的所有对象的指令,或,获取指定安全域下直接关联的所有对象以及间接关联的所有对象的指令;所述指定对象为指定可执行加载文件时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定可执行加载文件下的所有应用的指令。所述装置中,所述指令的数据域字段中携带所述指定对象的标识,并且所述指令中的数据域的格式为tlv格式;所述指令的第一扩展字段p1中携带获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识,其中,不同的获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识对应的指定关联关系不同,所述指令的第二扩展字段p2中携带单次向所述卡外部设备响应的最大数据量。所述装置中,所述查找单元具体用于:根据所述指令中携带的指定对象的标识,查找所述注册表中是否包含所述指定对象的标识,其中,注册表中预先存储对象标识以及对象间的关联关系;如果是,根据所述指定对象的标识,从注册表中查找与所述指定对象具有所述指定关联关系的对象的标识;否则,返回不存在指定对象的提示信息。所述装置中,所述响应单元具体用于:将查找到的与所述指定对象具有所述指定关联关系的各个对象按照设定顺序编辑到所述响应报文的指定字段;将编辑后的响应报文响应给所述卡外部设备。所述装置中,所述响应单元在将查找到的与所述指定对象具有所述指定关联关系的各个对象编辑到所述响应报文的指定字段时,具体用于:针对与所述指定对象具有所述指定关联关系的每个对象,将该对象的标识的长度、该对象的标识、该对象的类型标识的长度以及该对象的类型标识,编辑到该对象在所述响应报文中对应的指定字段,其中,以不同的标识表示不同类型的对象,对象的类型包括:安全域类型、卡应用类型、可执行加载文件类型以及可执行模块类型。本发明还提供一种智能卡,所述智能卡的主安全域处于被选定状态,所述智能卡的主安全域包括上述任一实施例提供的对象间关联关系的提供装置。利用本发明提供对象间关联关系的提供方法、装置及智能卡,具有以下有益效果:支持获取与指定对象具有指定关联关系的对象的指令,从而为用户提供获取用户所需的关联关系的操作入口,使得用户能够获取所需的关联关系,进而使得智能卡中的对象间关联关系对用户可见。附图说明图1为本发明实施例提供的对象间关联关系的提供方法流程图;图2为本发明实施例提供的查找与定对象具有所述指定关联关系的对象的方法流程图;图3为本发明实施例提供的将查找到的对象响应给卡外部设备的方法流程图;图4为本发明实施例提供的智能卡内对象及对象间关联关系示意图;图5为本发明实施例提供的一实施例流程图;图6为本发明实施例提供的对象间关联关系的提供装置示意图。具体实施方式下面结合附图和实施例对本发明提供的对象间关联关系的提供方法及装置进行更详细地说明。本发明实施例提供一种对象间关联关系的提供方法,如图1所示,包括:步骤101,被选中的主安全域接收卡外部设备发送的获取与指定对象具有指定关联关系的对象的指令。具体的,智能卡中的open模块接收到卡外部设备发送的获取与指定对象具有指定关联关系的对象的指令后,判断该指令的载体是否为主安全域(即判断主安全域是否被选定),如果否,向卡外部设备返回指令不支持的提示,如果是,在确定主安全域已开启安全会话并且验证该指令满足安全会话要求时,恢复该指令的明文数据,之后,智能卡中的open模块将该指令的明文数据发送给主安全域。被选中的主安全域接收来自卡外部设备的获取与指定对象具有指定关联关系的对象的指令,该指令的格式与规范《gpcspecification2.2.1》中规定的指令格式相同。指定对象可以是智能卡中的主安全域、辅助安全域、卡应用、可执行加载文件或可执行模块,指定关联关系可以为所属、包含等关联关系,此处的关联关系可根据用户实际需要获取的关系进行定义,这里不做限定。其中指定对象为用户选择的对象,指定关联关系也为用户选择的关联关系。步骤102,所述主安全域从注册表中查找与所述指定对象具有所述指定关联关系的对象。具体的,智能卡的注册表内存储有卡内对象的标识以及卡内对象间的关联关系,主安全域根据步骤101中指令中的指定对象以及指定关联关系,从注册表中查找与该指定对象具有指定关联关系的对象。步骤103,所述主安全域通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备。具体的,主安全域将查找到的与指定对象具有指定关联关系的对象通过相应报文,响应给卡外部设备。本发明实施例,智能卡支持获取与指定对象具有指定关联关系的对象的指令,从而为用户提供获取用户所需的关联关系的操作入口,具体可通过修改智能卡操作系统中的相关代码,使该操作系统支持获取与指定对象具有指定关联关系的对象的指令。优选地,在执行步骤102之前,还包括:主安全域根据所述指定对象的标识,查找注册表中是否存储该指定对象的标识,如果是,执行步骤102,否则,返回不存在满足条件的对象的提示。优选地,指定对象为指定卡应用时,获取与指定对象具有指定关联关系的对象的指令为:获取指定卡应用所属的可执行加载文件的指令,或,获取指定卡应用所属的可执行模块的指令,或,获取指定卡应用所属的可执行加载文件和可执行模块的指令。优选地,所述指定对象为指定安全域时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定安全域下直接关联的所有对象的指令,或,获取指定安全域下间接关联的所有对象的指令,或,获取指定安全域下直接关联的所有对象以及间接关联的所有对象的指令。优选地,所述指定对象为指定可执行加载文件时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定可执行加载文件下的所有卡应用的指令,即,获取指定可执行加载文件包含的所有卡应用的指令。具体的,规范《gpcspecification2.2.1》规定的指令中包括指令类别字段、第一扩展字段p1、第二扩展字段p2、数据域长度字段lc(用于表数据域字段的长度)、数据域字段data,其中,指令类别字段用于标识指令的功能,本发明实施例中规定获取与指定对象具有指定关联关系的对象的指令的指令类别字段为gethierarchy(获取与指定对象具有指定关联关系的对象的指令)、data字段携带所述指定对象的标识并且该data字段的格式为tlv格式;p1字段中携带获取与data字段中的指定对象具有特定关联关系的对象的标识,其中,不同的获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识对应的指定关联关系不同,第二扩展字段p2中携带单次向所述卡外部设备响应的最大数据量。p1字段中携带的与data字段中的指定对象具有特定关联关系的对象的标识与指定关联关系的对应关系如表1所示:表1中,获取data字段中的指定对象所关联的安全域中指定对象可以为安全域、卡应用、可执行加载文件、可执行加载模块中的任一对象。具体的,可以规定智能卡每次向卡外部设备返回的数据量的大小,本发明实施例将p2字段的含义规定为单次向卡外部设备响应的最大数据量,该最大数据量的值可根据实际情况设定,当p2字段中的标识不同时,可表示单次向卡外部设备返回的数据量不同,比如,00表示单次向卡外部设备响应主安全域获取的第一条数据,02表示单次向卡外部设备响应主安全域获取的全部符合条件的数据,当数据未响应完整且卡外部设备依然需要主安全域响应剩余数据时,可将p2字段修改为01,其中01表示继续获取剩余数据响应给卡外部设备,当主安全域向卡外部设备响应依次数据后,向卡外部设备提示是否还有满足条件的数据可以响应,如果是,卡外部设备再次向主安全域发送获取数据的指令,以获取其它满足条件的数据。data字段的格式如表2所示,其中,标签用于表示值(v)的含义为对象标识id,长度为对象标识id所占的字节数,值为对象标识。标签(t)长度(l)值(v)4f‘05’-‘10’id通过将指令中的各个字段进行定义,得到了获取与指定对象具有指定关联关系的对象的指令,从而达到了获取与指定对象具有指定关联关系的对象的目的。具体的,每个对象均具有标识,不同对象的标识不同,本发明实施例将对象的标识响应给卡外部设备,步骤103,从注册表中查找与所述指定对象具有所述指定关联关系的对象,如图2所示,具体包括:步骤201,根据所述指令中携带的指定对象的标识,查找所述注册表中是否包含所述指定对象的标识,如果是,执行步骤202,否则,执行步骤203。其中,注册表中预先存储对象标识以及对象间的关联关系。步骤202,根据所述指定对象的标识,从注册表中查找与所述指定对象具有所述指定关联关系的对象的标识。具体的,将查找到的对象的标识响应给卡外部设备。步骤203,返回不存在指定对象的提示信息。本发明实施例,首先确定指定对象是否合法,即查找注册表中是否存在指定对象的标识,如果不存在,则说明该指定对象为不合法对象,返回提示信息。优选地,步骤103,所述通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备,如图3所示,具体包括:步骤301,将查找到的与所述指定对象具有所述指定关联关系的各个对象按照设定顺序编辑到所述响应报文的指定字段。具体的,设定顺序可以根据实际场景设定,这里不做限定。步骤302,将编辑后的响应报文响应给所述卡外部设备。具体的,智能卡获取与指定对象具有指定关联关系的对象后,通过针对获取与指定对象具有指定关联关系的响应报文,将获取的对象返回给卡外部设备。优选地,步骤301,将查找到的与所述指定对象具有所述指定关联关系的各个对象编辑到所述响应报文的指定字段,具体包括:针对与所述指定对象具有所述指定关联关系的每个对象,将该对象的标识的长度、该对象的标识、该对象的类型标识的长度以及该对象的类型标识,编辑到该对象在所述响应报文中对应的指定字段,其中,以不同的标识表示不同类型的对象,对象的类型包括:安全域类型、卡应用类型、可执行加载文件类型以及可执行模块类型。具体的,响应报文的格式如表3所示。描述长度(所占字节数)值第一个对象id长度1‘05’-‘10’第一个对象id5-16id第一个对象类型长度1‘01’第一个对象类型1‘01’………………最后一个对象id长度1‘05’-‘10’最后一个对象id5-16id最后一个对象类型长度1‘01’最后一个对象类型1’02’表3中,对象类型包括:卡应用类型、安全域类型、可执行加载文件类型以及可执行模块类型,其中,可以用01表示安全域类型,02表示卡应用类型,03表示可执行加载文件类型,04表示可执行模块类型,表3中第一个对象的类型为安全域类型,因此确定第一个对象为安全域(主安全域或辅助安全域),最后一个对象的类型为卡应用类型,因此确定最后一个对象为卡应用。表3中id的中文解释为标识。卡外部设备接收到响应报文后,通过解析该响应报文得到与指定对象具有关联关系的对象。下面结合具体实施例对本发明实施例提供的对象间关联关系的提供方法进行详细说明。实施例如图4所示,为智能卡内对象间的关联关系,其中,#001~#302为对象的标识。现有技术中,图4中的对象间的关联关系是不对用户开放的,即用户是无法获取其所需的关联关系的,由图4可知,与主安全域直接关联的对象为卡应用#001、辅助安全域#102以及辅助安全域#101,与主安全域间接关联的对象为图4中除了主安全域直接关联的对象为卡应用#001、辅助安全域#102以及辅助安全域#101以及主安全域之外的所有对象。如图5所示,为本发明实施例提供的对象间关联关系的提供方法的实施过程流程图,本实施例中假设指定对象为卡应用#002,用户需要获取的关联关系为卡应用#002所属的可执行模块,则对象间关联关系的提供方法包括:步骤501,主安全域接收到卡外部设备发送的获取指令;步骤502,主安全域判断该获取指令的p1字段和p2字段中携带的标识是否正确,如果是,执行步骤503,否则,执行步骤507。步骤503,主安全域判断获取指令的data字段的格式是否为tlv格式,如果是,执行步骤504,否则,执行步骤508。步骤504,主安全域查找注册表中是否存储获取指令的data字段中携带的对象标识#002,如果是,执行步骤505,否则,执行步骤509。步骤505,主安全域根据获取指令的p1字段中的标识对应的获取卡应用#002所属的可执行模块以及data字段中携带的对象标识#002,从注册表中查找卡应用#002所属的可执行模块#301。步骤506,主安全域根据p2字段规定的单次响应数据量的大小,将查找到的可执行模块#301编辑到响应报文中响应给卡外部设备。步骤507,提示p1字段或p2字段参数错误。步骤508,提示指令数据域格式错误。步骤509,提示不存在满足条件的对象。本发明还提供一种对象间关联关系的提供装置,如图6所示,包括:指令接收单元601,用于接收卡外部设备发送的获取与指定对象具有指定关联关系的对象的指令;查找单元602,用于从注册表中查找与所述指定对象具有所述指定关联关系的对象;响应单元603,用于通过响应报文,将查找到的与所述指定对象具有所述指定关联关系的对象响应给所述卡外部设备。所述装置中,所述指定对象为指定卡应用时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定卡应用所属的可执行加载文件的指令,或,获取指定卡应用所属的可执行模块的指令,或,获取指定卡应用所属的可执行加载文件和可执行模块的指令;所述指定对象为指定安全域时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定安全域下直接关联的所有对象的指令,或,获取指定安全域下间接关联的所有对象的指令,或,获取指定安全域下直接关联的所有对象以及间接关联的所有对象的指令;所述指定对象为指定可执行加载文件时,所述获取与指定对象具有指定关联关系的对象的指令为:获取指定可执行加载文件下的所有应用的指令。所述装置中,所述指令的数据域字段中携带所述指定对象的标识,并且所述指令中的数据域的格式为tlv格式;所述指令的第一扩展字段p1中携带获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识,其中,不同的获取与数据域字段中携带的指定对象具有指定关联关系的对象的标识对应的指定关联关系不同,所述指令的第二扩展字段p2中携带单次向所述卡外部设备响应的最大数据量。所述装置中,所述查找单元具体用于:根据所述指令中携带的指定对象的标识,查找所述注册表中是否包含所述指定对象的标识,其中,注册表中预先存储对象标识以及对象间的关联关系;如果是,根据所述指定对象的标识,从注册表中查找与所述指定对象具有所述指定关联关系的对象的标识;否则,返回不存在指定对象的提示信息。所述装置中,所述响应单元具体用于:将查找到的与所述指定对象具有所述指定关联关系的各个对象按照设定顺序编辑到所述响应报文的指定字段;将编辑后的响应报文响应给所述卡外部设备。所述装置中,所述响应单元在将查找到的与所述指定对象具有所述指定关联关系的各个对象编辑到所述响应报文的指定字段时,具体用于:针对与所述指定对象具有所述指定关联关系的每个对象,将该对象的标识的长度、该对象的标识、该对象的类型标识的长度以及该对象的类型标识,编辑到该对象在所述响应报文中对应的指定字段,其中,以不同的标识表示不同类型的对象,对象的类型包括:安全域类型、卡应用类型、可执行加载文件类型以及可执行模块类型。本发明实施例还提供一种智能卡,所述智能卡的主安全域处于被选定状态,所述智能卡的主安全域包括上述任一实施例提供的对象间关联关系的提供装置。利用本发明提供对象间关联关系的提供方法、装置及智能卡,具有以下有益效果:支持获取与指定对象具有指定关联关系的对象的指令,从而为用户提供获取用户所需的关联关系的操作入口,使得用户能够获取所需的关联关系,进而使得智能卡中的对象间关联关系对用户可见。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1