CN103514052B - 一种多应用之间互访的方法和智能卡 - Google Patents

一种多应用之间互访的方法和智能卡 Download PDF

Info

Publication number
CN103514052B
CN103514052B CN201310356160.5A CN201310356160A CN103514052B CN 103514052 B CN103514052 B CN 103514052B CN 201310356160 A CN201310356160 A CN 201310356160A CN 103514052 B CN103514052 B CN 103514052B
Authority
CN
China
Prior art keywords
data
application module
module
access controller
intended application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310356160.5A
Other languages
English (en)
Other versions
CN103514052A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201310356160.5A priority Critical patent/CN103514052B/zh
Publication of CN103514052A publication Critical patent/CN103514052A/zh
Application granted granted Critical
Publication of CN103514052B publication Critical patent/CN103514052B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种多应用之间互访的方法和智能卡,该智能卡包括访问控制器、源应用模块和目标应用模块,源应用模块调用访问控制器的API,将访问数据发送给访问控制器;访问控制器将该访问数据中的源AID和目标AID保存为应用标识对,根据目标AID将访问数据中的第一数据发送给目标应用模块;目标应用模块对接收到的第一数据进行处理,将处理得到的第二数据返回给访问控制器;访问控制器在接收到目标应用模块返回的第二数据后,根据自身保存的应用标识对,将接收到的第二数据发送给源应用模块。本发明提供的技术方案能够实现应用之间的互访和数据共享,减少了智能卡中的数据冗余,节省了智能卡的存储空间。

Description

