Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control

    公开(公告)号:US10374805B2

    公开(公告)日:2019-08-06

    申请号:US14974948

    申请日:2015-12-18

    Abstract: Technologies for secure programming of a cryptographic engine include a computing device with a cryptographic engine and one or more I/O controllers. The computing device establishes one or more trusted execution environments (TEEs). A TEE generates a request to program the cryptographic engine with respect to a DMA channel. The computing device may verify a signed manifest that indicates the TEEs permitted to program DMA channels and, if verified, determine whether the TEE is permitted to program the requested DMA channel. The computing device may record the TEE for a request to protect the DMA channel and may determine whether the programming TEE matches the recorded TEE for a request to unprotect a DMA channel. The computing device may allow the request to unprotect the DMA channel if the programming TEE matches the recorded TEE. Other embodiments are described and claimed.

    Technologies for secure programming of a cryptographic engine for trusted I/O

    公开(公告)号:US10303900B2

    公开(公告)日:2019-05-28

    申请号:US14979002

    申请日:2015-12-22

    Abstract: Technologies for secure programming of a cryptographic engine include a computing device with a cryptographic engine and one or more I/O controllers. The computing device establishes, an invoking secure enclave using secure enclave support of a processor. The invoking enclave configures channel programming information, including a channel key, and invokes a processor instruction with the channel programming information as a parameter. The processor generates wrapped programming information including an encrypted channel key and a message authentication code. The encrypted channel key is protected with a key known only to the processor. The invoking enclave provides the wrapped programming information to untrusted software, which invokes a processor instruction with the wrapped programming information as a parameter. The processor unwraps and verifies the wrapped programming information and then programs the cryptographic engine. The processor generates an authenticated response that may be verified by the invoking enclave. Other embodiments are described and claimed.

    Technologies for secure hardware and software attestation for trusted I/O

    公开(公告)号:US10248791B2

    公开(公告)日:2019-04-02

    申请号:US14974960

    申请日:2015-12-18

    Abstract: Technologies for trusted I/O attestation and verification include a computing device with a cryptographic engine and one or more I/O controllers. The computing device collects hardware attestation information associated with statically attached hardware I/O components that are associated with a trusted I/O usage protected by the cryptographic engine. The computing device verifies the hardware attestation information and securely enumerates one or more dynamically attached hardware components in response to verification. The computing device collects software attestation information for trusted software components loaded during secure enumeration. The computing device verifies the software attestation information. The computing device may collect firmware attestation information for firmware loaded in the I/O controllers and verify the firmware attestation information. The computing device may collect application attestation information for a trusted application that uses the trusted I/O usage and verify the application attestation information. Other embodiments are described and claimed.

    Nested exception handling
    64.
    发明授权

    公开(公告)号:US09971702B1

    公开(公告)日:2018-05-15

    申请号:US15332841

    申请日:2016-10-24

    Inventor: Bin Xing

    Abstract: An example system that includes a processor and a memory device. The processor may include multiple execution units to execute instructions and a memory device coupled to the processor. The memory device stores the instructions in an unprotected region and a protected region. The processor may determine that a first exception occurred while executing a first set of instructions for an application stored in a secured page of the protected region. The processor may invoke a first subroutine to forward exception context for the first exception to a second subroutine, where the first subroutine is stored in the protected region and the second subroutine is stored in the unprotected region. The processor may invoke, by the second subroutine, a third subroutine to execute a second set of instructions associated with the exception context for the first exception.

    METHODS AND APPARATUS TO INITIALIZE ENCLAVES ON TARGET PROCESSORS

    公开(公告)号:US20170286721A1

    公开(公告)日:2017-10-05

    申请号:US15087029

    申请日:2016-03-31

    Inventor: Bin Xing

    CPC classification number: G06F21/71 G06F9/44505 G06F12/00 G06F21/74

    Abstract: Methods, apparatus, systems and articles of manufacture are disclosed to initialize enclaves on target processors. An example apparatus includes an image file retriever to retrieve configuration parameters associated with an enclave file, and an address space manager to calculate a minimum virtual address space value for an enclave image layout based on the configuration parameters, and generate an optimized enclave image layout to allow enclave image execution on unknown target processor types by multiplying the minimum address space value with a virtual address factor to determine an optimized virtual address space value for the optimized enclave image layout.

    SUPPORTING FAULT INFORMATION DELIVERY
    67.
    发明申请
    SUPPORTING FAULT INFORMATION DELIVERY 有权
    支持故障信息交付

    公开(公告)号:US20160378664A1

    公开(公告)日:2016-12-29

    申请号:US14752109

    申请日:2015-06-26

    Abstract: A processor implementing techniques to supporting fault information delivery is disclosed. In one embodiment, the processor includes a memory controller unit to access an enclave page cache (EPC) and a processor core coupled to the memory controller unit. The processor core to detect a fault associated with accessing the EPC and generate an error code associated with the fault. The error code reflects an EPC-related fault cause. The processor core is further to encode the error code into a data structure associated with the processor core. The data structure is for monitoring a hardware state related to the processor core.

    Abstract translation: 公开了一种实现技术支持故障信息传递的处理器。 在一个实施例中,处理器包括存储器控制器单元,用于访问耦合到存储器控制器单元的飞地页面缓存(EPC)和处理器核心。 处理器核心,用于检测与访问EPC相关的故障并生成与故障相关的错误代码。 错误代码反映了与EPC相关的故障原因。 处理器核心还将错误代码编码成与处理器核心相关联的数据结构。 数据结构用于监视与处理器核心相关的硬件状态。

    Fast and scalable concurrent queuing system
    68.
    发明授权
    Fast and scalable concurrent queuing system 有权
    快速可扩展的并发排队系统

    公开(公告)号:US09116739B2

    公开(公告)日:2015-08-25

    申请号:US13829214

    申请日:2013-03-14

    CPC classification number: G06F9/46 G06F9/4881 G06F9/52 G06F9/526 G06F2209/548

    Abstract: This disclosure is directed to a fast and scalable concurrent queuing system. A device may comprise, for example, at least a memory module and a processing module. The memory module may be to store a queue comprising at least a head and a tail. The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued, observe a second state based on the predecessor node, determine if the predecessor node has changed based on comparing the first state to the second state, and set ordering in the queue based on the determination.

    Abstract translation: 本公开涉及一种快速且可扩展的并发排队系统。 设备可以包括例如至少一个存储器模块和一个处理模块。 存储器模块可以存储包括至少头部和尾部的队列。 所述处理模块可以是执行至少一个希望将至少一个新节点排入队列的线程,将至少一个新节点排队到队列;基于尾部中的信息来识别第一状态,标识前一个节点, 所述至少一个新节点被排队,基于所述前导节点观察第二状态,基于所述第一状态与所述第二状态的比较来确定所述前导节点是否已经改变,并且基于所述确定来设置所述队列中的排序。

Patent Agency Ranking