Confidential Computing By Microsoft Azure
- Denisse Soker
- 3 minute read
In an effort to define and accelerate the adoption of confidential computing Microsoft has taken several initiatives like founding the Confidential Computing Consortium alongside other significant players in the cloud arena (including Kindite). However, the most relevant effort to promote the protection of data in use was turning its confidential computing offerings generally available. In this blog post I will cover them following the information shared in this workshop.
Azure offers a hardware based TEE. With this new offering there are new capabilities opening up that support a wide array of use cases. For example, it is now possible to gain insights into data by collaborating across organizations without giving access to each dataset. This is of utmost relevance to highly regulated sectors, like healthcare or financial in which use cases of privacy preserving tech for secure multi-party data processing are relevant.
However, private join is not the only use case in which confidential computing becomes relevant. Additional use cases include enhancing application security or managing sensitive workloads that include data and code for confidential blockchains, secret storage, analysis, inferencing, secure data stores, machine learning training, or IoT (Internet of Things).
Confidential Computing in Azure Using Intel SGX Hardware
The goal of confidential computing is to minimize the attack surface to the CPU. To do so, Azure has collaborated with Intel to utilize its Intel SGX (Software Guard Extension) in Azure and facilitate confidential computing.
In the current Intel SGX based Azure machines, the EPC (Enclave Page Cache) memory has 256 MB of memory, this means that SGX-based enclaves can potentially harm application performance. Specifically, applications that require additional memory may suffer from such, due to the encrypting and decryption mechanism of the information back and forth from the enclave. Azure is partnering with Intel for future hardware that supports significantly larger enclave memory sizes.
What is Intel SGX?
Intel SGX is a set of instruction codes that allow developers to set aside a private region (TEE or protected enclave) where you can run your code or data confidentially. The end result is that the data is only ever in the clear while being accessed by the CPU and every time the data leaves that protected memory, it is encrypted.
In other words, Intel SGX offers a granular level of separation of code and data by creating trusted regions of memory called enclaves. Sensitive data and code are placed in the enclave, and this data and code is encrypted as soon as it leaves the enclave during execution.
Intel SGX Enclave VMs app models
Intel SGX can be used in Azure VM based models in one of the following two ways:
- New/Refactor application: New applications or existing ones (untrusted environment) are refactored to create a trusted portion of your application, and this will run inside the secure enclave or a TEE. This is done by leveraging tools like Open Enclave SDK (OE SDK) and Confidential Consortium Framework (CCF). This method offers maximum control of the amount of code running inside the enclave.
- Lift and Shift: If there is an existing, perfectly running application that works well, then it may also be possible to transfer it to a confidential computing environment by a complete lift and shift. This can be done using the LibOS Strategy, Open source such as SGX-LKL, or by leveraging Azure’s independent software vendor partners. Note, that not all lift and shift applications match this criteria and you need to check compatibility.
Azure Offerings for Creating New or Refactoring Applications
To facilitate confidential computing, Azure has made the following offerings generally available in its marketplace.
- DCsV2-Series VMs - The DCsV2 series VMs are Intel SGX enabled and are now generally available. They’re used to deploy and manage TEE enabled compute instances. This VM series is suitable for enterprises that want to protect their sensitive workloads during run-time in their cloud computing environments. Neither the operating system nor the hypervisor or anyone with physical access to the server can decrypt the sensitive data when it is being processed.
- Open Enclave SDK (OE SDK) - OE SDK is an open-source project that offers API surface to create, manage, and build portable applications for different enclave types. It is used to develop applications against a standard enclaving abstraction over Azure confidential computing VMs.
- Microsoft Azure Attestation Service (MAA) - MAA is used to attest that the code and data running on the enclave is the one that you think is running. Attestation is the process demonstrating that software binaries were properly instantiated on a trusted platform. It offers:
- High availability
- User-defined policies to restrict token generation
- Leverages Azure Active Directory (AD) capabilities for authentication of client requests