<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-ar4si-06" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="Attestation Results">Attestation Results for Secure Interactions</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-06"/>
    <author initials="E." surname="Voit" fullname="Eric Voit">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <email>evoit@cisco.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="T." surname="Hardjono" fullname="Thomas Hardjono">
      <organization>MIT</organization>
      <address>
        <email>hardjono@mit.edu</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>Thomas.Fossati@linaro.org</email>
      </address>
    </author>
    <author initials="V." surname="Scarlata" fullname="Vincent Scarlata">
      <organization>Intel</organization>
      <address>
        <email>vincent.r.scarlata@intel.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="01"/>
    <area>Security</area>
    <workgroup>RATS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 94?>

<t>This document defines reusable Attestation Result information elements.
When these elements are offered to Relying Parties as Evidence, different aspects of Attester trustworthiness can be evaluated.
Additionally, where the Relying Party is interfacing with a heterogeneous mix of Attesting Environment and Verifier types, consistent policies can be applied to subsequent information exchange between each Attester and the Relying Party.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-rats-wg/draft-ietf-rats-ar4si"/>.</t>
    </note>
  </front>
  <middle>
    <?line 101?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The first paragraph of the May 2021 US Presidential Executive Order on Improving the Nation's Cybersecurity <xref target="US-Executive-Order"/> ends with the statement "the trust we place in our digital infrastructure should be proportional to how trustworthy and transparent that infrastructure is."
Later this order explores aspects of trustworthiness such as an auditable trust relationship, which it defines as an "agreed-upon relationship between two or more system elements that is governed by criteria for secure interaction, behavior, and outcomes."</t>
      <t>The Remote ATtestation procedureS (RATS) architecture <xref target="RFC9334"/> provides a useful context for programmatically establishing and maintaining such auditable trust relationships.
Specifically, the architecture defines conceptual messages conveyed between architectural subsystems to support trustworthiness appraisal.
The RATS conceptual message used to convey evidence of trustworthiness is the Attestation Results.
The Attestation Results includes Verifier generated appraisals of an Attester including such information as the identity of the Attester, the security mechanisms employed on this Attester, and the Attester's current state of trustworthiness.</t>
      <t>Generated Attestation Results are ultimately conveyed to one or more Relying Parties.
Reception of an Attestation Result enables a Relying Party to determine what action to take with regards to an Attester.
Frequently, this action will be to choose whether to allow the Attester to securely interact with the Relying Party over some connection between the two.</t>
      <t>When determining whether to allow secure interactions with an Attester, a Relying Party is challenged with a number of difficult problems which it must be able to handle successfully.
These problems include:</t>
      <ul spacing="normal">
        <li>
          <t>What Attestation Results (AR) might a Relying Party be willing to trust from a specific Verifier?</t>
        </li>
        <li>
          <t>What information does a Relying Party need before allowing interactions or choosing policies to apply to a connection?</t>
        </li>
        <li>
          <t>What are the operating/environmental realities of the Attesting Environment where a Relying Party should only be able to associate a certain confidence regarding Attestation Results out of the Verifier?  (In other words, different types of Trusted Execution Environments (TEE) need not be treated as equivalent.)</t>
        </li>
        <li>
          <t>How to make direct comparisons where there is a heterogeneous mix of Attesting Environments and Verifier types.</t>
        </li>
      </ul>
      <t>To address these problems, it is important that specific Attestation Result information elements are framed independently of Attesting Environment specific constraints.
If they are not, a Relying Party would be forced to adapt to the syntax and semantics of many vendor specific environments.
This is not a reasonable ask as there can be many types of Attesters interacting with or connecting to a Relying Party.</t>
      <t>The business need therefore is for common Attestation Result information element definitions.
With these definitions, consistent interaction or connectivity decisions can be made by a Relying Party where there is a heterogenous mix of Attesting Environment types and Verifier types.</t>
      <t>This document defines information elements for Attestation Results in a way which normalizes the trustworthiness assertions that can be made from a diverse set of Attesters.</t>
      <section anchor="requirements-notation">
        <name>Requirements Notation</name>
        <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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are imported from <xref target="RFC9334"/>:
Appraisal Policy for Attestation Results, Attester, Attesting Environment, Claims, Evidence, Relying Party, Target Environment and Verifier.</t>
        <t><xref target="RFC9334"/> also describes topological patterns that illustrate the need for interoperable conceptual messages.
The two patterns called "background-check model" and "passport model" are imported from the RATS architecture and used in this document as a reference to the architectural concepts:
Background-Check Model and Passport Model.</t>
        <t>Newly defined terms for this document:</t>
        <dl>
          <dt>AR-augmented Evidence:</dt>
          <dd>
            <t>a bundle of Evidence which includes at least the following:
</t>
            <ol spacing="normal" type="1"><li>
                <t>Verifier signed Attestation Results.
These Attestation Results must include Identity Evidence for the Attester, a Trustworthiness Vector describing a Verifier's most recent appraisal of an Attester, and some Verifier Proof-of-Freshness (PoF).</t>
              </li>
              <li>
                <t>A Relying Party PoF which is bound to the Attestation Results of (1) by the Attester's Attesting Environment signature.</t>
              </li>
              <li>
                <t>Sufficient information to determine the elapsed interval between the Verifier PoF and Relying Party PoF.</t>
              </li>
            </ol>
          </dd>
          <dt>Identity Evidence:</dt>
          <dd>
            <t>Evidence which unambiguously identifies an identity.
Identity Evidence could take different forms, such as a certificate, or a signature which can be appraised to have only been generated by a specific private/public key pair.</t>
          </dd>
          <dt>Trustworthiness Claim:</dt>
          <dd>
            <t>a specific quanta of trustworthiness which can be assigned by a Verifier based on its appraisal policy.</t>
          </dd>
          <dt>Trustworthiness Tier:</dt>
          <dd>
            <t>a categorization of the levels of trustworthiness which may be assigned by a Verifier to a specific Trustworthiness Claim.
These enumerated categories are: Affirming, Warning, Contraindicated, and None.</t>
          </dd>
          <dt>Trustworthiness Vector:</dt>
          <dd>
            <t>a set of zero to many Trustworthiness Claims assigned during a single appraisal procedure by a Verifier using Evidence generated by an Attester.
The vector is included within Attestation Results.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="attestation-results-for-secure-interactions">
      <name>Attestation Results for Secure Interactions</name>
      <t>A Verifier generates the Attestation Results used by a Relying Party.
When a Relying Party needs to determine whether to permit communications with an Attester, these Attestation Results must contain a specific set of information elements.
This section defines those information elements, and in some cases encodings for information elements.</t>
      <section anchor="information-driving-a-relying-party-action">
        <name>Information driving a Relying Party Action</name>
        <t>When the action is a communication establishment attempt with an Attester, there is only a limited set of actions which a Relying Party might take.
These actions include:</t>
        <ul spacing="normal">
          <li>
            <t>Allow or deny information exchange with the Attester.
When there is a deny, reasons should be returned to the Attester.</t>
          </li>
          <li>
            <t>Establish a transport connection between an Attester and a specific context within a Relying Party (e.g., a TEE, or Virtual Routing Function (VRF).)</t>
          </li>
          <li>
            <t>Apply policies on this connection (e.g., rate limits).</t>
          </li>
        </ul>
        <t>There are three categories of information which must be conveyed to the Relying Party (which also is integrated with a Verifier) before it determines which of these actions to take.</t>
        <ol spacing="normal" type="1"><li>
            <t>Non-repudiable Identity Evidence – Evidence which undoubtably identifies one or more entities involved with a communication.</t>
          </li>
          <li>
            <t>Trustworthiness Claims – Specifics a Verifier asserts with regards to its trustworthiness findings about an Attester.</t>
          </li>
          <li>
            <t>Claim Freshness – Establishes the time of last update (or refresh) of Trustworthiness Claims.</t>
          </li>
        </ol>
        <t>The following sections detail requirements for these three categories.</t>
      </section>
      <section anchor="identity-section">
        <name>Non-repudiable Identity</name>
        <t>Identity Evidence must be conveyed during the establishment of any trust-based relationship.
Specific use cases will define the minimum types of identities required by a particular Relying Party as it evaluates Attestation Results, and perhaps additional associated Evidence.
At a bare minimum, a Relying Party MUST start with the ability to verify the identity of a Verifier it chooses to trust.
Attester identities may then be acquired through signed or encrypted communications with the Verifier identity and/or the pre-provisioning Attester public keys in the Attester.</t>
        <t>During the Remote Attestation process, the Verifier's identity must be established with a Relying Party, often via a Verifier signature across recent Attestation Results.
This Verifier identity could only have come from a key pair maintained by a trusted developer or operator of the Verifier.</t>
        <t>Additionally, each set of Attestation Results must be provably and non-reputably bound to the identity of the original Attesting Environment which was evaluated by the Verifier.
This is accomplished via satisfying two requirements.
First the Verifier signed Attestation Results MUST include sufficient Identity Evidence to ensure that this Attesting Environment signature refers to the same Attesting Environment appraised by the Verifier.
Second, where the passport model is used as a subsystem, an Attesting Environment signature which spans the Verifier signature MUST also be included.
As the Verifier signature already spans the Attester Identity as well as the Attestation Results, this restricts the viability of spoofing attacks.</t>
        <t>In a subset of use cases, these two pieces of Identity Evidence may be sufficient for a Relying Party to successfully meet the criteria for its Appraisal Policy for Attestation Results.
If the use case is a connection request, a Relying Party may simply then establish a transport session with an Attester after a successful appraisal.
However an Appraisal Policy for Attestation Results will often be more nuanced, and the Relying Party may need additional information.
Some Identity Evidence related policy questions which the Relying Party may consider include:</t>
        <ul spacing="normal">
          <li>
            <t>Does the Relying Party only trust this Verifier to make Trustworthiness Claims on behalf a specific type of Attesting Environment?  Might a mix of Verifiers be necessary to cover all mandatory Trustworthiness Claims?</t>
          </li>
          <li>
            <t>Does the Relying Party only accept connections from a verified-authentic software build from a specific software developer?</t>
          </li>
          <li>
            <t>Does the Relying Party only accept connections from specific preconfigured list of Attesters?</t>
          </li>
        </ul>
        <t>For any of these more nuanced appraisals, additional Identity Evidence or other policy related information must be conveyed or pre-provisioned during the formation of a trust context between the Relying Party, the Attester, the Attester's Attesting Environment, and the Verifier.</t>
        <section anchor="attester-and-attesting-environment">
          <name>Attester and Attesting Environment</name>
          <t>Per <xref target="RFC9334"/> Figure 2, an Attester and a corresponding Attesting Environment might not share common code or even hardware boundaries.
Consequently, an Attester implementation needs to ensure that any Evidence which originates from outside the Attesting Environment MUST have been collected and delivered securely before any Attesting Environment signing may occur.
After the Verifier performs its appraisal, it will include sufficient information in the Attestation Results to enable a Relying Party to have confidence that the Attester's trustworthiness is represented via Trustworthiness Claims signed by the appropriate Attesting Environment.</t>
          <t>This document recognizes three general categories of Attesters.</t>
          <ol spacing="normal" type="1"><li>
              <t>HSM-based: A Hardware Security Module (HSM) based cryptoprocessor which hashes one or more streams of security measurements from an Attester within the Attesting Environment. Maintenance of this hash enables detection of an Attester which is not reporting the exact set of security measurements (such as log entries) taken within the Attesting Environment. An example of a HSM is a TPM2.0 <xref target="TPM2.0"/>.</t>
            </li>
            <li>
              <t>Process-based: An individual process which has its runtime memory encrypted by an Attesting Environment in a way that no other processes can read and decrypt that memory (e.g., <xref target="SGX"/> or <xref target="I-D.tschofenig-rats-psa-token"/>.)</t>
            </li>
            <li>
              <t>VM-based: An entire Guest VM (or a set of containers within a host) have been encrypted as a walled-garden unit by an Attesting Environment.  The result is that the host operating system cannot read and decrypt what is executing within that VM (e.g., <xref target="SEV-SNP"/> or <xref target="TDX"/>.)</t>
            </li>
          </ol>
          <t>Each of these categories of Attesters above will be capable of generating Evidence which is protected using private keys / certificates which are not accessible outside of the corresponding Attesting Environment.
