CN111357255B - 构建多个应用通用的可信应用 - Google Patents
构建多个应用通用的可信应用 Download PDFInfo
- Publication number
- CN111357255B CN111357255B CN201880074906.4A CN201880074906A CN111357255B CN 111357255 B CN111357255 B CN 111357255B CN 201880074906 A CN201880074906 A CN 201880074906A CN 111357255 B CN111357255 B CN 111357255B
- Authority
- CN
- China
- Prior art keywords
- application
- secure element
- request
- command
- trusted
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供的构建多个应用通用的可信应用的方法,涉及通信技术领域,有利于提升终端中应用的安全性,该方法运用于终端,该终端上的安全应用使用在REE中的与该安全应用对应的客户端应用,在TEE中的通用可信应用,以及在SE中的与该安全应用对应的安全元件应用;通用可信应用为多个安全应用共用;该方法包括:通用可信应用接收第一客户端应用的第一请求,确定对应的第一安全元件应用;向第一安全元件应用发送所述第一请求;第一安全元件应用向通用可信应用发送第一命令;通用可信应用执行第一命令,并向第一安全元件应用返回第一执行结果;第一安全元件应用根据第一执行结果向通用可信应用发送第一响应;通用可信应用向第一客户端应用发送第一响应。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种终端中应用的运行方法及终端。
背景技术
目前,移动终端有三层应用环境,分别是富执行环境(Rich ExecutionEnvironment,REE)、可信执行环境(Trust Execution Environment,TEE)和安全元件(Secure Element,SE)。
通常,服务提供商(Service Provider,SP)部署一项安全性较高的业务(例如:银行支付业务等),需要根据该业务中不同数据的安全性级别,分别在三层应用环境中部署相应的应用。其中,REE中的应用称为客户端应用(client application,CA),安全性要求较低。TEE中的应用为可信应用,称为TA(TEE application),安全性要求较高。SE中的应用称为安全元件应用(applet),安全性要求在这三类应用中为最高。需要说明的是,TEE具有提供安全界面、巨量存储的能力,故TA通常是业务逻辑的核心,起到调用TEE能力,向applet发起命令的作用。而applet则只需要被动响应TA的命令。
然而,当前TEE标准化程度较低。因此,针对各个业务,SP对各个TA的搭建、开发、调试以及维护等工作成本较大。并且,SP在开发及维护各个TA的过程中,很容易引入安全漏洞,使得业务的安全性受到威胁。例如:若TA未对输入参数进行校验,很可能引发TEE中的数据被恶意拷贝的风险。
发明内容
本申请提供的一种终端中应用的运行方法及终端,可以提升终端中应用的安全性。
第一方面,本申请提供的方法,应用于包括富执行环境REE、可信执行环境TEE和安全元件SE的终端中,其中,终端的安全应用使用在REE中的与该安全应用对应的客户端应用,在TEE中的通用可信应用,以及在SE中的与该安全应用对应的安全元件应用;通用可信应用为至少两个安全应用共用;该方法具体包括:
通用可信应用接收第一客户端应用的第一请求,通用可信应用根据第一请求确定与该第一客户端应用对应的第一安全元件应用;通用可信应用向第一安全元件应用发送该第一请求;第一安全元件应用根据第一请求,向通用可信应用发送第一命令;通用可信应用执行第一命令,并向第一安全元件应用返回第一执行结果;第一安全元件应用根据第一执行结果向通用可信应用发送第一响应;通用可信应用向第一客户端应用发送第一响应。
其中,安全应用为安全性要求较高的应用,例如:SE类的应用。其中SE类的应用例如可以是银行卡、公交卡、U盾等传统智能卡(Smart Card)应用。安全应用可以基于终端的REE、TEE和SE应用环境为用户提供更高安全性的服务。
在本申请实施例中,REE中的一个或多个CA(例如:第一客户端应用)可以直接调用TEE的同一个TA(例如:通用可信应用),再由这个TA(例如:GTA)与各个CA对应的applet(例如:第一客户端应用对应第一安全元件应用)进行交互。换言之,本申请实施例中的一个安全应用可使用REE中的一个或多个CA、TEE中的一个GTA、以及SE中的一个或多个applet。其中,这一个GTA可供该终端中多个安全应用所共用。
可选的,GTA与各个applet的交互过程中,命令是可以双向发送的。也就是说,TA可以向applet发送命令(本申请实施例中称为“正向命令”),applet进行响应。applet也是可以向TA发送命令(本申请实施例中称为“反向命令”),由TA进行响应。在本申请实施例中,应用的业务逻辑部署在applet中,故applet需要根据业务逻辑,向GTA发送反向命令,由GTA去执行反向命令。
需要说明是,不同的应用可能具有不同的功能,进而具有不同的业务逻辑(即使相同的功能也可能具有不同的业务逻辑)。业务逻辑包括终端在实现不同功能过程的涉及到的业务规则、业务流程以及各个步骤中携带的参数等。例如:在手机盾应用中,业务逻辑包括:发送GTA能力列表,发送交易数据,显示交易数据,获取用户确认信息、验证用户身份等。由于在本申请实施例中,GTA是多个应用通用的TA,终端无法在GTA上部署通用的业务逻辑,使得该通用的业务逻辑适用于各个应用的CA。故本申请实施例在各个应用的applet中部署各个应用的业务逻辑。
示例性的,在本申请实施例中,TA向applet发送的消息例如可以采用应用协议数据单元(Application Protocol Data Unit,APDU)命令格式,applet向TA发送的消息例如可以采用“状态字(Status Word,SW)+响应内容”的格式。本申请实施例对TA与applet之间交互的消息格式和具体内容均不做限定。
由此,本申请实施例提供了一种在终端的TEE中构建一个通用TA(General TA,GTA)的方法。换言之,不同应用都可以使用同一个TA,即GTA,通过GTA与各自的applet进行配合以完成服务。这样,不需要再针对各个应用分别开发和维护TA,有利于避免引入安全漏洞,提升应用的安全性。
再有,GTA由TEE OS提供者开发提供,对外呈现同样的接口,使得SP不需要再考虑TEE侧的实现。
一种可能的设计中,第一安全元件应用根据第一请求,向通用可信应用发送第一命令具体为:
第一安全元件应用根据第一请求,向通用可信应用发送第二响应,第二响应中携带第一命令。
示例的,applet(即第一安全元件应用)向GTA(即通用可信应用)发送特殊响应(即第二响应),例如是0x8FXX,用于指示applet在本消息中携带有反向命令(即第一命令)。那么,GTA在接收到该特殊响应后,调用TEE资源执行其中的反向命令。执行后,GTA将执行结果(即第一执行结果)通过辅助命令发送给applet。其中,该辅助命令例如可以是GTA_RETURN,并在该辅助命令的数据中携带执行结果,也可以携带返回数据。
一种可能的设计中,第一安全元件应用根据第一请求,向通用可信应用发送第一命令具体为:第一安全元件应用根据第一请求,向通用可信应用发送第三响应,第三响应指示第一安全元件应用要发送命令;通用可信应用根据第三响应,向第一安全元件应用发送第二请求,第二请求用于请求第一安全元件应用发送命令;第一安全元件根据第二请求,向通用可信应用发送第四响应,第四响应中携带第一命令。
示例的,applet(即第一安全元件应用)向GTA(即通用可信应用)发送特殊响应(即第三响应)。例如是0x8EXX,用于指示applet需要发送反向命令。那么,GTA在接收到该特殊响应后,向applet发送辅助命令(即第二请求),例如:GTA_REQUEST。该辅助命令用于请求applet发送反向命令。那么,applet向GTA发送正常响应(即第四响应),并且在正常响应的数据中携带反向命令。GTA接收到该响应后,调用TEE资源执行其中的反向命令。执行后,GTA将执行结果(即第一执行结果)通过辅助命令发送给applet。其中,该辅助命令例如可以是GTA_RETURN,并在该辅助命令的数据中携带执行结果,还可以携带返回数据。其中,执行结果为GTA执行反向命令是否成功的标识,返回数据为GTA执行结束需要传递给applet的数据,例如:可以包含用户确认后的信息,或用户输入的个人识别码(personalidentification number,PIN)等。
一种可能的设计中,通用可信应用根据第一请求确定与第一客户端应用对应的第一安全元件应用具体为:通用可信应用根据第一请求中携带的第一客户端应用的标识,以及本地存储的客户端应用的标识与安全元件应用的标识的对应关系,确定第一安全元件应用。
需要说明的是,GTA存储有一些通用的逻辑,例如:如何根据CA的发送的信息,选定其对应的applet等。例如:GTA上存储有可以访问GTA的CA的列表,以及这些CA可以访问的applet的列表(如:CA的标识和applet的标识的对应关系表)。这样,GTA在接收到CA的交易数据后,可以据此判断该CA是否可以访问GTA,以及该CA可以访问的applet。该CA可以访问的applet即作为选定的applet。
一种可能的设计中,在通用可信应用向第一安全元件应用发送第一请求之前,方法还包括:通用可信应用向第一安全元件应用发送能力列表,能力列表包括通用可信应用支持执行的命令。
其中,能力列表用于告知applet,GTA能够执行哪些反向命令的能力。例如:大容量存储能力、显示二维码的能力、发送数据的能力、可信用户接口能力等。
一种可能的设计中,第一安全元件应用根据第一请求,向通用可信应用发送第一命令包括:第一安全元件应用根据第一请求,以及能力列表向通用可信应用发送第一命令。
例如:applet根据GTA能力列表确定接下来的交易流程。例如:对于用户身份认证,假设applet的业务逻辑是优先选择指纹验证。如果GTA支持指纹验证,那么applet先进行指纹验证。如果GTA不支持指纹验证,那么applet则不进行指纹验证,而选择PIN验证。
第二方面,一种终端,终端的应用环境包括富执行环境REE、可信执行环境TEE和安全元件SE,其中,终端的安全应用使用在REE中的与安全应用对应的客户端应用,在TEE中的通用可信应用,以及在SE中的与安全应用对应的安全元件应用;通用可信应用为至少两个安全应用共用;终端包括:通用可信应用单元、第一客户端应用单元和第一安全元件应用单元;通用可信应用单元,用于接收第一客户端应用单元的第一请求;根据第一请求确定与第一客户端应用单元对应的第一安全元件应用单元;向第一安全元件应用单元发送第一请求;第一安全元件应用单元,用于根据第一请求,向通用可信应用单元发送第一命令;通用可信应用单元,还用于执行第一命令,并向第一安全元件应用单元返回第一执行结果;第一安全元件应用单元,还用于根据第一执行结果向通用可信应用单元发送第一响应;通用可信应用单元,还用于向第一客户端应用单元发送第一响应。
一种可能的设计中,第一安全元件应用单元,用于根据第一请求,向通用可信应用单元发送第一命令具体为:第一安全元件应用单元,具体用于根据第一请求,向通用可信应用单元发送第二响应,第二响应中携带第一命令。
一种可能的设计中,第一安全元件应用单元,用于根据第一请求,向通用可信应用单元发送第一命令具体为:第一安全元件应用单元,具体用于根据第一请求,向通用可信应用单元发送第三响应,第三响应指示第一安全元件应用单元要发送命令;接收通用可信应用根据第三响应发送的第二请求,第二请求用于请求第一安全元件应用单元发送命令;根据第二请求,向通用可信应用单元发送第四响应,第四响应中携带第一命令。
一种可能的设计中,通用可信应用单元用于根据第一请求确定与第一客户端应用单元对应的第一安全元件应用单元,具体为:通用可信应用单元具体用于根据第一请求中携带的第一客户端应用单元的标识,以及本地存储的客户端应用的标识与安全元件应用的标识的对应关系,确定第一安全元件应用单元。
一种可能的设计中,通用可信应用单元,还用于在通用可信应用单元向第一安全元件应用单元发送第一请求之前,向第一安全元件应用单元发送能力列表,能力列表包括通用可信应用单元支持执行的命令。
一种可能的设计中,第一安全元件应用单元用于根据第一请求,向通用可信应用单元发送第一命令,具体为:第一安全元件应用单元具体用于根据第一请求,以及能力列表向通用可信应用单元发送第一命令。
第三方面、一种终端,包括:处理器、存储器和触摸屏,存储器、触摸屏与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器从存储器中读取计算机指令,以执行如第一方面中任一种可能的设计方法中的所述的方法。
第四方面、一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如第一方面中任一种可能的设计方法中所述的方法。
第五方面、一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任一种可能的设计方法中所述的方法。
附图说明
图1为现有技术中的一种终端的结构示意图;
图2为本申请实施例提供的一种终端的结构示意图一;
图3为本申请实施例提供的一种终端的结构示意图二;
图4为本申请实施例提供的一种应用运行方法的流程示意图一;
图5为本申请实施例提供的一种应用运行方法的流程示意图二;
图6为现有技术中提供的一种应用运行方法的流程示意图;
图7为本申请实施例提供的一种应用运行方法的流程示意图三;
图8为本申请实施例提供的一种应用运行方法的流程示意图四;
图9为本申请实施例提供的一种应用运行方法的流程示意图五;
图10为本申请实施例提供的一种终端的结构示意图三;
图11为本申请实施例提供的一种终端的结构示意图四。
具体实施方式
为了更清楚说明本申请提供的技术方案,先对本申请实施例涉及到终端的几种应用环境进行简单介绍。
如图1所示,为现有技术中一种包含多个应用环境的终端的示意图。该终端包括REE、TEE和SE三种应用环境。
其中,REE包括运行在通用的嵌入式处理器上的一般操作系统,如Rich OS(RichOperating System)或kernel,及其上的CA(图1示出了CA1和CA2)。尽管在REE中采取了很多诸如设备访问控制、设备数据加密机制、应用运行时的隔离机制、基于权限的访问控制等安全措施,但仍无法保证应用中重要数据的安全性。
其中,TEE是运行于一般操作系统之外的独立运行环境,其向一般操作系统提供安全服务并且与一般操作系统隔离。一般操作系统及其上的应用程序无法直接访问TEE的硬件和软件资源。TEE为TA(图1示出了TA1和TA2)提供可信赖的运行环境,再通过对机密性、完整性的保护和数据访问权限的控制,确保端到端的安全。可信执行环境与终端的一般操作系统并行,通过安全的应用程序编程接口(Application Programming Interface,API)与一般操作系统进行交互。
TEE提供了一个比一般操作系统更高安全等级的运行环境,但无法提供硬件隔离级别的安全的密钥存储和密钥运行环境。这是由于TEE中的密码单元仍旧通过API供REE调用,简单采用TEE编制的密码模块仍旧会工作在被调用的从盘(slave)模式下,安全性较低。
其中,SE用来构建可信的安全的密钥存储和密钥运算环境。这是因为SE中软件系统简单,硬件元器件相对较少,故而容易建立物理防护和实施安全保障,从而提高SE的安全强度,从而可以服务于安全性要求更高的安全系统。其中,SE中应用称为applet(图1示出了applet1和applet2),SE中的操作系统被称作COS(Chip Operating System)。
需要说明的是,本申请实施例提供的方法可适用于安全性要求较高的应用(可简称为“安全应用”),例如:SE类的应用。其中SE类的应用例如可以是银行卡、公交卡、U盾等传统智能卡(Smart Card)应用。安全应用可以基于终端的REE、TEE和SE应用环境为用户提供更高安全性的服务。
下面以手机盾应用为例,对在终端部署安全性要求较高的应用的过程进行简要说明。
手机在生产过程中,进行TEE和SE在手机上的集成,通常TEE和SE中的安全域初始化也是在手机生产阶段完成的。
手机在初始使用时,可以通过例如应用安装包的形式,在TEE中安装TA。手机通过例如空中下载的方式从可信服务管理(Trusted Service Management,TSM)处下载和安装SE中的applet。手机还需要完成用户安全证书的生成和下载,当用户身份验证被传递时,将生成一对公钥和私钥对。其中,私钥被永久地保证不能从SE中读出,公钥被发送到身份验证中心(CA)来签署用户证书,并下载用户证书到SE中,完成终端和用户身份的绑定。
手机在后续使用过程中,例如:当用户发起转账等交易请求时,手机从REE中的CA切换到TEE中的TA,用户可以在TA的可信界面中执行密码输入操作,TA有利于避免恶意程序监视和窃取用户输入的信息。而后,用户的事务信息也能安全地显示在可信界面上,由用户确认。TA也有利于避免恶意程序对事务信息篡改。在用户确认和验证之后,TA将事务信息转发给SE中的applet。applet验证用户输入的密码,在验证通过后,对交易数据签名。并将签名后的交易数据返回给TA、CA。最后由CA返回给服务提供商,进行后台交易验证,验证通过后,交易完成。
需要说明的是,目前,在TA与applet的交互过程中,手机盾的业务逻辑都是部署在TEE中的TA,由TA向SE中的applet单向发送命令。而后,applet在接收到命令后,向SE进行响应。可见,SP需要针对不同的应用在TEE中开发不同的TA。然而,SP在开发及维护各个不同TA的过程中,很容易引入安全漏洞,使得应用的安全性受到威胁。再有,不同TEE OS上的TA互不兼容,SP需要针对不同TEE OS开发不同版本的TA,不利于SP快速广泛地部署应用。
为此,本申请实施例提供了一种在终端的TEE中构建一个通用TA(General TA,GTA)的方法。在本申请实施例中,不同SP的不同应用都可以使用同一个TA,即GTA,通过GTA与各自的applet进行配合以完成服务。这样,不需要再针对各个应用分别开发和维护TA,有利于避免引入安全漏洞,提升应用的安全性。GTA由TEE OS提供者开发提供,对外呈现同样的接口,使得SP不需要再考虑TEE侧的实现。
示例性的,本申请中的终端可以为可以安装应用程序并显示应用程序图标的手机(如图2所示的手机100)、平板电脑、个人计算机(Personal Computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、增强现实技术(Augmented Reality,AR)设备、虚拟现实(Virtual Reality,VR)设备等,本申请对该终端的具体形式不做特殊限制。
如图2所示,以手机100作为上述终端举例,手机100具体可以包括:处理器101、射频(Radio Frequency,RF)电路102、存储器103、触摸屏104、蓝牙装置105、一个或多个传感器106、无线保真(Wireless Fidelity,WI-FI)装置107、定位装置108、音频电路109、外设接口110以及电源装置111等部件。这些部件可通过一根或多根通信总线或信号线(图2中未示出)进行通信。本领域技术人员可以理解,图2中示出的硬件结构并不构成对手机的限定,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图2对手机100的各个部件进行具体的介绍:
处理器101是手机100的控制中心,利用各种接口和线路连接手机100的各个部分,通过运行或执行存储在存储器103内的应用程序,以及调用存储在存储器103内的数据,执行手机100的各种功能和处理数据。在一些实施例中,处理器101可包括一个或多个处理单元;举例来说,处理器101可以是华为技术有限公司制造的麒麟960芯片。
在本申请实施例的一些示例中,处理器101包括硬件上独立的三个单元,具体为基带处理单元、应用处理单元和安全单元。其中,基带处理单元例如可以为基带处理器(Baseband Processor,BP),应用处理单元例如可以为应用处理器(ApplicationProcessor),安全单元例如可以为安全元件(Secure Element,SE)。
射频电路102可用于在收发信息或通话过程中,无线信号的接收和发送。特别地,射频电路102可以将基站的下行数据接收后,给处理器101处理;另外,将涉及上行的数据发送给基站。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路102还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
存储器103用于存储应用程序以及数据,处理器101通过运行存储在存储器103的应用程序以及数据,执行手机100的各种功能以及数据处理。存储器103主要包括存储程序区以及存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等);存储数据区可以存储根据使用手机100时所创建的数据(比如音频数据、电话本等)。此外,存储器103可以包括高速随机存取存储器(RandomAccess Memory,RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。存储器103可以存储各种操作系统,例如,苹果公司所开发的操作系统,谷歌公司所开发的操作系统等。上述存储器103可以是独立的,通过上述通信总线与处理器101相连接;存储器103也可以和处理器101集成在一起。
触摸屏104具体可以包括触控板104-1和显示器104-2。
其中,触控板104-1可采集手机100的用户在其上或附近的触摸事件(比如用户使用手指、触控笔等任何适合的物体在触控板104-1上或在触控板104-1附近的操作),并将采集到的触摸信息发送给其他器件(例如处理器101)。其中,用户在触控板104-1附近的触摸事件可以称之为悬浮触控;悬浮触控可以是指,用户无需为了选择、移动或拖动目标(例如图标等)而直接接触触控板,而只需用户位于设备附近以便执行所想要的功能。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触控板104-1。
显示器(也称为显示屏)104-2可用于显示由用户输入的信息或提供给用户的信息以及手机100的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示器104-2。触控板104-1可以覆盖在显示器104-2之上,当触控板104-1检测到在其上或附近的触摸事件后,传送给处理器101以确定触摸事件的类型,随后处理器101可以根据触摸事件的类型在显示器104-2上提供相应的视觉输出。虽然在图2中,触控板104-1与显示屏104-2是作为两个独立的部件来实现手机100的输入和输出功能,但是在某些实施例中,可以将触控板104-1与显示屏104-2集成而实现手机100的输入和输出功能。可以理解的是,触摸屏104是由多层的材料堆叠而成,本申请实施例中只展示出了触控板(层)和显示屏(层),其他层在本申请实施例中不予记载。另外,触控板104-1可以以全面板的形式配置在手机100的正面,显示屏104-2也可以以全面板的形式配置在手机100的正面,这样在手机的正面就能够实现无边框的结构。
另外,手机100还可以具有指纹识别功能。例如,可以在手机100的背面(例如后置摄像头的下方)配置指纹识别器112,或者在手机100的正面(例如触摸屏104的下方)配置指纹识别器112。又例如,可以在触摸屏104中配置指纹采集器件112来实现指纹识别功能,即指纹采集器件112可以与触摸屏104集成在一起来实现手机100的指纹识别功能。在这种情况下,该指纹采集器件112配置在触摸屏104中,可以是触摸屏104的一部分,也可以以其他方式配置在触摸屏104中。本申请实施例中的指纹采集器件112的主要部件是指纹传感器,该指纹传感器可以采用任何类型的感测技术,包括但不限于光学式、电容式、压电式或超声波传感技术等。
手机100还可以包括蓝牙装置105,用于实现手机100与其他短距离的设备(例如手机、智能手表等)之间的数据交换。本申请实施例中的蓝牙装置可以是集成电路或者蓝牙芯片等。
手机100还可以包括至少一种传感器106,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节触摸屏104的显示器的亮度,接近传感器可在手机100移动到耳边时,关闭显示器的电源。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机100还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
WI-FI装置107,用于为手机100提供遵循WI-FI相关标准协议的网络接入,手机100可以通过WI-FI装置107接入到WI-FI接入点,进而帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。在其他一些实施例中,该WI-FI装置107也可以作为WI-FI无线接入点,可以为其他设备提供WI-FI网络接入。
定位装置108,用于为手机100提供地理位置。可以理解的是,该定位装置108具体可以是全球定位系统(Global Positioning System,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。定位装置108在接收到上述定位系统发送的地理位置后,将该信息发送给处理器101进行处理,或者发送给存储器103进行保存。在另外的一些实施例中,该定位装置108还可以是辅助全球卫星定位系统(Assisted Global PositioningSystem,AGPS)的接收器,AGPS系统通过作为辅助服务器来协助定位装置108完成测距和定位服务,在这种情况下,辅助定位服务器通过无线通信网络与设备例如手机100的定位装置108(即GPS接收器)通信而提供定位协助。在另外的一些实施例中,该定位装置108也可以是基于WI-FI接入点的定位技术。由于每一个WI-FI接入点都有一个全球唯一的(MediaAccess Control,MAC)地址,设备在开启WI-FI的情况下即可扫描并收集周围的WI-FI接入点的广播信号,因此可以获取到WI-FI接入点广播出来的MAC地址;设备将这些能够标示WI-FI接入点的数据(例如MAC地址)通过无线通信网络发送给位置服务器,由位置服务器检索出每一个WI-FI接入点的地理位置,并结合WI-FI广播信号的强弱程度,计算出该设备的地理位置并发送到该设备的定位装置108中。
音频电路109、扬声器113、麦克风114可提供用户与手机100之间的音频接口。音频电路109可将接收到的音频数据转换后的电信号,传输到扬声器113,由扬声器113转换为声音信号输出;另一方面,麦克风114将收集的声音信号转换为电信号,由音频电路109接收后转换为音频数据,再将音频数据输出至RF电路102以发送给比如另一手机,或者将音频数据输出至存储器103以便进一步处理。
外设接口110,用于为外部的输入/输出设备(例如键盘、鼠标、外接显示器、外部存储器、用户识别模块卡等)提供各种接口。例如通过通用串行总线(Universal Serial Bus,USB)接口与鼠标连接,通过用户识别模块卡卡槽上的金属触点与电信运营商提供的用户识别模块卡(Subscriber Identification Module,SIM)卡进行连接。外设接口110可以被用来将上述外部的输入/输出外围设备耦接到处理器101和存储器103。
手机100还可以包括给各个部件供电的电源装置111(比如电池和电源管理芯片),电池可以通过电源管理芯片与处理器101逻辑相连,从而通过电源装置111实现管理充电、放电、以及功耗管理等功能。
尽管图2未示出,手机100还可以包括摄像头(前置摄像头和/或后置摄像头)、闪光灯、微型投影装置、近场通信(Near Field Communication,NFC)装置等,在此不再赘述。
以下实施例中的方法均可以在具有上述硬件结构的手机100中实现。
如图3所示,为本申请实施例提供的一种包含多个应用环境的终端的示意图。该终端包括REE、TEE和SE三种应用环境。REE中的一个或多个CA可以直接调用TEE的同一个TA(例如:GTA),再由这个TA(例如:GTA)与各个CA对应的applet进行交互。
换言之,本申请实施例中的一个安全应用可使用REE中的一个或多个CA、TEE中的一个GTA、以及SE中的一个或多个applet。其中,这一个GTA可供该终端中多个安全应用所共用。
可选的,GTA与各个applet的交互过程中,命令是可以双向发送的。也就是说,TA可以向applet发送命令(本申请实施例中称为“正向命令”),applet进行响应。applet也是可以向TA发送命令(本申请实施例中称为“反向命令”),由TA进行响应。在本申请实施例中,应用的业务逻辑部署在applet中,故applet需要根据业务逻辑,向GTA发送反向命令,由GTA去执行反向命令。具体的实现过程参考下文描述。
需要说明是,不同的应用可能具有不同的功能,进而具有不同的业务逻辑(即使相同的功能也可能具有不同的业务逻辑)。业务逻辑包括终端在实现不同功能过程的涉及到的业务规则、业务流程以及各个步骤中携带的参数等。例如:在手机盾应用中,业务逻辑包括:发送GTA能力列表,发送交易数据,显示交易数据,获取用户确认信息、验证用户身份等。由于在本申请实施例中,GTA是多个应用通用的TA,终端无法在GTA上部署通用的业务逻辑,使得该通用的业务逻辑适用于各个应用的CA。故本申请实施例在各个应用的applet中部署各个应用的业务逻辑。
示例性的,在本申请实施例中,TA向applet发送的消息例如可以采用应用协议数据单元(Application Protocol Data Unit,APDU)命令格式,applet向TA发送的消息例如可以采用“状态字(Status Word,SW)+响应内容”的格式。本申请实施例对TA与applet之间交互的消息格式和具体内容均不做限定。
举例说明,以TA和applet之间交互的消息采用APDU命令格式,以及“SW+响应内容”的格式,且TA为GTA为例,对TA和applet之间的交互过程进行说明。
针对本申请实施例采用的通用GTA,本申请实施例提供的GTA向applet发送的命令,以及CA向GTA发送的命令,这里统称为“辅助命令”。为了区分于现有技术中applet向TA发送的响应(本申请实施例中称为“正常响应”),本申请实施例新增的applet向GTA发送的响应,这里称为“特殊响应”。其中,“特殊响应”用于携带applet向GTA发送的反向命令或告知GTA,applet需要发送反向命令。
下面分别就本申请实施例中新增的消息(辅助命令、特殊响应、反向命令)进行示例性说明。
一、辅助命令:
在本申请实施例中,辅助命令包括CA向GTA发送的消息,以及GTA发送给applet的消息。其中,GTA向applet发送的消息,形式上可以采用APDU中的命令格式,实际上为GTA向applet发送的GTA的能力,交易需要的数据,或针对反向命令的响应。
具体的,根据TEE/SE领域中的主要的国际规范GP(Global Platform)可知:包含TA向applet发送的APDU的命令行如下:CLS INS P1 P2 Lc DATA Le。其中,CLS为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数,0表最大可能长度。
在本申请实施例中,辅助命令可以通过自定义CLS和INS的值来区分不同的辅助命令,可以通过P1、P2中携带辅助命令中相关的参数。
下面列举出几种不同的辅助命令的示例。
如表一所示,为CA向GTA发送的辅助命令中的部分示例。其中,各个命令的具体使用,将在下文结合具体的业务进行详细说明,在此不赘述。
表一、CA向GTA发送的辅助命令的示例
如表二所示,为GTA向applet发送的辅助命令中的部分示例。其中,各个命令的具体使用,将在下文结合具体的业务进行详细说明,在此不重复赘述。
表二、GTA向applet发送的辅助命令的示例
二、特殊响应
在本申请实施例中,特殊响应形式上为applet向GTA发送的响应,采用“SW+响应内容”的格式。实际上,特殊响应可以告知GTA,applet需要发送反向命令。或者特殊响应可以直接在响应内容中携带了applet向GTA发送的命令(反向命令)。
其中,“SW+响应内容”的格式中的SW包括不限于如表三所示的几类。其中,各个SW的具体使用,将在下文结合具体的业务进行详细说明,在此不赘述。
表三、SW的示例
需要说明的是,正常响应的SW值为0x9000,表示对接收到的命令的处理正常接结束。
三、反向命令
在本申请实施例中,可通过在特殊响应(例如:SW值为“0x8FXX”)和/或正常响应(SW值为“0x9000”)中的响应内容中,携带applet向GTA发送的命令(反向命令)。这两种携带反向命令的响应可运用于不同的通信机制里。具体的,可参见如图4中对GTA和applet的通信机制的描述。
如表四所示,为本申请实施例提供的几种反向命令的部分示例。其中,各个反向命令的具体使用,将在下文结合具体的业务进行详细说明,在此不重复赘述。
表四、反向命令的部分示例
如图4所示,结合上述各表中给出的辅助命令、特殊响应以及反向命令的示例,对本申请实施例提供的两种GTA和applet的通信机制进行示例性说明。具体的,如下:
一种通信机制中,GTA与applet之间的交互如下:
GTA向applet发送辅助命令,例如:GTA_SEND_ABILITY,或GTA_SEND_DATA。
applet接收到GTA发送的辅助命令后,根据业务逻辑以及GTA的能力,确定接下来的业务流程。
示例的,applet向GTA发送特殊响应。例如是0x8EXX,用于指示applet需要发送反向命令。那么,GTA在接收到该特殊响应后,向applet发送辅助命令,例如:GTA_REQUEST。该辅助命令用于请求applet发送反向命令。那么,applet向GTA发送正常响应(0x9000),并且在正常响应的数据中携带反向命令。GTA接收到该响应后,调用TEE资源执行其中的反向命令。执行后,GTA将执行结果通过辅助命令发送给applet。其中,该辅助命令例如可以是GTA_RETURN,并在该辅助命令的数据中携带执行结果,还可以携带返回数据。其中,执行结果为GTA执行反向命令是否成功的标识,返回数据为GTA执行结束需要传递给applet的数据,例如:可以包含用户确认后的信息,或用户输入的个人识别码(personal identificationnumber,PIN)等。
而后,applet向GTA发送正常响应,表示对上一条命令执行完毕。或者,applet发送特殊响应,特殊响应指示applet需要发送下一条反向命令。
另一种通信机制中,GTA与applet之间的交互如下:
GTA向applet发送辅助命令,例如:GTA_SEND_ABILITY,或GTA_SEND_DATA。
applet接收到GTA发送的辅助命令后,根据业务逻辑以及GTA的能力,确定接下来的业务流程。
示例的,applet向GTA发送特殊响应,例如是08FXX0x8FXX,用于指示applet在本消息中携带有反向命令。那么,GTA在接收到该特殊响应后,调用TEE资源执行其中的反向命令。执行后,GTA将执行结果通过辅助命令发送给applet。其中,该辅助命令例如可以是GTA_RETURN,并在该辅助命令的数据中携带执行结果,也可以携带返回数据。
而后,applet向GTA发送正常响应,表示对上一条命令执行完毕。或者,applet发送特殊响应,特殊响应指示applet需要发送下一条反向命令。
简而言之,在第一种通信机制中,applet通过例如“0x8EXX”的特殊响应,告知GTA有反向命令需要发送,而后通过在正常响应(SW值为“0x9000”)的响应内容中携带具体的反向命令。在第二种通信机制中,applet直接通过在例如“0x8FXX”的特殊响应的响应内容中携带具体的反向命令。
需要说明是,本申请实施例提供了两种GTA和applet之间发送反向命令的实现方式,在终端的一个应用中,可以采用其中任意一种实现方式,也可以是这两种实现方式的组合,本申请实施例不做限定。
下面结合具体的应用,对上述的通信机制进行实例性说明。
如图5所示,为本申请实施例提供的一种应用的交易流程的示意图。大体上分为三个过程,分别为:1、CA向GTA发送交易数据的过程。2、GTA向applet发送交易数据的过程。3、applet向GTA发送反向命令且GTA执行反向命令的过程。各个过程具体如下:
1.1、CA向GTA发送交易数据。
具体的,当SP在终端上的应用通过其CA发起交易事件时,CA根据事先与applet的约定(例如:需要发送的交易内容,采用什么格式发送等),将该交易事件相关的交易内容采用相应的格式发送给GTA。其中,交易数据与交易事件相关,例如:对于银行转账业务,交易数据包括转账账号信息,收款人信息、金额等。
需要说明的是,CA在向GTA发送交易数据前,需要根据终端中CA和TA(包括GTA和非GTA)的访问控制逻辑,事先获得访问GTA的权限。
例如:CA可以采用表一中“CA_SEND_DATA”的辅助命令。
2.1、GTA根据接收到的CA的交易数据,选定相应的applet。
需要说明的是,GTA存储有一些通用的逻辑,例如:如何根据CA的发送的信息,选定其对应的applet等。例如:GTA上存储有可以访问GTA的CA的列表,以及这些CA可以访问的applet的列表。这样,GTA在接收到CA的交易数据后,可以据此判断该CA是否可以访问GTA,以及该CA可以访问的applet。该CA可以访问的applet即作为选定的applet。
2.2、GTA向选定的applet发送GTA能力列表。
具体的,GTA能力列表用于告知applet,GTA能够执行哪些反向命令的能力。例如:大容量存储能力、显示二维码的能力、发送数据的能力、可信用户接口能力等。
需要说明的是,本步骤为可选步骤,例如:若GTA在之前的交易中发送过GTA能力列表,或者,终端事先约定好GTA的能力,那么,该步骤也可以不执行。
例如:GTA可以采用表二中“GTA_SEND_ABILITY”的辅助命令。
2.3、GTA向applet发送交易数据。
例如:GTA可以采用表二中“GTA_SEND_DATA”的辅助命令。
3.1、applet向GTA发送反向命令。
3.2、GTA执行反向命令。
3.3、GTA向applet发送针对反向命令的响应。
其中,3.1、3.2和3.3的交互过程可以参考如图4的通信机制,在此不再重复赘述。
下面结合具体的手机盾应用,对现有的业务流程和本申请实施例的业务流程分别进行说明。如下:
如图6所示,为现有的手机盾应用的业务流程的示意图。具体包括:
REE中的盾CA接收用户的操作,选定TEE中与盾CA对应的盾TA,并向该选定的TA发送交易数据。
盾TA在接收到盾CA发送的交易数据后,选择与盾TA对应的盾applet,并向该盾applet发送交易数据。
盾TA根据业务逻辑执行响应的业务流程。示例性的,盾TA可以通过TUI显示交易信息,接收用户输入的确认信息。盾TA还可以通过TUI接收用户输入的PIN。而后,盾TA向盾applet发送用户输入的PIN,applet进行验证,并向盾TA发送响应。盾TA还可以请求盾applet对交易数据进行签名。Applet对交易数据进行签名后,将签名信息通过响应的方式发送给盾TA。最后由盾TA将签名信息转发给盾CA。
如图7所示,为本申请实施例提供的一种手机盾应用的业务流程的示意图。具体包括:
REE中的盾CA接收用户的操作,选定TEE中的GTA,并向GTA发送交易数据。
GTA在接收到CA发送的交易数据后,可以根据GTA中存储的CA与applet的对应关系,选定该CA对应的盾applet。具体可以参见图5中对步骤2.1的描述。
可选的,GTA向applet发送GTA能力列表,以便applet根据GTA能力列表确定接下来的交易流程。例如:对于用户身份认证,假设applet的业务逻辑是优先选择指纹验证。如果GTA支持指纹验证,那么applet先进行指纹验证。如果GTA不支持指纹验证,那么applet则不进行指纹验证,而选择PIN验证。
GTA向盾applet发送交易数据。
applet根据接收到的交易数据和业务逻辑,以特殊响应的形式向GTA发送反向命令,而GTA调用TEE的相应资源执行反向命令,并以辅助命令的形式向applet返回响应。
示例性的,applet发送反向命令,例如:SE_SHOW_TEXT,要求向用户展示交易信息。GTA调用TUI向用户展示交易信息。然后通过辅助命令,例如:GTA_RETURN,将用户的确认信息返回给applet。
示例性的,applet发送反向命令,例如:SE_GET_INPUT,要求用户输入PIN。GTA调用TUI接收用户输入的PIN,然后通过辅助命令,例如:GTA_RETURN,将PIN返回给applet,由applet验证。
示例性的,applet对交易数据签名后,发送反向命令SE_RETURN_DATA,通过GTA将交易签名发送给盾CA,然后通过辅助命令,例如GTA_RETURN,将执行的结果返回给applet。
如图8所示,为本申请实施例提供的又一种手机盾应用的业务流程示意图。可见,图8所示的业务流程与图7所示的业务流程是相似的,只是其中采用的特殊命令携带反向命令的实现方式略有不同。在图8中,applet采用“0x8EXX”的特殊响应来告知GTA,applet需要发送反向命令。由GTA向applet发送例如“GTA_REQUEST”的辅助命令来请求applet发送反向命令。而applet通过在正常响应中的响应内容中携带具体的反向命令。而在图7中,applet直接采用在“0x8EXX”的特殊响应的响应内容中携带反向命令。具体不同之处可以参考图5介绍GTA与applet的通信机制时的描述,在此不重复赘述。
考虑到在手机盾业务的使用过程中,还存在这样的情况,GTA或applet需要从SP后台下载某些资源。其中资源包括图片、文本、证书、文件等交易中需要的数据。例如:有些SP需要在交易时通过GTA去展示自己的标识(logo)图标,那么,需要将logo图标从SP的后台下载到GTA或applet中。
目前,可以通过Global Platform规范中的个人化方式,将目标资源存储到SE中的applet中。由于applet的容量有限,对于数据量较小的目标资源可以采用个人化方式下载到applet。然而,对于数据量较大的目标资源采用该方式,会降低交易的效率。
为此,如图9所示,本申请实施例还提供了一种GTA下载资源的方法,该方法具体包括:
为了提高终端在下载目标资源的安全性,在SP的后台会对目标资源进行加密。加密用的密钥可以通过个人化的方式存储到终端的applet中。后台将加密后的目标资源通过CA发送给GTA。而CA可以通过例如CA_MANAGE_RESOURCE的辅助命令向GTA发送该加密后的目标资源。GTA从applet获取该目标资源的密钥。然后,GTA对加密后的目标资源进行验签,以确定目标资源的合法性。若验签成功,则将该目标资源存储在GTA中。若GTA需要使用目标资源,则可以直接使用该目标资源。若applet需要使用该目标资源,则可以通过反向命令从GTA处获取该目标资源。
对于目标资源的替换、删除等操作也可以参考该方法,在此不赘述。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述实施例中所涉及的终端的一种可能的结构示意图。如图10所示,终端1000包括:第一客户端应用单元1001、通用可信应用单元1002和第一安全元件应用单元1003。
其中,第一客户端应用单元1001,用于向通用可信应用单元1002发送第一请求,接收通用可信应用单元1002返回的第一响应,和/或用于本文所描述的技术的其它过程。
通用可信应用单元1002,用于接收第一客户端应用单元1001的第一请求,根据第一请求确定与第一客户端应用单元1001对应的第一安全元件应用单元1003,向所述第一安全元件应用单元1003发送所述第一请求,还用于执行所述第一命令,并向所述第一安全元件应用单元1003返回第一执行结果,还用于向所述第一客户端应用单元1001发送所述第一响应,和/或用于本文所描述的技术的其它过程。
第一安全元件应用1003,用于根据所述第一请求,向所述通用可信应用单元1002发送第一命令,还用于根据所述第一执行结果向所述通用可信应用单元1002发送第一响应,和/或用于本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
当然,终端1000还可以包括通信单元,用于终端与其他设备进行交互。终端1000还可以包括存储单元,用于保存终端的程序代码和数据。并且,上述功能单元的具体所能够实现的功能也包括但不限于上述实例所述的方法步骤对应的功能,终端1000的其他单元的详细描述可以参考其所对应方法步骤的详细描述,本申请实施例这里不再赘述。
在采用集成的单元的情况下,上述第一客户端应用单元1001、通用可信应用单元1002、第一安全元件应用单元1003可以集成在一起,可以是终端的处理模块。上述的通信单元可以是终端的通信模块,如RF电路、WiFi模块或者蓝牙模块。上述存储单元可以是终端的存储模块。
图11示出了上述实施例中所涉及的终端的一种可能的结构示意图。该终端1100包括:处理模块1101、存储模块1102和通信模块1103。处理模块1101用于对终端的动作进行控制管理。存储模块1102,用于保存终端的程序代码和数据。通信模块1103用于与其他终端通信。其中,处理模块1101可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1303可以是收发器、收发电路或通信接口等。存储模块1102可以是存储器。
当处理模块1101为处理器(如图2所示的处理器101),通信模块1103为RF收发电路(如图2所示的射频电路102),存储模块1102为存储器(如图2所示的存储器103)时,本申请实施例所提供的终端可以为图2所示的终端100。其中,上述通信模块1103不仅可以包括RF电路,还可以包括WiFi模块和蓝牙模块。RF电路、WiFi模块和蓝牙模块等通信模块可以统称为通信接口。其中,上述处理器、通信接口和存储器可以通过总线耦合在一起。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种终端中应用的运行方法,其特征在于,应用于包括富执行环境REE、可信执行环境TEE和安全元件SE的终端中,其中,所述终端的安全应用使用在所述REE中的与所述安全应用对应的客户端应用,在所述TEE中的通用可信应用,以及在所述SE中的与所述安全应用对应的安全元件应用;所述通用可信应用为至少两个安全应用共用;所述方法包括:
所述通用可信应用接收第一客户端应用的第一请求,所述通用可信应用根据所述第一请求确定与所述第一客户端应用对应的第一安全元件应用;
所述通用可信应用向所述第一安全元件应用发送所述第一请求;
所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第一命令;
所述通用可信应用执行所述第一命令,并向所述第一安全元件应用返回第一执行结果;
所述第一安全元件应用根据所述第一执行结果向所述通用可信应用发送第一响应;
所述通用可信应用向所述第一客户端应用发送所述第一响应;
所述通用可信应用从所述第一客户端应用接收目标资源,所述目标资源使用存储在所述第一安全元件应用中的秘钥加密;
所述通用可信应用从所述第一安全元件应用获取所述秘钥;
所述通用可信应用采用所述秘钥对所述目标资源进行验证签名,若验证签名成功,则存储所述目标资源;
所述第一安全元件应用通过所述第一命令获取所述目标资源。
2.根据权利要求1所述的方法,其特征在于,所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第一命令具体为:
所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第二响应,所述第二响应中携带所述第一命令。
3.根据权利要求1所述的方法,其特征在于,所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第一命令具体为:
所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第三响应,所述第三响应指示所述第一安全元件应用要发送命令;
所述通用可信应用根据所述第三响应,向所述第一安全元件应用发送第二请求,所述第二请求用于请求所述第一安全元件应用发送命令;
所述第一安全元件根据所述第二请求,向所述通用可信应用发送第四响应,所述第四响应中携带所述第一命令。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述通用可信应用根据所述第一请求确定与所述第一客户端应用对应的第一安全元件应用具体为:
所述通用可信应用根据所述第一请求中携带的第一客户端应用的标识,以及本地存储的客户端应用的标识与安全元件应用的标识的对应关系,确定所述第一安全元件应用。
5.根据权利要求1-3任一项所述的方法,其特征在于,在所述通用可信应用向所述第一安全元件应用发送所述第一请求之前,所述方法还包括:
所述通用可信应用向所述第一安全元件应用发送能力列表,所述能力列表包括所述通用可信应用支持执行的命令。
6.根据权利要求5所述的方法,其特征在于,所述第一安全元件应用根据所述第一请求,向所述通用可信应用发送第一命令包括:
所述第一安全元件应用根据所述第一请求,以及所述能力列表向所述通用可信应用发送所述第一命令。
7.一种终端,其特征在于,所述终端的应用环境包括富执行环境REE、可信执行环境TEE和安全元件SE,其中,所述终端的安全应用使用在所述REE中的与所述安全应用对应的客户端应用,在所述TEE中的通用可信应用,以及在所述SE中的与所述安全应用对应的安全元件应用;所述通用可信应用为至少两个安全应用共用;所述终端包括:通用可信应用单元、第一客户端应用单元和第一安全元件应用单元;
所述通用可信应用单元,用于接收所述第一客户端应用单元的第一请求;根据所述第一请求确定与所述第一客户端应用单元对应的所述第一安全元件应用单元;向所述第一安全元件应用单元发送所述第一请求;
所述第一安全元件应用单元,用于根据所述第一请求,向所述通用可信应用单元发送第一命令;
所述通用可信应用单元,还用于执行所述第一命令,并向所述第一安全元件应用单元返回第一执行结果;
所述第一安全元件应用单元,还用于根据所述第一执行结果向所述通用可信应用单元发送第一响应;
所述通用可信应用单元,还用于向所述第一客户端应用单元发送所述第一响应;
所述通用可信应用单元,还用于从所述第一客户端应用单元接收目标资源,所述目标资源使用存储在所述第一安全元件应用单元中的秘钥加密;从所述第一安全元件应用单元获取所述秘钥;采用所述秘钥对所述目标资源进行验证签名,若验证签名成功,则存储所述目标资源;
所述第一安全元件应用单元,还用于通过所述第一命令获取所述目标资源。
8.根据权利要求7所述的终端,其特征在于,
所述第一安全元件应用单元,用于根据所述第一请求,向所述通用可信应用单元发送第一命令具体为:
所述第一安全元件应用单元,具体用于根据所述第一请求,向所述通用可信应用单元发送第二响应,所述第二响应中携带所述第一命令。
9.根据权利要求7所述的终端,其特征在于,
所述第一安全元件应用单元,用于根据所述第一请求,向所述通用可信应用单元发送第一命令具体为:
所述第一安全元件应用单元,具体用于根据所述第一请求,向所述通用可信应用单元发送第三响应,所述第三响应指示所述第一安全元件应用单元要发送命令;接收所述通用可信应用根据所述第三响应发送的第二请求,所述第二请求用于请求所述第一安全元件应用单元发送命令;根据所述第二请求,向所述通用可信应用单元发送第四响应,所述第四响应中携带所述第一命令。
10.根据权利要求7-9任一项所述的终端,其特征在于,
所述通用可信应用单元用于根据所述第一请求确定与所述第一客户端应用单元对应的所述第一安全元件应用单元,具体为:
所述通用可信应用单元具体用于根据所述第一请求中携带的第一客户端应用单元的标识,以及本地存储的客户端应用的标识与安全元件应用的标识的对应关系,确定所述第一安全元件应用单元。
11.根据权利要求7-9任一项所述的终端,其特征在于,
所述通用可信应用单元,还用于在所述通用可信应用单元向所述第一安全元件应用单元发送所述第一请求之前,向所述第一安全元件应用单元发送能力列表,所述能力列表包括所述通用可信应用单元支持执行的命令。
12.根据权利要求11所述的终端,其特征在于,
所述第一安全元件应用单元用于根据所述第一请求,向所述通用可信应用单元发送第一命令,具体为:
所述第一安全元件应用单元具体用于根据所述第一请求,以及所述能力列表向所述通用可信应用单元发送第一命令。
13.一种终端,其特征在于,包括:处理器、存储器和触摸屏,所述存储器、所述触摸屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以执行如权利要求1-6中任一项所述的方法。
14.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-6中任一项所述的方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2018/084931 WO2019205108A1 (zh) | 2018-04-27 | 2018-04-27 | 构建多个应用通用的可信应用 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111357255A CN111357255A (zh) | 2020-06-30 |
| CN111357255B true CN111357255B (zh) | 2021-11-19 |
Family
ID=68294722
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880074906.4A Active CN111357255B (zh) | 2018-04-27 | 2018-04-27 | 构建多个应用通用的可信应用 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11734416B2 (zh) |
| EP (1) | EP3764258B1 (zh) |
| CN (1) | CN111357255B (zh) |
| WO (1) | WO2019205108A1 (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102605461B1 (ko) * | 2018-09-20 | 2023-11-23 | 삼성전자주식회사 | 보안 엘리먼트를 이용하여 서비스를 제공하는 전자 장치 및 그의 동작 방법 |
| US11432151B1 (en) * | 2019-09-13 | 2022-08-30 | Sprint Communications Company L.P. | Wireless gateway with multiple processors managed by trusted processor |
| CN113962676A (zh) * | 2020-07-20 | 2022-01-21 | 华为技术有限公司 | 交易验证的方法、装置 |
| CN113760090B (zh) * | 2021-06-18 | 2022-09-13 | 荣耀终端有限公司 | 一种基于可信执行环境的业务流程执行方法及电子设备 |
| CN114302404B (zh) * | 2021-12-23 | 2024-11-19 | 汇顶科技(成都)有限责任公司 | 近场通信方法、配置方法、nfc主机以及电子设备 |
| CN115835164A (zh) * | 2022-08-23 | 2023-03-21 | 无锡融卡科技有限公司 | 基于可信执行环境的移动终端、可信服务系统及可信应用管理方法 |
| US12327110B2 (en) * | 2022-08-30 | 2025-06-10 | Cisco Technology, Inc. | Software bill of materials handshake for cloud-based code execution |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014106530A1 (de) * | 2013-01-03 | 2014-07-10 | Giesecke & Devrient Gmbh | Verfahren zum laden einer aus mehreren komponenten bestehenden applikation in ein aus mehreren komponenten bestehenden gerätes |
| CN104765612A (zh) * | 2015-04-10 | 2015-07-08 | 武汉天喻信息产业股份有限公司 | 一种访问可信执行环境、可信应用的系统及方法 |
| CN104899506A (zh) * | 2015-05-08 | 2015-09-09 | 深圳市雪球科技有限公司 | 基于可信执行环境中虚拟安全元件的安全系统实现方法 |
| CN105592019A (zh) * | 2014-11-05 | 2016-05-18 | 中国银联股份有限公司 | 双执行环境之间双向访问应用的方法 |
| CN106228072A (zh) * | 2016-07-21 | 2016-12-14 | 恒宝股份有限公司 | 一种通用ta支付平台和支付方法 |
| CN106506472A (zh) * | 2016-11-01 | 2017-03-15 | 黄付营 | 一种安全的移动终端电子认证方法及系统 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120124659A1 (en) * | 2010-11-17 | 2012-05-17 | Michael Craft | System and Method for Providing Diverse Secure Data Communication Permissions to Trusted Applications on a Portable Communication Device |
| US8935746B2 (en) * | 2013-04-22 | 2015-01-13 | Oracle International Corporation | System with a trusted execution environment component executed on a secure element |
| US9264410B2 (en) * | 2014-06-05 | 2016-02-16 | Sony Corporation | Dynamic configuration of trusted executed environment resources |
| EP3443462B8 (en) * | 2016-04-14 | 2022-05-18 | Sequent Software Inc. | System and method for generation, storage, administration and use of one or more digital secrets in association with a portable electronic device |
| US20180012037A1 (en) * | 2016-07-05 | 2018-01-11 | Nxp B.V. | Secure operation apparatuses and methods therefor |
| CN106254323A (zh) | 2016-07-27 | 2016-12-21 | 恒宝股份有限公司 | 一种ta和se的交互方法、ta、se及tsm平台 |
-
2018
- 2018-04-27 US US17/047,747 patent/US11734416B2/en active Active
- 2018-04-27 WO PCT/CN2018/084931 patent/WO2019205108A1/zh not_active Ceased
- 2018-04-27 CN CN201880074906.4A patent/CN111357255B/zh active Active
- 2018-04-27 EP EP18916363.7A patent/EP3764258B1/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014106530A1 (de) * | 2013-01-03 | 2014-07-10 | Giesecke & Devrient Gmbh | Verfahren zum laden einer aus mehreren komponenten bestehenden applikation in ein aus mehreren komponenten bestehenden gerätes |
| CN105592019A (zh) * | 2014-11-05 | 2016-05-18 | 中国银联股份有限公司 | 双执行环境之间双向访问应用的方法 |
| CN104765612A (zh) * | 2015-04-10 | 2015-07-08 | 武汉天喻信息产业股份有限公司 | 一种访问可信执行环境、可信应用的系统及方法 |
| CN104899506A (zh) * | 2015-05-08 | 2015-09-09 | 深圳市雪球科技有限公司 | 基于可信执行环境中虚拟安全元件的安全系统实现方法 |
| CN106228072A (zh) * | 2016-07-21 | 2016-12-14 | 恒宝股份有限公司 | 一种通用ta支付平台和支付方法 |
| CN106506472A (zh) * | 2016-11-01 | 2017-03-15 | 黄付营 | 一种安全的移动终端电子认证方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11734416B2 (en) | 2023-08-22 |
| CN111357255A (zh) | 2020-06-30 |
| EP3764258A1 (en) | 2021-01-13 |
| EP3764258B1 (en) | 2023-07-26 |
| EP3764258A4 (en) | 2021-01-13 |
| US20210165874A1 (en) | 2021-06-03 |
| WO2019205108A1 (zh) | 2019-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111357255B (zh) | 构建多个应用通用的可信应用 | |
| EP3716656B1 (en) | Profile generation method, profile acquisition method, and related device and storage medium | |
| EP3761606B1 (en) | Method for transmitting configuration file, related device and storage medium | |
| EP3693911B1 (en) | Card linking method and terminal | |
| AU2018421189B2 (en) | Method for quickly opening application or application function, and terminal | |
| US20230039353A1 (en) | Information Content Viewing Method and Terminal | |
| EP3681120B1 (en) | Method and device for accessing device identifiers | |
| CN108702602B (zh) | 分享图像的方法、电子设备及系统 | |
| EP3817322A1 (en) | Method for upgrading service application range of electronic identity card, and terminal device | |
| CN110168487B (zh) | 一种触摸控制方法及装置 | |
| WO2022057742A1 (zh) | 一种跨设备调用应用的方法及电子设备 | |
| EP4307198A2 (en) | Card binding method and terminal | |
| CN115643572A (zh) | 在局域网内共享数据的方法及电子设备 | |
| WO2019178869A1 (zh) | 一种eSIM卡的开户方法及终端 | |
| WO2017206833A1 (zh) | 支付方法、支付设备和支付服务器 | |
| WO2017211205A1 (zh) | 一种白名单更新方法和装置 | |
| CN117131481B (zh) | 用户登录方法和电子设备 | |
| WO2019148397A1 (zh) | 分解敏感数据存储在不同应用环境中 | |
| CN105704712B (zh) | 网络资源共享方法、移动终端及服务器 | |
| CN111656346B (zh) | 一种显示方法及终端 | |
| CN115002065B (zh) | 一种建立群组的方法、装置、电子设备及存储介质 | |
| CN110140124B (zh) | 分组应用使用同一密钥共享数据 | |
| CN114296957A (zh) | 资源转移方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |