CN107729758B - 用于多租户云工作量的安全处理器 - Google Patents

用于多租户云工作量的安全处理器 Download PDF

Info

Publication number
CN107729758B
CN107729758B CN201710674842.9A CN201710674842A CN107729758B CN 107729758 B CN107729758 B CN 107729758B CN 201710674842 A CN201710674842 A CN 201710674842A CN 107729758 B CN107729758 B CN 107729758B
Authority
CN
China
Prior art keywords
data
encryption
key
processes
processor
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
CN201710674842.9A
Other languages
English (en)
Other versions
CN107729758A (zh
Inventor
F·A·鲍尔
S·科尔索
W·G·霍兰德
C·L·伍德
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.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
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 Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Publication of CN107729758A publication Critical patent/CN107729758A/zh
Application granted granted Critical
Publication of CN107729758B publication Critical patent/CN107729758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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/602Providing cryptographic facilities or services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/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
    • 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/72Protecting 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 in cryptographic circuits
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/3271Cryptographic 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 using challenge-response
    • 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/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

本申请的各实施例涉及用于多租户云工作量的安全处理器。一种CPU封装包括被布置在处理器核的指令路径与通过调试端口可外部访问的数据寄存器之间的通信路径中的加密和解密模块,以及该模块可访问的密钥存储库。该模块被配置为加密和在数据寄存器中存储用于在指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由该模块使用向该进程指派的加密密钥而被加密和解密。密钥存储库被配置为存储向多个进程中的每个进程指派的加密密钥,其中密钥存储库在CPU封装以外不可访问。数据仅针对具有与请求的数据一起被存储在处理器数据结构中的进程标识符匹配的进程标识符的请求进程而被解密。

Description

用于多租户云工作量的安全处理器
技术领域
本发明涉及维持多租户云环境中的工作量之中的安全性的系统和方法。
背景技术
在主控的工作量环境中,其中多个工作量可以同时共享相同处理器,所有工作量必须批准对主机的信任。这是由于操作系统和其它相似软件(比如调试器和其它硬件分析工具)可以检查所有具体处理器状态数据这样的事实。然而,在多租户环境中,存在潜在安全性缺乏或者信任问题,因为由一个租户运行的工作量可以能够读取属于由另一租户运行的另一工作量的数据。没有用于在处理器级解决信任问题的已知解决方案。
现有技术加密在片外存储装置中存储的数据以便防止有权访问该片外存储装置的进程或者工具的未授权访问。然而,在CPU芯片封装内的数据当前仅通过相互隔离工作量而被保护。通常地,通过每次批准CPU或者整个服务器对一个具体工作量的独占权属来隔离一个工作量与另一工作量。这一隔离对于云或者虚拟化的环境并不高效,其中多个工作量共享相同硬件以实现更佳利用和规模经济。
发明内容
本发明的一个实施例提供了一种CPU封装,该CPU封装包括形成指令路径的第一处理器核、通过调试端口可外部访问的数据寄存器、被布置在指令路径与数据寄存器之间的通信路径中的第一加密和解密模块以及第一加密和解密模块可访问的密钥存储库。第一加密和解密模块被配置为加密和在数据寄存器中存储用于在指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由第一加密和解密模块使用向该进程指派的加密密钥而被加密和解密。另外,密钥存储库被配置为存储向多个进程中的每个进程指派的加密密钥,其中密钥存储库在CPU封装以外不可访问。
本发明的另一实施例提供了一种方法,该方法包括:CPU封装执行多个进程,其中向每个进程指派进程标识符;向多个进程中的每个进程指派加密密钥;以及针对进程中的每个进程,在密钥存储库中与向该进程指派的加密密钥关联地存储向该进程指派的进程标识符,密钥存储库在CPU封装以外不可访问。该方法还包括:针对进程中的一个或者多个进程,使用向进程指派的加密密钥来加密由该进程拥有的处理器状态数据,并且在外部可访问的处理器数据结构中存储加密的处理器状态数据和进程标识符;以及响应于从具有与请求的处理器状态数据一起被存储在处理器数据结构中的进程标识符匹配的进程标识符的请求进程接收读取请求,解密在处理器数据结构中存储的加密的处理器状态数据的请求的部分,并且向请求进程提供解密的处理器状态数据。
附图说明
图1是根据本发明的一个实施例的包括受信任密钥存储库的CPU封装的示图。
图2是根据本发明的另一实施例的保护对处理器状态数据的访问的方法的流程图。
图3是根据本发明的又一实施例的方法的流程图。
具体实施方式
本发明的一个实施例提供了一种CPU封装,该CPU封装包括形成指令路径的第一处理器核、通过调试端口可外部访问的数据寄存器、被布置在指令路径与数据寄存器之间的通信路径中的第一加密和解密模块以及第一加密和解密模块可访问的密钥存储库。第一加密和解密模块被配置为加密和在数据寄存器中存储用于在指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由第一加密和解密模块使用向该进程指派的加密密钥而被加密和解密。另外,密钥存储库被配置为存储向多个进程中的每个进程指派的加密密钥,其中密钥存储库在CPU封装以外不可访问。
可选地,第一加密和解密模块还可以被配置为向在指令路径中正被处置的多个进程中的每个进程指派加密密钥。在分离的选项中,数据寄存器或者其它数据结构可以被配置为与向拥有加密的数据的进程指派的进程标识符或者标签一起存储该数据。再进一步,每个进程标识符可以由在CPU封装上运行的操作系统指派给进程。
在又一实施例中,CPU封装还可以包括:包括高速缓冲存储器的存储器控制器,以及被布置在第一处理器核与高速缓冲存储器之间的通信路径中的第二加密和解密模块。第二加密和解密模块可以被配置为加密和在高速缓冲存储器中存储用于在指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由第二加密和解密模块使用向该进程指派的加密密钥而被加密和解密,其中第二加密和解密模块有权访问密钥存储库。
在再一实施例中,CPU封装还可以包括:包括高速缓冲存储器的存储器控制器,以及被布置在第一处理器核与高速缓冲存储器之间的通信路径中的第二加密和解密模块,其中第二加密和解密模块被配置为加密和在高速缓冲存储器中存储用于在指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由第二加密和解密模块使用向该进程指派的加密密钥而被加密和解密。然而,CPU封装还可以包括第二加密和解密模块可访问并且配置为存储向多个进程中的每个进程指派的加密密钥的第二密钥存储库,其中第二密钥存储库在CPU封装以外不可访问。可选地,第一和第二密钥存储库可以存储用于多个进程中的每个进程的不同加密密钥。
CPU封装还可以包括第二处理器核,其中第一和第二处理器核共享单个密钥存储库。
再进一步,CPU封装还可以包括多个外部可访问的数据结构以及多个加密和解密模块,每个加密和解密模块控制数据进入和离开外部可访问的数据结构之一。
本发明的另一实施例提供一种方法,该方法包括:CPU封装执行多个进程,其中向每个进程指派进程标识符;向多个进程中的每个进程指派加密密钥;以及针对进程中的每个进程,在密钥存储库中与向该进程指派的加密密钥关联地存储向该进程指派的进程标识符,密钥存储库在CPU封装以外不可访问。该方法还包括:针对进程中的一个或者多个进程,使用向进程指派的加密密钥来加密由该进程拥有的处理器状态数据,并且在外部可访问的处理器数据结构中存储加密的处理器状态数据和进程标识符;以及响应于从具有与请求的处理器状态数据一起被存储在处理器数据结构中的进程标识符匹配的进程标识符的请求进程接收读取请求,解密在处理器数据结构中存储的加密的处理器状态数据的请求的部分,并且向请求进程提供解密的处理器状态数据。
在一个实施例中,该方法还可以包括响应于从具有与请求的处理器状态数据一起被存储在处理器数据结构中的进程标识符不匹配的进程标识符的请求进程接收读取请求,防止对在处理器数据结构中存储的加密的处理器状态数据的请求的部分的解密。
可以例如从缓冲器、寄存器和高速缓冲存储器选择外部可访问的处理器数据结构。在一个选项中,在CPU封装内存储的所有外部可访问的处理器状态数据利用拥有数据的进程专属的加密密钥而被加密。在另一选项中,外部可访问的处理器数据结构通过调试器端口对外部调试器应用可访问。
在又一实施例中,该方法还可以包括来自一个或者多个进程之中的选择的进程通过允许第二进程使用选择的进程的进程标识符来向第二进程批准对由选择的进程拥有的数据的访问。例如,第二进程可以是调试器进程或者共享库。再进一步,选择的进程向第二进程批准对由选择的进程拥有的数据的访问的步骤可以包括操作系统响应于选择的进程调用第二进程来自动地关联选择的进程的进程标识符与第二进程。
在另一实施例中,该方法还可以包括检测位于CPU封装以外的外部实体正在尝试访问外部可访问的数据结构,以及确定外部实体是否具有与正被访问的数据一起被存储的进程标识符匹配的进程标识符。例如,外部实体可以是在通过调试头部被外部地连接到CPU封装的不同计算机上运行的调试器应用。该方法可以可选地包括从将要调试的进程向调试器应用导出进程标识符。
在又一实施例中,进程标识符可以是多个标签位。因而,该方法可以包括CPU封装关联进程的标签位与进程的所有指令和由进程拥有的所有数据。一种方法可以使用与指令关联的标签位作为进入密钥存储库的索引,并且使用与标签位关联地被存储在密钥存储库中的加密密钥以解密处理器数据结构中的数据。再进一步,该方法可以使用与指令关联的标签位作为进入密钥存储库的索引以从受信任密钥存储库取回关联的加密密钥,并且使用与标签位关联地被存储在密钥存储库中的加密密钥以加密由包括指令的进程拥有的数据。
在再一实施例中,该方法还可以包括CPU封装响应于处置具有在密钥存储库或者活跃进程的其它表中没有找到的进程标识符的进程来确定进程是新进程。该方法然后可以向新进程指派密钥-标签对,其中密钥-标签对在其它活跃进程之中是唯一的,并且在密钥存储库中存储密钥-标签对。可选地,可以在密钥-标签对不再由任何其它活跃进程使用之后重用或者向新进程重新指派密钥-标签对。
本发明的实施例在每进程基础上防止对处理器状态数据的未授权访问。在CPU内存储的所有数据与生成数据的进程专属的加密密钥关联。任何将数据移动到CPU的外部可读数据结构上或者从该数据结构移出数据将分别造成加密或者解密动作。外部可读处理器数据结构例如包括缓冲器、寄存器和高速缓冲存储器。
例如,加密在可以由调试器进程读取的寄存器中存储的数据。如果CPU需要访问在那些寄存器中存储的数据,则必须解密数据。如果调试器进程尝试访问在那些寄存器中存储的数据,则调试器进程将获得加密的数据或者对寄存器状态的编辑的表示(即,寄存器由于许可不足而不可读这样的指示)。拥有数据的租户进程可以可选地在逐个情况的基础上批准对调试器进程或者其它协作受信任进程(比如共享库)的信任。在租户进程批准对另一进程的信任时,该另一进程可以接收由租户进程拥有的解密的数据。然而,从租户进程批准信任仅延及由租户进程拥有的数据。换而言之,从租户进程(“批准者”)向另一进程(“被批准者”)批准信任可以传达没有比租户进程的访问权限更广的访问权限。
随着数据和指令跨越在CPU封装内的CPU流水线数据路径,CPU跟踪拥有数据和指令的进程的身份(即,经由进程权属标签位)。如果进程具有用于访问某个数据的许可,则CPU执行用于为进程解密数据的逻辑。正在尝试访问加密的数据的进程将使用它的进程标识符(比如标签位的集合)作为进入在CPU上存在而对在CPU以外的实体不可访问的密钥存储库的索引。密钥存储库维护活跃进程的列表以及用于每个活跃进程的关联标签(即,标签位)和唯一加密密钥。
在一个实施例中,也被称为加密和解密模块的加密登台(staging)缓冲器或者逻辑模块可以与可以由在物理处理器封装以外的实体检查的任何数据存储结构关联。加密登台缓冲器或者逻辑模块被布置在数据存储结构的访问点与解密的CPU数据之间,从而使得加密登台缓冲器或者逻辑模块可以在它的去往和来自数据存储结构的一路上加密或者解密数据。
在另一实施例中,加密登台缓冲器或者逻辑模块可以与片上数据存储结构(比如L1高速缓存)关联。这些片上数据存储结构可以存储用于多个进程的数据,从而使得进程间通信可以通过高速缓冲数据结构出现。可以实施本发明的实施例以限制这一进程间通信,从而使得防止未授权进程访问由另一进程拥有的数据。
为了加密来自进程的数据或者解密由进程请求的数据,加密登台缓冲器或者逻辑模块使用与进程关联的进程标识符以从受信任密钥存储库取回关联的加密密钥。加密登台缓冲器或者逻辑模块然后使用进程专属加密密钥以加密由具有关联的进程标识符的进程正被存储的数据或者解密正被读取的解密数据。在向数据存储结构存储数据时,加密登台缓冲器或者逻辑模块使用进程专属加密密钥来加密数据并且向数据存储结构递送加密的数据以用于存储。在从数据存储结构取回数据时,加密登台缓冲器或者逻辑模块使用进程专属加密密钥以解密正被访问的数据并且向请求进程递送解密的数据,其中请求进程具有与存储数据的进程的进程标识符相同的进程标识符。换而言之,仅拥有数据的进程或者已经从拥有数据的进程接收了许可的进程将能够访问数据。
在一个实施例中,加密登台缓冲器或者逻辑模块可以实施编辑机制,例如,其中除非请求进程或者实体已经通过具有与关联于请求的数据的进程标识符匹配的进程标识符而被认证就没有向外部可读数据结构提供数据。如果请求进程或者实体可以提供真实性(即,匹配的进程标识符)的证据,则加密登台缓冲器或者逻辑模块可以解密请求的数据并且向请求进程或者实体提供解密的数据。然而,如果请求进程或者实体不能提供真实性的证据,则外部可读数据结构将让它的数据被修改,并且加密登台缓冲器或者逻辑模块将简单地不允许从芯片内部存储单元向外部可读位置传送。
在一个选项中,所有外部芯片数据访问可以利用挑战-响应,该挑战-响应使用加密的信息交换以证实请求单元的真实性。在共享库的情况下,这一挑战-响应机制可以用来保证代表给定的进程而动作的库的实例仅能看见用于该进程的数据。例如,CPU封装可以支持由共享库或者其它链接的进程的进程标识符继承(或者进程标签位继承),从而使得共享库可以仅采用正在给定的执行线程中使用共享库的进程的标识。在加载来自共享库的代码时,OS内核可以动态地利用共享库代码标注或者关联执行进程的进程标识符。例如,对动态指令流的这一标注可以在从指令高速缓存拉取指令之后在处理器的取读单元中出现。
进程和线程身份优选地由操作系统(OS)指派并且可以由OS内核传达给CPU封装。例如,进程身份可以采用在活跃进程之中唯一的标签的形式,比如一系列标签位。在一个选项中,向进程指派用来阻止进程有权访问彼此的存储器的标签,并且这一相同标签可以进一步用作进入密钥存储库的索以引用于保护处理器状态数据以免被其它进程访问。然而,由于一些进程可以有权限访问所有存储器,所以重用这样的标签可以允许那些进程获得对其它进程的加密的数据的访问。在进一步的选项中,OS内核可以出于保护处理器状态数据以免被其它进程访问的目的而向每个进程指派分离的标签。
进程可以使用任何已知的批准信任的方法向另一进程或者实体批准信任。例如,批准进程可以向证明信任被建立的第二进程给予“秘密”。第二进程(被批准者)然后可以呈现秘密(优选地包括不能被伪造的元素或者标识信息)以允许第二进程模仿批准进程以用于访问处理器状态数据。在一个示例中,“秘密”可以是口令。因而,“秘密”可以用来认证进程而不是进程标识符,但是可以用对于进程标识符而被描述的相同的方式使用“秘密”。
为了证实请求实体的真实性,可以在请求实体(即,请求数据的进程)与权属实体(即,拥有数据的进程)之间使用“挑战-响应”进程。例如,秘密(比如口令)可以在权属者进程(或者仲裁器进程,比如OS内核)中用来向请求进程安全地传输挑战,于是请求进程必须返回具有加密的值的响应,该值是原先赋予的信息的某个预定函数,因此证明它能够解密挑战。例如,在被称为Kerberos的计算机网络认证协议中,挑战是加密的整数N,而响应是加密的整数N+1,从而证明另一端能够解密整数N。在其它变化中,哈希函数对口令和随机挑战值操作以创建响应值。
可选地,OS内核可以充当这样的数据访问请求的仲裁器,可能包括使用可以用于安全存储加密密钥的受信任平台模块(TPM)。所有存储位置是优选实施例的事项,其中在CPU封装内的密钥存储库从未将它的加密密钥外部化。
单个CPU封装可以包括可以共享用于该CPU封装的单个加密密钥存储库的多个处理器核。然而,在具有多个CPU封装的计算机节点中,进程可以在两个封装上运行并且具有相同的数据保护需要。可选地,可以向每个CPU封装分离地注册进程,从而使得进程在每个CPU封装上具有分离的进程标识符或者标签和加密密钥。因此,在每个CPU封装上独立地保护进程。因而,授权进程访问它自己的在每个CPU封装上的数据,但是以对进程透明的方式在每个CPU封装上使用不同加密密钥。
本发明的实施例可以提供一种具有用于保护数据的安全机制的存储器控制器,其中安全机制与公开的用于在处理器核内的处理器状态数据的安全机制相似。因而,存储器控制器可以具有它自己的加密登台缓冲器或者逻辑模块,并且有权访问存储用于由存储器控制器使用的标签-密钥对的第二密钥存储库。可选地,可以在存储器控制器中重用已经由OS内核向进程指派的进程标识符或者标签,但是进程标识符或者标签可以与不同的加密密钥关联。可选地,存储器控制器可以具有它自己的加密登台缓冲器和逻辑模块,但是利用由处理器核使用的相同密钥存储库。
本发明的各种实施例或者本发明的实施例中的一个或者多个实施例的各种方面可以采用一种包括非瞬态计算机可读存储介质的计算机程序产品的形式,该非瞬态计算机可读存储介质具有与之体现的程序指令,其中程序指令可由处理器执行以使得处理器执行本发明的一种方法。在计算机程序产品的情境中将不会重复对方法的分离的描述。
图1是CPU封装10的示图,该CPU封装10包括形成指令路径22的第一处理器核22、通过调试端口可外部访问的数据寄存器24以及被布置在指令路径22与数据寄存器24之间的通信路径中的加密和解密模块26。CPU封装也包括加密和解密模块26可访问的密钥存储库30。如先前描述的那样,加密和解密模块26被配置为加密和在数据寄存器24中存储用于在指令路径中正被处置的多个进程中的每个进程的数据。例如,多个进程被示意地示出为包括进程A(23A)和进程B(23B),但是可以根据本发明的实施例处置任何数目的进程。由每个进程拥有的数据由加密和解密模块26使用向该进程指派的加密密钥而被加密和解密。另外,密钥存储库30被配置为存储向多个进程中的每个进程指派的加密密钥,其中密钥存储库在CPU封装10以外不可访问。如所示,密钥存储库30被图示为包括多个记录(行)的数据表,其中每行包括进程标识符、标签位和加密密钥。然而,密钥存储库可以在除了表之外的任何适当格式中存储数据。
可选地,加密和解密模块26还可以被配置为向在指令路径22中正被处置的多个进程中的每个进程指派加密密钥。在分离的选项中,数据寄存器24或者其它数据结构可以被配置为与向拥有加密的数据的进程指派的进程标识符或者标签一起存储该数据。再进一步,每个进程标识符可以由在CPU封装上运行的操作系统指派给进程。
在又一实施例中,CPU封装10还可以包括:包括高速缓冲存储器42的存储器控制器40以及被布置在第一处理器核20与高速缓冲存储器42之间的通信路径中的第二加密和解密模块44。第二加密和解密模块44可以被配置为加密和在高速缓冲存储器42中存储用于在指令路径22中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由第二加密和解密模块44使用向该进程指派的加密密钥而被加密和解密,其中第二加密和解密模块44有权访问密钥存储库30。第二加密和解密模块44可以用与加密和解密模块26加密和解密去往和来自寄存器24的数据相同或者相似的方式加密和解密去往和来自高速缓冲存储器42的数据。
再进一步,CPU封装还可以包括其它外部可访问的数据结构,比如片外可读数据存储装置50以及控制数据进入和离开外部可访问的数据结构中的每个数据结构的加密和解密模块。尽管每个外部可访问的数据结构可以具有它自己的加密和解密模块,但是该图示示出了加密和解密模块44控制数据进入和离开高速缓冲存储器42和片外可读数据存储装置50二者。
如图1中所示,进程A(23A)已经被指派了形式为标签(标签A)的进程标识符并且进程B(23B)已经被指派了形式为标签(标签B)的进程标识符。因而,跨越指令路径22的指令和正在数据寄存器24中被存储的数据被追加或者附带与拥有该指令或者数据的进程对应的标签。以这一方式,拥有在数据寄存器24中存储的加密的数据的进程将具有用于加密和解密模块26解密和提供该数据给进程的许可。仅具有与寄存器中的数据关联的标签匹配的标签的进程将能够获得数据。可以用这一方式控制任何数目的数据寄存器。
在这一图示中,共享库23C已经由进程B(23B)调用,从而使得共享库23C已经继承了标签B并且接收用于访问与标签B关联地被存储在数据寄存器24中的数据的相同许可。换而言之,加密和解密模块26在发现共享库23C具有标签B时将共享库视为进程B。
再进一步,外部实体60(比如调试器)被示出为与数据存储结构50通信。如果外部实体尝试到达数据存储结构50中的数据的特定部分,并且如果外部实体通过呈现与请求的数据关联的标签而被认证,则加密和解密模块44将解密请求的数据并且向外部实体60提供数据。
图2是保护对处理器状态数据的访问的方法70的流程图。这一方法可以用来实施图1中所图示两个实施例。在步骤71中,CPU封装指令取读和解码处理逻辑检查由OS内核向给定的进程指派的标签或者进程ID,并且利用该标签或者进程ID查询在CPU封装中有加密密钥指派的活跃进程的表。例如,如果CPU封装正在处置具有在活跃进程的表中没有找到的标签或者进程ID的进程,则该进程被确定为新进程。活跃进程的表可以是受信任密钥存储库。
如果进程是新进程,则步骤72向新进程指派密钥-标签对。这一密钥-标签对被存储在受信任密钥存储库中并且在其它活跃进程之中是唯一的。由于在CPU内指派密钥-标签对,所以有可能在密钥-标签对不再由任何其它活跃进程使用之后重用密钥-标签对。在步骤73中,CPU封装执行在与OS内核之间的握手,该OS内核必须是受信任进程,因为OS内核正在向CPU标识新工作量。握手是新任务的提交者真正是受信任OS内核这样的证实,并且可以可选地包括进程被允许采用为了共享数据的目的的身份这样的附加权限(进程ID)。仅如果进程具有在受信任密钥存储库中还不存在的新进程标识符或者如果没有信任OS/管理程序内核才需要握手。
在用于握手的一个选项中,OS内核可以具有仅OS内核可以运行的特殊指令集,比如有权限的模式操作。因而,OS内核可以使用特殊指令集以向每个进程指派标识信息(即,进程ID)。在用于握手的另一选项中,进程可以从CPU封装接收安全认证令牌,进程然后将用对CPU的任何后续访问来通过。这样的安全认证令牌然后将绑定到具体进程权限的呈现进程。例如,安全认证令牌可以是加密的数据串。遗憾的是,加密的数据串必须被存储在某处,从而使得加密的数据串可以是比访问OS内核更容易的目标。
在步骤74中,与向拥有数据的进程指派的标签一起存储片上数据。例如,地址生成单元(AGU)可以在片上数据从高速缓冲存储器中转到CPU核中和返回时向该数据追加权属者进程的标签。
在步骤75中,外部实体(即,位于CPU封装以外的部件)尝试访问片外可读数据结构。外部实体可以是在通过调试头部外部地连接到CPU封装的不同计算机上运行的调试器应用。在包括CPU封装的相同计算机上运行的调试器应用将只是OS内核正在运行的另一进程。
在步骤76中,该方法确定请求实体是否具有与拥有数据的进程的标签匹配的标签这一形式的真实性的证据。如果请求实体是正在CPU封装上运行的进程,则如果请求进程具有与在请求的数据内存储的标签匹配的标签则批准对特定数据的访问。对于外部调试器,需要从将要被调试/共享的内核/进程导出令牌,并且然后将它们导入到调试器中。然后,将需要用于调试端口允许调试器向CPU封装呈现这些令牌以证实它有权利无障碍读取数据的手段。对于内部进程或者外部进程,如果请求进程或者实体具有匹配标签,则在步骤77中允许进程或者实体访问请求的数据。更具体地,允许对请求的数据的访问涉及解密数据。加密/解密逻辑是“在接线中的凸块(bump in the wire)”。在进程或者实体尝试读取寄存器时,进程或者实体与标签或者进程标识符(ID)一起提交读取命令。如果读取命令中的标签或者进程ID匹配与请求的数据一起被存储的标签或者进程ID,则解密和提供请求的数据给请求进程或者实体。如果读取命令中的标签或者进程ID没有匹配与请求的数据一起被存储的标签或者进程ID,则请求进程或者实体将接收不可理解的数据或者“未授权”的消息的某个表示。认证进程并且提供解密的数据的过程对授权的进程是透明的,除了可能具有由逻辑引入的访问延时之外。然而,如果请求实体不具有匹配标签,则可以在步骤78中以加密的形式提供或者编辑请求数据。
图3是本发明的另一实施例的方法80的流程图。在步骤81中,CPU封装执行多个进程,其中向每个进程指派进程标识符。在步骤82中,该方法向多个进程中的每个进程指派加密密钥。步骤83包括针对进程中的每个进程,在密钥存储库中与向该进程指派的加密密钥关联地存储向该进程指派的进程标识符,密钥存储库在CPU封装以外不可访问。在步骤84中,该方法针对进程中的一个或者多个进程,使用向进程指派的加密密钥来加密由该进程拥有的处理器状态数据,并且在外部可访问的处理器数据结构中存储加密的处理器状态数据和进程标识符。在步骤85中,该方法响应于从具有与请求的处理器状态数据一起被存储在处理器数据结构中的进程标识符匹配的进程标识符的请求进程接收读取请求,解密在处理器数据结构中存储的加密的处理器状态数据的请求的部分,并且向请求进程提供解密的处理器状态数据。
如本领域技术人员将认识到的那样,本发明的方面可以被体现为一种系统、方法或者计算机程序产品。因而,本发明的方面可以采用全硬件实施例、全软件实施例(包括固件、驻留软件、微代码等)或者组合软件和硬件方面的实施例的形式,这些都可以在这里被一般地称为“电路”、“模块”或者“系统”。另外,本发明的方面可以采用在一个或者多个计算机可读介质中体现的计算机程序产品的形式,该一个或者多个计算机可读介质具有在其上体现的计算机可读程序代码。
可以利用一个或者多个计算机可读存储介质的任何组合。计算机可读存储介质可以例如是但不限于电子、磁、光、电磁、红外线或者半导体系统、装置或者设备或者前述示例的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽列表)将包括以下各项:便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、便携紧致盘只读存储器(CD-ROM)、磁存储设备或者前述示例的任何适当组合。在本文的上下文中,计算机可读存储介质可以是可以包含或者存储用于由或者结合指令执行系统、装置或者设备使用的程序的任何有形介质。另外,在这样的计算机可读存储介质(包括被称为易失性存储器的形式)上体现的任何程序指令或者代码为了避免困惑而被视为“非瞬态”。
可以使用任何适当介质(包括但不限于无线、有线、光纤线缆、RF等或者前述示例的任何适当组合)来传输在计算机可读存储介质上体现的程序代码。可以利用包括面向对象的编程语言(比如Java、Smalltalk、C++等)和常规过程编程语言(比如“C”编程语言)或者相似编程语言来编写用于实现用于本发明的方面的操作的计算机程序代码。程序代码可以完全地在用户的计算机上、部分地在用户的计算机上、作为单独软件包、部分地在用户的计算机上而部分地在远程计算机上或者完全地在远程计算机或者服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或者广域网(WAN))而被连接到用户的计算机,或者可以产生与外部计算机的连接(例如,通过使用因特网服务提供商的因特网)。
可以参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的方面。将理解,流程图图示和/或框图的每个块以及在流程图图示和/或框图中的块组合可以由计算机可读程序指令实施。可以向通用计算机、专用计算机或者其它可编程数据处理装置的处理器提供这些计算机可读程序指令以产生机器,从而使得经由计算机或者其它可编程数据处理装置的处理器执行的指令产生用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机可读程序指令也可以作为非瞬态程序指令而被存储在计算机可读存储介质中,该计算机可读存储介质可以指引计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而使得在计算机可读存储介质中存储的程序指令产生包括非瞬态程序指令的制造品,这些非瞬态程序指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。
计算机可读程序指令也可以被加载到计算机、其它可编程数据处理装置或者其它设备上以使得一系列操作步骤在计算机、其它可编程装置或者其它设备上被执行以产生计算机实施的过程,从而使得在计算机、其它可编程装置或者其它设备上执行的指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。
在各图中的流程图和框图图示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,在流程图或者框图中的每个块可以代表代码模块、段或者部分,该代码模块、段或者部分包括用于实施指定的逻辑功能的一个或者多个可执行指令。应当注意到,在一些备选实现方式中,在块中指出的功能可以未按照在各图中指出的顺序出现。例如,事实上取决于涉及到的功能,可以基本上并行地依次示出的两个块,或者可以有时按照相反顺序执行这些块。也将注意到,框图和/或流程图图示的每个块以及在框图和/或流程图图示中的块的组合可以由执行指定的功能或者动作的基于专用硬件的系统实施或者由专用硬件与计算机指令的组合实施。
这里所用的术语仅用于描述具体实施例而未旨在于限制本发明。如这里所用,单数形式“一(个/种)”和“该”旨在于也包括复数形式,除非上下文清楚地另有指示。还将进一步理解,措词“包括”在本说明书中使用时指定存在陈述的特征、整件、步骤、操作、要素、部件和/或组合、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、要素、部件和/或其组合。术语“优选地”、“优选的”、“优选”、“可选地”、“可以”和相似术语用来指示所指的项目、条件或者步骤是本发明的可选(非必需)特征。
在所附权利要求中的所有装置或者步骤加上功能要素的对应结构、材料、动作和等效物旨在于包括用于如具体地要求保护的那样与其它权利要求要素组合执行该功能的任何结构、材料或者动作。已经出于图示和描述的目的而呈现了本发明的描述,但是该描述未旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域其他普通技术人员能够对于具有如与设想的特定使用相配的各种修改的各种实施例理解本发明。

Claims (19)

1.一种CPU封装设备,包括:
第一处理器核,其形成用于处置多个进程的指令路径;
数据寄存器,其配置用于数据的存储;
第一加密和解密模块,其被布置在所述指令路径与所述数据寄存器之间的通信路径中;以及
密钥存储库,其对于所述第一加密和解密模块可访问,其中所述密钥存储库被配置为存储向所述多个进程中的每个进程指派的加密密钥,其中所述密钥存储库在所述CPU封装以外不可访问;
其中所述第一加密和解密模块被配置为:
针对所述多个进程中的每个进程,向所述进程指派多个加密密钥-标签对中的一个加密密钥-标签对;
加密和在所述数据寄存器中存储用于在所述指令路径中正被处置的所述多个进程中的每个进程的数据,其中由每个进程拥有的数据由所述第一加密和解密模块使用由所述加密和解密模块向该进程指派的所述密钥-标签对的所述加密密钥而被加密和解密,以及其中加密的所述数据与由所述第一加密和解密模块指派给所述进程的所述密钥-标签对的所述标签相关联地被存储在所述数据寄存器中;
检测所述指令路径中的正在被处置的新进程;以及
向所述新进程指派至少一个未指派的密钥-标签对中的一个密钥-标签对。
2.根据权利要求1所述的CPU封装设备,还包括:
存储器控制器,其包括高速缓冲存储器;以及
第二加密和解密模块,其被布置在所述第一处理器核与所述高速缓冲存储器之间的通信路径中,其中所述第二加密和解密模块被配置为加密和在所述高速缓冲存储器中存储用于在所述指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由所述第二加密和解密模块使用向该进程指派的加密密钥而被加密和解密,其中所述第二加密和解密模块具有对所述密钥存储库的访问。
3.根据权利要求1所述的CPU封装设备,还包括:
存储器控制器,其包括高速缓冲存储器;
第二加密和解密模块,其被布置在所述第一处理器核与所述高速缓冲存储器之间的通信路径中,其中所述第二加密和解密模块被配置为加密和在所述高速缓冲存储器中存储用于在所述指令路径中正被处置的多个进程中的每个进程的数据,其中由每个进程拥有的数据由所述第二加密和解密模块使用向该进程指派的加密密钥而被加密和解密;以及
第二密钥存储库,其对于所述第二加密和解密模块可访问并且被配置为存储向所述多个进程中的每个进程指派的所述加密密钥,其中所述第二密钥存储库在所述CPU封装以外不可访问。
4.根据权利要求3所述的CPU封装设备,其中所述密钥存储库和所述第二密钥存储库存储用于所述多个进程中的每个进程的不同加密密钥。
5.根据权利要求1所述的CPU封装设备,还包括:
第二处理器核,其中所述第一处理器核和所述第二处理器核共享单个密钥存储库。
6.根据权利要求1所述的CPU封装设备,还包括:
多个外部可访问的数据结构;以及
多个加密和解密模块,每个加密和解密模块控制数据进入和离开所述外部可访问的数据结构中的一个外部可访问的数据结构。
7.根据权利要求1所述的CPU封装设备,其中所述加密和解密模块被配置以执行进一步的操作,包括:
在所述密钥存储库中检测没有被指派给任何进程的第一密钥-标签对,其中所述第一密钥-标签对先前被指派给多个进程中的一个进程;以及
向所述指令路径中的正在被处置的新进程指派所述第一密钥-标签对。
8.一种用于管理多个进程的方法,包括:
CPU封装执行多个进程,其中向每个进程指派进程标识符;
向所述多个进程中的每个进程指派加密密钥;
针对所述进程中的每个进程,在密钥存储库中与向该进程指派的所述加密密钥关联地存储向该进程指派的所述进程标识符,所述密钥存储库在所述CPU封装以外不可访问;
针对所述进程中的一个或者多个进程,使用向进程指派的所述加密密钥来加密由该进程拥有的处理器状态数据,并且在外部可访问的处理器数据结构中存储加密的所述处理器状态数据和所述进程标识符;以及
响应于从具有与请求的所述处理器状态数据一起被存储在所述处理器数据结构中的所述进程标识符匹配的进程标识符的请求进程接收读取请求,解密在所述处理器数据结构中存储的加密的所述处理器状态数据的请求的部分,并且向所述请求进程提供解密的所述处理器状态数据。
9.根据权利要求8所述的方法,还包括:
响应于从具有与请求的所述处理器状态数据一起被存储在所述处理器数据结构中的所述进程标识符不匹配的进程标识符的所述请求进程接收读取请求,防止在所述处理器数据结构中存储的加密的所述处理器状态数据的请求的部分的解密。
10.根据权利要求8所述的方法,其中在所述CPU封装内存储的所有外部可访问的处理器状态数据利用拥有所述数据的所述进程专属的加密密钥而被加密。
11.根据权利要求8所述的方法,其中所述外部可访问的处理器数据结构从缓冲器、寄存器和高速缓冲存储器被选择。
12.根据权利要求8所述的方法,还包括:
来自所述一个或者多个进程之中的选择的进程通过允许第二进程使用所述选择的进程的所述进程标识符来向所述第二进程批准对由所述选择的进程拥有的数据的访问。
13.根据权利要求12所述的方法,其中所述第二进程是调试器进程或者共享库。
14.根据权利要求12所述的方法,其中所述选择的进程向第二进程批准对由所述选择的进程拥有的数据的访问包括操作系统响应于所述选择的进程调用所述第二进程来自动地关联所述选择的进程的所述进程标识符与所述第二进程。
15.根据权利要求8所述的方法,还包括:
检测位于所述CPU封装以外的外部实体正在尝试访问所述外部可访问的数据结构;以及
确定所述外部实体是否具有与正被访问的所述数据一起被存储的所述进程标识符匹配的进程标识符。
16.根据权利要求15所述的方法,其中所述外部实体是在通过调试头部被外部地连接到所述CPU封装的不同计算机上运行的调试器应用。
17.根据权利要求16所述的方法,还包括:
从将被调试的进程向所述调试器应用导出所述进程标识符。
18.根据权利要求8所述的方法,其中所述进程标识符是多个标签位。
19.根据权利要求18所述的方法,还包括:
所述CPU封装关联进程的所述标签位与所述进程的所有指令和由所述进程拥有的所有数据。
CN201710674842.9A 2016-08-10 2017-08-09 用于多租户云工作量的安全处理器 Active CN107729758B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/233,000 US10721067B2 (en) 2016-08-10 2016-08-10 Secure processor for multi-tenant cloud workloads
US15/233,000 2016-08-10

Publications (2)

Publication Number Publication Date
CN107729758A CN107729758A (zh) 2018-02-23
CN107729758B true CN107729758B (zh) 2021-07-30

Family

ID=61018133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710674842.9A Active CN107729758B (zh) 2016-08-10 2017-08-09 用于多租户云工作量的安全处理器

Country Status (3)

Country Link
US (1) US10721067B2 (zh)
CN (1) CN107729758B (zh)
DE (1) DE102017117895A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156604A (zh) * 2015-03-26 2016-11-23 中兴通讯股份有限公司 网页更新方法、系统及网页服务器
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
US10871983B2 (en) * 2018-05-31 2020-12-22 Intel Corporation Process-based multi-key total memory encryption
US20200092263A1 (en) * 2018-09-14 2020-03-19 Microsoft Technology Licensing, Llc Secure device-bound edge workload receipt
US11106441B2 (en) 2018-09-14 2021-08-31 Microsoft Technology Licensing, Llc Secure device-bound edge workload delivery
US10956600B2 (en) * 2018-10-31 2021-03-23 Salesforce.Com, Inc. Highly available encryption framework for multiple different computing environments
US11360910B2 (en) * 2019-06-28 2022-06-14 Intel Corporation Prevention of trust domain access using memory ownership bits in relation to cache lines
KR20210069473A (ko) * 2019-12-03 2021-06-11 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN112214785A (zh) * 2020-12-01 2021-01-12 南京芯驰半导体科技有限公司 数据加密方法、装置、数据解密方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1542629A (zh) * 2003-03-19 2004-11-03 ���µ�����ҵ��ʽ���� 调试系统,微处理器,以及调试器

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249231A (en) * 1992-05-04 1993-09-28 Motorola, Inc. Memory tagging for object reuse protection
US6895506B1 (en) * 2000-05-16 2005-05-17 Loay Abu-Husein Secure storage and execution of processor control programs by encryption and a program loader/decryption mechanism
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP4098478B2 (ja) * 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
US8568224B1 (en) * 2001-12-04 2013-10-29 Fortunet, Inc. Wireless wagering system
US7031469B2 (en) * 2001-12-27 2006-04-18 Slam Dunk Networks, Inc. Optimized enveloping via key reuse
JP4263976B2 (ja) * 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4559794B2 (ja) * 2004-06-24 2010-10-13 株式会社東芝 マイクロプロセッサ
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
US7900064B2 (en) * 2005-04-20 2011-03-01 Honeywell International Inc. Encrypted debug interface
WO2006126191A2 (en) * 2005-05-23 2006-11-30 Discretix Technologies Ltd. Method, device, and system of encrypting/decrypting data
WO2006136881A1 (en) * 2005-06-22 2006-12-28 Freescale Semiconductor, Inc. Device and method for securing software
US9171161B2 (en) * 2006-11-09 2015-10-27 International Business Machines Corporation Trusted device having virtualized registers
JP4912921B2 (ja) * 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US7886150B2 (en) * 2007-05-11 2011-02-08 Mips Technologies, Inc. System debug and trace system and method, and applications thereof
US9298894B2 (en) * 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
JP5380604B2 (ja) * 2010-03-26 2014-01-08 株式会社東芝 情報記録装置
US8943313B2 (en) * 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US8751819B1 (en) * 2011-09-22 2014-06-10 Symantec Corporation Systems and methods for encoding data
US8789208B1 (en) * 2011-10-04 2014-07-22 Amazon Technologies, Inc. Methods and apparatus for controlling snapshot exports
WO2013089739A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Secure debug trace messages for production authenticated code modules
US8751830B2 (en) * 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
US8954755B2 (en) * 2012-01-23 2015-02-10 International Business Machines Corporation Memory address translation-based data encryption with integrated encryption engine
WO2014055148A2 (en) * 2012-07-09 2014-04-10 Massachusetts Institute Of Technology Cryptography and key management device and architecture
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9037870B1 (en) * 2013-08-16 2015-05-19 Intuit Inc. Method and system for providing a rotating key encrypted file system
US9436847B2 (en) * 2014-09-26 2016-09-06 Intel Corporation Cryptographic pointer address encoding
US9967319B2 (en) * 2014-10-07 2018-05-08 Microsoft Technology Licensing, Llc Security context management in multi-tenant environments
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
JP6363032B2 (ja) * 2015-02-26 2018-07-25 株式会社日立情報通信エンジニアリング 鍵付替え方向制御システムおよび鍵付替え方向制御方法
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
US20170063544A1 (en) * 2015-08-26 2017-03-02 Rubicon Labs, Inc. System and method for sharing data securely
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment
US10664179B2 (en) * 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US10200406B1 (en) * 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1542629A (zh) * 2003-03-19 2004-11-03 ���µ�����ҵ��ʽ���� 调试系统,微处理器,以及调试器

Also Published As

Publication number Publication date
US10721067B2 (en) 2020-07-21
CN107729758A (zh) 2018-02-23
DE102017117895A1 (de) 2018-02-15
US20180048470A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
CN107729758B (zh) 用于多租户云工作量的安全处理器
CN109844751B (zh) 用于提供信息隔离的方法和处理器
US11416415B2 (en) Technologies for secure device configuration and management
US10417433B2 (en) Encryption and decryption of data owned by a guest operating system
US10915633B2 (en) Method and apparatus for device security verification utilizing a virtual trusted computing base
US10708051B2 (en) Controlled access to data in a sandboxed environment
KR102257320B1 (ko) 하이퍼바이저 및 가상 머신 간 메모리 페이지 이행의 모니터링
US8572410B1 (en) Virtualized protected storage
US8826391B2 (en) Virtualized trusted descriptors
KR101268767B1 (ko) 정보 흐름 추적 및 보호
US20170277898A1 (en) Key management for secure memory address spaces
US11575672B2 (en) Secure accelerator device pairing for trusted accelerator-to-accelerator communication
US10181027B2 (en) Interface between a device and a secure processing environment
US11748493B2 (en) Secure asset management system
KR101653193B1 (ko) 보안 처리 환경으로부터의 기능의 오프로딩
JP4591163B2 (ja) バスアクセス制御装置
US9411979B2 (en) Embedding secret data in code
US9398019B2 (en) Verifying caller authorization using secret data embedded in code
US11886899B2 (en) Privacy preserving introspection for trusted execution environments
Park et al. CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality
US20240070091A1 (en) Isolation of memory regions in trusted domain
EP4202748A1 (en) Data oblivious cryptographic computing

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