CN107924440A - 安全计算环境 - Google Patents

安全计算环境 Download PDF

Info

Publication number
CN107924440A
CN107924440A CN201680042707.6A CN201680042707A CN107924440A CN 107924440 A CN107924440 A CN 107924440A CN 201680042707 A CN201680042707 A CN 201680042707A CN 107924440 A CN107924440 A CN 107924440A
Authority
CN
China
Prior art keywords
container
computing environment
manager
data
memory
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.)
Granted
Application number
CN201680042707.6A
Other languages
English (en)
Other versions
CN107924440B (zh
Inventor
A·库马
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.)
Cryptography Research Inc
Original Assignee
Cryptography Research 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 Cryptography Research Inc filed Critical Cryptography Research Inc
Priority to CN202210852672.XA priority Critical patent/CN115062291A/zh
Publication of CN107924440A publication Critical patent/CN107924440A/zh
Application granted granted Critical
Publication of CN107924440B publication Critical patent/CN107924440B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

可以接收对应于可执行代码的容器。响应于接收容器,驻留在计算环境的存储器中的容器管理器可以被执行以验证容器。容器管理器可以由计算环境的引导加载器来验证。容器访问计算环境的资源的许可可以在容器管理器对容器的验证之后确定。基于针对计算环境的资源的容器的许可,对计算环境的一个或多个资源的访问可以通过将对一个或多个资源的控制从容器管理器转移到容器来提供。

Description

安全计算环境
附图说明
根据以下给出的具体实施方式以及本公开的各种实现的附图,将更全面地理解本公开。
图1图示了根据本公开的一些实施例的具有引导加载器、容器管理器、以及一个或多个容器的示例安全计算环境。
图2图示了根据一些实施例的安全计算环境的示例架构。
图3是根据本公开的一些实施例的提供安全计算环境的示例方法的流程图。
图4是根据一些实施例的用于执行安全计算环境的引导加载器的示例方法的流程图。
图5A是根据本公开的一些实施例的用于提供安全计算环境的资源的分时共享的示例方法的流程图。
图5B是根据本公开的一些实施例的用于执行安全计算环境的容器管理器的示例方法的流程图。
图6是根据本公开的一些实施例的更新容器管理器的示例方法的流程图。
图7图示了根据一些实施例的与一个或多个容器和存储器位置交互的示例容器管理器。
图8图示了根据本公开的一些实施例的用于提供容器之间的交互的示例方法。
图9图示了根据一些实施例的与存储器交互的容器的示例。
图10图示了根据一些实施例的容器与安全计算环境外部的部件交互的示例性方法。
图11图示了本公开的一些实施例可以在其中操作的计算机系统的实施例的框图。
具体实施方式
本公开的各方面涉及安全计算环境。系统或设备可以包括引导加载器、容器管理器以及可以用于提供安全计算环境的一个或多个容器。引导加载器可以是基于硬件的状态机,其可以响应于系统或设备的初始化而被启动或执行。在引导加载器的执行期间,存储在诸如系统的只读存储器(ROM)的存储器中的、或经由系统或设备的互连(例如,如网列表表示的)被存储、或存储在闪存或系统或设备上的其他存储装置中的容器管理器可以在引导加载器已经执行用于安全计算环境的初始化过程之后并且已经验证了容器管理器之后被执行。
引导加载器可以验证容器管理器。验证可以包括散列结果并将结果与预期结果进行比较。例如,散列可以对应于诸如SHA-2或SHA-3操作的安全散列算法(SHA)操作。备选地,验证可以包括使用公钥密码的引导加载器。例如,验证可以基于椭圆曲线密码数字签名(ECDS)操作。在容器管理器已被验证之后,引导加载器可以允许容器管理器控制系统或设备的安全计算环境的中央处理单元(CPU)或其他这样的处理设备或硬件。容器管理器可以是具有较高或最高权限的系统或设备的软件,其为随后接收到的、与不安全用户代码相对应的容器提供某些功能。因此,引导加载器可以验证容器管理器,并在容器管理器被验证之后授权容器管理器控制系统或设备的CPU。
容器管理器可以提供用于容器的执行的框架。每个容器可对应于可执行代码或指令(例如,在系统或设备的制造之后接收到的)以及访问系统或设备的某些功能或资源的许可。容器管理器可以连续地接收和执行容器,使得系统或设备的安全计算环境的资源被容器共享或分时共享。
由容器管理器提供的框架可以进一步促进容器之间的通信或交互。例如,容器管理器可以执行第一容器,并从第一容器接收要被存储在进程间通信(IPC)寄存器或存储器中的数据。第一容器还可以向容器管理器指定被授权接收数据的后续容器的标识。容器管理器随后可以存储从第一容器接收到的数据、接收容器的标识(例如,数据旨在被接收到的后续容器的标识)以及在IPC寄存器或存储器中的数据的发送方的标识(例如第一容器)。随后的容器可以由容器管理器执行,并且当容器管理器执行第二容器时,容器管理器可以将来自在第一容器的、存储在IPC寄存器的数据提供给第二容器,使得该数据可以在第二容器的执行期间被使用。如果第二容器的标识不同于接收容器的标识,则容器管理器可以限制对IPC寄存器或存储器的访问。容器管理器可以在IPC本身的寄存器或存储器中存储发送方容器标识,使得发送方容器可以不提供错误的标识。
容器管理器可以进一步向容器提供用于与安全计算环境外的部件或实体进行通信的功能。例如,系统可以包括高级操作系统(HLOS)寄存器或存储器,高级操作系统(HLOS)寄存器或存储器可用于提供来自容器的数据请求的指示,并且从安全计算环境的外部的外部实体接收针对容器的对应数据。例如,容器可以向容器管理器发送数据以用于在HLOS寄存器处存储,该数据指示对特定类型的数据的请求。外部软件应用或部件可以访问HLOS寄存器并且可以标识HLOS寄存器当前指示针对特定类型的数据的请求。作为响应,外部软件应用或部件可以为HLOS寄存器提供所请求的数据,并且容器管理器可以允许容器取回从外部软件应用或部件接收到的数据,该数据当前存储在HLOS寄存器或存储器中。
此外,安全计算环境可以允许容器验证容器管理器。例如,引导加载器可以在引导加载器被执行时提供容器管理器的版本号或其他这样的标识,并且可以将版本号存储在特定的寄存器或存储器位置中。由容器管理器执行的容器可以包括验证容器管理器的版本号的指令。例如,容器可以被提供对特定寄存器或存储器位置中的版本号的访问,并且可以基于容器管理器的版本号而被执行。例如,如果容器管理器的版本号与来自容器的指令的容器管理器的授权版本号相匹配,则容器可以被执行。然而,如果容器管理器的版本号与来自容器的指令的容器管理器的授权版本号不匹配,则容器可以不进一步实行或执行其指令的操作。
因此,本公开的各方面可以提供安全计算环境,其中系统或设备的引导加载器可以验证容器管理器,该容器管理器可以进一步提供用于以容器的形式执行用户代码的框架。此外,容器可以进一步验证容器管理器,使得可以在安全计算环境中执行容器的执行。
图1图示了示例安全计算环境100,示例安全计算环境100具有引导加载器110、在只读存储器120中存储的容器管理器121、以及一个或多个容器130。通常,安全计算环境100可以对应于为一个或多个容器130提供安全计算环境的系统或设备的一部分。
如图1所示,安全计算环境100可以包括引导加载器110,引导加载器110与被存储在设备的只读存储器(ROM)120的容器管理器121交互,该设备包括安全计算环境100。引导加载器110可以是基于硬件的状态机,其响应于安全计算环境100或包括安全计算环境100的设备的初始化(即,上电)而被执行。此外,引导加载器110可执行安全计算环境100的一系列上电自检(例如,在上电或启动之后立即执行的程序)。由引导加载器110执行的自检可包括安全计算环境100的硬件部件的验证或性能测试。例如,自检可以包括作为安全计算环境100的一部分的CPU或处理设备的测试。引导加载器110可以进一步执行安全计算环境100的ROM 120的内容的完整性检查。例如,引导加载器110可以通过取回容器管理器121的内容并计算容器管理器121的内容的完整性检查值来执行容器管理器121的验证或完整性检查。所计算的完整性检查值可以与另一存储的完整性检查值进行比较,以确定容器管理器121的真实性或验证。完整性检查值可以对应于散列值,该散列值基于被用于将任意大小的数字数据(例如,容器管理器121的内容)映射到固定大小的数字数据(例如,所计算的完整性检查值)的散列函数。结合图3来描述关于引导加载器的执行的进一步细节。
在自检成功完成后,引导加载器110可以启动或执行被存储在ROM 120中的容器管理器121。例如,引导加载器110可以在验证CPU和ROM 120或安全计算环境100的其他存储器之后启动容器管理器121。然后可以从引导加载器110将对安全计算环境100的CPU或其他硬件资源的控制提供给容器管理器121。在一些实施例中,容器管理器121可以对应于可信嵌入式轻量级软件,该可信嵌入式轻量级软件将功能提供给安全计算环境的硬件资源和软件资源。例如,容器管理器121可以提供定义诸如系统调用的功能的应用编程接口(API)以访问安全计算环境100的软件资源或硬件资源。容器管理器121还可以接收与不可信用户代码相对应的一个或多个容器130,该不可信用户代码是从安全计算环境100外部接收的。容器管理器121可以验证接收到的容器130访问安全计算环境100的资源的许可,验证接收到的容器130的真实性,并且提供用于容器130之间的通信以及容器130与安全计算环境100外部的外部实体或部件之间的通信的框架。结合图5A-10公开了关于容器管理器121的进一步细节。
容器管理器121可以响应于接收容器130中的一个或者响应于容器130中的一个执行系统调用以访问安全计算环境100的资源而被执行。在对接收到的容器的验证之后,容器管理器121可以将安全计算环境100的CPU或处理设备的控制提供给所接收的容器。一个或多个容器130中的每一个还可以对应于不可信用户代码,该不可信用户代码提供用于访问安全计算环境100的资源的指令和/或数据。如在关于图5A的附加细节中所描述的,容器130可以一系列地被接收,使得安全计算环境100的资源在容器130之间分时共享。
图2图示了安全计算环境的示例架构200。通常,架构200可以包括对应于图1的引导加载器110的引导加载器210,对应于图1的容器管理器121的容器管理器250,以及对应于图1的一个或多个容器130的容器240。
如图2所示,架构200可以包括控制CPU 220或其他这样的处理设备的引导加载器210、被存储在ROM或其他这样的存储器中的容器管理器250、以及存储在静态随机存取存储器(SRAM)或其他这样的存储器中的容器240。存储器总线230可以将容器240和容器管理器250与架构200的引导加载器210和其他资源232A-H耦合。
架构200可以包括对架构200的资源232A-H的实施控制或访问的资源实施核260。这种资源可以包括但不限于:一次性可编程(OTP)存储器写入或烧录、OTP读取、特征读取、特征写入、密码密钥的读取、密码密钥的更新、通用输入/输出(GPIO)读取、GPIO写入、经由CPU 220或在CPU 220上执行代码或指令的能力、对SRAM的可执行区域的访问、对任意这种存储器的特定部分的读取访问、对这种存储器的特定部分的写入访问等。访问可以是细粒度的。例如,资源实施核可以允许对OTP的一个字节进行写入访问,但是不允许对下一个字节进行写入访问。其他资源可以包括访问在ROM中存储的核251的功能。这样的核251可对应于椭圆曲线密码(ECC)密钥生成、ECC签名验证、ECC签名生成、密码密钥交换、RSA密钥生成、RSA加密或解密、高级加密标准(AES)加密或解密、SHA-2或SHA-3功能等。在一些实施例中,资源实施核260可以在每个容器240的执行之前由容器管理器250编程。例如,容器240可以包括对特征或资源232A-H的许可的标识,并且容器管理器250可以基于要执行的容器240的许可来对资源实施核260的寄存器或存储器进行编程。因此,资源实施核260可以针对已经由容器管理器250验证的容器240,经由安全总线231实施对资源232A-H进行访问。在一些实施例中,资源232A-H中的一个或多个可以被耦合到包括架构200的设备的外部部件。例如,资源232B可以耦合到安全计算环境外部的另一片上系统(SoC)、OTP存储器、随机数发生器部件、或者其它这样的部件。
图3是提供安全计算环境的示例方法300的流程图。通常,方法300可以通过处理逻辑来执行,该处理逻辑可以包括硬件(例如处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法300对应于图1或图2的引导加载器110或210、图1或2的容器管理器121或250、以及图1或2的容器130或240之间的执行流程。
如图3所示,方法300可以开始于:处理逻辑响应于包括安全计算环境的系统或设备的初始化来执行安全计算环境的验证(框310)。例如,引导加载器可以执行验证硬件资源和容器管理器的安全计算环境的自检。在安全计算环境的验证之后,处理逻辑可以进一步将对CPU的访问提供给容器管理器(框320)。例如,可以将CPU的控制从引导加载器转移到容器管理器,并且可以启动或执行容器管理器。处理逻辑可以进一步接收容器(框330)。例如,可以接收可执行代码。处理逻辑可以随后响应于接收到容器来执行容器管理器(框340)。例如,容器管理器可以在每次接收到容器时执行。因此,在一些实施例中,容器可以被一系列地接收,使得容器分时共享安全计算环境的资源。容器管理器可以在每次接收到容器的其中一个时分别执行。因此,如果接收到第一个容器并且接收到后续的容器,则响应于接收第一个容器来第一次执行容器管理器,并且可以响应接收后续的容器第二次执行容器管理器。这样,容器管理器可以基于容器的接收而被按需执行。在一些实施例中,容器管理器可以在接收到的容器发起系统调用以访问安全计算环境的资源之后执行。处理逻辑可以基于容器管理器来验证容器(框350)。响应容器管理器对容器的验证,处理逻辑可以进一步执行容器(框360)。例如,可以提供对CPU的控制或访问,使得容器的指令被执行。因此,可以从容器管理器向容器提供对CPU的访问或控制。
图4是用于执行安全计算环境的引导加载器的示例方法400的流程图。通常,方法400可以通过处理逻辑来执行,该处理逻辑可以包括硬件(例如处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法400对应于图1或2的引导加载器110或210的执行流程。
如图4所示,方法400可以开始于处理逻辑检测安全计算环境的初始化(框410)。例如,包括安全计算环境的设备或系统可以在复位之后上电或启动。处理逻辑可以随后执行安全计算环境的自检(框420)。例如,基于硬件的状态机可以执行安全计算环境的一个或多个部件的一系列步骤或测试。这样的部件的示例包括但不限于安全计算环境的CPU或存储器。处理逻辑可以进一步取回容器管理器的内容和存储的完整性检查值(框430)。例如,可以从安全计算环境的ROM中取回容器管理器的内容,并且可以从安全计算环境内的相同ROM或另一存储器位置取回存储的完整性检查值。处理逻辑可以随后基于容器管理器的内容来计算容器管理器完整性检查值(框440)。例如,可以对容器管理器的内容或内容的一部分执行散列函数,以确定容器管理器完整性检查值。
处理逻辑可随后将所存储的完整性检查值与容器管理器完整性检查值进行比较(框450)。此外,处理逻辑可以基于完整性检查值的比较,为容器管理器提供对安全计算环境的CPU或其他这种处理设备或硬件资源的访问(块460)。例如,如果容器管理器完整性检查值与存储的完整性检查值相匹配,则可以认为容器管理器被验证或认证,并且可以将CPU的访问或控制从引导加载器提供给容器管理器。然而,如果容器管理器完整性检查值与存储的完整性检查值不匹配,则容器管理器可以被认为是未经验证的或未经授权的,并且CPU的访问或控制可以不从引导加载器提供给容器管理器。
如此,引导加载器可以执行安全计算环境的资源的自检以及容器管理器的验证。在容器管理器成功的自检和成功验证之后,对安全计算环境的CPU或处理设备的控制或访问可以被提供给容器管理器。在一些实施例中,针对容器管理器提供对CPU或处理设备的控制或访问可对应于针对容器管理器的操作使用CPU或处理设备。
图5A是提供安全计算环境的资源的分时共享的示例方法500的流程图。通常,方法500可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法500可以由图1或图2的容器管理器121或250执行。
如图5A所示,方法500可以开始于:处理逻辑接收第一容器(框501)。例如,容器管理器可以在容器管理器的初始化或执行之后接收容器。在一些实施例中,容器管理器可以在已经接收到用于安全计算环境的资源的访问的系统调用之后被执行。处理逻辑还可以向第一容器提供对安全计算环境的资源的访问(框502)。例如,可以从容器管理器向第一个容器提供对CPU的访问。针对容器提供对CPU或处理设备的控制或访问可对应于针对容器的操作或指令使用CPU或处理设备。处理逻辑可以随后执行第一容器(框503)。例如,第一容器的指令可以由安全计算环境的CPU执行。关于容器的执行的进一步的细节参照图5B进行描述。
处理逻辑可以在第一容器的执行的完成之后随后接收第二容器(框504)。例如,第二容器可以在第一容器之后由容器管理器接收。处理逻辑然后可以向第二容器提供对安全计算环境的资源的访问(框505),并且可以执行第二容器(框506)。
这样,安全计算环境的资源可以在一系列容器之间进行分时共享。例如,可以在第一时间向第一容器提供资源的一部分,并且可以在第一时间之后的第二时间向后续的第二容器提供资源的该一部分或另一部分。
图5B是用于执行安全计算环境的容器管理器的示例方法509的流程图。通常,方法509可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法509可以由图1或图2的容器管理器121或250执行。
如图5B所示,方法509可以开始于:处理逻辑初始化容器管理器(框510)。例如,容器管理器可以由引导加载器启动。容器管理器的启动可以执行容器管理器的初始设置或初始化例程。处理逻辑还可以接收第一容器(框520)。此外,处理逻辑可以响应于接收到第一容器通过向容器管理器提供对CPU的控制或访问来来执行容器管理器(框530)。处理逻辑可以随后验证第一容器(框540)。例如,容器管理器可以验证第一容器的签名。例如,容器管理器可以访问公钥,并且验证由对应的私钥(例如,公私密钥对)创建的第一容器的签名。例如,容器管理器可以访问对称密钥,并且可以使用散列消息认证码(HMAC)操作来验证由对应密钥创建的第一容器的签名。例如,容器管理器可以无条件地考虑将被验证的第一容器。在一些实施例中,容器管理器可以进一步验证容器的其他属性,诸如容器的格式、容器的版本等。在一些实施例中,容器的验证可以进一步包括容器访问安全计算环境的资源的许可的确定。在容器的验证之后,资源实施核访问的一个或多个寄存器可以被更新,以反映与容器访问安全计算环境的资源相关联的许可。在一些实施例中,容器管理器可以在容器执行时动态地修改资源实施核中的寄存器。这种动态修改可以动态改变授予容器的许可。例如,容器管理器可以为容器提供应用编程接口(API),用于促进寄存器的更新。处理逻辑可以随后响应于第一容器的验证,通过向第一容器提供对CPU的控制或访问来来执行第一容器(框550)。例如,如果容器满足特定的密码特性(例如,密码签名是有效的),则可以由CPU执行第一容器的指令。处理逻辑可以进一步检测第一容器的执行的完成(块560)。随后,处理逻辑可以向容器管理器提供对CPU的控制(框570)。例如,对CPU的控制或访问可以从容器返回容器管理器。处理逻辑还可以将第一容器的状态信息存储到存储器中(框580)。例如,第一容器可以在IPC存储器或寄存器中存储一些数据,以供后续容器使用。例如,第一容器可以允许后续容器以归属于第一容器的一些许可进行操作。例如,容器管理器可以跟踪到目前为止运行的容器的数目,并且可以向容器或HLOS存储器或寄存器提供这些信息。
容器管理器可以使用容器的标识来决定容器可以访问哪些资源。例如,容器的标识可以是其散列(例如,SHA-2或SHA-3)。例如,标识可以是容器的公共密钥密码签名(例如ECSDA),或者是与私钥对应的、用于生成签名的公钥。例如,标识可以是容器的HMAC。可选地,标识还可以包括容器的版本号或者修订版本号,容器的版本号或者修订版本号标识容器的可执行代码的修订历史。可选地,标识可以是各种字段组合的散列(例如,标识是公钥的SHA-2操作的结果和容器的修订号)。
这样,容器管理器可以响应于容器和任意其他后续容器的接收而被执行。响应于容器管理器对容器的验证,可以向容器提供对安全计算环境的CPU或其他硬件资源的控制或访问。在容器的执行的完成之后,可以向容器管理器返回对CPU的控制或访问,并且可以将执行的容器的状态信息存储在安全计算环境的存储器中。
图6是用于更新容器管理器的示例方法600的流程图。通常,方法600可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法600可以由图1或图2的容器管理器121或250或安全计算环境的另一部件执行。
如图6所示,方法600可以开始于:处理逻辑接收更新容器管理器的请求(框610)。例如,用于更新容器管理器的请求可以标识容器管理器的特定指令或操作以及指令或操作的内容的存储器地址位置。处理逻辑可以进一步取回与容器管理器相关联的功能表(框620)。功能表可以对应于有序条目对,其中一对的第一条目标识指令或操作的特定类型,并且一对的第二条目标识包括指令或操作的内容的存储器地址位置。处理逻辑可随后更新对应于存储器地址的功能表的至少一个字段(框630)。例如,功能表可以被存储在存储器中,其中存储器可以被修改以将存储器地址位置改变为新的存储器地址位置。
容器管理器的执行可以基于功能表的使用。例如,容器管理器可以与功能表一起被使用,以基于与指令或操作相对应的存储器地址位置来执行指令或操作。因此,容器管理器的更新可以导致用于容器管理器的至少一个指令或操作的存储器地址位置的改变。
参考图6,处理逻辑可以响应于功能表的更新,递增与容器管理器相关联的版本号(框640)。例如,响应于容器管理器的更新,可以递增或增加位于存储器位置中的版本号。在一些实施例中,版本号可以由引导加载器存储在OTP或其他非易失性介质(NVM)中。如果当前版本号不高于或等于所有先前存储的版本号的最大值,则引导加载器可限制任意容器的执行。在一些实施例中,容器管理器的版本号可以被提供给容器。每个容器可以取回容器管理器的版本号,并且可以将容器管理器的版本号与容器内标识的版本号进行比较。如果容器管理器的版本号与容器内标识的版本号不匹配,则容器可以不执行(例如,容器管理器的指令可以不被执行)。但是,如果容器管理器的版本号与容器内标识的版本号匹配,则容器可以执行。这样,容器管理器的版本号可以被容器使用以在容器的执行之前验证容器管理器。
图7图示了与一个或多个容器交互的容器管理器的示例环境700。通常,环境700可以包括与图1或图2的容器管理器121或250相对应的容器管理器720。
如图7所示,环境700可以包括接收一个或多个容器710的容器管理器720。容器管理器720可以进一步被耦合到高级操作系统(HLOS)寄存器或存储器730,以及进程间通信(IPC)寄存器或存储器740。容器管理器720可以执行容器710中的一个,并且可以经由HLOS存储器730将来自被执行容器的数据请求的指示提供给安全计算环境外部的部件。容器管理器720可随后从HLOS存储器730取回数据并将数据提供给执行的容器。结合图10描述关于HLOS存储器730的进一步细节。
容器管理器可以进一步提供对IPC存储器740的访问以提供容器710中的至少两个之间的通信。例如,可以从由容器管理器720接收和执行的第一容器接收数据,并且数据可以被存储在IPC存储器740中,以供由容器管理器720接收的随后的第二容器取回。关于IPC存储器740的进一步细节将结合图8-9进行描述。
图8图示了提供容器之间的交互的示例方法800。通常,方法800可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法800可以由图1或图2的容器管理器121或250或安全计算环境的另一部件执行。
如图8所示,方法800可以开始于:处理逻辑在第一容器的执行期间从第一容器接收数据(框810)。处理逻辑还可以从第一容器接收数据的接收方标识(块820)。例如,接收方标识可以对应于另一容器的标识。处理逻辑可随后将所接收的数据、另一容器的接收方标识、以及与第一容器相对应的数据的发送方标识存储在进程间通信(IPC)存储器或寄存器中(框830)。处理逻辑可以随后执行第二容器(框840)。例如,可以在第一容器的接收和执行之后接收第二容器。处理逻辑可以标识第二容器的标识与在IPC存储器中存储的数据的接收方标识相匹配(框850)。此外,处理逻辑可以向第二容器提供对IPC存储器处的数据和发送方标识的访问(框860)。
在一些实施例中,第二容器可以基于与数据的发送方标识相关联的条件,利用来自IPC存储器的数据来执行指令。例如,如果发送方标识匹配来自第二容器的特定发送方标识,则可以执行指令,或者如果发送方标识不匹配来自第二容器的特定发送方标识,则可以不执行指令。
如此,来自第一容器的数据可以被存储在安全计算环境的存储器位置中。在第一容器之后执行的第二容器可以被提供对存储器位置处的数据的访问。
图9图示了与存储器交互的容器的示例。通常,可以对应于图1或图2的容器管理器121或250的容器管理器910可以基于IPC存储器940来提供容器之间的交互。
如图9所示,容器管理器910可以耦合到IPC存储器940和容器管线924。容器管线924可以包括第一容器920'A'、第二容器921'B'和第三容器922'C'。容器管理器910可以接收可以被执行的第一容器920'A'。第一容器920'A'的指令可以指定针对第三容器922'C'的、将被存储在IPC存储器940中的数据A。例如,容器管理器910可以在IPC存储器940中存储条目,该条目包括数据A、第一容器920的标识(例如,发送方'A')、和数据的接收方(例如,接收方'C')。容器管理器910随后可以在第一容器920'A'的执行的完成之后接收第二容器921'B'。当第二容器921的标识(例如,'B')与数据的接收方标识(例如,'C')不匹配时,第二容器921'B'可以不被允许访问IPC存储器940中的数据。在后来时间中,容器管理器910可以接收第三容器922'C'。由于第三容器922的标识(例如,'C')与IPC存储器940中的数据的接收方标识匹配,所以容器管理器910可以向具有标识为'C'的第三容器922提供对IPC存储器940中的数据的访问。
图10图示了与安全计算环境外的部件进行交互的容器的示例方法1000。通常,方法1000可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法1000可以由图1或图2的容器管理器121或250或安全计算环境的另一部件执行。
如图10所示,方法1000可以开始于:处理逻辑从容器接收安全计算环境外部的数据的请求(块1010)。例如,数据可以对应于从不在安全计算环境内的设备的部件接收的数据。处理逻辑可随后在高级操作系统(HLOS)存储器或寄存器中提供来自容器的请求的指示(框1020)。例如,容器管理器可以修改HLOS存储器的内容以指示安全计算环境内的部件已经从耦合到HLOS存储器的部件请求数据。处理逻辑可随后经由HLOS存储器从安全计算环境外部的实体接收数据(框1030)。例如,不在安全计算环境内的部件可以通过将数据存储到HLOS存储器来提供已经请求的数据。此外,处理逻辑可以从HLOS存储器向容器提供数据(框1040)。例如,容器管理器可以取回已经存储在HLOS存储器中的数据并且可以将数据提供给容器以供容器执行。
在一些实施例中,HLOS存储器可以是安全计算环境内的唯一存储器位置,该唯一存储器位置对于在安全计算环境外部的实体或部件是可访问的。
图11示出了计算机系统1100的示例机器,在计算机系统1100内可以执行用于使得机器执行本文讨论的方法中的任意一个或多个的指令集合。在备选的实现中,机器可以连接(例如联网)到LAN、内联网、外联网和/或因特网中的其他机器。该机器可以以在客户端-服务器网络环境中以服务器或客户端机器的能力、作为对等(或分布式)网络环境中的对等机器、或作为在云计算基础设施或环境中的服务器或客户端机器来操作。
机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器、或能够执行指定了该机器要采取的动作的指令集合(顺序或以其他方式)的任意机器。此外,虽然图示了单个机器,但是术语“机器”也应当被理解为包括单独或联合执行一个(或多个)指令集合以执行本文所讨论的方法中的任意一个或多个的机器的任意集合。
示例计算机系统1100包括经由总线1130彼此通信的处理设备1102、主存储器1104(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)或Rambus DRAM RDRAM)的动态随机存取存储器(DRAM)等)、静态存储器1106(例如,闪存、静态随机存取存储器(SRAM)等)以及数据存储设备1118。
处理设备1102表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或者实现指令集的组合的处理器。处理设备1102还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备1102被配置为执行用于执行本文讨论的操作和步骤的指令1126。
计算机系统1100还可以包括用于通过网络1120进行通信的网络接口设备1108。计算机系统1100还可以包括视频显示单元1110(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1112(例如键盘)、光标控制设备1114(例如鼠标)、图形处理单元1122、信号生成设备1116(例如扬声器)、图形处理单元1122、视频处理单元1128和音频处理单元1132。
数据存储设备1118可以包括机器可读存储介质1124(也被称为计算机可读介质),在该机器可读存储介质1124上存储有实施本文描述的方法或功能中的任意一个或多个的一个或多个指令或软件1126集合。指令1126还可以在计算机系统1100执行期间完全地或至少部分地驻留在主存储器1104内和/或处理设备1102内,主存储器1104和处理设备1102也构成机器可读存储介质。
在一个实现中,指令1126包括用于实现对应于容器管理器(例如,图1或2的容器管理器121或200)的功能的指令。尽管机器可读存储介质1124在示例实现中被示出为单个介质,但是术语“机器可读存储介质”应当被理解为包括存储一个或多个指令集合的单个介质或多个介质(例如,集中式或分布式数据库、以及/或关联的高速缓存和服务器)。术语“机器可读存储介质”还应被理解为包括能够存储或编码由机器执行的指令集合、并且使得机器执行本公开的方法中的任意一个或多个的任意介质。术语“机器可读存储介质”因此应当被认为包括但不限于固态存储器、光学介质和磁性介质。
在对计算机存储器内的数据位的操作的算法和符号表示方面,已经呈现了之前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员使用的最有效地将其工作的实质传达给本领域其他技术人员的方式。算法在本文中一般被认为是导致期望的结果的自洽的操作序列。这些操作是需要物理量的物理操纵的那些操作。通常,但不一定,这些量采取能够被存储、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于常用的原因,有时将这些信号称为比特、值、元素、符号、字符、术语、数字等已经证明是方便的。
然而,应该记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非特别指出,否则从以上讨论显而易见的是,应当理解,在整个说明书中,利用诸如“标识”或“确定”或“执行”或“实施”或“收集”或“创建”或“发送”等术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,其将表示为在计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储设备内的物理量的其他数据。
本公开还涉及用于执行本文的操作的装置。该装置可以为了预期的目的而专门构造,或者可以包括通过计算机中存储的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,诸如但不限于任意类型的包括软盘、光盘、CD-ROM和磁光盘的磁盘的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适合于存储电子指令的任意类型的介质、每个介质耦合到计算机系统总线。
本文呈现的算法和显示不是固有地与任意特定的计算机或其他装置有关。根据本文的教导,各种通用系统可以与程序一起使用,或者构建更专用的装置来执行该方法可以证明是方便的。下面的描述中将阐述各种这些系统的结构。另外,本公开不参考任意特定的编程语言来描述。应该理解的是,可以使用各种编程语言来实现本文所述的公开的教导。
本公开可被提供为计算机程序产品或软件,其可包括其上存储有指令的机器可读介质,所述指令可用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读形式存储信息的任意机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等
在前述公开中,已经参考本公开的具体示例实现描述了本公开的实现。显而易见的是,在不脱离如在权利要求中阐述的本公开的实现的更宽泛的精神和范围的情况下,可以对其进行各种修改。相应地,公开内容和附图被认为是示意性的而不是限制性的。

Claims (20)

1.一种方法,包括:
接收与可执行代码相对应的容器;
响应于所述容器的所述接收,执行驻留在计算环境的存储器中的容器管理器以验证所述容器,其中所述容器管理器由所述计算环境的引导加载器验证;
在由所述容器管理器对所述容器的所述验证之后,确定所述容器访问所述计算环境的资源的许可;以及
由处理设备基于针对所述计算环境的所述资源的所述容器的所述许可,通过将对一个或多个资源的控制从所述容器管理器转移到所述容器,来提供对所述计算环境的所述一个或多个资源的访问。
2.根据权利要求1所述的方法,还包括:
从所述容器接收数据,其中所述数据是针对第二容器的;以及
将所述数据和所述第二容器的标识存储在所述计算环境的另一存储器中。
3.根据权利要求2所述的方法,还包括:
在所述容器的执行完成之后接收所述第二容器,其中所述第二容器对应于附加的可执行代码;以及
响应于所述第二容器的标识与所述计算环境的所述另一存储器中的所述第二容器的所述标识相匹配,向所述第二容器提供来自所述计算环境的所述另一存储器的所述数据。
4.根据权利要求1所述的方法,所述方法还包括:
接收与所述容器管理器相关联的版本号;以及
基于与所述容器管理器相关联的所述版本号和与在所述容器中存储的所述容器管理器相关联的另一版本号的比较,来执行所述容器。
5.根据权利要求1所述的方法,还包括:
从所述容器接收用于从所述计算环境外部的部件接收数据的请求;以及
将用于接收数据的所述请求的指示存储到所述计算环境的另一存储器中,其中所述另一存储器由所述计算环境外部的所述部件访问。
6.根据权利要求1所述的方法,还包括:
执行所述容器;以及
在所述容器的所述执行之后,将与所述容器相关联的状态信息存储在所述计算环境的另一存储器中。
7.根据权利要求1所述的方法,其中所述容器的所述验证对应于所述容器的密码签名的验证。
8.一种系统,包括:
存储器;以及
处理设备,所述处理设备与所述存储器可操作地耦合以:
接收与可执行代码相对应的容器;
响应于所述容器的所述接收,执行驻留在计算环境的所述存储器中的容器管理器以验证所述容器,其中所述容器管理器由所述计算环境的引导加载器验证;
在由所述容器管理器对所述容器的所述验证之后,确定所述容器访问所述计算环境的资源的许可;以及
基于针对所述计算环境的所述资源的所述容器的所述许可,通过将对一个或多个资源的控制从所述容器管理器转移到所述容器,来提供对所述计算环境的所述一个或多个资源的访问。
9.根据权利要求8所述的系统,其中所述处理设备还用于:
从所述容器接收数据,其中所述数据是针对第二容器的;以及
将所述数据和所述第二容器的标识存储在所述计算环境的另一存储器中。
10.根据权利要求9所述的系统,其中所述处理设备还用于:
在所述容器的执行完成之后接收所述第二容器,其中所述第二容器对应于附加的可执行代码;以及
响应于所述第二容器的标识与所述计算环境的所述另一存储器中的所述第二容器的所述标识相匹配,向所述第二容器提供来自所述计算环境的所述另一存储器的所述数据。
11.根据权利要求8所述的系统,其中所述处理设备还用于:
接收与所述容器管理器相关联的版本号;以及
基于与所述容器管理器相关联的所述版本号和与在所述容器中存储的所述容器管理器相关联的另一版本号的比较,来执行所述容器。
12.根据权利要求8所述的系统,其特征在于,所述处理设备还用于:
从所述容器接收用于从所述计算环境外部的部件接收数据的请求;以及
将用于接收数据的所述请求的指示存储到所述计算环境的另一存储器中,其中所述计算环境的所述另一存储器由所述计算环境外部的所述部件访问。
13.根据权利要求8所述的系统,其中所述处理设备还:
执行所述容器;以及
在所述容器的所述执行之后,将与所述容器相关联的状态信息存储在所述计算环境的另一存储器中。
14.根据权利要求8所述的系统,其中所述容器的所述验证对应于所述容器的密码签名的验证。
15.一种包括指令的非暂态计算机可读介质,所述指令在由处理设备执行时使得所述处理设备执行操作,所述操作包括:
接收与可执行代码相对应的容器;
响应于所述容器的所述接收,执行驻留在计算环境的存储器中的容器管理器以验证所述容器,其中所述容器管理器由所述计算环境的引导加载器验证;
在由所述容器管理器对所述容器的所述验证之后,确定所述容器访问所述计算环境的资源的许可;以及
基于针对所述计算环境的所述资源的所述容器的所述许可,通过将对一个或多个资源的控制从所述容器管理器转移到所述容器,来提供对所述计算环境的所述一个或多个资源的访问。
16.根据权利要求15所述的非暂态计算机可读介质,所述操作还包括:
从所述容器接收数据,其中所述数据是针对第二容器的;以及
将所述数据和所述第二容器的标识存储在所述计算环境的另一存储器中。
17.根据权利要求16所述的非暂态计算机可读介质,所述操作还包括:
在所述容器的执行完成之后接收所述第二容器,其中所述第二容器对应于附加的可执行代码;以及
响应于所述第二容器的标识与所述计算环境的所述另一存储器中的所述第二容器的所述标识相匹配,向所述第二容器提供来自所述计算环境的所述另一存储器的所述数据。
18.根据权利要求15所述的非暂态计算机可读介质,所述操作还包括:
接收与所述容器管理器相关联的版本号;以及
基于与所述容器管理器相关联的所述版本号和与在所述容器中存储的所述容器管理器相关联的另一版本号的比较,来执行所述容器。
19.根据权利要求15所述的非暂态计算机可读介质,所述操作还包括:
从所述容器接收用于从所述计算环境外部的部件接收数据的请求;以及
将用于接收数据的所述请求的指示存储到所述计算环境的另一存储器中,其中所述存储器由所述计算环境外部的所述部件访问。
20.根据权利要求15所述的非暂态计算机可读介质,所述操作还包括:
执行所述容器;以及
在所述容器的所述执行之后,将与所述容器相关联的状态信息存储在所述计算环境的另一存储器中。
CN201680042707.6A 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质 Active CN107924440B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210852672.XA CN115062291A (zh) 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562208490P 2015-08-21 2015-08-21
US62/208,490 2015-08-21
PCT/US2016/046428 WO2017034811A1 (en) 2015-08-21 2016-08-10 Secure computation environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210852672.XA Division CN115062291A (zh) 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质

Publications (2)

Publication Number Publication Date
CN107924440A true CN107924440A (zh) 2018-04-17
CN107924440B CN107924440B (zh) 2022-07-01

Family

ID=58100754

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680042707.6A Active CN107924440B (zh) 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质
CN202210852672.XA Pending CN115062291A (zh) 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210852672.XA Pending CN115062291A (zh) 2015-08-21 2016-08-10 用于管理容器的方法、系统和计算机可读介质

Country Status (5)

Country Link
US (2) US11250134B2 (zh)
EP (1) EP3338214B1 (zh)
JP (1) JP6769999B2 (zh)
CN (2) CN107924440B (zh)
WO (1) WO2017034811A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002256A (zh) * 2018-05-04 2018-12-14 中国信息安全研究院有限公司 一种用于可信计算环境的存储系统
CN111124956A (zh) * 2019-11-22 2020-05-08 海光信息技术有限公司 一种容器保护方法、处理器、操作系统及计算机设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528749B2 (en) * 2017-03-20 2020-01-07 Huawei Technologies Co., Ltd. Methods and apparatus for containerized secure computing resources
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090084A1 (en) * 2004-10-22 2006-04-27 Mark Buer Secure processing environment
US20060259764A1 (en) * 2005-05-16 2006-11-16 Texas Instruments Incorporated Transferring control between programs of different security levels
CN1940955A (zh) * 2005-09-29 2007-04-04 捷讯研究有限公司 针对代码签名服务来注册实体的系统和方法
US20090265756A1 (en) * 2008-04-18 2009-10-22 Samsung Electronics Co., Ltd. Safety and management of computing environments that may support unsafe components
US20100023743A1 (en) * 2004-05-10 2010-01-28 Sastry Manoj R Methods and apparatus for integrity measurement of virtual machine monitor and operating system via secure launch
US20100023739A1 (en) * 2007-12-26 2010-01-28 Konstantin Levit-Gurevich Method and apparatus for booting a processing system
US20100161998A1 (en) * 2008-12-15 2010-06-24 Liqun Chen Associating a Signing key with a Software Component of a Computing Platform
CN102103673A (zh) * 2009-12-16 2011-06-22 英特尔公司 在隐藏执行环境中提供完整性验证和证明
CN102208000A (zh) * 2010-03-31 2011-10-05 伊姆西公司 为虚拟机镜像提供安全机制的方法和系统
CN102289631A (zh) * 2011-08-12 2011-12-21 无锡城市云计算中心有限公司 一种虚拟安全计算环境的实现方法
US20120180039A1 (en) * 2011-01-11 2012-07-12 International Business Machines Corporation Automated Deployment of Applications with Tenant-Isolation Requirements
US20140096133A1 (en) * 2012-10-01 2014-04-03 International Business Machines Corporation Method and apparatus for authenticated distribution of virtual machine images

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631188B2 (en) 1997-05-16 2009-12-08 Tvworks, Llc Hierarchical open security information delegation and acquisition
US20060010136A1 (en) * 1999-01-28 2006-01-12 Deangelo Michael System and method for creating and manipulating information containers with dynamic registers
EP1762958A1 (en) * 1999-03-08 2007-03-14 Spyrus, Inc. Method and system for enforcing access to a computing resource using a licensing certificate
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
US7316027B2 (en) 2004-02-03 2008-01-01 Novell, Inc. Techniques for dynamically establishing and managing trust relationships
US7382880B2 (en) 2004-01-26 2008-06-03 Hewlett-Packard Development Company, L.P. Method and apparatus for initializing multiple security modules
US8271783B2 (en) 2004-04-19 2012-09-18 Hewlett-Packard Development Company, L.P. Subordinate trusted platform module
US8341747B2 (en) * 2006-08-08 2012-12-25 International Business Machines Corporation Method to provide a secure virtual machine launcher
MX2009012134A (es) 2007-05-11 2009-11-25 Echostar Technologies Llc Aparato para controlar la ejecucion de un procesador en un ambiente seguro.
US8510805B2 (en) * 2008-04-23 2013-08-13 Samsung Electronics Co., Ltd. Safe and efficient access control mechanisms for computing environments
US8196213B2 (en) * 2008-07-11 2012-06-05 Microsoft Corporation Verification of un-trusted code for consumption on an insecure device
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8904518B2 (en) * 2010-05-07 2014-12-02 Panasonic Corporation Information processing device, information processing method, and program distribution system
US8700895B1 (en) 2010-06-30 2014-04-15 Google Inc. System and method for operating a computing device in a secure mode
US9244770B2 (en) * 2011-07-06 2016-01-26 International Business Machines Corporation Responding to a maintenance free storage container security threat
US8843764B2 (en) 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US8874916B2 (en) 2012-09-28 2014-10-28 Intel Corporation Introduction of discrete roots of trust
US9396011B2 (en) * 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
US10044695B1 (en) * 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9729579B1 (en) * 2015-04-27 2017-08-08 Symantec Corporation Systems and methods for increasing security on computing systems that launch application containers

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023743A1 (en) * 2004-05-10 2010-01-28 Sastry Manoj R Methods and apparatus for integrity measurement of virtual machine monitor and operating system via secure launch
US20060090084A1 (en) * 2004-10-22 2006-04-27 Mark Buer Secure processing environment
US20060259764A1 (en) * 2005-05-16 2006-11-16 Texas Instruments Incorporated Transferring control between programs of different security levels
CN1940955A (zh) * 2005-09-29 2007-04-04 捷讯研究有限公司 针对代码签名服务来注册实体的系统和方法
US20100023739A1 (en) * 2007-12-26 2010-01-28 Konstantin Levit-Gurevich Method and apparatus for booting a processing system
US20090265756A1 (en) * 2008-04-18 2009-10-22 Samsung Electronics Co., Ltd. Safety and management of computing environments that may support unsafe components
US20100161998A1 (en) * 2008-12-15 2010-06-24 Liqun Chen Associating a Signing key with a Software Component of a Computing Platform
CN102103673A (zh) * 2009-12-16 2011-06-22 英特尔公司 在隐藏执行环境中提供完整性验证和证明
CN102208000A (zh) * 2010-03-31 2011-10-05 伊姆西公司 为虚拟机镜像提供安全机制的方法和系统
US20120180039A1 (en) * 2011-01-11 2012-07-12 International Business Machines Corporation Automated Deployment of Applications with Tenant-Isolation Requirements
CN102289631A (zh) * 2011-08-12 2011-12-21 无锡城市云计算中心有限公司 一种虚拟安全计算环境的实现方法
US20140096133A1 (en) * 2012-10-01 2014-04-03 International Business Machines Corporation Method and apparatus for authenticated distribution of virtual machine images

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE: "《ISO/IEC/IEEE International Standard - Systems and software engineering -- Vocabulary》", 《ISO/IEC/IEEE 24765:2010(E)》 *
周振吉等: "《云计算环境下基于信任的虚拟机可信证明模型》", 《东南大学学报(自然科学版)》 *
陈磊: "《Java虚拟机安全模型中代码签名与认证的实现》", 《万方数据》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002256A (zh) * 2018-05-04 2018-12-14 中国信息安全研究院有限公司 一种用于可信计算环境的存储系统
CN109002256B (zh) * 2018-05-04 2022-12-06 中国信息安全研究院有限公司 一种用于可信计算环境的存储系统
CN111124956A (zh) * 2019-11-22 2020-05-08 海光信息技术有限公司 一种容器保护方法、处理器、操作系统及计算机设备
CN111124956B (zh) * 2019-11-22 2023-03-07 海光信息技术股份有限公司 一种容器保护方法、处理器、操作系统及计算机设备

Also Published As

Publication number Publication date
US11250134B2 (en) 2022-02-15
EP3338214A4 (en) 2019-01-16
WO2017034811A1 (en) 2017-03-02
CN115062291A (zh) 2022-09-16
JP6769999B2 (ja) 2020-10-14
US20220382874A1 (en) 2022-12-01
JP2018523930A (ja) 2018-08-23
EP3338214B1 (en) 2020-12-16
CN107924440B (zh) 2022-07-01
EP3338214A1 (en) 2018-06-27
US20180181760A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN105095772B (zh) 用于安全地保存并恢复计算平台状态的方法和装置
US9898326B2 (en) Securing code loading in a virtual environment
US10515196B2 (en) Creating secure original equipment manufacturer (OEM) identification
TWI770689B (zh) 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
CN104982005B (zh) 实施虚拟化环境中的特权加密服务的计算装置及方法
CN108351937A (zh) 计算设备
CN104202161B (zh) 一种SoC密码芯片
DE102018005180A1 (de) Flexible Bescheinigung von Containern
CN105373731B (zh) 用于提供可信平台模块服务的设备和方法
CN109313690A (zh) 自包含的加密引导策略验证
CN105046163B (zh) 保护嵌入式管理程序系统中的重要数据结构
US20160188889A1 (en) Creating secure channels between a protected execution environment and fixed-function endpoints
CN109416718A (zh) 云数据中心中应用容器的可信部署
CN106796638A (zh) 使用飞地认证进行数据验证
WO2017030822A1 (en) Platform migration of secure enclaves
US20160180095A1 (en) Measured boot capability
US11216389B2 (en) Device with multiple roots of trust
CN107924440A (zh) 安全计算环境
US20230281604A1 (en) Technologies for creating and transferring non-fungible token based identities
US20210359833A1 (en) Providing access to a hardware resource based on a canary value
CN110321729A (zh) 使用信任域支持虚拟化系统中的存储器分页
EP3913513A1 (en) Secure debug of fpga design
US9659171B2 (en) Systems and methods for detecting tampering of an information handling system
CN109891425A (zh) 序列验证
US20240046147A1 (en) Systems and methods for administrating a federated learning network

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