What is confidential computing?
Confidential computing is a cloud computing technology that isolates sensitive data in a protected CPU enclave during processing. The contents of the enclave - the data being processed, and the techniques used to process it - are accessible only to authorized programming code, and invisible and unknowable to anything or anyone else, including the cloud provider.
As companies rely more and more on public and hybrid cloud services, data privacy in the cloud is imperative. The primary goal of confidential computing is to provide greater assurance to companies that their data in the cloud is protected and confidential, and to encourage them to move more of their sensitive data and computing workloads to public cloud services.
For years cloud providers have offered encryption services for protecting data at rest (in storage and databases) and data in transit (moving over a network connection). Confidential computing eliminates the remaining data security vulnerability by protecting data in use - that is, during processing or runtime.
How confidential computing works
Before it can be processed by an application, data must be unencrypted in memory. This leaves the data vulnerable just before, during and just after processing to memory dumps, root user compromises and other malicious exploits.
Confidential computing solves this problem by leveraging a hardware-based trusted execution environment, or TEE, which is a secure enclave within a CPU. The TEE is secured using embedded encryption keys, and embedded attestation mechanisms that ensure the keys are accessible to authorized application code only. If malware or other unauthorized code attempts to access the keys - or if the authorized code is hacked or altered in any way - the TEE denies access to the keys and cancels the computation.
In this way, sensitive data can remain protected in memory until the application tells the TEE to decrypt it for processing. While decrypted and throughout the entire computation process, the data is invisible to the operating system (or hypervisor in a virtual machine), to other compute stack resources, and to the cloud provider and its employees.
Why use confidential computing?
- To protect sensitive data, even while in use - and extend cloud computing benefits to sensitive workloads. When used together with data encryption at rest and transit with exclusive control of keys, confidential computing eliminates the single largest barrier to moving sensitive or highly regulated data sets and application workloads from an inflexible, expensive on-premises IT infrastructure to a more flexible and modern public cloud platform.
- To protect intellectual property. Confidential computing isn't just for data protection. The TEE can also be used to protect proprietary business logic, analytics functions, machine learning algorithms, or entire applications.
- To collaborate securely with partners on new cloud solutions. For example, one company can combine its sensitive data with another company's proprietary calculations to create new solutions - without either company sharing any data or intellectual property it doesn't want to share.
- To eliminate concerns when choosing cloud providers. Confidential computing lets a company choose the cloud computing services that best meet its technical and business requirements, without worrying about storing and processing customer data, proprietary technology and other sensitive assets. This also helps alleviate any additional competitive concerns if the cloud provider also provides competing business services.
- To protect data processed at the edge. Edge computing is a distributed computing framework that brings enterprise applications closer to data sources such as IoT devices or local edge servers. When this is used as part of distributed cloud patterns, the data and application at edge nodes can be protected with confidential computing.
The Confidential Computing Consortium
In 2019, a group of CPU manufacturers, cloud providers and software companies - Alibaba, AMD, Baidu, Fortanix, Google, IBM/Red Hat, Intel, Microsoft, Oracle, Swisscom, Tencent and VMware - formed the Confidential Computing Consortium (CCC) (link resides outside IBM), under the auspices of The Linux Foundation.
The CCC's goals are to define industry-wide standards for confidential computing and to promote the development of open source confidential computing tools. Two of the Consortium's first open source projects, Open Enclave SDK and Red Hat Enarx, help developers build applications that run with without modification across TEE platforms.
However, some of today's most widely used confidential computing technologies were introduced by member companies before the formation of the Consortium. For example, Intel SGX (Software Guard Extensions) technology, which enables TEEs on the Intel Xeon CPU platform, has been available since 2016; in 2018 IBM made confidential computing capabilities generally available with its IBM Cloud Hyper Protect Services and IBM Cloud Data Shield products.
Confidential computing and IBM Cloud
IBM has been investing in confidential computing research and technologies for over a decade, and today offers a range of confidential computing cloud services and related, industry-leading data protection capabilities:
- The family of IBM Cloud Hyper Protect Cloud Services enables end-to-end protection for clients' business processes in the cloud, and is built on secured enclave technology that leverages the industry’s first and only FIPS 140-2 Level 4 certified cloud hardware security module (HSM). The family includes IBM Cloud Hyper Protect Crypto Services, which provides complete control of cloud data encryption keys and cloud hardware security modules, and the industry's only Keep Your Own Key (KYOK) for data encryption at rest.
- IBM Cloud Data Shield enables users to protect containerized applications in a secure enclave on an Kubernetes Service and OpenShift clusters, with no code change. Built on Intel SGX and the Fortanix Runtime Encryption Platform, IBM Cloud Data Shield extends Intel SGX language support from C and C++ to Python and Java™, and provides SGX applications for MySQL, NGINX and Vault.
- IBM Cloud HPC Cluster enables customers to quickly and easily build scalable, high-performance compute clusters in the IBM Cloud. Among other security features, IBM Cloud HPC Cluster supports end to end confidentiality with 'bring your own encrypted operating system' and Keep Your Own Key (KYOK) capabilities.
- IBM Secure Execution for Linux (PDF, 100 KB) enables a trusted execution environment (TEE) on IBM LinuxONE or IBM Z hybrid cloud environments.
To get started with confidential computing on IBM Cloud, sign up for an IBMid and create your IBM Cloud account.
About the author
Nataraj Nataratnam, Distinguished Engineer, is CTO for IBM Cloud Security, with 20+ years' experience in IT security and 95 patents in the field. You can find his most recent blogs and videos here.