The owner of these secrets is the owner of the identity which is bound within the Attesting Environment.
Effectively this means that for any Attester identity, there will exist a chain of trust ultimately bound to a hardware-based root of trust in the Attesting Environment.
It is upon this root of trust that unique, non-repudiable Attester identities may be founded.</t>
          <t>There are several types of Attester identities defined in this document.  This list is extensible:</t>
          <ul spacing="normal">
            <li>
              <t>chip-vendor: the vendor of the hardware chip used for the Attesting Environment (e.g., a primary Endorsement Key from a TPM)</t>
            </li>
            <li>
              <t>chip-hardware: specific hardware with specific firmware from an 'chip-vendor'</t>
            </li>
            <li>
              <t>target-environment: a unique instance of a software build running in an Attester (e.g., MRENCLAVE <xref target="SGX"/>, an Instance ID <xref target="I-D.tschofenig-rats-psa-token"/>, an Identity Block <xref target="SEV-SNP"/>, or a hash which represents a set of software loaded since boot (e.g., TPM based integrity verification.))</t>
            </li>
            <li>
              <t>target-developer: the organizational unit responsible for a particular 'target-environment' (e.g., MRSIGNER <xref target="SGX"/>)</t>
            </li>
            <li>
              <t>instance: a unique instantiated instance of an Attesting Environment running on 'chip-hardware' (e.g., an LDevID <xref target="IEEE802.1AR"/>)</t>
            </li>
          </ul>
          <t>Based on the category of the Attesting Environment, different types of identities might be exposed by an Attester.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Attester Identity type</th>
                <th align="left">Process-based</th>
                <th align="left">VM-based</th>
                <th align="left">HSM-based</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">chip-vendor</td>
                <td align="left">Mandatory</td>
                <td align="left">Mandatory</td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left">chip-hardware</td>
                <td align="left">Mandatory</td>
                <td align="left">Mandatory</td>
                <td align="left">Mandatory</td>
              </tr>
              <tr>
                <td align="left">target-environment</td>
                <td align="left">Mandatory</td>
                <td align="left">Mandatory</td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left">target-developer</td>
                <td align="left">Mandatory</td>
                <td align="left">Optional</td>
                <td align="left">Optional</td>
              </tr>
              <tr>
                <td align="left">instance</td>
                <td align="left">Optional</td>
                <td align="left">Optional</td>
                <td align="left">Optional</td>
              </tr>
            </tbody>
          </table>
          <t>It is expected that drafts subsequent to this specification will provide the definitions and value domains for specific identities, each of which falling within the Attester identity types listed above.
In some cases the actual unique identities might encoded as complex structures.
An example complex structure might be a 'target-environment' encoded as a Software Bill of Materials (SBOM).</t>
          <t>With the identity definitions and value domains, a Relying Party will have sufficient information to ensure that the Attester identities and Trustworthiness Claims asserted are actually capable of being supported by the underlying type of Attesting Environment.
Consequently, the Relying Party SHOULD require Identity Evidence which indicates of the type of Attesting Environment when it considers its Appraisal Policy for Attestation Results.</t>
        </section>
        <section anchor="verifier">
          <name>Verifier</name>
          <t>For the Verifier identity, it is critical for a Relying Party to review the certificate and chain of trust for that Verifier.
Additionally, the Relying Party must have confidence that the Trustworthiness Claims being relied upon from the Verifier considered the chain of trust for the Attesting Environment.</t>
          <t>There are two categorizations of Verifier identities defined in this document:</t>
          <ul spacing="normal">
            <li>
              <t>verifier build: a unique instance of a software build running as a Verifier.</t>
            </li>
            <li>
              <t>verifier developer: the organizational unit responsible for a particular 'verifier build'.</t>
            </li>
          </ul>
          <t>Within each category, communicating the identity can be accomplished via a variety of objects and encodings.</t>
        </section>
        <section anchor="communicating-identity">
          <name>Communicating Identity</name>
          <t>Any of the above identities used by the Appraisal Policy for Attestation Results needed to be pre-established by the Relying Party before, or provided during, the exchange of Attestation Results.
When provided during this exchange, the identity may be communicated either implicitly or explicitly.</t>
          <t>An example of explicit communication would be to include the following Identity Evidence directly within the Attestation Results: a unique identifier for an Attesting Environment, the name of a key which can be provably associated with that unique identifier, and the set of Attestation Results which are signed using that key.
As these Attestation Results are signed by the Verifier, it is the Verifier which is explicitly asserting the credentials it believes are trustworthy.</t>
          <t>An example of implicit communication would be to include Identity Evidence in the form of a signature which has been placed over the Attestation Results asserted by a Verifier.
It would be then up to the Relying Party's Appraisal Policy for Attestation Results to extract this signature and confirm that it only could have been generated by an Attesting Environment having access to a specific private key.
This implicit identity communication is only viable if the Attesting Environment's public key is already known by the Relying Party.</t>
          <t>One final step in communicating identity is proving the freshness of the Attestation Results to the degree needed by the Relying Party.
A typical way to accomplish this is to include an element of freshness be embedded within a signed portion of the Attestation Results.
This element of freshness reduces the identity spoofing risks from a replay attack.
For more on this, see <xref target="freshness-section"/>.</t>
        </section>
      </section>
      <section anchor="vector-section">
        <name>Trustworthiness Claims</name>
        <section anchor="design-principles">
          <name>Design Principles</name>
          <t>Trust is not absolute.
Trust is a belief in some aspect about an entity (in this case an Attester), and that this aspect is something which can be depended upon (in this case by a Relying Party.)
Within the context of Remote Attestation, believability of this aspect is facilitated by a Verifier.
This facilitation depends on the Verifier's ability to parse detailed Evidence from an Attester and then to assert conclusions about this aspect in a way interpretable by a Relying Party.</t>
          <t>Specific aspects for which a Verifier will assert trustworthiness are defined in this section.
These are known as Trustworthiness Claims.
These claims have been designed to enable a common understanding between a broad array of Attesters, Verifiers, and Relying Parties.
The following set of design principles have been applied in the Trustworthiness Claim definitions:</t>
          <ol spacing="normal" type="1"><li>
              <t>Expose a small number of Trustworthiness Claims.  </t>
              <t>
Reason: a plethora of similar Trustworthiness Claims will result in divergent choices made on which to support between different Verifiers.  This would place a lot of complexity in the Relying Party as it would be up to the Relying Party (and its policy language) to enable normalization across rich but incompatible Verifier object definitions.</t>
            </li>
            <li>
              <t>Each Trustworthiness Claim enumerates only the specific states that could viably result in a different outcome after the Policy for Attestation Results has been applied.  </t>
              <t>
Reason: by explicitly disallowing the standardization of enumerated states which cannot easily be connected to a use case, we avoid forcing implementers from making incompatible guesses on what these states might mean.</t>
            </li>
            <li>
              <t>Verifier and RP developers need explicit definitions of each state in order to accomplish the goals of (1) and (2).  </t>
              <t>
Reason: without such guidance, the Verifier will append plenty of raw supporting info.  This relieves the Verifier of making the hard decisions.  Of course, this raw info will be mostly non-interpretable and therefore non-actionable by the Relying Party.</t>
            </li>
            <li>
              <t>Support standards and non-standard extensibility for (1) and (2).  </t>
              <t>
Reason: standard types of Verifier generated Trustworthiness Claims should be vetted by the full RATS working group, rather than being maintained in a repository which doesn't follow the RFC process.  This will keep a tight lid on extensions which must be considered by the Relying Party's policy language.  Because this process takes time, non-standard extensions will be needed for implementation speed and flexibility.</t>
            </li>
          </ol>
          <t>These design principles are important to keep the number of Verifier generated claims low, and to retain the complexity in the Verifier rather than the Relying Party.</t>
        </section>
        <section anchor="enumeration-encoding">
          <name>Enumeration Encoding</name>
          <t>Per design principle (2), each Trustworthiness Claim will only expose specific encoded values.
To simplify the processing of these enumerations by the Relying Party, the enumeration will be encoded as a single signed 8 bit integer.  These value assignments for this integer will be in four Trustworthiness Tiers which follow these guidelines:</t>
          <t>None: The Verifier makes no assertions regarding this aspect of trustworthiness.</t>
          <ul spacing="normal">
            <li>
              <t>Value 0: The Evidence received is insufficient to make a conclusion. Note: this should always be always treated equivalently by the Relying Party as no claim being made. I.e., the RP's Appraisal Policy for Attestation Results SHOULD NOT make any distinction between a Trustworthiness Claim with enumeration '0', and no Trustworthiness Claim being provided.</t>
            </li>
            <li>
              <t>Value 1: The Evidence received contains unknown elements which the Verifier is unable to evaluate. An example might be that the wrong type of Evidence has been delivered.  Another  case is that of Evidence coming from a composite Attester: a Verifier may understand only part of it and leave as "unknown" the Trustworthiness claims related to features it can't appraise.</t>
            </li>
            <li>
              <t>Value -1: A verifier malfunction occurred during the Verifier's appraisal processing.</t>
            </li>
          </ul>
          <t>Affirming: The Verifier affirms the Attester support for this aspect of trustworthiness.</t>
          <ul spacing="normal">
            <li>
              <t>Values 2 to 31: A standards enumerated reason for affirming.</t>
            </li>
            <li>
              <t>Values -2 to -32: A non-standard reason for affirming.</t>
            </li>
          </ul>
          <t>Warning: The Verifier warns about this aspect of trustworthiness.</t>
          <ul spacing="normal">
            <li>
              <t>Values 32 to 95: A standards enumerated reason for the warning.</t>
            </li>
            <li>
              <t>Values -33 to -96: A non-standard reason for the warning.</t>
            </li>
          </ul>
          <t>Contraindicated: The Verifier asserts the Attester is explicitly untrustworthy in regard to this aspect.</t>
          <ul spacing="normal">
            <li>
              <t>Values 96 to 127: A standards enumerated reason for the contraindication.</t>
            </li>
            <li>
              <t>Values -97 to -128: A non-standard reason for the contraindication.</t>
            </li>
          </ul>
          <t>This enumerated encoding listed above will simplify the Appraisal Policy for Attestation Results.
Such a policies may be as simple as saying that a specific Verifier has recently asserted Trustworthiness Claims, all of which are Affirming.</t>
        </section>
        <section anchor="assigning-a-trustworthiness-claim-value">
          <name>Assigning a Trustworthiness Claim value</name>
          <t>In order to simplify design, only a single encoded value is asserted by a Verifier for any Trustworthiness Claim within a using the following process.</t>
          <ol spacing="normal" type="1"><li>
              <t>If applicable, a Verifier MUST assign a standardized value from the Contraindicated tier.</t>
            </li>
            <li>
              <t>Else if applicable, a Verifier MUST assign a non-standardized value from the Contraindicated tier.</t>
            </li>
            <li>
              <t>Else if applicable, a Verifier MUST assign a standardized value from the Warning tier.</t>
            </li>
            <li>
              <t>Else if applicable, a Verifier MUST assign a non-standardized value from the Warning tier.</t>
            </li>
            <li>
              <t>Else if applicable, a Verifier MUST assign a standardized value from the Affirming tier.</t>
            </li>
            <li>
              <t>Else if applicable, a Verifier MUST assign a non-standardized value from the Affirming tier.</t>
            </li>
            <li>
              <t>Else a Verifier MAY assign a 0 or -1.</t>
            </li>
          </ol>
        </section>
        <section anchor="specific-claims">
          <name>Specific Claims</name>
          <t>Following are the Trustworthiness Claims and their supported enumerations which may be asserted by a Verifier:</t>
          <dl>
            <dt>configuration:</dt>
            <dd>
              <t>A Verifier has appraised an Attester's configuration, and is able to make conclusions regarding the exposure of known vulnerabilities
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>The configuration is a known and approved config.</t>
                </dd>
                <dt>3:</dt>
                <dd>
                  <t>The configuration includes or exposes no known vulnerabilities.</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>The configuration includes or exposes known vulnerabilities.</t>
                </dd>
                <dt>36:</dt>
                <dd>
                  <t>Elements of the configuration relevant to security are unavailable to the Verifier.</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>The configuration is unsupportable as it exposes unacceptable security vulnerabilities.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>executables:</dt>
            <dd>
              <t>A Verifier has appraised and evaluated relevant runtime files, scripts, and/or other objects which have been loaded into the Target environment's memory.
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>Only a recognized genuine set of approved executables, scripts, files, and/or objects have been loaded during and after the boot process.</t>
                </dd>
                <dt>3:</dt>
                <dd>
                  <t>Only a recognized genuine set of approved executables have been loaded during the boot process.</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>Only a recognized genuine set of executables, scripts, files, and/or objects have been loaded.  However the Verifier cannot vouch for a subset of these due to known bugs or other known vulnerabilities.</t>
                </dd>
                <dt>33:</dt>
                <dd>
                  <t>Runtime memory includes executables, scripts, files, and/or objects which are not recognized.</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>Runtime memory includes executables, scripts, files, and/or object which are contraindicated.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>file-system:</dt>
            <dd>
              <t>A Verifier has evaluated a specific set of directories within the Attester's file system.  (Note: the Verifier may or may not indicate what these directory and expected files are via an unspecified management interface.)
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>Only a recognized set of approved files are found.</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>The file system includes unrecognized executables, scripts, or files.</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>The file system includes contraindicated executables, scripts, or files.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>hardware:</dt>
            <dd>
              <t>A Verifier has appraised any Attester hardware and firmware which are able to expose fingerprints of their identity and running code.
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>An Attester has passed its hardware and/or firmware verifications needed to demonstrate that these are genuine/supported.</t>
                </dd>
              </dl>
              <t>32: An Attester contains only genuine/supported hardware and/or firmware, but there are known security vulnerabilities.</t>
              <dl>
                <dt>96:</dt>
                <dd>
                  <t>Attester hardware and/or firmware is recognized, but its trustworthiness is contraindicated.</t>
                </dd>
                <dt>97:</dt>
                <dd>
                  <t>A Verifier does not recognize an Attester's hardware or firmware, but it should be recognized.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>instance-identity:</dt>
            <dd>
              <t>A Verifier has appraised an Attesting Environment's unique identity based upon private key signed Evidence which can be correlated to a unique instantiated instance of the Attester.  (Note: this Trustworthiness Claim should only be generated if the Verifier actually expects to recognize the unique identity of the Attester.)
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>The Attesting Environment is recognized, and the associated instance of the Attester is not known to be compromised.</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>The Attesting Environment is recognized, and but its unique private key indicates a device which is not trustworthy.</t>
                </dd>
                <dt>97:</dt>
                <dd>
                  <t>The Attesting Environment is not recognized; however the Verifier believes it should be.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>runtime-opaque:</dt>
            <dd>
              <t>A Verifier has appraised the visibility of Attester objects in memory from perspectives outside the Attester.
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>the Attester's executing Target Environment and Attesting Environments are encrypted and within Trusted Execution Environment(s) opaque to the operating system, virtual machine manager, and peer  applications.  (Note: This value corresponds to the protections asserted by O.RUNTIME_CONFIDENTIALITY from <xref target="GP-TEE-PP"/>)</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>the Attester's executing Target Environment and Attesting Environments inaccessible from any other parallel application or Guest VM running on the Attester's physical device.  (Note that unlike "1" these environments are not encrypted in a way which restricts the Attester's root operator visibility. See O.TA_ISOLATION from <xref target="GP-TEE-PP"/>.)</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>The Verifier has concluded that in memory objects are unacceptably visible within the physical host that supports the Attester.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>sourced-data:</dt>
            <dd>
              <t>A Verifier has evaluated of the integrity of data objects from external systems used by the Attester.
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>All essential Attester source data objects have been provided by other Attester(s) whose most recent appraisal(s) had both no Trustworthiness Claims of "0" where the current Trustworthiness Claim is "Affirming", as well as no "Warning" or "Contraindicated" Trustworthiness Claims.</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>Attester source data objects come from unattested sources, or attested sources with "Warning" type Trustworthiness Claims.</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>Attester source data objects come from contraindicated sources.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
            <dt>storage-opaque:</dt>
            <dd>
              <t>A Verifier has appraised that an Attester is capable of encrypting persistent storage. (Note: Protections must meet the capabilities of <xref target="OMTP-ATE"/> Section 5, but need not be hardware tamper resistant.)
