Securing customer data and internal register data during hardware checkstops in a multi-tenant environment

Providing a method and a corresponding system for encrypting customer workload data through a trusted entity such as a self-boot engine (SBE). More specifically, there is a method and a corresponding system for securely extracting out customer centric data in a manner that requires the customer payloads and/or workloads to register with the SBE and share the encryption key.

BACKGROUND

The present invention relates generally to the field of data security, and more particularly to securing user data that is captured during a data dump process.

In this document, the terms hardware checkstop (HW checkstop) and machine-check exception (MCE) are used interchangeably. The Wikipedia entry for “Machine-check exception” (as of Apr. 25, 2021) states as follows: “A machine-check exception (MCE) is a type of computer hardware error that occurs when a computer's central processing unit detects a hardware error in the processor itself, the memory, the I/O devices, or on the system bus; in some architecture an MCE only occur for an unrecoverable error. On x86 architectures, a machine-check exception is not caused by software. However, on other architectures such as PowerPC, certain software bugs such as invalid memory accesses can cause machine-check exceptions. The error usually occurs due to component failure or the overheating or overclocking of hardware components. Most machine check exceptions halt the operating system and require a restart before users can continue normal operation. Diagnosing the failure can be often difficult because so little information about what caused the problem is captured during the error.”

SUMMARY

According to an aspect of the present invention, there is a method, computer program product and/or system that performs the following operations (not necessarily in the following order): (i) receiving, by a hardware thread on a processor core, a set of user workload data, with the set of user workload data including sensitive secure information (SSI); (ii) extracting the SSI from the processor core to obtain a first extracted SSI; (iii) registering the first extracted SSI to a self-boot engine (SBE), with the registration including assigning an encryption key for the first extracted SSI; (iv) receiving, by the hardware thread on the processor core, an update to the set of user workload data; (v) responsive to the receipt of the update to the set of user workload data, overwriting the encryption key for the first extracted SSI; and (vi) differentiating, by the SBE, the first extracted SSI and the update to the set of user workload data.

DETAILED DESCRIPTION

I. The Hardware and Software Environment

An embodiment of a possible hardware and software environment for software and/or methods according to the present invention will now be described in detail with reference to the Figures.FIG.1is a functional block diagram illustrating various portions of networked computers system100, including: server sub-system102; client sub-systems104,106,108,110,112; communication network114; server computer200; communication unit202; processor set204; input/output (I/O) interface set206; memory device208; persistent storage device210; display device212; external device set214; random access memory (RAM) devices230; cache memory device232; and program300.

Memory208and persistent storage210are computer-readable storage media. In general, memory208can include any suitable volatile or non-volatile computer-readable storage media. It is further noted that, now and/or in the near future: (i) external device(s)214may be able to supply, some or all, memory for sub-system102; and/or (ii) devices external to sub-system102may be able to provide memory for sub-system102.

FIG.2shows flowchart250depicting a method according to the present invention.FIG.3shows program300for performing at least some of the method operations of flowchart250. This method and associated software will now be discussed, over the course of the following paragraphs, with extensive reference toFIG.2(for the method operation blocks) andFIG.3(for the software blocks).

Processing begins at operation S255, where user workload data module (“mod”)305receives a set of user workload data. In some embodiments of the present invention, the set of user workload data includes information that details a user's workflow process. In some instances, the set of user workload data can include sensitive secure information (SSI) that relates to the user's workflow process. In these instances, it is important to ensure that the SSI included in the user workload data is not compromised by being accessed by an unauthorized source.

Processing proceeds to operation S260, where extract SSI mod310extracts the SSI from the processor core. In some embodiments, the extracted SSI is processed separately from the remainder of the user workload data. Additionally, in some embodiments, an encryption key is created for the SSI that is initially extracted by extract SSI mod310.

Processing proceeds to operation S265, where register SSI mod315registers the extracted SSI (discussed in connection with operation S260, above) to a self-boot engine (SBE). In some embodiments, the registration of the extracted SSI to the SBE can occur through the use of an Application Program Interface (API) that is available on the host. This registration process is discussed further in Sub-Section III.

Processing proceeds to operation S270, where user workload data mod305receives an update to the set of user workload data. In some embodiments, the update to the set of user workload data can include information such as whether a current work payload is allocated to an existing processing core/thread. Alternatively, user workload data mod305can determine that an update has not yet been received.

Processing proceeds to operation S275, where encryption key mod320overwrites the encryption key for the extracted SSI. Processing finally proceeds to operation S280, where SSI processing mod325differentiates the extracted SSI and the updated set of user workload data (discussed in connection with operation S270, above).

Some embodiments of the present invention recognize the following facts, potential problems and/or potential areas for improvement with respect to the current state of the art: (i) in a server world, keeping the customer data secure is an important goal; (ii) in server deployments, a particular hardware (HW) error/checkstop can make a system go down; (iii) in these cases, it is important to collect HW dump information (such as registers, rings, etc.) that will help in analyzing the cause of certain HW failures; (iv) these registers (SPRs/GPRs) would typically have some customer sensitive data because a given workload is executing instructions over these arithmetic units; and (v) in order to analyze the cause of the failure, hardware engineers may want to know what program was executing on system, and SPR/GPR of the system provides that information which can then be used by system engineers.

Some embodiments of the present invention recognize the following facts, potential problems and/or potential areas for improvement with respect to the current state of the art: (i) one problem of a SPR/GPR data dump is that it may have customer sensitive data; (ii) this issue typically becomes more severe if a given server is hosting multiple workloads belonging to different customers because it is difficult to know how to encrypt the data since there is not necessarily a direction relationship between the hardware data and customer workloads; (iii) currently, the only way to make sure that the customer data is not compromised is to avoid a dump of the SPR/GPR register data; and (iv) however, this limits the system engineer's capability to debug those failures.

Some embodiments of the present invention recognize the following facts, potential problems and/or potential areas for improvement with respect to the current state of the art: (i) in multi-tenant scenarios, multiple workloads share common HW resources; (ii) a hypervisor maintains a shared pool of resources for different partitions dynamically based upon on the workload; (iii) in the case of a hardware checkstop scenario, where all the HW register dump information is needed (which may incidentally contain customer centric data) to debug the special issue, the customer data may get compromised; (iv) an out of band processor (who is in the chain of trusted entity) can help to encrypt these different workload data based on different keys shared by the workload; and (v) this includes the dump data required to debug when a customer workload crashes.

Some embodiments of the present invention recognize the following facts, potential problems and/or potential areas for improvement with respect to the current state of the art: (i) in proprietary systems, there are ways to capture the dump via a Flexible Service Processor, which includes a customer memory dump as well as hardware registers (SPRs/GPRs) of the threads on which customer load is assigned; (ii) this can be used later by the customer/company team to debug the root cause; (iii) hardware threads that are involved in running the customer workload will typically have some customer centric data stored in the registers (SPRs/GPRs) at some point of time; (iv) the register dump is important from a security point of view; (v) in a secure system, the Flexible Service Processor is a non-trusted entity, therefore the dump carried out by the FSP is also not secure; and (vi) currently, there is no process to encrypt the data before fetching it out.

In order to make the data dump secure, certain embodiments of the present invention push the collection of data to a SBE (self-booting engine) which is secure in the chain. In some embodiments, the SBE also has access to all of the Kernel data structures that are running the customer load. Based on this, the SBE will gain access to HW registers (SPRs/GPRs) which are associated with specific customer workload based on the kernel task_struct. Alternatively, there can be multiple customer workload instances that might be running on multiple HW threads at any point of time. Since the SBE is the origination point of the data dump, the SBE can encrypt the data with a relevant customer key that is shared during workload registration. Once the data is encrypted, the data can be fetched out from the SBE and would require a customer decryption key to de-crypt the data.

Some embodiments of the present invention depends on the Flexible Service Processor and how securely it can offload the data. This solution explains how it is possible to secure the data at the source itself.

Some embodiments of the present invention recognize the following facts, potential problems and/or potential areas for improvement with respect to the current state of the art: (i) in an open power class of servers, open BMC is the entity (that is the non-trusted entity) that does not have any major role to capture dump data in a Memory Preserving IPL (MPIPL); (ii) a self-boot engine (SBE, trusted entity) is the entity that captures the Architected Register States for all processors; (iii) each processor has cores and each core has HW threads; (iv) each HW threads have some separate and some common set of SPRs and GPRs; (iv) these SPRs and GPRs are the general purpose registers which are used to execute low level instructions for the customer payload; and (v) at any given point of time, HW threads are assigned by a host kernel for a specific customer payload, which can be derived by looking at the kernel data structures like task_struct which has information related to customer payload that it is running.

The intention here is to show that the architected registers specific to HW threads might contain sensitive customer data that the customer would not want a dump collector entity to know. Similarly on a system, where multiple customer payloads are running, there might be multiple such scenarios.

Consider the following example. Assume that core0 is assigned to customer0 and core1 is assigned to customer1. In this example, all of the SPRs and GPRs with respect to core0 are as follows: (i) core0 has four (4) HW threads for low level execution; (ii) each thread has thirty-two (32) GPRs and sixty-four (64) SPRs; (iii) this results in a total of 384 registers per core (96*4=384 registers per core). Now customer0 and customer1 would like to keep the information available in the 384 registers per core, with that information remaining secure and not available to share with anyone.

Here, if any sensitive data is getting processed in these registers, it might expose the security holes in the customer's workload and is potentially unhelpful from a business standpoint. In some cases, a solution is needed to keep the register data secure.

Some embodiments of the present invention may include one, or more, of the following features, characteristics and/or advantages: (i) securely extracts out the customer centric data; (ii) needs the customer payloads/workloads to register with the SBE and share the encryption key for the same; (iii) this can be done via an API available on the Host; and (iv) the payload can have an encryption key defined at some location where host can pick it up and pass it across to the SBE.

In some embodiments, the SBE needs to store the key with respect to the payload. Any update to the payload (such as whether a new payload is allocated to an existing core/thread), then the same will overwrite the present key in the SBE. In some cases, once this infrastructure is up and a dump of memory and HW registers is required when the payload crashes, then the SBE will be able to differentiate multiple payloads running in the system with the help of kernel data structures (task_struct or its equivalent).

Essentially, the SBE will be able to differentiate the SPRs/GPRs on a thread basis for different payloads. The dump (memory and registers) will then be encrypted with the saved keys per payload. Offloading the encrypted dump may have several ways like Flexible Service Processor helps in fetching out the dump or SBE can copy the dump into a reserved memory space which the payload itself can access when they come back online.

Some embodiments of the present invention may include one, or more, of the following features, characteristics and/or advantages: (i) encrypts the customer workload register data through a trusted entity such as the SBE; (ii) for this encryption to happen, the customer workload needs to share an encryption key with the SBE via a host kernel or through a shared memory which the SBE can access; and (iii) each customer workload would have to do the same if it needs the sensitive register data to get encrypted during MPIPL dump process and does not want the system engineers to decode some sensitive information out of it unless verified by the customer.

Some embodiments of the present invention may include one, or more, of the following features, characteristics and/or advantages: (i) SBE would have access to the host kernel memory, where it will have access to task_struct or an equivalent data structure; (ii) SBE would be able to derive the workload running on specific threads from these structure and would be in a position to encrypt the register data (SPRs/GPRs) with the previous shared customer workload specific key; and (iii) once the complete memory dump and the register dump is obtained, the customer can verify or prune the thread specific register data before system engineers can use the same to debug the Host Kernel/Opal Crash.

Some embodiments of the present invention may include one, or more, of the following features, characteristics and/or advantages: (i) the customer payloads/workloads registers with the SBE; (ii) the customer payloads/workloads share the encryption key for the same SBE through an API that is available on the Host; and (iii) the payload has an encryption key defined at some location which the host can pick up and pass it across to the SBE.

Some embodiments of the present invention may include one, or more, of the following features, characteristics and/or advantages: (i) the SBE needs to store the encryption key with respect to the payload; (ii) if a new payload is allocated to the an existing core/thread, then the new payload will over-write the present key in the SBE; (iii) once this infrastructure is up and assuming that a memory and HW register dump is required when payload crashes, then the SBE will be able to differentiate multiple payloads running in the system with the help of kernel data structures (such as task_struct or its equivalent); (iv) differentiates the SPRs/GPRs on a thread based on different payloads; (v) the dump (memory and registers) will then be encrypted with the saved keys per payload; (vi) offloading the encrypted dump can be done through several methods including using a Flexible Service Processor to fetch out the dump-related information; and (vii) the SBE can copy the dump-related information into a reserved memory space which the payload can access when it comes back online.

Data communication: any sort of data communication scheme now known or to be developed in the future, including wireless communication, wired communication and communication routes that have wireless and wired portions; data communication is not necessarily limited to: (i) direct data communication; (ii) indirect data communication; and/or (iii) data communication where the format, packetization status, medium, encryption status and/or protocol remains constant over the entire course of the data communication.

Receive/provide/send/input/output/report: unless otherwise explicitly specified, these words should not be taken to imply: (i) any particular degree of directness with respect to the relationship between their objects and subjects; and/or (ii) absence of intermediate components, actions and/or things interposed between their objects and subjects.

Without substantial human intervention: a process that occurs automatically (often by operation of machine logic, such as software) with little or no human input; some examples that involve “no substantial human intervention” include: (i) computer is performing complex processing and a human switches the computer to an alternative power supply due to an outage of grid power so that processing continues uninterrupted; (ii) computer is about to perform resource intensive processing, and human confirms that the resource-intensive processing should indeed be undertaken (in this case, the process of confirmation, considered in isolation, is with substantial human intervention, but the resource intensive processing does not include any substantial human intervention, notwithstanding the simple yes-no style confirmation required to be made by a human); and (iii) using machine logic, a computer has made a weighty decision (for example, a decision to ground all airplanes in anticipation of bad weather), but, before implementing the weighty decision the computer must obtain simple yes-no style confirmation from a human source.

Automatically: without any human intervention.