一种多应用之间互访的方法和智能卡
技术领域
本发明涉及信息安全领域,特别是涉及一种多应用之间互访的方法和智能卡。
背景技术
智能卡是一种粘贴或嵌有集成电路芯片的便携式卡片,包含微处理器、输入输出接口和存储器等部分,提供了对数据的处理、访问控制和存储等功能。智能卡中可以同时容纳多个应用,并且在不同的场合使用不同的应用。用户还可根据需要将应用下载到智能卡中,或者将应用从智能卡中删除。
现有技术中,由于智能卡上的应用是由多个应用供应商提供的,为保证智能卡中的各应用之间的独立性以及应用数据的安全性,各应用数据之间相互隔离。
发明人在实行本发明的过程中,发现现有技术至少存在以下缺陷:
由于智能卡中的各应用数据之间相互隔离,不同的应用之间无法共享数据,造成了智能卡中的数据冗余和空间浪费,也限制了应用的使用范围,导致部分需要应用间交互处理的功能无法实现。
发明内容
本发明提供了一种多应用之间互访的方法和智能卡,以解决现有技术中应用之间无法共享数据的缺陷。
本发明提供了一种多应用之间互访的方法,包括以下步骤:
S1、访问控制器等待被应用模块调用应用程序接口;
S2、当所述访问控制器的应用程序接口被源应用模块调用时,所述访问控制器接收来自所述源应用模块的数据;
S3、所述访问控制器判断接收到的数据是否为访问数据,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S4、所述访问控制器根据所述访问数据中的目标应用标识,查找对应的目标应用模块,并判断是否查找到所述目标应用模块,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S5、所述访问控制器对所述目标应用模块的指令接口函数进行定位,通过调用所述目标应用模块的指令接口函数,将所述访问数据中的第一数据发送给所述目标应用模块,将所述访问数据中的源应用标识和所述目标应用标识分别作为第一标识和第二标识,生成并保存包含所述源应用标识和所述目标应用标识的应用标识对;
S6、所述访问控制器接收所述目标应用模块返回的第二数据,根据所述目标应用模块的应用标识,查找自身保存的、第二标识为所述目标应用模块的应用标识的应用标识对,并判断是否查找到应用标识对,如果是,则执行步骤S7;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S7、所述访问控制器根据查找到的应用标识对中的第一标识,查找对应的应用模块,并判断是否查找到对应的应用模块,如果是,则执行步骤S8;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S8、所述访问控制器对查找到的应用模块的指令接口函数进行定位,通过调用所述查找到的应用模块的指令接口函数,向所述查找到的应用模块发送所述第二数据,将所述查找到的应用标识对删除,并返回步骤S1。
本发明提供了一种智能卡,包括访问控制器、源应用模块和目标应用模块,所述访问控制器包括:
接收模块,用于在所述访问控制器的应用程序接口被源应用模块调用时,接收来自所述源应用模块的数据;接收所述目标应用模块返回的第二数据;
第一判断模块,用于判断所述接收模块接收到的数据是否为访问数据;
第一查找模块,用于在所述第一判断模块判断所述接收到的数据是访问数据时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
第一定位模块,用于对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
生成模块,用于将所述访问数据中的源应用标识和所述目标应用标识分别作为第一标识和第二标识,生成并保存包含所述源应用标识和所述目标应用标识的应用标识对;
第二查找模块,用于根据所述目标应用模块的应用标识,查找自身保存的、第二标识为所述目标应用模块的应用标识的应用标识对;
第三查找模块,用于根据所述第二查找模块查找到的应用标识对中的第一标识,查找对应的应用模块;
第二定位模块,用于对所述第三查找模块查找到的应用模块的指令接口函数进行定位;
删除模块,用于将所述第二查找模块查找到的应用标识对删除;
发送模块,用于在所述第一判断模块判断所述接收到的数据不是访问数据时,向所述源应用模块发送错误信息;在所述第一查找模块没有查找到对应的目标应用模块时,向所述源应用模块发送错误信息;通过调用所述第一定位模块定位到的所述目标应用模块的指令接口函数,将所述访问数据中的第一数据发送给所述目标应用模块;在所述第二查找模块没有查找到应用标识对时,向所述源应用模块发送错误信息;通过调用所述第二定位模块定位到的、所述查找到的应用模块的指令接口函数,向所述查找到的应用模块发送所述第二数据。
本发明提供的技术方案中,通过智能卡中的访问控制器在不同应用之间进行数据转接,实现了应用之间的互访和数据共享,减少了智能卡中的数据冗余,节省了智能卡的存储空间;在不需要增加共享接口函数的前提下,实现了需要应用间交互处理的功能,扩展了应用的使用范围。
附图说明
图1为本发明实施例中的智能卡和读卡器的结构示意图;
图2为本发明实施例中的应用模块处理数据的方法流程图;
图3为本发明实施例中的访问数据的结构示意图;
图4为本发明实施例中的访问控制器处理访问数据的方法流程图;
图5为本发明实施例中的访问控制器处理第二数据的方法流程图;
图6为本发明实施例中的智能卡的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种多应用之间互访的方法,应用于包括访问控制器、源应用模块和目标应用模块的智能卡中,智能卡和读卡器的结构如图1所示,源应用模块接收来自读卡器的APDU(Application Protocol Data Unit,应用协议数据单元)报文,调用访问控制器的API(Application Programming Interface,应用程序接口),将APDU报文中的访问数据发送给访问控制器;访问控制器将该访问数据中的源AID(ApplicationIdentifier,应用标识)和目标AID保存为应用标识对,根据目标AID将访问数据中的第一数据发送给目标应用模块,该第一数据可以为目标应用模块可执行的APDU报文,也可以为除APDU报文之外的其他类型的数据;目标应用模块对接收到的第一数据进行处理,将处理得到的第二数据返回给访问控制器;访问控制器在接收到目标应用模块返回的第二数据后,根据自身保存的应用标识对,将接收到的第二数据发送给源应用模块;源应用模块接收来自访问控制器的第二数据,可以对该第二数据进行处理,也可以将该第二数据返回给读卡器。其中,第二数据可以为APDU报文,也可以为除APDU报文之外的其他类型的数据。
基于上述互访机制,智能卡中的应用模块处理数据的流程如图2所示,包括以下步骤:
步骤201,应用模块等待接收来自读卡器的APDU报文。
例如,应用模块接收到的APDU报文为“80 B3 00 02 1A 06 11 11 11 11 11 1207 22 22 22 22 22 12 01 05 80 B2 00 01 07”。
步骤202,应用模块对接收到的APDU报文进行处理。
具体地,应用模块可以根据接收到的APDU报文,执行相应的函数功能,完成APDU报文所要求的函数调用。
例如,当应用模块接收到的APDU报文为“80 B3 00 02 1A 06 11 11 11 11 11 1207 22 22 22 22 22 12 01 05 80 B2 00 01 07”时,应用模块根据该APDU报文,执行相应的函数功能,完成该APDU报文所要求的函数调用。
步骤203,应用模块判断是否需要调用访问控制器的API,如果是,则执行步骤205;否则,执行步骤204。
具体地,应用模块可以判断接收到的APDU报文中是否包含预设的标记字节,如果是,则确定需要调用访问控制器的API;否则,确定不需要调用访问控制器的API。其中,预设的标记字节可以包含在APDU报文的头部或数据域中。
例如,预设的标记字节为“1A”时,如果应用模块接收到的APDU报文为“80 B3 0002 1A 06 11 11 11 11 11 12 07 22 22 22 22 22 12 01 05 80 B2 00 01 07”,应用模块判断出接收到的APDU报文中包含预设的标记字节,确定需要调用访问控制器的API;如果应用模块接收到的APDU报文为“80 B2 00 01 07”,应用模块判断出接收到的APDU报文中不包含预设的标记字节,确定不需要调用访问控制器的API。
步骤204,应用模块将处理得到的响应APDU返回给读卡器,并返回步骤201。
例如,如果应用模块接收到的APDU报文为“80 B2 00 01 07”,即,读记录文件命令,应用模块对该APDU报文进行处理,得到的处理结果为读取到的记录文件的内容,即“FFFF FF FF FF FF FF”。应用模块返回给读卡器的响应APDU为“FF FF FF FF FF FF FF 9000”。
步骤205,应用模块将接收到的APDU报文中所包含的访问数据发送给访问控制器。
具体地,应用模块可以通过访问控制器的API提供的参数接口,将APDU报文中所包含的访问数据发送给访问控制器。其中,访问数据的结构如图3所示,包括源AID、目标AID和第一数据,第一数据可以为可执行的APDU报文。
例如,应用模块接收到的APDU报文为“80 B3 00 02 1A 06 11 11 11 11 11 1207 22 22 22 22 22 12 01 05 80 B2 00 01 07”时,应用模块将该APDU报文中所包含的访问数据“06 11 11 11 11 11 12 07 22 22 22 22 22 12 01 05 80 B2 00 01 07”发送给访问控制器,其中,“11 11 11 11 11 12”为源AID,即应用模块的AID,“22 22 22 22 22 1201”为目标AID。
步骤206,应用模块接收访问控制器返回的第二数据,对第二数据进行处理,并返回步骤203。
具体地,访问控制器返回的第二数据可以为响应APDU,也可以为命令APDU,还可以为除APDU报文之外的其他类型的数据。应用模块接收到响应APDU后,可以将该响应APDU返回给读卡器;应用模块接收到命令APDU后,可以将对命令APDU做进一步处理。
例如,应用模块接收到访问控制器返回的响应APDU为“FF FF FF FF FF FF FF 9000”时,应用模块将该响应APDU返回给读卡器。
与上述步骤201至步骤206所示的应用模块的数据处理机制相对应,本发明实施例中的访问控制器处理访问数据的流程,如图4所示,包括以下步骤:
步骤400,访问控制器等待被应用模块调用API,并在API被源应用模块调用时,接收来自该源应用模块的数据。
步骤401,访问控制器判断接收到的数据是否为访问数据,如果是,则执行步骤402;否则,向源应用模块发送错误信息,并返回步骤400。
具体地,访问控制器可以判断接收到的数据中是否包含源AID和目标AID,如果是,则确定接收到的数据为访问数据;否则,确定接收到的数据不是访问数据。
例如,当访问控制器接收到的数据为“06 11 11 11 11 11 12 07 22 22 22 2222 12 01 05 80 B2 00 01 07”时,访问控制器判断出该数据包含源AID“11 11 11 11 1112”和目标AID“22 22 22 22 22 12 01”,进而确定该数据为访问数据。
步骤402,访问控制器对接收到的访问数据进行解析,得到访问数据中的源AID。
例如,当访问控制器接收到的访问数据为“06 11 11 11 11 11 12 07 22 22 2222 22 12 01 05 80 B2 00 01 07”时,访问控制器从该访问数据中解析得到源AID“11 1111 11 11 12”。
步骤403,访问控制器判断访问数据中的源AID是否与发送该访问数据的应用模块的AID相同,如果是,则执行步骤405;否则,执行步骤404。
具体地,访问控制器可以获取虚拟机中记录的当前应用模块的编号,根据该编号查询预设的AID列表,获取与该编号对应的AID,判断该AID是否与从访问数据中解析得到源AID相同。其中,AID列表中存储有智能卡中的各个应用模块的AID与编号的对应关系,如表1所示,访问控制器从AID列表中获取的与当前应用模块的编号对应的AID,即为发送访问数据的应用模块的AID。
表1AID列表
应用模块的编号 应用模块的AID
001 11 11 11 11 11 12
002 25 23 11 46 11 13
003 39 47 11 01 11 59
004 22 22 22 22 22 12 01
例如,访问控制器获取虚拟机中记录的当前应用模块的编号为“001”,根据该编号查询预设的AID列表,获取与该编号对应的AID为“11 11 11 11 11 12”,判断该AID与访问数据中的源AID“11 11 11 11 11 12”相同。
步骤404,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回安全错误信息“69 82”。
步骤405,访问控制器根据访问数据中的源AID,获取源应用模块的访问权限属性信息。
具体地,访问控制器可以根据访问数据中的源AID,查询预设的访问权限属性列表,获取对应的源应用模块的访问权限属性信息。其中,访问权限属性信息用于表示对应的应用模块是否具有向访问控制器发送数据以及接收来自访问控制器的数据的权限。在应用模块安装时或安装后,可以通过发送配置命令,对该应用模块的访问权限属性信息进行设置和修改。访问权限属性列表中存储有智能卡中的各个应用模块的AID及其各自的访问权限属性信息之间的对应关系,如表2所示:
表2访问权限属性列表
应用模块的AID 访问权限属性信息
11 11 11 11 11 12 01
25 23 11 46 11 13 03
39 47 11 01 11 59 02
22 22 22 22 22 12 01 03
例如,访问控制器获取访问数据中的源AID为“11 11 11 11 11 12”,根据该源AID查询预设的访问权限属性列表,获取该源应用模块的访问权限属性信息为“01”。
步骤406,访问控制器根据源应用模块的访问权限属性信息,判断源应用模块是否具有向访问控制器发送数据的权限,如果是,则执行步骤408;否则,执行步骤407。
具体地,访问控制器可以判断源应用模块的访问权限属性信息是否为第一预设值,如果是,则确定源应用模块具有向访问控制器发送数据的权限。例如,当第一预设值为“01”时,访问控制器获取到源应用模块的访问权限属性信息为“01”,则确定源应用模块具有发送数据的权限。
步骤407,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回权限错误信息“69 81”。
步骤408,访问控制器获取访问数据中的目标AID,根据该目标AID,获取目标应用模块的访问权限属性信息。
具体地,访问控制器可以根据访问数据中的目标AID,查询如表2所示的、预设的访问权限属性列表,获取对应的目标应用模块的访问权限属性信息。
例如,当访问控制器接收到的访问数据为“06 11 11 11 11 11 12 07 22 22 2222 22 12 01 05 80 B2 00 01 07”时,访问控制器从该访问数据中解析得到目标AID“2222 22 22 22 12 01”,根据该目标AID查询预设的访问权限属性列表,获取该目标应用模块的访问权限属性信息为“03”。
步骤409,访问控制器根据目标应用模块的访问权限属性信息,判断目标应用模块是否具有接收来自访问控制器的数据的权限,如果是,则执行步骤411;否则,执行步骤410。
具体地,访问控制器可以判断目标应用模块的访问权限属性信息是否为第二预设值,如果是,则确定目标应用模块具有接收来自访问控制器的数据的权限。例如,当第二预设值为“03”时,访问控制器获取到目标应用模块的访问权限属性信息为“03”,则确定目标应用模块具有接收来自访问控制器的数据的权限。
步骤410,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回权限错误信息“69 81”。
步骤411,访问控制器判断源AID和目标AID是否包含在预设的黑名单中,如果是,则执行步骤412;否则,执行步骤413。
其中,预设的黑名单中包含禁止与访问控制器进行数据交互的应用模块的AID,如表3所示。
表3黑名单
应用模块的AID
46 11 11 11 11 12
25 23 11 46 11 13
39 47 11 01 11 59
13 22 22 22 22 12 01
例如,访问控制器获取的源AID和目标AID分别为“11 11 11 11 11 12”和“22 2222 22 22 12 01”,通过查询如表3所示的黑名单,可以确定源AID和目标AID均不在预设的黑名单中。
步骤412,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回权限错误信息“69 81”。
步骤413,访问控制器判断源AID和目标AID是否包含在预设的白名单中,如果是,则执行步骤415;否则,执行步骤414。
其中,预设的白名单中包含允许与访问控制器进行数据交互的应用模块的AID,如表4所示。
表4白名单
应用模块的AID
11 11 11 11 11 12
11 23 11 46 11 13
22 47 11 01 11 59
22 22 22 22 22 12 01
例如,访问控制器获取的源AID和目标AID分别为“11 11 11 11 11 12”和“22 2222 22 22 12 01”,通过查询如表4所示的白名单,可以确定源AID和目标AID均包含在预设的白名单中。
步骤414,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回权限错误信息“69 81”。
步骤415,访问控制器根据目标AID查找对应的目标应用模块。
具体地,访问控制器可以根据目标AID,在预设的AID列表中查找对应的目标应用模块。
例如,目标AID为“22 22 22 22 22 12 01”时,访问控制器可以根据该目标AID查找对应的目标应用模块。
步骤416,访问控制器判断是否查找到目标应用模块,如果是,则执行步骤418;否则,执行步骤417。
步骤417,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向发送访问数据的源应用模块返回权限错误信息“69 81”。
步骤418,访问控制器定位查找到的目标应用模块的指令接口函数,使用该指令接口函数将访问数据中的第一数据发送给该目标应用模块。
具体地,访问控制器可以根据查找到的目标应用模块的指令接口函数的编号,查询该目标应用模块的函数列表,获取该目标应用模块的指令接口函数的地址,根据该地址调用该指令函数接口,将访问数据中的第一数据作为该指令接口函数的参数,从而将访问数据中的第一数据发送给该目标应用模块。其中,函数列表中存储有与该函数列表对应的应用模块的预定义函数的编号与地址的对应关系。访问控制器中可存储有多个函数列表,每个函数列表与智能卡中的应用模块一一对应。
本实施例中,访问控制器可以从目标应用模块中查找编号为第三预设值的包,从该包中查找编号为第四预设值的类,从该类中查找编号为第五预设值的指令接口函数的地址。
例如,当访问控制器接收到的访问数据为“06 11 11 11 11 11 12 07 22 22 2222 22 12 01 05 80 B2 00 01 07”,第三预设值为003,第四预设值为004,第五预设值为005时,访问控制器从AID为“22 22 22 22 22 12 01”的应用模块中查找编号为003的包,从查找到的编号为003的包中查找编号为004的类,从查找到的编号为004的类中查找编号为005的指令接口函数的地址,根据该地址调用指令接口函数,使用该指令接口函数将访问数据中的第一数据“80 B2 00 01 07”发送给该应用模块。
步骤419,访问控制器将访问数据中的源AID和目标AID分别作为第一标识和第二标识,生成并保存包含该源AID和该目标AID的应用标识对。
具体地,应用标识对包含第一标识和第二标识,可以存储在如表5所示的应用标识对列表中:
表5应用标识对列表
第一标识 第二标识
11 11 11 11 11 12 22 22 22 22 22 12 01
39 47 11 01 11 59 25 23 11 46 11 13
22 22 22 22 22 12 01 39 47 11 01 11 59
例如,当访问控制器接收到的访问数据为“06 11 11 11 11 11 12 07 22 22 2222 22 12 01 05 80 B2 00 01 07”时,访问控制器将该访问数据中的源AID“11 11 11 1111 12”和目标AID“22 22 22 22 22 12 01”分别作为第一标识和第二标识保存到表5中。
需要说明的是,目标应用模块接收到来自访问控制器的第一数据后,可以对第一数据进行处理,并将处理得到的第二数据返回给访问控制器。
在本发明的其他实施方式中,访问控制器还可以在向查找到的应用模块发送访问数据中的第一数据之前,根据访问数据中的源AID,获取源应用模块的访问权限属性信息,根据源应用模块的访问权限属性信息和访问数据中的目标AID,判断源应用模块是否具有通过访问控制器,向目标AID对应的目标应用模块发送数据的权限,如果是,则向目标应用模块发送访问数据中的第一数据,即,向查找到的应用模块发送访问数据中的第一数据;否则;向源应用模块返回错误信息。
具体地,访问控制器可以判断源应用模块的访问权限属性信息中的发送属性信息是否包含与目标应用模块对应的标识信息,如果是,则确定源应用模块具有通过访问控制器向目标应用模块发送数据的权限;否则,确定源应用模块不具有通过访问控制器向目标应用模块发送数据的权限。例如,源应用模块的访问权限属性信息中的发送属性信息为(02,07,1A,4C),当目标应用模块对应的标识信息为02时,访问控制器确定源应用模块具有通过访问控制器向目标应用模块发送数据的权限;当目标应用模块对应的标识信息为03时,访问控制器确定源应用模块不具有通过访问控制器向目标应用模块发送数据的权限。
另外,在本发明的其他实施方式中,访问控制器还可以在向查找到的应用模块发送访问数据中的第一数据之前,根据访问数据中的目标AID,获取目标应用模块的访问权限属性信息,根据目标应用模块的访问权限属性信息和访问数据中的源AID,判断目标应用模块是否具有通过访问控制器,接收来自源AID对应的源应用模块的数据的权限,如果是,则向目标应用模块发送访问数据中的第一数据,即,向查找到的应用模块发送访问数据中的第一数据;否则;向源应用模块返回错误信息。
具体地,访问控制器可以判断目标应用模块的访问权限属性信息中的接收属性信息是否包含与源应用模块对应的标识信息,如果是,则确定目标应用模块具有通过访问控制器接收来自源应用模块的数据的权限;否则,确定目标应用模块不具有通过访问控制器接收来自源应用模块的数据的权限。例如,目标应用模块的访问权限属性信息中的接收属性信息为(01,08,1B,3F),当源应用模块对应的标识信息为08时,访问控制器确定目标应用模块具有通过访问控制器接收来自目标应用模块的数据的权限;当源应用模块对应的标识信息为09时,访问控制器确定目标应用模块不具有通过访问控制器接收来自目标应用模块的数据的权限。
进一步地,本发明实施例中,访问控制器将访问数据中的第一数据发送给目标应用模块之后,等待接收目标应用模块返回的第二数据,并对第二数据进行处理,其处理流程如图5所示,包括以下步骤:
步骤501,访问控制器等待接收来自目标应用模块的第二数据。
步骤502,访问控制器接收到第二数据后,获取发送该第二数据的目标应用模块的AID,查找自身保存的、第二标识为该AID的应用标识对。
具体地,访问控制器可以获取虚拟机中记录的当前应用模块的编号,根据该编号查询预设的AID列表,获取与该编号对应的AID作为发送第二数据的目标应用模块的AID,并以该AID作为索引,在如表5所示的应用标识对列表中,查询第二标识为该AID的应用标识对。其中,第二数据可以为APDU报文,也可以为除APDU报文之外的其他类型的数据。
例如,访问控制器接收到的第二数据为“FF FFFF FF FF FF FF F9000”,虚拟机中记录的当前应用模块的编号为004时,访问控制器可以根据编号004查询表1,获取发送第二数据的目标应用模块的AID“22 22 22 22 22 12 01”,并使用该AID作为索引查询表5,查询第二标识为该AID的应用标识对(11 11 11 11 11 12,22 22 22 22 22 12 01)。
步骤503,访问控制器判断是否查找到应用标识对,如果是,则执行步骤505;否则,执行步骤504。
步骤504,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向源应用模块返回安全错误信息“69 82”。
步骤505,访问控制器根据查找到的应用标识对中的第一标识,查找对应的应用模块。
具体地,访问控制器可以根据查找到的应用标识对中的第一标识,在预设的AID列表中查找对应的应用模块。
例如,查找到的应用标识对为(11 11 11 11 11 12,22 22 22 22 22 12 01)时,访问控制器可以根据该应用标识对中的第一标识“11 11 11 11 11 12”查找对应的应用模块。
步骤506,访问控制器判断是否查找到应用模块,如果是,则执行步骤508;否则,执行步骤507。
步骤507,访问控制器向源应用模块发送错误信息,并返回步骤400。
例如,访问控制器向源应用模块返回权限错误信息“6982”。
步骤508,访问控制器定位查找到的应用模块的指令接口函数,使用该指令接口函数将第二数据发送给该应用模块,将查找到的应用标识对删除,并返回步骤400。
具体地,访问控制器可以根据查找到的应用模块的指令接口函数的编号,查询该应用模块的函数列表,获取该应用模块的指令接口函数的地址,根据该地址调用该指令函数接口,将第二数据作为该指令接口函数的参数,从而将第二数据发送给该应用模块,并将步骤502中查找到的应用标识对删除。其中,函数列表中存储有与该函数列表对应的应用模块的预定义函数的编号与地址的对应关系。访问控制器中可存储有多个函数列表,每个函数列表与智能卡中的应用模块一一对应。
本实施例中,访问控制器可以从查找到的应用模块中查找编号为第六预设值的包,从该包中查找编号为第七预设值的类,从该类中查找编号为第八预设值的指令接口函数的地址。
例如,当访问控制器接收到的第二数据为“FF FFFFFFFFFFFF 90 00”,查找到的应用模块的AID为“11 11 11 11 11 12”,第六预设值为006,第七预设值为007,第八预设值为008时,访问控制器从AID为“11 11 11 11 11 12”的应用模块中查找编号为006的包,从查找到的编号为006的包中查找编号为007的类,从查找到的编号为007的类中查找编号为008的指令接口函数的地址,根据该地址调用指令接口函数,使用该指令接口函数将第二数据“FF FFFFFFFFFFFF90 00”发送给该应用模块,将步骤502中查找到的应用标识对(11 11 1111 11 12,22 22 22 22 22 12 01)删除。
需要说明的是,在本发明的其他实施方式中,当访问控制器根据查找到的应用标识对中的第一标识,在预设的AID列表中查找不到对应的应用模块时,访问控制器可以将查找到的应用标识对删除,并向源应用模块返回错误信息,同样可以实现本发明的发明目的。
本发明实施例提供的技术方案中,通过智能卡中的访问控制器在不同应用之间进行数据转接,实现了应用之间的互访和数据共享,减少了智能卡中的数据冗余,节省了智能卡的存储空间;在不需要增加共享接口函数的前提下,实现了需要应用间交互处理的功能,扩展了应用的使用范围。
如图6所示,为本发明实施例中的智能卡的结构示意图,包括访问控制器600、源应用模块700和目标应用模块800,其中,访问控制器600包括:
接收模块601,用于在访问控制器600的应用程序接口被源应用模块700调用时,接收来自源应用模块700的数据;接收目标应用模块800返回的第二数据;
第一判断模块602,用于判断接收模块601接收到的数据是否为访问数据;
第一查找模块603,用于在第一判断模块602判断所述接收到的数据是访问数据时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块800;
第一定位模块604,用于对所述第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
具体地,上述第一定位模块604,具体用于从目标应用模块800中查找编号为第三预设值的包,从所述包中查找编号为第四预设值的类,从所述类中查找编号为第五预设值的指令接口函数的地址。
生成模块605,用于在发送模块610将所述访问数据中的第一数据发送给目标应用模块800后,将所述访问数据中的源应用标识和所述目标应用标识分别作为第一标识和第二标识,生成并保存包含所述源应用标识和所述目标应用标识的应用标识对;
第二查找模块606,用于根据目标应用模块800的应用标识,查找自身保存的、第二标识为目标应用模块800的应用标识的应用标识对;
第三查找模块607,用于第二查找模块606查找到的应用标识对中的第一标识,查找对应的应用模块;
第二定位模块608,用于对第三查找模块607查找到的应用模块的指令接口函数进行定位;
具体地,上述第二定位模块608,具体用于从第三查找模块607查找到的应用模块中查找编号为第六预设值的包,从所述包中查找编号为第七预设值的类,从所述类中查找编号为第八预设值的指令接口函数的地址。
删除模块609,用于将第二查找模块606查找到的应用标识对删除;
发送模块610,用于在第一判断模块602判断所述接收到的数据不是访问数据时,向源应用模块700发送错误信息;在第一查找模块603没有查找到对应的目标应用模块800时,向源应用模块700发送错误信息;通过调用第一定位模块604定位到的目标应用模块800的指令接口函数,将所述访问数据中的第一数据发送给目标应用模块800;在第二查找模块606没有查找到应用标识对时,向源应用模块700发送错误信息;通过调用第二定位模块608定位到的、第三查找模块607查找到的应用模块的指令接口函数,向所述查找到的应用模块发送所述第二数据。
优选地,上述访问控制器600可进一步包括第二判断模块611;
上述第二判断模块611,可以用于在第一判断模块602判断出接收到的数据为访问数据后,判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同;
相应地,上述第一查找模块603,具体用于在第二判断模块611判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识相同时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块800;
上述发送模块610,还用于在第二判断模块611判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识不同时,向源应用模块700发送错误信息。
上述第二判断模块611,还可以用于在第一查找模块603查找到对应的目标应用模块800后,判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同;
相应地,上述第一定位模块604,具体用于在所述第二判断模块611判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识相同时,对第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
上述发送模块610,还用于在第二判断模块611判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识不同时,向源应用模块700发送错误信息。
具体地,上述第二判断模块611,具体用于获取虚拟机中记录的当前应用模块的编号,根据所述编号查询预设的应用标识列表,获取与所述编号对应的应用标识,判断与所述编号对应的应用标识是否与所述访问数据中的源应用标识相同,所述应用标识列表中存储有所述智能卡中的各个应用模块的应用标识与编号之间的对应关系。
优选地,上述访问控制器600可进一步包括第三判断模块;
上述第三判断模块,可以用于在第一判断模块603判断出接收到的数据为访问数据后,根据所述访问数据中的源应用标识,获取源应用模块700的访问权限属性信息,根据源应用模块700的访问权限属性信息,判断源应用模块700是否具有向访问控制器600发送数据的权限;
相应地,上述第一查找模块603,具体用于在第三判断模块判断出源应用模块700具有向访问控制器600发送数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块800;
上述发送模块610,还用于在第三判断模块判断出源应用模块700不具有向访问控制器600发送数据的权限时,向源应用模块700发送错误信息。
上述第三判断模块,还可以用于在第一查找模块603查找到对应的目标应用模块800后,根据所述访问数据中的源应用标识,获取源应用模块700的访问权限属性信息,根据所述源应用模块700的访问权限属性信息,判断所述源应用模块700是否具有向所述访问控制器600发送数据的权限;
相应地,上述第一定位模块604,具体用于在第三判断模块判断出所述源应用模块700具有向访问控制器600发送数据的权限时,对第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
上述发送模块610,还用于在第三判断模块判断出源应用模块700不具有向访问控制器600发送数据的权限时,向源应用模块700发送错误信息。
具体地,上述第三判断模块,具体用于根据所述访问数据中的源应用标识,查询预设的访问权限属性列表,获取与所述源应用标识对应的源应用模块700的访问权限属性信息;判断所述源应用模块700的访问权限属性信息是否为第一预设值,如果是,则确定所述源应用模块700具有向所述访问控制器600发送数据的权限;否则,确定所述源应用模块700不具有向所述访问控制器600发送数据的权限。
优选地,上述访问控制器600可进一步包括第四判断模块;
上述第四判断模块,可以用于在第一判断模块603判断出接收到的数据为访问数据后,根据所述访问数据中的目标应用标识,获取目标应用模块800的访问权限属性信息,根据所述目标应用模块800的访问权限属性信息,判断目标应用模块800是否具有接收来自访问控制器600的数据的权限;
相应地,上述第一查找模块603,具体用于在第四判断模块判断出目标应用模块800具有接收来自访问控制器600的数据的权限时,根据访问数据中的目标应用标识,查找对应的目标应用模块800;
上述发送模块610,还用于在第四判断模块判断出目标应用模块800不具有接收来自访问控制器600的数据的权限时,向源应用模块700发送错误信息。
上述第四判断模块,还可以用于在第一查找模块603查找到对应的目标应用模块800后,根据所述访问数据中的目标应用标识,获取目标应用模块800的访问权限属性信息,根据目标应用模块800的访问权限属性信息,判断目标应用模块800是否具有接收来自访问控制器600的数据的权限;
相应地,上述第一定位模块604,具体用于在第四判断模块判断出目标应用模块800具有接收来自访问控制器600的数据的权限时,对第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
上述发送模块610,还用于在第四判断模块判断出目标应用模块800不具有接收来自访问控制器600的数据的权限时,向源应用模块700发送错误信息。
具体地,上述第四判断模块,具体用于根据访问数据中的目标应用标识,查询预设的访问权限属性列表,获取与所述目标应用标识对应的目标应用模块800的访问权限属性信息;判断目标应用模块800的访问权限属性信息是否为第二预设值,如果是,则确定目标应用模块800具有接收来自访问控制器600的数据的权限;否则,确定目标应用模块800不具有接收来自访问控制器600的数据的权限。
优选地,上述访问控制器600可进一步包括第五判断模块;
上述第五判断模块,可以用于在第一判断模块603判断出接收到的数据为访问数据后,根据所述访问数据中的源应用标识,获取源应用模块700的访问权限属性信息,根据源应用模块700的访问权限属性信息和所述访问数据中的目标应用标识,判断源应用模块700是否具有通过访问控制器600向所述目标应用标识对应的目标应用模块800发送数据的权限;
相应地,上述第一查找模块603,具体用于在第五判断模块判断出源应用模块700具有通过访问控制器600向所述目标应用标识对应的目标应用模块800发送数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块800;
上述发送模块610,还用于在第五判断模块判断出源应用模块700不具有通过访问控制器600向所述目标应用标识对应的目标应用模块800发送数据的权限时,向源应用模块700发送错误信息。
上述第五判断模块,还可以用于在第一查找模块603查找到对应的目标应用模块800后,根据所述访问数据中的源应用标识,获取源应用模块700的访问权限属性信息,根据源应用模块700的访问权限属性信息和所述访问数据中的目标应用标识,判断源应用模块700是否具有通过访问控制器600向目标应用标识对应的目标应用模块800发送数据的权限;
相应地,上述第一定位模块604,具体用于在第五判断模块判断出源应用模块700具有通过访问控制器600向所述目标应用标识对应的目标应用模块800发送数据的权限时,对第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
上述发送模块610,还用于在第五判断模块判断出源应用模块700不具有通过访问控制器600向所述目标应用标识对应的目标应用模块800发送数据的权限时,向源应用模块700发送错误信息。
具体地,上述第五判断模块,具体用于判断源应用模块700的访问权限属性信息中的发送属性信息是否包含与目标应用模块800对应的标识信息,如果是,则确定源应用模块700具有通过访问控制器600向目标应用模块800发送数据的权限;否则,确定源应用模块700不具有通过访问控制器600向目标应用模块800发送数据的权限。
优选地,上述访问控制器600可进一步包括第六判断模块;
上述第六判断模块,用于在第一判断模块603判断出接收到的数据为访问数据后,根据所述访问数据中的目标应用标识,获取目标应用模块800的访问权限属性信息,根据目标应用模块800的访问权限属性信息和所述访问数据中的源应用标识,判断目标应用模块800是否具有通过访问控制器600,接收来自所述源应用标识对应的源应用模块700的数据的权限;
相应地,上述第一查找模块603,具体用于在第六判断模块判断出目标应用模块800具有通过访问控制器600接收来自所述源应用标识对应的源应用模块700的数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块800;
上述发送模块610,还用于在第六判断模块判断出目标应用模块800不具有通过访问控制器600接收来自所述源应用标识对应的源应用模块700的数据的权限时,向源应用模块700发送错误信息。
上述第六判断模块,还可以用于在第一查找模块603查找到对应的目标应用模块800后,根据所述访问数据中的目标应用标识,获取目标应用模块800的访问权限属性信息,根据目标应用模块800的访问权限属性信息和访问数据中的源应用标识,判断目标应用模块800是否具有通过访问控制器600,接收来自所述源应用标识对应的源应用模块700的数据的权限;
相应地,上述第一定位模块604,具体用于在第六判断模块判断出目标应用模块800具有通过访问控制器600接收来自源应用标识对应的源应用模块700的数据的权限时,对第一查找模块603查找到的目标应用模块800的指令接口函数进行定位;
上述发送模块610,还用于在第六判断模块判断出目标应用模块800不具有通过访问控制600器接收来自源应用标识对应的源应用模块700的数据的权限时,向源应用模块700发送错误信息。
具体地,上述第六判断模块,具体用于判断目标应用模块800的访问权限属性信息中的接收属性信息是否包含与源应用模块700对应的标识信息,如果是,则确定目标应用模块800具有通过访问控制器600接收来自源应用模块700的数据的权限;否则,确定目标应用模块800不具有通过访问控制器600接收来自源应用模块700的数据的权限。
其中,源应用模块700发送给访问控制器600的访问数据,可以包含在源应用模块700接收到的应用协议数据单元报文中;
相应地,源应用模块700,用于接收来自读卡器或访问控制器600的所述应用协议数据单元报文,对所述应用协议数据单元报文进行处理,并在判断出需要调用访问控制器600的应用程序接口后,调用访问控制器600的应用程序接口。
目标应用模块800,用于接收来自访问控制器600的所述第一数据,对所述第一数据进行处理,得到所述第二数据,并将所述第二数据返回给访问控制器600。
上述第三查找模块607查找到的应用模块,用于接收来自访问控制器600的所述第二数据,对所述第二数据进行处理,判断是否需要调用访问控制器600的应用程序接口,如果是,则调用访问控制器600的应用程序接口,将所述第二数据中所包含的访问数据发送给访问控制器600;否则,将对所述第二数据的处理结果返回给读卡器。
本发明实施例提供的技术方案中,通过智能卡中的访问控制器在不同应用之间进行数据转接,实现了应用之间的互访和数据共享,减少了智能卡中的数据冗余,节省了智能卡的存储空间;在不需要增加共享接口函数的前提下,实现了需要应用间交互处理的功能,扩展了应用的使用范围。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (43)

1.一种多应用之间互访的方法,其特征在于,应用于包括访问控制器、源应用模块和目标应用模块的智能卡中,包括以下步骤:
S1、访问控制器等待被应用模块调用应用程序接口;
S2、当所述访问控制器的应用程序接口被源应用模块调用时,所述访问控制器接收来自所述源应用模块的数据;
S3、所述访问控制器判断接收到的数据是否为访问数据,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S4、所述访问控制器根据所述访问数据中的目标应用标识,查找对应的目标应用模块,并判断是否查找到所述目标应用模块,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S5、所述访问控制器对所述目标应用模块的指令接口函数进行定位,通过调用所述目标应用模块的指令接口函数,将所述访问数据中的第一数据发送给所述目标应用模块,将所述访问数据中的源应用标识和所述目标应用标识分别作为第一标识和第二标识,生成并保存包含所述源应用标识和所述目标应用标识的应用标识对;
S6、所述访问控制器接收所述目标应用模块返回的第二数据,根据所述目标应用模块的应用标识,查找自身保存的、第二标识为所述目标应用模块的应用标识的应用标识对,并判断是否查找到应用标识对,如果是,则执行步骤S7;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S7、所述访问控制器根据查找到的应用标识对中的第一标识,查找对应的应用模块,并判断是否查找到对应的应用模块,如果是,则执行步骤S8;否则,向所述源应用模块发送错误信息,并返回步骤S1;
S8、所述访问控制器对查找到的应用模块的指令接口函数进行定位,通过调用所述查找到的应用模块的指令接口函数,向所述查找到的应用模块发送所述第二数据,将所述查找到的应用标识对删除,并返回步骤S1。
2.如权利要求1所述的方法,其特征在于,所述访问控制器判断出接收到的数据为访问数据之后,还包括:
所述访问控制器判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1。
3.如权利要求1所述的方法,其特征在于,所述访问控制器查找到所述目标应用模块之后,还包括:
所述访问控制器判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1。
4.如权利要求2或3所述的方法,其特征在于,所述访问控制器判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同,具体为:
所述访问控制器获取虚拟机中记录的当前应用模块的编号,根据所述编号查询预设的应用标识列表,获取与所述编号对应的应用标识,判断与所述编号对应的应用标识是否与所述访问数据中的源应用标识相同,所述应用标识列表中存储有所述智能卡中的各个应用模块的应用标识与编号之间的对应关系。
5.如权利要求1所述的方法,其特征在于,所述访问控制器判断出接收到的数据为访问数据之后,还包括:
所述访问控制器根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息,判断所述源应用模块是否具有向所述访问控制器发送数据的权限,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1。
6.如权利要求1所述的方法,其特征在于,所述访问控制器查找到所述目标应用模块之后,还包括:
所述访问控制器根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息,判断所述源应用模块是否具有向所述访问控制器发送数据的权限,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1。
7.如权利要求5或6所述的方法,其特征在于,所述访问控制器根据所述访问数据中的源应用标识,获取所述源应用模块的访问权限属性信息,具体为:
所述访问控制器根据所述访问数据中的源应用标识,查询预设的访问权限属性列表,获取与所述源应用标识对应的源应用模块的访问权限属性信息;
所述访问控制器根据所述源应用模块的访问权限属性信息,判断所述源应用模块是否具有向所述访问控制器发送数据的权限,具体为:
所述访问控制器判断所述源应用模块的访问权限属性信息是否为第一预设值,如果是,则确定所述源应用模块具有向所述访问控制器发送数据的权限;否则,确定所述源应用模块不具有向所述访问控制器发送数据的权限。
8.如权利要求1所述的方法,其特征在于,所述访问控制器判断出接收到的数据为访问数据之后,还包括:
所述访问控制器根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息,判断所述目标应用模块是否具有接收来自所述访问控制器的数据的权限,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1。
9.如权利要求1所述的方法,其特征在于,所述访问控制器查找到所述目标应用模块之后,还包括:
所述访问控制器根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息,判断所述目标应用模块是否具有接收来自所述访问控制器的数据的权限,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1。
10.如权利要求8或9所述的方法,其特征在于,所述访问控制器根据所述访问数据中的目标应用标识,获取所述目标应用模块的访问权限属性信息,具体为:
所述访问控制器根据所述访问数据中的目标应用标识,查询预设的访问权限属性列表,获取与所述目标应用标识对应的目标应用模块的访问权限属性信息;
所述访问控制器根据所述目标应用模块的访问权限属性信息,判断所述目标应用模块是否具有接收来自所述访问控制器的数据的权限,具体为:
所述访问控制器判断所述目标应用模块的访问权限属性信息是否为第二预设值,如果是,则确定所述目标应用模块具有接收来自所述访问控制器的数据的权限;否则,确定所述目标应用模块不具有接收来自所述访问控制器的数据的权限。
11.如权利要求1所述的方法,其特征在于,所述访问控制器判断出接收到的数据为访问数据之后,还包括:
所述访问控制器根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息和所述访问数据中的目标应用标识,判断所述源应用模块是否具有通过所述访问控制器,向所述目标应用标识对应的目标应用模块发送数据的权限,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1。
12.如权利要求1所述的方法,其特征在于,所述访问控制器查找到所述目标应用模块之后,还包括:
所述访问控制器根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息和所述访问数据中的目标应用标识,判断所述源应用模块是否具有通过所述访问控制器,向所述目标应用标识对应的目标应用模块发送数据的权限,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1。
13.如权利要求11或12所述的方法,其特征在于,所述访问控制器根据所述源应用模块的访问权限属性信息和所述访问数据中的目标应用标识,判断所述源应用模块是否具有通过所述访问控制器,向所述目标应用标识对应的目标应用模块发送数据的权限,具体为:
所述访问控制器判断所述源应用模块的访问权限属性信息中的发送属性信息是否包含与所述目标应用模块对应的标识信息,如果是,则确定所述源应用模块具有通过所述访问控制器向所述目标应用模块发送数据的权限;否则,确定所述源应用模块不具有通过所述访问控制器向所述目标应用模块发送数据的权限。
14.如权利要求1所述的方法,其特征在于,所述访问控制器判断出接收到的数据为访问数据之后,还包括:
所述访问控制器根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息和所述访问数据中的源应用标识,判断所述目标应用模块是否具有通过所述访问控制器,接收来自所述源应用标识对应的源应用模块的数据的权限,如果是,则执行步骤S4;否则,向所述源应用模块发送错误信息,并返回步骤S1。
15.如权利要求1所述的方法,其特征在于,所述访问控制器查找到所述目标应用模块之后,还包括:
所述访问控制器根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息和所述访问数据中的源应用标识,判断所述目标应用模块是否具有通过所述访问控制器,接收来自所述源应用标识对应的源应用模块的数据的权限,如果是,则执行步骤S5;否则,向所述源应用模块发送错误信息,并返回步骤S1。
16.如权利要求14或15所述的方法,其特征在于,所述访问控制器根据所述目标应用模块的访问权限属性信息和所述访问数据中的源应用标识,判断所述目标应用模块是否具有通过所述访问控制器,接收来自所述源应用标识对应的源应用模块的数据的权限,具体为:
所述访问控制器判断所述目标应用模块的访问权限属性信息中的接收属性信息是否包含与所述源应用模块对应的标识信息,如果是,则确定所述目标应用模块具有通过所述访问控制器接收来自所述源应用模块的数据的权限;否则,确定所述目标应用模块不具有通过所述访问控制器接收来自所述源应用模块的数据的权限。
17.如权利要求1所述的方法,其特征在于,所述访问控制器对所述目标应用模块的指令接口函数进行定位,具体为:
所述访问控制器从所述目标应用模块中查找编号为第三预设值的包,从所述包中查找编号为第四预设值的类,从所述类中查找编号为第五预设值的指令接口函数的地址。
18.如权利要求1所述的方法,其特征在于,所述访问控制器对查找到的应用模块的指令接口函数进行定位,具体为:
所述访问控制器从所述查找到的应用模块中查找编号为第六预设值的包,从所述包中查找编号为第七预设值的类,从所述类中查找编号为第八预设值的指令接口函数的地址。
19.如权利要求1所述的方法,其特征在于,所述访问数据包含在所述源应用模块接收到的应用协议数据单元报文中;
所述源应用模块调用所述访问控制器的应用程序接口之前,还包括:
所述源应用模块接收来自读卡器或所述访问控制器的所述应用协议数据单元报文,对所述应用协议数据单元报文进行处理,并判断出需要调用所述访问控制器的应用程序接口。
20.如权利要求1所述的方法,其特征在于,所述目标应用模块接收到来自所述访问控制器的所述第一数据之后,还包括:
所述目标应用模块对所述第一数据进行处理,得到所述第二数据,并将所述第二数据返回给所述访问控制器。
21.如权利要求1所述的方法,其特征在于,所述访问控制器向查找到的应用模块发送所述第二数据之后,还包括:
所述查找到的应用模块对所述第二数据进行处理,判断是否需要调用所述访问控制器的应用程序接口,如果是,则调用所述访问控制器的应用程序接口,将所述第二数据中所包含的访问数据发送给所述访问控制器;否则,将对所述第二数据的处理结果返回给读卡器。
22.如权利要求1所述的方法,其特征在于,所述步骤S7中,所述访问控制器没有查找到对应的应用模块之后,还包括:
所述访问控制器将所述查找到的应用标识对删除。
23.一种智能卡,其特征在于,包括访问控制器、源应用模块和目标应用模块,所述访问控制器包括:
接收模块,用于在所述访问控制器的应用程序接口被源应用模块调用时,接收来自所述源应用模块的数据;接收所述目标应用模块返回的第二数据;
第一判断模块,用于判断所述接收模块接收到的数据是否为访问数据;
第一查找模块,用于在所述第一判断模块判断所述接收到的数据是访问数据时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
第一定位模块,用于对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
生成模块,用于将所述访问数据中的源应用标识和所述目标应用标识分别作为第一标识和第二标识,生成并保存包含所述源应用标识和所述目标应用标识的应用标识对;
第二查找模块,用于根据所述目标应用模块的应用标识,查找自身保存的、第二标识为所述目标应用模块的应用标识的应用标识对;
第三查找模块,用于根据所述第二查找模块查找到的应用标识对中的第一标识,查找对应的应用模块;
第二定位模块,用于对所述第三查找模块查找到的应用模块的指令接口函数进行定位;
删除模块,用于将所述第二查找模块查找到的应用标识对删除;
发送模块,用于在所述第一判断模块判断所述接收到的数据不是访问数据时,向所述源应用模块发送错误信息;在所述第一查找模块没有查找到对应的目标应用模块时,向所述源应用模块发送错误信息;通过调用所述第一定位模块定位到的所述目标应用模块的指令接口函数,将所述访问数据中的第一数据发送给所述目标应用模块;在所述第二查找模块没有查找到应用标识对时,向所述源应用模块发送错误信息;通过调用所述第二定位模块定位到的、所述查找到的应用模块的指令接口函数,向所述查找到的应用模块发送所述第二数据。
24.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第二判断模块,用于在所述第一判断模块判断出接收到的数据为访问数据后,判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同;
所述第一查找模块,具体用于在所述第二判断模块判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识相同时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
所述发送模块,还用于在所述第二判断模块判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识不同时,向所述源应用模块发送错误信息。
25.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第二判断模块,用于在所述第一查找模块查找到对应的目标应用模块后,判断所述访问数据中的源应用标识是否与发送所述访问数据的应用模块的应用标识相同;
所述第一定位模块,具体用于在所述第二判断模块判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识相同时,对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
所述发送模块,还用于在所述第二判断模块判断出所述访问数据中的源应用标识与发送所述访问数据的应用模块的应用标识不同时,向所述源应用模块发送错误信息。
26.如权利要求24或25所述的智能卡,其特征在于,
所述第二判断模块,具体用于获取虚拟机中记录的当前应用模块的编号,根据所述编号查询预设的应用标识列表,获取与所述编号对应的应用标识,判断与所述编号对应的应用标识是否与所述访问数据中的源应用标识相同,所述应用标识列表中存储有所述智能卡中的各个应用模块的应用标识与编号之间的对应关系。
27.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第三判断模块,用于在所述第一判断模块判断出接收到的数据为访问数据后,根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息,判断所述源应用模块是否具有向所述访问控制器发送数据的权限;
所述第一查找模块,具体用于在所述第三判断模块判断出所述源应用模块具有向所述访问控制器发送数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
所述发送模块,还用于在所述第三判断模块判断出所述源应用模块不具有向所述访问控制器发送数据的权限时,向所述源应用模块发送错误信息。
28.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第三判断模块,用于在所述第一查找模块查找到对应的目标应用模块后,根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息,判断所述源应用模块是否具有向所述访问控制器发送数据的权限;
所述第一定位模块,具体用于在所述第三判断模块判断出所述源应用模块具有向所述访问控制器发送数据的权限时,对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
所述发送模块,还用于在所述第三判断模块判断出所述源应用模块不具有向所述访问控制器发送数据的权限时,向所述源应用模块发送错误信息。
29.如权利要求27或28所述的智能卡,其特征在于,
所述第三判断模块,具体用于根据所述访问数据中的源应用标识,查询预设的访问权限属性列表,获取与所述源应用标识对应的源应用模块的访问权限属性信息;判断所述源应用模块的访问权限属性信息是否为第一预设值,如果是,则确定所述源应用模块具有向所述访问控制器发送数据的权限;否则,确定所述源应用模块不具有向所述访问控制器发送数据的权限。
30.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第四判断模块,用于在所述第一判断模块判断出接收到的数据为访问数据后,根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息,判断所述目标应用模块是否具有接收来自所述访问控制器的数据的权限;
所述第一查找模块,具体用于在所述第四判断模块判断出所述目标应用模块具有接收来自所述访问控制器的数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
所述发送模块,还用于在所述第四判断模块判断出所述目标应用模块不具有接收来自所述访问控制器的数据的权限时,向所述源应用模块发送错误信息。
31.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第四判断模块,用于在所述第一查找模块查找到对应的目标应用模块后,根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息,判断所述目标应用模块是否具有接收来自所述访问控制器的数据的权限;
所述第一定位模块,具体用于在所述第四判断模块判断出所述目标应用模块具有接收来自所述访问控制器的数据的权限时,对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
所述发送模块,还用于在所述第四判断模块判断出所述目标应用模块不具有接收来自所述访问控制器的数据的权限时,向所述源应用模块发送错误信息。
32.如权利要求30或31所述的智能卡,其特征在于,
所述第四判断模块,具体用于根据所述访问数据中的目标应用标识,查询预设的访问权限属性列表,获取与所述目标应用标识对应的目标应用模块的访问权限属性信息;判断所述目标应用模块的访问权限属性信息是否为第二预设值,如果是,则确定所述目标应用模块具有接收来自所述访问控制器的数据的权限;否则,确定所述目标应用模块不具有接收来自所述访问控制器的数据的权限。
33.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第五判断模块,用于在所述第一判断模块判断出接收到的数据为访问数据后,根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息和所述访问数据中的目标应用标识,判断所述源应用模块是否具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限;
所述第一查找模块,具体用于在所述第五判断模块判断出所述源应用模块具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
所述发送模块,还用于在所述第五判断模块判断出所述源应用模块不具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限时,向所述源应用模块发送错误信息。
34.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第五判断模块,用于在所述第一查找模块查找到对应的目标应用模块后,根据所述访问数据中的源应用标识,获取源应用模块的访问权限属性信息,根据所述源应用模块的访问权限属性信息和所述访问数据中的目标应用标识,判断所述源应用模块是否具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限;
所述第一定位模块,具体用于在所述第五判断模块判断出所述源应用模块具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限时,对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
所述发送模块,还用于在所述第五判断模块判断出所述源应用模块不具有通过所述访问控制器向所述目标应用标识对应的目标应用模块发送数据的权限时,向所述源应用模块发送错误信息。
35.如权利要求33或34所述的智能卡,其特征在于,
所述第五判断模块,具体用于判断所述源应用模块的访问权限属性信息中的发送属性信息是否包含与所述目标应用模块对应的标识信息,如果是,则确定所述源应用模块具有通过所述访问控制器向所述目标应用模块发送数据的权限;否则,确定所述源应用模块不具有通过所述访问控制器向所述目标应用模块发送数据的权限。
36.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第六判断模块,用于在所述第一判断模块判断出接收到的数据为访问数据后,根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息和所述访问数据中的源应用标识,判断所述目标应用模块是否具有通过所述访问控制器,接收来自所述源应用标识对应的源应用模块的数据的权限;
所述第一查找模块,具体用于在所述第六判断模块判断出所述目标应用模块具有通过所述访问控制器接收来自所述源应用标识对应的源应用模块的数据的权限时,根据所述访问数据中的目标应用标识,查找对应的目标应用模块;
所述发送模块,还用于在所述第六判断模块判断出所述目标应用模块不具有通过所述访问控制器接收来自所述源应用标识对应的源应用模块的数据的权限时,向所述源应用模块发送错误信息。
37.如权利要求23所述的智能卡,其特征在于,所述访问控制器还包括:
第六判断模块,用于在所述第一查找模块查找到对应的目标应用模块后,根据所述访问数据中的目标应用标识,获取目标应用模块的访问权限属性信息,根据所述目标应用模块的访问权限属性信息和所述访问数据中的源应用标识,判断所述目标应用模块是否具有通过所述访问控制器,接收来自所述源应用标识对应的源应用模块的数据的权限;
所述第一定位模块,具体用于在所述第六判断模块判断出所述目标应用模块具有通过所述访问控制器接收来自所述源应用标识对应的源应用模块的数据的权限时,对所述第一查找模块查找到的所述目标应用模块的指令接口函数进行定位;
所述发送模块,还用于在所述第六判断模块判断出所述目标应用模块不具有通过所述访问控制器接收来自所述源应用标识对应的源应用模块的数据的权限时,向所述源应用模块发送错误信息。
38.如权利要求36或37所述的智能卡,其特征在于,
所述第六判断模块,具体用于判断所述目标应用模块的访问权限属性信息中的接收属性信息是否包含与所述源应用模块对应的标识信息,如果是,则确定所述目标应用模块具有通过所述访问控制器接收来自所述源应用模块的数据的权限;否则,确定所述目标应用模块不具有通过所述访问控制器接收来自所述源应用模块的数据的权限。
39.如权利要求23所述的智能卡,其特征在于,
所述第一定位模块,具体用于从所述目标应用模块中查找编号为第三预设值的包,从所述包中查找编号为第四预设值的类,从所述类中查找编号为第五预设值的指令接口函数的地址。
40.如权利要求23所述的智能卡,其特征在于,
第二定位模块,具体用于从所述第三查找模块查找到的应用模块中查找编号为第六预设值的包,从所述包中查找编号为第七预设值的类,从所述类中查找编号为第八预设值的指令接口函数的地址。
41.如权利要求23所述的智能卡,其特征在于,所述访问数据包含在所述源应用模块接收到的应用协议数据单元报文中;
所述源应用模块,用于接收来自读卡器或所述访问控制器的所述应用协议数据单元报文,对所述应用协议数据单元报文进行处理,并在判断出需要调用所述访问控制器的应用程序接口后,调用所述访问控制器的应用程序接口。
42.如权利要求23所述的智能卡,其特征在于,
所述目标应用模块,用于接收来自所述访问控制器的所述第一数据,对所述第一数据进行处理,得到所述第二数据,并将所述第二数据返回给所述访问控制器。
43.如权利要求23所述的智能卡,其特征在于,
所述查找到的应用模块,用于接收来自访问控制器的所述第二数据,对所述第二数据进行处理,判断是否需要调用所述访问控制器的应用程序接口,如果是,则调用所述访问控制器的应用程序接口,将所述第二数据中所包含的访问数据发送给所述访问控制器;否则,将对所述第二数据的处理结果返回给读卡器。
CN201310356160.5A 2013-08-15 2013-08-15 一种多应用之间互访的方法和智能卡 Expired - Fee Related CN103514052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310356160.5A CN103514052B (zh) 2013-08-15 2013-08-15 一种多应用之间互访的方法和智能卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310356160.5A CN103514052B (zh) 2013-08-15 2013-08-15 一种多应用之间互访的方法和智能卡

Publications (2)

Publication Number Publication Date
CN103514052A CN103514052A (zh) 2014-01-15
CN103514052B true CN103514052B (zh) 2017-02-15

Family

ID=49896821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310356160.5A Expired - Fee Related CN103514052B (zh) 2013-08-15 2013-08-15 一种多应用之间互访的方法和智能卡

Country Status (1)

Country Link
CN (1) CN103514052B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810432A (zh) * 2014-02-24 2014-05-21 珠海市君天电子科技有限公司 一种数据处理方法及装置
CN104820803B (zh) * 2015-04-01 2017-11-07 朱威 企业移动应用之间的数据共享方法
CN107465650B (zh) * 2016-06-06 2020-10-27 阿里巴巴集团控股有限公司 一种访问控制方法及装置
CN106874733A (zh) * 2016-12-29 2017-06-20 北京握奇智能科技有限公司 一种具有UI功能的多应用网银Key及其控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960421A (en) * 1997-08-20 1999-09-28 Bea Systems, Inc. Service interface repository internationalization
CN1298591A (zh) * 1998-04-23 2001-06-06 汤姆森多媒体公司 在通信网络中管理对象的方法及其实现装置
CN101399825A (zh) * 2007-09-29 2009-04-01 华为技术有限公司 在设备间共享配对信息的方法、设备及系统
CN101662375A (zh) * 2008-08-27 2010-03-03 中兴通讯股份有限公司 基于多媒体会议的交互方法、多媒体会议系统
CN102970326A (zh) * 2012-10-22 2013-03-13 百度在线网络技术(北京)有限公司 一种用于共享用户的情绪指示信息的方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801642B2 (en) * 2004-08-18 2010-09-21 Walgreen Co. System and method for checking the accuracy of a prescription fill

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960421A (en) * 1997-08-20 1999-09-28 Bea Systems, Inc. Service interface repository internationalization
CN1298591A (zh) * 1998-04-23 2001-06-06 汤姆森多媒体公司 在通信网络中管理对象的方法及其实现装置
CN101399825A (zh) * 2007-09-29 2009-04-01 华为技术有限公司 在设备间共享配对信息的方法、设备及系统
CN101662375A (zh) * 2008-08-27 2010-03-03 中兴通讯股份有限公司 基于多媒体会议的交互方法、多媒体会议系统
CN102970326A (zh) * 2012-10-22 2013-03-13 百度在线网络技术(北京)有限公司 一种用于共享用户的情绪指示信息的方法和设备