</t>
              <dl>
                <dt>0:</dt>
                <dd>
                  <t>No assertion</t>
                </dd>
                <dt>1:</dt>
                <dd>
                  <t>Evidence contains unknown elements which inhibit Verifer evaluation.</t>
                </dd>
                <dt>-1:</dt>
                <dd>
                  <t>Verifier malfunction</t>
                </dd>
                <dt>2:</dt>
                <dd>
                  <t>the Attester encrypts all secrets in persistent storage via using keys which are never visible outside an HSM or the Trusted Execution Environment hardware.</t>
                </dd>
                <dt>32:</dt>
                <dd>
                  <t>the Attester encrypts all persistently stored secrets, but without using hardware backed keys</t>
                </dd>
                <dt>96:</dt>
                <dd>
                  <t>There are persistent secrets which are stored unencrypted in an Attester.</t>
                </dd>
                <dt>99:</dt>
                <dd>
                  <t>Cryptographic validation of the Evidence has failed.</t>
                </dd>
              </dl>
            </dd>
          </dl>
          <t>It is possible for additonal Trustworthiness Claims and enumerated values to be defined in subsequent documents.
At the same time, the standardized Trustworthiness Claim values listed above have been designed so there is no overlap within a Trustworthiness Tier.
As a result, it is possible to imagine a future where overlapping Trustworthiness Claims within a single Trustworthiness Tier may be defined.
Wherever possible, the Verifier SHOULD assign the best fitting standardized value.</t>
          <t>Where a Relying Party doesn't know how to handle a particular Trustworthiness Claim, it MAY choose an appropriate action based on the Trustworthiness Tier under which the enumerated value fits.</t>
          <t>It is up to the Verifier to publish the types of evaluations it performs when determining how Trustworthiness Claims are derived for a type of any particular type of Attester.
It is out of the scope of this document for the Verifier to provide proof or specific logic on how a particular Trustworthiness Claim which it is asserting was derived.</t>
        </section>
        <section anchor="trustworthiness-vector">
          <name>Trustworthiness Vector</name>
          <t>Multiple Trustworthiness Claims may be asserted about an Attesting Environment at single point in time.
The set of Trustworthiness Claims inserted into an instance of Attestation Results by a Verifier is known as a Trustworthiness Vector.
The order of Claims in the vector is NOT meaningful.
A Trustworthiness Vector with no Trustworthiness Claims (i.e., a null Trustworthiness Vector) is a valid construct.
In this case, the Verifier is making no Trustworthiness Claims but is confirming that an appraisal has been made.</t>
        </section>
        <section anchor="trustworthiness-vector-for-a-type-of-attesting-environment">
          <name>Trustworthiness Vector for a type of Attesting Environment</name>
          <t>Some Trustworthiness Claims are implicit based on the underlying type of Attesting Environment.
For example, a validated MRSIGNER identity can be present where the underlying <xref target="SGX"/> hardware is 'hw-authentic'.
Where such implicit Trustworthiness Claims exist, they do not have to be explicitly included in the Trustworthiness Vector.
However, these implicit Trustworthiness Claims SHOULD be considered as being present by the Relying Party.
Another way of saying this is if a Trustworthiness Claim is automatically supported as a result of coming from a specific type of TEE, that claim need not be redundantly articulated. Such implicit Trustworthiness Claims can be seen in the tables within <xref target="process-based-claims"/> and <xref target="VM-based-claims"/>.</t>
          <t>Additionally, there are some Trustworthiness Claims which cannot be adequately supported by an Attesting Environment.
For example, it would be difficult for an Attester that includes only a TPM (and no other TEE) from ever having a Verifier appraise support for 'runtime-opaque'.
As such, a Relying Party would be acting properly if it rejects any non-supportable Trustworthiness Claims asserted from a Verifier.</t>
          <t>As a result, the need for the ability to carry a specific Trustworthiness Claim will vary by the type of Attesting Environment.
Example mappings can be seen in <xref target="claim-for-TEE-types"/>.</t>
        </section>
      </section>
      <section anchor="freshness-section">
        <name>Freshness</name>
        <t>A Relying Party will care about the recentness of the Attestation Results, and the specific Trustworthiness Claims which are embedded.
All freshness mechanisms of <xref target="RFC9334"/>, Section 10 are supportable by this specification.</t>
        <t>Additionally, a Relying Party may track when a Verifier expires its confidence for the Trustworthiness Claims or the Trustworthiness Vector as a whole.  Mechanisms for such expiry are not defined within this document.</t>
        <t>There is a subset of secure interactions where the freshness of Trustworthiness Claims may need to be revisited asynchronously.
This subset is when trustworthiness depends on the continuous availability of a transport session between the Attester and Relying Party.
With such connectivity dependent Attestation Results, if there is a reboot which resets transport connectivity, all established Trustworthiness Claims should be cleared.
Subsequent connection re-establishment will allow fresh new Trustworthiness Claims to be delivered.</t>
      </section>
    </section>
    <section anchor="secure-interactions-models">
      <name>Secure Interactions Models</name>
      <t>There are multiple ways of providing a Trustworthiness Vector to a Relying Party.
This section describes two alternatives.</t>
      <section anchor="background-check">
        <name>Background-Check</name>
        <section anchor="verifier-retrieval">
          <name>Verifier Retrieval</name>
          <t>It is possible to for a Relying Party to follow the Background-Check Model defined in Section 5.2 of <xref target="RFC9334"/>.
In this case, a Relying Party will receive Attestation Results containing the Trustworthiness Vector directly from a Verifier.
These Attestation Results can then be used by the Relying Party in determining the appropriate treatment for interactions with the Attester.</t>
          <t>While applicable in some cases, the utilization of the Background-Check Model without modification has potential drawbacks in other cases.
These include:</t>
          <ul spacing="normal">
            <li>
              <t>Verifier scale: if the Attester has many Relying Parties, a Verifier appraising that Attester could be frequently be queried based on the same Evidence.</t>
            </li>
            <li>
              <t>Information leak: Evidence which the Attester might consider private can be visible to the Relying Party.  Hiding that Evidence could devalue any resulting appraisal.</t>
            </li>
            <li>
              <t>Latency: a Relying Party will need to wait for the Verifier to return Attestation Results before proceeding with secure interactions with the Attester.</t>
            </li>
          </ul>
          <t>An implementer should examine these potential drawbacks before selecting this alternative.</t>
        </section>
        <section anchor="co-resident-verifier">
          <name>Co-resident Verifier</name>
          <t>A simplified Background-Check Model may exist in a very specific case.
This is where the Relying Party and Verifier functions are co-resident.
This model is appropriate when:</t>
          <ul spacing="normal">
            <li>
              <t>Some hardware-based private key is used by an Attester while proving its identity as part of a mutually authenticated secure channel establishment with the Relying Party, and</t>
            </li>
            <li>
              <t>this Attester identity is accepted as sufficient proof of Attester integrity.</t>
            </li>
          </ul>
          <t>Effectively this means that detailed forensic capabilities of a robust Verifier are unnecessary because it is accepted that the code and operational behavior of the Attester cannot be manipulated after TEE initialization.</t>
          <t>An example of such a scenario may be when an SGX's MRENCLAVE and MRSIGNER values have been associated with a known QUOTE value.
And the code running within the TEE is not modifiable after launch.</t>
        </section>
      </section>
      <section anchor="below-zero-trust">
        <name>Below Zero Trust</name>
        <t>Zero Trust Architectures are referenced in <xref target="US-Executive-Order"/> eleven times.
However despite this high profile, there is an architectural gap with Zero Trust.
The credentials used for authentication and admission control can be manipulated on the endpoint.
Attestation can fill this gap through the generation of a compound credential called AR-augmented Evidence.
This compound credential is rooted in the hardware based Attesting Environment of an endpoint, plus the trustworthiness of a Verifier.
The overall solution is known as "Below Zero Trust" as the compound credential cannot be manipulated or spoofed by an administrator of an endpoint with root access.
This solution is not adversely impacted by the potential drawbacks with pure background-check described above.</t>
        <t>To kick-off the "Below Zero Trust" compound credential creation sequence, a Verifier evaluates an Attester and returns signed Attestation Results back to this original Attester no less frequently than a well-known interval.
This interval may also be asynchronous, based on the changing of certain Evidence as described in <xref target="I-D.ietf-rats-network-device-subscription"/>.</t>
        <t>When a Relying Party is to receive information about the Attester's trustworthiness, the Attesting Environment assembles the minimal set of Evidence which can be used to confirm or refute whether the Attester remains in the state of trustworthiness represented by the AR.
To this Evidence, the Attesting Environment appends the signature from the most recent AR as well as a Relying Party Proof-of-Freshness.
The Attesting Environment then signs the combination.</t>
        <t>The Attester then assembles AR Augmented Evidence by taking the signed combination and appending the full AR. The assembly now consists of two independent but semantically bound sets of signed Evidence.</t>
        <t>The AR Augmented Evidence is then sent to the Relying Party.
The Relying Party then can appraise these semantically bound sets of signed Evidence by applying an Appraisal Policy for Attestation Results as described below.
This policy will consider both the AR as well as additional information about the Attester within the AR Augmented Evidence the when determining what action to take.</t>
        <t>This alternative combines the <xref target="RFC9334"/> Sections 5.1 Passport Model and Section 5.2 Background-Check Model.
