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

From: George Fletcher <[email-masked]>
Date: Wed, 2 Mar 2022 08:16:01 -0500

Thanks so much for the detailed explanation Brian! This makes sense and 
I get the simplicity argument. I think my only concern is that bandwidth 
used can also affect performance and since we are talking about proofs 
being sent with every request, that can add up to a lot of extra bytes 
(which can translate to both cost and latency).

I'd prefer a mode that allows either the full JWK proof OR a key 
identifier so that deployments can decide what makes the most sense for 
their situation. For deployments where proof validation is decentralized 
(or performed locally) the full proof makes a ton of sense. For 
deployments, where proof validation is centralized then a key identifier 
would suffice and significantly reduce the bandwidth consumed when 
implementing sender-constrained tokens.

It seems the WG has made a decision and moved on which is fine with me:)

Thanks,
George

On 2/17/22 4:01 PM, Brian Campbell wrote:
> 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 thepublic 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.
>
> Screen Shot 2022-02-17 at 1.46.41 PM.png
>
>
> On Thu, Feb 17, 2022 at 6:58 AM George Fletcher 
> <gffletch=[email-masked]> wrote:
>
>     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
>     _______________________________________________
>     OAuth mailing list
>     [email-masked]
>     https://www.ietf.org/mailman/listinfo/oauth
>
>
> /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./