CN107743625B - 由受控制的加密密钥管理进行的软件模块的分离 - Google Patents

由受控制的加密密钥管理进行的软件模块的分离 Download PDF

Info

Publication number
CN107743625B
CN107743625B CN201680034706.7A CN201680034706A CN107743625B CN 107743625 B CN107743625 B CN 107743625B CN 201680034706 A CN201680034706 A CN 201680034706A CN 107743625 B CN107743625 B CN 107743625B
Authority
CN
China
Prior art keywords
realm
memory
encryption key
transaction
memory device
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
Application number
CN201680034706.7A
Other languages
English (en)
Other versions
CN107743625A (zh
Inventor
罗伯托·阿万奇
大卫·哈特利
罗萨里奥·卡马罗塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107743625A publication Critical patent/CN107743625A/zh
Application granted granted Critical
Publication of CN107743625B publication Critical patent/CN107743625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

在一方面中,一种用于保护软件的方法包含:获得包含指令或数据中的至少一者的有效负载;在存储器装置中建立地址域;基于与所述地址域相关联的暂时性加密密钥EEK对所述有效负载进行加密;以及将所述经加密有效负载存储于所述存储器装置的所述地址域中。在另一方面中,一种用于保护软件的方法包含:接收与所述存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符RID和地址域指示符位;当所述RID指示所述地址域时且当启用所述地址域指示符位时,获得与所述RID相关联的所述EEK;当所述存储器事务是读取事务时,基于所述EEK对从所述地址域检索的指令和/或数据进行解密;以及当所述存储器事务是写入事务时,基于所述EEK对第二数据进行加密以存储于所述地址域中。

Description

由受控制的加密密钥管理进行的软件模块的分离
相关申请交叉参考
本申请案主张2015年7月7日在美国专利与商标局申请的第62/189,733号临时申请案以及2016年2月25日在美国专利与商标局申请的第15/053,892号非临时申请案的优先权和权益,这两个申请案的完整内容以引用的方式并入本文中。
技术领域
本发明的各方面大体上涉及安全存储器管理,且更具体来说(但非排它地),涉及由受控制的加密密钥管理进行的软件模块的分离。
背景技术
软件开发者通常产生代码(例如,驱动程序、应用程序、游戏)并且允许顾客和其它经授权用户安装和使用各种产品中的代码。举例来说,代码可安装和存储于电子装置(例如移动电话或手提计算机)的存储器装置中。然而,未经授权用户(例如,黑客)可存取和反向破解此类代码,从而造成有价值的知识产权的损失。因此,需要保护电子产品中的代码以便防止未经授权用户存取代码。
发明内容
下文呈现本发明的一些方面的简化概述以提供对此些方面的基本理解。此概述并非本发明的所有所涵盖特征的广泛综述,且既不希望标识本发明的所有方面的关键或至关重要要素,也不希望划定本发明的任何或所有方面的范围。其唯一目的是以简化形式呈现本发明的一些方面的各种概念以作为稍后呈现的更详细描述的序言。
根据一个方面,提供一种可在软件保护装置上操作的方法用以保护软件(例如,目标软件)。举例来说,将受保护的目标软件可包含可由核心装置进行处理的指令和/或数据。软件保护装置获得包含指令或数据中的至少一者的有效负载;在存储器装置中建立地址域,所述地址域包含所述存储器装置中的一或多个选定区域;基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密;以及将所述经加密有效负载存储于所述存储器装置的所述地址域中。如本文中所使用的术语“地址域”可定义为存储器装置的一或多个选定、预定义或动态地定义的存储器区域、域、区段和/或块。在一方面中,软件保护装置可通过产生地址域的地址域标识符和暂时性加密密钥来建立所述地址域,其中地址域标识符与暂时性加密密钥相关联。在一方面中,软件保护装置将地址域标识符和暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中。在一方面中,暂时性加密密钥是在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。举例来说,软件保护装置可在安全通信中或从安全存储装置获得有效负载。在一方面中,软件保护装置在所述基于暂时性加密密钥对有效负载进行加密之前,移除应用于所述有效负载的密码保护。举例来说,软件保护装置可通过使用永久性加密密钥验证所述有效负载或对所述有效负载进行解密来移除所述密码保护。在一方面中,软件保护装置进一步获得包含第二指令或第二数据中的至少一者的第二有效负载;在所述存储器装置中建立第二地址域,所述第二地址域包含所述存储器装置中的不同于包含在所述建立的地址域中的一或多个选定区域的一或多个选定区域;基于与所述第二地址域相关联的第二暂时性加密密钥对所述第二有效负载进行加密;以及将所述第二经加密有效负载存储于所述存储器装置的所述第二地址域中。在一方面中,软件保护装置通过产生所述存储器装置中的所述第二地址域的第二地址域标识符和第二暂时性加密密钥来建立所述地址域,其中所述第二地址域标识符与所述第二暂时性加密密钥相关联。在一方面中,软件保护装置将第二地址域标识符和第二暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中。
根据一个方面,一种软件保护装置包含:用于获得包含指令或数据中的至少一者的有效负载的装置;用于在存储器装置中建立地址域的装置,所述地址域包含所述存储器装置中的一或多个选定区域;用于基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密的装置;以及用于将所述经加密有效负载存储于所述存储器装置的所述地址域中的装置。在一方面中,所述用于建立所述地址域的装置经配置以产生所述地址域的地址域标识符和暂时性加密密钥,其中所述地址域标识符与所述暂时性加密密钥相关联。在一方面中,软件保护装置进一步包含用于将地址域标识符和暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中的装置。在一方面中,软件保护装置进一步包含用于在所述基于所述暂时性加密密钥对所述有效负载进行加密之前,移除应用于所述有效负载的密码保护的装置。在一方面中,所述用于移除所述密码保护的装置经配置以使用永久性加密密钥验证所述有效负载或对所述有效负载进行解密。在一方面中,软件保护装置进一步包含:用于获得包含第二指令或第二数据中的至少一者的第二有效负载的装置;用于在所述存储器装置中建立第二地址域的装置,所述第二地址域包含所述存储器装置中的不同于包含在所述建立的地址域中的所述一或多个选定区域的一或多个选定区域;用于基于与所述第二地址域相关联的第二暂时性加密密钥对所述第二有效负载进行加密的装置;以及用于将所述第二经加密有效负载存储于所述存储器装置的所述第二地址域中的装置。在一方面中,所述用于建立所述第二地址域的装置经配置以产生所述存储器装置中的所述第二地址域的第二地址域标识符和第二暂时性加密密钥,其中所述第二地址域标识符与所述第二暂时性加密密钥相关联。在一方面中,软件保护装置进一步包含用于将所述第二地址域标识符和所述第二暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中的装置。
根据另一方面,提供一种可在软件保护装置上操作的方法用以保护软件(例如,目标软件)。所述软件保护装置接收与存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中的一或多个选定区域的地址域的标识;当所述地址域标识符指示所述地址域时且当启用所述地址域指示符位时,获得与所述地址域标识符相关联的暂时性加密密钥;当所述存储器事务是读取事务时,基于所述暂时性加密密钥对从所述地址域接收的指令或数据中的至少一者进行解密;以及当所述存储器事务是写入事务时,基于所述暂时性加密密钥对将存储于所述地址域中的第二数据进行加密。在一方面中,软件保护装置将所述地址域标识符和暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中。在一方面中,当所述地址域标识符是零或特殊值时,软件保护装置制止修改所述存储器事务。举例来说,所述暂时性加密密钥可为在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。在一方面中,所述存储器事务进一步包含控制对所述存储器装置的在所述地址域外部的区域的存取的控制位。在此方面中,当所述地址域标识符不为零或特殊值,停用所述地址域指示符位,启用所述控制位时,且当所述事务是数据读取事务或数据写入事务时,软件保护装置可制止修改所述存储器事务。在一方面中,当所述地址域标识符不为零或特殊值,停用所述地址域指示符位,启用所述控制位时,且当所述事务是指令提取事务时,软件保护装置检测所述存储器事务中的错误。在一方面中,当所述地址域标识符不为零或特殊值时,且当停用所述地址域指示符位和所述控制位时,软件保护装置检测所述存储器事务中的错误。
根据另一方面,软件保护装置包含:用于接收与存储器装置相关联的存储器事务的装置,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中的一或多个选定区域的地址域的标识;用于当所述地址域标识符指示所述地址域时且当启用所述地址域指示符位时,获得与所述地址域标识符相关联的暂时性加密密钥的装置;用于当所述存储器事务是读取事务时,基于所述暂时性加密密钥对从所述地址域接收的指令或数据中的至少一者进行解密的装置;以及当所述存储器事务是写入事务时,基于所述暂时性加密密钥对将存储于所述地址域中的第二数据进行加密的装置。在一方面中,软件保护装置进一步包含用于将所述地址域标识符和所述暂时性加密密钥存储于任何外部实体不可存取的第二存储器装置中的装置。在一方面中,软件保护装置进一步包含用于当所述地址域标识符是零或特殊值时,制止修改所述存储器事务的装置。在一方面中,所述存储器事务进一步包含控制对所述存储器装置的在所述地址域外部的区域的存取的控制位。在此方面中,软件保护装置进一步包含用于当所述地址域标识符不为零或特殊值,停用所述地址域指示符位,启用所述控制位时,且当所述事务是数据读取事务或数据写入事务时,制止修改所述存储器事务的装置。在一方面中,软件保护装置进一步包含用于当所述地址域标识符不为零或特殊值,停用所述地址域指示符位,启用所述控制位时,且当所述事务是指令提取事务时,检测所述存储器事务中的错误的装置。在一方面中,软件保护装置进一步包含用于当所述地址域标识符不为零或特殊值时,且当停用所述地址域指示符位和所述控制位时,检测所述存储器事务中的错误的装置。
在审阅以下详细描述后,将变得更完整地理解本发明的这些和其它方面。所属领域的一般技术人员在结合附图审阅本发明的特定实施方案的以下描述后将了解本发明的其它方面、特征和实施方案。虽然可相对于下文的特定实施方案和图论述本发明的特征,但本发明的所有实施方案可包含本文论述的有利特征中的一或多者。换句话说,虽然可将一或多个实施方案论述为具有特定有利特征,但也可以根据本文中所论述的本发明的各种实施方案来使用此类特征中的一或多者。以类似方式,虽然特定实施方案可在下文论述为装置、系统或方法实施方案,但应理解,此类实施方案可以各种装置、系统和方法实施。
附图说明
图1是说明根据本发明的各种方面的存储器装置中的地址域建立的实例流程图。
图2是说明根据本发明的各种方面的存储器装置中的地址域的执行的实例流程图。
图3是根据本发明的各种方面的实例架构的框图。
图4是根据本发明的各种方面的实例架构的框图。
图5(包含图5A和5B)说明根据本发明的各种方面的用于软件保护装置的方法。
图6是根据本发明的各种方面的实例架构的框图。
图7是根据本发明的各种方面的存储器装置中的地址域的实例配置。
图8是根据本发明的一或多个方面的经配置以支持与保护存储器装置中的软件有关的操作的设备的说明。
图9(包含图9A和9B)说明根据本发明的各种方面的可在用于保护存储器装置中的软件的设备中操作的方法。
图10说明根据本发明的各种方面的可在用于保护存储器装置中的软件的设备中操作的方法。
具体实施方式
下文结合附图阐述的详细描述意图作为对各种配置的描述,且并不意图表示可实践本文中所描述的概念的唯一配置。所述详细描述出于提供对各种概念的透彻理解的目的而包含具体细节。然而,所属领域的技术人员将显而易见的是,可在没有这些特定细节的情况下实践这些概念。在一些情况下,以框图形式示出众所周知的结构和组件以免混淆此类概念。
概述
本发明的一个方面涉及包含用于以下操作的指令的设备、方法和计算机可读媒体:获得包含指令或数据中的至少一者的有效负载;在存储器装置中建立地址域,所述地址域包含存储器装置中的一或多个选定区域;基于与所述地址域相关联的暂时性加密密钥(EEK)对所述有效负载进行加密;以及将经加密有效负载存储于存储器装置的地址域中。
本发明的另一方面涉及包含用于以下操作的指令的设备、方法和计算机可读媒体:接收与存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符(RID)和地址域指示符位(RB),其中所述RID实现包含存储器装置中的一或多个选定区域的地址域的标识;当RID指示地址域时且当地址域指示符位经启用时,获得与RID相关联的暂时性加密密钥(EEK);当存储器事务是读取事务时,基于EEK对从地址域检索的第一指令或第一数据中的至少一者进行解密;以及当存储器事务是写入事务时,基于EEK对将存储于地址域中的第二数据进行加密。
在本文中所揭示的方面中,软件保护装置可经配置以保护将由核心装置(也称为核心电路或核心处理电路)存取和/或执行的软件(也称为目标软件)。举例来说,核心装置可充当中央处理单元(CPU)中的处理器。软件保护装置可通过在充当核心装置的主存储器的存储器装置中建立地址域并且通过将目标软件以受保护形式存储于地址域中,来保护所述目标软件。如本文中所使用的术语“地址域”可定义为存储器装置的一或多个选定、预定义或动态地定义的存储器区域、域、区段和/或块。举例来说,存储器装置中的包含在地址域中的存储器区域可被指示或引用为与存储器装置相关联的一组存储器页。在一个实例中,存储器装置可为易失性存储器装置(例如,随机存取存储器(RAM)装置)。
图1是说明根据本发明的各种方面的存储器装置中的地址域建立的实例流程图100。如图1中所示,实例流程图100包含存储装置102、软件保护装置104和存储器装置106。如在下文详细描述,软件保护装置(例如,软件保护装置104)可实施为硬件架构。如图1中所示,软件保护装置104可接收108地址域建立命令。响应于所述地址域建立命令,软件保护装置104可从存储装置102获得包含目标软件(例如,目标软件的指令和/或数据)的有效负载110。软件保护装置104可前进到在存储器装置106中建立112地址域。举例来说,软件保护装置104可通过产生地址域的地址域标识符(RID)和唯一性暂时性加密密钥(EEK),来在存储器装置106中建立地址域。举例来说,暂时性加密密钥可为在地址域保持于存储器装置106中时存在的临时或瞬时性加密密钥。在其中密码保护已应用于有效负载(例如,存储装置102中的目标软件经加密)的情况中,软件保护装置104可前进到移除114此类密码保护。在一个实例中,软件保护装置104可通过基于永久性加密密钥对有效负载进行解密,来移除密码保护。软件保护装置104可基于与地址域相关联的EEK对有效负载进行加密,并且可将经加密有效负载存储118于存储器装置106中。
图2是说明根据本发明的各种方面的存储器装置中的先前建立的地址域的执行的实例流程图200。如图2中所示,实例流程图200包含核心装置202、软件保护装置204和存储器装置206。如图2中所示,核心装置202可起始从存储器装置206请求数据和/或指令的存储器事务208。在一个实例中,存储器事务208可包含地址域标识符(RID)、地址域指示符位(RB)和任选的控制位。软件保护装置204可接收存储器事务208并且可将存储器事务(例如,存储器事务210)转送到存储器装置206。软件保护装置204可从存储器装置206接收所请求的数据或指令212,并且当RID指示地址域时(例如,当RID是非零值或不为特殊值时)且当地址域指示符位经启用时,可获得与RID相关联的暂时性加密密钥(EEK)。软件保护装置204可当存储器事务是读取事务时,基于EEK对所接收的数据进行解密,或可当存储器事务是指令提取事务时,基于EEK对所接收的指令进行解密。
图3是根据本发明的各种方面的实例架构300的框图。举例来说,架构300可实施于例如个人计算机、蜂窝电话(也称为用户设备(UE))或手持型游戏装置等计算装置中。如图3中所示,架构300包含软件保护装置302、存储器装置304和存储装置306。如在图3中进一步所示,软件保护装置302可包含地址域管理器308、密钥存储装置310和存储器加密模块312。在本发明的一方面中,地址域管理器308可实施为安全处理器中的应用程序,实施为独立核心装置或实施为硬件块。举例来说,地址域管理器308可使用密码共处理器分担繁重的任务。在本发明的一方面中,存储器装置304可充当经配置以加载和存储由中央处理单元(CPU)(为易于说明未在图3中示出)执行的指令的主存储器。举例来说,存储器装置304可为易失性存储器装置,例如随机存取存储器(RAM)、高速缓冲存储器装置,或任何其它合适类型的存储器装置。
在本发明的一个方面中,存储装置306可经配置以存储有价值的或敏感的软件,例如目标软件318。在本发明的一个方面中,目标软件318可为包含指令和/或数据的专属软件。举例来说,所述指令和/或数据可包含堆栈、堆和/或元数据。在一个方面中,目标软件318可为软件模块。在本发明的一方面中,存储装置306可为任何适合的存储装置。在一个实例中,存储装置306可为本地存储器(例如,另一CPU的存储器)。在另一实例中,存储装置306可为本地非易失性存储装置,例如闪存存储器、嵌入式多媒体卡(eMMC)、安全数字(SD)卡、USB驱动、光学光盘或磁盘。在另一实例中,存储装置306可为可通过网络接入的远程存储装置。
在本发明的一方面中,软件保护装置302是经配置以保护软件(例如目标软件318(例如,与目标软件318相关联的指令和/或数据))的硬件架构。举例来说,软件保护装置302可保护目标软件318免受可获得对装置中的各种硬件和/或软件的控制的多种攻击者(例如,黑客)。在本发明的一方面中,软件保护装置302的各种特征可并入到软件开发工具包(SDK)中以允许第三方开发者保护其软件。可实施软件保护装置302而无对工具和主机环境的显著影响。
在本发明的一方面中,如本文中所揭示的软件保护装置(例如,软件保护装置302)的配置可在原始设备制造商(OEM)的控制之外。在此方面中,软件保护装置可不限定OEM或其它方(例如,第三方软件开发者)安装存储器装置304中的任何软件的能力。软件保护装置可不需要OEM或第三方特定执行。在一方面中,软件保护装置(例如,软件保护装置302)可为可扩展的(任何数目个核心装置)且可与各种类型的核心装置一起使用。在一方面中,架构300(或下文参考图4论述的架构400)可基于目标软件318的存储器加密并且不基于存储器(例如,存储器装置304)的存取控制,来保护目标软件318(例如,目标软件318的指令和/或数据)。
存储器装置中的地址域的建立
如图3中所示,软件保护装置302的地址域管理器308可在存储器装置304中产生一或多个地址域(例如,地址域316)。在一个实例中,地址域管理器308可响应于触发(例如,地址域建立命令332)而在存储器装置304中产生地址域316。在一个实例中,地址域建立命令332可实施为从CPU(为易于说明未在图3中示出)的远程过程调用(RPC)。在另一实例中,地址域建立命令332可为地址域管理器308的起动序列的命令。地址域建立命令332可包含各种信息项。在本发明的一个方面中,地址域建立命令332可包含目标软件318在存储装置306中的方位(例如,存储器地址)、地址域316在存储器装置304中的方位(例如,存储器地址),以及/或可用以验证和/或移除应用于目标软件318的指令和/或数据的任何密码保护的一或多个密钥的方位。
响应于接收到地址域建立命令332,地址域管理器308可产生地址域316的地址域标识符(RID)和地址域316的暂时性加密密钥(EEK)。在本发明的一个方面中,RID和EEK对于地址域316可为唯一的且可不与可在存储器装置304中建立的任何其它地址域相关联。在本发明的一个方面中,地址域管理器308可通过独占式接口324将RID和对应EEK(例如,在图3中示出为RID/EEK对314)存储于密钥存储装置310中。在本发明的一方面中,RID对于软件保护装置302外部的实体可为公开的,而EEK对于软件保护装置302外部的任何实体可不为已知的。在本发明的一方面中,RID、EEK及其关联性可在软件保护装置302内经修改并且可不被软件保护装置302外部的任何实体修改。
如图3中所示,地址域管理器308可通过传输320从存储装置306获得目标软件318的所有或至少一些指令和/或数据。在本发明的一方面中,地址域管理器308可通过读取目标软件318在存储装置306中的方位(例如,存储器地址)获得目标软件318的所有或至少一些指令和/或数据,在此情况下,地址域管理器308可响应于读取操作,接收传输320。在本发明的一方面中,可保护存储于存储装置306中的目标软件318。在一个实例中,目标软件318可为明文形式且物理地受保护,在此情况下,存储装置306可配置为安全存储装置(例如,芯片上存储装置、封装中存储装置等)。在另一实例中,目标软件318可以密码方式受保护(例如,经加密和/或认证)。在此类实例中,地址域管理器308可从安全存储装置306获得包含目标软件318的文件,并且可存取用以将密码保护应用于目标软件318的一或多个密钥(例如,一或多个永久性密钥)。地址域管理器308可前进到使用一或多个密钥验证和/或移除(例如,解密)密码保护。在移除密码保护之后,地址域管理器308接着可使用RID/EEK对314的EEK对目标软件318的指令和/或数据进行加密,并且可将目标软件318的经加密指令和/或数据存储于存储器装置304的地址域316中。
在一个实例中,地址域管理器308可通过实施地址域管理器308内的加密函数以及实施地址域管理器308和存储器装置304之间的直接接口322,达成目标软件318的指令和/或数据的加密。在另一实例中,地址域管理器308可通过经由接口330实施软件保护装置302的存储器加密模块312,达成目标软件318的指令和/或数据的加密。在此类实例中,地址域管理器308可将与地址域316相关联的RID提供到存储器加密模块312。存储器加密模块312可经由独占式接口326从密钥存储装置310检索与RID相关联的EEK。存储器加密模块312可前进到对目标软件318的指令和/或数据进行加密并且可传输经加密指令和/或数据328以用于存储于存储器装置304的地址域316中。应理解,地址域316中的目标软件318的加密形式(例如,目标软件318的指令和/或数据的加密形式)防止核心装置(未在图3中示出)能够执行目标软件318。
在本发明的一方面中,用以基于EEK对目标软件318进行加密的加密方案可为物理地址相依的。在此方面中,如果地址域316稍后从第一物理地址到第二物理地址重新定位于存储器装置304中,那么地址域管理器308可起始使用RID/EEK对314的EEK和第一物理地址对地址域316的内容的解密。地址域管理器308接着可起始使用RID/EEK对314的EEK和第二物理地址对地址域316的内容的重新加密。在本发明的一方面中,RID/EEK对314的EEK可在受EEK保护的地址域(例如,地址域316)的存储器页中的指令正由核心装置(例如,下文论述的核心装置444)执行时的时间段期间是有效的(例如,存在),且EEK可在地址域的存储器页中的指令已经执行之后不再有效(例如,删除)。
存储器装置中的地址域的执行
图4是根据本发明的各种方面的实例架构400的框图。举例来说,架构400可实施于例如个人计算机、蜂窝电话(也称为UE)或手持型游戏装置等计算装置中。如图4中所示,架构400包含软件保护装置402、存储器装置404、中央处理单元(CPU)440和存储器管理单元(MMU)442。如在图4中进一步所示,CPU 440可包含核心装置444,且软件保护装置402可包含地址域管理器408、密钥存储装置410和存储器加密模块412。在其它方面中,MMU 442可包含在CPU 440中。在本发明的一方面中,图4中的软件保护装置402、存储器装置404、地址域管理器408、密钥存储装置410和存储器加密模块412可分别对应于图3中的软件保护装置302、存储器装置304、地址域管理器308、密钥存储装置310和存储器加密模块312
用于地址域执行的核心装置操作
在本发明的一个方面中,核心装置444可通过经由路径446将存储器命令传输到MMU 442,起始关于存储器装置404的存储器事务。因此,在一个实例中,存储器命令可经配置以执行用于从存储器装置404读取数据的数据读取事务,或可经配置以执行用于将数据写入到存储器装置404的数据写入事务。在另一实例中,存储器命令可经配置以执行用于从存储器装置404提取指令的指令提取事务(也称为指令读取事务)。
在本发明的一个方面中,在地址域416已经建立且目标软件318的经加密指令和/或数据已以先前描述的方式存储于地址域416中之后,核心装置444可进入地址域416以从地址域416读取数据,将数据写入到地址域416,或从地址域416提取指令。因此,在此方面中,核心装置444可支持用于通过引用对应于地址域416的RID进入地址域416的指令。核心装置444可进一步支持用于离开地址域416的指令。在本发明的一方面中,核心装置444可包含经配置以存储RID的RID寄存器452。RID寄存器452可为对任何软件不可见的。在一个实例中,RID寄存器452可指示当零值或其它特殊值存储于RID寄存器452中时,没有地址域正被引用或标识。举例来说,用于进入地址域416的指令可设置对应于RID寄存器452中的地址域416的RID值,并且可允许跳转到地址域416的开头。在本发明的一个方面中,用于离开地址域的指令可恢复存储器装置404中的先前状态(例如,在进入地址域416之前)。在此类实例中,核心装置444可清楚对应于RID寄存器452中的地址域416的RID值。
在本发明的一个方面中,核心装置444和存储器装置404之间的每一存储器事务可标记为包含目前存储于RID寄存器452中的RID、存储器事务的类型(例如,数据或指令)以及任选的控制位450。在本发明的一方面中,保护目前存储于RID寄存器452中的RID和任选的控制位450免受不可信软件进行修改。在一个情境中,举例来说,当核心装置444执行用于进入地址域416的指令且RID寄存器452包含对应于地址域416的RID时,核心装置444和存储器装置404之间的存储器事务(例如,数据读取/写入事务或指令提取事务)可标记为包含RID寄存器452中的RID和任选的控制位450。控制位450可允许或阻止用于从存储器装置404的在地址域416外部的区域(也称为存储器装置404的非地址域区域)读取数据或将数据写入到所述区域的存储器事务。举例来说,核心装置444可配置控制位450以允许或阻止对存储器装置404的非地址域区域的受限存取。在一个方面中,此类受限存取可启用从存储器装置404的非地址域区域的数据的读取或写入,但不提取指令。控制位450本文中还称为“地址域外部被允许的数据”(DORA)位450。在本发明的一方面中,DORA位450可为对任何软件不可见的。举例来说,核心装置444可通过暂时启用DORA位450(例如,将DORA位450设置为‘1’),允许从存储器装置404的非地址域区域进行读取的存储器事务。在另一实例中,核心装置444可通过暂时停用DORA位450(例如,将DORA位450设置为‘0’),阻止用于从存储器装置404的非地址域区域进行读取的存储器事务。在本发明的一个方面中,当启用DORA位450(例如,设置为‘1’)以允许用于从存储器装置404的非地址域区域(也称为非地址域页)读取数据或将数据写入到所述非地址域区域的存储器事务时,可不准许从存储器装置404的非地址域区域读取指令。为了起始存储器事务,核心装置444可包含RID寄存器452中的RID、存储器事务的类型(例如,数据或指令)以及存储器命令中的任选的DORA位450(例如,用于起始数据读取/写入事务或指令提取事务),并且可将存储器命令传输到MMU 442。
用于地址域执行的存储器管理单元(MMU)操作
MMU 442可保持存储器页表(例如,虚拟地址和物理地址之间的映射),并且可包含存储器页中的属于地址域的地址域指示符位(RB)454。举例来说,可使用RB 454将对应于存储器装置404中的地址域的每一存储器页标记为“地址域页”。因此,RB 454可允许MMU 442标识存储器页是否属于地址域416。举例来说,RB 454可经配置于任何MMU转译级中(例如,当实施大于一个转译级时),且启用RB 454(例如,RB 454设置为‘1’)所针对的任何存储器页可被视为属于地址域416的存储器页。
在本发明的一方面中,MMU 442可从核心装置444接收存储器事务(例如,用于起始数据读取/写入事务或指令提取事务的存储器命令)。存储器事务可包含与存储器装置404相关联的存储器事务地址(例如,从其读取数据或指令或写入数据到的存储器地址)。MMU442可确定对应于所述存储器事务地址的存储器页,并且可确定用于所述存储器页的RB454的值(例如,‘0’或‘1’)。MMU 442可包含从核心装置444接收的存储器事务中的RB 454的值,并且可经由路径448将包含RID 452(例如,目前存储于RID寄存器452中的值)、任选的DORA位450和RB 454的值的存储器事务转送到存储器加密模块412。在一个方面中,MMU 442可在存储器事务期间接收和/或传输RID,而无需转译或修改RID。
在一方面中,当不启用存储器页的RB 454(例如,RB 454设置为‘0’)时,MMU 442可检查包含在存储器事务中的RID是否指示地址域。举例来说,MMU 442可确定当RID不为零或预定特殊值时,包含在存储器事务中的RID指示地址域。在此方面中,如果不启用存储器页的RB 454且包含在存储器事务中的RID指示地址域,那么MMU 442可出错或迫使核心装置444离开地址域416(例如,迫使核心装置444退出地址域416)。在本发明的一个方面中,可通过设置一或多个额外存储器页的RB 454使地址域416延伸。在一方面中,如果RB 454被操控(例如,如果存储器页的RB 454的值被不可信的实体或软件改变),那么从地址域416读取的任何数据和/或指令将呈防止被核心装置444处理的形式(例如,呈加密形式)。
用于地址域执行的软件保护装置操作
现将参考图4和图5(包含图5A和5B)中所说明的方法论述软件保护装置402的操作。在一个方面中,可由软件保护装置402的存储器加密模块412(也称为存储器加密发动机的)执行参考图5描述的操作。如图5A中所示,软件保护装置402可接收502核心装置444和存储器装置404之间的存储器事务。在本发明的一方面中,软件保护装置402可确定存储器事务是否与数据读取事务、数据写入事务或指令提取事务相关联。软件保护装置402可确定504与存储器事务相关联的RID 452(例如,目前存储于RID寄存器452中的值)、地址域指示符位(RB)454和任选的DORA位450。在一个实例中,且如先前论述,每一存储器事务可标记为包含RID、RB和任选的DORA位。
软件保护装置402可确定506存储器事务中的RID 452是零或不指示地址域的特殊值。如果RID 452是零或特殊值,那么软件保护装置402可将存储器事务转送508到适当实体且无需修改。在一个实例中,如果存储器事务是来自核心装置444的从存储器装置404读取数据的请求,那么软件保护装置402可将所述请求转送到存储器装置404且无需修改。在另一实例中,如果存储器事务是响应于读取数据的请求正从存储器装置404返回到核心装置444的数据(例如,有效负载),那么软件保护装置402可将返回的数据转送到核心装置444且无需修改(例如,无需对返回的数据进行解密)。在又另一实例中,如果存储器事务是来自核心装置444的将数据写入到存储器装置404的请求,那么软件保护装置402可转送将写入到存储器装置404的数据且无需修改(例如,无需对待写入到存储器装置404的数据进行加密)。
如果软件保护装置402确定506存储器事务中的RID 452不为零或特殊值,那么软件保护装置402可确定510是否启用RB 454(例如,RB 454是否设置为‘1’)。如果启用RB454,那么软件保护装置402可获得对应于RID 452的EEK。在一个方面中,可通过将存储器事务的RID 452匹配到存储于密钥存储装置410中的RID/EEK对414的RID,从密钥存储装置410获得对应于RID 452的EEK。RID/EEK对414的EEK接着可经由独占式接口426传输到存储器加密模块412。软件保护装置402接着可确定514存储器事务是用于将数据写入到存储器装置404还是用于从存储器装置404读取数据/指令。如果存储器事务用于将数据写入到存储器装置404,那么软件保护装置402可基于EEK对将存储于存储器装置404中(例如,存储器装置404的地址域416中)的存储器事务的数据进行加密516,并且可将包含经加密数据的存储器事务转送518到存储器装置404。如果存储器事务不用于将数据写入到存储器装置404(例如,存储器事务用于从存储器装置404读取数据或提取指令),那么软件保护装置402可基于EEK对从存储器装置404的地址域416返回的数据和/或指令(例如,有效负载)进行解密520,并且可将具有经解密数据或指令的存储器事务转送522到核心装置444。
如果软件保护装置402确定510不启用RB 454,那么软件保护装置402可前进到确定512是否启用任选的DORA位450(例如,任选的DORA位450是否设置为‘1’)。软件保护装置402可当不启用任选的DORA位450时检测526存储器事务中的错误。然而,如果启用任选的DORA位,那么软件保护装置402可确定528所述事务是用于读取数据还是用于写入数据。如果存储器事务涉及从存储器装置404读取数据或用于将数据写入到存储器装置404,那么软件保护装置402可将存储器事务转送530到预期目的地且无需修改。举例来说,如果存储器事务是响应于读取数据的请求正从存储器装置404返回到核心装置444的数据(例如,有效负载),那么软件保护装置402可将返回的数据转送到核心装置444且无需修改(例如,无需对返回的数据进行解密)。在另一实例中,如果存储器事务是来自核心装置444的将数据写入到存储器装置404的请求,那么软件保护装置402可将待写入的数据转送到存储器装置404且无需修改(例如,无需对待写入到存储器装置404的数据进行加密)。如果存储器事务不涉及从存储器装置404读取数据或用于将数据写入到存储器装置404(例如,存储器事务涉及从存储器装置404提取指令),那么软件保护装置402可检测526存储器事务中的错误。
在本发明的一个方面中,当核心装置444已进入地址域416时,用于从存储器装置404的非地址域页提取指令的存储器事务可擦除存储于RID寄存器452中的RID。在此方面中,核心装置444可称为退出(例如,离开)地址域416。
可了解,可实施本文中所描述的方面而不影响CPU 440的其它核心装置(以及核心装置444)的操作。在一方面中,软件保护装置402可自动地与芯片外存储器一起起作用。在一些方面中,地址域存储器页可换入和换出存储器装置404。在一些方面中,线程执行可为可能的。在一方面中,先前描述的由核心装置444支持的命令、功能和/或指令中的任一者可实施为微码或可信固件。在一方面中,核心装置444可支持异常向量的超控。
因此,由于地址域416中的指令和/或其它资产经加密(例如,用RID/EEK对414的EEK进行加密),所以此类指令和/或其它资产可对地址域416外部的任何实体(例如,核心装置444、MMU 442和/或其它可实施于存储器装置404中的地址域)为不显而易见的。在一方面中,可通过将对地址域416的控制转移到外部实体,允许外部实体有意义地存取地址域416的受保护内容。在一方面中,可通过允许外部实体“跳转”到地址域416中,将对地址域416的控制转移到外部实体。举例来说,可通过执行不可部分完成的操作(例如,期间外部实体在同一总线操作中同时读取方位并写入所述方位的操作)以跳转到地址域416中并且设置与地址域416相关联的加密密钥(例如,与RID 452相关联的EEK),使此类外部实体跳转到地址域416中。此类不可部分完成的操作可防止在不跳跃到对应于RID值的地址域中的情况下设置RID值(例如,RID寄存器452中)。特定地址域的加密密钥的唯一性可保证特定地址域的内容相对于其它地址域和/或其它实体是含糊的(例如,不显而易见)。在一方面中,架构400允许执行控制核心装置444的指令(例如,目标软件318的指令)。在一方面中,在实体已经跳转到地址域(例如,地址域416)中的情况下,实体可存取所述地址域中的数据。
存储器装置中的多个地址域的执行
图6是根据本发明的各种方面的实例架构600的框图。举例来说,架构600可实施于例如个人计算机、蜂窝电话(也称为UE)或手持型游戏装置等计算装置中。如图6中所示,架构600包含软件保护装置602、存储器装置604、中央处理单元(CPU)640和存储器管理单元(MMU)642。如在图6中进一步所示,CPU 640可包含核心装置644,且软件保护装置602可包含地址域管理器608、密钥存储装置610和存储器加密模块612。在其它方面中,MMU 642可包含在CPU 640中。在本发明的一方面中,图6中的软件保护装置602、存储器装置604、地址域管理器608、密钥存储装置610和存储器加密模块612可分别对应于图4中的软件保护装置402、存储器装置404、地址域管理器408、密钥存储装置410和存储器加密模块412。此外,路径646、648和628可分别对应于图4中的路径446、448和428。
如图6的实例配置中所示,可在存储器装置604中建立多个共存地址域,例如realm_1 662、realm_2 664和realm_N 668。在本发明的一方面中,可通过地址域管理器608以类似于先前关于图3论述的地址域316的建立的方式建立realm_1 662、realm_2 664和realm_N 668。举例来说,存储器装置604中的每一地址域可用以保护不同目标软件,其中每一目标软件包含指令和/或数据。举例来说,可建立realm_1 662以保护第一目标软件,可建立realm_2 664一保护第二目标软件,且可建立realm_N 668以保护第N目标软件。因此,realm_1 662可与第一地址域标识符(例如,RID_1)和第一暂时性加密密钥(EEK_1)相关联,realm_2 664可与第二地址域标识符(例如,RID_2)和第二暂时性加密密钥(EEK_2)相关联,且realm_N 668可与第N地址域标识符(例如,RID_N)和第N暂时性加密密钥(EEK_N)相关联。在本发明的一方面中,EEK_1、EEK_2和EEK_N可不同于彼此。如图6中所示,RID和对应的EEK作为RID_1/EEK_1对656、RID_2/EEK_2对658和RID_N/EEK_N对660存储于密钥存储装置610中。因此,在一个实例中,用EEK_1对存储于realm_1 662中的第一目标软件(例如,第一目标软件的数据和/或指令)进行加密,用EEK_2对realm_2 664中的第二目标软件(例如,第二目标软件的数据和/或指令)进行加密,且用EEK_N对realm_N 668中的第N目标软件(例如,第N目标软件的数据和/或指令)进行加密。在一个实例中,核心装置644可经配置以同时执行第一、第二和第N目标软件。应注意,由于存储器装置604中的地址域(例如,realm_1 662、realm_2 664和realm_N 668)中的每一者含有已用唯一性加密密钥经加密的不同目标软件,所以存储器装置604中的地址域可能无法与彼此交互(例如,通信),进而保护每一目标软件免受来自驻存于存储器装置604中的其它目标软件的攻击或操控。
在本发明的一方面中,软件保护装置602可接收核心装置644和存储器装置604之间的存储器事务。软件保护装置602接着可确定存储器事务中的RID、RB和任选的DORA位。如果存储器事务中的RID不为零或特殊值,那么软件保护装置602可确定是否启用RB(例如,RB654)(例如,RB是否设置为‘1’)。如果启用RB,那么软件保护装置602可获得对应于RID的EEK。在一个方面中,可通过将存储器事务的RID匹配到存储于密钥存储装置610中的RID,从密钥存储装置610获得对应于RID的EEK。
举例来说,如果存储器事务中的RID是“RID_2”(例如,realm_2 664的RID),那么软件保护装置602可将存储器事务的RID_2匹配到RID_2/EEK_2对658。RID_2/EEK_2对658的EEK_2接着可经由独占式接口626传输到存储器加密模块612。软件保护装置602接着可确定存储器事务是用于将数据写入到存储器装置604还是用于从存储器装置604读取数据/指令。如果存储器事务用于将数据写入到存储器装置604,那么软件保护装置602可基于EEK_2对将存储于存储器装置604中(例如,存储器装置604的realm_2 664中)的存储器事务的数据进行加密,并且可将包含经加密数据的存储器事务转送到存储器装置604。如果存储器事务不用于将数据写入到存储器装置604(例如,存储器事务用于从存储器装置604读取数据或提取指令),那么软件保护装置602可基于EEK_2对从存储器装置604的realm_2 664返回的数据和/或指令(例如,有效负载)进行解密,并且可将具有经解密数据或指令的存储器事务转送到核心装置644。
因此,由于可基于RID和对应的唯一性加密密钥(例如,EEK)将存储器装置(例如,存储器装置604)中的每一地址域与其它地址域区别开,所以尝试从另一地址域读取内容(例如,指令和/或数据)的地址域将不会存取正确的加密密钥。如此,从不同地址域读取的任何信息可为无意义的。在一方面中,地址域可经配置以将不同加密密钥用于指令和数据存取,或经配置以不将加密用于数据。应注意,如果不存在加密,那么可不存在额外数据存取时延。
用以打包目标软件以存储于地址域中的实例操作
在一方面中,开发者(例如,软件或应用程序开发者)可产生代码(例如,图3中的目标软件318),其可包含将由核心装置或其它处理装置执行的指令和相关联数据。开发者接着可将代码和/或数据以安全方式递送到地址域管理器308。这可涉及使用与地址域管理器308共享的密钥(例如,永久性密码密钥)加密和认证程序包。
存储器装置中的地址域的实例配置
图7是根据本发明的各种方面的存储器装置700中的地址域的实例配置。如图7中所示,存储器装置700包含用于第一系统(例如,system_1)的保护域(PD)702,以及用于第二系统(例如,system_2)的PD 704。应理解,在其它方面中,存储器装置700可经配置用于不同数目的系统和/或不同类型的系统。举例来说,system_1可与调制解调器装置相关联,且system_2可与操作系统相关联。在此类实例中,PD 702可包含用于调制解调器装置的固件706且可包含地址域708。在一方面中,地址域708可表示存储器装置700的包含用于调制解调器的受保护(例如,经加密)软件和/或受保护数据的部分。如图7中所示,PD 704可包含内核710、地址域712和应用程序PD 714。应用程序PD 714可与用于system_2的应用程序相关联,且可包含应用程序指令/数据716并且可包含地址域718。在一方面中,地址域718表示存储器的包含受保护(例如,经加密)软件和/或受保护数据的部分。
示范性电子装置和其上的方法
图8是根据本发明的一或多个方面(例如,与下文描述的图9和10的方法有关的方面)的经配置以支持与保护存储器装置中的软件有关的操作的设备800的说明。设备800包含通信接口(例如,至少一个收发器)802、核心装置804、用户接口806、存储装置808、存储器装置810、MMU电路812和软件保护装置814。
这些组件可经由大体由图8中的连接线表示的信号传送总线或其它适合组件耦接到彼此和/或放置成与彼此的电通信。信号传送总线可取决于核心装置804的特定应用和总设计约束包含任何数目个互连总线和桥接器。信号传送总线将通信接口802、核心装置804、用户接口806和MMU电路812连结在一起。信号传送总线还可连结所属领域中众所周知的各种其它电路(未示出),例如定时源、周边装置、电压调节器和功率管理电路,且因此将不做任何进一步的描述。
通信接口802可经调适以促进设备800的无线通信。举例来说,通信接口802可包含经调适以促进相对于网络中的一或多个通信装置的双向信息通信的电路和/或代码(例如,指令)。通信接口802可耦接到一或多个天线816以用于无线通信系统内的无线通信。通信接口802可经配置有一或多个独立接收器和/或发射器,以及一或多个收发器。在所说明实例中,通信接口802包含接收器822和发射器824。
核心装置804可包含外部实体不可写入存取的一或多个寄存器826,例如RID寄存器452或用于设置任选的控制位(例如,DORA位450)的寄存器。举例来说,核心装置804可对应于图4中的核心装置444或图6中的核心装置644。
存储器装置810可表示一或多个存储器装置。举例来说,存储器装置810可对应于图3中的存储器装置304或图4中的存储器装置404。存储器装置810可充当设备800的核心装置804的主存储器。在一些实施方案中,存储器装置810、存储装置808和存储媒体820实施为共同存储器组件。存储器装置810还可用于存储受核心装置804或设备800的某一其它组件操控的数据。
存储媒体820可表示用于存储代码(例如处理器可执行代码或指令(例如,软件、固件)、电子数据、数据库或其它数字信息)的一或多个计算机可读、机器可读和/或处理器可读装置。存储媒体820还可用于存储当执行代码时受软件保护装置814的处理电路818操控的数据。存储媒体820可以是任何可由通用或专用处理器(包含便携式或固定存储装置、光学存储装置和各种其它能够存储、装纳或携载代码的媒体)存取的可用媒体。
以实例方式(且非限制),存储媒体820可包含磁性存储装置(例如,硬盘、软盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功能光盘(DVD))、智能卡、闪存存储器装置(例如,卡、棒或钥匙形驱动器(key drive))、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可装卸式磁盘、以及任何其它合适的用于存储可由计算机存取和读取的代码的媒体。存储媒体820可体现在制品(例如,计算机程序产品)中。以实例方式,计算机程序产品可包含包装材料中的计算机可读媒体。鉴于上文,在一些实施方案中,存储媒体820可为非暂时性(例如,有形的)存储媒体。存储媒体820可耦接到软件保护装置814的处理电路818,使得处理电路818可从存储媒体820读取信息,以及将信息写入到存储媒体820。
存储媒体820存储的代码和/或指令当由软件保护装置814的处理电路818执行时致使处理电路818执行本文中所描述的各种功能和/或过程操作中的一或多者。举例来说,存储媒体820可包含经配置用于调节处理电路818的一或多个硬件块处的操作的操作。
软件保护装置814的处理电路818通常适用于处理,包含存储于存储媒体820上的此类代码/指令的执行。如本文中所使用,术语“代码”或“指令”应从广义上解释为包含但不限于编程、指令、指令集、数据、代码、码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行文件、执行线程、过程、功能等,而不管是否称为软件、固件、中间件、微码、硬件描述语言或其它。
软件保护装置814的处理电路818经布置以获得、法和/或发送数据,控制数据存取和存储,发出命令,以及控制其它所要操作。在至少一个实例中,处理电路818可包含经配置以实施由适当媒体提供的所要代码的电路。举例来说,处理电路818可实施为一或多个处理器、一或多个控制器和/或经配置以执行可执行代码的其它结构。处理电路818的实例可包含通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文中所描述功能的任何组合。通用处理器可包含微处理器,以及任何常规处理器、控制器、微控制器或状态机。处理电路818也可实施为计算组件的组合,例如DSP和微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心、ASIC和微处理器,或任何其它数目的变化配置。处理电路818的这些实例是用于说明,且还预期本发明的范围内的其它适合配置。
根据本发明的一或多个方面,处理电路818可经调适以执行用于本文中所描述的设备中的任一者或全部的特征、过程、功能、操作和/或例程中的任一者或全部。如本文中所使用,相对于处理电路818的术语“调适”可指处理电路818经配置、采用、实施和/或编程中的一或多者以执行根据本文中所描述的各种特征的特定过程、功能、操作和/或例程。
根据设备800的至少一个实例,处理电路818可包含经调适以执行本文中所描述的特征、过程、功能、操作和/或例程(例如,关于图9和10描述的特征、过程、功能、操作和/或例程)中的任一者或全部的以下各项中的一或多者:接收电路/模块832、地址域建立电路/模块834、RID和EEK存储电路/模块836、加密和解密电路/模块838、经加密有效负载存储电路/模块840、密码保护移除电路/模块842、事务错误检测电路/模块844以及修改抑制电路/模块846。
接收电路/模块832可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的接收指令848):接收包含指令或数据中的至少一者的有效负载;接收包含第二指令或第二数据中的至少一者的第二有效负载;以及/或接收与存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符(RID)和地址域指示符位,其中RID实现对包含存储器装置中的一或多个选定区域的地址域的标识。
地址域建立电路/模块834可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的地址域建立指令850):获得包含指令或数据中的至少一者的有效负载;在存储器装置中建立地址域,所述地址域包含存储器装置中的一或多个选定区域;获得包含第二指令或第二数据中的至少一者的第二有效负载;以及在存储器装置中建立第二地址域,其中所述第二地址域包含存储器装置中的不同于包含在先前建立的地址域中的所述一或多个选定区域的一或多个选定区域。
RID和EEK存储电路/模块836可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的RID和EEK存储指令852):将RID和EEK存储于任何外部实体不可存取的第二存储器装置中;以及/或将第二RID和第二EEK存储于任何外部实体不可存取的第二存储器装置中。
加密和解密电路/模块838可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的加密和解密指令854):当RID指示地址域时且当启用地址域指示符位时,获得与RID相关联的暂时性加密密钥(EEK);基于与地址域相关联的EEK对有效负载进行加密;基于与第二地址域相关联的第二EEK对第二有效负载进行加密;当存储器事务是读取事务时,基于EEK对从所述地址域检索的指令或数据中的至少一者进行解密;以及/或当所述存储器事务是写入事务时,基于EEK对存储于所述地址域中的第二数据进行加密。
经加密有效负载存储电路/模块840可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的经加密有效负载存储指令856):将经加密有效负载存储于存储器装置的地址域中;以及/或将第二经加密有效负载存储于存储器装置的第二地址域中。
密码保护移除电路/模块842可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的密码保护移除指令858):在基于EEK对有效负载进行加密之前,移除应用于所述有效负载的密码保护。
事务错误检测电路/模块844可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的事务错误检测指令860):当RID不为零或特殊值,停用地址域指示符位,启用控制位时,且当所述事务是指令提取事务时,检测存储器事务中的错误。作为另一实例事务错误检测电路/模块844可当RID不为零或特殊值时,且当停用地址域指示符位和控制位时,检测存储器事务中的错误。
修改抑制电路/模块846可包含经调适以执行与例如以下操作有关的数个功能的电路和/或指令(例如,存储于存储媒体820上的修改抑制指令862):当RID为零或特殊值时,制止修改存储器事务;以及/或当RID不为零或特殊值,停用地址域指示符位,启用控制位时,且当所述事务是数据读取事务或数据写入事务时,制止修改存储器事务。
如上文所提及,存储媒体820所存储的指令当由软件保护装置814的处理电路818执行时致使处理电路818执行本文中所描述的各种功能和/或过程操作中的一或多者。举例来说,存储媒体820可包含以下各项中的一或多者:接收指令848、地址域建立指令850、RID和EEK存储指令852、加密和解密指令854、经加密有效负载存储指令856、密码保护移除指令858、事务错误检测指令860以及修改抑制指令862。
第一实例方法
图9(包含图9A和9B)说明根据本发明的各种方面的可在用于保护存储器装置(例如,存储器装置304或存储器装置810)中的软件的设备中操作的方法。在本发明的一个方面中,所述设备可为软件保护装置(例如,软件保护装置302或软件保护装置814)。应理解,图9中的虚线指示的操作是任选的。
所述设备可获得包含指令或数据中的至少一者的有效负载902。在本发明的一个方面中,所述有效负载可在安全通信中获得或从安全存储装置获得。所述设备可在存储器装置中建立地址域,所述地址域包含存储器装置中的一或多个选定区域904。在一个方面中,所述设备可通过产生地址域的地址域标识符(RID)和EEK来建立所述地址域,其中RID与EEK相关联。所述设备可将RID和EEK存储于任何外部实体不可存取的第二存储器装置中906。所述设备可在基于EEK对有效负载进行加密之前,移除应用于所述有效负载的密码保护908。在本发明的一个方面中,所述设备可通过使用永久性加密密钥验证有效负载和/或对所述有效负载进行解密来移除密码保护。所述设备可基于与地址域相关联的暂时性加密密钥(EEK)对有效负载进行加密910。所述设备可将经加密有效负载存储于存储器装置的地址域中912。
所述设备可获得包含第二指令或第二数据中的至少一者的第二有效负载914。所述设备可在存储器装置中建立第二地址域,所述第二地址域包含存储器装置中的不同于包含在所述建立的地址域中的一或多个选定区域的一或多个选定区域916。在本发明的一个方面中,所述设备可通过产生存储器装置中的第二地址域的第二地址域标识符(RID)和第二EEK来建立所述第二地址域,其中第二RID与第二EEK相关联。所述设备可将第二RID和第二EEK存储于任何外部实体不可存取的第二存储器装置中918。所述设备可基于与第二地址域相关联的第二暂时性加密密钥(EEK)对第二有效负载进行加密920。所述设备可将第二经加密有效负载存储于存储器装置的第二地址域中922。
第二实例方法
图10说明根据本发明的各种方面的可在用于保护存储器装置(例如,存储器装置404或存储器装置810)中的软件的设备中操作的方法。在本发明的一个方面中,所述设备可为软件保护装置(例如,软件保护装置402或软件保护装置814)。应理解,图10中的虚线指示的操作是任选的。
所述设备可接收与存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符(RID)和地址域指示符位,其中RID实现对包含存储器装置中的一或多个选定区域的地址域的标识1002。在本发明的一个方面中,所述存储器事务可进一步包含控制对存储器装置的在地址域外部的区域的存取的任选控制位(例如,DORA位450)。所述设备可当RID不为零或特殊值,停用地址域指示符位,启用控制位时,且当所述事务是指令提取事务时,检测存储器事务中的错误1004。所述设备可当RID不为零或特殊值时且当停用地址域指示符位和控制位时,检测存储器事务中的错误1006。所述设备可当RID是零或特殊值时,制止修改存储器事务1008。举例来说,所述设备可将存储器事务转送到预期目的地且无需修改。所述设备可当RID不为零或特殊值,停用地址域指示符位,启用控制位时,且当所述事务是数据读取事务或数据写入事务时,制止修改存储器事务1010。所述设备可当RID指示地址域时且当启用地址域指示符位时,获得与RID相关联的暂时性加密密钥(EEK)1012。在本发明的一个方面中,RID和EEK存储于任何外部实体不可存取的第二存储器装置中。所述设备可当存储器事务是读取事务时,基于EEK对从地址域检索的指令或数据中的至少一者进行解密1014。所述设备可当存储器事务是写入事务时,基于EEK对将存储于地址域中的第二数据进行加密1016。
所属领域的技术人员将进一步了解,结合本文中所揭示的实施方案描述的各种说明性逻辑块、模块、电路和算法步骤可被实施为硬件、软件、固件、中间件、微码或其任何组合。为清楚地说明此可互换性,上文已大体上关于其功能性描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。
在本发明内,词语“示范性”用于表示“充当实例、例子或说明”。在本文中描述为“示范性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。同样,术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。术语“耦接”在本文中用于指两个物体之间的直接或间接耦接。举例来说,如果物体A物理地接触物体B,且物体B接触物体C,那么物体A和C仍可被视为耦接到彼此,即使它们不直接物理地接触彼此仍是这样。举例来说,第一裸片可耦接到封装中的第二裸片,即使第一裸片永不直接物理地接触第二裸片也如此。术语“电路(circuit/circuitry)”广泛地使用,且既定包含电装置和导体的硬件实施方案以及信息和指令的软件实施方案两者,所述电装置和导体当经连接和经配置时实现本发明中描述的功能的性能,不受电子电路的类型的限制,所述信息和指令在由处理器执行时实现本发明中描述的功能的性能。
如本文中所使用,术语“确定”涵盖各种各样的动作。举例来说,“确定”可包含推算、计算、处理、推导、研究、查找(例如,在表、数据库或另一数据结构中查找)、断定以及类似者。而且,“确定”可包含接收(例如,接收信息)、存取(例如,存取存储器中的数据)以及类似者。而且,“确定”可包含解析、选择、挑选、建立以及类似者。
提供先前描述以使所属领域的技术人员能够实践本文中所描述的各种方面。对这些方面的各种修改对于所属领域的技术人员来说将容易显而易见,并且本文中定义的一般原理可适用于其它方面。因此,权利要求书不意图限于本文中所展示的方面,而是应符合与权利要求书的语言一致的完整范围,其中参考呈单数形式的元件不意图表示“一个且仅一个”(除非明确地如此陈述),而是相反地为“一或多个”。除非另外明确地陈述,否则术语“一些”是指一或多个。指项目列表“中的至少一者”的短语是指那些项目的任何组合,包含单个成员。作为实例,“以下各项中的至少一者:a、b或c”意图涵盖:a;b;c;a和b;a和c;b和c;以及a、b和c。已知的或以后将为所属领域的一般技术人员已知的等效于贯穿本发明描述的各种方面的元素的所有结构和功能明确地以引用的方式并入本文中,并且既定被权利要求书涵盖。此外,本文中揭示的任何内容均无意于奉献给公众,无论是否在权利要求书中明确地陈述此表达。除非使用短语“用于…装置”明确叙述权利要求项要素,或在方法项的情况下,使用短语“用于…的步骤”叙述所述要素,否则不依据35U.S.C.§112第六段的规定解释所述要素。
因此,在不脱离本发明的范围的情况下,可在不同实例和实施方案中实施与本文中所描述以及附图中所展示的实例相关联的各种特征。因此,尽管已经描述和在附图中展示某些特定构造和布置,但此类实施方案仅为说明性且不限制本发明的范围,因为所属领域的一般技术人员将了解对所描述实施方案的各种其它添加和修改以及从所描述实施方案的删除。因此,本发明的范围仅由所附权利要求书的文字语言和合法等效物来确定。

Claims (40)

1.一种计算设备处用于保护目标软件的方法,其包括:
经由软件保护装置获得包含所述目标软件的指令或数据中的至少一者的有效负载,其中所述指令或所述数据中的至少一者将由所述计算设备的核心装置进行处理,且其中,所述核心装置与所述软件保护装置分开且配置以存取或执行所述目标软件;
经由所述软件保护装置在所述计算设备的存储器装置中建立地址域,所述地址域包含所述存储器装置中的一个或多个选定区域;
经由所述软件保护装置基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密,其中所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
经由所述软件保护装置将经加密的有效负载存储于所述存储器装置的所述地址域中。
2.根据权利要求1所述的方法,其中建立所述地址域包括:
产生针对所述地址域的地址域标识符和所述暂时性加密密钥,其中所述地址域标识符与所述暂时性加密密钥相关联。
3.根据权利要求2所述的方法,其进一步包括:
将所述地址域标识符和所述暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
4.根据权利要求1所述的方法,其中所述暂时性加密密钥是在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。
5.根据权利要求1所述的方法,其中所述有效负载是在安全通信中获得的或从安全存储装置获得的。
6.根据权利要求1所述的方法,其进一步包括:
在所述基于所述暂时性加密密钥对所述有效负载进行加密之前,移除应用于所述有效负载的密码保护。
7.根据权利要求6所述的方法,其中移除所述密码保护包括如下中的至少之一 :
使用永久性加密密钥验证所述有效负载,或
对所述有效负载进行解密。
8.根据权利要求2所述的方法,其进一步包括:
获得包含第二指令或第二数据中的至少一者的第二有效负载;
在所述存储器装置中建立第二地址域,所述第二地址域包括所述存储器装置中的一个或多个选定区域,该一个或多个选定区域不同于所建立的所述地址域中包括的一个或多个选定区域;
基于与所述第二地址域相关联的第二暂时性加密密钥对所述第二有效负载进行加密;以及
将第二经加密有效负载存储于所述存储器装置的所述第二地址域中。
9.根据权利要求8所述的方法,其中建立所述第二地址域包括:
产生针对所述存储器装置中所述第二地址域的第二地址域标识符和所述第二暂时性加密密钥,其中所述第二地址域标识符与所述第二暂时性加密密钥相关联。
10.根据权利要求9所述的方法,其进一步包括:
将所述第二地址域标识符和所述第二暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
11.一种用于保护目标软件的设备,其包括:
存储器装置;以及
处理电路,其耦接到所述存储器装置,所述处理电路经配置以:
获得包含所述目标软件的指令或数据中的至少一者的有效负载,其中所述指令或所述数据中的所述至少一者将由所述设备的核心装置进行处理,且其中,所述核心装置与所述处理电路分开且配置以存取或执行所述目标软件;
在所述存储器装置中建立地址域,所述地址域包含所述存储器装置中的一个或多个选定区域;
基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密,其中所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
将经加密的有效负载存储于所述存储器装置的所述地址域中。
12.根据权利要求11所述的设备,其中经配置以建立所述地址域的所述处理电路进一步经配置以:
产生针对所述地址域的地址域标识符和所述暂时性加密密钥,其中所述地址域标识符与所述暂时性加密密钥相关联。
13.根据权利要求12所述的设备,其中所述处理电路进一步经配置以:
将所述地址域标识符和所述暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
14.根据权利要求11所述的设备,其中所述暂时性加密密钥是在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。
15.根据权利要求11所述的设备,其中所述有效负载是在安全通信中获得的或从安全存储装置获得的。
16.根据权利要求11所述的设备,其中所述处理电路进一步经配置以:
在基于所述暂时性加密密钥对所述有效负载进行加密之前,移除应用于所述有效负载的密码保护。
17.根据权利要求16所述的设备,其中经配置以移除所述密码保护的所述处理电路进一步经配置以:
使用永久性加密密钥验证所述有效负载或对所述有效负载进行解密。
18.根据权利要求12所述的设备,其中所述处理电路进一步经配置以:
获得包含第二指令或第二数据中的至少一者的第二有效负载;
在所述存储器装置中建立第二地址域,所述第二地址域包括所述存储器装置中的一个或多个选定区域,该一个或多个选定区域不同于所建立的所述地址域中包括的一个或多个选定区域;
基于与所述第二地址域相关联的第二暂时性加密密钥对所述第二有效负载进行加密;以及
将第二经加密有效负载存储于所述存储器装置的所述第二地址域中。
19.根据权利要求18所述的设备,经配置以建立所述第二地址域的所述处理电路进一步经配置以:
产生针对所述存储器装置中的所述第二地址域的第二地址域标识符和所述第二暂时性加密密钥,其中所述第二地址域标识符与所述第二暂时性加密密钥相关联。
20.根据权利要求19所述的设备,其中所述处理电路进一步经配置以:
将所述第二地址域标识符和所述第二暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
21.一种用于保护目标软件的设备,其包括:
用于经由软件保护装置获得包含所述目标软件的指令或数据中的至少一者的有效负载的装置,其中所述指令或所述数据中的所述至少一者将由所述设备核心装置进行处理,所述核心装置与所述软件保护装置分开且配置以存取或执行所述目标软件;
用于经由所述软件保护装置在所述设备的存储器装置中建立地址域的装置,所述地址域包含所述存储器装置中的一个或多个选定区域;
用于经由所述软件保护装置基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密的装置,其中所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
用于经由所述软件保护装置将经加密有效负载存储于所述存储器装置的所述地址域中的装置。
22.一种非暂时性处理器可读存储介质,其上存储有指令,所述指令在由计算设备的一个或多个处理器执行时致使所述一个或多个处理器:
获得包含要受保护的目标软件的指令或数据中的至少一者的有效负载,其中所述指令或所述数据中的所述至少一者将由所述计算设备的核心装置进行处理,其中,所述核心装置与所述一个或多个处理器分开且配置以存取或执行所述目标软件;
在所述计算设备的存储器装置中建立地址域,所述地址域包含所述存储器装置中的一个或多个选定区域;
基于与所述地址域相关联的暂时性加密密钥对所述有效负载进行加密,其中所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
将所述经加密有效负载存储于所述存储器装置的所述地址域中。
23.一种计算设备处用于保护软件的方法,其包括:
经由软件保护装置从所述计算设备的核心装置接收与所述计算设备的存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中一个或多个选定区域的地址域的标识,所述一个或多个选定区域与目标软件相关联,其中,所述地址域指示符位指示存储器页是否属于所述地址域,且其中,所述核心装置与所述软件保护装置分开且配置以存取或执行所述目标软件;
在所述地址域标识符指示所述地址域且所述地址域指示符位启用的情况下,经由所述软件保护装置获得与所述地址域标识符相关联的暂时性加密密钥;
在所述存储器事务是读取事务的情况下,基于所述暂时性加密密钥经由所述软件保护装置对从所述地址域接收的所述目标软件的指令或数据的至少一者进行解密并将经解密的所述目标软件的指令或数据提供给所述核心装置,其中所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
在所述存储器事务是写入事务的情况下,基于所述暂时性加密密钥经由所述软件保护装置对要存储于所述地址域中的第二数据进行加密。
24.根据权利要求23所述的方法,其中所述地址域标识符和所述暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
25.根据权利要求23所述的方法,其进一步包括:
在所述地址域标识符是预定值的情况下,制止修改所述存储器事务。
26.根据权利要求23所述的方法,其中所述暂时性加密密钥是在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。
27.根据权利要求23所述的方法,其中所述存储器事务进一步包含控制位,所述控制位用于控制所述存储器装置的所述地址域之外的区域的存取,所述方法进一步包括:
在所述地址域标识符不为预定值、所述地址域指示符位停用、所述控制位启用且所述事务是数据读取事务或数据写入事务的情况下,制止修改所述存储器事务。
28.根据权利要求27所述的方法,其进一步包括:
在所述地址域标识符不为所述预定值、所述地址域指示符位停用、所述控制位启用且所述事务是指令提取事务的情况下,检测所述存储器事务中的错误。
29.根据权利要求27所述的方法,其进一步包括:
在所述地址域标识符不为所述预定值且所述地址域指示符位和所述控制位停用的情况下,检测所述存储器事务中的错误。
30.根据权利要求25、27、28或29中的任一权利要求所述的方法,其中所述预定值是零。
31.一种用于保护软件的设备,其包括:
存储器装置;以及
处理电路,其耦接到所述存储器装置,所述处理电路经配置以:
从所述设备的核心装置接收与所述存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中的一个或多个选定区域的地址域的标识,所述一个或多个选定区域与目标软件相关联,其中,所述地址域指示符位指示存储器页是否属于所述地址域,且其中,所述核心装置与所述处理电路分开且配置以存取或执行所述目标软件;
在所述地址域标识符指示所述地址域且所述地址域指示符位启用的情况下,获得与所述地址域标识符相关联的暂时性加密密钥;
在所述存储器事务是读取事务的情况下,基于所述暂时性加密密钥对从所述地址域接收的所述目标软件的指令或数据中的至少一者进行解密并将经解密的所述目标软件的指令或数据提供给所述核心装置,其中,所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
在所述存储器事务是写入事务的情况下,基于所述暂时性加密密钥对要存储于所述地址域中的第二数据进行加密。
32.根据权利要求31所述的设备,其中所述地址域标识符和所述暂时性加密密钥存储于任何外部实体不能存取的第二存储器装置中。
33.根据权利要求31所述的设备,其中所述处理电路进一步经配置以:
在所述地址域标识符是预定值的情况下,制止修改所述存储器事务。
34.根据权利要求31所述的设备,其中所述暂时性加密密钥是在所述地址域保持于所述存储器装置中时存在的临时或瞬时性加密密钥。
35.根据权利要求31所述的设备,其中所述存储器事务进一步包含控制位,所述控制位用于控制对所述存储器装置在所述地址域之外的区域的存取,其中所述处理电路进一步经配置以:
在所述地址域标识符不为预定值、所述地址域指示符位停用、所述控制位启用且所述事务是数据读取事务或数据写入事务的情况下,制止修改所述存储器事务。
36.根据权利要求35所述的设备,其中所述处理电路进一步经配置以:
在所述地址域标识符不为所述预定值、所述地址域指示符位停用、所述控制位启用且所述事务是指令提取事务的情况下,检测所述存储器事务中的错误。
37.根据权利要求35所述的设备,其中所述处理电路进一步经配置以:
在所述地址域标识符不为所述预定值且所述地址域指示符位和所述控制位停用的情况下,检测所述存储器事务中的错误。
38.根据权利要求33、35、36或37中的任一权利要求所述的设备,其中所述预定值是零。
39.一种用于保护软件的设备,其包括:
用于经由所述设备的软件保护装置从所述设备的核心装置接收与存储器装置相关联的存储器事务的装置,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中的一个或多个选定区域的地址域的标识,所述一个或多个选定区域与目标软件相关联,其中,所述地址域指示符位指示存储器页是否属于所述地址域,且其中,所述核心装置与所述软件保护装置分开且配置以存取或执行所述目标软件;
用于在所述地址域标识符指示了所述地址域且所述地址域指示符位被启用的情况下经由所述软件保护装置获得与所述地址域标识符相关联的暂时性加密密钥的装置;
用于在所述存储器事务是读取事务的情况下基于所述暂时性加密密钥经由所述软件保护装置对从所述地址域接收的所述目标软件的指令或数据中的至少一者进行解密并将经解密的所述目标软件的指令或数据提供给所述核心装置的装置,其中,所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
用于在所述存储器事务是写入事务的情况下基于所述暂时性加密密钥经由所述软件保护装置对要存储于所述地址域中的第二数据进行加密的装置。
40.一种非瞬时性处理器可读存储介质,其上存储有指令,所述指令在由计算设备的一个或多个处理器执行时致使所述一个或多个处理器:
从所述计算设备的核心装置接收与所述计算设备的所述存储器装置相关联的存储器事务,所述存储器事务至少包含地址域标识符和地址域指示符位,其中所述地址域标识符实现对包含所述存储器装置中一个或多个选定区域的地址域的标识,所述一个或多个选定区域与目标软件相关联,其中,所述地址域指示符位指示存储器页是否属于所述地址域,且其中,所述核心装置与所述一个或多个处理器分开且配置以存取或执行所述目标软件;
在所述地址域标识符指示了所述地址域时且所述地址域指示符位被启用的情况下,获得与所述地址域标识符相关联的暂时性加密密钥;
在所述存储器事务是读取事务的情况下,基于所述暂时性加密密钥对从所述地址域接收的所述目标软件的指令或数据中的至少一者进行解密并将经解密的所述目标软件的指令或数据提供给所述核心装置,其中,所述暂时性加密密钥对于所述核心装置和所述目标软件来说是未知的;以及
在所述存储器事务是写入事务的情况下,基于所述暂时性加密密钥对要存储于所述地址域中的第二数据进行加密。
CN201680034706.7A 2015-07-07 2016-06-24 由受控制的加密密钥管理进行的软件模块的分离 Active CN107743625B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562189733P 2015-07-07 2015-07-07
US62/189,733 2015-07-07
US15/053,892 US10142303B2 (en) 2015-07-07 2016-02-25 Separation of software modules by controlled encryption key management
US15/053,892 2016-02-25
PCT/US2016/039403 WO2017007620A1 (en) 2015-07-07 2016-06-24 Separation of software modules by controlled encryption key management