<xref target="interactions"/> describes this flow of information.
The flows within this combined model are mapped to <xref target="RFC9334"/> in the following way.
"Verifier A" below corresponds to the "Verifier" Figure 5 within <xref target="RFC9334"/>.
And "Relying Party/Verifier B" below corresponds to the union of the "Relying Party" and "Verifier" boxes within Figure 6 of <xref target="RFC9334"/>.
This union is possible because Verifier B can be implemented as a simple, self-contained process.
The resulting combined process can appraise the AR-augmented Evidence to determine whether an Attester qualifies for secure interactions with the Relying Party.
The specific steps of this process are defined later in this section.</t>
        <figure anchor="interactions">
          <name>Below Zero Trust</name>
          <artwork><![CDATA[
  .----------------.
  | Attester       |
  | .-------------.|
  | | Attesting   ||             .----------.    .---------------.
  | | Environment ||             | Verifier |    | Relying Party |
  | '-------------'|             |     A    |    |  / Verifier B |
  '----------------'             '----------'    '---------------'
        time(VG)                       |                 |
          |<------Verifier PoF-------time(NS)            |
          |                            |                 |
 time(EG)(1)------Evidence------------>|                 |
          |                          time(RG)            |
          |<------Attestation Results-(2)                |
          ~                            ~                 ~
        time(VG')?                     |                 |
          ~                            ~                 ~
          |<------Relying Party PoF-----------------(3)time(NS')
          |                            |                 |
time(EG')(4)------AR-augmented Evidence----------------->|
          |                            |   time(RG',RA')(5)
                                                        (6)
                                                         ~
                                                      time(RX')
]]></artwork>
        </figure>
        <t>The interaction model depicted above includes specific time related events from Appendix A of <xref target="RFC9334"/>.
With the identification of these time related events, time duration/interval tracking becomes possible.
Such duration/interval tracking can become important if the Relying Party cares if too much time has elapsed between the Verifier PoF and Relying Party PoF.
If too much time has elapsed, perhaps the Attestation Results themselves are no longer trustworthy.</t>
        <t>Note that while time intervals will often be relevant, there is a simplified case that does not require a Relying Party's PoF in step (3).
In this simplified case, the Relying Party trusts that the Attester cannot be meaningfully changed from the outside during any reportable interval.
Based on that assumption, and when this is the case then the step of the Relying Party PoF can be safely omitted.</t>
        <t>In all cases, appraisal policies define the conditions and prerequisites for when an Attester does qualify for secure interactions.
To qualify, an Attester has to be able to provide all of the mandatory affirming Trustworthiness Claims and identities needed by a Relying Party's Appraisal Policy for Attestation Results, and none of the disqualifying detracting Trustworthiness Claims.</t>
        <t>More details on each interaction step of Below Zero Trust are as follows.
The numbers used in this sequence match to the numbered steps in <xref target="interactions"/>:</t>
        <ol spacing="normal" type="1"><li>
            <t>An Attester sends Evidence which is provably fresh to Verifier A at time(EG).
Freshness from the perspective of Verifier A MAY be established with Verifier PoF such as a nonce.</t>
          </li>
          <li>
            <t>Verifier A appraises (1), then sends the following items back to that Attester within Attestation Results:  </t>
            <ol spacing="normal" type="1"><li>
                <t>the verified identity of the Attesting Environment,</t>
              </li>
              <li>
                <t>the Verifier A appraised Trustworthiness Vector of an Attester,</t>
              </li>
              <li>
                <t>a freshness proof associated with the Attestation Results,</t>
              </li>
              <li>
                <t>a Verifier signature across (2.1) though (2.3).</t>
              </li>
            </ol>
          </li>
          <li>
            <t>At time(EG') a Relying Party PoF (such as a nonce) known to the Relying Party is sent to the Attester.</t>
          </li>
          <li>
            <t>The Attester generates and sends AR-augmented Evidence to the Relying Party/Verifier B.
This AR-augmented Evidence includes:  </t>
            <ol spacing="normal" type="1"><li>
                <t>The Attestation Results from (2)</t>
              </li>
              <li>
                <t>Any (optionally) new incremental Evidence from the Attesting Environment</t>
              </li>
              <li>
                <t>Attestation Environment signature which spans a hash of the Attestation Results (such as the signature of (2.4)), the proof-of-freshness from (3), and (4.2).  Note: this construct allows the delta of time between (2.3) and (3) to be definitively calculated by the Relying Party.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>On receipt of (4), the Relying Party applies its Appraisal Policy for Attestation Results.
At minimum, this appraisal policy process must include the following:  </t>
            <ol spacing="normal" type="1"><li>
                <t>Verify that (4.3) includes the nonce from (3).</t>
              </li>
              <li>
                <t>Use a local certificate to validate the signature (4.1).</t>
              </li>
              <li>
                <t>Verify that the hash from (4.3) matches (4.1)</t>
              </li>
              <li>
                <t>Use the identity of (2.1) to validate the signature of (4.3).</t>
              </li>
              <li>
                <t>Failure of any steps (5.1) through (5.4) means the link does not meet minimum validation criteria, therefore appraise the link as having a null Verifier B Trustworthiness Vector.
Jump to step (6.1).</t>
              </li>
              <li>
                <t>When there is large or uncertain time gap between time(EG) and time(EG'), the link should be assigned a null Verifier B Trustworthiness Vector.
Jump to step (6.1).</t>
              </li>
              <li>
                <t>Assemble the Verifier B Trustworthiness Vector
                </t>
                <ol spacing="normal" type="1"><li>
                    <t>Copy Verifier A Trustworthiness Vector to Verifier B Trustworthiness Vector</t>
                  </li>
                  <li>
                    <t>Add implicit Trustworthiness Claims inherent to the type of TEE.</t>
                  </li>
                  <li>
                    <t>Prune any Trustworthiness Claims unsupportable by the Attesting Environment.</t>
                  </li>
                  <li>
                    <t>Prune any Trustworthiness Claims the Relying Party doesn't accept from this Verifier.</t>
                  </li>
                </ol>
              </li>
            </ol>
          </li>
          <li>
            <t>The Relying Party takes action based on Verifier B's appraised Trustworthiness Vector, and applies the Appraisal Policy for Attestation Results.  Following is a reasonable process for such evaluation:  </t>
            <ol spacing="normal" type="1"><li>
                <t>Prune any Trustworthiness Claims from the Trustworthiness Vector not used in the Appraisal Policy for Attestation Results.</t>
              </li>
              <li>
                <t>Allow the information exchange from the Attester into a Relying Party context in the Appraisal Policy for Attestation Results where the Verifier B appraised Trustworthiness Vector includes all the mandatory Trustworthiness Claims are in the "Affirming" value range, and none of the disqualifying Trustworthiness Claims are in the "Contraindicated" value range.</t>
              </li>
              <li>
                <t>Disallow any information exchange into a Relying Party context for which that Verifier B appraised Trustworthiness Vector is not qualified.</t>
              </li>
            </ol>
          </li>
        </ol>
        <t>As link layer protocols re-authenticate, steps (1) to (2) and steps (3) to (6) will independently refresh.
This allows the Trustworthiness of Attester to be continuously re-appraised.
There are only specific event triggers which will drive the refresh of Evidence generation (1), Attestation Result generation (2), or AR-augmented Evidence generation (4):</t>
        <ul spacing="normal">
          <li>
            <t>life-cycle events, e.g. a change to an Authentication Secret of the Attester or an update of a software component.</t>
          </li>
          <li>
            <t>uptime-cycle events, e.g. a hard reset or a re-initialization of an Attester.</t>
          </li>
          <li>
            <t>authentication-cycle events, e.g. a link-layer interface reset could result in a new (4).</t>
          </li>
        </ul>
      </section>
      <section anchor="mutual-attestation">
        <name>Mutual Attestation</name>
        <t>In the interaction models described above, each device on either side of a secure interaction may require remote attestation of its peer.
This process is known as mutual-attestation.
To support mutual-attestation, the interaction models listed above may be run independently on either side of the connection.</t>
      </section>
      <section anchor="transport-protocol-integration">
        <name>Transport Protocol Integration</name>
        <t>Either unidirectional attestation or mutual attestation may be supported within the protocol interactions needed for the establishment of a single transport session.
While this document does not mandate specific transport protocols, messages containing the Attestation Results and AR Augmented Evidence can be passed within an authentication framework such the EAP protocol <xref target="RFC5247"/> over TLS <xref target="RFC8446"/>.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Privacy Considerations Text</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security Considerations Text</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>See Body.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="OMTP-ATE" target="https://www.gsma.com/newsroom/wp-content/uploads/2012/03/omtpadvancedtrustedenvironmentomtptr1v11.pdf">
          <front>
            <title>Open Mobile Terminal Platform - Advanced Trusted Environment</title>
            <author>
              <organization/>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
        <reference anchor="GP-TEE-PP" target="https://globalplatform.org/specs-library/tee-protection-profile-v1-3/">
          <front>
            <title>Global Platform TEE Protection Profile v1.3</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5247">
          <front>
            <title>Extensible Authentication Protocol (EAP) Key Management Framework</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="D. Simon" initials="D." surname="Simon"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, enables extensible network access authentication. This document specifies the EAP key hierarchy and provides a framework for the transport and usage of keying material and parameters generated by EAP authentication algorithms, known as "methods". It also provides a detailed system-level security analysis, describing the conditions under which the key management guidelines described in RFC 4962 can be satisfied. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5247"/>
          <seriesInfo name="DOI" value="10.17487/RFC5247"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="TPM-ID" target="https://www.trustedcomputinggroup.org/wp-content/uploads/TPM_Keys_for_Platform_Identity_v1_0_r3_Final.pdf">
          <front>
            <title>TPM Keys for Platform Identity for TPM 1.2</title>
            <author>
              <organization/>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
        <reference anchor="SEV-SNP" target="https://www.amd.com/system/files/TechDocs/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf">
          <front>
            <title>AMD SEV-SNP: Stregthening VM Isolation with Integrity Protection and More</title>
            <author>
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="SGX" target="https://software.intel.com/content/dam/develop/external/us/en/documents/intel-sgx-support-for-third-party-attestation-801017.pdf">
          <front>
            <title>Supporting Third Party Attestation for Intel SGX with Intel Data Center Attestation Primitives</title>
            <author>
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="TDX" target="https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-whitepaper-final9-17.pdf">
          <front>
            <title>Intel Trust Domain Extensions</title>
            <author>
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="IEEE802.1AR" target="https://ieeexplore.ieee.org/document/8423794">
          <front>
            <title>802.1AR: Secure Device Identity</title>
            <author>
              <organization/>
            </author>
            <date year="2018" month="August" day="02"/>
          </front>
        </reference>
        <reference anchor="I-D.tschofenig-rats-psa-token">
          <front>
            <title>Arm's Platform Security Architecture (PSA) Attestation Token</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Mathias Brossard" initials="M." surname="Brossard">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Adrian L. Shaw" initials="A. L." surname="Shaw">
              <organization>HP Labs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="21" month="February" year="2024"/>
            <abstract>
              <t>   The Arm Platform Security Architecture (PSA) is a family of hardware
   and firmware security specifications, as well as open-source
   reference implementations, to help device makers and chip
   manufacturers build best-practice security into products.  Devices
   that are PSA compliant can produce attestation tokens as described in
   this memo, which are the basis for many different protocols,
   including secure provisioning and network access control.  This
   document specifies the PSA attestation token structure and semantics.

   The PSA attestation token is a profile of the Entity Attestation
   Token (EAT).  This specification describes what claims are used in an
   attestation token generated by PSA compliant systems, how these
   claims get serialized to the wire, and how they are cryptographically
   protected.

   This informational document is published as an independent submission
   to improve interoperability with ARM's architecture.  It is not a
   standard nor a product of the IETF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tschofenig-rats-psa-token-22"/>
        </reference>
        <reference anchor="I-D.ietf-rats-network-device-subscription">
          <front>
            <title>Attestation Event Stream Subscription</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="10" month="September" year="2023"/>
            <abstract>
              <t>   This memo defines how to subscribe to YANG Event Streams for Remote
   Attestation Procedures (RATS).  In RATS, Conceptional Messages, are
   defined.  Analogously, the YANG module defined in this memo augments
   the YANG module for TPM-based Challenge-Response based Remote
   Attestation (CHARRA) to allow for subscription to remote attestation
   Evidence.  Additionally, this memo provides the methods and means to
   define additional Event Streams for other Conceptual Message as
   illustrated in the RATS Architecture, e.g.  Attestation Results,
   Endorsements, or Event Logs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-network-device-subscription-04"/>
        </reference>
        <reference anchor="TPM2.0" target="https://trustedcomputinggroup.org/wp-content/uploads/TPM-Rev-2.0-Part-1-Architecture-01.07-2014-03-13.pdf">
          <front>
            <title>Trusted Platform Module Library - Part 1: Architecture</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="US-Executive-Order" target="https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/">
          <front>
            <title>Executive Order on Improving the Nation's Cybersecurity</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="May" day="12"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 823?>

<section anchor="implementation-guidance">
      <name>Implementation Guidance</name>
      <section anchor="supplementing-trustworthiness-claims">
        <name>Supplementing Trustworthiness Claims</name>
        <t>What has been encoded into each Trustworthiness Claim is the domain of integer values which is likely to drive a different programmatic decision in the Relying Party's Appraisal Policy for Attestation Results.
This will not be the only thing a Relying Party's Operations team might care to track for measurement or debugging purposes.</t>
        <t>There is also the opportunity for the Verifier to include supplementary Evidence beyond a set of asserted Trustworthiness Claims.
It is recommended that if supplementary Evidence is provided by the Verifier within the Attestation Results, that this supplementary Evidence includes a reference to a specific Trustworthiness Claim.
This will allow a deeper understanding of some of the reasoning behind the integer value assigned.</t>
      </section>
    </section>
    <section anchor="claim-for-TEE-types">
      <name>Supportable Trustworthiness Claims</name>
      <t>The following is a table which shows what Claims are supportable by different Attesting Environment types.
Note that claims MAY BE implicit to an Attesting Environment type, and therefore do not have to be included in the Trustworthiness Vector to be considered as set by the Relying Party.</t>
      <section anchor="supportable-trustworthiness-claims-for-hsm-based-cc">
        <name>Supportable Trustworthiness Claims for HSM-based CC</name>
        <t>Following are Trustworthiness Claims which MAY be set for a HSM-based Confidential Computing Attester. (Such as a TPM <xref target="TPM-ID"/>.)</t>
        <table>
          <thead>
            <tr>
              <th align="left">Trustworthiness Claim</th>
              <th align="left">Required?</th>
              <th align="left">Appraisal Method</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">configuration</td>
              <td align="left">Optional</td>
              <td align="left">Verifier evaluation of Attester reveals no configuration lines which expose the Attester to known security vulnerabilities.  This may be done with or without the involvement of a TPM PCR.</td>
            </tr>
            <tr>
              <td align="left">executables</td>
              <td align="left">Yes</td>
              <td align="left">Checks the TPM PCRs for the static operating system, and for any tracked files subsequently loaded</td>
            </tr>
            <tr>
              <td align="left">file-system</td>
              <td align="left">No</td>
              <td align="left">Can be supported, but TPM tracking is unlikely</td>
            </tr>
            <tr>
              <td align="left">hardware</td>
              <td align="left">Yes</td>
              <td align="left">If TPM PCR check ok from BIOS checks, through Master Boot Record configuration</td>
            </tr>
            <tr>
              <td align="left">instance-identity</td>
              <td align="left">Optional</td>
              <td align="left">Check IDevID</td>
            </tr>
            <tr>
              <td align="left">runtime-opaque</td>
              <td align="left">n/a</td>
              <td align="left">TPMs are not recommended to provide a sufficient technology base for this Trustworthiness Claim.</td>
            </tr>
            <tr>
              <td align="left">sourced-data</td>
              <td align="left">n/a</td>
              <td align="left">TPMs are not recommended to provide a sufficient technology base for this Trustworthiness Claim.</td>
            </tr>
            <tr>
              <td align="left">storage-opaque</td>
              <td align="left">Minimal</td>
              <td align="left">With a TPM, secure storage space exists and is writeable by external applications. But the space is so limited that it often is used just be used to store keys.</td>
            </tr>
          </tbody>
        </table>
        <t>Setting the Trustworthiness Claims may follow the following logic at the Verifier A within (2) of <xref target="interactions"/>:</t>
        <artwork><![CDATA[
Start: Evidence received starts the generation of a new
Trustworthiness Vector.  (e.g.,  TPM Quote Received, log received,
or appraisal timer expired)

Step 0: set Trustworthiness Vector = Null

Step 1: Is there sufficient fresh signed evidence to appraise?
  (yes) - No Action
  (no) -  Goto Step 6

Step 2: Appraise Hardware Integrity PCRs
   if (hardware NOT "0") - push onto vector
   if (hardware NOT affirming or warning), go to Step 6

Step 3: Appraise Attesting Environment identity
   if (instance-identity <> "0") - push onto vector

Step 4: Appraise executable loaded and filesystem integrity
   if (executables NOT "0") - push onto vector
   if (executables NOT affirming or warning), go to Step 6

Step 5: Appraise all remaining Trustworthiness Claims
        Independently and set as appropriate.

Step 6: Assemble Attestation Results, and push to Attester

End

]]></artwork>
      </section>
      <section anchor="process-based-claims">
        <name>Supportable Trustworthiness Claims for process-based CC</name>
        <t>Following are Trustworthiness Claims which MAY be set for a process-based Confidential Computing based Attester. (Such as a SGX Enclaves and TrustZone.)</t>
        <table>
          <thead>
            <tr>
              <th align="left">Trustworthiness Claim</th>
              <th align="left">Required?</th>
              <th align="left">Appraisal Method</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">instance-identity</td>
              <td align="left">Optional</td>
              <td align="left">Internally available in TEE.  But keys might not be known/exposed to the Relying Party by the Attesting Environment.</td>
            </tr>
            <tr>
              <td align="left">configuration</td>
              <td align="left">Optional</td>
              <td align="left">If done, this is at the Application Layer.  Plus each process needs it own protection mechanism as the protection is limited to the process itself.</td>
            </tr>
            <tr>
              <td align="left">executables</td>
              <td align="left">Optional</td>
              <td align="left">Internally available in TEE.  But keys might not be known/exposed to the Relying Party by the Attesting Environment.</td>
            </tr>
            <tr>
              <td align="left">file-system</td>
              <td align="left">Optional</td>
              <td align="left">Can be supported by application, but process-based CC is not a sufficient technology base for this Trustworthiness Claim.</td>
            </tr>
            <tr>
              <td align="left">hardware</td>
              <td align="left">Implicit in signature</td>
              <td align="left">At least the TEE is protected here. Other elements of the system outside of the TEE might need additional protections is used by the application process.</td>
            </tr>
            <tr>
              <td align="left">runtime-opaque</td>
              <td align="left">Implicit in signature</td>
              <td align="left">From the TEE</td>
            </tr>
            <tr>
              <td align="left">storage-opaque</td>
              <td align="left">Implicit in signature</td>
              <td align="left">Although the application must assert that this function is used by the code itself.</td>
            </tr>
            <tr>
              <td align="left">sourced-data</td>
              <td align="left">Optional</td>
              <td align="left">Will need to be supported by application code</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="VM-based-claims">
        <name>Supportable Trustworthiness Claims for VM-based CC</name>
        <t>Following are Trustworthiness Claims which MAY be set for a VM-based Confidential Computing based Attester. (Such as SEV, TDX, ACCA, SEV-SNP.)</t>
        <table>
          <thead>
            <tr>
              <th align="left">Trustworthiness Claim</th>
              <th align="left">Required?</th>
              <th align="left">Appraisal Method</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">instance-identity</td>
              <td align="left">Optional</td>
              <td align="left">Internally available in TEE.  But keys might not be known/exposed to the Relying Party by the Attesting Environment.</td>
            </tr>
            <tr>
              <td align="left">configuration</td>
              <td align="left">Optional</td>
              <td align="left">Requires application integration.  Easier than with process-based solution, as the whole protected machine can be evaluated.</td>
            </tr>
            <tr>
              <td align="left">executables</td>
              <td align="left">Optional</td>
              <td align="left">Internally available in TEE.  But keys might not be known/exposed to the Relying Party by the Attesting Environment.</td>
            </tr>
            <tr>
              <td align="left">file-system</td>
              <td align="left">Optional</td>
              <td align="left">Can be supported by application</td>
            </tr>
            <tr>
              <td align="left">hardware</td>
              <td align="left">Chip dependent</td>
              <td align="left">At least the TEE is protected here. Other elements of the system outside of the TEE might need additional protections is used by the application process.</td>
            </tr>
            <tr>
              <td align="left">runtime-opaque</td>
              <td align="left">Implicit in signature</td>
              <td align="left">From the TEE</td>
            </tr>
            <tr>
              <td align="left">storage-opaque</td>
              <td align="left">Chip dependent</td>
              <td align="left">Although the application must assert that this function is used by the code itself.</td>
            </tr>
            <tr>
              <td align="left">sourced-data</td>
              <td align="left">Optional</td>
              <td align="left">Will need to be supported by application code</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="some-issues-being-worked">
      <name>Some issues being worked</name>
      <t>It is possible for a cluster/hierarchy of Verifiers to have aggregate AR which are perhaps signed/endorsed by a lead Verifier.
What should be the Proof-of-Freshness or Verifier associated with any of the aggregate set of Trustworthiness Claims?</t>
      <t>There will need to be a subsequent document which documents how these objects which will be translated into a protocol on a wire (e.g. EAP on TLS).
Some breakpoint between what is in this draft, and what is in specific drafts for wire encoding will need to be determined.
Questions like architecting the cluster/hierarchy of Verifiers fall into this breakdown.</t>
      <t>For some Trustworthiness Claims, there could be value in identifying a specific Appraisal Policy for Attestation Results applied within the Attester.
One way this could be done would be a URI which identifies the policy used at Verifier A, and this URI would reference a specific Trustworthiness Claim.
As the URI also could encode the version of the software, it might also act as a mechanism to signal the Relying Party to refresh/re-evaluate its view of Verifier A.
Do we need this type of structure to be included here?
Should it be in subsequent documents?</t>
      <t>Expand the variant of <xref target="interactions"/> which requires no Relying Party PoF into its own picture.</t>
      <t>In what document (if any) do we attempt normalization of the identity claims between different types of TEE.   E.g., does MRSIGNER plus extra loaded software = the sum of TrustZone Signer IDs for loaded components?</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>Guy Fedorkow</t>
      <t>Email: gfedorkow@juniper.net</t>
      <t>Dave Thaler</t>
      <t>Email: dthaler@microsoft.com</t>
      <t>Ned Smith</t>
      <t>Email: ned.smith@intel.com</t>
      <t>Lawrence Lundblade</t>
      <t>Email: lgl@island-resort.com</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
3A3QG2vwIcGXDA81EB8469jBQ+Z35j48YBaV5vHaqDwN+3VaOvFzKxctS5BW
a3OwXN0AoSS2tYxTpFpNTCNCyBfHvv3XFYhdcZdtIVxYJfeD5rZgv4krVt/T
2jNvsEqy6VjBdYqGclwAwuK2KMUhrVJ+ht6XTusZr2YRb7ashuQ1u7PO3etd
NqBTCjR1JYbY0nE0AbxE9LsdRj/FZU4fXhY5Sb0JnWHC9+1tkZuOPfJ9FjCz
0PE3IPasQ4Ac2rmuyu0pWZVMBFC7y4wPVrWuNfa9Ij3Q4mSIKL5BAXnKmslN
apVfVrPTLnkVhaTBV18UWTOYtO1KvUYqZjlt8VS8AV16cdW0qVizwxK/It1s
scrxnHpMDvV2Yo4myJikUItJcordfguSeSsxlKjIW8/RKtP1AqMOjM82Frg/
oHDm0wJ14Epkg65pUKw68w0HcOsZTUIYTcSEr+4UtRmRkB/AxtlTmc8DQBbL
uhtgrCUQLYqjDB2vJlGwWOMO3dDmethuggRSr54+79teJmQyIi6Yb7rdG9Ze
5dBZ96g6DL48FF2w8uz+IBivyOYd8DMc4evoVIEA77PtH0WUDtuXbwzFI4wD
pZis1nKPmiDYM+PbMXH+01Mi/+/TkoS9y4J8nNGrVc5z7b2/BAaNRocJGXKs
aUcNpN66ZFSSLelEqn3WTlGaI92uNMYnbg0MFoIqRjPfGNo2Cu7J2aLYKx6w
W6YwYqHTK7+vZivyXsglVdRgGu9hgBhBYdkgiAE1HZVmuUpSkonbrPZ//tf/
1ubaSbG6wQMMeLZvzaVRUtJC10W2dksO7sJ4AAJRD2HGedVzUPlkl5XPqmXD
RV7YZF8z5B14w+MbNGoFVBmEIZoqcpIa7VUxU3XfdEGSbobS7GqJftloD7YJ
sjm+t2/NXq0tjJtKmJCrCs8oTtHw52nBIrNWbRRCReg4+krloZEM8yvSpp7j
65C+2jgnHI+kvYAmkZS7YWCOWNbwXTrOo4OMRIgpGceZDtOIaJ9erBbO/CPL
T8lLTfsWFoThLGhcBo03RH+Q4QCf1VdcdauhSBOABc1BWkXznfiSnf3TqS7j
wQRtVjd4S2V1bdMZmRpgktKz1Mc3aZayV2GNSLhp+V087ERWSM6BypqmcWJ1
5zggoEyFoUgkWE0FIHD0xep2rloRoASsvNwsSWDq4LCBMG5XBDA5EA1oWVK0
25rMU87eC087ubVi7dMn0IMThxvqb/SgTxJRVQ2D+UEJsStQXLN45QhAwwhQ
zGqAwTqNfSA6MT2elkVVqSLWoyWmVQcQps4uThI9+lDVOKXCunVlKi5KHEwk
4Ujo/SjFbl+UTZs4gCmMXqAQgMDg1SHosEN8TcQTkTeXG8zkNFAAm649oAa3
FEHZ5yBA4nyPpnSNr1BF0S1ZDbjxFK3pcjQIfgxzrWZ0NGj/8GnTePCKohIC
bOtX3PkSqXZeOYWzTZNgoyavVsQ349r3RvZqsmwUqawtO170OUycVteCAojQ
RZ748SahBQchREIy6ZHWzTx0HKR/fXwM1TLOqzbE+BECELF1siKyPgBkoveF
OAPxKtl4o9p7bIEKS703WaZ+4U5qSQAGtlWX6bTm5+Dshb4BlgEIihnJt3Ud
T++Q9ZzlAgHGa0vxVaInY1kK95OofAfbYd3RQ4MZqeItj63vMYwWxjC+BcES
yOIfaqFUP4ldscriVpQjN2/V4T/BJVfpgnx6SKFNp7AKMKhs6Gggps7ov96G
/BCEH4p7syZh9sFbYebKlBLN7Chg5SsKnHYu+/YWyOzp8URPDIUbgOSwfVrE
5+E1NiVEBCBPzeieiLwkiY1WYN3ipBABquHoRoLMHts6INzq6+sRB0klmMfZ
zNcAULjo9Zh8F0Xn4j0Wx4rOVSEUc0TZCsMNKeaDjgSgvAB4IrHvMxh895mt
AV01S1+TqZTprHn2ZIQ5Iwh30HAlKDa6WaVZ0nJh258tO/pHZ/esVobcwLcr
FDcAp0PvzHeDwSu8nfnGqQ0+unmRKkMftdqIhOySTASCSYpYvi7Ukkgp/MgT
WEIh1b1IIhcjkSqBvnmyIWK0o2I+Zzd1t8rj9V999VWoina+OhhcwM8Nx8Ur
gnd0NOxQZ6dFCQR5WeSeO77JXFibR59rNUd8EE8nJt6QjLiGjWMqDOMSihAx
Kw4vAQNcMEsQWATkjbg7Q9TaeHx2jGjQUP1EBEFxnBALtCq8+lvCFojXkQRG
5tQpaEOAmohKOcpZGfoJyaohkTIagJFvtnBa/A4pTzGFt4Bxzjgw0OOdcFnI
HhyaSMmVT9S0QzzxUTOQiENiTEBin3ebiYmoaQMtRKwJUK4jmgwEQEACdrWg
MNZDBJ35lfSSJUZWlhTl0QmqlmsYLz8Aj926qGSyqTBr2Ct8Z+3hOPrh6py1
wONoQnlZhGaaZKfB23vw2L5YpkllKURLAARl3JnHpFT7ZgLM9YgXNKkXqRYj
CopWTCTRw1sx9vTi2zg6R5keTkhj9xACOLWNFkMLybQVWGZK54bBmwZHIrkT
pCB/wOAtkYG6l7qnjoesuEX7B0Jznywt+QNWPUGbW4yXkqkbQJMFFg7bB4rC
H379lYwmFwxbey6IsUkKd3WlBmtrvJ/HfAnKVU62jAXoc8DenGLpm6ubl83G
BRAi54USdZ5BAqZRNpXrTGPywzKPGMw+frx6/TOQwoKI48XVBDayjzaY9+fe
JpCLAFq8RrEDE3T22GvDYBcTMfJva/KbF1W975EXtyuS3O/JeTtCGxH8CNpz
vW234yhCg00pQSOVu704jYvf0ihf2DtjSmP79xL0K0kEEuVC5x/ztixMODNJ
4XJ98jOBZXAa+4a7ntuJRq21sWGJ03hJVAkeEQ9A4J6wyC1ZUyYRB4Y4stgS
cOA7zaxxmQONSLoAmZcmEbovmukDmBi7QYr73JRuZ3CTSlPbgFr/V6f9Nryj
n71Lg9PZjEJzDAnw8CLcUw0NmIl40zTJbNTgTuA0H1AyijEoMs2tX8wPY7WK
emw5r5rKiqJ2r2xf6RnhCYWWs2oWvEsLBqQFBj60dgKx9PWZlCjqC5aG+qRn
lq5Q58Dw+2Y0lv++xgQ0gxHoXsDfJC4SXlM+FSyDJP3pPF2OOGzsmFVKDiGT
c7SCCT7HWnXon2/SHGu4B8xcoIB+isNVHLb1r2ajcjIQxH2dXic5dqKunZcU
NPs1ehnvORSPWcuut/5dGI9ziUZe3Bu6FPkYMPW3Vs4SN+V3oLA5x4wGbEX2
c355+vblm8n7U6WFJJCd6YBnJ5Yw8g+K/i+yYnrn0wrxZRNP47thxYfKUUu7
NkzaQgELc40BbQsLYEznZJS1KZWipIh1fn/fgcOqIMdiinJpzYBWRFmZAjB9
YB3fM+3utsG66yBzdfb67emlAganVUC3YF+nokd4B9HHvfRACj1lxQk7Nbz6
5sSsCfheJiCuYfBCvexE4ZgGN8LsW3pDR0ysf0FJjke76IdlUZm2p3jwqcOw
Q1rup5Dlw9/KOOGjldCiTzDCMeYYdf8P/OphO3x9btXd3s/6jr1PD32rfeJb
Xn23FFTy3nRW2L5nw9csTvQ84j8tpBcOgnkh0VoqPVH5KV9kZURPs+awuEwA
SaMhbPCCRkkSQPsrfEvpp+zasfTHoYMYjAFF+BbPYg5pbzE436zNaIWUGGUc
FADGaKLz3NrifV7xtaSL08RA8nyzjERWYPMhsqlWIPR7smjrZ4fDcfed9saO
oyslQi/YggXHSNa8DMTlqxfvztF3qrG3bo9bodkR7oxjkwjYo8y1rMzd7BOn
6o8SMRTLF5cKXExlcRLXjeEcnaXE/ImKhoy45LVutVU1NfW2eUdiWcUs32Fw
0QC8REQ3oVNbp6WgU3JZiQWv+kITKxlFVOdm21GnS0pD6NGaS/GaPTbg0qxT
w2k0nhxKJ9MQxViEQHHaWmhCZ0yHqRLf61XQe06eD7Y0lA5KgpoN57S7VOhx
UHr3Srep6DZ24L5oBGhVvtnyIaIaCWRrGyeGYsmXSi+x720f+8P9ZhkgXNiu
XP5UkmeVxQ59V6fo386tJ4FxTfdVDFQCNCR2YxQ3f6F0UMQbG+Uj2PoyGNs5
zCfW5il6lQftledEerDRHk1qHNlxw35Y3xkqgzXTmtD0NWQzKDEXtX8OxQgh
QTnd/kWJzGm8yvihrw5DaIrG4OANr5mUVHw0EAItpfwUzrTlv9DrGdgq9KdG
mJNNQsHQDDG2BcHAHTSM83wwGL7JAoON+hit4SelaHZ9ghnFgccLQX1KMvAD
LZ1L1gUOiIfd6mDeZM5AvMXd65Rnsduxvk0jwgLU39cTFee913BfKjENaJBV
kt1JaZqGXCHQtCVpnOIqbpCkrTn60k/Hbp2vIsIDzrd9onKIVOWBiU7DT4rW
KbLcUE55womQfaZXy4aDQExSo91y8A6slp0RVbsP520kNHygYgsiATpnLHIj
5CDlgg8TYEPeFw45cMao7ojQJg/GXG8ku2RcaQTTerYZdd3raXiBDv6xaLzg
ms0E6RZtBaDhBS+jsVG8zHc5Jpl0kShAjnc5FilAgg/y0zKivEKfotp1sanJ
1iGY2SirQINqAZ3Facy5VwravZAJijYkS5B5svBYAh9YWvmoGbvML5jfLQaV
scWNSbyA3FjvnVQt2LJgOZTOkeG6raamkaRtHexlWt1Z1yDo7xlsgp3uYxKj
yDwuZqEhUBnM4rdj2xCwXyU2jKOLg8iwbnmGeeCJwR1iLZ98msI1rzia2ib2
3VRFtqoxdFS/jplezGwILVdccHF1sr89FUjI4+7ptvtKMjXMQwbAmwXj1XPO
ZvZIsmRIitQVDtwRu7yvsgTbI9krCAfSDl8aCu3z4h4aK8IyI/BT3EFq6Lzt
7xx8vKSqGUWYG7Fb+YFjIAVRbiHG/XkxaW3/hvCVXJJ4DUfFAg5zfiHDO1iu
WuhtNhpd/K7obhe3p/UyZtY540VfkT4lc7cy/2zBBid7CtbZQGN4hCkIkPa+
yEh+dMoytqOYiZGr5zvZxNtJuhTVgMQt2fjg6KYs0P5elvHGN2zCrbH+/mEr
SSXVXC8/OpPwhZeAlFfuhrc8LQsjWNa5OV97PSb/2SkZe5CsLDDCwKXV94aN
RhEsFsOpUdKBNWCNSUoWqdJFipJ0j7JCJ6fui5xzMG+RME3nRTolC3FCVEWi
OVzNDAWns19Z4Kn1lzksl36Jo6wQnwzZB4jedzjfJYbTMucevhztUXQ+IKRE
C2Qgq67iW7PvIYLmpEr1CwkMxH3crCgZDLPDa9I8LCqzIhDm+qL7jPwr3cdn
U1SEkZKQZyMyasmrwKRX2hTx2Y0H9NiDoZRukYggHOkzQoeVhgTTQlyAO+1J
dwlKMZreOadiPej3T7zcHi/dRlZuKSzSeRg2zUQBoIARyRW3IVNDLPYTr4uU
TPZUesnGDaCxgKjXIr5jo7d3ALcr9g4SqrGCXRldA1uQ0CcD23vs5QLSJb1w
aqYkelsFw7cL4e4o3JLKkqC+TRWBmnIALKWQsiqYN4cz7B3th2BFto9Ulfy3
t6s0iSlbNRSviSYukdLjhcyZbZTxvd4gBsGs0NtSqngdDENJ9nd6YmhRdbnj
8OY7vFCrsjIaqQfj46DWx4dZiXBi6AsKyb2wDUmIx9852l95QZck9wSzAfn6
K+5UNiRVv7HOHmZliLi9gLTvWNt3R62bvtAGmzayNrVnQcNwQE6cvZcavlSb
jjIwKANpTtICB4TYYF66h+jBr1KyGTPaY9WPfLcWms8wefVSndmWziGs7wzI
tnFUE6pmKbkBjC0j2M7iUPtPF6h3W2QNpnphpvGKgv1ZTmbhP75DjEkX4u9r
HgLHfTMqiHBMYZFhLA9QKwmvmSFp5pNjQxPJIE3+5pKVY7Z40+ZJYbasquMg
hXkDJEW0Q/Md5XCxBNZkDHYI/+S68BIl1FOhXFxChC04HFrVXD+ioVjSuwk6
B08iKWevi1/agk3VZF9GeaDgsE8N8ZdjIQ+SeqyNW1jVedpiqvHWrycWWMYl
y1DEnW+jm5RLTNyCkElhCDAX2705Q9FPEtFcIKVLFESMbt+2YHBN4Y7iX7Bo
XxmicwbrB6CQ8pZKal/7h7QgVMxVCKXtuqoxvgDaWRLq6+g9Lf4RD+vFl05N
iulAtAfPXq/hn7En7mJ2ElZBZCmTCUScgaxLapt80goyrnwMsrQu81pM+yG0
tRQjgbt4NjZjsRdffImFwJWXkKXnxJSBFTRS2HoRs54HiLL7aHcoBLjnFV62
WvjGFsyHfWCWmJkKpGeWyW0lEBfQ6+zL+JhWENIcgiA0yTp/rNn8viw854Zd
gBVkbIQfYPUk5+ghG45No/ivAdXADYpajDQEKbhz1xz7egoaL51SwFccrc1k
tOJaEplB2R3WsiP73+kU3IWUaYwq7H5myNZD0itIS7sum8ABfYQFSp11HITT
mWYUUlxiGYav+ophmFtMJAbtbpoC3biLMX3fiPtXyd2ShAdcxyo6ws09poU7
nu+JiZzFybZUXc3YvT6i90ePj3CAgEN1vziQVO7Ghu7jslOX3b72xzT586cP
WTyhJs/tL//xY1r/82fb1h+8O2jkoDePRpIRQ59iYIXF0veu2GWaCxm1rmXe
u7/R58/wx8Ojbx6606m/RlLF3Zaff0NbPjz69nN7bo8i8aPexOpNCTzQzIUC
1vlwF+IVRU26nFtba4AH5E/xxlrOO0q8EbXhFDFr9e6VNIcU5m+d7ij8TDyE
pSjvSmOM+0g3cWbKjbFqh90+CyhDTdsWRh/IGmRR67Rl2/i0fpZBsq26EnwD
hsqxZHQ4m7EOOUV6PvRn4OQj2iIuz2qNdnHWwdlAfRBM0QKG6nNWkWn5QTP4
KPfwWR5/4SzbZhAiJCM/+Z3XH47+9Hdct8VLGfvZ77zy5vjfyPj+gJM/u/Ee
oSdwdEjVKeCaWGuimpZfWVTUkod94RSsraalFzERCNbNsiMdNwXEVs1k4eYa
A6RvAUlwCYCehXW3ioL3pDJEZUsnkizn21x9sVdCt1ZUIVvMnOtVhjoR6Vkp
NoUBlZjrrB+DAOsEaPrhUH7wRJ7tElqaz1NUDmhnWPOY5TKmzzDUSEd83yGI
0BNH8sD13IRbZ8O+2GpzTu4pRGqEp3j8x/1va7En9g9TzjNIrp1AkbG2LKVj
sG0jPVM4KrRsJLI/Kkh0AC9WL2zUPiInyLnrOM30zH35jCd4/mwb1Fa5IK7U
PqREdVk1DE1ZWPSTnbRzF8+fyyQvKWGCKn7DfYITTpOgQE8gV8/IhwAjcHw5
JTV8BvsTLyXYwkQTAqgPxzDiXgFsKz+w6VsaSqHeWjWFS1Qp6KEMPSnmZgL3
IqcAjP9pb8Q7ZtE2LSZB88YKSxhokRW9ER6oPUgJ5BRgAqoWkLS0EF4xawmm
SFzHsr2b9g+tqnfWnrkeDILfsnPQ+TTdNQyYYvvzuliRWaIMMozZPpGs6GKK
K3p1W7mMwm1kQWF4GSa7WOryJbsJkx8chBoE4rdP5c00DYWh34VMUH8jTllB
MtGkE44ytGsvcUAOp550hKXuVrQfyYeB095Tg40J1fSC/wfhqHvzHQM6DVdE
sDG5BCsCC0V4oQtQFmiwCn0e3xpJUuLWEAZTZ/7DkJrmZXa7pQSODo7pwdqh
2Sr3xuzGOYA+Dd7B2TqHbCDhw0b9bTg6sAkc2xmZl7hj49HJ0q1ZHe4qWUMW
W30x6gIdJqkTFtKwZoqNgERN7Z+XaU1yHwYVVa4w7D31QXJA5yNQ8dM6/MjE
BGhWbiul2vuIrwgbOLASukXIYAV236Tutl7qXdKQvLa1jX1loH1GXFLM7cSB
YMPkgdNrwXN11YdKW8guM32jM7nzoJrxASdoqBV2Ma1tpnVQFq3BSH7jzdGg
3pHi8sM0oXYwWJgtsJHcIIq+8eLQ1GXRCDyXoB1KBLRW1M+n7vjcxOcfaU/o
SLPevXNHpWFxHhelz+ykYv+UnlxNwfnhfpvL+edlJte9uXMNvNcoVS+qtQ/6
GvzFS+eoZTTAl8UCEaeDdzx4BXr7BOA+Mrl8BawjSH3SgizsMDDVv5lbVxAK
bP8ZWw61pVAbAetfz9/nTopqNSqWMex464XEUbDahQtGsyeigihIXSJckukG
IyOWnOBadRRgUA32nxFxG8KjS5DuqQXeecAsJHmZ3i4peGv/ib1qP+IDUZW/
mdE9hJPgGpGLeIpkR6TMUuvMofNKTG+1xGwIySJDOdvXXDK0DWh1nSpDw++7
8eWPb6/Pzk9/efnu7auzk1P4Y/Lm7PrPWp3ddjuljERfIPydQJnmXla3RCNu
NMs/LjF/PvO3jMzNpud7+ZWN5Sznm4qCc/lSK5wiCafP0jsT7RzuWKd643Ap
OskecKM5QVi/ypuUs6e1Wpu7VOPoyhiA9fXkl7Ord28mWNq/A8BC8AMaF1xa
Ngommi3orqXNN2HLkpp/NryGzPi6k4UM1RTgTiIsLVUdl/i3EqKqWGELkBE8
HHeQIaf7adK9zQRG7Q97gOreCF7anjPStltBZsw/PfmZYGp/VXEWhOdKJSCF
23WmDJtPc6P3Ql9EgnJPJYc7q8Xjz/MY3oO3el36pIvsPNrxStFpx61uAQjI
zI413O8M/bJvMMeOeCN28J7uNFwrO1sjTi1l2QoXV0YREJ0fTORB1gmbX3KY
g1sXhQpsW0dbyt++jqa2KvP+LvenAkIC9P9hfDwOCsySbuESRIWakZ8O+Lc0
lZHxx8pFLjw+QdFlrg4eDpW6PlEfP2qP719/xVo8tJenrG74DZasUlLHC8yk
xt6RJIv/E4u3gVgqgKvIbWvrheQdUCQrETtGqZaJZ78j4U+JsYpMcFhYZUe8
31tFBwvGcT8TDlfqlgdsABdIFh9aPR+SRp3ygl31rnh6B4/iBlrcSFRlf+cC
Dy/VjKda5SH7zH9nviLp88ui8nI9Mf+WUkG3uP28WAIOuxNVw0sq8NLvbf9n
Kt5LUc6Yw8cRkmHQc5/DX6cJAhY6Mg6qQqwRpD5QHloWL53HvSuyjlL4Ygn+
1rQ8CxPMPlrEtyhGxtFsJUlvOIUMviRxrS+U3+YiUfxA1/TqIBXYUf5nSaiu
a2hEMUvEmjh0yTOAktwsrVkIbvmKueVgR9s5DaVFSsANXW3nvyDlt3N3BCn0
LEsbxTgPaplJ6fwbv/xG5/Yp+MsLZGviFm6MSphKlZ2mp48Sc1Y3NlTchi07
0kXKoa0ld99sv4g770N2ypQpKQqPXRwaJIcCtgeiMENf0hnToAtfNS2WrpiZ
LeemgTvBfqQqxRL70ER+4QlqlYTwxEV//pBch0cbrEIpWnGl29I4gO5OHIPB
OZZLWnbgrkCo6d5v1GhvqvUoKPNdWBYplyZDOsBpPGJM75kJuBZPQe5K7C3j
GUG6QjvDmJy0cglNfY2EpLwV92CeuYlZv7fNPyhY1MSIPLNVhlmMPX2JSGrq
Fxr3UgpaxSadWZve8hj77N8nmi4dBFcYaHbmZdI1CATWyuL8hP6pyZpTaQas
i8vKvbBGG/5JEbbb0KRxN3pqalK12i0XzWbFBkTj4dU3XlHUAcW4DhVkREds
aaJmAQIpuOSJ7d5sWuzOcnWA1+783lV+3RVaLV19dfU9O6RqZNwbDi4/SXbE
wJhzeqGGtrVMT4Kaoqo4ZbWE8+fmF7YRZjrElY1GZkj0pOlKzO89Z+fZSD5O
0MVIpn49B8BVuD7UzqcQO6YrOWhe0HCrODC1/+CMLRrYl44xRxdYHscNCj1E
J0B09ZBzEVSoENEF4uKMF+798ePSL9o04jhj7GQHktDHj1rByX7fqijv/CPV
lhsQJHUhRU1AfOIydUFFmt66hyH++wl7rvNvUF7BlGoC0agddm9iSbE9iWDn
c6eOr2w7WJPOJO1znJ1eNKggoHk3NKDukqCFd2VLs1NpKLqkBn94GSgKvDRa
CoTTpvy4nc8V+xGM8uv9++IeZchoa0Gysrt832lclkG7sC25KWuscSe35zN0
6lTj8Fl4bKHgx4+ESiNYEZm1SKKxWeLt/HFMFLftT7CJVEdlpSk7UzlW24iV
4zOJ/F59jK0A8DUXTcOHs4ZZXR6917mc9F6/svLQqr6Hj/iaeMd7I9Ufg9pd
rSvWVfwdyz7csbTnYSoQ2pRTAiq/gtDMVyA7zDvdvwr34yql8yJDE+m52ymV
DEMaRJPaXr9WTbIGRb9Mo9YSSqsgoKazJbhlW0Fdhi2SGvfcLZhqoirNlHiT
T+eAntTAT7ty8cypyMtNn2sjXx7NCmmOHQAjCcmzjpCuavt+ne8gab7ZyYyK
PiIEG516pe1yN9ayE1FBWBoKnLJWZ0Me5GazqjXVt4rJtOgK/Hw2zXGamRjT
YgZXTt0NmhO4ekFcqosyUCmDi44MDqRX91CVWlNvsJtcR9c4bgla+SWoFiqz
U24VnAHrE92x8ILDXf2ar8P2bLZl6z32qScbMrmvuMFas3tpWFYMhsZayiCT
tawOmKjTXUjMS/Hs6Y3qGRys+Wx81CYxTXm5s/qc5Ft16hJiN9NYvL4+pFr6
qMV0rntLBE05gZI4gG+IDxeYhiorMSpP26b8OatOhkSi3fsNxNaUmyNK+HnY
U4+Z4qpOs0aHyZ5DUCPYokhcdUUKailqsdInZXyPRjFSplimoKkUMH7PCdc5
BURGcxxWvxGLLTWDbJSCGHYIJFax8UJdtK16qZX68C/4WGJAWqB6kJnKdZ76
OmgiCDf/rtUKNVgo59nZvhrqMRdur4bMrlIKGHKZJnbxjY6piZGc0lxLFtDN
dt1Jvo7ewET5dHPcjejKBe7jtNv+wE3/upVqTk4nkdjQErkybxd76sA8rHHu
ig8oJUWpVXqOVaYTbWTaymTaX56yrhwVsoXhRmgcT/ziFygSSWIPHnEPFiN7
5IrRZLEDmrvxuhTGlXFtlxzfbeSm+n3d1SheSUioXZeMY1sU+fcYeS1dAtKV
GzWpg5ALr/9nWPw+M7ZiE8o4LjausnmVMXAIiauxyix7XfgUUYDJTRY1eVfd
0TuGhESsMOy6PnklI6VJldFi7l6usNi2/CLW6raEs9xW/dsW4EGUgMs1bflV
gOsXN+h5cfSAnLquXcyNZO6LZUyXaDNiqSsHJaQuJZ+Fuiej5uOKYjuiYrU2
IEzpkvVPCRMHCT6ighe27EmrOBv3HAB6Z/K4TAu1qbHoCpzt9c+7lVd5Gpdl
TRpiGPfK2zRq32luyJ9+fHd9qgbhiQj2tE0NAPD827RojsBhqs4pErShLAbM
ngvTN8ig/w1b9BJLHAzc52jiNUnnW2BboSes5/x4NRJPzdqM3qHZDdRqzGww
bBasXKclED+WaS2lFuZAWRGBMHTV67GK1qugt/qt2P69FbKJzy+jZ4uZe3eB
itNgpH+ySFlkJQdlkSn19s9ZuAWIpGTT1E6BPAo+P0OiSwvHBWl7QHxHa/xr
OxxKlsaa9G6B2ru+s5O70JKu16QQvbMjed4p3HG3fZYLcetWhtEyW0kHzYbE
U8ya8g05RMi/h3XHJMfGmlx3mqiyoz3OuvfcdaHIEA5Uw9I9PB5QtWrb2c9b
u7QWLWzLA5VnvdVRnbQEll0hnQEWEU+9qiVdfIgGXa7ExydsZEpsRAVkW9EZ
S1HcpdO7UTFjetEBg87NozBHNUBIQpmG2YGulWaz4hhz7WpbUz9ctM1ZbnQi
hFHyAsQa7LjqZCMq8BFTdMKID1ObySs/1N7ySLW0HZ6vUg5DoYpKmEo1DiwP
jLVGrIBDfgkFI5GIESqiFK2upfI621unGhpKErxfN9oZPfq79/gNpVoei6oy
C7IH4jPUcxRDZ0xY8yCIn11JE3qtL8mNZle113Lb5x6l4Qrjck+5GFI7iz7o
L6TROpdU8ISOU9eydTNLVttpHlsL0+aS+hEwk0s/KqUJ7wvk3oDYI2t4YhrQ
PS3pNzifvfE32H+KeeG1Dwt60oEcFjFpET3avCvAJOjuDap5kCa3CZ9UgQig
RfFgMj7aEu9ZPq8kneAea0068wJ6SeDROFfzNTcMIRsCFXILgqh1L51r5lKv
eKe1IH3Lyn7dEijpjalzyqiE/PA1EaHEfticu/bwuijBTbxBuiX3XaogsVVR
dRuKjmKEDLCms29hx5UM8pI64Ye/tDy3lH0knmbXEPu6oRoIasgNbnR1u9JI
nafjQ4C69A9llQDRyDcrdGsO48HHj77eA4N6thKqNEkN2oMW4lK3EH6oAjOg
LDUR9YCsOYjJRE8aS7dleTVh+z4GLNqxnGKywwfXFctqn9rRvnZPnb8jtJyg
rLgT4OWBneLFlilWuWc6CAfYIdB6a7gpPjiHiyzoWZcZh86WR/ZtSCrOu4Up
LXbapq3ZxA4SYPmzkXajSlxi5fXceFq1PQ+t7tW8jd1yGaflSA93S/V9hv1X
0L9S6rhOVuJt6nMHmfBqGZplZYMKdJF+gU8Uncp2mc/B3//+90EUjUeNf2P4
0utfwv8+0Zfhs2P+8pNH8uHvT5H/z3tj3Pjbm+xTwCsaQ3xyZ/qJ/w5JJK9i
Nxh2tzkE/pvYj/CfAx9TcIjdxspGu8EQu40fmo/vDvRJVFv23r/ej7r/fWp/
M/A+/4GHs4u7KF7JDDTu26v93ld7JuyflUY8fb2/d7jPUyjy+hv742cW3D8n
DX/5un/BstcO5jPaO2rBz3/179v22v7x783D2d3/rvPV7Xv9h2d1e23IUPZw
3b+9x/ty0rv7v+V05XB39/eeyOl20qnW/H/8IpySM94dXk5gpqf+ir/s396z
f/zdANJf8o9X/zMAGmkh+lYD+lundWb+pa2z/cpinvesMGuQG9OpC0+0bnUX
zIAZ5ppZh0YOjcifsKz6AYhUB89r9NaxJnabZt8x7pC/TKTcxYHV0sgrmlLt
ZYy+djxUijhteYM5KsVsu0qTYp0PMRu9zRQXUhdFtMBhaTWUrJDFSzJcei5A
n9y13YD4LfcB7xtsiMF9c/jY58nG7xfA8LVTAuq5BWYSN1LTXHYLG1JpIgVE
s4O3luDwDVC+nZnq47HB0iWdcuOfhjYFCinuHJ0wWI0faIDzVzUG7GqJQ3vw
+lx2mSVttBp2OKAmIolT+zSW2pa42EjjVPENqb7v9VKLSTFeLZau+g77ibVo
/9woAIyqtbC1ogtbcO8aAhHP0BJTLNKa03ixcT2FL5Bfyiu5p5XGWMxRJ3Ti
NZwCZZngjU5uLZJuwqZ+dDAsiW365DBSsOWZsPsyYiA7aTVLXeM2pTgZqdS2
5ZmtqLctstrrV+MaJ7TR5aFqnFaizG2maJJWshkcD2TUUkJuerM5zotSi96T
v5+qtPrUT0+2SSk5gb8SBUVEa65GK1ZXJ5WyoQugVXNJ89o+im4JEnJJNQkV
LS7NHqSyV2Tf6GyYyr1h2O8OUzg9CaNSVRoaD6xFw10QL1kzqKM7oQBoDN/z
ggZIbg9ImvYUpmJeZCc4glX784tCUWFZ5qE1FIihxil4KaVrOSOe79gU5amr
0w4lC0QAKQ5j5Q72PSnTDdPNkF49God0euKlzPS4wougKzMP83iMMfQWvOwB
avfq6Q5GohGejH1TqNfNhQvJ7x2ND/cj9EbfzvEPJKRYhC6a2APe3W/bsuCI
9hpntO9SqDuc8VVgxnHuzSfSfNgeima28+XmI+1VGFsTeXq2aL7d76qk4Q76
uocPEkaDdK2niv2y9oqlBlLtUzwKDMftsIG8hD0uetFEj9efs9nu3W8YVC3R
myftT7e0krHHEhossRD80fjJPt8VRiQ0Rs7CqwuMlAng3pPx0T6cjVeYwIZS
czgOzwBSXE0tGojxq4hCiMTjPN73M11ScVBO40xiTvuqtD/FuvA526eXZDkG
ubyLl3PLgC/t4AfoTYbp1UJqzjcY5cZaBhbczrijk5dDHsI6aRYOkIM9W1GW
yHJh8YEkFUGlHyvuKIFZsX7bP4CXRmI3ThHGPpT3H4ezsrsKUINnoTUQa0AK
iW8pMfhRjDA+LRMi0DstAX+sK4eTeQWcTX5A0Ye5zd5TJiXsq4O/nuxbH7SJ
sjS/c2Id5ffJAfjZV9goERtlioRIEQyB7YiGiSsXUEuJAJ5poi/2+7+A5EXl
8EhefGbh+Gwc/SQCF0ukGeaRowNilauzhXAbHZFWBBfWx+GeSiaHboUu3o2T
jqjK1G9d6jdjLNFKdv6QufQNZbU8QNGXxXLjs6P+oLaHD4vkMEk+Gy+e5nPp
DcwU24tQH9uxAJ8vylVu+qvANssPBunXrZBhHffJA8ZtExXN8+IwByXlaeUH
RT9jptHQLKh+fDOVy4HUVcHuFQSG6owhskZbfChZiyJXi1RCObHUMYFL6ZkL
sbXZXkLIEE0+CyvL1XoQCG+3k1S/pCKyRSkbwuh7QGwTyAZb5SiYViimbYX1
hcvwIpW8e/BZ2c2S+5jiFnwlZlv6Dq/Ny2uXBL6Se1Zu10QeMHArEd4bXgAO
9+5EOurQsXfCfCuEXTOtoDHtg8DG3EAt+wmnGhAFzeINRQAWdTEtMnTljvzI
q6EyHWZcaP4keZG/ZKFj79k+GyA8ByX1LCKhZ6xeLyvLNBfpR1ppYSAN2qZx
RnaDYy+WmHJCXLONNVG+Mr29dS0paFUJZhPSxLKiwD3uxbmQhtPG1eARbAaC
GN0p7foPPtmnaDmAtxlNN1Ms0S3mL+wMjwE1fOScMDgJA3yuKO+6FczFKTKr
ZSJueK/HLkVr5ESRv4YnKLmlc9o5V2anKIGSKNcojAFr6Ec4Xhh+1D0uItOI
kcnWS5R5ODbUb2GFsjxAiCO1zinizwf8gG1MHZbMqhnLIq1ZpLYT3iVuL0tW
IwZRy3BC8SBq8Cq5f1/sHTv1d6ioHI96loWm+2FDHKg48l7kDi+SZtT+edi3
pSB1XCLsgD00rlN7b2JZyq3jjLIgNX/gQq40heTflgLYUx5ilaccEc4u8GD3
paw9+FaW5fK9/JIzOlNgpPYaCFEMWhCxKb1aKd22lYQxlijwMBvZybRE8j1P
oxvAkrEhSL5VFd+aVnx8Z0QB1i/q9O1rNibXQNSk+bwZkDcr44XBBlLM8XGe
08mFA8zHj5evXj49evLNr79yB9rrN1f85bdPnjyj2KHBV9gvcx0Dy3wpsQuc
IT4YdH8fXQNTsJkXqGE03+v5wb54Nnk76XjJRC+KBFXD0WhEFh16NuwB9Vra
mBHOYZcv/rGfXcKRxrXL29V2BcTwtjRXEnttUiyk57k2JpLgUmtEw4pPGaVm
MLn32+TBMQD+LyjV0/ZD6+wn+AX2S6EMHLVeSNMaoz39WGdqjv1uac+gNvFC
w/CpfEohWWE4HWhzWAKebwoGmN6sbikwbbkqqQh4kIqVVVptDO8AtknfdIbO
q25d2ePCcGMXjmM2RU5FeqVw7PY+F1pGAMvgLRbcSZVzNmd9M2jHXq/prtcA
r1H9t2Esdo1d+wa3kqGL5W10O+7ciH+OIp0BwM1S6z/YjqAYwVQsLOFliZ/d
VTBeYom7xU6rkkp6ZFfq5OAr7ZG3JWN00OgkShoHvyA2qzkF6yCIPOG0ocO5
+9ATCYcLGnuOJulahHbkF6dO+RSBpXcMm5spZoV2RvnD0sidKOilhCNu9hiy
vnoIKOli/HAlidHRy5fNrhJb00jFpI6L4LwwbyRJ2KQw2ZcgjHGxPFd7dO/K
mnExi/njR/jv6OyEy8J96iF/GFJCYkryHYazWNJ0ji1bk+gTvHiMVFr/h/8L
34YdBT4B5RFO7wWtOL00kMCxwgu6FPOiMQp1cxNISNHjQDq15dR7q+xKB0Qt
K4MaFxnWpR6Fht6l+brI1sYJCgiwi5eXY9qaX5T+U/Rn+i/FvIlywc9WlgQS
KZl21GKkus7SDodor9Ei2a5CEBBzKXePU3uVzmHStwWGGrwU96AKRlx9CVdh
vdMUFyYMCoex4e66/LOZLjvigO3ijtXvF2fvrvgrIoFs8TuPCdwvMH78Eqhv
mTSPG+ZoVe0NkYCDBM9OzPrshJ4PE+Lhifwghv/CslzFxIDUey5FP3emNtN5
XmTFLdf3de3Duokvze0XEfzfPHNQfw1mPZcg6k/RT5yhAssYqgqhdcCqJeo2
lJFVaXeXezSoKqm1ZQzDWp4vBL/5fQr4h0u1SG16T1qLD19zqP4iHUA1bJuq
b1HxLlw/Cmt13Zf46eVWe9mqjotwvR4xaXsGS+HEqOlTxEfLr4khKYMr4L61
l2RoOwJW+ANfxWYKCWh9gx5bbBTtoR45jOgi/GmFTOhShhziUu0Ew0FRek4E
RFpNnU/2cV1miV0hkUb38JV/id6uskwePTyOzioxSnvIxHYCsSgbzxOmlojv
BrDkjan2oxESgglXmYPv8gK/il6D5B/RDM9kJixsrhb2H5QCnNl6mEiz0FIE
4tOeJRBYzmfn0Q6OuFyh4QLF5bU1DreedY78otQec/vD6LaImqt57K2mp8yx
EA6dqE1R/vDH3sXxJE+8SRzZVorKdfWB3mp7AAGFTugT+gcAovn4w2Hx1Ftm
TNnWC1EYe+QxtXmfBQo6+1HrKA4SJ8cyCbYEVKdCbzgE7Q2WpzwV9PU8kRuH
ImRnuZcvkHyC93+z9NMYrVsC8lO6GnLQ1eufsfluFq/FC03T/xuIBf8uMtFn
WCJVLsg59dT2bsKaz6en2E8ZaDdVfWSdTTQ+kncOWBhKuj3yW70nUfQ5aQ1E
A5SThjZ8SSOpvJLJb9DqBmNdYEYcKdNqr0IbDJWYQ7HMFYl2NU/Uge39Rsq0
MCVbXZqtXzVGpuuiQzns/zgg2/KZL+40hDTNPREIsszWvBw2De+3ShmevHem
WlSae35fjFTHrP2Kz1ZSXOVMYC3IncbRO7LcmUZDMtmuBsrJtziEAJiadbts
F79UeBoWWPbLcLum5Z3SYd8+olfWbQUr6JaxemGQSXhMcy0UGcDmCM8OYJvh
NnZBicMWVTvkSw8vfvJrDmxBEB6URC4kw83CWl9Agd//Xqrn+89onr109+r0
/TC6Pvl5GE1evpwM8e/R1duL/09ydVWy1ypAgNQZ0WGI07hKjbSY57zbgHZo
Iu9QyStVYPIutJb/F/OyLZM+/r+OtDYJ4Mt5uvSqJP2/Rfnam/8PQfK+4pof
aVWhyZ2rMqKzwyTddZojbG0KiHowh0uCqQIbPzS14lq+aKO/vcXepzUlVrpC
bRoxz9rXAQCrKLWgCOJK4gWHkFfBBQEhMNr5v6gA+B21wyIUuQ0zdevZWu71
OzW+3zdAGXeVlpaN2UrTXM2YkiPCRoA02o24w7LYlZN1bqSC8t3Ra0naMvmY
4LvrN1f7Y65helOa+I6LDGgMFZmF08pGNCdlPKs1Lt7+ZI3k9LMEpaelcR25
m7u1SYTJePAn7NhBF4s6b9hSF2qb+AxCzGIKHtDsf9pEAlRrPKDKkVtqU2qG
g62dJP2vc81I4exit72HZxlTXFDSdkwg2r3LqYKZxmtqMUsyaNqAtOjHyzN1
UEl6jMQZSeQjXWE/kmOitnMYlV4Wx7m6Mz7vy5jwBPgy+YV4bextiyTGuvKS
XzV+gKpyMtmk9+Ip67GepkA9yG+RiLQZCBU4IJvJARaWE3ZGXvR1au7DyPTx
4KSI7qW2Je1VA9U47HVVthwFeMbfDa74nqc1/9ZZyB0u5+mHpVaHXMegg7MV
uZUJrWX3hNnnRUfsNeEk7oL0p5TWxqkf95w9I3d8L6UAzX10dtxzMMFiiRy4
XMTNUmWu0q/UO5Z76vwztk44s/XolCxj5P+2xXWo+on5AMRCzSk2FORf+GRX
C0vCUKWOrpCcltHZCV9uecvGjSDkBl9xt/QU1CGguYPB69UmemWA/t4V9wDY
BYgcx9HtTL75/i+rPAVqPc5NPRicIEm/nscZmS340aSmv79fpBgFDwscw3yD
wVuY+ApUzLl9EKlIhd98j6eU8WNv4nvG+zerPLnJYL32+ew2+z4FKpknWLwK
rgG98b8AkXMwkDfiAAA=

-->

</rfc>
