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

Email claims: store unique user id in addition to email #973

Open
vlsi opened this issue Jan 22, 2023 · 3 comments
Open

Email claims: store unique user id in addition to email #973

vlsi opened this issue Jan 22, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@vlsi
Copy link

vlsi commented Jan 22, 2023

Description

See #955

The same goes for email: emails could be reused. For instance, suppose someone drops their gmail account, and somebody else creates an account with exactly the same username. In that case, Fulcio certificates would look like valid ones because they store only email.

I guess we should store unique user ids in certificates.

@vlsi vlsi added the bug Something isn't working label Jan 22, 2023
@haydentherapper
Copy link
Contributor

For what we currently support, google and Microsoft don’t allow email reuse. One of the requirements from another issue for OIDC providers was disallowing reuse. Unsure about GitHub, but I think it’d be reasonable to switch over to usernames rather than email for it.

The tricky thing is building verification policies based on user IDs. Most email providers don’t expose user IDs except by querying various APIs.

@arianvp
Copy link

arianvp commented Jan 27, 2023

For what we currently support, google and Microsoft don’t allow email reuse.

Can give you a concrete counter-example.

Create a GCP project; create a service account; delete the project

wait 30 days. Claim the GCP project-id again; recreate the same service account

@haydentherapper
Copy link
Contributor

If a user deletes their project or an email account that can be resurrected, I think there should be an expectation that the user convey that they are no longer in control of that account. It's effectively giving up their "signing key". If they are still supposed to be in control of their identity but erroneously deleted their identity/project, they should be monitoring transparency logs to see unexpected issuances with their identity.

That said, it should be simple to add an extension with a custom OID for the subject. I do expect users to probably not use the ID when creating verification policies since it's not typically known without querying an API, but it can be tracked over time to make sure that it remains stable (suggestion from @asraa for how SLSA uses IDs vs mutable references)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants