<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.5 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3161 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3161.xml">
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC5035 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5035.xml">
<!ENTITY RFC7515 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>


<rfc ipr="trust200902" docName="draft-santesson-svt-pdf-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>PDF Signature Validation Token</title>

    <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>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <street>516 Dranesville Road</street>
          <city>Herndon, VA</city>
          <code>20170</code>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>

    <date year="2022" month="March" day="21"/>

    <area>Security</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a PDF profile for the Signature Validation Token defined in <xref target="SVT"/>.</t>



    </abstract>



  </front>

  <middle>


<section anchor="intro"><name>Introduction</name>

<t>The "Signature Validation Token" specification <xref target="SVT"/> defines a basic token to support signature validation in a way that can significantly extend the lifetime of a signature.</t>

<t>This specification defines a profile for implementing SVT with a signed PDF document, and defines the following aspects of SVT usage:</t>

<t><list style="symbols">
  <t>How to include reference data related to PDF signatures and PDF documents in an SVT.</t>
  <t>How to add an SVT token to a PDF document.</t>
</list></t>

<t>PDF document signatures are added as incremental updates to the signed PDF document and signs all data of the PDF document up until the current signature. When more than one signature is added to a PDF document the previous signature is signed by the next signature and can not be updated with additional data after this event.</t>

<t>To minimize the impact on PDF documents with multiple signatures and to stay backwards compatible with PDF software that do not understand SVT, PDF documents add one SVT token for all signatures of the PDF as an extension to a document timestamp added to the signed PDF as an incremental update. This SVT covers all signatures of the signed PDF.</t>

</section>
<section anchor="defs"><name>Definitions</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.</t>

<t>The definitions in <xref target="SVT"/> apply also to this document.</t>

</section>
<section anchor="svt-in-pdf"><name>SVT in PDF Documents</name>

<t>The SVT for a signed PDF document MAY provide signature validation information about any of the present signatures in the PDF. The SVT MUST contain a separate "sig" claim (Signature object) for each signature on the PDF that is covered by the SVT.</t>

<t>An SVT added to a signed PDF document MUST be added to a document timestamp accordance with ISO 32000-2:2017 <xref target="ISOPDF2"/>.</t>

<t>The document timestamp contains an <xref target="RFC3161"/> timestamp token (TSTInfo) in EncapsulatedContentInfo of the CMS signature. The SVT MUST be added to the timestamp token (TSTInfo) as an Extension object as defined in  <xref target="svt-extension-to-timestamps"/>.</t>

<section anchor="svt-extension-to-timestamps"><name>SVT Extension to Timestamp Tokens</name>

<t>The SVT extension is an Extension suitable to be included in TSTInfo as defined by <xref target="RFC3161"/>.</t>

<t>The SVT extension is identified by the Object Identifier (OID) 1.2.752.201.5.2</t>

<t>Editors note: This is the current used OID. Consider assigning an IETF extension OID.</t>

<t>This extension data (OCTET STRING) holds the bytes of SVT JWT, represented as a UTF-8 encoded string.</t>

<t>This extension MUST NOT be marked critical.</t>

<t>Note: Extensions in timestamp tokens according to <xref target="RFC3161"/> are imported from the definition of the X.509 certificate extensions defined in <xref target="RFC5280"/>.</t>

</section>
</section>
<section anchor="svt-claims"><name>SVT Claims</name>

<section anchor="profile-identifier"><name>Profile Identifer</name>

<t>When this profile is used the SigValidation object MUST contain a "profile" claim with the value "PDF".</t>

</section>
<section anchor="signature-reference-data"><name>Signature Reference Data</name>

<t>The SVT Signature object MUST contain a "sig_ref" claim (SigReference object) with the following elements:</t>

<t><list style="symbols">
  <t>"id" -- Absent or a Null value.</t>
  <t>"sig_hash" -- The hash over the signature value bytes.</t>
  <t>"sb_hash" -- The hash over the DER encoded SignedAttributes in SignerInfo.</t>
</list></t>

</section>
<section anchor="signed-data-reference"><name>Signed Data Reference Data</name>

<t>The SVT Signature object MUST contain one instance of the "sig_data" claim (SignedData object) with the following elements:</t>

<t><list style="symbols">
  <t>"ref" -- The string representation of the ByteRange value of the PDF signature dictionary of the target signature. This is a sequence of integers separated by space where each integer pair specifies the start index and length of a byte range.</t>
  <t>"hash" -- The hash of all bytes identified by the ByteRange value. This is the concatenation of all byte ranges identified by the ByteRange value.</t>
</list></t>

</section>
<section anchor="signer-certificate-references"><name>Signer Certificate References</name>

<t>The SVT Signature object MUST contain a "signer_cert_ref" claim (CertReference object). The "type" parameter of the "signer_cert_ref" claim MUST be either "chain" or "chain_hash".</t>

<t><list style="symbols">
  <t>The "chain" type MUST be used when signature validation was performed using one or more certificates where some or all of the certificates in the chain are not present in the target signature.</t>
  <t>The "chain_hash" type MUST be used when signature validation was performed using one or more certificates where all of the certificates are present in the target signature.</t>
</list></t>

<t>Note: The referenced signer certificate MUST match any certificates referenced using ESSCertID or ESSCertIDv2 from <xref target="RFC5035"/>.</t>

</section>
</section>
<section anchor="jose-header"><name>JOSE Header</name>

<section anchor="svt-signing-key-reference"><name>SVT Signing Key Reference</name>

<t>The SVT JOSE header must contain one of the following header parameters in accordance with <xref target="RFC7515"/>, for storing a reference to the public key used to verify the signature on the SVT:</t>

<t><list style="symbols">
  <t>"x5c" -- Holds an X.509 certificate <xref target="RFC5280"/> or a chain of certificates. The certificate holding the public key that verifies the signature on the SVT MUST be the first certificate in the chain.</t>
  <t>"kid" -- A key identifier holding the Base64 encoded hash value of the certificate that can verify the signature on the SVT. The hash algorithm MUST be the same hash algorithm used when signing the SVT as specified by the <spanx style="verb">alg</spanx> header parameter. The referenced certificate SHOULD be the same certificate that was used to sign the document timestamp that contains the SVT.</t>
</list></t>

</section>
</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>
<section anchor="seccons"><name>Security Considerations</name>

<t>The security considerations of <xref target="SVT"/> applies also to this document.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC2119;
&RFC3161;
&RFC5280;
&RFC5035;
&RFC7515;
&RFC8174;
<reference anchor="ISOPDF2" >
  <front>
    <title>Document management -- Portable document format -- Part 2: PDF 2.0</title>
    <author >
      <organization>ISO</organization>
    </author>
    <date year="2017" month="July"/>
  </front>
  <seriesInfo name="ISO" value="32000-2"/>
</reference>
<reference anchor="SVT" >
  <front>
    <title>Signature Validation Token</title>
    <author initials="S." surname="Santesson" fullname="Stefan Santesson">
      <organization></organization>
    </author>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization></organization>
    </author>
    <date year="2021" month="September"/>
  </front>
  <seriesInfo name="IETF" value="draft-santesson-svt-02"/>
</reference>


    </references>




  </back>

<!-- ##markdown-source:
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
PB35uTKsk59jL484TLbV2IklZ9CP661p2hfKDrv1/MGK2Jgz6DBItQTngSh6
vlpqWrut58wJJRr2V6/CegQNCQOtCtnlyz07IOMrTrcJttFTcWxtXTMcKzdh
Wx6Iezru0eXxfMlEz33kukRPY2/6vIUUraVd80Yyj34IouV6cqjbSunR6k8u
v3dwMr2tETtn+j4vANxlWbg+w89yqngeSY78JhfDgyFVMUexCeoPx5NGNbB3
wW3AI5UdJ3mdHqZiVvjDAeYUef9dXTbVK9uF8R5xu5XpXRXH1nDYhDjWfBuU
ed2jC5nfqaLbJxxJUSf+d6m8RzQM3dH8V7Vn5kKLmVnRZAPZ3Iv9NpFJnVdX
Nn+/QnRwS6QvZt94KEpUegfn+bZHSRc5We8yfyDtK56VHJftE/KO9/0u1ZqU
mCKt41VJcip/RF4DoFxctMinxpGtMJSHLXJqoGT/x9qEoK8kqFOjpHmvSF1n
7xXbDKRCudkouuy0UHhIVjUFKAAQu3vRGrp7VMFu6SqPs8Hi/XvSUp9l4qOx
9vBs+IjWkqmcBkTsKy1hlwoFOviW2IqT9RiyZsPvKUHegc4uPz6yMdwy6CZV
jZn+5R6iOy54Rvk/+/GS/WTyH5rrOynZXMPHXdCRqHbnY/sxfKPuaOruaGqd
dBZP53OCz2xCdtc/Hkau2bp2OTg59e3yl5v5VFwqGXMv/N1YFa7513M9yc39
jPJXXGgaULrm6ueXELe9g2zK4p1A3K1t0SFSH7iGEf3GGtvu88nO3M0e0PfR
5+djvhtYDF48Q7W+0/hpNyuXiY74LuqatxHoKnq13elI/j7B3yyJlr6dRsxK
lzxbYTjbn0Zac4drhw6r8KmdHlez7XM0rvFY1DWPrzFsW02jB6yrkcxx0zkF
tCW7XTVUDb37qm2zjmbC6VjxXlr15qe6xTILd1pLW0X9ee8P4thvGF0md0hQ
sd50rLdI8e77bn1W9vENrv4u2FD3bzj42x5m+rv11Lbef0lom7DnHLFABRYy
w82n+zc5F4nqOtfcOY/E7Pz6vB7yZfVtRMvUzW3tz8IIAKjNnZDcsq2bYv1/
XuyLsQr1kFZdxlb7ou4+ZK79AYEw9cInhP8C+RtdUlgbAAA=

-->

</rfc>

