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

Add TAG security and privacy questionnaire #111

Merged
merged 16 commits into from
Jun 22, 2024
Merged

Add TAG security and privacy questionnaire #111

merged 16 commits into from
Jun 22, 2024

Conversation

RByers
Copy link
Member

@RByers RByers commented May 1, 2024

First draft of responses to the W3C TAG security and privacy questionnaire.


Preview | Diff

explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated
> 11. Do features in this specification allow an origin some measure of control over
> a user agent's native UI?

Not control, no. User agents may add additional affordances for user transparency and control.
Copy link
Collaborator

@samuelgoto samuelgoto May 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you discounting the underlying Operating System as part of the User Agent?

This API does allow an origin some measure of control over the OS's UI layer, right (e.g. by opening a bottom sheet with a credential selector?)?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with @samuelgoto ... further, what fields are requested can have significant influence and could potentially be abused (e.g., an RP asking for 100 things in different ways)

explainer.md Outdated
> 12. What temporary identifiers do the features in this specification create or
> expose to the web?

None
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It exposes much worse than temporary identifiers, right? It exposes some permanent ones, like social security numbers and driver's licenses numbers, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the exposure of those non-temporary a/k/a permanent identifiers is discussed in the answers to other questions. This question asks specifically about temporary identifiers, and I do not think it makes sense to change its direction.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep that was my reading too. That said, like for other questions, I think we should acknowledge that wallets might create temporary identifiers. I've added a sentence with mdoc MSOs as a possible example (given concern over mdoc selective disclosures being potentially linkable through MSO re-use).

Copy link
Contributor

@TallTed TallTed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor grammar and such

explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated
> 01. What information does this feature expose,
> and for what purposes?

The Digital Credential API exposes a one-time user-mediated communication channel from websites, to digital wallet applications, and back to websites with end-to-end encryption of the response. It is designed to be a better option than established lower-level communication channels like custom schemes, QR codes, and server-to-server network communication. How exactly this channel is used is up to the wallet applications and host operating system, but we are designing it to be suitable for conveying presentations of digital credentials such as claims in mobile driver’s licenses.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although it's good to talk about the "communication channel" through which the API works, this doesn't exactly answer what information the feature exposes.

In the first sentence, I was expecting to read something like "high-value privacy sensitive digital credentials, such as digital driver's licenses... it does this through a one-time user-mediated communication channel from websites..."

Generally, we should try other the answers specific to the questions being asked. We probably don't need to give justification for the decisions taken (i.e., why it's a better option than custom schemes, QR codes, etc), as we've covered those in other documents (which we should probably link to).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with the first part and updated.

I'm not sure I agree about only answering directly. We keep getting people presuming that we are seeking to enable exposure of this information (and arguing against the legitimacy of the use case), when in fact all we're doing is trying to replace existing exposure with safer mechanisms. So I'm just trying to head off the immediate criticisms I know we'll get. But perhaps I've overdone it?

explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated

> 04. How do the features in your specification deal with sensitive information?

Today, online identity verification (e.g., for KYC) is usually done by submitting photos of government identity documents (for example, uploading photos containing the PII via the web’s `<input type=file>` mechanism. Due to the privacy and security limits of this approach, credential issuers and verifiers are working to move to the use of wallet applications which can selectively disclose cryptographically-attested properties. Today, those approaches rely on generic web→app communication paths like custom schemes and server-to-server communication.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally: I'm worried that this is again tryin to justify why this is a good idea, rather than answering the question being asked. If possible, let's stick strictly to addressing the question not in relation to how it's better than existing approaches. Or, at least, let's de-emphasize the old methods.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed we should focus first on answering the question directly, I tweaked it for that. But I also think we need to put the answer in context of the larger shifts that our outside our control, right? Otherwise it just looks like it's begging for a "nope, that's dangerous" reaction, right?

explainer.md Outdated
> 06. Do the features in your specification expose information about the
> underlying platform to origins?

Not directly. Wallets may (intentionally or inadvertently) expose some information through this API (such as some indication of which wallet app the user is using). But the primary motivation for these wallets over traditional federated authentication systems is that the wallet can act in the user’s interest to protect their privacy even from the credential issuer. Issuers generally choose which wallets to support their credentials in and can impose privacy requirements on those wallets. Users will often have their choice of multiple wallets and are expected to use reputation for privacy as part of their decision making.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paints a very optimistic picture / best case scenario of wallets doing the right thing.

Although from the outset this says states that wallets "may (intentionally or inadvertently) expose some information through this API", we should probably outline a worst case scenario.

Like, this could speak about the response data being standardized to be structured in a particular way (even if the browser can't directly peek at the encrypted response data).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I can emphasize the risk more. I also added a statement referring to discussion in #117.

explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
explainer.md Outdated Show resolved Hide resolved
@marcoscaceres
Copy link
Collaborator

@RByers, can we move this to a separate document? Otherwise the explainer gets very large.

Copy link
Collaborator

@marcoscaceres marcoscaceres left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Marking as requested changes...

RByers and others added 6 commits June 19, 2024 15:43
First draft of responses to the W3C TAG security and privacy questionnaire.
Tweak from @TallTed

Co-authored-by: Ted Thibodeau Jr <[email protected]>
Tweaks from @TallTed

Co-authored-by: Ted Thibodeau Jr <[email protected]>
@RByers
Copy link
Member Author

RByers commented Jun 19, 2024

Sorry for the long delay. I think I've addressed all the feedback, @marcoscaceres PTAL.

explainer.md Outdated Show resolved Hide resolved
@marcoscaceres
Copy link
Collaborator

@RByers, sorry for the silly request... can you make folder called "horizontal-reviews/" and drop this in there.

I'd like to keep things super organized in the repo.

Copy link
Collaborator

@marcoscaceres marcoscaceres left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just nit about relocating the document to "horizontal-review/".

Co-authored-by: Marcos Cáceres <[email protected]>
@RByers
Copy link
Member Author

RByers commented Jun 21, 2024

@RByers, sorry for the silly request... can you make folder called "horizontal-reviews/" and drop this in there.

I'd like to keep things super organized in the repo.

Sure, silly requests are my favourite 😜

@RByers RByers merged commit 69a62f2 into main Jun 22, 2024
1 check passed
@RByers RByers deleted the RByers-spq branch June 22, 2024 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants