CN111190611A - 软件安装方法 - Google Patents

软件安装方法 Download PDF

Info

Publication number
CN111190611A
CN111190611A CN201911107213.3A CN201911107213A CN111190611A CN 111190611 A CN111190611 A CN 111190611A CN 201911107213 A CN201911107213 A CN 201911107213A CN 111190611 A CN111190611 A CN 111190611A
Authority
CN
China
Prior art keywords
software
region
secure
target
area
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
Application number
CN201911107213.3A
Other languages
English (en)
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of CN111190611A publication Critical patent/CN111190611A/zh
Pending legal-status Critical Current

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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
    • G06F21/6281Protecting 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 at program execution time, where the protection is within the operating system
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及一种用于设备的软件安装方法。该设备包括非易失性存储器10和存取控制电路6,该存取控制电路6基于区域定义数据7来控制对非易失性存储器的存取,区域定义数据7定义了非易失性存储器的给定区域是较不安全区域还是较安全区域,其中,对较安全区域的存取比对较不安全区域的存取施加更大的存取限制。该方法包括在非易失性存储器的由区域定义数据定义为较不安全区域的目标区域中安装目标软件40;验证目标软件;以及至少当对目标软件的验证成功时,并且在安装目标软件之后,更新区域定义数据以将目标区域从较不安全区域改变为较安全区域。

Description

软件安装方法
技术领域
本技术涉及信息处理设备的领域。更具体地,本技术涉及一种用于包括非易失性存储器的设备的软件安装方法。
背景技术
设备可以具有用于存储即使在设备未通电时也将被持久地存储的软件和数据的非易失性存储器。一些设备可以支持将非易失性存储器划分为具有不同安全级别的区域,例如包括较不安全区域和较安全区域。通常,对较安全区域的存取可能比对较不安全区域的存取更受限制。例如,在设备的一些操作状态中,可能不允许设备对非易失性存储器的较安全区域进行存取。这对于保护敏感代码或数据不被在设备上执行的较不安全进程存取是有用的。
发明内容
至少一些实例提供了一种用于设备的软件安装方法,该设备包括非易失性存储器和存取控制电路,该存取控制电路基于区域定义数据来控制对非易失性存储器的存取,该区域定义数据定义了非易失性存储器的给定区域是较不安全区域还是较安全区域,其中,存取控制电路被配置为对较安全区域的存取比对较不安全区域的存取施加更大的限制;该方法包括:在非易失性存储器的由区域定义数据定义为较不安全区域的目标区域中安装目标软件;验证目标软件;以及至少当目标软件的验证成功时,并且在安装目标软件之后,更新区域定义数据以将目标区域从较不安全区域更改为较安全区域。
至少一些示例提供了至少一种计算机程序,用于控制设备以执行前述方法。可以提供至少一种存储介质来存储至少一个计算机程序。
至少一些示例提供了一种装置,该装置包括:处理电路,用于执行数据处理;以及数据存储装置,存储用于控制处理电路来执行前述方法的至少一个计算机程序。
附图说明
从下面对示例的描述中,本技术的其他方面、特征和优点将变得显而易见,这些描述将结合附图进行阅读,其中:
图1示意性地示出了具有非易失性存储器的信息处理设备的示例;
图2示出了用于安装要从非易失性存储器的安全区域引导的软件的方法的示意图;
图3示出了执行安装另一安全模块的方法的另一实例;
图4是示出软件安装方法的流程图;以及
图5是更详细地示出用于验证目标软件的步骤的流程图。
具体实施方式
设备可以具有非易失性存储器和用于基于区域定义数据来控制对非易失性存储器进行存取的存取控制电路,该区域定义数据定义了给定区域是较不安全区域还是较安全区域。通过将非易失性存储器划分为较不安全和较安全区域,对较安全区域的存取可能比对较不安全区域的存取施加更大的存取限制。然而,在这样的设备中,对要写入到非易失性存储器的较安全区域的安全软件的安装进行处理可能具有挑战性。
一种方法可以是,要存储在非易失性存储器的安全区域中的任何安全软件需要由制造设备的原始设备制造商(OEM)在生产过程中完全存取设备的存储器映射时入非易失性存储器。为了在设备上建立信任根,最初制造商之后的任何人都不能对生产设备进行完全存储器存取(包括能够写入存储器的安全区域的存取权限)。但是,要求OEM为设备安装所有安全软件的问题在于,这对制造商来说是极大的限制。例如,OEM可能正在处理许多不同批次的可能需要安装不同软件的设备,并且这可能导致在控制每个设备的安全区域中的各个软件的块的安装以及确保所安装的软件是可信的任何验证/认证步骤的开销更大。这还将需要任何软件开发人员直接与微芯片制造商合作以协调要安装在特定批次设备上的软件,这可能是不希望的。
另一方法可以是提供专用的串行端口或者一些其他通信通道,在离开OEM之后,可以经由通道将软件提供到设备非易失性存储器的安全区域中。然而,这可能需要专用工具,或者可能要求设备包括仅用于注入安全软件的附加引脚,这可能会增加制造集成电路的成本。
另一选择可以是,代码可以在离开原始设备制造商之后被安装到非易失性存储器的非安全区域中,并且然后使用专用软件工具将该数据复制到存储器的安全区域中。然而,可能需要确保那些专用软件工具不能够篡改已经安装在存储器内的其他安全代码。因此,这种方法将意味着与非安全软件相比,在安装安全软件时将需要不同的软件安装工具,这可能会增加开发旨在运行要从非易失性存储器的安全区域引导的安全软件的设备的成本。
在下面讨论的技术中,提供了一种用于简化从非易失性存储器的较安全区域引导的目标软件的安装的方法。这可以使得非安全软件安装工具能够被用于安装目标软件,同时仍保持安全性。这对于降低设备的开发成本是有用的,对于原始设备制造商(不再需要负责将所有安全软件安装到设备上)和对于需要提供安全软件(不需要使用专用于安全软件的安装的专用安装工具)的下游厂商都是有用的。这对于要在物联网中使用的设备来说尤其重要,这些设备相对功率受限且电路面积受限,并且每个设备的成本预算可能太低,使得制造商或者软件开发商不太可能会愿意在开发用于处理与现有非安全工具分离的安全软件安装的专用工具时花费大量资源。
在以下描述的方法中,最终需要被安装在非易失性存储器的较安全区域中的目标软件最初被安装到目标区域中,该目标区域由将数据定义为较不安全区域的区域来定义。要安装的目标软件不仅可以包括要根据目标软件执行的程序代码,还可以包括要由目标软件使用的关联数据。
因此,由于最初目标软件被安装在较不安全区域中,因此可以使用标准的非安全安装工具或者软件。验证目标软件,并且至少在成功验证目标软件时,并且在将目标软件安装到较不区域中之后,定义设备的存取控制电路的数据的区域被更新以将目标区域从较不安全区域改变为较安全区域。因此,通过在已经将软件安装在目标区域中之后改变目标区域的安全状态,这使得软件能够被放置在安全存储器中而无需专用工具。因此,这种方法可以消除提供额外的专用安全安装工具来处理用于安全设备的软件安装的需求。
可以在安装程序软件的控制下执行目标软件的验证。在一个示例中,安装程序软件本身可以被安装在非易失性存储器的安全区域中。这提供了安全性,因为较不安全代码无法篡改位于较安全存储器区域中的安装程序软件。
可选地,安装程序软件可以被存储在非易失性存储器的较不安全区域中,但是可以基于被存储在非易失性存储器的较安全区域中的安装程序软件验证信息进行验证。因此,利用这种方法,可以安全地将安装程序软件安装到存储器的较不安全区域中(例如,使用非安全软件安装工具),但是一些验证信息可以被嵌入到非易失性存储器的较安全区域中(例如,在制造时被嵌入),其可以被用于检查该安装程序软件是否合适,并且可以可信地用于验证要安装的目标软件。这种方法对于减少需要提供的安全存储量可以是有用的,并且可以帮助整体上更有效地利用非易失性存储器容量,因为安装程序软件可以按需下载并且通过标准非安全安装工具安装到存储器的非安全区域中,并且然后在目标软件的安装完成时,如果非安全区域中的存储容量需要用于其他目的则被重写。
在一个示例中,当安装程序软件被存储在非易失性存储器的较不安全区域中时,可以基于被存储在非易失性存储器的较安全区域中的哈希值,通过被安装在非易失性存储器的较安全区域中的引导加载程序软件来验证安装程序软件。是否允许更新区域定义数据以改变哪些区域为较不安全或者较安全的定义可以取决于请求更新的软件通过引导加载程序软件基于存储在较安全区域中的哈希值而被验证。这样可以确保只有满足已知哈希的某些安全安装代码才能请求改变较不安全区域和较安全区域之间的边界。
尽管在一些实施例中,引导加载程序软件可以允许与不同哈希值相对应的两种或更多种可选形式的安装程序软件由引导加载程序软件直接验证和/或触发对区域定义数据的更新,在引导加载程序软件仅允许对一种特定形式的安装程序软件进行验证和/或更新区域定义数据的情况下,则可以更加安全。因此,在一些示例中,安装程序软件可能是哈希值被存储在较安全区域中以能够由引导加载程序软件进行直接验证(在安装程序软件本身由引导加载程序软件进行直接验证的情况下,要安装的任何其他软件都由安装程序软件进行验证)的唯一软件。此外,在一些示例中,一旦设备已经超过其制造的特定阶段,则由引导加载程序软件基于哈希值验证的安装程序软件可能是允许对区域定义数据的更新进行触发的唯一软件。
区域定义数据可以以不同的方式定义较不安全和较安全区域。在一些示例中,可以将非易失性存储器的存储器地址空间划分为两个,其中边界一侧的地址被认为较安全,而边界另一侧的地址被认为较不安全。在这种情况下,区域定义数据的更新可以简单地是边界地址的更新,该边界地址标记了较安全和较不安全区域之间的分区。
在其他示例中,可以将非易失性存储器的存储器地址空间划分为多个单独的(可能不连续的)较不安全和/或安全区域,其中每个区域由任意的起始和结束地址(或起始地址和区域大小)来定义,开始和结束地址由区域定义数据来定义。在这种情况下,区域定义数据的更新可以包括改变定义边界地址和/或某些区域的大小的参数,或者改变用于控制该地址区域是较安全或较不安全的区域的安全属性。
在一些实现方式中,存取控制电路可以仅支持用于非易失性存储器的区域的两种不同类型的安全级别。在这种情况下,较安全区域可以是安全区域,并且较不安全区域可以是非安全区域,其中与非安全区域相比,对安全区域施加的存取限制更多。
然而,在其他示例中,随着存取权限的增加和减少,可以为非易失性存储器的特定区域定义三个或更多个安全级别。在这种情况下,上述较安全和较不安全区域可以简单地是对其应用了不同安全级别的任何两个区域。
可以使用非对称密码学(例如,椭圆曲线密码学等)来验证目标软件。这样可以提供更高的安全性。
验证可以包括对与目标软件相关联的密码签名是否满足某些要求进行验证。例如,签名可以覆盖作为目标软件的函数而导出的哈希值,并且还可以覆盖其他参数(例如,以下讨论的大小参数)。可以基于与证明目标软件的真实性的特定方相关联的公钥来验证密码签名。例如,安装程序软件可以检查签名人的身份是否与一个或多个被允许保证已安装软件的真实性的可信方的已知身份相匹配。例如,可以使用与签名者相关联的私钥从与目标软件相关联的信息束(包括哈希、大小参数或任何其他信息)中导出密码签名,并且签名的验证可以基于签名者的公钥,例如,检查基于公钥应用于签名的签名验证函数的结果是否与签名所覆盖的参数(例如,哈希和大小)匹配。因此,安装程序软件可以在使得能够进行软件安装之前检查证明软件的真实性的一方的身份。
如上所述,可以与目标软件一起提供大小参数,其可以指示目标软件的大小。例如,大小可以以字节数或以其他单位来指定。然后,安装程序软件可以使用大小参数来确定区域定义数据需要更新以将目标区域从较不安全区域更改为较安全区域的程度。因此,可以基于大小参数来更新区域定义数据。如上所述,可以基于与目标软件相关联的加密签名来验证大小参数,以对请求安装软件并且然后请求该大小参数实际上远大于正在安装的目标软件的大小的恶意方进行管制,否则可能导致非易失性存储器的较不安全区域中的附加信息变得更加安全,这可能导致安全漏洞。因此,通过基于签名来证明大小参数的真实性,可以增加在从非易失性存储器的新创建的较安全区域引导目标软件的安装过程中正确配置设备的信任度。
目标软件的验证既可以在更新区域定义数据之前执行,或者在更新区域定义数据之后执行,或者在更新区域定义数据之前和之后执行。
因此,在一些示例中,可以首先执行验证,并且如果验证不成功,则不更新区域定义数据,并且因此目标区域将仍然被指定为非易失性存储器的地址空间的较不安全区域。
然而,在其他示例中,可以更新区域定义数据以将目标区域从较不安全区域改变为较安全区域,而不管目标软件的验证是否成功。然后可以在更新区域定义数据之后验证目标软件,并且在此时的验证被认为不成功的情况下,该方法可以包括将目标区域从较安全区域改回较不安全区域,并且阻止从目标区域执行软件。可以以不同的方式来实现防止从目标区域执行软件,例如通过擦除来自目标区域中的数据和代码,或者通过设置阻止从目标区域引导或者执行的控制标志。
在其他示例中,可以在更新区域定义数据之前和之后来验证目标软件。提供两步验证过程可能是有用的,以便在允许对区域定义数据进行任何更新之前执行初始验证步骤,以避免在无法验证目标软件的情况下对区域定义数据进行任何更改,但是,随后可以在更新区域定义数据之后执行第二验证步骤,以检查在用于导入目标软件的过程期间没有进行任何修改,否则这可能影响安全性。
因此,应当理解,在更新区域定义数据之前对目标软件的验证不是必不可少的,因为该验证也可以在之后进行。类似地,在更新区域定义数据之后的验证(如果之前已完成)也不是必不可少的。然而,两者都可以是单独的或者组合的。
在一个示例中,当目标软件被安装在较不安全区域中时,目标软件可以与设置为第一值的验证指示符相关联。当对目标软件的验证成功并且区域定义数据被更新以将目标区域定义为较安全区域时,可以将验证指示符更新为第二值(例如,在安装程序软件或引导加载程序软件的控制下)。当验证指示符具有第一值时,可以禁止目标软件的执行。例如,禁止目标软件的执行可以通过以下方式实现:完全禁止目标软件的引导(例如,禁止目标软件从非易失性存储器复制到(处理电路可以从其执行软件的)随机存取存储器(RAM));或者允许软件从非易失性存储器引导到RAM的区域,但是然后禁止从该RAM的区域执行。因此,通常,通过提供可以用于控制软件是否可以执行的标志,并且防止将该标志设置为第二值,直到以下二者:(i)验证成功以及(ii)区域定义数据已经被更新以将目标区域定义为较安全区域,这样防止在该软件尚未被验证为真实的、或者通过更新区域定义数据尚未为包含软件的目标区域设置适当的安全保护的情况下,潜在敏感软件的不适当执行。
在一个示例中,在以下各项中的至少一项期间可以禁止对至少一个较不安全区域的存取:验证过程,用于验证目标软件;以及区域更新过程,用于更新区域定义数据以将目标区域从较不安全区域改变为较安全区域。这可以防止在设备上执行的其他较不安全代码能够存取已安装的目标软件,直到完成软件安装为止(此时,区域定义数据将更新区域定义数据以将目标区域标记为较安全)。此外,在验证过程和区域更新过程中的一者或两者期间,可以禁止对非易失性存储器的调试存取。这防止在安装过程进行期间对非易失性存储器的非安全存取获得对目标软件的潜在敏感代码和数据的不当存取。
非易失性存储器可以使用多种存储器技术(例如,磁阻RAM、铁电RAM或只读存储器)来实现。然而,在一个示例中,非易失性存储器可以是闪存。
图1示意性地示出了信息处理设备2的示例。设备2包括处理电路4(例如,处理器核心或核心的集群)和存储器存取控制电路6,处理电路4用于执行数据处理,存储器存取控制电路6用于控制对处理电路4可存取的存储器地址空间的区域的存取。地址空间可以被映射到多个存储器设备上,这些设备包括随机存取存储器8(RAM,例如使用易失性存储器技术(例如,DRAM)实现的RAM)和非易失性存储器10(例如,闪存或上述其他类型的非易失性存储器)。即使在设备未通电时也被保留的持久数据和软件代码可以被存储在非易失性存储器10中。当设备通电时,引导加载程序代码可以控制将软件和由处理电路4处理的数据引导(复制)到RAM 8中,并且然后可以参考存储在RAM中的软件的副本来执行软件。尽管图1示出了控制对RAM 8和非易失性存储器10二者的存取的单个共享存储器存取控制器6,但是在其他示例中,可以为两种类型的存储器提供单独的存取控制单元。
存储器存取控制器6可以定义区域定义数据7,该区域定义数据7将RAM 8和非易失性存储器10的区域定义为安全区域或者较不安全区域。对那些被指定为较安全的区域的存储器存取(读取或写入)可能比对较不安全区域的存取施加更大的存取限制。例如,当在安全操作状态下操作时,可以仅允许处理电路4对存储器8、10的某些较安全区域进行存取。可以小心地控制处理电路4的安全和较不安全操作状态之间的转换。例如,处理电路4可以具有例如基于由英国剑桥的
Figure BDA0002271658320000091
有限公司提供的
Figure BDA0002271658320000092
架构对安全/较不安全边界进行管制的硬件架构。可以以不同的方式来定义标识存储器的区域的是安全的还是较不安全的区域定义数据,例如使用每个都与可变大小的区域相对应的条目以及指示该区域是较不安全还是较安全的属性,该可变大小的区域指定区域的起始和结束地址(使用两个单独的边界地址,或者使用单个边界地址和大小参数)。可选地,在其他实现方式中,区域定义数据7可以仅包括一个或多个边界地址,其中边界地址标记安全状态改变的点(例如,在仅具有两个安全状态的系统中,单个边界地址可以标记安全/非安全存储器之间的划分;或者在具有三个或更多个安全状态的系统中,可能存在两个或更多个边界地址)。
设备2还可以包括可以通过总线网络12与处理电路4通信的其他元件。例如,这些元件可以包括用于向用户显示信息的显示器14、用于接受用户输入的用户输入单元16(例如,按钮、键盘、触摸屏或其他形式的用户界面)、用于诸如通过通信协议(例如,
Figure BDA0002271658320000093
等)与外部设备执行有线或无线通信的通信接口18、以及用于感测与设备或其周围环境(例如,温度传感器、压力传感器、光传感器等)相关联的参数的一个或多个传感器20。应该理解,设备中提供的一组特定的电路元件可能取决于设备所预期的特定目的。并非设备2的所有实现方式都需要具有图1中所示的所有元件14、16、18、20。例如,在一些相对简单的物联网型设备中,可能不需要在设备的物理位置处与本地用户进行交互,因此可能不需要提供显示器14和/或用户输入模块16。相反,这种设备可以用作传感器,使用其传感器20来记录数据,处理感测到的数据,并且然后将这些结果经由通信接口18传递给外部设备。其他设备可能需要与用户进行交互,并且因此可能需要显示器14或者用户输入接口16,但是可能不一定需要传感器20。因此,设备的特定配置可能会有很大不同,并且可能包括其他图1中未示出的元件。
图2示意性地示出了一种用于将目标软件安装到设备2的非易失性存储器10中的方法。如图2的第1部分,非易失性存储器10可以被划分为一个或多个非安全区域30和一个或多个安全区域32,其由存储器存取控制单元6的区域定义数据来定义。类似地,RAM 8也可以被划分为安全区域34和非安全区域35。为简明起见,在图2中,该图简单地示出了RAM8和非易失性存储器10二者中的安全区域和非安全区域之间的单个边界,但是应该理解,也可以在RAM 8或非易失性存储器10内定义给定安全级别的多个不连续区域。
通常,设备将需要在其生命周期的某个时刻(例如,在制造处或者在后处理步骤中)将其软件安装到非易失性存储器的安全区域中。然而,在处理安全代码的安装方面可能存在挑战,该安全代码在引导(复制到RAM 8中以便由处理电路4执行)时被驻留在非易失性存储器的安全区域32内。通常,在当OEM完全存取设备的存储器映射时,OEM可以在生产中通过JTAG或一些其他方式来安装软件。然而,为了在设备上建立信任根,最初制造商之后的任何人都不能对生产设备进行完全存储器存取。这意味着,如果要在制造后将软件安装在安全区域32中,则可能需要创建并且使用专用工具来安装软件,这需要不同于使用非安全设备的过程。
使用图2中所示的方法可以避免该问题,该方法使得现有的生产非安全闪存工具能够将安全软件直接安装到非安全存储器中,并且一旦验证完成则改变该存储器区域的安全状态,从而消除在生产环境中需要任何用于刷新安全设备的额外工具。这可以减少数据处理设备的开发成本,这在物联网领域中可能尤其有用,其中每台设备的低成本可能使得开发用于安全软件安装的专用工具的开销可能不被认为是合理的。
图2示出了方法的一个示例,如下所示。如第1部分所示,设备2最初是在非易失性存储器10中的存储器空间相对空白的情况下而创建的,除了被安装在安全区域32中的引导加载程序代码BL1和任何持久数据(在该示例中,可能位于较不安全区域30中)。引导加载程序代码和持久数据的安装可能已经由OEM在工厂完成。引导加载程序代码BL1可以包括哈希值36,该哈希值36与作为安全安装程序38的代码/数据的函数而导出的值相对应,该安全安装程序38被信任以管理其他安全软件的安装。作为引导加载程序代码BL1的一部分,安全安装程序哈希值36(在制造阶段处由OEM)存储在非易失性存储器的安全区域32内。
在设备离开OEM之后,随后希望将目标软件的特定块安装到安全存储器中时,则如图2的第2部分所示,可以使用标准的现成的非安全闪存工具来将目标软件的映像40写入到非易失性存储器10的较不安全区域30中。安装目标映像40的地址可以是最终成为旨在包含目标软件的安全区域的相同地址。然而,在将目标映像写入非易失性存储器10时,这些地址在存储器存取控制器6的区域定义数据7中被定义为较不安全区域。
此外,将安全安装程序38安装到非易失性存储器10的较不安全区域30中。同样,为此可以使用标准的现成的非安全闪存工具。可以将安全安装程序写入除包含目标映像40的区域以外的任何地址,但是将临时安装程序放置在最终将放置非安全软件的区域中可能是有用的,因为这允许该区域的重用在目标软件40的安装完成之后。安全安装程序38应该是与由引导加载程序BL1维护的安全安装程序哈希36相匹配的软件。
此外,非安全闪存工具还将要安装的目标软件映像40的签名哈希写入到非易失性存储器10的非安全区域30。即,非易失性存储器被写有哈希值42,该哈希值42定义了将特定哈希函数应用于目标映像40的内容的预期结果。哈希值42和与目标软件相关联的任何其他参数(例如,定义目标软件的大小的大小参数)由证明软件的真实性的可信方来签名,以生成签名44(当生成要提供用于安装映像40的信息束时,该签名脱机进行)。签名44和软件映像40一起被提供给设备,并且可以被用于检查哈希42以及任何其他参数(例如,大小)的真实性。这些可以在目标软件映像40的验证期间使用,如下所述。
如第3部分所示,当引导设备时,设备(在引导加载程序BL1的控制下)检测到非安全存储器中的新映像,并且将安全安装程序38导入到RAM 8的安全区域34中。此外,签名哈希42、44被导入到安全RAM中。引导加载程序代码也可以被导入到RAM中,并且引导加载程序导出作为与安全安装程序38相关联的代码和数据的函数的哈希,并且检查所导出的哈希是否与存储在非易失性存储器的安全区域中的安全安装程序哈希36相匹配。如果预期哈希36与安全安装程序的实际所导出的哈希之间不匹配,则可以终止该过程以防止安装目标映像。
如果成功验证了安全安装程序38,则允许执行安全安装程序,并且然后安全安装程序使用目标软件哈希42和签名44来验证要安装的目标软件40。例如,安全安装程序38计算作为非易失性存储器的非安全区域30中的目标映像40的函数的哈希值,并且将所计算的哈希与预期哈希42进行比较以检测它们是否匹配。如果不匹配,则可以再次终止该过程。此外,安全安装程序38基于与证明软件的真实性的可信方相关联的一些信息来检查签名44是否可以被验证。例如,安全安装程序38可以获取与一个或多个可信实体相关联的一个或多个公钥,并且检查已经向目标软件40提供的签名44是否可以基于这些公钥中的任何一个来认证。例如,签名44可以对应于利用可信实体的私钥对一个或多个值(例如,哈希和大小参数)进行加密的结果,并且安全安装程序38可以检查利用可信实体的公钥对签名44进行解密是否与为安全软件所提供的哈希值42和大小参数相匹配。因此,验证可以包括验证要安装的软件40的内容和相关参数(例如,其大小参数),并且还验证提供软件的一方的身份。
如图2的步骤3和4所示,如果安全安装程序38和目标软件40的验证都成功,则调整安全/非安全边界,使得包含目标软件40的目标区域现在变为非易失性存储器的较安全区域32。例如,可以更新区域定义数据7中的一个或多个边界地址或者安全属性,以改变安装了目标软件40的存储器的目标区域中的地址的安全状态。大小参数可以指示要被指定为安全的区域的大小,并且可以基于大小参数来控制区域定义数据7中的改变(例如,可以将安全/非安全区域之间的边界移动与大小参数相对应的量)。因此,现在与目标软件40相关联的安全映像被驻留在非易失性存储器的安全区域内。
如图2的第4部分所示,可选地,然后可以再次加载和运行安全安装程序38,以在决定是接受新映像还是通过擦除新映像来拒绝新映像或者以其他方式阻止目标软件40的后续执行之前重复安全映像40的验证,但是现在新的安全边界在适当的位置。该更新后验证可以是可选的,并且在其他示例中,可以仅在更新区域定义数据之前来执行验证。可选地,其他方法可以省略边界前(pre-boundary)调整验证,并且仅在调整了边界之后来执行调整。然而,通过执行对安全映像的哈希的验证的任一方式,这可以检查仅允许将期望的软件安装到安全存储器中(和/或仅将某些可信方提供的软件安装到安全存储器中)。
如图2的第5部分所示,然后可以在适当的位置利用新的安全/非安全布局和新输入的安全映像40来引导设备,以使得能够执行与安全映像40相对应的软件。
如图3所示,在已经安装了先前的安全映像40之后,随后可以再次执行相同的方法来安装另外的安全模块48。同样,这可以以与图2中讨论的类似的方式进行。在图3中,如果在非易失性存储器中已经由安全安装程序38、哈希42或签名44占用的位置中提供了一些非安全应用程序或数据,则可以在步骤2之前临时擦除该数据,并且然后一旦安装完成,就在步骤5重新安装该数据(例如,通过再次下载该信息或从备份存储装置中恢复数据)。
在一些示例中,安全软件40可以与使能标志(enable flag)相关联,该使能标志用作该软件是否可以被执行的指示符。例如,在安全映像40被写入非易失性存储器时,该标志可以最初以第一状态(0或1)被写入,并且哈希42的验证可以取决于该指示符处于第一状态。在区域定义数据已经被更新以调整安全和非安全区域之间的边界并且所需的任何验证都已经完成时,与目标软件相关联的验证指示符随后可以被翻转以指示第二状态(例如,0和1的相反)。可以布置安全引导加载程序代码BL1,该代码可以在设备引导时首先加载,并且可以控制其他代码的后续引导,因此,在相应的使能标志仍处于第一状态的情况下,可以防止来自非易失性存储器的安全区域的任何软件被引导并且复制到RAM 8中。因此,在软件尚未被验证或者软件由于安装过程尚未完成而仍然在较不安全存储器中的情况下,则系统可以拒绝引导安装在RAM的安全区域中的映像。
因此,利用上述方法,主引导加载程序(例如,引导加载程序BL1)通过维持对CPU的控制直到加载附加软件来提供安全性的实施,从而在此之前仅允许添加特定软件(与哈希36相对应的安全安装程序38)。安全安装程序38使用非对称密码学来验证新软件40来自可信源,如果不是,则拒绝它。引导加载程序BL1、安全安装程序38或其他操作系统组件仅在引导过程期间在安全控制下使用设备上的内置硬件(例如,存取控制单元6)来调整存储器的安全区域的边界。引导加载程序或操作系统组件会在验证过程期间和修改安全区域参数期间禁止任何非安全或调试存取。可选地,可以执行两步验证过程,其中在执行安全区域的修改之前和之后都执行验证,可以用来确保在导入过程期间未修改映像。
图4示出了例示用于控制软件的安装的方法的流程图。在步骤100,非安全闪存工具(可能与用于将非安全软件安装到非易失性存储器10的非安全区域中的工具相同)将安全安装程序38、目标软件映像40和哈希42(由签名44进行签名)安装在非易失性存储器10的非安全区域中。在步骤102,安全安装程序38被引导到RAM 8中,并且引导加载程序BL1基于存储在非易失性存储器10的安全区域32中的哈希值36来验证安装程序28。即,引导加载程序可以将从安全安装程序38的代码和数据导出的函数与所存储的安全哈希值36进行比较,并且如果这些值不匹配,则确定验证不成功。在步骤104,引导加载程序确定安装程序38是否已经被成功验证,并且如果没有,则在步骤105,例如通过阻止该安全安装程序38的执行,目标软件的安装被拒绝。
如果安装程序被成功验证,则在步骤106,执行安装程序,并且安装程序38验证是否可以接受目标软件40进行安装。该验证基于哈希值42和签名44,并且将参考图5进行更详细的描述。在步骤108,安全安装程序38确定验证是否成功,并且如果否,则在步骤105再次拒绝目标软件的安装(例如,通过擦除安装了目标软件的区域或者通过阻止执行从该区域引导的代码)。
如果对目标软件40的验证成功,则在步骤110,更新区域定义数据7,使得安装了目标软件40的目标区域现在成为非易失性存储器10的较安全区域。再次如下面参考图5所讨论的,在步骤112,可以类似于步骤106执行第二验证步骤。在步骤114,安全安装程序38再次确定验证是否成功。如果验证成功,则在步骤116,可以接受来自步骤110的区域定义数据的改变,并且在步骤118,可以将与目标软件相关联的验证指示符从第一值切换到第二值。来自目标软件的代码执行可能仅限于验证指示符具有第二值的情况。验证指示符可以最初在步骤100安装软件时被设置为第一值,并且如果一方试图在验证指示符已经具有第二值的情况下安装代码,则在步骤106和112进行的验证可能不成功(因为在这种情况下,安装的代码将与预期哈希42不匹配,或者如果攻击者篡改了哈希42,因为在这种情况下,将不会基于可信方的公钥来验证哈希42的签名)。
如果在步骤114确定更新后验证不成功,则在步骤120反转在步骤110执行的区域定义数据的改变,并且在步骤122擦除来自目标区域的数据,否则阻止来自该目标区域的代码执行(例如,因为验证指示符尚未从第一值改变),然后在步骤105再次拒绝目标软件的安装。
图4示出了其中存在两个验证步骤(一个在步骤106并且另一个在步骤112)的示例。在其他示例中,在区域定义数据被更新之后,可能没有验证目标软件的第二步骤,并且在这种情况下,该方法可以从步骤110直接进行到步骤116,省去了步骤112、114、120、122。可选地,可以省略步骤106和步骤108,并且在这种情况下,可以在步骤112处仅执行验证,并且在这种情况下,该方法可以从步骤104直接进行到步骤110。
图5是示出在步骤106或112处的验证的流程图。在步骤150,安全安装程序检查作为目标软件映像40的函数而导出的值是否与连同目标映像40一起被安装在非易失性存储器的非安全部分中的哈希值42相匹配。此外,在步骤152处,安全安装程序基于定义(被允许证明哈希的真实性的)可信实体的信息检查是否可以验证与目标软件相关联的签名44,该签名44可以覆盖哈希42和大小参数(以及可选地其他参数)。
如果步骤150或152中的任何一个确定哈希或签名不满足期望的要求,则在步骤154,确定该验证不成功。如果哈希匹配并且签名可以被成功地验证,则在步骤156,验证成功。因此,这些检查使得安装程序能够检查如由大小参数表示的对安全/非安全边界的改变与签名哈希的一方所期望的一样,并且如果可以对其进行检查以及签名方的身份(例如,基于来自非对称密码学方案的公钥信息)和哈希匹配,则验证成功并且可以允许安装继续进行。由签名覆盖的大小参数可以是对在步骤110要更新的区域定义数据进行控制的参数。
将哈希42用于目标软件的验证不是必需的。在其他示例中,签名44可以直接从目标软件映像40而不是映像的哈希中导出,并且目标软件的验证可以仅包括基于签名者的公钥来验证签名是否真实。在这种情况下,可以省略图5的步骤150,并且在步骤152中,签名可以基于整个目标映像而不是哈希。然而,使用哈希来检查签名可以使得签名验证更加有效,因为这意味着在执行验证时需要与签名进行比较的数据更少。
在本申请中,词语“被配置为……”被用来意指装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”是指硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可以被编程以执行功能。“被配置为”并不意味需要以任何方式来改变装置元件以便提供所定义的操作。
尽管在本文中参考附图详细地描述了本发明的示例性实施例,但是应当理解,本发明并不限于这些精确的实施例,并且本领域技术人员在不脱离由所附权利要求书所限定的本发明的范围和精神的情况下,可以在其中进行各种改变和修改。

Claims (19)

1.一种用于设备的软件安装方法,所述设备包括非易失性存储器和存取控制电路,所述存取控制电路用于基于区域定义数据来控制对所述非易失性存储器的存取,所述区域定义数据定义所述非易失性存储器的给定区域是较不安全区域还是较安全区域,其中,所述存取控制电路被配置为对较安全区域的存取比对较不安全区域的存取施加更大的限制;所述方法包括:
在所述非易失性存储器的由所述区域定义数据定义为较不安全区域的目标区域中安装目标软件;
验证所述目标软件;以及
至少当对所述目标软件的验证成功时,并且在安装所述目标软件之后,更新所述区域定义数据以将所述目标区域从较不安全区域改变为较安全区域。
2.根据前述权利要求所述的方法,其中,在安装程序软件的控制下验证所述目标软件,其中,所述安装程序软件和用于验证所述安装程序软件的安装程序软件验证信息中的至少一者被存储在所述非易失性存储器的较安全区域中。
3.根据权利要求2所述的方法,其中,所述安装程序软件被安装在所述非易失性存储器的较不安全区域中,并且
对所述区域定义数据的更新取决于所述安装程序软件通过安装在较安全区域中的引导加载程序软件基于存储在较安全区域中的哈希值而被验证。
4.根据权利要求3所述的方法,其中,包括以下各项中的至少一项:
所述安装程序软件是哈希值被存储在所述较安全区域中以能够由所述引导加载程序软件直接验证的唯一软件;以及
由所述引导加载程序软件基于所述哈希值验证的所述安装程序软件是允许对所述区域定义数据的更新进行触发的唯一软件,所述区域定义数据与其中安装了所述目标软件的所述目标区域相关联。
5.根据前述权利要求中任一项所述的方法,其中,所述目标软件是使用非对称密码学来验证的。
6.根据前述权利要求中任一项所述的方法,其中,验证所述目标软件包括:验证与所述目标软件相关联的密码签名。
7.根据前述权利要求中任一项所述的方法,其中,当对所述目标软件的验证成功时,基于指示所述目标软件的大小的大小参数来更新所述区域定义数据。
8.根据权利要求7所述的方法,其中,基于与所述目标软件相关联的密码签名来验证所述大小参数。
9.根据前述权利要求中任一项所述的方法,其中,在更新所述区域定义数据之前验证所述目标软件。
10.根据权利要求1至8中任一项所述的方法,其中,在更新所述区域定义数据之后验证所述目标软件。
11.根据权利要求1至8中任一项所述的方法,其中,在更新所述区域定义数据之前和之后都验证所述目标软件。
12.根据权利要求10和11中任一项所述的方法,其中,当在更新所述区域定义数据之后确定对所述目标软件的验证不成功时,所述方法包括:
将所述目标区域从较安全区域改变为较不安全区域;以及
阻止从所述目标区域执行软件。
13.根据前述权利要求中任一项所述的方法,其中:
当所述目标软件被安装在所述较不安全区域中时,所述目标软件与被设置为第一值的验证指示符相关联;
当对所述目标软件的验证成功并且所述区域定义数据被更新以将所述目标区域定义为较安全区域时,所述验证指示符被更新为第二值;以及
当所述验证指示符具有所述第一值时,禁止所述目标软件的执行。
14.根据前述权利要求中任一项所述的方法,其中,在以下至少一项期间禁止对所述至少一个较不安全区域的存取:
验证过程,用于验证所述目标软件;以及
区域更新过程,用于更新所述区域定义数据以将所述目标区域从较不安全区域改变为较安全区域。
15.根据前述权利要求中任一项所述的方法,其中,在以下至少一项期间,禁止对所述非易失性存储器的调试存取:
验证过程,用于验证所述目标软件;以及区域更新过程,用于更新所述区域定义数据以将所述目标区域从较不安全区域改变为较安全区域。
16.根据前述权利要求中任一项所述的方法,其中,所述非易失性存储器包括闪存。
17.至少一种计算机程序,用于控制设备执行根据前述权利要求中任一项所述的方法。
18.至少一种存储介质,用于存储根据权利要求17所述的至少一种计算机程序。
19.一种装置,包括:
处理电路,用于执行数据处理;以及
数据存储装置,存储至少一个计算机程序,所述至少一个计算机程序用于控制所述处理电路执行根据权利要求1至16中任一项所述的方法。
CN201911107213.3A 2018-11-15 2019-11-13 软件安装方法 Pending CN111190611A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1818617.1 2018-11-15
GB1818617.1A GB2579034B (en) 2018-11-15 2018-11-15 Software installation method

Publications (1)

Publication Number Publication Date
CN111190611A true CN111190611A (zh) 2020-05-22

Family

ID=64740134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911107213.3A Pending CN111190611A (zh) 2018-11-15 2019-11-13 软件安装方法

Country Status (4)

Country Link
US (1) US11429364B2 (zh)
EP (1) EP3654223B1 (zh)
CN (1) CN111190611A (zh)
GB (1) GB2579034B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256631B1 (en) * 2020-01-17 2022-02-22 Ralph Crittenden Moore Enhanced security via dynamic regions for memory protection units (MPUs)
EP3933631B1 (en) * 2020-06-30 2023-04-12 NXP USA, Inc. Fast and versatile multicore soc secure boot method
EP3933630A1 (en) * 2020-06-30 2022-01-05 Nxp B.V. Method and apparatus to adjust system security policies based on system state
US20230073884A1 (en) * 2021-09-09 2023-03-09 GM Global Technology Operations LLC Method and system to perform a secure boot procedure using a multi-stage security verification in a microcontroller of a vehicle
US20230289448A1 (en) * 2022-03-10 2023-09-14 Denso Corporation Securing software package composition information
GB2624157A (en) * 2022-11-03 2024-05-15 Ocado Innovation Ltd Communications system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268092A1 (en) * 2004-04-08 2005-12-01 Texas Instruments Incorporated Methods, apparatus and systems with loadable kernel architecture for processors
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法
CN101978377A (zh) * 2008-02-07 2011-02-16 阿纳洛格装置公司 用于控制受保护操作模式期间的系统访问的方法和装置
US20140075567A1 (en) * 2009-01-28 2014-03-13 Headwater Partners I Llc Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device
CN106133739A (zh) * 2014-03-25 2016-11-16 欧贝特科技公司 数据到安全元件的非易失性存储器中的加载的安全保护
EP3128460A1 (en) * 2015-08-07 2017-02-08 Samsung Electronics Co., Ltd. Electronic device and method for storing security information thereof
CN107223252A (zh) * 2014-12-30 2017-09-29 金雅拓股份有限公司 安全元件
CN107368713A (zh) * 2017-07-28 2017-11-21 北京深思数盾科技股份有限公司 保护软件的方法和安全组件

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004046934A2 (en) * 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
AU2003304217A1 (en) * 2003-06-13 2005-01-04 Orbid Limited Method and system for performing a transaction and for performing a verification of legitimate use of digital data
US20060005015A1 (en) * 2004-06-30 2006-01-05 David Durham System and method for secure inter-platform and intra-platform communications
CN101513008B (zh) * 2006-07-31 2012-09-19 意大利电信股份公司 在电信终端上实现安全性的系统
US7783859B2 (en) * 2007-07-12 2010-08-24 Qnx Software Systems Gmbh & Co. Kg Processing system implementing variable page size memory organization
WO2009111411A2 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code in a device based on entitlements granted to a carrier
US8516260B2 (en) * 2008-10-27 2013-08-20 Advanced Micro Devices, Inc. Method, apparatus, and device for providing security among a calling function and a target function
US8892862B2 (en) * 2009-07-01 2014-11-18 Panasonic Corporation Secure boot method for executing a software component including updating a current integrity measurement based on whether the software component is enabled
US8819827B1 (en) * 2010-11-10 2014-08-26 Open Invention Network, Llc Method and apparatus of performing data executable integrity verification
US9276752B2 (en) * 2011-02-11 2016-03-01 Siemens Healthcare Diagnostics Inc. System and method for secure software update
US9158924B2 (en) * 2011-05-25 2015-10-13 Panasonic Intellectual Property Management Co., Ltd. Information processing apparatus and information processing method
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
CN103282911A (zh) * 2011-11-04 2013-09-04 Sk普兰尼特有限公司 普通域与安全域之间与信任区交互工作的方法和信任应用下载的管理方法、使用该方法的管理服务器、装置和系统
JP6132605B2 (ja) * 2012-04-26 2017-05-24 キヤノン株式会社 情報処理装置、及びその制御方法
KR102013940B1 (ko) * 2012-12-24 2019-10-21 삼성전자주식회사 어플리케이션의 보안성 관리 방법 및 그 전자 장치
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10366224B2 (en) * 2016-06-22 2019-07-30 Dell Products, Lp System and method for securing secure memory allocations in an information handling system
DE102016009232A1 (de) * 2016-07-28 2018-02-01 Giesecke+Devrient Mobile Security Gmbh Integriertes Teilnehmeridentitätsmodul mit Core-OS und Anwendungs-OS
KR102416501B1 (ko) * 2017-09-20 2022-07-05 삼성전자주식회사 전자 장치 및 그의 제어 방법
US20190303541A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Auditing smart contracts configured to manage and document software audits
FR3083343B1 (fr) * 2018-06-29 2023-05-26 Ingenico Group Procede de determination d'une validite d'un code applicatif, dispositif et produit programme d'ordinateur correspondants.

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268092A1 (en) * 2004-04-08 2005-12-01 Texas Instruments Incorporated Methods, apparatus and systems with loadable kernel architecture for processors
CN101978377A (zh) * 2008-02-07 2011-02-16 阿纳洛格装置公司 用于控制受保护操作模式期间的系统访问的方法和装置
US20140075567A1 (en) * 2009-01-28 2014-03-13 Headwater Partners I Llc Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法
CN106133739A (zh) * 2014-03-25 2016-11-16 欧贝特科技公司 数据到安全元件的非易失性存储器中的加载的安全保护
CN107223252A (zh) * 2014-12-30 2017-09-29 金雅拓股份有限公司 安全元件
EP3128460A1 (en) * 2015-08-07 2017-02-08 Samsung Electronics Co., Ltd. Electronic device and method for storing security information thereof
US20170038989A1 (en) * 2015-08-07 2017-02-09 Samsung Electronics Co., Ltd. Electronic device and method for storing security information thereof
CN107368713A (zh) * 2017-07-28 2017-11-21 北京深思数盾科技股份有限公司 保护软件的方法和安全组件

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SARAH M S 等: "Secure Multi Authority Attribute Based Encryption in Cloud Storage", 《INTERNATIONAL RESEARCH JOURNAL OF ENGINEERING AND TECHNOLOGY》, 30 April 2016 (2016-04-30), pages 1275 - 1278 *
岳虹;王蕾;邓宇;刘磊;: "一种基于软硬件协同的程序安全关键数据动态保护机制", 计算机工程与科学, no. 02, 15 February 2016 (2016-02-15), pages 59 - 64 *

