<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-acme-device-attest-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ACME DA">Automated Certificate Management Environment (ACME) Device Attestation Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-acme-device-attest-00"/>
    <author fullname="Brandon Weeks">
      <organization/>
      <address>
        <email>me@brandonweeks.com</email>
      </address>
    </author>
    <author fullname="Ganesh Mallaya">
      <organization/>
      <address>
        <email>ganesh.mallaya@appviewx.com</email>
      </address>
    </author>
    <author fullname="Sven Rajala">
      <organization/>
      <address>
        <email>sven.rajala@keyfactor.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="08"/>
    <area>Security</area>
    <workgroup>ACME Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 63?>

<t>This document specifies new identifiers and a challenge for the
Automated Certificate Management Environment (ACME) protocol which allows validating the identity of a device using attestation.</t>
    </abstract>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Automatic Certificate Management Environment (ACME) <xref target="RFC8555"/> standard specifies methods for validating control over identifiers, such as domain names. It is also useful to be able to validate properties of the device requesting the certificate, such as the identity of the device /and whether the certificate key is protected by a secure cryptoprocessor.</t>
      <t>Many operating systems and device vendors offer functionality enabling a device to generate a cryptographic attestation of their identity, such as:</t>
      <ul spacing="normal">
        <li>
          <t><eref target="https://source.android.com/security/keystore/attestation">Android Key Attestation</eref></t>
        </li>
        <li>
          <t><eref target="https://developers.google.com/chrome/verified-access/overview">Chrome OS Verified Access</eref></t>
        </li>
        <li>
          <t><eref target="https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/">Trusted Platform Module</eref></t>
        </li>
        <li>
          <t><eref target="https://support.apple.com/en-om/guide/deployment/dep28afbde6a/web">Managed Device Attestation for Apple Devices</eref></t>
        </li>
      </ul>
      <t>Using ACME and device attestation to issue client certificates for enterprise PKI is anticipated to be the most common use case. The following variances to the ACME specification are described in this document:</t>
      <ul spacing="normal">
        <li>
          <t>Addition of <tt>permanent-identifier</tt> <xref target="RFC4043"/> and <tt>hardware-module</tt> <xref target="RFC4108"/> identifier types.</t>
        </li>
        <li>
          <t>Addition of the <tt>device-attest-01</tt> challenge type to prove control of the <tt>permanent-identifier</tt> and <tt>hardware-module</tt> identifier types.</t>
        </li>
        <li>
          <t>The challenge response payload contains a serialized WebAuthn attestation statement format instead of an empty JSON object (<tt>{}</tt>).</t>
        </li>
        <li>
          <t>Accounts and external account binding being used as a mechanism to pre-authenticate requests to an enterprise CA.</t>
        </li>
      </ul>
      <t>This document does not specify the attestation verification procedures. Section 13 of <xref target="WebAuthn"/> gives some guidance, however verification procedures are complex and may require changes to address future security issues.</t>
      <t>Efforts are underway within the Remote ATtestation ProcedureS (RATS) working group to define a set of standard formats and protocols for attestation. An explict aim of this document is to support vendor specific formats and protocols that are widley deployed at the time it was authored. In the future, an ACME challenge type based on these standards <bcp14>SHOULD</bcp14> be used instead of <tt>device-attest-01</tt>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
      <?line -18?>

</section>
    <section anchor="permanent-identifier">
      <name>Permanent Identifier</name>
      <t>A new identifier type, "permanent-identifier" is introduced to represent the identity of a device assigned by the manufacturer, typically a serial number. The name of this identifier type was chosen to align with <xref target="RFC4043"/>, it does not prescribe the lifetime of the identifier, which is at the discretion of the Assigner Authority.</t>
      <t>The identity along with the assigning organization can be included in the Subject Alternate Name Extension using the PermanentIdentifier form described in <xref target="RFC4043"/>.</t>
      <!-- Section 7.4 of RFC 8555 states "Specifications that define new identifier types must specify where in the certificate signing request these identifiers can appear." -->

<t>Clients <bcp14>MAY</bcp14> include this identifier in the certificate signing request (CSR). Alternatively if the server wishes to only issue privacy-preserving certificates, it <bcp14>MAY</bcp14> reject CSRs containing a PermanentIdentifier in the subjectAltName extension.</t>
    </section>
    <section anchor="hardware-module">
      <name>Hardware Module</name>
      <t>A new identifier type, "hardware-module" is introduced to represent the identity of the secure cryptoprocessor that generated the certificate key.</t>
      <!-- TODO: describe the certificate representation -->
<!-- TODO: describe how the CA assert the key is hardware backed without an identifier -->
<t>The hardware module identity can be included in the Subject Alternate Name Extension using the HardwareModuleName form described in <xref target="RFC4108"/>. The HardwareModuleName is encoded as an otherName with the OID id-on-hardwareModuleName (1.3.6.1.5.5.7.8.4) and consists of:</t>
      <ul spacing="normal">
        <li>
          <t>hwType: An OBJECT IDENTIFIER that identifies the type of hardware module</t>
        </li>
        <li>
          <t>hwSerialNum: An OCTET STRING containing the hardware module serial number</t>
        </li>
      </ul>
      <t>Clients <bcp14>MAY</bcp14> include this identifier in the certificate signing request (CSR). When included in a CSR, it <bcp14>MUST</bcp14> appear in an extensionRequest attribute <xref target="RFC2985"/> requesting a subjectAltName extension.</t>
      <t>If the server includes HardwareModule in the subjectAltName extension the CA <bcp14>MUST</bcp14> verify that the certificate key was generated on the secure cryptoprocessor with the asserted identity and type. The key <bcp14>MUST NOT</bcp14> be able to be exported from the cryptoprocessor.</t>
      <t>If the server wishes to issue privacy-preserving certificates, it <bcp14>MAY</bcp14> omit HardwareModule from the subjectAltName extension.</t>
    </section>
    <section anchor="device-attestation-challenge">
      <name>Device Attestation Challenge</name>
      <t>The client can prove control over a permanent identifier of a device by
providing an attestation statement containing the identifier of the device.</t>
      <t>The device-attest-01 ACME challenge object has the following format:</t>
      <dl>
        <dt>type (required, string):</dt>
        <dd>
          <t>The string "device-attest-01".</t>
        </dd>
        <dt>token (required, string):</dt>
        <dd>
          <t>A random value that uniquely identifies the challenge.  This value <bcp14>MUST</bcp14> have
at least 128 bits of entropy. It <bcp14>MUST NOT</bcp14> contain any characters outside the
base64url alphabet, including padding characters ("="). See <xref target="RFC4086"/> for
additional information on randomness requirements.</t>
        </dd>
      </dl>
      <artwork><![CDATA[
{
  "type": "device-attest-01",
  "url": "https://example.com/acme/chall/Rg5dV14Gh1Q",
  "status": "pending",
  "token": "evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA"
}
]]></artwork>
      <t>A client fulfills this challenge by constructing a key authorization (<xref section="8.1" sectionFormat="of" target="RFC8555"/>)
 from the "token" value provided in the challenge and the client's
 account key. The client then generates a WebAuthn attestation object using the key authorization as the challenge.</t>
      <t>This specification borrows the WebAuthn <em>attestation object</em> representation as described in Section 6.5.4 of <xref target="WebAuthn"/> for encapsulating attestation formats, but with these modifications:</t>
      <ul spacing="normal">
        <li>
          <t>The key authorization is used to form <em>attToBeSigned</em>. This replaces the concatenation of <em>authenticatorData</em> and <em>clientDataHash</em>. <em>attToBeSigned</em> is hashed using an algorithm specified by the attestation format. <!-- TODO: ^^^ perhaps add more cross-refs or context about "using an algorithm specified by the attestation format" -->
          </t>
        </li>
        <li>
          <t>The <em>authData</em> field is unused and <bcp14>SHOULD</bcp14> be omitted.</t>
        </li>
      </ul>
      <t>A client responds with the response object containing the WebAuthn attestation object in the "attObj" field to acknowledge that the challenge can be validated by the server.</t>
      <t>On receiving a response, the server constructs and stores the key authorization from the challenge's "token" value and the current client account key.</t>
      <t>To validate a device attestation challenge, the server performs the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Perform the verification procedures described in Section 6 of <xref target="WebAuthn"/>.</t>
        </li>
        <li>
          <t>Verify that key authorization conveyed by <em>attToBeSigned</em> matches the key authorization stored by the server.</t>
        </li>
      </ol>
      <!-- This specification defines a new challenge response field `attObj` to contain WebAuthn attestation objects as described in Section 7.5.1 of {{RFC8555}}. -->

<artwork><![CDATA[
POST /acme/chall/Rg5dV14Gh1Q
Host: example.com
Content-Type: application/jose+json

{
  "protected": base64url({
    "alg": "ES256",
    "kid": "https://example.com/acme/acct/evOfKhNU60wg",
    "nonce": "SS2sSl1PtspvFZ08kNtzKd",
    "url": "https://example.com/acme/chall/Rg5dV14Gh1Q"
  }),
  "payload": base64url({
    "attObj": base64url(/* WebAuthn attestation object */),
  }),
  "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
}
]]></artwork>
      <t>The webauthn payload <bcp14>MAY</bcp14> contain any identifiers registered in "WebAuthn Attestation Statement Format Identifiers" and any extensions registered in "WebAuthn Extension Identifiers" <xref target="IANA-Webauthn"/>, <xref target="RFC8809"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>See Section 13 of <xref target="WebAuthn"/> for additional security considerations related to attestation statement formats, including certificate revocation.</t>
      <t>Key attestation statements may include a variety of information in addition to the public key being attested. While not described in this document, the server <bcp14>MAY</bcp14> use any policy when evaluating this information. This evaluation can result in rejection of a certificate request that features a verifiable key attestation for the public key contained in the request. For example, an attestation statement may indicate use of an unacceptable firmware version.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="acme-identifier-types">
        <name>ACME Identifier Types</name>
        <t>The "ACME Identifier Types" registry is to be updated to include the following entries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">permanent-identifier</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">hardware-module</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="acme-validation-method">
        <name>ACME Validation Method</name>
        <t>The "ACME Validation Methods" registry is to be updated to include the following entry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Identifier Type</th>
              <th align="left">ACME</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">device-attest-01</td>
              <td align="left">permanent-identifier</td>
              <td align="left">Y</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <!-- Begin WebAuthn registry text -->
<!-- Editor's note: the below text was written by Carl Wallance as part of draft-wallace-lamps-key-attestation-ext. These registries only need to be established by a single document, so if they are established by another document prior to this document being approved, this text will be removed and replaced with a reference to the other document.  -->

</section>
      <section anchor="new-error-types">
        <name>New Error Types</name>
        <t>This document adds the following entries to the ACME Error Type registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">badAttestationStatement</td>
              <td align="left">The attestation statement is unacceptable (e.g. not signed by an attestation authority trusted by the CA)</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>Change Controller:
            </t>
            <ul spacing="normal">
              <li>
                <t>W3C Web Authentication Working Group (public-webauthn@w3.org)</t>
              </li>
            </ul>
          </li>
        </ul>
        <!-- End WebAuthn registry text -->

</section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4108">
          <front>
            <title>Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes the use of the Cryptographic Message Syntax (CMS) to protect firmware packages, which provide object code for one or more hardware module components. CMS is specified in RFC 3852. A digital signature is used to protect the firmware package from undetected modification and to provide data origin authentication. Encryption is optionally used to protect the firmware package from disclosure, and compression is optionally used to reduce the size of the protected firmware package. A firmware package loading receipt can optionally be generated to acknowledge the successful loading of a firmware package. Similarly, a firmware package load error report can optionally be generated to convey the failure to load a firmware package. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4108"/>
          <seriesInfo name="DOI" value="10.17487/RFC4108"/>
        </reference>
        <reference anchor="RFC4043">
          <front>
            <title>Internet X.509 Public Key Infrastructure Permanent Identifier</title>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="T. Gindin" initials="T." surname="Gindin"/>
            <date month="May" year="2005"/>
            <abstract>
              <t>This document defines a new form of name, called permanent identifier, that may be included in the subjectAltName extension of a public key certificate issued to an entity.</t>
              <t>The permanent identifier is an optional feature that may be used by a CA to indicate that two or more certificates relate to the same entity, even if they contain different subject name (DNs) or different names in the subjectAltName extension, or if the name or the affiliation of that entity stored in the subject or another name form in the subjectAltName extension has changed.</t>
              <t>The subject name, carried in the subject field, is only unique for each subject entity certified by the one CA as defined by the issuer name field. However, the new name form can carry a name that is unique for each subject entity certified by a CA. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4043"/>
          <seriesInfo name="DOI" value="10.17487/RFC4043"/>
        </reference>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC8809">
          <front>
            <title>Registries for Web Authentication (WebAuthn)</title>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This specification defines IANA registries for W3C Web Authentication (WebAuthn) attestation statement format identifiers and extension identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8809"/>
          <seriesInfo name="DOI" value="10.17487/RFC8809"/>
        </reference>
        <reference anchor="WebAuthn" target="https://www.w3.org/TR/webauthn-2/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 2</title>
            <author fullname="Jeff Hodges">
              <organization>Google</organization>
            </author>
            <author fullname="J.C. Jones">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Emil Lundberg">
              <organization>Yubico</organization>
            </author>
            <date year="2021" month="April"/>
          </front>
        </reference>
        <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="RFC2985">
          <front>
            <title>PKCS #9: Selected Object Classes and Attribute Types Version 2.0</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #9 v2.0 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from that specification. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2985"/>
          <seriesInfo name="DOI" value="10.17487/RFC2985"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA-Webauthn" target="https://www.iana.org/assignments/webauthn/webauthn.xhtml">
          <front>
            <title>IANA Registries for Web Authentication (WebAuthn)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 245?>

<section anchor="enterprise-pki">
      <name>Enterprise PKI</name>
      <t>ACME was originally envisioned for issuing certificates in the Web PKI, however this extension will primarily be useful in enterprise PKI. The subsection below covers some operational considerations for an ACME-based enterprise CA.
<!-- TODO: ^^^ perhaps also mention/cover IoT attestation PKI usecases -->
      </t>
      <section anchor="external-account-binding">
        <name>External Account Binding</name>
        <t>An enterprise CA likely only wants to receive requests from authorized devices. It is <bcp14>RECOMMENDED</bcp14> that the server require a value for the "externalAccountBinding" field to be
present in "newAccount" requests.</t>
        <t>If an enterprise CA desires to limit the number of certificates that can be requested with a given account, including limiting an account to a single certificate. After the desired number of certificates have been issued to an account, the server <bcp14>MAY</bcp14> revoke the account as described in Section 7.1.2 of <xref target="RFC8555"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AWwFw2y2PgLvfwGpx8o9bTIAAA==

-->

</rfc>
