CN110532766B - 一种基于多容器的可信应用程序的处理方法及相关设备 - Google Patents
一种基于多容器的可信应用程序的处理方法及相关设备 Download PDFInfo
- Publication number
- CN110532766B CN110532766B CN201810516372.8A CN201810516372A CN110532766B CN 110532766 B CN110532766 B CN 110532766B CN 201810516372 A CN201810516372 A CN 201810516372A CN 110532766 B CN110532766 B CN 110532766B
- Authority
- CN
- China
- Prior art keywords
- secure computing
- terminal
- computing unit
- signed
- unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于多容器的可信应用程序的处理方法及相关设备,用于简化可信应用程序的开发和部署流程,提高了对可信应用程序的处理效率和可信执行环境的访问接口的安全性。本申请方法包括:终端通过安全计算容器对签名的安全计算单元进行完整性校验;若签名的安全计算单元通过完整性校验,则终端通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果;若校验结果为合法的,则终端通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。
Description
技术领域
本申请涉及通信领域,尤其涉及一种基于多容器的可信应用程序的处理方法及相关设备。
背景技术
目前,终端安全主要涉及五种领域:身份认证,准入控制,安全认证,业务授权,业务审计。对于安全认证领域,开始出现基于通用串行总线接口的硬件设备(universalserial bus key,USB Key)、可信执行环境(trusted execution environment,TEE)和安全元件(secure element,SE)等更为安全的解决方案,其中,可信执行环境TEE可以解决在移动支付场景下消费者、商户、移动运营商、第三方支付、金融机构等上下游参与方的各种不同安全诉求,是当前最具备发展潜力的技术之一。目前,TEE技术已经在手机、机顶盒、平板和其它设备上广泛使用。
现有技术中,将在富执行环境(rich execution environment,REE)上执行的应用程序称为客户应用程序(client application,CA),例如,安卓(Android)等容易被攻击的传统操作系统,或第三方应用程序等;将在TEE上执行的应用程序称为可信应用程序(trusted application,TA),例如,执行签名、加解密计算等关键服务的程序。为了提升安全性,通过TEE将高安全敏感的TA与REE进行隔离,为TA提供专门的安全执行环境,并保护TA的资源和数据的保密性、完整性和访问权限。由于TA运行在TEE/SE中,TA的部署/升级操作需要严格遵循TEE/SE发行方(通常是终端厂商)的安全验证规范。
由于目前的TEE的应用架构存在一些限制,不同终端厂商的TEE实现可信应用管理平台也存在较多差异,导致可信应用程序的开发及部署过程较为复杂,由于TEE技术的核心框架在于REE和TEE的隔离,由于REE侧容易遭受外界攻击,高安全级别的数据处理只能全部放在TEE侧实现。因为TEE需要通过对TA的安全计算单元进行数字签名等专有措施确保TEE真正可信,TA的开发者必须联系各个TEE发行方(通常是终端厂商)进行合作开发,这种上下游(TA开发者和TEE发行方)的耦合关系,会导致可信应用程序TA的处理效率低。
发明内容
本申请实施例提供了一种基于多容器的可信应用程序的处理方法及相关设备,用于简化可信应用程序的开发和部署流程,提高了对可信应用程序的处理效率和可信执行环境的访问接口的安全性。
本申请第一方面提供了一种基于多容器的可信应用程序的处理方法,包括:终端通过安全计算容器对签名的安全计算单元进行完整性校验,即确定该签名的安全计算单元是否被第三方篡改;若签名的安全计算单元通过完整性验证,即签名的安全计算单元未被第三方篡改,则终端通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果;若校验结果为合法的,即二级证书所属的签名的安全计算单元是合法的,则终端通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。通过引入安全计算容器的方式,避免了TEE的客户端应用程序受到攻击,达到了隔离主容器和TEE的安全效果,提高了可信执行环境的访问接口的安全性。
在一种可能的设计中,在本申请实施例第一方面的第一种实现方式中,终端通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果包括:终端通过安全计算容器获取签名的安全计算单元的二级证书,该二级证书用于验证签名的安全计算单元的合法性;终端通过安全计算容器将二级证书发送至验证服务器;终端通过安全计算容器接收验证服务器发送的校验结果。通过给安全计算单元分配二级证书,使安全计算单元在主容器之外的安全计算容器中进行二级证书校验,认证与加载,既解决了可信应用程序开发的流程冗长的问题,降低了第三方开发者和终端厂商的接入成本,又保证了验证与加载安全计算单元的安全性。
在一种可能的设计中,在本申请实施例第一方面的第二种实现方式中,终端通过安全计算容器对签名的安全计算单元进行完整性校验包括:终端通过安全计算容器中的安全计算授权与加载模块从签名的安全计算单元中获取签名文件;终端通过安全计算授权与加载模块从签名的安全计算单元中获取安全计算单元文件元数据;终端通过安全计算授权与加载模块对安全计算单元文件元数据进行摘要计算,得到安全计算单元文件元数据的哈希值;终端通过安全计算授权与加载模块将哈希值和签名文件进行比对校验,即比较哈希值与签名文件的哈希值是否相同。对具体的完整性校验过程进行了细化,在可信应用程序的开发流程中,在签名的安全计算单元加载至可信执行环境之前,对签名的安全计算单元进行完整性验证,提高了签名的安全计算单元的可靠性和安全性。
在一种可能的设计中,在本申请实施例第一方面的第三种实现方式中,终端通过安全计算容器对签名的安全计算单元进行完整性校验之前,所述方法还包括:终端从主容器获取加载请求,该加载请求用于所述终端的安全计算容器加载签名的安全计算单元,该签名的安全计算单元用于对可信应用程序进行安全计算。增加了从主容器获取加载请求的过程,将对可信应用程序的安全计算功能拆分到安全计算单元中,定义安全计算的统一接口,达到一次开发,所有终端平台均可运行,避免了第三方开发者需要为每个终端平台定制TA的过程,降低了开发者和终端厂商的开发和分发成本。
在一种可能的设计中,在本申请实施例第一方面的第四种实现方式中,终端通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果之后,所述方法还包括:终端将安全计算结果传输至终端的主容器。将安全计算结果反馈至可信应用程序,实现对可信应用程序的安全计算。
在一种可能的设计中,在本申请实施例第一方面的第五种实现方式中,所述方法还包括:若签名的安全计算单元没有通过完整性验证,则终端停止加载签名的安全计算单元的流程。增加了签名的安全计算单元没有通过完整性验证时,停止加载签名的安全计算单元的过程,确保了安全计算单元的有效性,提高了可信应用程序的开发过程的安全性。
在一种可能的设计中,在本申请实施例第一方面的第六种实现方式中,所述方法还包括:若校验结果为不合法的,则终端停止加载签名的安全计算单元的流程。增加了当二级证书为不合法的情况下,停止加载签名的安全计算单元的过程,确保了安全计算单元的合法性,提高了可信应用程序的开发过程的安全性。
在一种可能的设计中,在本申请实施例第一方面的第七种实现方式中,签名的安全计算单元的文件格式至少包括初始段、代码段和数据段。确定了签名的安全计算单元的具体组成,明确了统一的安全计算单元,简化了可信应用程序的开发过程。
本申请第二方面提供了一种基于多容器的可信应用程序的处理方法,包括:验证服务器接收终端发送的二级证书,该二级证书用于验证签名的安全计算单元的合法性;验证服务器从数字证书认证服务器获取根证书,该根证书与二级证书对应;验证服务器验证二级证书是否为根证书签发;若二级证书为根证书签发,则验证服务器确定签名的安全计算单元为合法的;若二级证书不为根证书签发,则验证服务器确定签名的安全计算单元为不合法的。通过验证服务器对安全计算单元的证书进行在线验证合法性,只有在证书有效的情况才会加载安全计算单元,保证了安全计算单元的合法性。
在一种可能的设计中,在本申请实施例第二方面的第一种实现方式中,所述方法还包括:验证服务器将验证结果发送至终端,该验证结果用于指示签名的安全计算单元是否为合法的。增加了将验证结果发送至终端的过程,使本申请实施例在步骤上更完善。
在一种可能的设计中,在本申请实施例第二方面的第二种实现方式中,验证服务器验证二级证书是否为根证书签发包括:验证服务器判断二级证书的公钥和根证书的公钥是否相同;若相同,则验证服务器确定二级证书为根证书签发;若不相同,则验证服务器确定二级证书不为根证书签发。细化了对二级证书的验证过程,增加了本申请实施例的实现方式。
本申请第三方面提供了一种终端,包括:校验单元,用于通过安全计算容器对签名的安全计算单元进行完整性校验;第一处理单元,若签名的安全计算单元通过完整性校验,则用于通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果;第二处理单元,若校验结果为合法的,则用于通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。通过引入安全计算容器的方式,避免了TEE的客户端应用程序受到攻击,达到了隔离主容器和TEE的安全效果,提高了可信执行环境的访问接口的安全性。
在一种可能的设计中,在本申请实施例第三方面的第一种实现方式中,第一处理单元具体用于:通过安全计算容器获取签名的安全计算单元的二级证书,该二级证书用于验证签名的安全计算单元的合法性;通过安全计算容器将二级证书发送至验证服务器;通过安全计算容器接收验证服务器发送的校验结果。通过给安全计算单元分配二级证书,使安全计算单元在主容器之外的安全计算容器中进行二级证书校验,认证与加载,既解决了可信应用程序开发的流程冗长的问题,降低了第三方开发者和终端厂商的接入成本,又保证了验证与加载安全计算单元的安全性。
在一种可能的设计中,在本申请实施例第三方面的第二种实现方式中,所述校验单元具体用于:通过安全计算容器中的安全计算授权与加载模块从签名的安全计算单元中获取签名文件;通过安全计算授权与加载模块从签名的安全计算单元中获取安全计算单元文件元数据;通过安全计算授权与加载模块对安全计算单元文件元数据进行摘要计算,得到安全计算单元文件元数据的哈希值;通过安全计算授权与加载模块将哈希值和签名文件进行比对校验。对具体的完整性校验过程进行了细化,在可信应用程序的开发流程中,在签名的安全计算单元加载至可信执行环境之前,对签名的安全计算单元进行完整性验证,提高了签名的安全计算单元的可靠性和安全性。
在一种可能的设计中,在本申请实施例第三方面的第三种实现方式中,终端还包括:获取单元,用于从主容器获取加载请求,该加载请求用于终端的安全计算容器加载签名的安全计算单元,该签名的安全计算单元用于对可信应用程序进行安全计算。增加了从主容器获取加载请求的过程,将对可信应用程序的安全计算功能拆分到安全计算单元中,定义安全计算的统一接口,达到一次开发,所有终端平台均可运行,避免了第三方开发者需要为每个终端平台定制TA的过程,降低了开发者和终端厂商的开发和分发成本。
在一种可能的设计中,在本申请实施例第三方面的第四种实现方式中,终端还包括:传输单元,用于将安全计算结果传输至终端的主容器。将安全计算结果反馈至可信应用程序,实现对可信应用程序的安全计算。
在一种可能的设计中,在本申请实施例第三方面的第五种实现方式中,终端还包括:第一停止单元,若签名的安全计算单元没有通过完整性验证,则用于停止加载签名的安全计算单元的流程。增加了签名的安全计算单元没有通过完整性验证时,停止加载签名的安全计算单元的过程,确保了安全计算单元的有效性,提高了可信应用程序的开发过程的安全性。
在一种可能的设计中,在本申请实施例第三方面的第六种实现方式中,终端还包括:第二停止单元,若校验结果为不合法的,则用于停止加载签名的安全计算单元的流程。增加了当二级证书为不合法的情况下,停止加载签名的安全计算单元的过程,确保了安全计算单元的合法性,提高了可信应用程序的开发过程的安全性。
在一种可能的设计中,在本申请实施例第三方面的第七种实现方式中,签名的安全计算单元的文件格式至少包括初始段、代码段和数据段。确定了签名的安全计算单元的具体组成,明确了统一的安全计算单元,简化了可信应用程序的开发过程。
本申请第四方面提供了一种服务器,服务器为验证服务器,包括:接收单元,用于接收终端发送的二级证书,该二级证书用于验证签名的安全计算单元的合法性;获取单元,用于从数字证书认证服务器获取根证书;验证单元,用于验证二级证书是否为根证书签发;第一确定单元,若二级证书为根证书签发,则用于确定签名的安全计算单元为合法的;第二确定单元,若二级证书不为根证书签发,则用于确定签名的安全计算单元为不合法的。通过验证服务器对安全计算单元的证书进行在线验证合法性,只有在证书有效的情况才会加载安全计算单元,保证了安全计算单元的合法性。
在一种可能的设计中,在本申请实施例第四方面的第一种实现方式中,服务器还包括:发送单元,用于将验证结果发送至终端,该验证结果用于指示签名的安全计算单元是否为合法的。增加了将验证结果发送至终端的过程,使本申请实施例在步骤上更完善。
在一种可能的设计中,在本申请实施例第四方面的第二种实现方式中,验证单元具体用于:判断二级证书的公钥和根证书的公钥是否相同;若相同,则确定二级证书为根证书签发;若不相同,则确定二级证书不为根证书签发。细化了对二级证书的验证过程,增加了本申请实施例的实现方式。
本申请第五方面提供了一种终端,包括:存储器、收发器和至少一个处理器,所述存储器中存储有程序代码,所述存储器、所述收发器和所述至少一个处理器通过线路通信,所述处理器运行所述代码以指令所述终端执行上述第一方面任一项所述的方法。
本申请第六方面提供了一种服务器,包括:存储器、收发器和至少一个处理器,所述存储器中存储有程序代码,所述存储器、所述收发器和所述至少一个处理器通过线路通信,所述处理器运行所述代码以指令所述服务器执行上述第二方面任一项所述的方法。
本申请的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,当其在计算机上运行时,使得计算机执行上述第二方面所述的方法。
本申请的第九方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请的第十方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
终端通过安全计算容器对签名的安全计算单元进行完整性校验,即确定该签名的安全计算单元是否被第三方篡改;若签名的安全计算单元通过完整性验证,即签名的安全计算单元未被第三方篡改,则终端通过所述安全计算容器对所述签名的安全计算单元进行合法性校验并获取校验结果;若校验结果为合法的,即二级证书所属的签名的安全计算单元是合法的,则终端通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。本申请中,通过引入安全计算容器的方式,避免了TEE的客户端应用程序受到攻击,达到了隔离主容器和TEE的安全效果,改进了目前可信应用程序进行验证的流程,提高了可信执行环境的访问接口安全性。
附图说明
图1为现有方案应用的系统架构示意图;
图2为本申请实施例应用的系统架构示意图;
图3为本申请实施例中基于多容器的可信应用程序的处理方法的一个流程示意图;
图4为本申请实施例中基于多容器的可信应用程序的处理方法的另一个流程示意图;
图5为本申请实施例中终端的一个结构示意图;
图6为本申请实施例中终端的另一个结构示意图;
图7为本申请实施例中验证服务器的一个结构示意图;
图8为本申请实施例中验证服务器的另一个结构示意图;
图9A为本申请实施例中终端的另一个结构示意图;
图9B为本申请实施例中终端的另一个结构示意图;
图10为本申请实施例中终端的另一个结构示意图;
图11为本申请实施例中验证服务器的另一个结构示意图。
具体实施方式
本申请实施例提供了一种基于多容器的可信应用程序的处理方法及相关设备,用于简化可信应用程序的开发和部署流程,提高了对可信应用程序的处理效率和可信执行环境的访问接口的安全性。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有方案中提供了一种系统架构,如图1所示,在该系统架构中,包括可信执行环境(trusted execution environment,TEE)和富执行环境(rich execution environment,REE)。将高安全敏感的应用与通用的软件环境进行隔离,提供专门的可信执行环境TEE,并保护应用的资源和数据的保密性、完整性和访问权限;对Android等容易被攻击的传统操作系统提供通用的富执行环境REE。在REE侧执行的应用称为客户端应用程序(clientapplication,CA),比如银行类应用等第三方支付应用,在TEE侧执行的应用称为可信应用程序(trusted application,TA),比如执行签名、加解密计算等关键服务的应用。由于TA运行在可信执行环境TEE中,TA的部署/升级操作需要严格遵循TEE发行方(通常是终端厂商)的安全验证规范,比如使用数字签名等措施,确保TEE各个环节是真正可信的。可信执行环境TEE中包括可信执行环境内部应用程序编程接口(trusted execution environmentinternal application programming interface,TEE Internal API)和可信操作系统部件,TEE Internal API的主要作用为:向上提供可信操作系统部件的功能、与客户端应用程序CA通信、实现TA与TA通信、提供安全存储、密码学功能、时间功能等;可信操作系统部件主要包括可信核心框架、可信功能、可信内核和可信执行环境TEE通信代理,其中,可信核心框架为TA提供类似操作系统的功能;可信功能为应用开发者提供支持能力;可信内核用于与平台硬件中的可信设备进行交互;可信执行环境通信代理为TA和CA提供一个安全的通信通道,例如,可信执行环境通信代理通过平台硬件将消息传递至富执行环境通信代理,实现TA和CA的交互。富执行环境REE中包括可信执行环境客户端应用程序编程接口(trustedexecution environment client application programming interface,TEE ClientAPI)、可信执行环境功能应用程序编程接口(trusted execution environmentfunctional application programming interface,TEE Functional API)和多媒体操作系统,多媒体操作系统部件主要包括公共设备驱动和富执行环境通信代理,其中,富执行环境通信代理用于与TEE进行通信,CA和TA提供一个安全的通信通道,公共设备驱动用于驱动平台硬件中的公共设备。CA使用TEE Client API、TEE Functional API接入到由TA提供的安全服务。
由于该系统架构存在一些限制,不同终端厂商的TEE实现可信应用管理平台也存在较多差异,导致TA的开发及部署过程较为复杂。由于TEE侧通过数字签名等专有措施确保TEE真正可信,具体的管控措施由具体的终端厂商(TEE发行方)实施,可选应用程序TA的开发者必须联系各终端厂商进行合作开发,这种上下游的耦合关系,导致TA开发流程复杂和冗长。例如,支付宝应用程序的TA,需要在每个终端厂商的设备上开发一套TA,每个平台上的TA签名与系统接口都不一致,导致支付宝应用程序的TA研发流程和分发流程异常复杂,进而导致因流程不规范而存在的安全风险,同理,其他第三方开发者也会遇到同样的问题。
本申请实施例可应用于如图2所示的系统架构,在该系统架构中,包括终端100、验证服务器200和数字证书认证(certificate authority,CA)服务器300,其中,终端有三种应用环境,分别为:富执行环境(rich execution environment,REE)、可信执行环境(trusted execution environment,TEE)和安全元件(secure element,SE),终端包括主容器101、安全计算容器102、可信执行环境(trusted execution environment,TEE)和安全元件(secure element,SE)103、系统内核104和平台硬件105,其中,主容器101中运行环境为REE,主容器中包括多个应用程序,例如应用程序1、应用程序2和应用程序3;安全计算容器102包括安全计算授权与加载模块。其中,安全计算容器从主容器中独立出来,安全计算容器支持的硬件与主容器支持的硬件相同,例如,都是支持使用REE的硬件接口。CA服务器300用于保存终端厂商提供的所有有效的证书,有效的证书包括二级证书和根证书,终端厂商可以在CA服务器300上管理这些有效的证书(可以对这些有效的证书进行查询、新增、吊销、失效、重新授权等操作)。验证服务器200用于为安全授权与加载模块提供对二级证书的有效性进行验证。本申请的系统架构可以应用在支付、加密存储等涉及安全计算的场景中,具体此处不做限定。
为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图3,本申请实施例中基于多容器的可信应用程序的处理方法的一个实施例包括:
301、终端从主容器获取加载请求。
终端从主容器获取加载请求,该加载请求用于指示终端的安全计算容器加载签名的安全计算单元,该签名的安全计算单元用于对可信应用程序TA进行安全计算,其中,安全计算单元为可信应用程序中执行安全计算的功能模块。
在操作系统内核中隔离出多个相互独立的系统资源,即容器,每个容器都运行独立的OS,各个容器之间无法直接相互访问,本申请中提供了主容器和安全计算容器,其中主容器中的应用环境为REE。
可信应用程序TA向终端的安全计算容器中的安全计算授权与加载模块请求加载签名的安全计算单元。具体的,主容器中运行的是一个智能操作系统(比如Android系统),这个主容器中的应用程序(比如支付宝)需要进行安全计算,不再是直接向TEE发起调用,而是向安全计算容器进行发起调用,将签名的安全计算单元和参数传输至安全计算容器中的安全计算授权与加载模块,安全计算授权与加载模块会检查应用程序是否有权限发起此调用。
需要说明的是,在发送加载请求之前,需要用户先开发得到未签名的安全计算单元,在对该未签名的安全计算单元进行签名,得到签名的安全计算单元。开发得到未签名的安全计算单元的过程如下:
用户(第三方开发者)向终端厂商提交必要的资料,向终端厂商申请开发者证书,终端厂商在审核通过之后,给用户颁发开发者证书(二级证书),同时,将二级证书的公钥保存在CA服务器上。用户利用终端厂商提供的安全计算单元的软件开发工具包(softwaredevelopment kit,SDK)和编译器套件得到未签名的安全计算单元,其中,SDK包含了C标准库和加解密计算库,编译器套件包含了编译器和链接脚本,链接脚本用于将编译之后的程序组装成一个标准的安全计算单元,例如,用户使用支付宝进行指纹支付时,因为指纹信息为重要的安全数据信息,需要在一个安全的环境中进行收集,因此支付宝需要对指纹采集的环境进行安全计算,将执行该功能的程序剥离出来重新编译得到未签名的安全计算单元,通过该未签名的安全计算单元对指纹采集的环境进行安全计算。该链接脚本具体用于将若干个输入文件根据一定的规则合并成一个输出文件,例如,链接脚本命令ENTRY指定了安全计算单元的入口函数为compute函数,这样TEE在加载安全计算单元时就能够将需要计算参数直接传递给compute函数,进行安全计算,获得计算结果。该链接脚本的代码如下所示:
ENTRY(compute)
SECTIONS
{
.=0×10000;
.text:{*(.text)}
.=0×8000000;
.data:{*(.data)}
.bss:{*(.bss)}
}
其中,经过编译器编译之后,未签名的安全计算单元的文件格式与动态库文件格式一样,有初始(init)段,代码段,数据段等。
对该未签名的安全计算单元进行签名的过程如下:
首先利用摘要算法对编译之后的未签名的安全计算单元文件进行摘要计算,得到安全计算单元的摘要文件,可选的,摘要算法可以采用安全哈希算法(secure Hashalgorithm,SHA),例如SHA256,SHA512等;然后利用终端厂商颁发的二级证书中的公钥对摘要进行签名,生成签名文件,具体为CERT.RSA文件;将未签名的安全计算单元与签名文件进行合成,最终得到签名的安全计算单元。
可以理解的是,在开发得到未签名的安全计算单元之前,需要定义安全计算单元的同一格式,用户不用再考虑不同质终端厂家采用不同的TEE技术,实现开发一套安全计算单元,可以运行在各个终端平台的TEE之上。
302、终端通过安全计算容器对签名的安全计算单元进行完整性校验。
终端根据加载请求和安全计算授权与加载模块判断可信应用程序TA有权限发起此调用之后,终端通过安全计算容器中的安全计算授权与加载模块从签名的安全计算单元中获取密钥文件;终端通过所述安全计算授权与加载模块从签名的安全计算单元中获取安全计算单元文件元数据;终端通过安全计算授权与加载模块对安全计算单元文件元数据进行摘要计算,得到安全计算单元文件元数据的哈希值;终端通过安全计算授权与加载模块将哈希值和签名文件进行比对校验。若签名的安全计算单元通过完整性验证,即哈希值与签名文件的哈希值相同,则终端执行步骤303。完整性是指在传输、存储信息或数据的过程中,确保信息或数据不被未授权的篡改或在篡改后能被迅速发现。
例如,安全计算授权与加载模块首先提取安全计算单元文件头部的CERT.RSA信息;接着提取安全计算单元中的安全计算单元文件元数据,安全计算单元文件元数据的起始地址为CERT.RSA的尾部,安全计算单元文件元数据的结束地址是安全计算单元文件的末尾;再利用SHA256算法对安全计算单元文件元数据进行摘要计算,得到安全计算单元元数据的哈希值;再根据。
需要说明的是,若签名的安全计算单元没有通过完整性验证,则终端可以认为此安全计算单元受到第三方篡改,停止加载签名的安全计算单元的流程。
可以理解的是,本申请在现有的“主容器”的基础上,增加了一个专门的“安全计算容器”,在该安全计算容器中将安全计算处理中后续容易产生变化的处理步骤剥离出来。该安全计算容器仍然位于REE侧,与REE侧的主容器使用相同的硬件,但是和主容器中的操作系统(Android系统)相互隔离,安全计算容器中的数据安全性有较高保证,最高安全要求的计算处理步骤仍然由原TEE中的TA完成。例如,用户开发的支付宝程序不再直接使用TEE进行安全计算,而由安全计算容器来使用TEE进行安全计算,在新增的安全计算容器中,实现对支付宝的安全计算单元进行校验、认证与加载计算流程,这样能保证安全计算单元的安全性,解决了用户开发的TA分发的安全性问题;并且新增的安全计算容器,隔离了应用程序与TEE之间的联系,解决了TA容易遭受CA侧恶意调用,而导致TEE拒绝服务的风险。
303、终端通过安全计算容器获取签名的安全计算单元的二级证书。
终端通过通过安全计算容器中的安全计算授权与加载模块获取签名的安全计算单元的二级证书,该二级证书用于验证签名的安全计算单元的合法性。
例如,终端通过安全计算授权与加载模块从签名的安全计算单元中提取二级证书,该二级证书用于指示该签名的安全计算单元的授权信息。
304、终端通过安全计算容器将二级证书发送至验证服务器。
终端通过安全计算容器中的安全计算授权与加载模块将二级证书发送至验证服务器。
需要说明的是,二级证书与存储在数字证书认证服务器上的根证书属于同源,二者具有同样的公钥,二级证书为根证书签发的。
305、验证服务器从数字证书认证服务器获取根证书。
验证服务器从数字证书认证服务器获取根证书。
具体的,验证服务器根据二级证书中携带的目标应用程序信息,向数字证书认证服务器发送根证书获取请求,该根证书获取请求中携带有目标应用程序信息;数字证书认证服务器根据目标应用程序信息将对应的根证书发送至验证服务器。
306、验证服务器验证二级证书是否为根证书签发。
验证服务器验证二级证书是否为根证书签发。
具体的,验证服务器判断二级证书的公钥和根证书的公钥是否相同;若相同,则验证服务器确定二级证书为根证书签发;若不相同,则验证服务器确定所二级证书不为根证书签发。若二级证书为根证书签发,则验证服务器确定签名的安全计算单元为合法的;若二级证书不为根证书签发,则验证服务器确定签名的安全计算单元为不合法的。
可以理解的是,通过公钥对证书进行验证为现有技术,具体此处不再赘述。还可以采用其他的验证方法验证二级证书的合法性,具体此处不做限定。
307、验证服务器将验证结果发送至终端。
验证服务器将验证结果发送至终端,该验证结果用于指示签名的安全计算单元是否为合法的。
需要说明的是,若校验结果为合法的,则终端执行步骤308。若校验结果为不合法的,则终端停止加载签名的安全计算单元的流程。
308、终端通过可信执行环境加载签名的安全计算单元并获取可信应用程序的安全计算结果。
终端通过可信执行环境TEE加载签名的安全计算单元并获取可信应用程序的安全计算结果。具体的,终端的可信应用程序管理器(TA Manager)先检查签名的安全计算单元的二级证书是否合法,检查通过后,TAManager调用签名的安全计算单元的通用接口,获取安全计算结果,将安全计算结果返回至安全计算容器。
需要说明的是,终端还可以通过安全元件SE调用签名的安全计算单元并获取TA的安全计算结果,终端通过SE调用签名的安全计算单元的过程与TEE调用签名的安全计算单元的过程类似,此处不再赘述。
309、终端通过可信执行环境TEE将安全计算结果传输至终端的安全计算容器。
终端通过可信执行环境TEE将安全计算结果传输至终端的安全计算容器中的安全计算授权与加载模块。
需要说明的是,终端还可以通过安全元件SE将安全计算结果传输至终端的安全计算容器中的安全计算授权与加载模块。
310、终端将安全计算结果传输至终端的主容器。
终端将安全计算结果传输至终端的主容器。具体的,终端的安全计算授权与加载模块将接收到的安全计算结果传输至主容器中的可信应用程序TA。
本申请实施例中,通过二级证书、在安全容器中进行合法性校验的方法,解耦了目前TA开发流程冗长的问题,向第三方开发者开放了安全计算的能力,简化第三方开发者对TA的开发和部署流程,提高了对TA的处理效率;通过新增的安全计算容器,在安全计算容器中对安全计算单元进行校验、认证与加载,保证了验证与加载安全计算单元的安全性,改进了目前TA进行验证的流程,提高了TEE的访问接口安全性;规定了安全计算的统一接口,便于TA应用程序的开发。
请参阅图4,本申请实施例中基于多容器的可信应用程序的处理方法的另一个实施例包括:
401、终端从主容器获取加载请求。
终端从主容器获取加载请求,该加载请求用于指示终端的安全计算容器加载签名的安全计算单元,该签名的安全计算单元用于对可信应用程序TA进行安全计算。
可信应用程序TA向终端的安全计算容器中的安全计算授权与加载模块请求加载签名的安全计算单元。具体的,主容器中运行的是一个智能操作系统(比如Android系统),这个主容器中的应用程序(比如支付宝)需要进行安全计算,不再是直接向TEE发起调用,而是向安全计算容器进行发起调用,将签名的安全计算单元和参数传输至安全计算容器中的安全计算授权与加载模块,安全计算授权与加载模块会检查应用程序是否有权限发起此调用。
402、终端通过安全计算容器对签名的安全计算单元进行完整性校验。
终端根据加载请求和安全计算授权与加载模块判断可信应用程序TA有权限发起此调用之后,终端通过安全计算容器中的安全计算授权与加载模块从签名的安全计算单元中获取密钥文件;终端通过所述安全计算授权与加载模块从签名的安全计算单元中获取安全计算单元文件元数据;终端通过安全计算授权与加载模块对安全计算单元文件元数据进行摘要计算,得到安全计算单元文件元数据的哈希值;终端通过安全计算授权与加载模块将哈希值和签名文件进行比对校验。若签名的安全计算单元通过完整性验证,即哈希值与签名文件的哈希值相同,则终端执行步骤303。
403、终端通过安全计算容器获取签名的安全计算单元的二级证书。
终端通过通过安全计算容器中的安全计算授权与加载模块获取签名的安全计算单元的二级证书,该二级证书用于验证签名的安全计算单元的合法性。
404、终端通过安全计算容器将二级证书发送至验证服务器。
终端通过安全计算容器中的安全计算授权与加载模块将二级证书发送至验证服务器。
405、验证服务器从数字证书认证服务器获取根证书。
验证服务器从数字证书认证服务器获取根证书。
具体的,验证服务器根据二级证书中携带的目标应用程序信息,向数字证书认证服务器发送根证书获取请求,该根证书获取请求中携带有目标应用程序信息;数字证书认证服务器根据目标应用程序信息将对应的根证书发送至验证服务器。
406、验证服务器验证二级证书是否为根证书签发。
验证服务器验证二级证书是否为根证书签发。
具体的,验证服务器判断二级证书的公钥和根证书的公钥是否相同;若相同,则验证服务器确定二级证书为根证书签发;若不相同,则验证服务器确定所二级证书不为根证书签发。若二级证书为根证书签发,则验证服务器确定签名的安全计算单元为合法的;若二级证书不为根证书签发,则验证服务器确定签名的安全计算单元为不合法的。
407、验证服务器将验证结果发送至终端。
验证服务器将验证结果发送至终端,该验证结果用于指示签名的安全计算单元是否为合法的。
需要说明的是,若校验结果为合法的,则终端执行步骤308。若校验结果为不合法的,则终端停止加载签名的安全计算单元的流程。
步骤401至步骤407与步骤301至步骤307类似,具体此处不再赘述。
408、终端通过安全元件加载签名的安全计算单元并获取可信应用程序的安全计算结果。
终端通过安全元件SE加载签名的安全计算单元并获取可信应用程序TA的安全计算结果。具体的,终端的可信应用程序管理器(TA Manager)先检查签名的安全计算单元的二级证书是否合法,检查通过后,TAManager调用签名的安全计算单元的通用接口,获取安全计算结果,将安全计算结果返回至安全计算容器。
409、终端通过安全元件SE将安全计算结果传输至终端的安全计算容器。
终端通过安全元件SE将安全计算结果传输至终端的安全计算容器中的安全计算授权与加载模块。
410、终端将安全计算结果传输至终端的主容器。
终端将安全计算结果传输至终端的主容器。具体的,终端的安全计算授权与加载模块将接收到的安全计算结果传输至主容器中的可信应用程序TA。
本申请实施例中,通过新增的安全计算容器,在安全计算容器中对安全计算单元进行校验、认证与加载,保证了验证与加载安全计算单元的安全性,改进了目前TA进行验证的流程,既降低第三方开发者和终端厂商的接入成本,又保证了验证与加载安全计算单元的安全性;通过二级证书、在安全容器中进行合法性校验的方法,解耦了目前TA开发流程冗长的问题,向第三方开发者开放了安全计算的能力,简化第三方开发者对TA的开发和部署流程,提高了对TA的处理效率。
上面对本申请实施例中基于多容器的可信应用程序的处理方法进行了描述,下面对本申请实施例中的终端和验证服务器进行描述,请参阅图5,本申请实施例中终端的一个实施例包括:
校验单元501,用于通过安全计算容器对签名的安全计算单元进行完整性校验;
第一处理单元502,若签名的安全计算单元通过完整性校验,则用于通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果;
第二处理单元503,若校验结果为合法的,则用于通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。
本申请实施例,通过引入安全计算容器的方式,避免了TEE的客户端应用程序受到攻击,达到了隔离主容器和TEE的安全效果,提高了可信执行环境的访问接口的安全性。
请参阅图6,本申请实施例中终端的另一个实施例包括:
校验单元601,用于通过安全计算容器对签名的安全计算单元进行完整性校验;
第一处理单元602,若签名的安全计算单元通过完整性校验,则用于通过安全计算容器对签名的安全计算单元进行合法性校验并获取校验结果;
第二处理单元603,若校验结果为合法的,则用于通过可信执行环境TEE或安全元件SE加载签名的安全计算单元并获取可信应用程序的安全计算结果。
在一个示例中,第一处理单元602具体用于:
通过安全计算容器获取签名的安全计算单元的二级证书,该二级证书用于验证签名的安全计算单元的合法性;
通过安全计算容器将二级证书发送至验证服务器;
通过安全计算容器接收验证服务器发送的校验结果。
在一个示例中,校验单元601具体用于:
通过安全计算容器中的安全计算授权与加载模块从签名的安全计算单元中获取签名文件;
通过安全计算授权与加载模块从签名的安全计算单元中获取安全计算单元文件元数据;
通过安全计算授权与加载模块对安全计算单元文件元数据进行摘要计算,得到安全计算单元文件元数据的哈希值;
通过安全计算授权与加载模块将哈希值和签名文件进行完整性校验。
在一个示例中,终端还可以包括:
获取单元604,用于从主容器获取加载请求,该加载请求用于终端的安全计算容器加载签名的安全计算单元,该签名的安全计算单元用于对可信应用程序进行安全计算。
在一个示例中,终端还可以包括:
传输单元605,用于将安全计算结果传输至终端的主容器。
在一个示例中,终端还可以包括:
第一停止单元606,若签名的安全计算单元没有通过完整性验证,则用于停止加载签名的安全计算单元的流程。
在一个示例中,终端还可以包括:
第二停止单元607,若校验结果为不合法的,则用于停止加载签名的安全计算单元的流程。
在一个示例中,签名的安全计算单元的文件格式至少包括初始段、代码段和数据段。
本申请实施例中,通过新增的安全计算容器,在安全计算容器中对安全计算单元进行校验、认证与加载,保证了验证与加载安全计算单元的安全性,改进了目前TA进行验证的流程,提高了TEE的访问接口安全性;通过二级证书、在安全容器中进行合法性校验的方法,解耦了目前TA开发流程冗长的问题,向第三方开发者开放了安全计算的能力,简化第三方开发者对TA的开发和部署流程,提高了对TA的处理效率;规定了安全计算的统一接口,便于TA应用程序的开发。
请参阅图7,本申请实施例中验证服务器的一个实施例包括:
接收单元701,用于接收终端发送的二级证书,该二级证书用于验证签名的安全计算单元的合法性;
获取单元702,用于从数字证书认证服务器获取根证书;
验证单元703,用于验证二级证书是否为根证书签发;
第一确定单元704,若二级证书为根证书签发,则用于确定签名的安全计算单元为合法的;
第二确定单元705,若二级证书不为根证书签发,则用于确定签名的安全计算单元为不合法的。
本申请实施例中,通过验证服务器对安全计算单元的证书进行在线验证合法性,只有在证书有效的情况才会加载安全计算单元,保证了安全计算单元的合法性。
请参阅图8,本申请实施例中验证服务器的另一个实施例包括:
接收单元801,用于接收终端发送的二级证书,该二级证书用于验证签名的安全计算单元的合法性;
获取单元802,用于从数字证书认证服务器获取根证书;
验证单元803,用于验证二级证书是否为根证书签发;
第一确定单元804,若二级证书为根证书签发,则用于确定签名的安全计算单元为合法的;
第二确定单元805,若二级证书不为根证书签发,则用于确定签名的安全计算单元为不合法的。
在一个示例中,服务器还包括:
发送单元806,用于将验证结果发送至终端,该验证结果用于指示签名的安全计算单元是否为合法的。
在一个示例中,验证单元803具体用于:
判断二级证书的公钥和根证书的公钥是否相同;
若相同,则确定二级证书为根证书签发;
若不相同,则确定二级证书不为根证书签发。
本申请实施例中,通过验证服务器对安全计算单元的证书进行在线验证合法性,只有在证书有效的情况才会加载安全计算单元,这样保证了安全计算单元的合法性。
上面图5至图8从模块化功能实体的角度分别对本申请实施例中终端和验证服务器进行详细描述,下面从硬件处理的角度对本申请实施例中终端和验证服务器进行详细描述。
本申请实施例提供一种终端,如图9A所示,该终端具有存储器901、收发器902和至少一个处理器903,该存储器901存储程序代码和数据,例如该存储器中受保护区域可以存储TEE操作系统和可信应用程序,该存储器的非受保护区域可以存储REE操作系统和客户端应用程序,存储器901、收发器902和至少一个处理器903通过总线904互相连接,总线904可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该处理器903执行该存储器901中的程序代码以指令该终端完成上述方法实施例中的操作,简化可信应用程序的开发和部署流程,提高对可信应用程序的处理效率。
图9B是本申请实施例提供的一种终端的结构示意图,参考图9B,终端910包括主容器911、安全计算容器912、可信执行环境(trusted execution environment,TEE)和安全元件(secure element,SE)913、系统内核914和平台硬件915,其中,主容器911中运行环境为REE,主容器911中包括多个应用程序,安全计算容器912包括安全计算授权与加载模块,可信执行环境和安全元件913中包括可信应用程序管理器。
图10示出的是与本申请实施例提供的终端的部分结构的框图。参考图10,所述终端包括:射频(radio frequency,RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WIFI)模块1070和处理器1080等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对所述终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器1080是终端的控制中心,在本申请实施例中,可以对签名的安全计算单元进行完整性验证,并加载签名的安全计算单元并获取可信应用程序的安全计算结果。
RF电路1010通过总线与所述处理器1080连接,负责向互联网发送数据或者从互联网接收数据,还可用于收发信息过程中,信号的接收和发送,例如,向验证服务器发送二级证书;另外,终端在接收到验证服务器发送的验证结果后,将验证结果发送给处理器1080处理。通常,所述RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,LNA)、双工器等。此外,所述RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器1020可用于存储软件程序以及模块,所述处理器1080通过运行存储在所述存储器1020的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。所述存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如对签名的安全计算单元进行完整性验证等)等;存储数据区可存储根据终端的使用所创建的数据(比如安全计算结果等)等。此外,所述存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
图11是本申请实施例提供的一种验证服务器的结构示意图,该验证服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1101(例如,一个或一个以上处理器)和存储介质1108,一个或一个以上存储应用程序1107或数据1106的存储介质1108(例如一个或一个以上海量存储设备)。其中,存储介质1108可以是短暂存储或持久存储。存储在存储介质1108的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对验证服务器中的一系列代码。更进一步地,处理器1101可以设置为与存储介质1108通信,处理器1101是验证服务器的控制中心,可利用各种接口和线路连接整个验证服务器的各个部分,通过运行或执行存储在存储介质1108内的软件程序和/或模块,以及调用存储在存储介质1108内的数据,验证服务器的各种功能和处理数据,从而完成对终端发送的二级证书的合法性验证。
存储介质1108可用于存储软件程序以及模块,处理器1101通过运行存储在存储介质1108的软件程序以及模块,从而执行验证服务器1100的各种功能应用以及数据处理。存储介质1108可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如判断二级证书是否合法等)等;存储数据区可存储根据验证服务器的使用所创建的数据(比如确定二级证书为合法的)等。此外,存储介质1108可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本申请实施例中提供的基于多容器的可信应用程序的处理方法的程序和接收到的数据流存储在存储器中,当需要使用时,处理器1101从存储介质1108中调用。
验证服务器1100还可以包括一个或一个以上电源1102,一个或一个以上有线或无线网络接口1103,一个或一个以上输入输出接口1104,和/或,一个或一个以上操作系统1105,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图11中示出的验证服务器结构并不构成对验证服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种基于多容器的可信应用程序的处理方法,其特征在于,包括:
终端通过新增的安全计算容器对签名的安全计算单元进行完整性校验,所述安全计算容器,用于隔离所述终端的主容器REE与所述终端的可信执行环境TEE,所述签名的安全计算单元是由对用户预先开发得到的未签名的安全计算单元进行签名得到,用于对可信应用程序进行安全计算;
若所述签名的安全计算单元通过所述完整性校验,则所述终端通过所述安全计算容器对所述签名的安全计算单元进行合法性校验并获取校验结果;
若所述校验结果为合法的,则所述终端通过所述可信执行环境TEE或安全元件SE加载所述签名的安全计算单元并获取所述可信应用程序的安全计算结果。
2.根据权利要求1所述的处理方法,其特征在于,所述终端通过所述安全计算容器对所述签名的安全计算单元进行合法性校验并获取校验结果包括:
所述终端通过所述安全计算容器获取所述签名的安全计算单元的二级证书,所述二级证书用于验证所述签名的安全计算单元的合法性;
所述终端通过所述安全计算容器将所述二级证书发送至验证服务器;
所述终端通过所述安全计算容器接收所述验证服务器发送的校验结果。
3.根据权利要求1所述的处理方法,其特征在于,所述终端通过安全计算容器对签名的安全计算单元进行完整性校验包括:
所述终端通过所述安全计算容器中的安全计算授权与加载模块从所述签名的安全计算单元中获取签名文件;
所述终端通过所述安全计算授权与加载模块从所述签名的安全计算单元中获取安全计算单元文件元数据;
所述终端通过所述安全计算授权与加载模块对所述安全计算单元文件元数据进行摘要计算,得到所述安全计算单元文件元数据的哈希值;
所述终端通过所述安全计算授权与加载模块将所述哈希值和所述签名文件进行比对校验。
4.根据权利要求1所述的处理方法,其特征在于,所述终端通过安全计算容器对签名的安全计算单元进行完整性校验之前,所述方法还包括:
所述终端从所述主容器获取加载请求,所述加载请求用于所述终端的安全计算容器加载所述签名的安全计算单元。
5.根据权利要求1-4任一所述的处理方法,其特征在于,所述终端通过可信执行环境TEE或安全元件SE加载所述签名的安全计算单元并获取可信应用程序的安全计算结果之后,所述方法还包括:
所述终端将所述安全计算结果传输至所述终端的主容器。
6.根据权利要求1-4任一所述的处理方法,其特征在于,所述方法还包括:
若所述签名的安全计算单元没有通过所述完整性校验,则所述终端停止加载所述签名的安全计算单元的流程。
7.根据权利要求1-4任一所述的处理方法,其特征在于,所述方法还包括:
若所述校验结果为不合法的,则所述终端停止加载所述签名的安全计算单元的流程。
8.一种终端,其特征在于,包括:
校验单元,用于通过新增的安全计算容器对签名的安全计算单元进行完整性校验,所述安全计算容器,用于隔离所述终端的主容器REE与所述终端的可信执行环境TEE,所述签名的安全计算单元是由对用户预先开发得到的未签名的安全计算单元进行签名得到,用于对可信应用程序进行安全计算;
第一处理单元,若所述签名的安全计算单元通过所述完整性校验,则用于通过所述安全计算容器对所述签名的安全计算单元进行合法性校验并获取校验结果;
第二处理单元,若所述校验结果为合法的,则用于通过所述可信执行环境TEE或安全元件SE加载所述签名的安全计算单元并获取所述可信应用程序的安全计算结果。
9.根据权利要求8所述的终端,其特征在于,所述第一处理单元具体用于:
通过所述安全计算容器获取所述签名的安全计算单元的二级证书,所述二级证书用于验证所述签名的安全计算单元的合法性;
通过所述安全计算容器将所述二级证书发送至验证服务器;
通过所述安全计算容器接收所述验证服务器发送的校验结果。
10.根据权利要求8所述的终端,其特征在于,所述校验单元具体用于:
通过所述安全计算容器中的安全计算授权与加载模块从所述签名的安全计算单元中获取签名文件;
通过所述安全计算授权与加载模块从所述签名的安全计算单元中获取安全计算单元文件元数据;
通过所述安全计算授权与加载模块对所述安全计算单元文件元数据进行摘要计算,得到所述安全计算单元文件元数据的哈希值;
通过所述安全计算授权与加载模块将所述哈希值和所述签名文件进行比对校验。
11.根据权利要求8所述的终端,其特征在于,所述终端还包括:
获取单元,用于从所述主容器获取加载请求,所述加载请求用于所述终端的安全计算容器加载所述签名的安全计算单元。
12.根据权利要求8-11任一所述的终端,其特征在于,所述终端还包括:
传输单元,用于将所述安全计算结果传输至所述终端的主容器。
13.根据权利要求8-11任一所述的终端,其特征在于,所述终端还包括:
第一停止单元,若所述签名的安全计算单元没有通过所述完整性校验,则用于停止加载所述签名的安全计算单元的流程。
14.根据权利要求8-11任一所述的终端,其特征在于,所述终端还包括:
第二停止单元,若所述校验结果为不合法的,则用于停止加载所述签名的安全计算单元的流程。
15.一种终端,其特征在于,包括:
存储器、收发器和至少一个处理器,所述存储器中存储有程序代码,所述存储器、所述收发器和所述至少一个处理器通过线路通信,所述处理器运行所述代码以指令所述终端执行如权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810516372.8A CN110532766B (zh) | 2018-05-25 | 2018-05-25 | 一种基于多容器的可信应用程序的处理方法及相关设备 |
EP19807800.8A EP3686762A4 (en) | 2018-05-25 | 2019-05-23 | MULTIPLE CONTAINER BASED TRUSTED APPLICATION PROCESSING METHOD AND ASSOCIATED DEVICE |
PCT/CN2019/088082 WO2019223751A1 (zh) | 2018-05-25 | 2019-05-23 | 一种基于多容器的可信应用程序的处理方法及相关设备 |
US16/872,642 US11429719B2 (en) | 2018-05-25 | 2020-05-12 | Multi-container-based trusted application processing method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810516372.8A CN110532766B (zh) | 2018-05-25 | 2018-05-25 | 一种基于多容器的可信应用程序的处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532766A CN110532766A (zh) | 2019-12-03 |
CN110532766B true CN110532766B (zh) | 2023-09-08 |
Family
ID=68616564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810516372.8A Active CN110532766B (zh) | 2018-05-25 | 2018-05-25 | 一种基于多容器的可信应用程序的处理方法及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11429719B2 (zh) |
EP (1) | EP3686762A4 (zh) |
CN (1) | CN110532766B (zh) |
WO (1) | WO2019223751A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341247B2 (en) * | 2019-08-27 | 2022-05-24 | Red Hat, Inc. | Use of a trusted execution environment as a safe build environment |
CN110995759A (zh) * | 2019-12-23 | 2020-04-10 | 中国联合网络通信集团有限公司 | 物联网的接入方法以及装置 |
CN111143857B (zh) * | 2019-12-27 | 2022-04-22 | 达闼机器人有限公司 | 一种数据分享方法、机器人控制器及存储介质 |
CN111148070B (zh) * | 2019-12-31 | 2021-06-15 | 华为技术有限公司 | V2x通信方法、装置及车辆 |
US11436343B2 (en) * | 2019-12-31 | 2022-09-06 | Arm Limited | Device, system, and method of policy enforcement for rich execution environment |
CN111224986A (zh) * | 2020-01-07 | 2020-06-02 | 杭州宇链科技有限公司 | 一种基于可信执行环境的多方隐私计算系统 |
CN111221629B (zh) * | 2020-01-09 | 2023-09-05 | 上海沄界信息科技有限公司 | 计算资源使用量量化方法及装置 |
CN113849565B (zh) * | 2021-09-26 | 2024-05-14 | 支付宝(杭州)信息技术有限公司 | 用于可信上链的方法及终端设备 |
CN114301601B (zh) * | 2021-12-28 | 2023-11-03 | 福建汇思博数字科技有限公司 | 一种基于Android平台的接口管理方法及终端 |
CN114969711A (zh) * | 2022-05-13 | 2022-08-30 | 北京百度网讯科技有限公司 | 一种安全认证方法、电子设备及存储介质 |
CN115695039B (zh) * | 2022-11-13 | 2023-08-18 | 济南三泽信息安全测评有限公司 | 网络安全漏洞检测系统及方法 |
CN116436681B (zh) * | 2023-04-25 | 2024-01-02 | 上海物盾信息科技有限公司 | 一种基于TrustZone的安全隔离系统、方法、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239802A (zh) * | 2014-10-15 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于云数据中心的可信服务器设计方法 |
CN105138904A (zh) * | 2015-08-25 | 2015-12-09 | 华为技术有限公司 | 一种访问控制方法和装置 |
CN107577937A (zh) * | 2017-09-01 | 2018-01-12 | 深信服科技股份有限公司 | 一种应用程序保护方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US9497221B2 (en) * | 2013-09-12 | 2016-11-15 | The Boeing Company | Mobile communication device and method of operating thereof |
US10430589B2 (en) * | 2015-03-19 | 2019-10-01 | Intel Corporation | Dynamic firmware module loader in a trusted execution environment container |
WO2016167536A1 (en) * | 2015-04-13 | 2016-10-20 | Samsung Electronics Co., Ltd. | Method and apparatus for managing a profile of a terminal in a wireless communication system |
KR20160124648A (ko) * | 2015-04-20 | 2016-10-28 | 삼성전자주식회사 | 프로파일 다운로드 및 설치 장치 |
US20160350534A1 (en) * | 2015-05-29 | 2016-12-01 | Intel Corporation | System, apparatus and method for controlling multiple trusted execution environments in a system |
US9842065B2 (en) * | 2015-06-15 | 2017-12-12 | Intel Corporation | Virtualization-based platform protection technology |
CN105429760B (zh) * | 2015-12-01 | 2018-12-14 | 神州融安科技(北京)有限公司 | 一种基于tee的数字证书的身份验证方法及系统 |
CN106815494B (zh) * | 2016-12-28 | 2020-02-07 | 中软信息系统工程有限公司 | 一种基于cpu时空隔离机制实现应用程序安全认证的方法 |
CN107277020A (zh) * | 2017-06-23 | 2017-10-20 | 国民认证科技(北京)有限公司 | 基于公私钥体制的远程验证移动设备合法性的系统和方法 |
-
2018
- 2018-05-25 CN CN201810516372.8A patent/CN110532766B/zh active Active
-
2019
- 2019-05-23 EP EP19807800.8A patent/EP3686762A4/en active Pending
- 2019-05-23 WO PCT/CN2019/088082 patent/WO2019223751A1/zh unknown
-
2020
- 2020-05-12 US US16/872,642 patent/US11429719B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239802A (zh) * | 2014-10-15 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于云数据中心的可信服务器设计方法 |
CN105138904A (zh) * | 2015-08-25 | 2015-12-09 | 华为技术有限公司 | 一种访问控制方法和装置 |
CN107577937A (zh) * | 2017-09-01 | 2018-01-12 | 深信服科技股份有限公司 | 一种应用程序保护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3686762A4 (en) | 2021-06-09 |
CN110532766A (zh) | 2019-12-03 |
EP3686762A1 (en) | 2020-07-29 |
US11429719B2 (en) | 2022-08-30 |
WO2019223751A1 (zh) | 2019-11-28 |
US20200272737A1 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532766B (zh) | 一种基于多容器的可信应用程序的处理方法及相关设备 | |
US11489678B2 (en) | Platform attestation and registration for servers | |
US9867043B2 (en) | Secure device service enrollment | |
EP3061027B1 (en) | Verifying the security of a remote server | |
US11048824B2 (en) | Method for improving security of trusted application | |
US10740747B2 (en) | NFC-enabled devices for performing secure contactless transactions and using HCE | |
US8572692B2 (en) | Method and system for a platform-based trust verifying service for multi-party verification | |
US7024555B2 (en) | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment | |
CN104462965A (zh) | 应用程序完整性验证方法及网络设备 | |
CN108200078B (zh) | 签名认证工具的下载安装方法及终端设备 | |
US10536271B1 (en) | Silicon key attestation | |
CN111783051A (zh) | 身份认证方法及装置和电子设备 | |
Gallery et al. | Trusted mobile platforms | |
CN113055182B (zh) | 认证方法及系统、终端、服务器、计算机系统和介质 | |
CN116094793A (zh) | 基于数据证书建立运营中心与安全设备连接的方法及系统 | |
CN115357866A (zh) | 应用程序执行方法、装置、设备及存储介质 | |
CN111984963B (zh) | 绕过自签证书校验的方法和装置 | |
CN117063174A (zh) | 用于通过基于app的身份的app间相互信任的安全模块及方法 | |
CN113966510A (zh) | 可信设备和计算系统 | |
US20240129736A1 (en) | Mitigating against spurious deliveries in device onboarding | |
CN115277082B (zh) | 第三方应用的校验方法和装置 | |
TWI673621B (zh) | 資訊註冊、認證方法及裝置 | |
CN117370983A (zh) | 基于云技术的可信执行系统及方法 | |
CN118260774A (zh) | 服务器的启动方法及装置、存储介质及电子设备 | |
CN113505397A (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 |