CN114600102A - 用于保护共享对象的装置和方法 - Google Patents
用于保护共享对象的装置和方法 Download PDFInfo
- Publication number
- CN114600102A CN114600102A CN202080075043.XA CN202080075043A CN114600102A CN 114600102 A CN114600102 A CN 114600102A CN 202080075043 A CN202080075043 A CN 202080075043A CN 114600102 A CN114600102 A CN 114600102A
- Authority
- CN
- China
- Prior art keywords
- encrypted
- execution environment
- segment
- key
- shared object
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 57
- 230000008569 process Effects 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000010295 mobile communication Methods 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 35
- 238000012545 processing Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000002360 preparation method Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001010 compromised effect Effects 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
一种装置,用于通过将共享对象加载到富执行环境的用户内存中,保护共享对象的隐私,并帮助防止这些软件资产丢失。所述共享对象具有加密段和元数据。解密请求被发送到可信执行环境,并且所述加密段根据所述元数据和预定平台密钥进行解密,以产生解密段。所述解密段被写入所述共享对象。发送锁定所述共享对象的请求,并将所述共享对象占用的内存锁定或设置为仅执行。由经解密的共享对象占用的内存区域的所述锁定将所述内存区域映射为对在第一特权级别执行的所有应用程序和在第二特权级别执行的操作系统内核不可读和不可写。
Description
技术领域
所公开实施例的各方面大体上涉及计算机安全的装置,更具体地,涉及保护共享软件对象的隐私。
背景技术
在开发计算机应用程序时,通常做法是结合第三方库、软件开发工具包(softwaredevelopment kit,SDK)或其它第三方共享对象,以促进高效的应用程序开发。SDK或共享对象可以结合新技术,这些技术为共享对象开发人员和第三方应用程序开发人员提供竞争优势。例如,共享对象可以提供一种新的图形处理技术,该技术可以提供优质的用户体验。
当共享对象被分发时,检查和逆向工程共享对象中包含的计算机代码相对容易,使任何新技术都会被滥用。传统的共享对象通常包括用于保护共享对象的完整性和检测未经授权的修改的加密手段。但是,没有可靠的手段来保护共享对象的内容在整个生命周期中的机密性。
因此,需要保护作为共享对象分发的软件资产的隐私,同时还支持这些共享对象在富执行环境内执行的改进的方法和装置。因此,希望提供解决上述至少一些问题的方法和装置。
发明内容
所公开实施例的各方面的目的是保护作为共享对象分发的软件资产的隐私,同时仍然支持这些共享对象在富执行环境内执行。该目的和其它目的通过独立权利要求请求保护的主题来实现。在从属权利要求中提供了其它有利修改。
根据第一方面,通过一种装置获得上述以及其它目的和优点。在一个实施例中,所述装置包括耦合到存储器的处理器。所述处理器和所述存储器用于提供富执行环境和可信执行环境。所述可信执行环境中的内存和进程受到保护,不会被在所述富执行环境内执行的应用程序访问或修改。所述处理器和内存还用于在所述富执行环境内提供用于在第一特权级别执行的第一计算环境,以及用于在第二特权级别执行的第二计算环境。在一个实施例中,所述第一特权级别的限制性高于所述第二特权级别的限制性。所述处理器还用于在所述富执行环境内将共享对象加载到用户内存中。在一个实施例中,所述共享对象包括加密段和元数据。所述处理器还用于从所述富执行环境向所述可信执行环境发送解密请求,其中,所述解密请求包括所述元数据和所述加密段。所述处理器还用于在所述可信执行环境内对所述加密段进行解密以产生解密段。在一个实施例中,所述解密基于所述元数据和预定平台密钥。所述处理器用于在所述富执行环境内接收解密响应。所述解密响应包括所述解密段。所述处理器还用于将所述解密段写入所述共享对象,并从所述第一计算环境向所述第二计算环境发送锁定所述共享对象的请求。所述处理器用于在所述第二特权级别执行时,将所述共享对象占用的内存设置为仅执行。锁定由经解密的共享对象占用的内存区域或将由经解密的共享对象占用的内存区域设置为仅执行将所述内存区域映射为对在第一特权级别执行的所有应用程序不可读,并且还将所述内存区域标记为不可读,甚至对可能在第二特权级别执行的操作系统内核也不可读。
在所述装置的第一种可能的实现方式中,所述元数据包括经加密的资产密钥。所述经加密的资产密钥是根据所述预定平台密钥加密的资产密钥。所述处理器还用于在所述可信执行环境内,根据所述预定平台密钥对所述经加密的资产密钥进行解密,并根据所述经解密的资产密钥对所述加密段进行解密。这支持使用更高效的对称密码学来解密加密段,同时仍然获得计算更密集的非对称密钥密码学的安全优势。
在所述装置的一种可能的实现方式中,所述元数据包括多个经加密的密钥数据,其中,所述多个经加密的密钥数据包括根据多个平台密钥中的一个不同平台密钥加密的所述资产密钥。所述处理器还用于根据所述预定平台密钥从所述多个经加密的密钥数据中选择所述经加密的密钥数据。这可以支持单个经加密的共享对象在具有不同平台密钥的多个计算装置上解密和执行。
在所述装置的一种可能的实现方式中,所述解密请求由在所述富执行环境内执行的代理发送。所述处理器还用于在所述可信执行环境内,在对所述加密段进行解密之前,验证所述代理的完整性。验证代理确保解密请求是由经批准的代理发送的,并且代理没有受到感染或其它损坏,从而提供了额外的安全性。
在所述装置的一种可能的实现方式中,所述预定平台密钥是非对称密钥对的公共部分。非对称密钥密码学支持公共密钥基础设施(public key infrastructure,PKI),并提高了对攻击的抵抗力。
在所述装置的一种可能的实现方式中,所述资产密钥是对称密钥。加密段可能非常大,因此与非对称密码学相比,使用对称密钥密码学减少了处理。
在所述装置的一种可能的实现方式中,所述富执行环境包括用于在第三特权级别执行的第三计算环境。所述第二特权级别的限制性高于所述第三特权级别的限制性。所述处理器用于在所述第三特权级别执行时,将所述共享对象占用的内存设置为仅执行。使用第三特权级别对在第三特权级别执行的软件进行更严格的控制并减小了该软件的大小,从而提高了安全性。
在所述装置的一种可能的实现方式中,所述第一计算环境包括用户应用程序,所述第二计算环境包括操作系统,所述第三计算环境包括虚拟机管理程序。虚拟机管理程序通常是一个更小、测试更全面的应用程序。在虚拟机管理程序内应用锁可以提高安全性并减少可用的攻击向量。
在所述装置的一种可能的实现方式中,所述共享对象包括构造函数例程,当所述处理器执行所述构造函数例程时,所述构造函数例程使所述处理器发送所述解密请求。包括构造函数例程提供了额外的灵活性,并有机会补充SOP代理的功能。
在所述装置的一种可能的实现方式中,所述可信执行环境包括可信应用程序,所述富执行环境包括代理。所述可信应用程序用于:从所述代理接收所述解密请求;验证所述代理的完整性;当所述完整性有效时,对所述加密段进行解密以产生所述解密段,并将所述解密段返回给所述代理。在解密之前验证代理有机会在将解密代理发送到可能是恶意应用程序的应用程序之前检测代理已被损坏。
在所述装置的一种可能的实现方式中,所述加密段占用第一内存区域,将所述解密段写入所述共享对象包括以下操作中的一个或多个:将所述解密段写入所述第一内存区域;将所述解密段写入第二内存区域;将所述第二内存区域合并到所述共享对象中。例如,当锁定第二内存区域比锁定第一内存区域更容易或更高效时,将解密段写入第二内存区域可能是有利的。解密段可以大于加密段,从而需要额外内存,或者在某些装置中,分配新空间可能比覆盖已经使用的空间更高效。
在所述装置的一种可能的实现方式中,所述装置包括移动通信装置。许多应用程序之间的无缝用户体验依赖于在单个设备内集成许多共享对象。在现代移动计算装置中,保护共享对象变得愈发重要。
根据第二方面,通过一种方法获得上述以及其它目的和优点。在一个实施例中,所述方法包括:在富执行环境内将共享对象加载到用户内存中,其中,所述共享对象包括加密段、元数据和构造函数例程;从所述富执行环境向可信执行环境发送解密请求,其中,所述解密请求包括所述元数据和所述加密段;在所述可信执行环境内对所述加密段进行解密以产生未加密段,其中,所述解密基于所述元数据和预定平台密钥;在所述富执行环境内从所述可信执行环境接收解密响应,其中,所述解密响应包括解密段;将所述解密段写入所述共享对象;在第二特权级别执行时,将所述共享对象占用的内存设置为仅执行;在第一特权级别从用户应用程序访问所述共享对象,其中,所述第一特权级别的限制性高于所述第二特权级别的限制性。锁定由经解密的共享对象占用的内存或将由经解密的共享对象占用的内存设置为仅执行将内存区域映射为对在第一特权级别执行的所有应用程序不可读,并且还将内存区域标记为不可读,甚至对可能在第二特权级别执行的操作系统内核也不可读。
在所述方法的一种可能的实现方式中,所述加密段是基于资产密钥加密的,所述元数据包括经加密的资产密钥,所述经加密的资产密钥是根据所述预定平台密钥加密的所述资产密钥。所述方法包括:在所述可信执行环境内根据所述预定平台密钥对所述经加密的资产密钥进行解密;在所述可信执行环境内根据所述资产密钥对所述加密段进行解密。这支持使用更高效的对称密码学来解密加密段,同时仍然获得计算更密集的非对称密钥密码学的安全优势。
根据第三方面,通过非瞬时性计算机可读介质获得上述以及其它目的和优点。在一个实施例中,所述非瞬时性计算机可读介质存储有程序指令,当处理器执行所述程序指令时,所述程序指令使所述处理器执行根据任一可能的实现方式所述的方法。
示例性实施例的这些和其它方面、实现方式和优点将从结合附图考虑的本文描述的实施例中变得显而易见。但应理解,此类描述和附图仅用于说明的目的,而不能作为对所公开发明的限制;对本发明的任何限制,应参考所附权利要求书。本发明的附加方面和优点将在随后的说明书阐述,并且,部分方面和优点在说明书中显而易见,或者可以通过实施本发明而了解。此外,本发明的方面和优点可以通过所附权利要求书中特别指出的手段或结合方式实现和获得。
附图说明
在本发明的以下详述部分中,将参考附图中所示出的示例性实施例来详细解释本发明,其中:
图1示出了所公开实施例的各方面提供的示例性计算装置的框图;
图2示出了所公开实施例的各方面提供的示例性计算装置的框图,该示例性计算装置用于提供富执行环境和可信执行环境;
图3示出了所公开实施例的各方面提供的共享对象生命周期的直观图;
图4示出了所公开实施例的各方面提供的序列图,该序列图描述用于生成受保护共享对象的示例性构建过程;
图5示出了所公开实施例的各方面提供的用于保护共享对象的示例性方法的软件流程图。
具体实施方式
图1示出了所公开实施例的各方面提供的示例性装置100的示意性框图。所公开实施例的各方面旨在防止作为共享对象分发到第三方开发人员的软件资产被盗窃。计算装置100适合于保护软件库、软件开发工具包(software development kit,SDK)或其它类型的可再分发软件资产等共享对象的隐私。当专有技术被合并到SDK中并分发到第三方应用程序开发人员时,SDK内捆绑的资产就会容易被盗窃。本文公开的实施例提供了用于保护共享对象的隐私并帮助防止这些软件资产丢失的方法和装置。
如图1所示,装置100包括耦合到存储器184的处理器102。虽然图1仅示出了一个存储器184,但应理解,存储器184可以包括一个或多个内存块或模块。处理器102和存储器184用于提供富执行环境104和可信执行环境106。如下文进一步论述的,可信执行环境106包括安全内存182和处理器102的安全部分,而富执行环境104包括单独的内存180和处理器102的不安全部分。在图1的示例中,在可信执行环境106内执行的存储器184和进程126受到保护,不会被在富执行环境104内执行的应用程序访问或修改。
处理器102和存储器184还用于在富执行环境104内提供用于在第一特权级别执行的第一计算环境108,以及用于在第二特权级别执行的第二计算环境158。在一个实施例中,所述第一特权级别的限制性高于所述第二特权级别的限制性。
特权级别用于防止一个进程(例如在用户内存108中执行的应用程序110)无意中或恶意地访问或修改属于不同进程(例如第二应用程序176或系统进程128、130)的计算资源。处理器102用于防止在一个特权级别执行的进程查看或访问与在相同特权级别或在限制性更低或更高的特权级别执行的不同进程相关联的计算资源。限制性更高的特权级别是指与限制性较低的特权级别相比,允许访问的计算资源集更小的特权级别。相反,限制性较低或级别较高的特权级别是与较低的特权级别相比,允许访问的计算资源集更大的特权级别。
例如,基于Acorn RISK机器ARMv8-A架构(在此称为ARM架构)的处理器提供4个特权级别,这些特权级别也可以称为异常级别。异常级别0(exception level zero,EL0)称为无特权执行,是最低的特权级别,特权最少且限制性最高,而异常级别3(exception levelthree,EL3)是最高的特权级别,特权最高且限制性最低。在基于ARM架构的计算装置中,异常级别1(exception level 1,EL1)经常用于操作系统进程的执行,并且异常级别2(exception level 2,EL2)可以用于提供虚拟机管理程序支持。在最低特权级别执行的进程被允许访问和修改与其自己的进程相关联的计算资源,但不允许访问或修改与在计算装置100上执行的任何其它进程相关联的计算资源。
用户空间应用程序(例如在用户内存108中执行的应用程序110)通常在最低特权级别EL0执行,该最低特权级别也是限制性最高的特权级别。相比之下,在下一个更高特权级别(例如在上文呈现的ARM示例中的EL1)执行的进程被允许访问和修改在最低特权级别EL0执行的进程的计算资源,但不能访问、查看或修改在相同(EL1)或更高特权级别(例如EL2或EL3)执行的任何进程的计算资源。因此,认为最低特权级别EL0的限制性高于特权级别EL1的限制性。
重要的是,在计算装置100中,只有在较高特权级别之一执行的代码允许访问内存管理组件,所述内存管理组件用于对共享对象116占用的内存区域190施加锁或将该内存区域190标记为仅执行,而在用户空间108中执行的代码不能访问这些内存管理组件。因此,在用户空间内在限制性更高的特权级别执行的程序不能移除锁或修改由特权更高的程序施加在内存区域上的任何只读或仅执行指定。
本文所使用的术语“设置为仅执行”、“施加仅执行指定”或“标记为仅执行”通常是指使用计算装置的内存管理能力以如下方式配置内存的一部分:允许处理器执行存储在指定内存区域中的指令,但防止处理器读取或写入已设置为仅执行的内存区域。本文所使用的术语“锁”、“锁定共享对象”或“锁定内存区域”是指将主题内存区域设置为仅执行,使得存储在经锁定内存区域中的任何数据都不能被读取或修改。
在图1的所示实施例中,当在用户空间108内执行的应用程序110识别出需要共享对象116时,进行调用150以雇佣加载器112的服务,该加载器将所需的共享对象116加载(154)到用户内存108中。共享对象116的加载(154)可以发生在应用程序110的加载期间,或者可以在应用程序110的执行期间以其它方式触发并随后加载。
在图1的示例中,处理器102用于在富执行环境104内将共享对象116加载(154)到用户内存108中。共享对象116可以从存储器的非易失性部分114加载(154)到富执行环境内存180内的用户内存108中。当数据存储在非易失性内存114中时,数据可以被称为“休眠”。共享对象116可以在休眠时通过加密共享对象的部分,例如通过加密共享对象116的包含专有信息或软件资产的部分来受到保护。
在一个实施例中,共享对象116包括加密段122和元数据120。在分发共享对象116之前,受保护的软件资产被加密。这些受保护的软件资产可以包括如可执行代码和支持数据等信息以及任何其它所需信息,并且在本文可以称为“段”或更具体地称为“文本段”。元数据120包括用于支持加密段122的解密或以其它方式重组共享对象116以准备执行的信息。例如,元数据120可以包括对称密码、使用平台密钥加密的对称密钥和算法标识符的初始化向量。
加载的共享对象116雇佣(156)共享对象保护(shared object protection,SOP)代理124处理共享对象116的解密和准备,以便在富执行环境104内执行。SOP代理124协调共享对象116的解密、锁定和准备以便执行。
处理器102还用于从富执行环境104向可信执行环境106发送解密请求158,其中,解密请求包括元数据120和加密段122。在所示的实施例中,解密请求158可以通过适当安全的通信方式从SOP代理124跨越富执行环境104与可信执行环境106之间的安全边界发送到SOP解密应用程序126。解密请求158由在可信执行环境106内执行的可信应用程序(称为SOP解密应用程序126)接收。
处理器102还用于在可信执行环境106内对加密段122进行解密以产生解密段175。在一个实施例中,解密基于元数据120和预定平台密钥174。平台密钥174可以是非对称密钥、对称密钥或用于解密加密嵌入在元数据120中的信息的其它类型的加密密钥材料。在某些实施例中,平台密钥174可以在制造过程、后制造过程或其它适当安全的提供过程期间安全地提供到可信执行环境106内,该适当安全的提供过程用于将平台密钥174安全地安装在可信执行环境106内。
在示例性实施例中,元数据120包括可以用于解密加密段122的解密密钥的加密副本。根据平台密钥174对加密副本进行解密以获得解密密钥,然后根据从元数据120获得的解密密钥对加密段122进行解密。
处理器102用于在富执行环境104内接收解密响应162,其中,解密响应162包括解密段175。处理器102还用于将解密段175写入共享对象116。解密段175可以写入回最初由加密段122占用的内存108的同一区域。或者,在某些实施例中,可能希望将解密段175写入内存108的不同部分,并将存储器的不同部分与共享对象116相关联。
在图1所示的示例性实施例中,处理器102用于从第一计算环境108向第二计算环境178发送锁定共享对象116的请求168并且在第二特权级别执行时,将共享对象116占用的内存190设置为仅执行。内存区域190包括共享对象116占用的内存区域。因此,通过锁定内存区域190或将内存区域190标记为仅执行,可以防止在限制性更高的第一特权级别执行的应用程序读取或修改共享对象116。
例如,第一计算环境可以是在限制性相对较高的特权级别(例如上述EL0特权级别)执行的用户空间,该特权级别防止在第一计算环境108内执行的应用程序110、176访问未分配给它们的计算资源,并且重要的是,防止对计算装置100的内存管理或内存配置能力进行访问。防止在第一特权级别执行的用户应用程序110、176访问内存管理或配置能力可以防止这些用户应用程序110、176移除施加在共享对象116占用的内存190上的锁或仅执行指定。
在某些实施例中,可能不希望通过锁定整个内存区域190而将整个共享对象116标记为仅执行。重要资产可以集中在解密段175中。因此,仅锁定由解密段175占用的内存区域可以为专有技术提供合适的保护。
在图1所示的示例性实施例中,锁定内存区域190的请求158可以由SOP锁例程128接收,该SOP锁例程128在限制性低于应用程序110或共享对象116的特权级别的限制性的特权级别执行。例如,SOP锁例程128可以在与操作系统相同的特权级别(例如如上所述的由ARM处理器提供的EL1特权级别)执行,而用户空间108程序则在限制性更高的特权级别(例如由ARM处理器提供的EL0特权级别)执行。重要的是,允许在第二特权级别执行的应用程序或进程执行,而不允许在第一特权级别执行的应用程序和进程执行内存管理操作(例如,将内存区域设置或重置为仅执行)。SOP锁例程128的功能可以合并到在第二特权级别执行的操作系统或其它执行应用程序中,或者还可以由在第二特权级别执行的单独例程或进程提供。
将共享对象116占用的内存区域180设置为仅执行或对其进行锁定可以防止在用户空间108中或在第一特权级别执行的其它可能恶意的应用程序176能够读取、复制或修改共享对象116,从而有效地保护了共享对象的隐私。
在一个示例性实施例中,元数据120包括经加密的资产密钥。经加密的资产密钥可以包括根据预定平台密钥174加密或用预定平台密钥174加密的资产密钥。处理器用于在可信执行环境106内,根据预定平台密钥174对资产密钥进行解密,并根据经解密的资产密钥对加密段122进行解密。
在一个实施例中,元数据120包括多个经加密的密钥数据,其中,所述多个经加密的密钥数据包括根据多个平台密钥中的一个不同平台密钥加密的资产密钥。处理器102用于从与预定平台密钥174对应或根据预定平台密钥174的多个经加密的密钥数据中选择经加密的密钥数据。
这可以有利于不同的制造商和不同的设备型号使用不同的平台密钥174。包括多个加密密钥支持在具有不同平台密钥的多个不同设备上执行共享对象116的单个构建。在加载期间,选择与可用平台密钥对应的经加密的密钥数据,从而可以在各种不同的设备上解密单个加密段。
在一个实施例中,解密请求158由在富执行环境104内执行的SOP代理124发送到在可信执行环境106内执行的SOP解密例程126。处理器102用于在可信执行环境106内,在对加密段122进行解密之前,验证(160)SOP代理124的完整性。在SOP代理124验证失败的情况下,例如当SOP代理124已经被病毒损坏时,SOP解密例程126将拒绝对加密段122进行解密。
为了提高安全性并便于提供计算装置100,在某些实施例中,希望对平台密钥使用非对称密码学。但是,非对称密码学的计算成本高于对称密码学的计算成本。通过使用对称或秘密密钥作为资产密钥,可以在保持非对称平台密钥174的安全益处的同时提高性能。平台密钥174用于对相对较小的资产密钥进行解密,并且资产密钥用于对可能更大的加密段122进行解密。
在某些实施例中,希望使预定平台密钥174是非对称密钥对的公共部分。当从外部源填充计算装置100中的平台密钥174时,可能希望将非对称平台密钥对的私钥部分保持在明确定义的安全边界内,例如保持在物理安全制造设施处的硬件设备内,并且用平台密钥对174的对应公共部分填充许多设备。例如,特定型号或由特定运营商分发的所有电话都可以使用相同的预定平台密钥填充。
在一个实施例中,富执行环境包括用于在第三特权级别执行的第三计算环境192。所述第二特权级别的限制性高于所述第三特权级别的限制性。计算装置100用于使在第三特权级别执行的应用程序可以修改内存设置,例如仅执行、只读或读写内存访问权限,同时防止在第一或第二特权级别执行的应用程序修改内存设置。处理器102用于在第三特权级别执行时,将共享对象116占用的内存190设置为仅执行。例如,第三特权级别可以是如ARM架构计算装置中提供的EL2特权级别等特权级别。
在包括第三特权级别的实施例中,可以通过配置处理器102将锁定内存区域190的请求170从SOP锁例程128发送到SOP visor例程130来提高安全性,其中,SOP锁例程128在第二计算环境178内在第二特权级别执行,SOP visor例程130在第三计算环境192内在第三特权级别执行。然后,SOP visor例程130可以将内存区域190设置为仅执行,从而防止在第二特权级别执行的操作系统,或在第一特权级别执行的用户应用程序对锁定的内存区域190进行读取或写入访问。
在某些实施例中,第一计算环境108包括用户应用程序,第二计算环境178包括操作系统,第三计算环境192包括虚拟机管理程序。现代操作系统的大小和功能都在增加,因此需要定期维护和更新这些操作系统。定期更新为攻击者提供了访问系统的机会。此外,大型和功能较多的软件程序(例如现代操作系统)相比功能有限的较小软件包(例如虚拟机管理程序)更难实现安全。与操作系统相比,虚拟机管理程序提供的功能要少得多,因此大小要小得多,需要的更新更少,因此本质上更安全。通过将内存管理操作(例如锁定或解锁共享对象116占用的内存区域190)限制到在第三特权级别执行的应用程序或进程,可以提高整个计算装置100的安全性。
在某些实施例中,共享对象116包括构造函数例程118。当由处理器102执行时,构造函数例程118使处理器102发送解密请求158。解密请求158可以直接由构造函数例程118触发,或者构造函数例程118可以开始共享对象116的初始化过程,并发送解密请求158,作为该初始化过程的一部分。构造函数例程118提供了将灵活性合并到解密过程中的方便方法。
例如,构造函数例程118可以在向SOP代理124发送请求156之前执行某些准备步骤,并且还可以在SOP代理124完成其工作之后执行附加步骤,从而使新的共享对象适配成与现有或当前部署的SOP代理124兼容。构造函数例程118可以包括信息,例如用于启动SOP代理124的解密的请求156中的元数据120。
在一个实施例中,应用程序110调用动态链接程序以将共享对象116加载到存储器中。动态链接程序可以调用构造函数例程118,并且构造函数例程118向SOP代理124发出请求156,以解密加密段122。或者,构造函数例程118可以由应用程序110调用或触发,作为在应用程序110使用解密段174中的任何方法或特征之前执行的初始化步骤。SOP代理124向可信执行环境106发出请求158,并向在可信执行环境106内执行的SOP解密例程126提供加密段122(可以是文本段)的起始地址和长度以及元数据120。
在可信执行环境106内执行的SOP解密例程126验证设备的安全级别。验证SOP解密例程126的安全级别可以确保当设备安全性处于适当级别时,解密资产仅暴露于SOP代理124。例如,在ANDROIDTM设备中,可信执行环境应能够读取可信根字段,例如操作系统版本、验证的启动状态和安全补丁的版本。验证设备安全级别可以包括确定可信根字段是否处于令人满意的状态。
在一个实施例中,一旦设备安全级别被验证,可信执行环境106从元数据120解密资产密钥,并使用资产密钥以及起始地址和长度来解密加密段122。或者,有利的是,可以采用解密加密段122的任何适当方法。
在一个示例性实施例中,可信执行环境106包括可信应用程序126,而富执行环境104包括SOP代理124。可信应用程序126用于从SOP代理124接收解密请求158,并验证(160)代理124的完整性。当完整性有效时,对加密段122进行解密以产生解密段175。解密段175被返回(162)给SOP代理124。可信应用程序126对SOP代理124的验证确保解密请求来自已知来源,并且SOP代理124没有被攻击者修改或以其它方式损坏。
在一个示例性实施例中,加密段122占用第一内存区域。将解密段175写入共享对象116包括以下操作中的一个或多个:将解密段175写入回最初由加密段122占用的第一内存区域中;将解密段175写入第二内存区域;将第二内存信息合并到共享对象116中。
解密加密段122可以产生具有与加密段122不同大小的解密段175。有利的是分配所需大小的第二内存区域并将解密段写入该第二内存区域中,而不是将第一内存区域重用于解密段175。或者,可能希望将解密段175的一部分写入第一内存区域,并将解密段175的另一部分写入第二内存区域。
如下文将进一步论述的,有利地,示例性计算装置100可以用于各种计算设备,例如移动通信设备、移动电话、平板电脑、平板手机、汽车、机顶盒等。
图2示出了本发明的各方面提供的示例性计算装置200的框图,该示例性计算装置用于提供富执行环境(rich execution environment,REE)250和可信执行环境(trustedexecution environment,TEE)252。计算装置200适合于在上述参考图1描述的计算装置100中使用。计算装置200可以合并到各种类型的计算装置中,例如移动电话、平板手机、平板电脑、笔记本电脑、机顶电缆盒、电视、汽车等,并且有利地,可以用于实现本文公开的装置和方法,以保护部署在计算装置200内的共享对象。
REE 250用于支持广泛的功能和特征,以支持广泛的应用并提供增强的用户体验。但是,REE 250内可用的这种增强的特征集和丰富的功能本质上安全性低于TEE 252提供的更小和更有针对性的功能,并且不能安全地执行加密操作,而不冒失去加密密钥和算法的机密性、真实性或完整性的风险。富执行环境的示例是操作系统(operating system,OS)提供的环境,例如GOOGLETM开发的Android OS、APPLETM开发的iOS操作系统、MICROSOFTTM开发的Windows操作系统和广泛分布的LINUX OSTM。
在图2的示例中,计算装置200包括耦合到存储器212的处理器210。处理器的第一部分202和存储器的第一部分204用于支持TEE 252。处理器的第二部分206和存储器的第二部分208用于支持REE 250。
处理器210可以是单个处理设备,或者可以包括多个处理设备,包括专用设备,例如数字信号处理(digital signal processing,DSP)设备、微处理器、专用处理设备、并行处理核心或通用计算机处理器。处理器210用于从存储器212读取非瞬时性程序指令,并执行本文描述的任何方法和过程。处理器210还可以包括与图形处理单元(graphicsprocessing unit,GPU)协同工作的中央处理器(central processing unit,CPU),图形处理单元可以包括DSP或其它专用图形处理硬件。
存储器212可以是各种类型的易失性和非易失性计算机存储器的组合,例如只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘或光盘、闪存或其它合适类型的计算机存储器。存储器的安全部分204可以包括非易失性或一次性可编程内存,用于保护如平台密钥174或其它私人或机密加密材料的机密数据。
TEE 252用于确保存储在TEE内存204内的数据和计算机程序指令的机密性和完整性,并保护在处理器的安全部分202内执行的计算机程序和关联数据的机密性和完整性。TEE252,也称为安全计算环境(secure computing environment,SCE),可以使用任何适合于在计算装置200内提供REE 250和TEE 252的技术来实现。
为了维持TEE 252与REE 250之间的安全边界,仅允许处理器的REE部分206访问(218)存储器的REE部分208。由于TEE 252是安全环境,因此允许处理器的TEE部分202访问(214)存储器的安全部分204,并且还允许访问(216)存储器的REE部分208。
图3示出了所公开实施例的各方面提供的共享对象的示例性生命周期300的框图,该共享对象利用共享对象保护(shared object protection,SOP)进行保护。当按照图3所示进行调整时,SOP可以防止作为共享对象分发给第三方开发人员的软件资产丢失。
受保护共享对象316通过构建过程302创建,并部署(330)在计算装置内的非易失性内存320中。当应用程序需要使用所部署的共享对象318时,加载过程304准备共享对象326以供执行。然后,在加载共享对象326之后,应用内存保护306以防止对共享对象326的未经授权的读取访问。
当软件公司开发包含有价值软件资产的共享对象312以出售和分发给第三方软件开发人员或公司时,使用构建过程302。为了保护软件资产,构建过程302用于准备SOP并将其合并到共享对象316中,以准备销售和分发。开发计算机程序指令或程序代码308,并编译和链接(310)代码308以创建软件库模块lib.so 312。根据惯例,软件库通常以文件扩展名“.so”命名,表示它们包含共享对象。如下文进一步论述的,lib.so 312的部分经过加密和打包(314),以创建受保护共享对象316。打包的共享对象316包括加密形式的共享对象312以及元数据,并在需要时包括构造函数例程。打包的共享对象316适合用作上文参考图1描述的共享对象116。
然后,打包的共享对象316被部署到计算装置(例如移动通信设备或其它所需类型的计算装置)中的非易失性内存320,在该非易失性内存中,打包的共享对象可作为共享对象318供在计算装置上执行的应用程序322调用或使用。
当应用程序322需要访问由受保护共享对象318提供的功能时,调用SOP代理324以在运行时内存中协调共享对象326的加载、解密和保护。当加载304完成时,共享对象326的解密副本被加载到运行时内存中,并且该内存被锁定以防止所包含的软件资产丢失。
当共享对象326保持加载(332)时,通过应用上述SOP锁特征来保护(306)内存。应用于(334)共享对象326的SOP锁328或仅执行指定被配置在提高的特权级别,例如如上所述的由ARM处理器支持的EL2特权级别。
图4示出了所公开实施例的各方面提供的序列图,该序列图示出了用于生成受保护共享对象的示例性构建过程400。有启发性的是,将构建过程400视为具有三个阶段:初始配置阶段408、代码生成阶段410和加密阶段414。有利地,示例性构建过程400可以用于生成包含共享对象保护的共享对象,以防止在分发给第三方软件开发人员时软件资产被盗窃或丢失。
当准备构建受SOP保护的共享对象时,构建过程400配置有用于所有受支持的计算装置或设备的平台密钥。软件开发人员或库开发人员402向SOP构建器404发出请求416,请求为连接设备配置平台密钥。SOP构建器404继而发送从目标设备406检索平台密钥对的公共部分的请求。有利地,所需平台密钥安全地存储在计算装置内的可信执行环境内,并且检索公共平台密钥的请求420由在目标设备或计算装置406的可信执行环境内执行的可信应用程序接收。有利地,任何能够安全地保护密钥材料的机密性的可信执行环境,例如上文参考图1描述的可信执行环境106,或上文参考图2描述的可信执行环境252,都可以用于提供所需的安全环境。
所请求的公共平台密钥被返回到SOP构建器404,该SOP构建器404继而返回确认418,以通知库开发人员402设备406的配置已经完成,并且平台密钥的公共部分已经加载到SOP构建器中。
配置408可以根据需要对尽可能多的不同计算装置406或设备类型重复。在某些实施例中,每个计算装置406或设备类型(例如手机型号、制造商或运营商)将填充其自己唯一的平台密钥。在将支持具有许多不同平台密钥的许多不同计算装置406的实施例中,SOP构建器404需要针对每个受支持的计算装置406配置平台密钥,从而在SOP构建器404中存储或配置多个平台密钥。
在代码生成阶段410,库开发人员402使用由SOP构建器404提供的工具来生成(424)自定义构造函数代码和库脚本。构造函数代码可以是如上述构造函数118等构造函数。自定义链接脚本用于识别和隔离待标记为仅执行的代码部分,还用于为目标共享对象内的元数据和虚拟部分预留空间。然后,将构造函数和链接脚本打包(426)到共享对象中。运行链接脚本后,可以使用标准的常规过程编译和链接共享对象。
共享对象的测试和调试可以通过临时配置构造函数跳过加密步骤来完成,从而可以使用未受保护的共享对象代码完成编译/链接/调试412周期。
一旦共享对象准备好释放,就利用加密阶段414保护共享对象。在加密阶段414,软件开发人员402将经编译和链接的共享对象文件发送到SOP构建器404。SOP生成器404加密和(可选地)签署库的任何期望部分,并将未加密部分替换为对应的加密段。然后,SOP生成器404准备元数据,并将元数据包括在共享对象中。在某些实施例中,SOP构建器404在元数据中包括加密信息,以支持在多个目标平台中的任何一个目标平台上对加密段进行解密,在配置阶段408获得所述目标平台的平台密钥。
图5示出了所公开实施例的各方面提供的示例性方法500的软件流程图,该示例性方法用于在部署到计算装置中时保护共享对象。所公开实施例的各方面旨在防止意欲分发给第三方开发人员和由第三方开发人员使用的软件资产被盗窃。示例性方法500适合于保护软件库、软件开发工具包(software development kit,SDK)或其它类型的可再分发软件资产等共享对象的隐私。
在所示的实施例中,在用户空间内执行(502)的应用程序识别对共享对象的需要,并雇佣或调用加载器以将所需的共享对象加载(504)到用户内存中。共享对象的加载504可以在加载应用程序时发生,或者可以在执行应用程序期间以其它方式触发。
在图5的示例中,将共享对象加载(504)到计算装置的合适富执行环境(例如上述富执行环境104或250)的用户内存中。共享对象可以从存储器的非易失性部分或从任何其它期望的计算机内存或存储设备加载(504)。
在一个实施例中,共享对象包括加密段、元数据和构造函数例程或构造函数代码。在分发共享对象之前对受保护的软件资产进行加密,并置于加密段中。加密可以在加密段休眠或通过计算机网络传输时保护该加密段的机密性。元数据包括可以用于解密或以其它方式重组加密段以准备执行的信息,并且如上所述,构造函数可以在共享对象的加载(504)期间运行,并在共享对象的准备执行期间与SOP代理通信。
在加载(504)共享对象期间或之后,构造函数联系(506)SOP代理,以协调共享对象的准备执行。通过向可信执行环境(例如上文分别参考图1和图2描述的可信执行环境106、252中的任何可信执行环境)发送(508)解密请求来实现对共享对象的加密部分(例如加密段)的解密。解密请求可以包括加密段以及提供执行解密所需的信息和密钥数据的元数据。在某些实施例中,传递到可信执行环境的元数据是加载的共享对象中包括的相同元数据。或者,构造函数代码和/或SOP代理可以根据共享对象的内容构造元数据。
在示例性方法500中,在可信执行环境内运行的可信应用程序对解密请求进行处理。在一个实施例中,可信应用程序在处理解密请求之前验证(510)SOP代理的完整性,以确保SOP代理没有感染病毒或以其它方式受到损坏。检查(512)验证结果,当完整性检查失败时,拒绝(514)解密请求。
当发现SOP代理的完整性有效时,对加密段进行解密(516),并将所得到的解密段返回(518)给在富执行环境中执行的SOP代理。
然后,将解密段写入(520)用户内存中,并合并到共享对象中。可以将解密段写入回最初由加密段占用的相同内存,或者,还可以将解密段写入回用户内存的新分配部分,然后,该新分配部分被配置为共享对象的一部分。
在所示的实施例中,软件应用程序、SOP代理和其它用户应用程序在第一特权级别执行。第一特权级别用于防止在第一特权级别执行的程序执行任何内存管理操作,例如修改共享对象占用的内存的访问权限。内存管理操作仅允许在第二特权级别执行的程序(例如SOP锁程序)执行,其中,第二特权级别包括与第一特权级别相比提高或限制性更低的特权级别。
SOP锁程序在第二特权级别执行时锁定(522)共享对象占用的内存。锁允许在第一特权级别执行的用户空间应用程序执行锁定的代码,但防止读取或修改锁定的内存,从而防止共享对象中包含的软件资产被盗窃。现在可以恢复(524)用户空间应用程序的执行,并且应用程序可以开始使用由共享对象提供的特征。
在上述方法500的示例性实施例中,加密段是基于资产密钥加密的。共享对象中包括的元数据包括经加密的资产密钥,其中,经加密的资产密钥包括用预定平台密钥(例如上文参考图1描述的预定平台密钥174)加密的资产密钥。对资产密钥采用对称密钥密码学,对平台密钥采用非对称密钥密码学,可以降低与解密加密段相关联的处理成本,同时改进了包括相关联的私钥基础设施(private key infrastructure,PKI)的非对称密码学的安全优势。
在一个实施例中,元数据可以包括多个经加密的资产密钥,其中,每个经加密的资产密钥包括用多个预定平台密钥中的一个不同预定平台密钥加密的相同资产密钥。在解密期间,可信应用程序可以从多个加密密钥中选择根据可信应用程序可用的预定资产密钥加密的加密密钥。通过包括多个经加密的资产密钥,共享对象的单个构建可以在多个不同类型的计算装置上使用,其中,不同类型的计算装置具有不同的预定平台密钥。
因此,尽管文中已示出、描述和指出应用于本发明的示例性实施例的本发明的基本新颖特征,但应理解,本领域技术人员可以在不脱离本发明的精神和范围的情况下,对所示出的设备和方法的形式和细节以及设置操作进行各种省略、取代和改变。进一步,明确地希望以大体相同的方式执行大体相同的功能以实现相同结果的那些元件的所有组合均在本发明的范围内。此外,应认识到,结合所公开的本发明的任何形式或实施例进行展示和/或描述的结构和/或元件可作为设计选择的通用项而并入所公开或描述或建议的任何其它形式或实施例中。因此,其意图仅如所附权利要求的范围所表明的那样加以限制。
Claims (15)
1.一种装置(100),其特征在于,包括耦合到存储器(184)的处理器(102),其中,所述处理器(102)和所述存储器(184)用于提供富执行环境(104)和可信执行环境(106),其中,所述可信执行环境(106)中的内存(182)和进程(126)受到保护,不会被在所述富执行环境(104)内执行的应用程序访问或修改,并且所述处理器(102)和内存(180)还用于在所述富执行环境(104)内提供:
用于在第一特权级别执行的第一计算环境(108);以及用于在第二特权级别执行的第二计算环境(178),其中,所述第一特权级别的限制性高于所述第二特权级别的限制性,并且所述处理器(102)用于:
在所述富执行环境内将共享对象(116)加载到用户内存(108)中,其中,所述共享对象(116)包括加密段(122)和元数据(120);
从所述富执行环境向所述可信执行环境(106)发送解密请求(158),其中,所述解密请求(158)包括所述元数据(120)和所述加密段(122);
在所述可信执行环境内对所述加密段(122)进行解密以产生解密段(175),其中,所述解密基于所述元数据(120)和预定平台密钥(174);
在所述富执行环境(104)内接收包括所述解密段(175)的解密响应(162);
将所述解密段(175)写入所述共享对象(116);
从所述第一计算环境(108)向所述第二计算环境(178)发送锁定所述共享对象(116)的请求(168);
在所述第二特权级别执行时,将所述共享对象(116)占用的内存(190)设置为仅执行。
2.根据权利要求1所述的装置(100),其特征在于,所述元数据(118)包括经加密的资产密钥,并且所述经加密的资产密钥包括根据所述预定平台密钥(174)加密的资产密钥,其中,所述处理器(102)用于在所述可信执行环境(106)内,根据所述预定平台密钥(174)对所述经加密的资产密钥进行解密,并根据所述经解密的资产密钥对所述加密段(175)进行解密。
3.根据权利要求1或2所述的装置(100),其特征在于,所述元数据(120)包括多个经加密的密钥数据,并且每个经加密的密钥数据包括根据多个平台密钥中的一个不同平台密钥加密的所述资产密钥,所述处理器(102)用于根据所述预定平台密钥(174)从所述多个经加密的密钥数据中选择所述经加密的密钥数据。
4.根据上述权利要求中任一项所述的装置(100),其特征在于,所述解密请求(158)由在所述富执行环境(104)内执行的代理(124)发送,所述处理器(102)用于在所述可信执行环境(106)内,在对所述加密段(122)进行解密之前,验证所述代理(124)的完整性。
5.根据上述权利要求中任一项所述的装置(100),其特征在于,所述预定平台密钥(174)是非对称密钥对的公共部分。
6.根据上述权利要求中任一项所述的装置(100),其特征在于,所述资产密钥是对称密钥。
7.根据上述权利要求中任一项所述的装置(100),其特征在于,所述富执行环境(104)包括用于在第三特权级别执行的第三计算环境(192),并且所述第二特权级别的限制性高于所述第三特权级别的限制性,其中,所述处理器(102)用于,在所述第三特权级别执行时,将所述共享对象(116)占用的所述内存(190)设置为仅执行。
8.根据上述权利要求中任一项所述的装置(100),其特征在于,所述第一计算环境包括用户应用程序,所述第二计算环境包括操作系统,所述第三计算环境包括虚拟机管理程序。
9.根据上述权利要求中任一项所述的装置(100),其特征在于,所述共享对象(116)包括构造函数例程(118),当所述处理器(102)执行所述构造函数例程(118)时,所述构造函数例程(118)使所述处理器(102)发送所述解密请求(158)。
10.根据上述权利要求中任一项所述的装置(100),其特征在于,所述可信执行环境(106)包括可信应用程序(126),所述富执行环境(104)包括代理(124),其中,所述可信应用程序(126)用于:
从所述代理(124)接收所述解密请求(158);
验证(160)所述代理(124)的所述完整性;
当所述完整性有效时,对所述加密段进行解密以产生所述解密段(175),并将所述解密段(175)返回(162)给所述代理(124)。
11.根据上述权利要求中任一项所述的装置(100),其特征在于,所述加密段(122)占用第一内存区域,将所述解密段(174)写入所述共享对象(116)包括以下操作中的一个或多个:将所述解密段(175)写入所述第一内存区域;将所述解密段(175)写入第二内存区域;将所述第二内存区域合并到所述共享对象(116)中。
12.根据上述权利要求中任一项所述的装置(100),其特征在于,所述装置(100)包括移动通信装置。
13.一种方法(500),其特征在于,包括:
在富执行环境内将共享对象加载(504)到用户内存中,其中,所述共享对象包括加密段、元数据和构造函数例程;
从所述富执行环境向可信执行环境发送(508)解密请求,其中,所述解密请求包括所述元数据和所述加密段;
在所述可信执行环境内对所述加密段进行解密(516)以产生未加密段,其中,所述解密基于所述元数据和预定平台密钥;
在所述富执行环境内从所述可信执行环境接收(518)解密响应,其中,所述解密响应包括解密段;
将所述解密段写入(520)所述共享对象;
在第二特权级别执行时,将所述共享对象占用的内存设置(522)为仅执行;
在第一特权级别从用户应用程序访问所述共享对象,其中,所述第一特权级别的限制性高于所述第二特权级别的限制性。
14.根据权利要求13所述的方法(500),其特征在于,所述加密段是基于资产密钥加密的,所述元数据包括经加密的资产密钥,其中,所述经加密的资产密钥包括根据所述预定平台密钥加密的所述资产密钥,所述方法(500)包括:在所述可信执行环境内根据所述预定平台密钥对所述经加密的资产密钥进行解密;在所述可信执行环境内根据所述资产密钥对所述加密段进行解密(516)。
15.一种非瞬时性计算机可读介质,其特征在于,存储有程序指令,当处理器执行所述程序指令时,所述程序指令使所述处理器执行根据权利要求13或14所述的方法(500)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2020/052089 WO2021151476A1 (en) | 2020-01-29 | 2020-01-29 | Apparatus and method for protecting shared objects |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114600102A true CN114600102A (zh) | 2022-06-07 |
Family
ID=69375356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080075043.XA Pending CN114600102A (zh) | 2020-01-29 | 2020-01-29 | 用于保护共享对象的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230058046A1 (zh) |
EP (1) | EP4058910A1 (zh) |
CN (1) | CN114600102A (zh) |
WO (1) | WO2021151476A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024060756A1 (zh) * | 2022-09-19 | 2024-03-28 | 华为技术有限公司 | 计算机设备及其运行方法、安全芯片 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639671B2 (en) * | 2014-05-27 | 2017-05-02 | Assured Information Security, Inc. | Secure execution of encrypted program instructions |
US11223485B2 (en) * | 2018-07-17 | 2022-01-11 | Huawei Technologies Co., Ltd. | Verifiable encryption based on trusted execution environment |
-
2020
- 2020-01-29 US US17/792,292 patent/US20230058046A1/en active Pending
- 2020-01-29 WO PCT/EP2020/052089 patent/WO2021151476A1/en unknown
- 2020-01-29 EP EP20702622.0A patent/EP4058910A1/en active Pending
- 2020-01-29 CN CN202080075043.XA patent/CN114600102A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024060756A1 (zh) * | 2022-09-19 | 2024-03-28 | 华为技术有限公司 | 计算机设备及其运行方法、安全芯片 |
Also Published As
Publication number | Publication date |
---|---|
US20230058046A1 (en) | 2023-02-23 |
WO2021151476A1 (en) | 2021-08-05 |
EP4058910A1 (en) | 2022-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416605B2 (en) | Trusted execution environment instances licenses management | |
US10878083B2 (en) | Mobile device having trusted execution environment | |
CN107533609B (zh) | 用于对系统中的多个可信执行环境进行控制的系统、设备和方法 | |
CN107851160B (zh) | 用于在isa控制下进行多个共存可信执行环境的可信i/o的技术 | |
CN107851162B (zh) | 用于对安全i/o的密码引擎进行安全编程的技术 | |
JP5670578B2 (ja) | 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 | |
CN108429719B (zh) | 密钥保护方法及装置 | |
TWI489308B (zh) | 未知安全金鑰下開機影像之安全更新 | |
TW202009778A (zh) | 韌體升級方法及裝置 | |
CN110383277A (zh) | 虚拟机监视器测量代理 | |
US11714895B2 (en) | Secure runtime systems and methods | |
US11704442B2 (en) | Instance handling of a trusted execution environment | |
US20230058046A1 (en) | Apparatus and Method for Protecting Shared Objects | |
KR20210089486A (ko) | 키를 안전하게 관리하기 위한 장치 및 방법 | |
Bove | Secure Services for Standard RISC-V Architectures | |
US11977760B1 (en) | Secure data and instruction loading | |
KR102215231B1 (ko) | 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법 | |
Quaresma | TrustZone Based Attestation in Secure Runtime Verification for Embedded Systems | |
Amato et al. | Mobile Systems Secure State Management | |
De Win et al. | Security Middleware for Mobile Applications | |
CN117171733A (zh) | 数据使用方法、装置、电子设备及存储介质 | |
CN115033854A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
Cabiddu et al. | Building a Trusted Environment for Security Applications | |
Informationssäkerhet et al. | New Security Challenges |
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 |