Abstract:
Technologies for dynamic loading of integrity protected modules into a secure enclave include a computing device having a processor with secure enclave support. The computing device divides an executable image into multiple chunks, hashes each of the chunks with corresponding attributes that affect security to generate a corresponding hash value, and generates a hash tree as a function of the hash values. The computing device generates an initial secure enclave memory image that includes the root value of the hash tree. At runtime, the computing device accesses a chunk of the executable image from within the secure enclave, which generates a page fault. In response to the page fault, the secure enclave verifies the associated chunk based on the hash tree and accepts the chunk into the secure enclave in response to successful verification. The root value of the hash tree is integrity-protected. Other embodiments are described and claimed.
Abstract:
In one embodiment, a semiconductor integrated code (SIC) may be provided in a binary format by a processor manufacturer. This SIC may include platform independent code of the processor manufacturer. Such code may include embedded processor logic to initialize the processor and at least one link that couples the processor to a memory, and embedded memory logic to initialize the memory. Other embodiments are described and claimed.
Abstract:
A method and system for remote configuration of a computing device includes generating initialization code configured to initialize a memory and/or processor of the computing device dependent on initialization data. The initialization data is generated based on platform data, which is validate based on predetermined criteria. The platform data identifies platform-specific parameters and may be received over a network from a platform manufacturer. In response to validation of the platform data, the initialization data is generated and transmitted to the platform manufacturer for incorporation into the computing device. Upon a processor reset, the initialization code is configured to use the initialization data to perform initialization procedures to initialize the memory and/or processor of the computing device. The platform data may be updated periodically by an end-user of the computing device.
Abstract:
A method and system for remote configuration of a computing device includes generating initialization code configured to initialize a memory and/or processor of the computing device dependent on initialization data. The initialization data is generated based on platform data, which is validate based on predetermined criteria. The platform data identifies platform-specific parameters and may be received over a network from a platform manufacturer. In response to validation of the platform data, the initialization data is generated and transmitted to the platform manufacturer for incorporation into the computing device. Upon a processor reset, the initialization code is configured to use the initialization data to perform initialization procedures to initialize the memory and/or processor of the computing device. The platform data may be updated periodically by an end-user of the computing device.
Abstract:
A method of transmitting data through network stack choosing one of a synchronous and an asynchronous mode depending on requests of applications. The method may involve changing frequencies of a timer, for example, adjusting the frequency in the asynchronous Application Programming Interface (API) according to a load of network traffic and even stopping the timer for the synchronous API. In the asynchronous API, as heavier network traffic load is expected, the timer may increase its frequency. Accordingly, the timer decreases its frequency detecting the lighter network traffic and the remaining Central Processing Unit (CPU) cycles may be used to execute the foreground task, while the network stack still may respond to Internet Control Message Protocol (ICMP) and Address Resolution Protocol (ARP) requests. As the application tries to receive packets, for example, downloading a large volume of data, such as the kernel of an Operating System (OS), the network stack may even shut down the timer temporarily and switch to a synchronous mode to improve overall system performance. Here, the network stack may use a busy waiting signal to notify its status.
Abstract:
Methods and apparatuses provide for incremental provisioning of software for a processing system. For instance, a processing system may include a machine accessible medium and a processor in communication with the machine accessible medium. In addition, instructions encoded in the machine accessible medium may cause the processing system to automatically determine whether a storage device in the processing system includes modified blocks, based at least in part on a write log file that identifies blocks that were modified during a user session on the processing system. In response to identifying at least one modified block in the storage device, the processing system may automatically replace data in the modified block with backup data from a different storage device. Other embodiments are described and claimed.
Abstract:
A method and system for implementing a virtual trusted platform module (vTPM). Software components are sequentially loaded and measured from a core root of trust for measurement (CRTM) in a user confidential virtual machine (CVM). The measurements of the software components are recorded in a runtime measurement register (RTMR) log and a digest of each entry of the RTMR log is extended into an RTMR configured for the user CVM. A signed quote and corresponding measurement entries of the RTMR log are provided to a verifier. The signed quote includes a value of the RTMR. A state of the user CVM may be verified based on the RTMR value and the RTMR log entries. The measurement entries of the RTMR log may be replayed to calculate platform configuration register (PCR) values and the TCG event log may be verified using the PCR values.
Abstract:
It is provided an apparatus comprising interface circuitry, machine-readable instructions, and processing circuitry to execute the machine-readable instructions. The machine-readable instructions include instructions to generate first attestation evidence based on a measurement of the system software proving the integrity of a system software running on the processing circuitry based on a root of trust of the processing circuitry. The machine-readable instructions further include instructions to generate second attestation evidence for verifying the integrity of a first confidential computing environment based on a measurement of the first confidential computing environment and on the generated first attestation evidence. The first confidential computing environment is operating on the system software and is executed by the processing circuitry. The first confidential computing environment is a virtual machine environment.
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.
Abstract:
Technologies for authenticity assurance for I/O data include a computing device with a cryptographic engine and one or more I/O controllers. A metadata producer of the computing device performs an authenticated encryption operation on I/O data to generate encrypted I/O data and an authentication tag. The metadata producer stores the encrypted I/O data in a DMA buffer and the authentication tag in an authentication tag queue. A metadata consumer decrypts the encrypted I/O data from the DMA buffer and determines whether the encrypted I/0 data is authentic using the authentication tag from the authentication tag queue. For input, the metadata producer may be embodied as the cryptographic engine and the metadata consumer may be embodied as a trusted software component. For output, the metadata producer may be embodied as the trusted software component and the metadata consumer may be embodied as the cryptographic engine. Other embodiments are described and claimed.