Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misunderstanding of what AuthorizedNamespaces is #462

Open
davidz25 opened this issue Feb 19, 2025 · 3 comments
Open

Misunderstanding of what AuthorizedNamespaces is #462

davidz25 opened this issue Feb 19, 2025 · 3 comments
Assignees
Labels
Milestone

Comments

@davidz25
Copy link

davidz25 commented Feb 19, 2025

Section A.2.4. Credential Response says the following

The value of the credential claim in the Credential Response MUST be a string
that is the base64url-encoded representation of the CBOR-encoded IssuerSigned
structure, as defined in [ISO.18013-5]. This structure SHOULD contain all
Namespaces and IssuerSignedItems that are included in the AuthorizedNamespaces
of the MobileSecurityObject.

According to 18013-5 AuthorizedNamespaces is a mechanism for the issuer to convey that DeviceKey is authorized to sign data elements in that name space and to be returned in DeviceSigned. So it doesn't make any sense to say "This structure SHOULD contain all Namespaces and IssuerSignedItems that are included in the AuthorizedNamespaces of the MobileSecurityObject.". (Also, if you look at MSOs being minted today across e.g. US mDL issuers, no-one is actually using DeviceSigned at all to return data elements, as far as I know.)

I also don't think it make sense to specify what the structure SHOULD contain, I mean, it's already completely specified by 18013-5 what it contains. I would just strike the entire last sentence in the quoted paragraph.

@andprian
Copy link

andprian commented Mar 3, 2025

I agree the paragraph needs correcting. However we should not restrict the response to IssuerSigned. DeviceSigned should be allowed as well.
As for the content of the structures, I agree we do not need to specify again their contents, just refer to 18013-5 if this spec introduces no modification.

@davidz25
Copy link
Author

davidz25 commented Mar 5, 2025

DeviceSigned should be allowed as well.

So, yeah, I mean, I don't disagree. But I don't think we can say anything about the encoding of the data... because the whole point of DeviceSigned data elements is that the device comes up with them using multiple signals, not just what the issuer tells them, if anything.

Here are three examples:

  • age_over_18 could be a device-signed data element and in this case there are two signals, namely birth_date and also what the device believes to be the current time.
  • device_matched_authorized_holder could be a device signed boolean calculated by using sensors on the device and comparing against issuer-provided biometrics provided out-of-band, set to true only if there's a match.
  • holder_verified_email_address device signed tstr which is the email address obtained from e.g. asking the user and verifying it out-of-band.

At least this is the spirit of device-signed and examples often used in ISO.

So IOW, it's hard to specify what format the data used - if any - should be transmitted by the issuer. There's just nothing we can say about it. I do think we should allow implementations to put other things in IssuerSigned map but I don't think it needs to be standardized.

@Sakurann
Copy link
Collaborator

@davidz25 could you please do a small quick PR removing This structure SHOULD contain all Namespaces and IssuerSignedItems that are included in the AuthorizedNamespaces of the MobileSecurityObject.. ?

@Sakurann Sakurann added this to the Final 1.0 milestone Mar 17, 2025
davidz25 added a commit to davidz25/OpenID4VCI that referenced this issue Mar 17, 2025
This change removes the reference to AuthorizedNamespaces of the
MobileSecurityObject since this doesn't apply to issuer-signed data.

Fixes Issue openid#462.

Signed-off-by: David Zeuthen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants