One document matched: draft-ietf-anima-bootstrapping-keyinfra-00.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-ietf-anima-bootstrapping-keyinfra-00"
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 C. Richardson" initials="M."
surname="Richardson">
<organization abbrev="SSW">Sandelman Software Works</organization>
<address>
<postal>
<street>470 Dawson Avenue</street>
<city>Ottawa</city>
<region>ON</region>
<code>K1Z 5V7</code>
<country>CA</country>
</postal>
<email>mcr+ietf@sandelman.ca</email>
<uri>http://www.sandelman.ca/</uri>
</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 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 in limited/disconnected networks or legacy 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><list style="hanging">
<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="drop ship">The physical distribution of equipment
containing the "factory default" configuration to a final
destination. In zero-touch scenarios there is no staging or
pre-configuration during drop-ship.</t>
<t hangText="imprint">the process where a device that wishes to
join a network acquires it's domain specific identity. This term
is taken from Konrad Lorenz's work in biology with new ducklings:
during a critical period, the duckling would assume that anything
that looks like a mother duck is in fact their mother. <xref
target="imprinting"></xref></t>
<t hangText="pledge">the prospective device, which has the
identity provided to at the factory. Neither the device nor the
network knows if the device yet knows if this device belongs with
this network. This is definition 6, according to <xref
target="pledge"></xref></t>
</list></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></t>
<figure>
<artwork><![CDATA[ Vendor components
.
.+---------------+
+--------------Drop Ship------------------------.| Manufacturer |
| .+---------------+
| .| M anufacturer |
| .| A uthorized |
| .| S igning |
| .| A uthority |
| .+---------------+
V ...... ^
+-------+ |
| New | +------------+ +-----------+ |
| Entity|<--L2-->| Proxy |<----->| | |
| | +------------+ | | |
| | | Registrar | |
| | | | |
| |<-----L3---------------------( may proxy )---------+
| | +-----------+
| | |
| | +----------------------------+
| |<-----Enroll---->| Domain Certification | ^
| |<-----Config---->| Authority | .
+-------+ . | Management and etc | .
. +----------------------------+ .
. .
.........................................
"domain" components
]]></artwork>
<postamble>Figure 1</postamble>
</figure>
<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="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. The MASA is recommended to
provide ownership validation services which allows for fully secure
zero-touch bootstrap of domain certificates with mutual
authentication.</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.</t>
<t>This document 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. Although manual
deployment is not scalable and is not a focus of this document the
necessary mechanisms are called out in this document to ensure all such
edge conditions are covered by the architectural and protocol
models.</t>
</section>
<section title="Functional Overview">
<t>Entities behave in an autonomic fashion. They discover each other and
autonomically bootstrap into a key infrastructure deliminating the
autonomic domain. See <xref
target="I-D.irtf-nmrg-autonomic-network-definitions"></xref> for more
information.</t>
<t>This section details the state machine and operational flow for each
of the main three entities. The New Entity, the Domain (primarily the
Registrar) and the MASA service.</t>
<t>The overall flow is shown in Figure 2:</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>
<postamble>Figure 2</postamble>
</figure>
<t></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.</t>
<t>States of a New Entity are as follows:</t>
<t></t>
<figure>
<artwork><![CDATA[ +--------------+
| Start |
| |
+------+-------+
|
+------v-------+
| Discover |
+------------> |
| +------+-------+
| |
| +------v-------+
| | Identity |
^------------+ |
| rejected +------+-------+
| |
| +------v-------+
| | Imprint | Optional
^------------+ <--+Manual input
| Bad MASA +------+-------+
| response |
| +------v-------+
| | Enroll |
^------------+ |
| Enroll +------+-------+
| Failure |
| +------v-------+
| | Being |
^------------+ Managed |
Factory +--------------+
reset
]]></artwork>
<postamble>Figure 3</postamble>
</figure>
<t></t>
<t>State descriptions are 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>Identify itself. This is done by presenting an 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>Imprint on the Registrar. This requires verification of 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>Enroll by accepting the domain specific information from the
registrar, and by enrolling a domain certificate from the
registrar using a standard enrollment protocol, e.g. Enrolment
over Secure Transport (EST) <xref target="RFC7030"></xref>.</t>
<t>The New Entity is now a member of and Being Managed by 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="Discovery and Identity">
<t>Existing architectures provide the functionality for discovery of
the Domain Registrar. Use of an existing architecture is preferred
over development of a new architecture. Discovering of a Domain
Proxy that facilitates communication through to the Domain Registrar
is simplified as "discovery of the domain". A proxy is included in
Figure 1 although the simplified flow in Figure 2 does not include a
proxy - under the assuption that the proxy forwarding is mostly
transparent to the New Entity. Existing architectures for
investigation include:</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 which is assumed to be
a member of the domain infrastructure. 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. [[EDNOTE: this is
the simplest and most direct threat model but should be evaluated
against the anima use cases. It may be preferable to engage in
secure communications with the proxy itself?]]</t>
<t>The New Entity is expected to identify itself during one of the
communication protocol exchanges. For example using EAP-TLS. If the
client identity is rejected the New Entity repeats the Discovery
process using the next proxy or discovery method available. 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 using an appropriate L3 protocol mechanisms.</t>
<t>[[EDNOTE: it is unclear yet if discovery happens on a per
interface basis or once per device. What is the requirement around
joining multiple domains; is this a bootstrapping requirement or is
this a broader autonomic requirement]]</t>
</section>
<section anchor="AcceptDomain" title="Imprint">
<t>The domain trust anchor is received by the New Entity during the
boostrapping protocol methods in the form of a MASA authorization
token containing the domainID. The goal of the imprint state is to
securely obtain a copy of this trust anchor without involving human
interaction.</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></t>
<t>An arbitrary basic configuration information package that is
signed by the domain can be delivered alongside the authorization
token. This information is signed by the domain private keys and is
a one time delivery containing information such as which enrollment
server to communicate with and which management system to
communicate with. It is intended as a limited basic configuration
for these purposes and is not intended to deliver entire final
configuration to the device.</t>
<t>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.</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="Being Managed">
<t>Functionality to provide generic "configuration" information 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. This ensures that all communications with management
systems which can divulge local security information (e.g. network
topology or raw key material) is secured using the local credentials
issued during enrollment.</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>
<t></t>
<figure>
<artwork><![CDATA[Contacted by New Entity
+
|
+-------v----------+
| Entity | fail?
| Authentication +---------+
+-------+----------+ |
| |
+-------v----------+ |
| Entity | fail? |
| Authorization +--------->
+-------+----------+ |
| |
+-------v----------+ |
| Claiming the | fail? |
| Entity +--------->
+-------+----------+ |
| |
+-------v----------+ |
| Log Verification | fail? |
| +--------->
+-------+----------+ |
| |
+-------v----------+ +----v-------+
| Forward | | |
| Authorization | | Reject |
| token + config | | Device |
| to the Entity | | |
+------------------+ +------------+]]></artwork>
<postamble>Figure 4</postamble>
</figure>
<section title="Entity Authentication">
<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="Entity Authorization">
<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 title="Log Verification">
<t>The Registrar requests the log information for the new entity
from the MASA service. The log is verified to confirm that the
following is true to the satisfaction of the registrar's configured
parameters:</t>
<t><list style="symbols">
<t>Any nonceless entries in the log are associated with
domainIDs recognized by the registrar. The registar MAY be
configured to ignore the history of the device but it is
RECOMMENDED that this only be configured if the MASA server is
known to perform ownership validation or if Trusted Computing
Group secure boot and remote attestation is available.</t>
<t>Any nonce'd entries are older than when the domain is known
to have physical possession of the new entity or that the
domainIDs are recognized by the registrar.</t>
</list>If any of these criteria are unacceptable to the registrar
the entity is rejected.</t>
</section>
<section title="Forwarding Authorization Token plus Configuration">
<t>The Registrar forwards the received authorization token to the
new entity. To simplify the message flows an initial configuration
package can be delivered at this time which is signed by a
representative of the domain.</t>
<t>[[EDNOTE: format TBD. The configuration package signature data
must contain the full certificate path sufficient for the new entity
to use the domainID information (as a trust anchor) to accept and
validate the configuration)]]</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="Domain Operator Activities">
<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 of 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
asserts its unique identity to the registrar. The registrar
accepts all devices without authorization checks. This mode does
not provide security against intruders and is not recommended.</t>
<t>Per device acceptance: The new device asserts its unique
identity to the registrar. 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 acceptance: In larger networks, neither of the
previous approaches is acceptable. Default acceptance is not
secure, and a manual per device methods do 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 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 using the per device acceptance methods.</t>
<t>Automated Whitelist: an automated process that builds the
necessary whitelists and inserts them into the larger network
domain infrastructure is plausible. Once set up, no human
intervention is required in this process. Defining the exact
mechanisms for this is out of scope although the registrar
authorization checks is identified as the logical integration
point of any future work in this area.</t>
</list></t>
<t>None of these approaches require 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 such that devices can
enrol later. This supports use cases where the domain network may be
entirely isolated during device deployment.</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="Secure Network Operations">
<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="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" [[EDNOTE: out of date xref]] 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: The authorization token response format needs to be
defined here. It consists of the nonce, if supplied, the serialnumber
and the trust anchor of the domain. For example:</t>
<t>{"nonce":"<64bit nonce value>", "serialnumber",
"<subjectname/subjectaltname serial number>","domainID":}</t>
<t>]]</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="Basic Configuration Information Package">
<t>When the MASA authorization token is returned to the New Entity an
arbitrary information package can be signed and delivered along side
it. This is signed by the Domain Registar. The New Entity first
verifies the MASA authorization token and, if it is valid, then uses
the domain's TA to validate the Information Package.</t>
<t>[[EDNOTE: The package format to be specified here. Any signed
format is viable and ideally one can simply be specified from netconf.
The Registar knows the New Entity device type from the 802.1AR
credential and so is able to determine the proper format for the
configuration]]</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 is to support less secure
operational modes for support specific use cases. The following sections
detail specific ways that the New Entity, Registrar and MASA can be
configured to run in a less secure mode for the indicated reasons. </t>
<section title="New Entity security reductions">
<t>Although New Entity can choose to run in less secure modes this is
MUST NOT be the default state because it permanently degrades the
security for all other uses cases. When configured into lower security
modes by a trusted administrator:</t>
<t><list style="numbers">
<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 or when local staging has
pre-configured the New Entity with a known good Trust Anchor.</t>
<t>The device may be configured during staging or requested from
the factory to not require the MASA service authorization token.
An entity that does not validate the domain identity is inherently
dangerous as it may have had malware installed on it by a
man-in-the-middle. 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="Registrar security reductions">
<t>The Registrar can choose to accept devices using less secure
methods. These methods are RECOMMENDED when low security models are
needed as the security decisions are being made by the local
administrator:<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>The registrar may request nonce-less authorization tokens from
the MASA service. These tokens can then be transmitted to the
Registrar and stored until they are needed during bootstrapping
operations. This is for use cases where target network is
protected by an air gap and therefore can not contact the MASA
service during New Entity deployment.</t>
</list></t>
</section>
<section title="MASA security reductions">
<t>Lower security modes chosen by the MASA service effect all device
deployments unless paired with strict device ownership validation, in
which case these modes can be provided as additional features for
specific customers. The MASA service can choose to run in less secure
modes by:</t>
<t><list style="numbers">
<t>Not enforcing that a Nonce is in the authorization token. This
results in distribution of authorization tokens that never expire
and effectly makes the Domain an always trusted entity to the New
Entity during any subsequent bootstrapping attempts. That this
occured is captured in the log information so that the Domain
registrar can make appropriate security decisions when a new
device joins the domain. This is useful to support use cases where
Registrars might not be online during actual device
deployment.</t>
<t>Not verifying ownership before responding with an authorization
token. Doing so relieves the vendor providing MASA services from
having to tracking ownership during shipping and supply chain. The
registrar uses the log information as a defense in depth strategy
to ensure that this does not occur unexpectedly. For example when
purchasing used equipment a MASA response is necessary for
autonomic provisioning but the greatest level of security is
achieved when the MASA server is also performing ownership
validation.</t>
</list></t>
</section>
</section>
<section title="Security Considerations">
<t>In order to support a wide 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. Or would result in an invalid nonce being associated with a
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, would now have to 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. If the MASA server were to have allowed a significantly large
number of claims this might become onerous to the MASA server which must
maintain all the extra log entries. Ensuring the registar is
representative of a valid customer domain even without validating
ownership helps to mitigate this.</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. Binding the logs
via a ]] 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, 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;
<reference anchor="imprinting"
target="https://en.wikipedia.org/wiki/Imprinting_(psychology)">
<front>
<title>Wikipedia article: Imprinting</title>
<author surname="Wikipedia"></author>
<date month="July" year="2015" />
</front>
</reference>
<!-- http://dictionary.reference.com/cite.html?qh=pledge&ia=luna
@article {Dictionary.com2015,
title = {Dictionary.com Unabridged},
month = {Jul},
day = {03},
year = {2015},
url = {http://dictionary.reference.com/browse/pledge},
} -->
<reference anchor="pledge"
target="http://dictionary.reference.com/browse/pledge">
<front>
<title>Dictionary.com Unabridged</title>
<author surname="Dictionary.com"></author>
<date month="July" year="2015" />
</front>
</reference>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-21 09:09:48 |