Network Working Group A. Pastor Internet-Draft D. Lopez Intended status: Experimental Telefonica I+D Expires: April 20, 2016 October 18, 2015 Remote Attestation Procedures for virtualized NSFs (vNSFs) through the I2NSF Security Controller draft-pastor-i2nsf-vnsf-attestation-00 Abstract This document describes the procedures a user can follow to assess the trust on a virtualized NSF and its user-defined configuration through the I2NSF Security Controller. The procedure to assess trustworthiness is based on a remote attestation between the user and the vNSF. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 20, 2016. Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as Pastor & Lopez Expires April 20, 2016 [Page 1] Internet-Draft Remote Attestation for vNFs October 2015 described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. User Expectations about Trust . . . . . . . . . . . . . . . . 4 2.1. First Step: User-Agnostic Attestation . . . . . . . . . . 4 2.2. Second Step: User-Specific Attestation . . . . . . . . . . 4 3. Application of Trusted Computing . . . . . . . . . . . . . . . 5 3.1. Applying Trusted Computing . . . . . . . . . . . . . . . . 8 4. Trusted vNSF Platforms . . . . . . . . . . . . . . . . . . . . 9 4.1. Requeriments for a Trusted vNSF Platform . . . . . . . . . 9 4.1.1. Trusted Boot . . . . . . . . . . . . . . . . . . . . . 9 4.1.2. Remote Attestation Service . . . . . . . . . . . . . . 10 4.1.3. Secure Boot . . . . . . . . . . . . . . . . . . . . . 10 5. Remote Attestation Procedures . . . . . . . . . . . . . . . . 10 5.1. Trusted Channel with the Security Controller . . . . . . . 11 5.2. Security Controller Attestation . . . . . . . . . . . . . 12 5.3. Platform Attestation . . . . . . . . . . . . . . . . . . . 13 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 8.2. Informative References . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14 Pastor & Lopez Expires April 20, 2016 [Page 2] Internet-Draft Remote Attestation for vNFs October 2015 1. Introduction As described in [I-D.pastor-i2nsf-merged-use-cases], when virtualization is applied to the NSF environment (vNSF) it implies several additional concerns in security. The most relevant threats associated with a security virtual platform are: o An unknown/unauthorized user can try to impersonate another user that can legitimately access virtualized NSF services. This attack may lead to accessing the policies and applications of the attacked user or to generate network traffic outside a the security functions with a falsified identity. o An authorized user may misuse assigned privileges to alter the network traffic processing of other users in the virtualization platform. This can become especially serious when such a user has administration privileges granted by the virtualization provider, the ISP or the local network operator. o A user may try to install malformed elements (policy or application), trying to directly take the control of a NSF or virtualization platform (for example by exploiting a vulnerability on one of the functions or may try to intercept or modify the traffic of other users in the same platform. o A malicious virtualization provider can modify the software running on it (the operating system or a concrete vNSF) to alter the behaviour of the latter. This event has a high impact on all users accessing vNSFs as the virtualization provider has the highest level of privilege on the software in execution. o A user with physical access to the virtualization platform can modify the behavior of hardware components, or the components themselves. Furthermore, it can access a serial console (most devices offer this interface for maintenance reasons) to access the NSF software with the same level of privilege of the virtualization provider. Mutual authentication and, what is more important, the attestation of the virtualization platform and the vNSFs by users could address these threats to an acceptable level of risk. The user can have a proof that their vNSFs and policies are correctly (from the user point of view) enforced by the Security Controller. Taking into account the threat identified above, this document first identifies the user expectations regarding remote trust establishment, briefly analyzes Trusted Computing techniques, and finally describes the proposed mechanisms for remote establishment of Pastor & Lopez Expires April 20, 2016 [Page 3] Internet-Draft Remote Attestation for vNFs October 2015 trust through the Security Controller. 2. User Expectations about Trust From a high-level standpoint, in a virtualized I2NSF platform, the user connects and authenticates to the Security Controller, which then initialises the user's vNSFs and policies. Afterwards, the user traffic reaches the Internet via the virtualized platform which hosts the user's vNSFs. The user's expectations of the platform behavior are thus twofold: o The user traffic will be treated according to the user-specified vNSFs and policies, and no other processing will be performed by the Security Controller or the platform itself (e.g. traffic eavesdropping). o Each vNSF (and its corresponding policies) behaves as configured by the user. We will refer to the attestation of these two expectations as the "user-agnostic attestation" and the "user-specific attestation". 2.1. First Step: User-Agnostic Attestation This is the first interaction between a user and a Security Controller: the user wants to attest that he is connected to a genuine Security Controller before he continues with the authentication. In this context, two properties characterise the genuineness of the Security Controller: 1. That the identity of the Security Controller is correct 2. That it will process the user's credentials and set up the user vNSFs and policies properly. Once these two properties are proven to the user, the user knows that their credentials will only be used by the Security Controller to set up the execution platform for their vNSFs. 2.2. Second Step: User-Specific Attestation From the security enforcement point of view, the user agnostic attestation focuses on the initialization of the execution platform for the vNSFs. This second step aims to prove to the user that their security is enforced accordingly with their choices (i.e. vNSFs and policies). The attestation can be performed at the initialization of the vNSFs, before the user traffic is processed by the vNSFs, or Pastor & Lopez Expires April 20, 2016 [Page 4] Internet-Draft Remote Attestation for vNFs October 2015 during the execution of the vNSFs. Support of static vNSF attestation is REQUIRED for a Security Controller managing vNSFs, and MUST be performed before the user traffic is redirected through any set of vNSFs. The Security Controller MUST provide a proof to the user that the instantiated vNSFs and policies are the ones chosen. Additionally to the vNSFs instantiation attestation, a continuous attestation of the vNSFs execution MAY be required by a user to ensure their security. 3. Application of Trusted Computing In a nutshell, Trusted Computing (TC) aims at answering the following question: "As a user or administrator, how can I have some assurance that a computing system is behaving as it should?". The major enterprise level TC initiative is the Trusted Computing Group [TCG], which has been established for more than a decade, that primarily focuses on developing TC for commodity computers (servers, desktops, laptops, etc.). The overall scheme proposed by TCG for using Trusted Computing is based on a step-by-step extension of trust, called a Chain of Trust. It uses a transititive mechanism: if a user can trust the first execution step and each step correctly attests the next executable software for trustworthiness, then a user can trust the system. Pastor & Lopez Expires April 20, 2016 [Page 5] Internet-Draft Remote Attestation for vNFs October 2015 +-----------+ | | extends PCR | Platform +------------------------+ | | | +-----^-----+ | | | |measures | +-----------+ | | Security | extends PCR | | +---------------------+ | | Controller| | | +-----^-----+ | | | | | |measures +-v--v----------+ +-----------+ | | | | extends PCR | | | Bootloader+-------------------> Root of Trust | | | | | +-----^-----+ | | | +-^--^----------+ |measures | | +-----------+ | | | | extends PCR | | | BIOS +---------------------+ | | | | +-----^-----+ | | | |measures | +-----------+ | | Bootblock | extends PCR | | (CRTM) +------------------------+ | | +-----------+ Figure 1: Applying Trusted Computing Effectively, during the loading of each piece of software, the integrity of each piece of software is measured and stored inside a log that reflects the different boot stages, as illustrated in the figure above. Later, at the request of a user, the platform can present this log (signed with the unique identity of the platform) to the user, which can be checked by the user to prove the platform identity and attest the state of the system. The base case for the extension of the Chain of Trust is called the Core Root of Trust. This Core Root of Trust (CRTM) encompasses the minimal combination of hardware and software elements that a remote verifier needs to trust in order to validate the entire Chain of Trust. Pastor & Lopez Expires April 20, 2016 [Page 6] Internet-Draft Remote Attestation for vNFs October 2015 From the Chain of Trust extension point of view, any component that needs to be attested is considered an adversary and must not be able to modify its behaviour measurement. It is then necessary the use of hardware mechanisms in combination with software components to create a strong unforgeable identity and provide safer storage of secrets. Therefore the main components of the Core Root of Trust are: 1. A specialized hardware component to store the log and measurements away from the software access 2. An initial isolated component that is able to measure the first non-trusted software, which will be then trusted to measure the next stage software. The TCG has created a standard for the the design and usage of a secure cryptoprocessor to address the storage of keys, general secrets, identities and platform integrity measurements: the Trusted Platform Module (TPM). Since the TPM is located outside of the execution path it cannot measure it, thus the need of a second trusted component to do the measurements and send them to the TPM. The initial straightforward solution was to trust the first to-be- executed block of software, using extensive auditing or formal verification for example; but this is still an implicit trust since nothing guarantees the user that it is the actual executed code. The CRTM can be strengthened by either an out-of-band discrete component or through in-band enforcement. When using a TPM as a root of trust, measurements of the software stack are stored in special on-board Platform Configuration Registers (PCRs) on a discrete TPM. There are normally a small number of PCRs that can be used for storing measurements, however it is not possible to directly write to a PCR; instead measurements must be stored using a process called Extending PCRs. The extend operation can update a PCR by producing a global hash of the concatenated values of the previous PCR value with the new measurement value, for example: PCR = SHA-1 ( PCR | measurement ) The Extend operation allows for an unlimited number of measurements to be captured in a single PCR, since the size of the value is always the same and it retains a verifiable ordered chain of all the previous measurements. Furthermore, it is computationally infeasible for an attacker to calculate two different hashes that will match the same resulting value of an PCR extend operation. Pastor & Lopez Expires April 20, 2016 [Page 7] Internet-Draft Remote Attestation for vNFs October 2015 3.1. Applying Trusted Computing Attestation of the virtualization platform will thus rely on a process of measuring the booted software and storing a chained log of measurements, typically referred to as Trusted Boot. The user must be able to sent a nonced query of the state of a platform to the Root of Trust for a signed set of platform measurements. The user will either validate the signed set of measurements with a trusted third party verifier who will assess whether the software configuration is trusted, or the user can check for themselves against their own set of reference digest values (measurements) that they have obtained a priori, and having already known the public endorsement key of the remote Root of Trust. Optionally, to preserve the privacy of a platform identity, an Attestation Identity Key (AIK) can be generated and used by the Root of Trust for the purpose of attestation instead of the Public Endorsement Key. This must be done in conjunction with a third party Privacy Certificate Authority (CA) who is trusted to not reveal the real identities, but to act as an intermediary. As well as for providing a signed audit log of boot measurements, the PCR values can also be used as an identity for dynamically decrypting encrypted blobs on the platform (such as encryption keys or configurations that belong to operating system components). Software can choose to submit pieces of data to be encrypted by the Root of Trust (which has its own private asymmetric key and PCR registers) and only have it decrypted based on a criteria. This criteria can be that the platform booted into a particular state (e.g. a set of PCR values). Once the desired criteria is described and the sensitive data is encrypted by the root of trust, the data has been sealed to that platform state. The sealed data will only be decrypted when the platform measurements held in the the root of trust match the particular state. As described above, Trusted Boot requires the use of a root of trust for safely storing measurements and secrets. Since the Root of Trust is self-contained and isolated from all the software that is measured, it is able to produce a signed set of platform measurements to a local or remote user. Trusted Boot however does not provide enforcement of a configuration, since the root of trust is a passive component not in the execution path, and is solely used for safe independent storage of secrets and platform measurements. It will respond to attestation requests with the exact measurements that were made during the software boot process. Sealing and unsealing of sensitive data is also a strong advantage of Trusted Boot, since it prevents leakage of secrets in the event of an untrusted software configuration. Trusted Boot should not be confused with a different mechanism known Pastor & Lopez Expires April 20, 2016 [Page 8] Internet-Draft Remote Attestation for vNFs October 2015 as "Secure Boot", as they both are designed to solve different problems. Secure Boot is a mechanism for a platform owner to lock a platform to only execute particular software. Software components that do not match the configuration digests will not be loaded or executed. This mechanism is particularly useful in preventing bootkits from successfully infecting a platform on reboot. A common standard for implementing Secure Boot is described in [UEFI]. Secure Boot only enforces a particular configuration of software, it does not allow a user to attest or quote for a series of measurements. 4. Trusted vNSF Platforms In the I2NSF environment users directly interact with the Security Controller, which will become the essential element to implement the measurements described in the procedures described above, relaying on a TPM for the Root of Trust. 4.1. Requeriments for a Trusted vNSF Platform Although a discrete hardware TPM is RECOMMENDED, relaxed alternatives (such as embedded CPU TPMs, or memory and execution isolation mechanisms) MAY also be applied when the required level of assurance is lower. This reduced level of assurance MUST be communicated to the user by the Security Controller during the initial mutual authentication phase. 4.1.1. Trusted Boot All users who interact with a Security Controller MUST be able to: a. Identify the Security Controller based on the public key of a Root of Trust. b. Retrieve a set of measurements of all the base software the Security Controller has booted (i.e. the vNSF platform). This requires that firmware and software MUST be measured before loading, with the resulting value being used to extend the appropriate PCR register. The following list describes which PCR registers SHOULD be used during a Trusted Boot process: o PCRs 00-03: for use by the CRTM (Initial EEPROM or PC BIOS) o PCRs 04-07: for use by the bootloader stages o PCRs 08-15: for use by the booted base system Pastor & Lopez Expires April 20, 2016 [Page 9] Internet-Draft Remote Attestation for vNFs October 2015 4.1.2. Remote Attestation Service A service MUST be present for providing signed measurements from the RoT to the end user. NOTE: The details for the remote attestation protocol have to be defined. 4.1.3. Secure Boot Using a mechanism such as Secure Boot helps provide strong prevention of software attacks. Furthermore, in combination with a hardware- based TPM, Secure Boot can provide some resilience to physical attacks (e.g. preventing a class of offline attacks and unauthorised system replacement). For vNSF platform providers, it is RECOMMENDED that Secure Boot is employed wherever possible with an appropriate firmware update mechanism, due to the possible threat of software/ firmware modifications in either public places or privately with inside attackers. 5. Remote Attestation Procedures The establishment of trust with the Security Controller and the vNSF platform consists of three main phases, which need to be coordinated by the user through a trusted application executed by a trusted network-attached device: 1. Trusted channel with the Security Controller. During this phase, the user securely connects to the Security Controller to avoid that user data can be tampered with or modified by an attacker if the network cannot be considered trusted. The establishment of the trusted channel is completed after the next step. 2. Security Controller attestation. During this phase, the user verifies that the Security Controller components responsible for handling the user's credentials and for the isolation with respect to other potential users are behaving correctly. Furthermore, it is verified that the identity of the platform attested is the same of the one presented by the Security Controller during the establishment of the secure connection. 3. Platform attestation. During this step, that can be repeated periodically until the user connection is terminated, the Security Controller verifies the integrity of the elements composing the user vNSF platform. The components responsible for this task have been already attested during the previous phase. Pastor & Lopez Expires April 20, 2016 [Page 10] Internet-Draft Remote Attestation for vNFs October 2015 +----------+ 3. Attestatation | Trusted | 3. Attestatation +--------------------> Third <----------+ | | Party | | | +----------+ +----------------+ +----------v-------+ | +-----v-----+ | | User Application | | | Security | | | | 1. Trusted channel | | Controller| | | 2. Get Cert +------+ handshake+----------> | | | 3. Attestatation | | +-----------+ | | 4.Cont. handshake| | | | | | | | | | +---------+ | | | | | vNSF | | | | | +---------+ | +------------------+ +----------------+ Figure 2: Steps for remote attestation In the following each step, as depicted in the above figure, is discussed in more detail. 5.1. Trusted Channel with the Security Controller A trusted channel is an enhanced version of the secured channel that, differently from the latter, requires the integrity verification of the contacted endpoint by the other peer during the initial handshake. However, simply transmitting the integrity measurements over the channel does not guarantee that the platform verified is the channel endpoint. The public key or the certificate for the secure communication MUST be included as part of the measurements presented by the contacted endpoint during the remote attestation. This way, a malicious platform cannot relay the attestation to another platform as its certificate will not be present in the measurements list of the genuine platform. In addition, the problem of a potential loss of control of the private key must be addressed (a malicious endpoint could prove the identity of the genuine endpoint). This is done by defining a long- lived Platform Property Certificate. Since this certificate connects the platform identity to the AIK public key, an attacker cannot use a stolen private key without revealing his identity, as it may use the certificate of the genuine endpoint but cannot create a quote with the AIK of the other platform. Finally, since the platform identity can be verified from the Pastor & Lopez Expires April 20, 2016 [Page 11] Internet-Draft Remote Attestation for vNFs October 2015 Platform Property Certificate, the information in the certificate to be presented during the establishment of a secure communication are redundant. This allows for the use of self-signed certificates, what would simplify operational procedures in virtualized environments, especially when they are multi-tenant. Thus, in place of certificates signed by trusted CAs, the use of self-signed certificates (which still need to be included in the measurements list) is RECOMMENDED. The steps required for the establishment of a trusted channel with the Security Controller are as follows: 1. The user application begins the trusted channel handshake with the selected Security Controller. 2. The certificate of the Security Controller is collected and used for verifying the binding of the attestation result to the contacted endpoint. 3. The user application performs Security Controller attestation either locally or with the help of a Trusted Third Party. 4. If the result of the attestation is positive, the application continues the handshake and establishes the trusted channel. Otherwise, it closes the connection. 5.2. Security Controller Attestation During the establishment of the trusted channel, the user attests the Security Controller by verifying the identity of the contacted endpoint and its integrity. Initially the Security Controller measures all the hardware and software components involved in the boot process, in order to build the chain of trust. Since a user terminal may not have enough capabilities to perform the integrity verification of a Security Controller the user application MAY request the status of a Security Controller to a Trusted Third Party (TTP), which is in charge of communicating with it. This choice has the additional advantage of preventing an attacker from easily determining the software running at the Security Controller. If the user application directly performs the remote attestation it performs the following steps: 1. Ask the Security Controller to generate an integrity report with the format defined in [TSCGIRSS]. Pastor & Lopez Expires April 20, 2016 [Page 12] Internet-Draft Remote Attestation for vNFs October 2015 2. The Security Controller retrieves the measurements and asks the TPM to sign the PCRs with an Attestation Identity Key (AIK). This signature provides the user with the evidence that the measurements received belong to the Security Controller being attested. 3. Once the integrity report has been generated it is sent back to the user application. 4. The user application first checks if the integrity report is valid by verifying the quote and the certificate associated to the AIK, and then determines if the Security Controller is behaving as expected, i.e. its software has not been compromised and isolation among the users connected to it is enforced. As part of the verification, the application also checks that the digest of the certificate, received during the trusted channel handshake, is present among measurements. If the user application is running on a terminal with low computation resources, it may contact a TTP which, in turn, attests the Security Controller and returns the result of the integrity evaluation to the user, following the same steps depicted above. 5.3. Platform Attestation The main outcome of the Security Controller attestation is to detect whether or not it is correctly configuring the virtualization container for the vNSFs belonging to the connecting user (the virtualization platform, or vNSF platform) in a way that the user's traffic is processed only by the NSFs within the container. The platform attestation, instead, evaluates the integrity of the NSFs running within the platform. The steps are essentially similar to the ones described in the previous section. Attesting vNSFs typically running as virtual machines can become a rather costly operation, especially if periodic monitoring is required by the requested level of assurance, and there are several proposals to make them feasible, from the proposal of virtual TPMs in [VTPM] to the application of Virtual Machine Introspection through an integrity monitor described by [VMIA]. 6. Security Considerations This document is specifically oriented to security and it is considered along the whole text. Pastor & Lopez Expires April 20, 2016 [Page 13] Internet-Draft Remote Attestation for vNFs October 2015 7. IANA Considerations This document requires no IANA actions. 8. References 8.1. Normative References [I-D.pastor-i2nsf-merged-use-cases] Pastor, A., Lopez, D., Wang, K., Zhuang, X., Qi, M., Zarny, M., Majee, S., Leymann, N., Dunbar, L., and M. Georgiades, "Use Cases and Requirements for an Interface to Network Security Functions", draft-pastor-i2nsf-merged-use-cases-00 (work in progress), June 2015. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ RFC2119, March 1997, . [TCG] "Trusted Computing Group (TCG)", . [TSCGIRSS] "Infrastructure Work Group Integrity Report Schema Specification, Version 1.0", . 8.2. Informative References [UEFI] "UEFI Specification Version 2.2 (Errata D), Tech. Rep.". [VMIA] "Verifying system integrity by proxy". [VTPM] "vTPM:Virtualizing the Trusted Platform Module", . Pastor & Lopez Expires April 20, 2016 [Page 14] Internet-Draft Remote Attestation for vNFs October 2015 Authors' Addresses Antonio Pastor Telefonica I+D Zurbaran, 12 Madrid, 28010 Spain Phone: +34 913 128 778 Email: antonio.pastorperales@telefonica.com Diego R. Lopez Telefonica I+D Zurbaran, 12 Madrid, 28010 Spain Phone: +34 913 129 041 Email: diego.r.lopez@telefonica.com Pastor & Lopez Expires April 20, 2016 [Page 15]