<?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.38 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-housley-lamps-rfc3161-update-01" category="std" consensus="true" submissionType="IETF" updates="3161" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Update to RFC 3161">Update to the Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
    <seriesInfo name="Internet-Draft" value="draft-housley-lamps-rfc3161-update-01"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <city>Herndon, VA</city>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="S." surname="Santesson" fullname="Stefan Santesson">
      <organization abbrev="IDsec Solutions">IDsec Solutions AB</organization>
      <address>
        <postal>
          <street>Forskningsbyn Ideon</street>
          <city>Lund</city>
          <code>223 70</code>
          <country>SE</country>
        </postal>
        <email>sts@aaa-sec.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="23"/>
    <workgroup>LAMPS</workgroup>
    <keyword>CMS</keyword>
    <keyword>attribute</keyword>
    <keyword>algorithm identifier</keyword>
    <abstract>
      <?line 46?>

<t>This document updates RFC 3161. It adds a requirement to ensure that the
id-ct-TSTInfo content type is used to align with the best practices for
signed attributes with CMS signed-data. In addition, cross-protocol attacks
are prevented by requiring that the Time Stamp Authority (TSA) dedicate
the signature key pair to the time-stamping service.</t>
    </abstract>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document updates <xref target="RFC3161"/>. It adds a requirement to ensure that the
id-ct-TSTInfo content type is used to align with the best practices for signed
attributes with CMS signed-data <xref target="I-D.ietf-lamps-cms-euf-cma-signeddata"/>. In
addition, cross-protocol attacks are prevented by requiring that the Time Stamp
Authority (TSA) dedicate the signature key pair to the time-stamping service.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</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="update-to-section-4-of-rfc-3161">
      <name>Update to Section 4 of RFC 3161</name>
      <t>Section 2.1 of <xref target="RFC3161"/> correctly requires that the time-stamping service
use a key exclusively for signing time-stamp tokens.  It says:</t>
      <artwork><![CDATA[
  10. to sign each time-stamp token using a key generated exclusively
      for this purpose and have this property of the key indicated on
      the corresponding certificate.
]]></artwork>
      <t>However, in real-world deployments, it has been reported that the same key pair
has been used to sign time-stamp tokens of various similar formats, which
creates the possibility for cross-protocol attacks.</t>
      <t>ADD:</t>
      <artwork><![CDATA[
  7. As stated in Section 2.1, the TSA is REQUIRED to sign each
     time-stamp token using a key generated exclusively for this
     purpose.  The use of the same private key to sign time stamps
     in different formats may introduce the possibility of
     cross-protocol attacks.
]]></artwork>
    </section>
    <section anchor="update-to-section-242-of-rfc-3161">
      <name>Update to Section 2.4.2 of RFC 3161</name>
      <t>OLD:</t>
      <artwork><![CDATA[
   eContentType is an object identifier that uniquely specifies the
   content type.  For a time-stamp token it is defined as:

   id-ct-TSTInfo  OBJECT IDENTIFIER ::= { iso(1) member-body(2)
   us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4}
]]></artwork>
      <t>NEW:</t>
      <artwork><![CDATA[
   eContentType is an object identifier that uniquely specifies the
   content type.  For a time-stamp token defined in this document,
   eContentType MUST be:

      id-ct-TSTInfo  OBJECT IDENTIFIER ::= { iso(1) member-body(2)
         us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16)
         ct(1) 4 }

   In addition, the TSA MUST include id-ct-TSTInfo as content-type
   signed attribute in the signedAttrs of the signerInfo [CMS].
]]></artwork>
      <t>Note that <xref target="CMS"/> is updated to reference the most recent specification.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>No IANA registry updates are needed.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The above addition to the Security Considerations of <xref target="RFC3161"/> is
intended to ensure that implementations do not use a signature private key
that is used to sign a time-stamp token for any other purpose.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
            <abstract>
              <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>
        <reference anchor="CMS">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-lamps-cms-euf-cma-signeddata">
          <front>
            <title>Best Practices for Signed Attributes in CMS SignedData</title>
            <author fullname="Daniel Van Geest" initials="D." surname="Van Geest">
              <organization>CryptoNext Security</organization>
            </author>
            <author fullname="Falko Strenzke" initials="F." surname="Strenzke">
              <organization>MTG AG</organization>
            </author>
            <date day="14" month="September" year="2026"/>
            <abstract>
              <t>   The Cryptographic Message Syntax (CMS) has different signature
   verification behaviour based on whether signed attributes are present
   or not.  This results in a potential existential forgery
   vulnerability in CMS and protocols which use CMS.  This document
   describes the vulnerability and lists mitigations and best practices
   to avoid it.  This document updates RFC 5652 by prohibiting the use
   of the id-data content type for new uses of the CMS SignedData type.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-euf-cma-signeddata-03"/>
        </reference>
      </references>
    </references>
    <?line 150?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Tom Tervoort for being the first person to spot the need for
improvements in <xref target="RFC3161"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
riRGOP7QQagOIMaDuEw2h3/xL8/POzz3EAAA

-->

</rfc>
