Subject: [OAUTH-WG] DPoP proof and the public key

From: George Fletcher <[email-masked]>
Date: Thu, 17 Feb 2022 08:57:49 -0500

Hi,

I'm going to expose my ignorance here... but what is the rationale for 
requiring the public key in every DPoP proof? Is there a security 
reason? or is it for ease of development? If large RSA keys are being 
used, that public key is rather large for sending with every request 
when even a fingerprint of the key would suffice to identify it.

 From my reading of the spec, there isn't a way for a server that wants 
to remember the public key in backend session state to optimize the proof.

Thanks,
George

---

From: Daniel Fett <[email-masked]>
Date: Thu, 17 Feb 2022 21:33:49 +0100

Hi George,

the main reason for this is to facilitate a client implementation that 
always sends the same kind of proof. For the client, there's no need to 
distinguish between token request, resource request, or even PAR 
request. Even though the key would only be needed once, of course.

-Daniel

Am 17.02.22 um 14:57 schrieb George Fletcher:
> _______________________________________________
> OAuth mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/oauth

---

From: Brian Campbell <[email-masked]>
Date: Thu, 17 Feb 2022 14:01:58 -0700

A a fingerprint (or key id) does suffice to identify a key but only when
the key is already known to the other party. There are some cases in DPoP
where a key might be known or knowable (like AS interaction by a client
with jwks/jwks_uri)  but many where that's not the case (public clients,
resource access), at least without introducing other mechanisms. Having the
public key in every DPoP proof keeps the protocol more consistent and
avoids conditionality or caveats in the content and validation of the
proof.

There was some discussion around the interim meeting in March
<https://datatracker.ietf.org/meeting/interim-2021-oauth-01/session/oauth>
about taking the public key out of the proof for resource access and moving
it into the access token (screenshot of the two relevant slides from that
meeting included). But there was very little support for making that
change.

On Thu, Feb 17, 2022 at 6:58 AM George Fletcher <gffletch=
[email-masked]> wrote:

> requiring the public key in every DPoP proof? Is there a security reason?
> or is it for ease of development? If large RSA keys are being used, that
> public key is rather large for sending with every request when even a
> fingerprint of the key would suffice to identify it.
>
> From my reading of the spec, there isn't a way for a server that wants to
> remember the public key in backend session state to optimize the proof.
>
> Thanks,
> George

-- 
_CONFIDENTIALITY NOTICE: This email may contain confidential and privileged 
material for the sole use of the intended recipient(s). Any review, use, 
distribution or disclosure by others is strictly prohibited.  If you have 
received this communication in error, please notify the sender immediately 
by e-mail and delete the message and any file attachments from your 
computer. Thank you._