Publications (2)

Publication Number Publication Date
CN107743625A CN107743625A (zh) 2018-02-27
CN107743625B true CN107743625B (zh) 2021-09-03

Family

ID=56550323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680034706.7A Active CN107743625B (zh) 2015-07-07 2016-06-24 由受控制的加密密钥管理进行的软件模块的分离

Country Status (7)

Country Link
US (1) US10142303B2 (zh)
EP (1) EP3320476A1 (zh)
JP (1) JP2018520594A (zh)
KR (1) KR20180026719A (zh)
CN (1) CN107743625B (zh)
BR (1) BR112018000325A2 (zh)
WO (1) WO2017007620A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10462600B2 (en) 2014-10-09 2019-10-29 Tile, Inc. Secure and private cloud based broadcast identification
US10223289B2 (en) 2015-07-07 2019-03-05 Qualcomm Incorporated Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
US11461244B2 (en) * 2018-12-20 2022-10-04 Intel Corporation Co-existence of trust domain architecture with multi-key total memory encryption technology in servers
US11201748B2 (en) * 2019-08-20 2021-12-14 Tile, Inc. Data protection in a tracking device environment
US11153758B2 (en) 2019-09-19 2021-10-19 Tile, Inc. End-to-end encryption with distributed key management in a tracking device environment
US11368290B2 (en) 2019-10-20 2022-06-21 Tile, Inc. Key diversification in a tracking device environment
US11522696B2 (en) 2020-03-13 2022-12-06 Dearborn Group, Inc. Intrusion defense system for a vehicle
US20240048382A1 (en) 2022-08-03 2024-02-08 1080 Network, Llc Systems, methods, and computing platforms for executing credential-less network-based communication exchanges

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956374A (zh) * 2005-10-28 2007-05-02 腾讯科技(深圳)有限公司 一种为身份认证提供数据加密的装置和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100530026C (zh) * 2002-01-18 2009-08-19 艾利森电话股份有限公司 移动终端,把数据装入或上载到移动终端的方法和系统
US8473754B2 (en) 2006-02-22 2013-06-25 Virginia Tech Intellectual Properties, Inc. Hardware-facilitated secure software execution environment
US20080155273A1 (en) 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US8726042B2 (en) 2008-02-29 2014-05-13 Microsoft Corporation Tamper resistant memory protection
US8675868B1 (en) * 2008-07-01 2014-03-18 Maxim Integrated Products, Inc. Encrypting an address-dependent value along with code to prevent execution or use of moved code
US8281154B2 (en) * 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
US8516271B2 (en) 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
US8839001B2 (en) * 2011-07-06 2014-09-16 The Boeing Company Infinite key memory transaction unit
FR2979443B1 (fr) * 2011-08-30 2013-09-27 Maxim Integrated Products Microcontroleur securise a base de mode
JP5472389B2 (ja) * 2011-09-14 2014-04-16 横河電機株式会社 無線通信装置及び無線通信システム
JP5275432B2 (ja) * 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP5275482B2 (ja) * 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
EP2867891B1 (en) * 2012-06-28 2016-12-28 ANT - Advanced Network Technologies OY Processing and error concealment of digital signals
US9152577B2 (en) 2012-08-17 2015-10-06 Broadcom Corporation Security central processing unit management of a transcoder pipeline
US9910790B2 (en) * 2013-12-12 2018-03-06 Intel Corporation Using a memory address to form a tweak key to use to encrypt and decrypt data
GB2524561A (en) * 2014-03-27 2015-09-30 St Microelectronics Res & Dev Methods and apparatus for storing content
US10169618B2 (en) * 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US9298647B2 (en) * 2014-08-25 2016-03-29 HGST Netherlands B.V. Method and apparatus to generate zero content over garbage data when encryption parameters are changed
US10146701B2 (en) * 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US9935774B2 (en) * 2015-05-22 2018-04-03 Nxp B.V. Configurable cryptographic controller area network (CAN) device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956374A (zh) * 2005-10-28 2007-05-02 腾讯科技(深圳)有限公司 一种为身份认证提供数据加密的装置和方法

Also Published As

Publication number Publication date
BR112018000325A2 (pt) 2018-09-11
US20170085542A1 (en) 2017-03-23
EP3320476A1 (en) 2018-05-16
KR20180026719A (ko) 2018-03-13
US10142303B2 (en) 2018-11-27
CN107743625A (zh) 2018-02-27
WO2017007620A1 (en) 2017-01-12
JP2018520594A (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
CN107743625B (zh) 由受控制的加密密钥管理进行的软件模块的分离
EP3320478B1 (en) Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
US10546157B2 (en) Flexible counter system for memory protection
EP3326105B1 (en) Technologies for secure programming of a cryptographic engine for secure i/o
US8489836B2 (en) Secure memory management system and method
US10536274B2 (en) Cryptographic protection for trusted operating systems
JP6695885B2 (ja) ハッキング耐性のあるコンピュータ設計
EP2947594A2 (en) Protecting critical data structures in an embedded hypervisor system
GB2427720A (en) Read access protection of a non-volatile memory
US20140033266A1 (en) Method and apparatus for providing concealed software execution environment based on virtualization
EP3009952A1 (en) System and method for protecting a device against attacks on procedure calls by encrypting arguments
JP2014164565A (ja) Simカード、通信端末、及びセキュア情報保護方法

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