> Am 02.08.2022 um 10:35 schrieb Warren Parad 
> <wparad=40rhosys...@dmarc.ietf.org>:
> 
> 
> Why would we not include those seemingly critical details in the draft then?
> Let's define what a verifiable presentation is (is that already defined 
> somewhere? I didn't see it in the draft)
> Require the JWTs to be signed with a private key from a certificate chain, 
> and include the whole certificate chain in the body. (I don't think there is 
> already a RFC for this, but I could be wrong)
> Let's also talk about this comment:
>> In an OAuth scenario, the user‘s wallet would act as AS and issue access 
>> tokens (those could be short lived) that effectively are verifiable 
>> presentations (based on a verifiable credential) audience restricted for a 
>> certain RS. The client wouldn’t even know it’s a verifiable presentation 
>> since the access token is opaque to the client.
> 
> If the user's wallet acts as the AS issuing tokens, then there is zero need 
> for this draft because we could pass the scopes that relate to the claims 
> directly to the AS, and have the AS return a limited JWT, and we would 
> actually do that every time because:
> we can
> because the tokens have short lifetime
> So that isn't a valid argument, unless there's a reason why the AS wouldn't 
> be able to do this.

Well, how many access tokens have you seen in the wild that only contain an 
access token? I haven’t, any of the carriers some for of user claims, e.g. a 
sub, in most cases some privileges/roles. Please take a look at 
https://www.rfc-editor.org/rfc/rfc9068.html for best current practice.

Using a VC in the way I described means the original AS doesn’t need to be 
involved in the issuance of the actual access token, which adds to privacy and 
scalability.

> 
>> On Tue, Aug 2, 2022 at 10:14 AM Torsten Lodderstedt 
>> <torsten=40lodderstedt....@dmarc.ietf.org> wrote:
>> 
>> 
>>>> Am 02.08.2022 um 09:53 schrieb Warren Parad 
>>>> <wparad=40rhosys...@dmarc.ietf.org>:
>>>> 
>>> 
>>> If we are in a offline scenario how does the verifier got ahold of the 
>>> public key associated with the id token?
>> 
>> Why id token? I would assume we are talking about verifiable presentations, 
>> right?
>> 
>> There are a couple of ways to provide the verifier with the public key 
>> needed to verify. The (raw) key could be contained in the credential or the 
>> presentation. If a trust chain is required, a x.509 certificate could serve 
>> the same purpose.
>> 
>> Beside that offline has different facets. In a Point of Sales scenario, even 
>> though the wallet would be offline the checkout counter would most likely 
>> have connectivity. That would also allow to resolve the public key on demand.
>> 
>>> 
>>> They would need to be online, that defeats any benefit this could provide.
>>> 
>>> Or what if the token you have expires. Many providers issue tokens only 
>>> good for 1 hour. If that expires, the user has to go through the online 
>>> flow again.
>>> 
>>> Unless we can add some provisions to ensure long lived token validity, I 
>>> think in practice we're cripling the usefulness.
>> 
>> Absolutely. That’s the reason a verifiable credential has a much longer 
>> lifetime simply because the user should be able to use it in a sensible way. 
>> As this makes replay more likely, all verifiable credentials formats utilize 
>> holder binding for reply detection. The public key mentioned above is part 
>> of the cryptographic holder binding that only the legitimate user is able to 
>> execute.
>> 
>> In an OAuth scenario, the user‘s wallet would act as AS and issue access 
>> tokens (those could be short lived) that effectively are verifiable 
>> presentations (based on a verifiable credential) audience restricted for a 
>> certain RS. The client wouldn’t even know it’s a verifiable presentation 
>> since the access token is opaque to the client.
>> 
>>> 
>>> 
>>>> On Tue, Aug 2, 2022, 04:21 Kristina Yasuda 
>>>> <Kristina.Yasuda=40microsoft....@dmarc.ietf.org> wrote:
>>>> I support adoption.
>>>> 
>>>>  
>>>> 
>>>> To add some color.
>>>> 
>>>>  
>>>> 
>>>> One of the use-cases is a flow where issuance of a user credential 
>>>> (collection of user claims) is decoupled from presentation (where both 
>>>> issuance and presentation of a user credential are done using extensions 
>>>> of OAuth flows). The goal of this decoupling is to avoid “issuer call 
>>>> home”, where the user can send a user credential directly to the RP, 
>>>> without RP needing to contact the Issuer directly. So the motivations are 
>>>> not limited to offline scenarios, but are applicable to the scenarios that 
>>>> want to recreate in the online environment, the user experience of 
>>>> presenting credentials in-person.
>>>> 
>>>>  
>>>> 
>>>> Driver’s Licence just happens to be an example familiar to many, and there 
>>>> is no reason it cannot be a diploma, or an employee card, or a training 
>>>> certificate, etc. But it is worth highlighting that SD-JWT work becomes 
>>>> critical if we are to enable ISO-compliant mobile Driver Licences 
>>>> expressed in JSON to enable online scenarios and make life of the Web 
>>>> developers easier (as opposed processing data encoded as CBOR and signed 
>>>> as a COSE message). Selective disclosure is a requirement in many 
>>>> government issued credentials, while the usage of advanced cryptography is 
>>>> not always encouraged by the national cybersecurity agencies.
>>>> 
>>>>  
>>>> 
>>>>  
>>>> 
>>>> Regarding an approach where issuer issues multiple JWTs of a same type but 
>>>> with different subset of claims, it is not an ideal way to do selective 
>>>> disclosure with JWTs (type as a way to differentiate credential with one 
>>>> data structure/syntax from another). It complicates implementations that 
>>>> try to provide RP-U unlinkability (RPs cannot collude to track the user). 
>>>> The simplest way to achieve unlinkability with JWTs without using advanced 
>>>> cryptography is to issue multiple credentials of the same type but with 
>>>> varying use identifiers and enable pairwise identifiers per RP. Now there 
>>>> are multiple copies of each JWT with subset of claims of the same type. 
>>>> This greatly complicates presentation of these credentials too – since 
>>>> credentials are of the same type, now wallet needs to manage the 
>>>> combination of a subset of claims + pairwise identifier…
>>>> 
>>>>  
>>>> 
>>>> What if the implementation also wants predicates property, where 
>>>> age_over_XX boolean is sent instead of a birthdate string? The simplest 
>>>> way to do predicates with JWTs without using advanced cryptography is to 
>>>> have issuers to issue multiple age_over_xx booleans so that an appropriate 
>>>> one can be selectively disclosed to the RP. How many “JWTs with subset of 
>>>> claims” does the issuer needs to issue to account for all possible age 
>>>> requirements? Note that it’s not just age_over_21 to start gambling, it’s 
>>>> also age_over_65 to get pension benefits.
>>>> 
>>>>  
>>>> 
>>>> Managing the combinatorial explosion of sets of claims in speculatively 
>>>> issued JWTs, many of which will never be used, seems unwieldy, to say the 
>>>> least. "A conventional JWT with a subset of claims" approach could be 
>>>> taken in some implementations, but it should not prevent a simpler, 
>>>> extensible alternative of SD-JWT.
>>>> 
>>>>  
>>>> 
>>>>  
>>>> 
>>>> Finally, as Giuseppe pointed out, an option to blind claim names is on the 
>>>> table. As discussed on this list previously, we should analyze privacy 
>>>> properties of the mechanism and decide if we want to mandate it – which 
>>>> can be discussed after the adoption.
>>>> 
>>>>  
>>>> 
>>>> Best,
>>>> 
>>>> Kristina
>>>> 
>>>>  
>>>> 
>>>>  
>>>> 
>>>> From: OAuth <oauth-boun...@ietf.org> On Behalf Of Rifaat Shekh-Yusef
>>>> Sent: Thursday, July 28, 2022 8:17 PM
>>>> To: oauth <oauth@ietf.org>
>>>> Subject: [OAUTH-WG] Call for adoption - SD-JWT
>>>> 
>>>>  
>>>> 
>>>> All,
>>>> 
>>>>  
>>>> 
>>>> This is a call for adoption for the SD-JWT document
>>>> 
>>>> https://datatracker.ietf.org/doc/draft-fett-oauth-selective-disclosure-jwt/
>>>> 
>>>>  
>>>> 
>>>> Please, provide your feedback on the mailing list by August 12th.
>>>> 
>>>>  
>>>> 
>>>> Regards,
>>>> 
>>>>  Rifaat & Hannes
>>>> 
>>>>  
>>>> 
>>>> _______________________________________________
>>>> OAuth mailing list
>>>> OAuth@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/oauth
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to