<?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-bastian-jose-dvs-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="DVS for JOSE">Designated Verifier Signatures for JOSE</title>
    <seriesInfo name="Internet-Draft" value="draft-bastian-jose-dvs-01"/>
    <author fullname="Paul Bastian">
      <organization>Bundesdruckerei GmbH</organization>
      <address>
        <email>bastianpaul@googlemail.com</email>
      </address>
    </author>
    <author fullname="Micha Kraus">
      <organization>Bundesdruckerei GmbH</organization>
      <address>
        <email>kraus.micha@gmail.com</email>
      </address>
    </author>
    <author fullname="Stefan Santesson">
      <organization>IDsec Solutions</organization>
      <address>
        <email>stefan@aaa-sec.com</email>
      </address>
    </author>
    <author fullname="Peter Lee Altmann">
      <organization>The Agency for Digital Government</organization>
      <address>
        <email>altmann@mail.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>Security</area>
    <workgroup>Javascript Object Signing and Encryption</workgroup>
    <keyword>JOSE</keyword>
    <keyword>JWS</keyword>
    <keyword>designated verifier signature</keyword>
    <abstract>
      <?line 73?>

<t>This specification defines structures and algorithm descriptions for the use of designated verifier signatures, based on a combination of Key Agreement and Message Authentication Code, with JOSE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://paulbastian.github.io/draft-bastian-jose-dvs/draft-bastian-jose-dvs.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bastian-jose-dvs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Javascript Object Signing and Encryption Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/paulbastian/draft-bastian-jose-dvs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 77?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Designated verifier signatures (DVS) are signature schemes in which signatures are generated, that can only be verified by a particular party. Unlike conventional digital signature schemes like ECDSA, this enables repudiable signatures.</t>
      <t>This specification describes a general structure for designated verifier signature schemes and specified a set of instantiations that use a combination of an KA-DH (Diffie-Hellman key aggrement) with an MAC (Message Authentication Code algorithm).</t>
      <t>The combination of ECKA-DH and MAC is a established mechanism and used, for example, in the mobile driving licence (mDL) application, specified in <xref target="ISO-18013-5"/>.</t>
      <t>This specification and all described algorithms should respect the efforts for <eref target="https://www.ietf.org/archive/id/draft-jones-jose-fully-specified-algorithms-00.html">Fully Specified Algorithms</eref>.</t>
      <t>This algorithm is intended for use with digital credentials ecosystems, including the Issuer-Holder-Verifier model described by W3C VCDM or IETF SD-JWT-VC.</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="terminology">
      <name>Terminology</name>
      <t>The draft uses "JSON Web Signature", "JOSE Header", "JWS Signature", "JWS Signing Input" as defined by <xref target="RFC7515"/>.</t>
      <dl>
        <dt>Signing Party:</dt>
        <dd>
          <t>The Party that performs the key agreement first and generates the MAC. Similar to a Signer.</t>
        </dd>
        <dt>Verifying Party:</dt>
        <dd>
          <t>The Party that performs the key agreement second, generates the MAC and compares it to a given value. Similar to a Verifier.</t>
        </dd>
      </dl>
    </section>
    <section anchor="cryptographic-dependencies">
      <name>Cryptographic Dependencies</name>
      <t>DVS rely on the following primitives:</t>
      <ul spacing="normal">
        <li>
          <t>A Diffie-Hellman Key Agreement (KA-DH), for example ECKA-DH defined in <xref target="BSI-TR-03111"/>:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>DH(skX, pkY)</tt>: Perform a non-interactive Diffie-Hellman exchange using the private key <tt>skX</tt> and public key <tt>pkY</tt> to produce a Diffie-Hellman shared secret of length Ndh. This function can raise a ValidationError.</t>
            </li>
            <li>
              <t><tt>Ndh</tt>: The length in bytes of a Diffie-Hellman shared secret produced by <tt>DH()</tt>.</t>
            </li>
            <li>
              <t><tt>Nsk</tt>: The length in bytes of a Diffie-Hellman private key.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>A key derivation function (KDF), for example HKDF defined in <xref target="RFC5869"/>:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>Extract(salt, ikm)</tt>: Extract a pseudorandom key of fixed length Nh bytes from input keying material <tt>ikm</tt> and an optional byte string <tt>salt</tt>.</t>
            </li>
            <li>
              <t><tt>Expand(prk, info, L)</tt>: Expand a pseudorandom key <tt>prk</tt> using optional string <tt>info</tt> into <tt>L</tt> bytes of output keying material.</t>
            </li>
            <li>
              <t><tt>Nh</tt>: The output size of the Extract() function in bytes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>A Message Authentication Code algorithm (MAC), for example HMAC defined in <xref target="RFC2104"/>:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>MacSign(k, i)</tt>: Returns an authenticated tag for the given input <tt>i</tt> and key <tt>k</tt>.</t>
            </li>
            <li>
              <t><tt>Nk</tt>: The length in bytes of key <tt>k</tt>.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="designated-verifier-signatures">
      <name>Designated Verifier Signatures</name>
      <t>A designated verifier signature requires three components for an algorithm:</t>
      <ol spacing="normal" type="1"><li>
          <t>a Diffie-Hellman Key Agreement (DHKA)</t>
        </li>
        <li>
          <t>a Key Derivation Function (KDF)</t>
        </li>
        <li>
          <t>a Message Authentication Code algorithm (MAC)</t>
        </li>
      </ol>
      <t>In general, these parameters are chosen by the Signing Party. These parameters need to be communicated to the Verifying Party before the generation of a Designated Verifier Signature.</t>
      <section anchor="signature-generation">
        <name>Signature Generation</name>
        <t>The generation of the Designated Verifier Signature takes the private key of the Signing Party, the public key of the Verifying Party and the message as inputs. The retrieval and communication of the Verifying Party's public key is out of scope of this specification and subject to the implementing protocols.</t>
        <t>Input:</t>
        <ul spacing="normal">
          <li>
            <t><tt>skS</tt>: private key of the Signing Party</t>
          </li>
          <li>
            <t><tt>pkR</tt>: public key of the Verifying Party</t>
          </li>
          <li>
            <t><tt>msg</tt>: JWS Signing Input</t>
          </li>
          <li>
            <t><tt>salt</tt> : Salt for key derivation</t>
          </li>
          <li>
            <t><tt>info</tt> : optional info for key derivation</t>
          </li>
        </ul>
        <t>Function:</t>
        <artwork><![CDATA[
def dvsSign(skS, pkR, msg, salt= "", info = "DVS-1")

    dh =  DH(skS, pkR)
    prk = Extract(salt, dh)
    k = Expand(prk, info, Nk)
    signature = MacSign(k, msg)
    return signature
]]></artwork>
      </section>
      <section anchor="signature-verification">
        <name>Signature Verification</name>
        <t>The generation of the Designated Verifier Signature takes the private key of the Signing Party, the public key of the Verifying Party and the message as inputs. The retrieval and communication of the Verifying Party's public key is out of scope of this specification and subject to the implementing protocols.</t>
        <t>Input:</t>
        <ul spacing="normal">
          <li>
            <t><tt>skR</tt>: private key of the Verifying Party</t>
          </li>
          <li>
            <t><tt>pkS</tt>: public key of the Signing Party</t>
          </li>
          <li>
            <t><tt>msg</tt>: JWS Signing Input</t>
          </li>
          <li>
            <t><tt>salt</tt> : Salt for key derivation</t>
          </li>
          <li>
            <t><tt>info</tt> : optional info for key derivation</t>
          </li>
          <li>
            <t><tt>signature</tt> : the Message Authentication Code</t>
          </li>
        </ul>
        <t>Function:</t>
        <artwork><![CDATA[
def dvsVerify(skR, pkS, msg, salt = "", info = "DVS-1", signature)

    dh =  DH(skR, pkS)
    prk = Extract(salt, dh)
    k = Expand(prk, info, Nk)
    signature' = MacSign(k, msg)
    if signature != signature':
    raise Exception("Designated Verifier Signature invalid")
    return
]]></artwork>
      </section>
      <section anchor="generic_suites">
        <name>Signature Suites</name>
        <t>Algorithms <bcp14>MUST</bcp14> follow the naming <tt>DVS-&lt;DHKA&gt;-&lt;KDF&gt;-&lt;MAC&gt;</tt>.</t>
      </section>
    </section>
    <section anchor="designated-verifier-signatures-for-jose">
      <name>Designated Verifier Signatures for JOSE</name>
      <t>Designated Verifier Signatures behave like a digital signature as described in Section 3 of <xref target="RFC7518"/> and are intended for use in JSON Web Signatures (JWS) as described in <xref target="RFC7515"/>. The Generating Party performs the <tt>Message Signature or MAC Computation</tt> as defined by Section 5.1 of <xref target="RFC7515"/>. The Verifying Party performs the <tt>Message Signature or MAC Validation</tt> as defined by Section 5.2 of <xref target="RFC7515"/>.</t>
      <t>The following JWS headers are used to convey Designated Verifier Signatures for JOSE:</t>
      <ul spacing="normal">
        <li>
          <t><tt>alg</tt> : <bcp14>REQUIRED</bcp14>. The algorithm parameter describes the chosen signature suite, for example the ones described in (#generic_suites).</t>
        </li>
        <li>
          <t><tt>rpk</tt> : <bcp14>REQUIRED</bcp14>. The <tt>rpk</tt> (recipient public key) parameter represents the encoded public key of the Verifying Party that was used in the DHKA algorithm as a JSON Web Key according to <xref target="RFC7517"/>. This parameter <bcp14>MUST</bcp14> be present.</t>
        </li>
        <li>
          <t><tt>nonce</tt> : <bcp14>OPTIONAL</bcp14>. The <tt>nonce</tt> may be provided by the Verifying Party additional to it's public key and ensure additional freshness of the signature. If provided, the Signing Party <bcp14>SHOULD</bcp14> add the <tt>nonce</tt> to the header.</t>
        </li>
      </ul>
      <t>The Signing Party may use existing JWS header parameters like <tt>x5c</tt>, <tt>jwk</tt> or <tt>kid</tt> to represent or reference it's public key according to <xref target="RFC7517"/>.</t>
      <section anchor="example-jwt">
        <name>Example JWT</name>
        <t>The JWT/JWS header:</t>
        <artwork><![CDATA[
{
    "typ" : "JWT",
    "alg" : "DVS-P256-SHA256-HS256",
    "jwk" : <JWK of the Signing Party>,
    "rpk" : <JWK of Verifying Party>
}
]]></artwork>
        <t>The JWT/JWS payload:</t>
        <artwork><![CDATA[
{
    "iss" : "https://example.as.com",
    "iat" : "1701870613",
    "given_name" : "Erika",
    "family_name" : "Mustermann"
}
]]></artwork>
        <t>The JWT/JWS signature:</t>
        <artwork><![CDATA[
base64-encoded MAC
]]></artwork>
        <t>This specification described instantiations of Designated Verifier Signatures using specific algorithm combinations:</t>
        <artwork type="ascii-art"><![CDATA[
+-----------------------+-----------------------------+----------------+
| Algorithm Name        | Algorithm Description       |                |
|                       |                             | Requirements   |
+-----------------------+-----------------------------+----------------+
| DVS-P256-SHA256-HS256 | ECDH using NIST P-256,      |   Optional     |
|                       | HKDF using SHA-256 and      |                |
|                       | HMAC using SHA-256          |                |
+-----------------------+-----------------------------+----------------+
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="replay-attack-detection">
        <name>Replay Attack Detection</name>
        <t>Verifying party <bcp14>MUST</bcp14> ensure the freshness of signatures by utilizing ephemeral keys in <tt>rpk</tt> or by providing a nonce for <tt>nonce</tt>.</t>
      </section>
      <section anchor="limited-repudiability">
        <name>Limited Repudiability</name>
        <t>A malicious verifiying party can weaken the repudiability property by involving certain third parties in the protocol steps.</t>
        <ul spacing="normal">
          <li>
            <t>One method is to have a third party observe all protocol steps so that third party can be sure that the signature originates by the signer.</t>
          </li>
          <li>
            <t>Another method requires that the verifying party's public key is a shared key that has previously been calculated with the keys of certain specific third parties so that the proof of authenticity can be done with Multi Party Computation involving all parties (see <xref target="TLS-NOTARY"/>).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Define:</t>
      <ul spacing="normal">
        <li>
          <t>define new <tt>rpk</tt> header parameter</t>
        </li>
        <li>
          <t>alg values for DVS-P256-SHA256-HS256 and some more</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
        <reference anchor="BSI-TR-03111" target="https://www.bsi.bund.de/dok/TR-03111-en">
          <front>
            <title>Technical Guideline BSI TR-03111: Elliptic Curve Cryptography, Version 2.10</title>
            <author>
              <organization/>
            </author>
            <date year="2018" month="June"/>
          </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ISO-18013-5" target="https://www.iso.org/standard/69084.html">
          <front>
            <title>ISO/IEC 18013-5:2021, Personal identification — ISO-compliant driving licence, Part 5: Mobile driving licence (mDL) application</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="September"/>
          </front>
        </reference>
        <reference anchor="TLS-NOTARY" target="https://tlsnotary.org/">
          <front>
            <title>TLSNotary project</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="October"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 280?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to:</t>
      <ul spacing="normal">
        <li>
          <t>Brian Campbell</t>
        </li>
        <li>
          <t>John Bradley</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
0xhUGUZqiUX8B5KV1IjCKQAA

-->

</rfc>
