<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.11 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7030 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7030.xml">
<!ENTITY I-D.ietf-anima-bootstrapping-keyinfra SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-anima-bootstrapping-keyinfra.xml">
<!ENTITY I-D.ietf-anima-grasp-api SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-anima-grasp-api.xml">
<!ENTITY RFC2616 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY RFC2045 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2045.xml">
<!ENTITY RFC7230 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7230.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-richardson-lamps-rfc7030est-clarify-00" category="std">

  <front>
    <title abbrev="rfc7030est">Clarification of Enrollment over Secure Transport (EST): transfer encodings and ASN.1</title>

    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="T." surname="Werner" fullname="Thomas Werner">
      <organization>Siemens</organization>
      <address>
        <email>thomas.werner@siemens.com</email>
      </address>
    </author>

    <date year="2019" month="June" day="17"/>

    <area>Internet</area>
    <workgroup>LAMPS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document updates RFC7030: Enrollment over Secure Transport (EST) to resolve
some errata that was reported, and which has proven to have interoperability
when RFC7030 has been extended.</t>

<t>This document deprecates the specification of "Content-Transfer-Encoding"
headers for EST endpoints, providing a way to do this in an upward compatible
way.  This document additional defines a GRASP discovery mechanism for EST
endpoints, and specifies requirements for them.</t>

<t>Finally, this document fixes some syntactical errors in ASN.1 that was
presented.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>{[RFC7030}} defines the Enrollment over Secure Transport, or EST protocol.</t>

<t>This specification defines a number of HTTP end points for certificate enrollment and management.
The details of the transaction were defined in terms of MIME headers as defined in <xref target="RFC2045"/>,
rather than in terms of the HTTP protocol as defined in <xref target="RFC2616"/> and <xref target="RFC7230"/>.</t>

<t><xref target="RFC2616"/> has text specifically deprecating Content-Transfer-Encoding.
<xref target="RFC7030"/> calls it out this header incorrectly.</t>

<t><xref target="I-D.ietf-anima-bootstrapping-keyinfra"/> extends <xref target="RFC7030"/>, adding new
functionality, and interop testing of the protocol has revealed that unusual processing
called out in <xref target="RFC7030"/> causes confusion.</t>

<t>Changes to <xref target="RFC7030"/> to bring it inline with typical HTTP processing would change
the on-wire protocol in a way that is not backwards compatible.  This document provides
a compromise that moves towards the correct behaviour without breaking existing deployments.</t>

<t>This document deals with errata numbers <xref target="errata4384"/>, <xref target="errata5107"/>, and <xref target="errata5108"/>.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>This document uses the term "amended server" to refer to an EST server that complies with the
changes in this document.  The term "legacy EST server" refers to servers that do not support
the changes in this document.</t>

<t>The term "BRSKI EST server" refers to an EST server that also supports the mechanisms described in <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>.</t>

<t>The abbreviation "CTE" is used to denote the Content-Transfer-Encoding header, and the abbreviation
"CTE-base64" is used to denote a request or response whose Content-Transfer-Encoding header contains
the value "base64".</t>

</section>
<section anchor="rfc2119" title="Requirements Language">

<t>In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
<xref target="RFC2119"/> and indicate requirement levels for compliant STuPiD
implementations.</t>

</section>
<section anchor="changes-to-est-endpoint-processing" title="Changes to EST endpoint processing">

<t><xref target="RFC7030"/> sections 4.1.3 (CA Certificates Response, /cacerts), 4.3.1/4.3.2 (Full CMC, /fullcmc),
4.4.2 (Server-Side Key Generation, /serverkeygen), and 4.5.2 (CSR Attributes, /csrattrs)
specify the use of base64 encoding with a Content-Transsfer-Encoding for requests and response.</t>

<t>Both section 4.1.3 (CA certificate response), and Section 4.5.2, /csrattrs is a GET operation, and
will be dealt with below.</t>

<t>For the other three methods, when the client is aware that this is an amended server then
it SHOULD send the POST request in binary form (DER-encoded), and omit the Content-Transfer-Encoding header.
How the client knows what kind of server it is dealing with is communicating with is detailed in the next
section.</t>

<t>An amended server, when it receives a request that has no Content-Transfer-Encoding header, or
has a Content-Transfer-Encoding header with the "binary" attribute, MUST respond in the same binary
format.</t>

<t>When an amended server receives a request in CTE-base64 form, then it MAY respond in kind.
It is reasonable for a server to be configured to ignore or fail requests of this form, either
via run-time configuration, or via a compile-time option.   A main reason to do this is to
avoid a permutation that requires testing in the future when no legacy EST clients are expected to connect.</t>

<section anchor="client-configuration" title="Client configuration">

<t><xref target="RFC7030"/> has some significant deployment.  The protocol has no version numbers or other ways to indicate
that the format of the operations has changed, and as the protocol is driven by a client state machine,
the client has to know whether it has to operate in legacy EST server mode.</t>

<t>In certain market verticals it may be well known to client system designers whether or not this is
the case.  In those cases, the out-of-band configuration mechanism is appropriate.</t>

<t>Clients that start their process using <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/> SHOULD assume that
the server supports this amended specification.</t>

<t>Clients that discover an EST server in an ANIMA ACP via GRASP, using the mechanism detailed in <xref target="estgrasp"/>
SHOULD also assume that these servers support this amended specification.</t>

<t>Other users or extensions for <xref target="RFC7030"/> should specify if clients are to assume this amended
specification or not.</t>

</section>
<section anchor="retrieval-of-certificate-attributes" title="Retrieval of certificate attributes">

<t>The 4.5.2 (CSR Attributes, /csrattrs) is a GET operation. It occurs at the beginning of a transaction.</t>

<t>TBD how can the client indicate it is willing to accept an un-encoded response?</t>

<t>The 4.1.3 (CA Certificates Response, /cacerts) is also a GET operation, but it occurs after
enrollment.  The server SHOULD assume that a client that wanted a binary response also wants
a binary response here.</t>

</section>
</section>
<section anchor="clarification-of-asn1-for-certificate-attribute-set" title="Clarification of ASN.1 for Certificate Attribute set.">

<t>errata 4384.</t>

</section>
<section anchor="clarification-of-error-messages-for-certificate-enrollment-operations" title="Clarification of error messages for certificate enrollment operations">

<t>errata 5108.</t>

</section>
<section anchor="estgrasp" title="Definition of GRASP discovery for updated EST servers">

<t>An ANIMA ACP device can discover the location of the nearest EST server using
a <xref target="I-D.ietf-anima-grasp-api"/> M_DISCOVERY mechanism.</t>

<t>objective         = ["AN_EST", F_DISC, 255 ]</t>

<t>EST servers discovered in this way MUST support the amended server mechanism
described in this document.  The response will include a hostname and port
number for a nearby EST server that can be used to renew an ACP credential.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>This document does not disclose any additional identifies to either active or
passive observer would see with <xref target="RFC7030"/>.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This document clarifies an existing security mechanism.  An option is
introduced to the security mechanism using an implicit negotiation.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>Allocate the name AN_EST from the <xref target="I-D.ietf-anima-grasp-api"/> "GRASP Objective Names Table".</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>This work was supported by the Huawei Technologies.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC7030;
&I-D.ietf-anima-bootstrapping-keyinfra;
&I-D.ietf-anima-grasp-api;


    </references>

    <references title='Informative References'>

&RFC2616;
&RFC2045;
&RFC7230;
<reference anchor="errata4384" target="https://www.rfc-editor.org/errata/eid4384">
  <front>
    <title>EST errata 4384: ASN.1 encoding error</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="errata5107" target="https://www.rfc-editor.org/errata/eid5107">
  <front>
    <title>EST errata 5107: use Content-Transfer-Encoding</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="errata5108" target="https://www.rfc-editor.org/errata/eid5108">
  <front>
    <title>EST errata 5108: use of Content-Type for error message</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>




  </back>

<!-- ##markdown-source:
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
AA==

-->

</rfc>

