On Jul 27, 2022, at 5:16 PM, Neil Madden <[email protected]> wrote:
>> On 27 Jul 2022, at 17:20, Tobias Looker <[email protected]> wrote:
<snip>
>> JWP accounts for this in its design by encoding each claim value that is to 
>> be selectively disclose-able separately so it can then be appropriately 
>> handled at the cryptographic layer by different algorithms.
> 
> 
> If you’re going to do this, why not just ask the issuer to give you multiple 
> tokens in the first place, each containing some subset of claims you want to 
> disclose? In the limit you could issue a separate JWT for each claim. Is 
> there a fundamental reason this doesn’t work?

If I understand, the question is if you could do selective disclosure by 
signing a number of JWTs (each perhaps with all the mandatory claims and 
parameters, and a new correlation parameter marked as critical) could verify 
all of the JWTs were meant to represent a single identity credential and do not 
conflict, and release some subset of them at once, then discard them to to get 
unlinkability through single-use.

This could be defined on top of existing algorithms, although it would incur 
data size, system logic and cryptographic processing penalties. Indeed, this is 
similar to what the JWS-based algorithm (section 6.1) in JPA starts to define. 
However, that proposes additional steps to optimize data size in transit by 
operating on a hierarchy of documents as well as reducing the protected headers 
conveyed in transit.

Trying to optimize the cryptographic processing might lead you to use salted 
hashes or MACs, similar to what is described in section 6.3 of that document.

To hopefully both summarize and to answer the question: when constrained to the 
realm of existing cryptographic primitives in the JOSE family, JWP does attempt 
to apply and compose those algorithms to define ways to meet a minimal set of 
cryptographic properties for presentation in a consistent set of 
serializations. 

There are obviously a number of trade-offs to consider in these new composed 
algorithms, and improvements to them would be welcomed.

I however want to talk some about the use of the word “just” in the original 
question. I would posit that use case still has lots of complexity to describe. 
The processing steps still need to be defined on how to issue and confirm the 
credentials whether it is a new format or a collection of JWTs. It still needs 
to define how to present and verify the credentials, with subject confirmation 
and with the claims being re-consistituted or otherwise interpreted in a 
meaningful way after being selectively reduced. There would still be security 
considerations on how to make sure security claims which limit usage such as 
audience and expiry are not capable of being omitted. There would still be 
privacy considerations on how to keep the subject claims or other security 
properties from the credential from turning into vectors for unintended 
linkability.

Finally, newer cryptographic algorithms with provide more properties (such as 
multi-use unlinkability and integrated subject confirmation proofs) would not 
have separate signatures but rather a single proof covering the multiple 
messages, and thus would not support being decomposed into a "multiple JWT” 
representation with valid signatures.

-DW
_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose

Reply via email to