Also Published As

Publication number Publication date
GB2579034A (en) 2020-06-10
EP3654223A1 (en) 2020-05-20
EP3654223B1 (en) 2022-06-01
US11429364B2 (en) 2022-08-30
US20200159512A1 (en) 2020-05-21
GB201818617D0 (en) 2019-01-02
GB2579034B (en) 2021-05-05

Similar Documents

Publication Publication Date Title
US11429364B2 (en) Software installation method
JP6595822B2 (ja) 情報処理装置及びその制御方法
KR100746012B1 (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
EP0849657B1 (en) Secure data processing method and system
EP1560098B1 (en) Method and system ensuring installation or execution of a software update only on a specific device or class of devices
US7934049B2 (en) Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US9819661B2 (en) Method of authorizing an operation to be performed on a targeted computing device
CA2922157C (en) Mobile communication device and method of operating thereof
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
CN107045611B (zh) 安全启动方法及装置
EP0816967B1 (en) Secure file system
US20110246778A1 (en) Providing security mechanisms for virtual machine images
US20140359268A1 (en) Methods of Securely Changing the Root Key of a Chip, and Related Electronic Devices and Chips
KR20090005390A (ko) 소프트웨어 버전 설치의 권한
CN111066016A (zh) 应用证书
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
CN112685338A (zh) 包括安全可修补rom的半导体装置及其修补方法
US11397815B2 (en) Secure data protection
WO2019059148A1 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体
KR20230137422A (ko) 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅
US20230106491A1 (en) Security dominion of computing device
CN117813795A (zh) 设备身份密钥
JP2024501395A (ja) 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体
JP2023026017A (ja) 起動検証プログラム、情報処理装置および起動検証方法

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