
Integrating Intel SGX Remote Attestation with Transport Layer Security Thomas Knauth, Michael Steiner, Somnath Chakrabarti, Li Lei, Cedric Xing, Mona Vij Intel Labs [email protected] ABSTRACT An integral part of the Intel SGX architecture is the ability to perform attestation. The attester wants to Intel® Software Guard Extensions (Intel® SGX) is a convince the challenger that it is a genuine Intel SGX promising technology to enhance securely processing enclave running on an up-to-date platform. At the information in otherwise untrusted environments. An end of the attestation process the enclave has important aspect of Intel SGX is the ability to perform convinced the challenger that it is genuine. Based on remote attestation to assess the endpoint’s the enclave’s attested attributes, the challenger trustworthiness. Commonly, remote attestation is decides whether to trust the enclave or not. used to establish an attested secure channel to provision secrets to the enclave. Previous work has shown that remote attestation and secure channel establishment must be integrated to We integrate Intel SGX remote attestation with the protect against man-in-the-middle attacks [1]. At a establishment of a standard Transport Layer Security minimum, the remote attestation protocol should (TLS) connection. Remote attestation is performed result in a shared secret that can function as the basis during the connection setup by embedding the for a secure channel. The current Intel SGX SDK attestation evidence into the endpoints TLS provides an instance of this concept: remote certificate. Importantly, we neither change the TLS attestation is performed using a modified Sigma [2] protocol, nor does our approach require changes to protocol. After a successful protocol instance the existing protocol implementations. attester and challenger share a secret. We have prototype implementations for three widely However, a shared secret only partially solves the used open-source TLS libraries – OpenSSL, wolfSSL problem of secure communication. Bootstrapping a and mbedTLS. We describe the reQuirements, design secure channel based on a shared secret is possible, and implementation details to integrate SGX remote but inefficient since it duplicates work. Instead, we attestation with TLS to bind attested TLS endpoints to want to seamlessly integrate attestation with the Intel SGX enclaves. establishment of a standard secure channel. The end result is an attested secure channel through which 1. INTRODUCTION the participants can communicate. Intel SGX is a recent (2015) Intel processor extension available since the 6th Gen Intel® Core™ processors. In this white paper we describe our approach to Intel SGX enables application developers to construct combine Intel SGX remote attestation into the trusted execution environments – called enclaves – to existing Transport Layer Security (TLS) secure channel perform computation on commodity CPUs while protocol. Most importantly we do leave the TLS achieving previously untenable security protections. protocol unchanged, allowing us to reuse existing Even highly privileged software running concurrently implementations. Additionally, our approach works on the same hardware, say, the operating system, with existing extension points in widely used and and virtual machine monitor, cannot observe an well-vetted implementations of TLS. Not requiring enclave’s data in clear text. This is possible thanks to modified libraries and enabling developers already changes in the microarchitecture that enhances familiar with common secure channel API further, restriction-access to enclave memory by anyone eases adoption. The proposed scheme is independent except the enclave to which the memory belongs. of the TLS implementation and we provide prototypes Version 2.0 each other. The enclaves perform a local message Application (2) (1) exchange to assess their identities and the fact that Application Challenger Enclave (3) (6) they share a common platform. Note that local attestation alone is insufficient to establish whether (4) (5) (7) the platform or the enclaves are genuine SGX enclaves. These facts can only be determined through Quoting Attestation remote attestation where the challenger typically is Enclave Verification off-platform. User Platform Intel SGX attestation covers the identity of the Figure 1: Remote Attestation Example. The challenger software running in the enclave (e.g., MRENCLAVE is off-platform with respect to the attester. and MRSIGNER), non-measurable state, such as the enclave mode (e.g., debug vs. production), additional for three different popular TLS libraries – OpenSSL, data the enclave wants to associate with itself (e.g., a wolfSSL and mbedtls. manifest describing the software’s configuration), and a cryptographic binding to the platform TCB. This The remainder of the text is structured as follows: We information is bundled into a data structure called a first provide some background on Intel SGX remote report. An interested party inspects the attributes attestation and TLS in Section 2. Section 3 presents contained in the report to make a decision on the our approach to incorporate remote attestation into trustworthiness of the enclave. the TLS protocol. Section 4 gives implementation details and describes the API. In Section 5 we discuss The integrity and authenticity of the attestation future extensions and challenges. Section 6 discusses report is ensured differently depending on whether related work before concluding in Section 7. the interested party resides on the same platform as the attester. For attestation between enclaves on the 2. BACKGROUND same platform, the report is authenticated through a In this section we provide background information on report key. For remote attestation, a special quoting SGX local and remote attestation in general (Sec 2.1) enclave signs the report with an attestation key to followed by an overview of the EPID (Sec. 2.2) and create a quote. ECDSA (Sec. 2.3) remote attestation model and the Figure 1 illustrates a high-level remote attestation Transport Layer Security (TLS) protocol (Sec. 2.4). flow [5] where the challenger and verifier engage in a Readers familiar with either may want to skip ahead. modified Sigma protocol [2] to establish a shared secret. The protocol starts with the challenger 2.1. SGX ATTESTATION sending a nonce to the application to guarantee The concept of attestation was previously explored in freshness (Step 1). The application creates a manifest the context of Trusted Computing [3]. A secure co- that includes a response to the challenge as well as an processor, called Trusted Platform Module (TPM), ephemeral key to encrypt future communication with performed cryptographic operations, such as key the challenger (Steps 2 and 3). The application generation, signing and storing of keys, in a secure computes a hash of the manifest and includes this environment. In addition, a TPM can also attest the hash as user-defined data when creating the report. overall platform’s state and configuration to other Including a hash of the manifest into the report is interested parties [4]. The assessing party is called crucial, as this binds the ephemeral key to this challenger while the assessed party is the attester. enclave. Binding the key and enclave instance Based on the attestation, the challenger can decide together is crucial to avoid masQuerading attacks [6] whether to trust the platform by comparing the [1] [7]. attester’s state to a reference value. Next, the enclave generates a report that summarizes Attestation is also an integral feature of the Intel SGX the enclave and platform state. The report includes architecture although the implementation details information on the platform (security version differ compared to TPMs. Intel SGX provides two number), enclave attributes, enclave measurement, attestation mechanisms [5] depending on where the software version, software vendor security version challenger and attester reside. Local attestation number, and additional user-provided data [8]. The allows two parties on the same platform to attest quoting enclave verifies and signs the report using the 2 attestation key (Step 4). The signed report, now called practice, reduces the barrier to entry and benefits the a quote, is returned to the application (Step 5) which overall Intel SGX ecosystem. passes it on to the challenger (Step 6). 2.3. ECDSA ATTESTATION The details of how the platform acquires the ECDSA-based attestation is an alternative attestation attestation key and how the quote can be verified model that allows third parties to build their own (Step 7) differs between the two remote attestation non-Intel attestation infrastructure. ECDSA benefits models. environments, such as data centers, where EPID’s privacy properties are unnecessary or deployment 2.2. EPID ATTESTATION constraints, like the reQuirement to communicate Initial versions of Intel SGX focused on privacy- with Intel back-end services during each attestation, sensitive client platforms. The Enhanced Privacy ID make EPID infeasible. ECDSA-based attestation [12] (EPID) protocol [9] allows systems to be identified as relies on standard ECDSA signatures (hence the genuine SGX platforms without revealing their name) as opposed to anonymous group signatures as identity in the process. This is important for use cases used in EPID. The quotes used to exchange involving client platforms where the service provider information about an enclave and the platform carry wants assurance
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages14 Page
-
File Size-