Design device attestation and verification UI/UX
- 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
Assessment
This issue has not been assessed yet.