Also Published As

Publication number Publication date
CN103514052A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103607385B (zh) 基于浏览器进行安全检测的方法和装置
CN103514052B (zh) 一种多应用之间互访的方法和智能卡
CN102866961B (zh) 具有扩展的数据和用户隐私保护的存储器转储
US10783086B2 (en) Method and apparatus for increasing a speed of accessing a storage device
CN104348677A (zh) 一种深度报文检测方法、设备及协处理器
CN110245505A (zh) 数据表访问方法、装置、计算机设备和存储介质
CN107911319A (zh) 一种多安全模块的路由方法、nfc控制器及nfc设备
CN101441604A (zh) 一种固态硬盘的访问保护方法和固态硬盘
CN104268012B (zh) 一种图片数据处理方法及装置
CN110837479A (zh) 数据处理方法、相关设备及计算机存储介质
CN109981569A (zh) 网络系统访问方法、装置、计算机设备及可读存储介质
CN107547400B (zh) 一种虚拟机迁移方法和装置
CN105468999B (zh) 数据保密方法和移动硬盘
CN107181624A (zh) 一种网络连接方法、电子设备和计算机存储介质
CN104601645A (zh) 一种数据包处理方法及装置
US7779464B2 (en) System security approaches utilizing a hierarchical memory system
CN106412144A (zh) 一种网络访问方法及装置
CN103699855B (zh) 一种数据处理方法和装置
CN114374641B (zh) 一种三层报文转发方法及装置
CN107657404A (zh) 一种冷库状态的管理方法、服务器
WO2015096940A1 (en) Method for allowing an access control enforcer to access to rules of a secure element with a single specific command, and associated device
US8438198B2 (en) File sharing device in an integrated circuit
US20030028810A1 (en) Data communication system and data communication terminal as well as data communication method used therefor and program used therefor
CN102938755B (zh) 智能空间访问方法、系统、控制器和智能空间接口服务器
CN110166434A (zh) 存储网关及存储设备的数据写入、读取方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170215