Skip to content

Conversation

@touilleMan
Copy link
Contributor

@touilleMan touilleMan commented Nov 26, 2025

Question:

  • we currently use pki_ prefix for everything related to PKI, except for the local device protection that is named smartcard. I think we should settle on either pki or smartcard for all code related to PKI (so most likely just rename DeviceFileSmartcard -> DeviceFilePKI).

@touilleMan touilleMan force-pushed the rfc-local-device-smartcard branch from 876aad7 to 327136c Compare November 27, 2025 14:54
@touilleMan touilleMan changed the title Add RFC 1022 PKI-based device storage Add RFC 1022 & 1023 for asynchronous enrollment Nov 27, 2025
@touilleMan touilleMan force-pushed the rfc-local-device-smartcard branch 2 times, most recently from 875cf3b to cd0c0d2 Compare December 2, 2025 14:22
@touilleMan touilleMan force-pushed the rfc-local-device-smartcard branch from cd0c0d2 to 22f6195 Compare December 3, 2025 15:48
Comment on lines +35 to +36
- An asynchronous enrollment is created by the submitter (while a synchronous one is created
by the greeter).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- An asynchronous enrollment is created by the submitter (while a synchronous one is created
by the greeter).
- When the submitter creates an enrollment it is asynchronous, whereas when an accepter creates the enrollment, it is synchronous.

It kinda sounded like the people involved could choose what kind of enrollment they wanted, but maybe it's just me. (Also greeter -> accepter)

0. Alice wants to join CoolOrg organization.
1. Alice uses the organization submission link to submit a request. This submission link
is specific to the organization and is common to all submit request (typically this
link can be pinned to a newcomer guide documentation).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
link can be pinned to a newcomer guide documentation).
link can be referenced in a newcomer guide documentation).

1. Alice uses the organization submission link to submit a request. This submission link
is specific to the organization and is common to all submit request (typically this
link can be pinned to a newcomer guide documentation).
2. Alice authenticates with an external identity system (either connect trough OIDC or uses his smartcard containing a PKI identity).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
2. Alice authenticates with an external identity system (either connect trough OIDC or uses his smartcard containing a PKI identity).
2. Alice authenticates with an external identity system (either connect trough OIDC or uses their smartcard containing a PKI identity).
Suggested change
2. Alice authenticates with an external identity system (either connect trough OIDC or uses his smartcard containing a PKI identity).
2. Alice authenticates with an external identity system (either connect trough OIDC or uses her smartcard containing a PKI identity).

link can be pinned to a newcomer guide documentation).
2. Alice authenticates with an external identity system (either connect trough OIDC or uses his smartcard containing a PKI identity).
3. Alice creates a user encryption key pair and a device signing key pair.
4. Alice saves the private parts of the user & device keys pairs on his machine's filesystem.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
4. Alice saves the private parts of the user & device keys pairs on his machine's filesystem.
4. Alice saves the private parts of the user & device keys pairs on their machine's filesystem.
Suggested change
4. Alice saves the private parts of the user & device keys pairs on his machine's filesystem.
4. Alice saves the private parts of the user & device keys pairs on her machine's filesystem.

}
```

### 3.2 - List the pending request
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this lists only valid, still waiting for approval enrollments ?
If yes, should we add a list_untrusted like here #11841?

(it's for the admin to be able to see all enrollments, even if they are invalid)

"status": "enrollment_not_found"
},
{
// The request is no longer in pending state (either accepted or rejected)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// The request is no longer in pending state (either accepted or rejected)
// The request is no longer in pending state (either accepted, cancelled or rejected)

"status": "active_users_limit_reached"
},
{
// The user already exist in the organization
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// The user already exist in the organization
// The user already exist in the organization (aka email already in use)

I'm not sure about that though, this could be about the user_id too.

"type": "Bytes"
},
{
// Optional list of intermediate certificates needed to
Copy link
Contributor

Choose a reason for hiding this comment

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

What happens if it's not provided ? The trustchain is not verified ?

{
// Certificate here refers to the X509 certificate that describes what is
// in the smartcard.
"name": "certificate_ref",
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
"name": "certificate_ref",
"name": "submitter_certificate_ref",

Comment on lines +971 to +969
> The server validation is not strictly needed from a security standpoint, but it
> prevents ending up with bad request in the list of pending enrollments that then
> have to be manually rejected.
Copy link
Contributor

Choose a reason for hiding this comment

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

The invalid requests still need to be visible (they can be hidden) but the admin must be able to kind them to be able to debug the case where a legitimate user submits unknowingly an invalid certificate. So a manual action would still be needed to clean up those certificates

@touilleMan touilleMan force-pushed the rfc-local-device-smartcard branch from 22f6195 to 7fa7fd0 Compare December 5, 2025 16:07
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.

3 participants