[GH-ISSUE #4773] Certificate Based Posture Check #10128

Open
opened 2026-08-05 01:24:45 -04:00 by saavagebueno · 8 comments
Owner

Originally created by @PowershellScripter on GitHub (Nov 10, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4773

It would be beneficial (especially in a business environment) to have a posture check that can tell the client to check for an imported certificate on the client system.

Creating a certificate based posture check would benefit in a couple different ways:

It would be faster than a process check since processes can be delayed starting up or not start at all due to one issue or another.

It would also create additional security since certs can be blocked from being exported once imported. They can also be locked down to specific groups or domains.

It would also prevent the ability for systems to be added to a vpn connection that do not first have said cert imported.

Can be converted for basically all operating systems so they check the same X.509 data within the cert.

Originally created by @PowershellScripter on GitHub (Nov 10, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4773 It would be beneficial (especially in a business environment) to have a posture check that can tell the client to check for an imported certificate on the client system. Creating a certificate based posture check would benefit in a couple different ways: It would be faster than a process check since processes can be delayed starting up or not start at all due to one issue or another. It would also create additional security since certs can be blocked from being exported once imported. They can also be locked down to specific groups or domains. It would also prevent the ability for systems to be added to a vpn connection that do not first have said cert imported. Can be converted for basically all operating systems so they check the same X.509 data within the cert.
saavagebueno added the feature-request label 2026-08-05 01:24:45 -04:00
Author
Owner

@OmarAboulMakarem commented on GitHub (Nov 27, 2025):

i agree, also adding the ability to limit the devices connected by each user to a certain number and when the user connect through a certain device, the device ID is stored and only this id will be allowed to access.

in our Fintech company this is a feature that is crucial

<!-- gh-comment-id:3585402550 --> @OmarAboulMakarem commented on GitHub (Nov 27, 2025): i agree, also adding the ability to limit the devices connected by each user to a certain number and when the user connect through a certain device, the device ID is stored and only this id will be allowed to access. in our Fintech company this is a feature that is crucial
Author
Owner

@sandstrom commented on GitHub (Dec 17, 2025):

It would basically mean support for Device Attestation (ACME DA). That would be a good posture check feature.

<!-- gh-comment-id:3665952874 --> @sandstrom commented on GitHub (Dec 17, 2025): It would basically mean support for Device Attestation (ACME DA). That would be a good posture check feature.
Author
Owner

@sahps commented on GitHub (Feb 12, 2026):

I like this and support its implementation, however bare in mind that you can export non-exportable private keys via the registry.

<!-- gh-comment-id:3890633044 --> @sahps commented on GitHub (Feb 12, 2026): I like this and support its implementation, however bare in mind that you can export non-exportable private keys via the registry.
Author
Owner

@OmarAboulMakarem commented on GitHub (Feb 12, 2026):

maybe we can do device based posutre checks using mac addresses tied to each device

<!-- gh-comment-id:3890706687 --> @OmarAboulMakarem commented on GitHub (Feb 12, 2026): maybe we can do device based posutre checks using mac addresses tied to each device
Author
Owner

@sahps commented on GitHub (Feb 12, 2026):

Are we trying to reinvent something here? Netbird already generates a key-pair for Wireguard in order to connect, that is already a unique identifier. The Netbird configuration, including its key, should be in a folder requiring administrative access to read.

Is the issue here that a compromised portable device could be inspected and have its Netbird connectivity configuration duplicated, allowing an unauthenticated device to connect?

I think if an attacker has administrative, or external access to the filesystem, it's considered game over. This is why the TPM is used by encryption services, but using the TPM is controversial to some.

<!-- gh-comment-id:3891428475 --> @sahps commented on GitHub (Feb 12, 2026): Are we trying to reinvent something here? Netbird already generates a key-pair for Wireguard in order to connect, that is already a unique identifier. The Netbird configuration, including its key, should be in a folder requiring administrative access to read. Is the issue here that a compromised portable device could be inspected and have its Netbird connectivity configuration duplicated, allowing an unauthenticated device to connect? I think if an attacker has administrative, or external access to the filesystem, it's considered game over. This is why the TPM is used by encryption services, but using the TPM is controversial to some.
Author
Owner

@BiasF commented on GitHub (Feb 18, 2026):

The possibility to check Certificates would be awesome.
Currently I evaluate Netbird only in my Homelab. For using Netbird in a enterprise environment, I need to restrict VPN Access to company devices only. Currently that's not possible with Netbird.

<!-- gh-comment-id:3922318166 --> @BiasF commented on GitHub (Feb 18, 2026): The possibility to check Certificates would be awesome. Currently I evaluate Netbird only in my Homelab. For using Netbird in a enterprise environment, I need to restrict VPN Access to company devices only. Currently that's not possible with Netbird.
Author
Owner

@3ster commented on GitHub (Mar 16, 2026):

I'd love to have support for both machine certs as well as user certs. Currently, allowing a pre-logon NetBird client different access from a logged-on client with a specific user isn't really feasible, but a requirement for larger orgs for device management.
I feel like a simple check against the Windows CAPI would be enough for Windows clients; this would also allow usage of TPM-attested and -backed non-exportable certificates, if desired. I'm unsure what the Linux/Mac side of certificate storage currently looks like.

<!-- gh-comment-id:4066141898 --> @3ster commented on GitHub (Mar 16, 2026): I'd love to have support for both machine certs as well as user certs. Currently, allowing a pre-logon NetBird client different access from a logged-on client with a specific user isn't really feasible, but a requirement for larger orgs for device management. I feel like a simple check against the Windows CAPI would be enough for Windows clients; this would also allow usage of TPM-attested and -backed non-exportable certificates, if desired. I'm unsure what the Linux/Mac side of certificate storage currently looks like.
Author
Owner

@dexion commented on GitHub (Apr 14, 2026):

I tried to implement cert-based auth in netbird. Everyone is welcome for testing and improvement

<!-- gh-comment-id:4243975426 --> @dexion commented on GitHub (Apr 14, 2026): I tried to implement cert-based auth in netbird. Everyone is welcome for testing and improvement
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#10128