One document matched: draft-pritikin-anima-bootstrapping-keyinfra-01.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY I-D.behringer-autonomic-network-framework PUBLIC "" "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.behringer-homenet-trust-bootstrap.xml">
<!ENTITY I-D.irtf-nmrg-autonomic-network-definitions PUBLIC "" "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-nmrg-autonomic-network-definitions.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7030 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7030.xml">
]>
<rfc category="info" docName="draft-pritikin-anima-bootstrapping-keyinfra-01"
     ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="yes" ?>

  <?rfc compact="yes" ?>

  <?rfc symrefs="yes" ?>

  <?rfc sortrefs="yes"?>

  <?rfc iprnotified="no" ?>

  <?rfc strict="yes" ?>

  <front>
    <title>Bootstrapping Key Infrastructures</title>

    <author fullname="Max Pritikin" initials="M." surname="Pritikin">
      <organization>Cisco</organization>

      <address>
        <email>pritikin@cisco.com</email>
      </address>
    </author>

    <author fullname="Michael H. Behringer" initials="M.H."
            surname="Behringer">
      <organization>Cisco</organization>

      <address>
        <email>mbehring@cisco.com</email>
      </address>
    </author>

    <author fullname="Steinthor Bjarnason" initials="S." surname="Bjarnason">
      <organization>Cisco</organization>

      <address>
        <email>sbjarnas@cisco.com</email>
      </address>
    </author>

    <date day="13" month="February" year="2015" />

    <area>Operations and Management</area>

    <workgroup>ANIMA WG</workgroup>

    <abstract>
      <t>This document specifies automated bootstrapping of an key
      infrastructure using vendor installed IEEE 802.1AR manufacturing
      installed certificates, in combination with a vendor based service on
      the Internet. Before being authenticated, a new device has only
      link-local connectivity, and does not require a routable address. When a
      vendor provides an Internet based service, devices can be forced to join
      only specific domains but for constrained environments we describe a
      variety of options that allow bootstrapping to proceed.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>To literally "pull yourself up by the bootstraps" is an impossible
      action. Similarly the secure establishment of a key infrastructure
      without external help is also an impossibility. Today it is accepted
      that the initial connections between nodes are insecure, until key
      distribution is complete, or that domain-specific keying material is
      pre-provisioned on each new device in a costly and non-scalable manner.
      This document describes a zero-touch approach to bootstrapping an entity
      by securing the initial distribution of key material using third-party
      generic keying material, such as a manufacturer installed IEEE 802.1AR
      certificate <xref target="IDevID"></xref>, and a corresponding
      third-party service on the Internet.</t>

      <t>The two sides of an association being bootstrapped authenticate each
      other and then determine appropriate authorization. This process is
      described as four distinct steps between the existing domain and the new
      entity being added:</t>

      <t><list style="symbols">
          <t>New entity authentication: "Who is this? What is its
          identity?"</t>

          <t>New entity authorization: "Is it mine? Do I want it? What are the
          chances it has been compromised?"</t>

          <t>Domain authentication: "What is this domain's claimed
          identity?"</t>

          <t>Domain authorization: "Should I join it?"</t>
        </list></t>

      <t>A precise answer to these questions can not be obtained without
      leveraging an established key infrastructure(s). The domain's decisions
      are based on the new entity's authenticated identity, as established by
      verification of previously installed credentials such as a manufacturer
      installed IEEE 802.1AR certificate, and verified back-end information
      such as a configured list of purchased devices or communication with a
      trusted third-party. The new entity's decisions are made according to
      verified communication with a trusted third-party or in a strictly
      auditable fasion.</t>

      <t>Optimal security is achieved with IEEE 802.1AR certificates on each
      new entity, accompanied by a third-party Internet based service for
      verification. The concept also works with less requirements, but is then
      less secure. A domain can choose to accept lower levels of security when
      a trusted third-party is not available so that bootstrapping proceeds
      even at the risk of reduced security. Only the domain can make these
      decisions based on administrative input and known behavior of the new
      entity.</t>

      <t>The result of bootstrapping is that a domain specific key
      infrastructure is deployed. Since IEEE 802.1AR PKI certificates are used
      for identifying the new entity and the public key of the domain identity
      is leveraged during communiciations with an Internet based service,
      which is itself authenticated using HTTPS, bootstrapping of a domain
      specific Public Key Infrastructure (PKI) is fully described. Sufficient
      agility to support bootstrapping alternative key infrastructures (such
      as symmetric key solutions) is considered although no such key
      infrastructure is described.</t>

      <section title="Terminology">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in
        <xref target="RFC2119"></xref>.</t>

        <t>The following terms are defined for clarity:</t>

        <t></t>
      </section>
    </section>

    <section title="Architectural Overview">
      <t>The logical elements of the bootstrapping framework are described in
      this section. Figure 1 provides a simplified overview of the components.
      Each component is logical and may be combined with other components as
      necessary.</t>

      <t><figure>
          <artwork><![CDATA[                                              Factory components                
                                                     .
                                                     . +------------+         
                                                     . | Factory CA |
                                                     . +------------+       
                                                     .        |
                                                     . +------------+                      
                                                     . |            |                     
   +--------------(provides)---------------------------|  Factory   | 
   |                                       +---------->|            |              
   |                                       |         . +------------+              
   |                                       V         .                               
   |                              +---------------+  . +------------+
   |                              | Orchestrator  |  . | MASA       |
   V                              +---------------+  . | Service    |
+-------+                                  |         . |            |
| New   |        +------------+       +-----------+  . +------------+
| Entity|<--L2-->|    Proxy   |<----->|           |  .......  ^
|       |        +------------+       |           |           |
|       |                             | Registrar |           |
|       |                             |           |           |
|       |<--DHCP-->(L3 bootstrap)     |           |           |
|       |                             |           |           |
|       |<-----L3---------------------( registrar )-----------+    
|       |                             ( may proxy )        |           
+-------+                             +-----------+           
                                                |
                          +----------------------------+
                 ^        |  Domain Certification      | ^
                 .        |      Authority             | .
                 .        +----------------------------+ .
                 .                                       .
                 .........................................
                                   |
                           "domain" components



]]></artwork>
        </figure>Figure 1</t>

      <t><list style="hanging">
          <t hangText="Domain:">The set of entities that trust a common key
          infrastructure trust anchor.</t>

          <t hangText="Domain CA:">The domain Certification Authority (CA)
          provides certification functionalities to the domain. At a minimum
          it provides certification functionalities to the Registrar and
          stores the trust anchor that defines the domain. Optionally, it
          certifies all elements.</t>

          <t hangText="Domain Identity:">The domain identity is the 160-bit
          SHA-1 hash of the BIT STRING of the subjectPublicKey of the domain
          trust anchor that is stored by the Domain CA. This is consistent
          with the RFC5280 Certification Authority subject key identifier of
          the Domain CA's self signed root certificate. (A string value bound
          to the Domain CA's self signed root certificate subject and issuer
          fields is often colloquially used as a humanized identity value but
          during protocol discussions the more exact term as defined here is
          used).</t>

          <t hangText="Orchestrator:">Although bootstrapping of an individual
          device is automated and requires zero administrative involvement
          (particularly on the New Entity) the orchestrator drives general
          operations of the domain. This can be an automated process or a
          human administrator, see <xref target="accepting"></xref> for more
          details.</t>

          <t hangText="Factory:">This instantiates the New Entity. For
          physical devices this can be representative of third-party vendor
          manufacturing, ordering and shipping process(es) that results in a
          physical hardware device with an IEEE 802.1AR identity being drop
          shipped to a destination domain for physical installation. In a
          virtual machine environment this can be the virtual machine
          hypervisor control software that initiates a virtual machine
          instance, in which case the factory is a "virtual factory" and might
          be managed by the domain itself.</t>

          <t hangText="Factory CA:">This Certification Authority is leveraged
          by the Factory to issue IEEE 802.1AR identities to each New Entity.
          For a virtual factory it may be reasonable to assume the domain
          certification authority is directly used but in a complex
          environment it is assumed the Factory does not have direct access to
          the Domain Certification Authority.</t>

          <t hangText="Registrar:">A representative of the domain that is
          configured, perhaps autonomically, to decide whether a new device is
          allowed to join the domain. The administrator of the domain
          interfaces with a Registrar to control this process. Typically a
          Registrar is "inside" its domain.</t>

          <t hangText="New Entity:">A new device or virtual machine or
          software component that is not yet part of the domain.</t>

          <t hangText="Proxy:">A domain entity that helps the New Entity join
          the domain. A Proxy facilitates communication for devices that find
          themselves in an environment where they are not provided L3
          connectivity until after they are validated as members of the
          domain.</t>

          <t hangText="MASA Service:">A Manufacturer Authorized Signing
          Authority (MASA) service on the global Internet. At a minimum the
          MASA provides a trusted repository for audit information concerning
          privacy protected bootstrapping events. As a service offering the
          MASA can incorporate many of the bootstrapping elements (such as the
          Registrar and the Domain CA) into the overall service. The MASA is
          not a mandatory component, but it enables the new device to validate
          which domain it is joining. This allows for a completely secure
          zero-touch bootstrap of domain certificates with mutual
          authentication (device <-> domain).</t>
        </list></t>

      <t>We assume a multi-vendor network. In such an environment, there could
      a MASA for each vendor that supports devices following this document's
      specification, or an integrator could provide a MASA service for all
	  devices which he supplies. Note again that the MASA is not mandatory. Also, this
      approach describes a secure zero-touch approach to bootstrapping a key
      infrastructure; if certain devices in a network do not support this
      approach, they can still be bootstrapped manually.</t>
    </section>

    <section title="Operational Overview">
      <t>This section describes how an operator interacts with a domain that
      supports the bootstrapping as described in this document.</t>

      <section title="Instantiating the Domain Certification Authority">
        <t>This is a one time step by the domain administrator. This is an
        "off the shelf" CA with the exception that it is designed to work as
        an integrated part of the security solution. This precludes the use of
        3rd party certification authority services that do not provide support
        for delegation of certificate issuance decisions to a domain managed
        Registration Authority.</t>
      </section>

      <section title="Instantiating the Registrar">
        <t>This is a one time step by the domain administrator. One or more
        devices in the domain are configured take on a Registrar function.</t>

        <t>A device can be configured to act as a Registrar or a device can
        auto-select itself to take on this function, using a detection
        mechanism to resolve potential conflicts and setup communication with
        the Domain Certification Authority. Automated Registrar selection is
        outside scope for this document.</t>
      </section>

      <section anchor="accepting" title="Accepting New Entities">
        <t>For each New Entity the Registrar is informed the unique identifier
        (e.g. serial number) along with the manufacturer's identifying
        information (e.g. manufacturer root certificate). This can happen in
        different ways:</t>

        <t><list style="numbers">
            <t>Default acceptance: In the simplest case, the new device itself
            provides its identity to the registrar, which then accepts any
            device blindly, without validating its identity. This mode does
            not provide any security against intruders and is not
            recommended.</t>

            <t>Per device acceptance: Also here the device provides its
            identity directly to the registrar during enrollment. A
            non-technical human validates the identity, for example by
            comparing the identity displayed by the registrar (for example
            using a smartphone app) with the identity shown on the packaging
            of the device. Acceptance may be triggered by a click on a
            smartphone app "accept this device", or by other forms of pairing.
            See also <xref
            target="I-D.behringer-homenet-trust-bootstrap"></xref> for how the
            approach could work in a homenet.</t>

            <t>Whitelist approach: In larger networks, neither of the previous
            approaches is acceptable. Default acceptance is not secure, and a
            manual real-time acceptance per device does not scale. Here, the
            registrar is provided a priori with a list of identifiers of
            devices that belong to the network. This list can be for example
            extracted from an inventory database, or sales records. If a
            device is detected that is not on the list of known devices, it
            can still be manually accepted or declined.</t>

            <t>Automated Orchestrator: an automated process that queries the
            MASA service or an inventory database either a priori for all
            devices, or in real time for each new device. It feeds this
            information into the Registrar. Once set up, no human intervention
            is required in this process.</t>
          </list></t>

        <t>None of the approaches requires the network to have permanent
        Internet connectivity. Even when the Internet based MASA service is
        used, it is possible to pre-fetch the required information from the
        MASA a priori, for example at time of purchase. In this case devices
        can enrol later even in a completely isolated network.</t>

        <t>Additional policy can be stored for future authorization decisions.
        For example an expected deployment time window or that a certain Proxy
        must be used.</t>
      </section>

      <section title="Automatic Enrolment of Devices">
        <t>The approach outlined in this document provides a secure zero-touch
        method to enrol new devices without any pre-staged configuration. New
        devices communicate with already enrolled devices of the domain, which
        proxy between the new device and a Registrar. As a result of this
        completely automatic operation, all devices obtain a domain based
        certificate.</t>
      </section>

      <section title="Operating the Network">
        <t>The certificate installed in the previous step can be used for all
        subsequent operations. For example, to determine the boundaries of the
        domain: If a neighbor has a certificate from the same trust anchor it
        can be assumed "inside" the same organization; if not, as outside. See
        also <xref target="boundary"></xref>. The certificate can also be used
        to securely establish a connection between devices and central control
        functions. Also autonomic transactions can use the domain certificates
        to authenticate and/or encrypt direct interactions between devices.
        The usage of the domain certificates is outside scope for this
        document.</t>
      </section>
    </section>

    <section title="Functional Overview">
      <t>Entities behave in an autonomic fashion. They discover each other and
      autonomically establish a key infrastructure deliminating the autonomic
      domain. See <xref
      target="I-D.irtf-nmrg-autonomic-network-definitions"></xref> for more
      information.</t>

      <t>The overall flow is shown in Figure 2:</t>

      <t><figure>
          <artwork><![CDATA[
 +---------+                +----------+                +-----------+
 |  New    |                |          |                |  MASA     |
 | Entity  |                |  Domain  |                |  Service  |
 |         |                |          |                | (Internet)|
 +---------+                +----------+                +-----------+       
     |                           |                            |
     |<-------discovery--------->|                            |
     |---802.1AR credential----->|                            |
     |                           |                            |
     |                    [ accept device? ]                  |
     |                           |                            |
     |                           |---802.1AR identity-------->|
     |                           |---Domain ID--------------->|
     |                           |                            |
     |                           |                    [device belongs] 
     |                           |                    [to domain?    ]
     |                           |                            |
     |                           |                  [update audit log]
     |                           |                            |
     |                           |<---device history log------|
     |                           |<-- authorization token-----|
     |                           |                            |
     |                  [ still accept device?]               |
     |                           |                            |
     |<----authorization token---|                            |
     |<----domain information----|                            |
     |                           |                            |
[auth token valid?]              |                            |
     |                           |                            |
     |----domain enrolment------>|                            |
     |<----domain certificate----|                            |
     |                           |

]]></artwork>
        </figure>Figure 1</t>

      <section title="Behavior of a new entity">
        <t>A New Entity that has not yet been bootstrapped attempts to find a
        local domain and join it. A number of methods are attempted for
        establishing communications with the domain in a specified order.</t>

        <t>Client behavior is as follows:</t>

        <t><list style="numbers">
            <t>Discover a communication channel to the "closest" Registrar by
            trying the following steps in this order:<list style="letters">
                <t>Search for a Proxy on the local link using a link local
                discovery protocol (no routable addresses are required for
                this approach). If multiple local proxies are discovered
                attempt communications with each before widening the search to
                other options. The proxy relays information to the registrar.
                If this fails:</t>

                <t>Obtain an IP address using existing methods, such as SLAAC
                or DHCPv6, and search for a local registrar using DNS service
                discovery. If this fails:</t>

                <t>Obtain an IP address (as above), and search for the domain
                registrar using a pre-defined Factory provided Internet based
                re-direct service. Various methods could be used, such as DNS
                or RESTful APIs.</t>
              </list></t>

            <t>Present IEEE 802.1AR credentials to the discovered Registrar
            (via a Proxy if necessary). Included is a generated nonce that is
            specific to this attempt.</t>

            <t>Verify the MASA service generated authorization token as
            provided by the contacted Registrar. The authorization token
            contains the valid domain(s) for this device and is signed by the
            MASA service. The device uses a pre-installed certificate of the
            MASA service to validate the signature of the MASA. The nonce
            information previously provided is also checked, if it was not
            removed by the Registrar.</t>

            <t>If and only if step three is successful: Join Domain, by
            accepting the domain specific information from the registrar, and
            by enrolling a domain certificate from the registrar.</t>

            <t>The New Entity is now a member of the domain and will only
            repeat the discovery aspects of bootstrapping if it is returned to
            factory default settings.</t>
          </list>The following sections describe each of these steps in more
        detail.</t>

        <section anchor="ProxyDiscovery" title="Proxy Discovery">
          <t>Existing protocols provide the appropriate functionality for both
          discovering the Proxy and facilitating communication through the
          Proxy:</t>

          <t><list style="hanging">
              <t hangText="IEEE 802.1X">Where the New Entity can be cast as
              the "supplicant" and the Proxy is the "authenticator". The
              bootstrapping protocol messages are encapsulated as EAP methods.
              The "authenticator" reencapsulates the EAPOL frames and forwards
              them to the "Authentication Server", which provides Registrar
              functionalities.</t>

              <t hangText="PANA [RFC5191]">[[EDNOTE: TBD]]</t>

              <t hangText="ND [RFC2461] / [RFC4861]">[[EDNOTE: TBD]] NOTE:
              Neighbor Discovery protocols do not describe a mechanism for
              forwarding messages.</t>
            </list>Each provides a method for the New Entity to discover and
          initiate communication with a local neighbor. In each protocol
          methods are available to support encapsulation of the bootstrapping
          protocol messages described elsewhere in this document. Other
          protocols for transporting bootstrapping messages can be added in
          future references.</t>

          <t>All security assocaitions established are between the new device
          and the Registrar regardless of proxy operations.</t>

          <t>If multiple proxies are available the New Entity tries each until
          a successful bootstrapping occurs. The New Entity may prioritize
          proxies selection order as appropriate for the anticipated
          environment.</t>

          <t>If Proxy discovery fails the New Entity moves on to discovering a
          Registrar directly.</t>
        </section>

        <section anchor="AcceptDomain"
                 title="Receiving and accepting the Domain Identity">
          <t>The domain trust anchor is received by the New Entity during the
          boostrapping protocol exchange.</t>

          <t>An enrollment protocol such as EST <xref target="RFC7030"></xref>
          details a set of non-autonomic bootstrapping methods such as:</t>

          <t><list style="symbols">
              <t>using the Implicit Trust Anchor database (not an autonomic
              solution because the URL must be securely distributed),</t>

              <t>engaging a human user to authorize the CA certificate using
              out-of-band data (not an autonomic solution because the human
              user is involved),</t>

              <t>using a configured Explicit TA database (not an autonomic
              solution because the distribution of an explicit TA database is
              not autonomic),</t>

              <t>and using a Certificate-Less TLS mutual authentication method
              (not an autonomic solution because the distribution of symmetric
              key material is not autonomic).</t>
            </list>This document describes an additional autonomic method:</t>

          <t><list style="hanging">
              <t hangText="MASA authorization token">Authorization tokens are
              obtained by the Registrar from the MASA service and presented to
              the New Entity for validation.</t>
            </list>If the autonomic methods fails the New Entity returns to
          discovery state and attempts bootstrapping with the next available
          discovered Registrar.</t>
        </section>

        <section title="Enrollment">
          <t>As the final step of bootstrapping a Registrar helps to issue a
          domain specific credential to the New Entity. For simplicity in this
          document, a Registrar primarily facilitates issuing a credential by
          acting as an RFC5280 Registration Authority for the Domain
          Certification Authority.</t>

          <t>Enrollment proceeds as described in Enrollment over Secure
          Transport (EST) [RFC7030]. The New Entity contacts the Registrar
          using EST as indicated:</t>

          <t><list style="symbols">
              <t>The New Entity is authenticated using the IEEE 802.1AR
              credentials. (EST support for .</t>

              <t>The EST section 4.1.3 CA Certificates Response is verified
              using the MASA authorization token provided domain identity.</t>
            </list></t>
        </section>

        <section title="After Enrollment">
          <t>Functionality to provide generic "configuration" is supported.
          The parsing of this data and any subsequent use of the data, for
          example communications with a Network Management System is out of
          scope but is expected to occur after bootstrapping enrollment is
          complete.</t>

          <t>See <xref target="PostEnrollment"></xref>.</t>
        </section>
      </section>

      <section title="Behavior of a proxy">
        <t>The role of the Proxy is to facilitate communications. The Proxy
        forwards messages between the New Entity and a Registrar. Where
        existing protocols, as detailed in <xref
        target="ProxyDiscovery"></xref>, already provide this functionality
        nothing additional is defined.</t>
      </section>

      <section title="Behavior of the Registrar">
        <t>Once a registrar is established it listens for new entities and
        determines if they can join the domain. The registrar delivers any
        necessary authorization information to the new device and facilitates
        enrollment with the domain PKI.</t>

        <t>Registrar behavior is as follows:</t>

        <section title="Authenticating the Device">
          <t>The applicable authentication methods detailed in EST [RFC7030]
          are:</t>

          <t><list style="symbols">
              <t>the use of an IEEE 802.1AR IDevID credential,</t>

              <t>or the use of a secret that is transmitted out of band
              between the New Entity and the Registrar (this use case is not
              autonomic).</t>
            </list></t>
        </section>

        <section anchor="AcceptingTheEntity" title="Accepting the Entity">
          <t>In a fully automated network all devices must be securely
          identified.</t>

          <t>A Registrar accepts or declines a request to join the domain,
          based on the authenticated identity presented and other policy
          defined criteria such as Proxy identity. Automated acceptance
          criteria include:</t>

          <t><list style="symbols">
              <t>allow any device of a specific type (as determined by the
              IEEE 802.1AR device identity),</t>

              <t>allow any device from a specific Factory (as determined by
              the IEEE 802.1AR identity),</t>

              <t>allow a specific device from a Factory (as determined by the
              IEEE 802.1AR identity)</t>
            </list>In all cases a Registrar must use the globally available
          MASA service to verify that the device's history log does not include
          unexpected Registrars. Because if a device had previously registered with 
		  another domain, the registrar of that domain would show in the log.</t>

          <t>If a device is accepted into the domain, it is then invited to
          request a domain certificate through a certificate enrolment
          process. The result is a common trust anchor and device certificates
          for all autonomic devices in a domain. These certificates can
          subsequently be used to determine the boundaries of the homenet, to
          authenticate other domain nodes, and to autonomically enable
          services on the homenet.</t>

          <t>For each entity that will be accepted a Registrar maintains the
          Factory CA identity and the entity's unique identifier. The Factory
          CA identity could be implemented as the Factory CA root certificate
          keyIdentifier (the 160-bit SHA-1 hash of the value of the BIT STRING
          subjectPublicKey). For user interface purposes the keyIdentifier
          information can be mapped to a colloquial Factory name (Registrars
          can be shipped with the keyIdentifier of a significant number of
          third-party manufacturers).</t>
        </section>

        <section title="Claiming the new entity">
          <t>During initial bootstrapping the New Entity provides a nonce
          specific to the particular bootstrapping attempt. The registrar
          should include this nonce when claiming the New Entity from the
          Internet based MASA service. If a nonce is provided by the
          Registrar, then claims from an unauthenticated Registrar are
          serviced by the MASA resource.</t>

          <t>The Registrar can claim a New Entity that is not online by
          forming the request using the entities unique identifier but not
          including a nonce in the claim request. MASA authorization tokens
          obtained in this way do not have a lifetime and they provide a
          permanent method for the domain to claim the device. Evidence of
          such a claim is provided in the audit log entries available to any
          future Registrar. Such claims reduce the ability for future domains
          to secure bootstrapping and therefore the Registrar MUST be
          authenticated by the MASA service.</t>

          <t>Claiming an entity establishes an audit log at the MASA server
          and provides the Registrar with proof, in the form of a MASA
          authorization token, that the log entry has been inserted. As
          indicated in <xref target="AcceptDomain"></xref> a New Entity will
          only proceed with bootstrapping if a validated MASA authorization
          token has been recieved. The New Entity therefore enforces that
          bootstrapping only occurs if the claim has been logged.</t>
        </section>
      </section>

      <section title="Behavior of the MASA Service">
        <t>The MASA service is provided by the Factory provider on the global
        Internet. The URI of this service is well known. The URI should be
        provided as an IEEE 802.1AR IDevID X.509 extension (a "MASA
        authorization token Distribution Point" extension).</t>

        <t>The MASA service provides the following functionalities to
        Registrars:</t>

        <section title="Issue Authorization Token and Log the event">
          <t>A Registrar POSTs a claim message optionally containing the
          bootstrap nonce to the MASA server.</t>

          <t>If a nonce is provided the MASA service responds to all requests.
          The MASA service verifies the Registrar is representative of the
          domain and generates a privacy protected log entry before responding
          with the authorization token.</t>

          <t>If a nonce is not provided then the MASA service MUST
          authenticate the Registrar as a valid customer. This prevents denial
          of service attacks. The specific level of authentication provided by
          the customer is not defined here. An MASA Practice Statement (MPS)
          similar to the Certification Authority CPS, as defined in RFC5280,
          is provided by the Factory such that Registrar's can determine the
          level of trust they have in the Factory.</t>
        </section>

        <section title="Retrieve Audit Entries from Log">
          <t>When determining if a New Entity should be accepted into a domain
          the Registrar retrieves a copy of the audit log from the MASA
          service. This contains a list of privacy protected domain identities
          that have previously claimed the device. Included in the list is an
          indication of the time the entry was made and if the nonce was
          included.</t>
        </section>
      </section>

      <section anchor="PostEnrollment"
               title="Leveraging the new key infrastructure / next steps">
        <t>As the devices have a common trust anchor, device identity can be
        securely established, making it possible to automatically deploy
        services across the domain in a secure manner.</t>

        <t>Examples of services:<list style="symbols">
            <t>Device management.</t>

            <t>Routing authentication.</t>

            <t>Service discovery.</t>
          </list></t>

        <section anchor="boundary" title="Network boundaries">
          <t>When a device has joined the domain, it can validate the domain
          membership of other devices. This makes it possible to create trust
          boundaries where domain members have higher level of trusted than
          external devices. Using the autonomic User Interface, specific
          devices can be grouped into to sub domains and specific trust levels
          can be implemented between those.</t>
        </section>
      </section>
    </section>

    <section title="Protocol Details">
      <t>For simplicity the bootstrapping protocol is described as extensions
      to EST [RFC7030]. </t>

      <t>EST provides a bootstrapping mechanism for new entities that are
      configured with the URI of the EST server such that the Implicit TA
      database can be used to authenticate the EST server. Alternatively EST
      clients can "engage a human user to authorize the CA certificate using
      out-of-band data such as a CA certificate". EST does not provide a
      completely automated method of bootstrapping the PKI as both of these
      methods require some user input (either of the URI or authorizing the CA
      certificate). </t>

      <t>This section details additional EST functionality that support
      automated bootstrapping of the public key infrastructure. These
      additions provide for fully automated bootstrapping. These additions are
      to be optionally supported by the EST server within the same .well-known
      URI tree as the existing EST URIs.</t>

      <t>The "New Entity" is the EST client and the "Registrar" is the EST
      server.</t>

      <t>The extensions for the client are as follows:</t>

      <t><list style="symbols">
          <t>The New Entity provisionally accept the EST server certificate
          during the TLS handshake as detailed in EST section 4.1.1
          ("Bootstrap Distribution of CA Certificates").</t>

          <t>The New Entity request and validates a "bootstrap token" as
          described below. At this point the New Entity has sufficient
          information to validate domain credentials. </t>

          <t>The New Entity calls the EST defined /cacerts method to obtain
          the current CA certificate. These are validated using the "bootstrap
          token".</t>

          <t>The New Entity completes bootstrapping as detailed in EST section
          4.1.1.</t>
        </list></t>

      <t>These extensions could be implemented as an independent protocol from
      EST but since the overlap with basic enrollment is extensive,
      particularly with respect to client authorization, they are presented
      here as additions to EST.</t>

      <t>In order to obtain a validated bootstrap token and history logs the
      Registrar contacts the MASA service Service using REST calls.</t>

      <section title="EAP-EST">
        <t>In order to support Proxy environments EAP-EST is defined.</t>

        <t>[[EDNOTE: TBD. EST is TLS with some data. EAP-TLS and other similar
        protocols provide an example framework for filling out this
        section]]</t>
      </section>

      <section title="Request bootstrap token">
        <t>When the New Entity reaches the EST section 4.1.1 "Bootstrap
        Distribution of CA Certificates" state but wishes to proceed in a
        fully automated fashion it makes a request for a MASA authorization
        token from the Registrar.</t>

        <t>This is done with an HTTPS POST using the operation path value of
        "/requestbootstraptoken".</t>

        <t>The request format is JSON object containing a nonce.</t>

        <t>Request media type: application/masanonce</t>

        <t>Request format: a json file with the following: </t>

        <t>{"nonce":"<64bit nonce value>"}</t>

        <t> [[EDNOTE: exact format TBD. There is an advantage to having the
        client sign the nonce (similar to a PKI Certification Signing Request)
        since this allows the MASA service to confirm the actual device
        identity. It is not clear that there is a security benefit from
        this.]]</t>

        <t>The Registrar validates the client identity as described in EST
        [RFC7030] section 3.3.2. The registrar performs authorization as
        detailed in <xref target="AcceptingTheEntity"></xref>. If
        authorization is successful the Registrar obtains a MASA authorization
        token from the MASA service (see <xref
        target="RequestAuthzToken"></xref>).</t>

        <t>The recieved MASA authorization token is returned to the New
        Entity.</t>
      </section>

      <section anchor="RequestAuthzToken"
               title="Request MASA authorization token">
        <t>A registrar requests the MASA authorization token from the MASA
        service using a REST interface.</t>

        <t>This is done with an HTTP POST using the operation path value of
        "/requestMASAauthorization".</t>

        <t>The request format is a JSON object optionally containing the nonce
        value (as obtained from the bootstrap request) and the IEEE 802.1AR
        identity of the device as a serial number (the full certificate is not
        needed and no proof-of-possession information for the device identity
        is included). The New Entity's serial number is extracted from the
        subject name :</t>

        <t>{"nonce":"<64bit nonce value>", "serialnumber",
        "<subjectname/subjectaltname serial number>"}</t>

        <t>Inclusion of the nonce is optional because the Registar might
        request an authorization token when the New Entity is not online, or
        when the target bootstrapping environment is not on the same network
        as the MASA server.</t>

        <t>This information is encapsulated in a PKCS7 signed data structure
        that is signed by the Registrar. The entire certificate chain, up to
        and including the Domain CA, is included in the PKCS7.</t>

        <t>The MASA service checks the internal consistency of the PKCS7 but
        is unable to actually authenticate the domain identity information.
        The domain is not know to the MASA server in advance and a shared
        trust anchor is not implied. The MASA server verifies that the PKCS7
        is signed by a Registrar (by checking for the cmc-idRA field in the
        Registrar certificate) certificate that was issued by the root
        certificate included in the PKCS7.</t>

        <t>The domain ID is extracted from the root certificate and is used to
        generate the MASA authorization token and to update the audit log.</t>

        <t>[[EDNOTE: This assumes the Registrar can extract the serial number
        successfullly from the cilent certificate. The RFC4108
        hardwareModuleName is likely the best known location.]]</t>
      </section>

      <section title="Request MASA authorization log">
        <t>A registrar requests the MASA authorization log from the MASA
        service using this EST extension.</t>

        <t>This is done with an HTTP GET using the operation path value of
        "/requestMASAlog".</t>

        <t>The log data returned is a file consisting of all previous log
        entries. For example: </t>

        <t><figure>
            <artwork><![CDATA["log":[
  {"date":"<date/time of the entry>"},
   "domainID":"<domainID as extracted from the root 
                certificate within the PKCS7 of the
                authorization token request>",
   "nonce":"<any nonce if supplied (or NULL)>"},

  {"date":"<date/time of the entry>"},
   "domainID":"<domainID as extracted from the root 
                certificate within the PKCS7 of the
                authorization token request>",
   "nonce":"<any nonce if supplied (or NULL)>"},
] ]]></artwork>
          </figure></t>

        <t>Distribution of a large log is less than ideal. This structure can
        be optimized as follows: only the most recent nonce'd log entry is
        required in the response. All nonce-less entries for the same domainID
        can be condensed into the single most recent nonceless entry. </t>

        <t>The Registrar uses this log information to make an informed
        decision regarding the continued bootstrapping of the New Entity.</t>

        <t>[[EDNOTE: certificate transparency might offer an alternative log
        entry method]]</t>
      </section>
    </section>

    <section title="Reduced security operational modes">
      <t>A common requirement of bootstrapping infrastructures is often that
      they support less secure operational modes. To support these operational
      modes the Registrar can choose to accept devices using less secure
      methods. For example:</t>

      <t><list style="numbers">
          <t>The registrar may choose to accept all devices, or all devices of
          a particular type, at the administrator's discretion. This may occur
          when: Informing the Registrar of unique identifiers of new entities
          might be operationally difficult.</t>

          <t>The registrar may choose to accept devices that claim a unique
          identity without the benefit of authenticating that claimed
          identity. This may occur when: The New Entity does not include an
          IEEE 802.1AR factory installed credential.</t>

          <t>A representative of the Registrar (e.g. the Orchestrator) may
          request nonce-less authorization tokens from the MASA service when
          network connectivity is available. These tokens can then be
          transmitted to the Registrar and stored until they are needed during
          bootstrapping operations. This may occur when: The target network is
          protected by an air gap and therefore can not contact the MASA
          service during New Entity deployment.</t>

          <t>The device may have an operational mode where it skips
          authorization token validation. For example if a physical button is
          depressed during the bootstrapping operation. This may occur when: A
          device Factory goes out of business or otherwise fails to provide a
          reliable MASA service.</t>

          <t>The device may not require the MASA service authorization token.
          An entity that does not validate the domain identity is inherently
          dangerous as it may contain malware. This risk should be mitigated
          using attestation and measurement technologies. In order to support
          an unsecured imprint the New Entity MUST support remote attestation
          technologies such as is defined by the Trusted Computing Group.
          [[EDNOTE: How to include remote attestation into the boostrapping
          protocol exchange is TBD]]. This may occur when: The device Factory
          does not provide a MASA service.</t>
        </list></t>
    </section>

    <section title="Security Considerations">
      <t>In order to support a variety of use cases, devices can be claimed by
      a registrar without proving possession of the device in question. This
      would result in a nonceless, and thus always valid, claim. The MASA
      service is required to authenticate such Registrars but no programmatic
      method is provided to ensure good behavior by the MASA service.
      Nonceless entries into the audit log therefore permanently reduce the
      value of a device because future Registrars, during future bootstrap
      attempts, must now be configured with policy to ignore previously (and
      potentially unknown) domains.</t>

      <t>Future registrars are recommended to take the audit history of a
      device into account when deciding to join such devices into their
      network.</t>

      <t>It is possible for an attacker to send an authorization request to
      the MASA service directly after the real Registrar obtains an
      authorization log. If the attacker could also force the bootstrapping
      protocol to reset there is a theoretical opportunity for the attacker to
      use the authorization token to take control of the New Entity but then
      proceed to enrol with the target domain. To prevent this the MASA
      service is rate limited to only generate authorization tokens at a rate
      of 1 per minute. The Registrar therefore has at least 1 minute to get
      the response back to the New Entity. [[EDNOTE: a better solution can
      likely be found. This text captures the issue for now.]] Also the
      Registrar can double check the log information after enrolling the New
      Entity.</t>

      <t>The MASA service could lock a claim and refuse to issue a new token.
      Or the MASA service could go offline (for example if a vendor went out
      of business). This functionality provides benefits such as theft
      resistance, but it also implies an operational risk. This can be
      mitigated by Registrars that request nonce-less authorization
      tokens.</t>

      <section title="Trust Model">
        <t>[[EDNOTE: (need to describe that we need to trust the device h/w.
        To be completed.)]]</t>
      </section>
    </section>

    <section title="Acknowledgements">
      <t>We would like to thank the various reviewers for their input, in
      particular Markus Stenberg, Michael Richardson, Brian Carpenter, Fuyu Eleven.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC7030;

      <reference anchor="IDevID"
                 target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
        <front>
          <title>IEEE 802.1AR Secure Device Identifier</title>

          <author surname="IEEE Standard"></author>

          <date month="December" year="2009" />
        </front>
      </reference>
    </references>

    <references title="Informative References">
      &I-D.behringer-autonomic-network-framework;

      &I-D.irtf-nmrg-autonomic-network-definitions;
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-22 14:26:07