In an email exchanged with the co-editors, the co-chairs at the SEC AD on January 21, Deb wrote :

        Can you please review the newly released draft and make simple,
   text comments for the things you believe are fixable
        (doing that on the list would be lovely)?

        The goal here is to make it easier for the authors to see and
   understand your comments.

According to Deb's email, I post a set of five issues all related to "Key Binding". Additional sets on different topics will follow.

Every comment contains a change text proposal.

1. Proposed rewording of the definition of the term "Key Binding" in Section 1.2

Clause 1.2 states:

 Key Binding:  Ability of the Holder to prove possession of an SD-JWT by proving control over a private key during the presentation.       When utilizing Key Binding, an SD-JWT contains the public key corresponding to the private key controlled by the Holder
     (or a reference to this public key).

Change proposal:

Key Binding:  Ability of the Holder to prove possession of an SD-JWT by proving control over a private key during the presentation. When utilizing Key Binding, an SD-JWT contains a public key (or a reference to this public key) that has been included by the Issuer into the SD-JWT. In that case, the Verifier can verify that a private key corresponding to that public key has correctly been used
to compute a cryptographic checksum.


2. Proposed addition after the third paragraph of 4.1.2 (Key Binding)

The third paragraph of 4.1.2 (Key Binding) states:

       It is out of the scope of this document to describe how the Holder key pair is established.  For example, the Holder MAY create        a key pair and provide a public key to the Issuer, the Issuer MAY create the key pair for the Holder, or Holder and Issuer MAY
       use pre-established key material.

After this paragraph, it is proposed to add the following paragraph:

   It is out of the scope of this document to specify how Verifiers can
   know whether appropriate means are effectively used
   to ensure that unintended parties do not learn the value of the
   private keys or whether private keys that are under the control
   of the Holder cannot be used for the benefit of other End-Users,
   with or without the End-User consent.

Some explanations about this text proposal addition.

An X509 Certificate is defined using ASN.1 and includes a "Certificate Policy" field. An X.509 Certificate Policy is composed of the following elements:
an OID to uniquely identified the policy and several QCStatements.

To draw a parallel with X.509 Certificates used in the context of Electronic Signatures, some Certificate Issuers will not issue a PKC if they have not been convinced that the private key is managed by a SSCD (Secure Signature Creation Device). The fact that, a SCCD is supported can be indicated in the QCStatements from the Certificate Policy field of an X.509 certificate. See: ETSI EN 319 412-5 V2.4.1 (2023-09) Electronic Signatures and Infrastructures (ESI);
Certificate Profiles; Part 5: QCStatements.

https://www.etsi.org/deliver/etsi_en/319400_319499/31941205/02.04.01_60/en_31941205v020401p.pdf

It is expected that, later on, a field equivalent to a Certificate Policy will be defined  and when this field will be defined, a Verifier will be able to use it to know how good (or how bad) private keys are managed by a Holder.

Currently, the set of claims that is currently defined in this document does not allow a Verifier to know the "digital credential policy"
under which the digital credential has been issued.

In the context of eIDAS 2.0, ETSI TC ESI is currently working on a document that will be called:

   Policy and Security requirements for Providers of Electronic
Attestation of Attribute Services See: https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=63664


3. Proposed addition after the second paragraph from 9.5 (Key Binding)

The second paragraph from 9.5 (Key Binding) starts with:

   Without Key Binding, a Verifier (...)

After this second paragraph, it is proposed to add a third paragraph, starting with the opposite case:

   With Key Binding, a Verifier (...).

Text proposal:

   With Key Binding, a Verifier gets the proof that the private key
   which corresponds to the public key placed in a SD-JWT has been
   correctly used.


4. Proposed replacement of three paragraphs by two paragraphs in 9.5 (Key Binding)

The 4 th paragraph from 9.5 (Key Binding) starts with:

       It is important that a Verifier does not make its security policy
       decisions based on data that can be influenced by an attacker. For
       this reason, when deciding whether Key Binding is required or not,
       Verifiers MUST NOT take into account whether the Holder has provided
       an SD-JWT+KB or a bare SD-JWT, since otherwise an attacker could
       strip the KB-JWT from an SD-JWT+KB and present the resulting SD-JWT.

       Furthermore, Verifiers should be aware that Key Binding information
       may have been added to an SD-JWT in a format that they do not
       recognize and therefore may not be able to tell whether the SD-JWT
       supports Key Binding or not.

       If a Verifier determines that Key Binding is required for a
       particular use case and the Holder presents either a bare SD-JWT or
       an SD-JWT+KB with an invalid Key Binding JWT, then the Verifier will
       reject the presentation when following the verification steps
       described in Section 7.3.


If the SD-JWT contains a public key, then the Holder MUST use Key Binding and the Verifier MUST verify that Key Binding is correctly supported.

It is thus proposed to replace these three paragraphs by the following two paragraphs:

   If Key Binding is required by a Verifier, the SD-JWT MUST contain a
   public key and a KB-JWT MUST be present.
   If an attacker strips the KB-JWT, this can be immediately detected
   by the Verifier.

   If a Verifier determines that Key Binding is required for a
   particular use case and the Holder presents either a SD-JWT without
   a public key in it
   or an SD-JWT with a public key in it but without a valid KB-JWT,
   then the Verifier will reject the presentation when following the
   verification steps
   described in Section 7.3.


5. Proposed addition of two sub-sections in 9.5 (Key Binding)

Afterwards, it is proposed to add two sub-sections:

   9.5.1 Attacks performed with the End-user consent

   If two End-Users accept to collaborate, one End-User can perform
   cryptographic computations for the benefit of another End-User.
   An example scenario is as follows: one End-user connects to a
   Verifier and receives back a challenge and a list of claim types
   that need
   to be presented to get an access. That End-User forwards to another
   End-User the challenge received from the Verifier, the name of the
   Verifier
   and the set of claim types and values that it wishes to present to
   the Verifier. It receives back from the other End-User the data
   structure
   that he needs to be granted an access by that Verifier.

   For example, an application specifically downloaded by the End-User
   would be able to use the private keys and perform cryptographic
   computations
   for the benefit of another End-User.

   9.5.2 Attacks performed without the End-user consent

   A malicious application would be able to use the private keys
   intended to be used by the Holder or be able to trick the key pair
   generation process used by the Holder.

   For example, if the private key is only protected by software, a
   virus would be able use the private key without the End-User being
   aware of it.
   As another example, the key pair generation process could be
   modified, so that the generated key pair can be known by a malicious
   application and then exported.

Denis

_______________________________________________
OAuth mailing list -- oauth@ietf.org
To unsubscribe send an email to oauth-le...@ietf.org

Reply via email to