DefGuard / DefGuard/defguard

Design device attestation and verification UI/UX

Open
#3,378 1 comment 0 reactions 2 assignees Claimed by @Va1ter View on GitHub
Dominant language
Rust
Stars
2.8k
Forks
115
Avg merge
1d 4h
Merged PRs (30d)
51

Description

## Device Attestation Settings (new settings)

1. Show information about the boundled root EK Certificate authority database:
a. date it was updated/created
b. list of Certificate Authorities it holds (can be long need to be a component with pagination)

## Enabling device Attestation

It should be a two posture checks:
- Device Attestation - allow only hardware TPM/Apple Security Enclave attested devices to connect
- Desktop Client [ ]
- Mobile Client [ ]

- Verified Attested Devices (only when the switch above is active) - allow only devices that were attested and verified by the admin
- Display number of verified and not verified devices
- Help before enabling this posture check please verify those devices

## Device Info in User Profile

- Attested - date + fingerprint (@t-aleksander show fingerprint example)
- Verified/Not Verified (if verification is enabled)

Exmaple fingerprint: SHA256 A3:7B:2F:9C:E1:44:D8:56:0A:BB:73:F2:19:8E:CC:05:3D:A9:41:B7:6E:C2:88:F0:15:47:9D:E3:0C:AB:62:F4

## Verification

1. We should have a **new global list of devices** with possibility to filter verified/not attested/not verified
2. Verification process should be:
- select device
- print random 6 digites (eg. 7 8 12 77 11 96 ) - each 60 sec
- **instruct the admin how the user can begin the verification process (call/where to click...) and what should the user do**
- Desktop client needs to block everything and show verification screen where it will show decrypted words + add posibility to copy them
- Admin can: Verify, Cancel (stop the verification process), Fail (disable the device -> enable only available after attestation)

3. Add possibility for admin to cancel verification -> not verified

### Desktop client verification entring point
- @Va1ter figure out the entring point for not verified device
- Verified -> No entring point and show it's verified

Exmaple fingerprint: SHA256 A3:7B:2F:9C:E1:44:D8:56:0A:BB:73:F2:19:8E:CC:05:3D:A9:41:B7:6E:C2:88:F0:15:47:9D:E3:0C:AB:62:F4

## Desktop/Mobile client Posture check verified attestation

Desktop/Mobile not verified tries to connect -> Posture check fails -> Inform the user that it can begin the verification process here -> Call admin

## TODO later - Edge Case - attestation passed but can't be verfied against EK root boundle

- If we can't attest the device show on device Attestation status: Needs approval
- Admin approval process: ...
- Admin can: Attest/Block device

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.