Devices & Fingerprints
A device is any server, VM, or container that needs secrets from FyVault.
What is a Device Fingerprint?
A fingerprint is a unique hardware identifier that proves a device is who it claims to be. It prevents:
- Device impersonation: Another server can’t pretend to be your production server
- Token replay: Even if someone steals a device token, they can’t use it from a different machine
- Unauthorized boot: Only registered devices with matching fingerprints can receive secrets
How to Get Your Fingerprint
Linux (EC2, VPS, bare metal)
Terminalbash
sudo cat /sys/class/dmi/id/product_uuid
# Output: EC2F3A1B-4C5D-6E7F-8A9B-0C1D2E3F4A5BAlternative (dmidecode)
Terminalbash
sudo dmidecode -s system-uuidmacOS (for testing only)
Terminalbash
ioreg -d2 -c IOPlatformExpertDevice | \
awk -F\" '/IOPlatformUUID/{print $(NF-1)}'Docker / Kubernetes
For containers, use the host machine's UUID or a stable identifier provided by your orchestrator.
Device Lifecycle
RegisterAdmin registers the device in the dashboard with name + fingerprint
PendingDevice is registered but agent not yet installed
ActiveAgent installed, booting successfully, receiving secrets
StaleAgent hasn’t sent a heartbeat recently (check connectivity)
RevokedDevice access permanently removed (compromised machine, decommissioned)
The FyVault Agent
The agent is a lightweight daemon that runs on your server:
Terminalbash
curl -fsSL https://get.fyvault.dev | bash -s -- \
--token YOUR_DEVICE_TOKEN \
--cloud https://api.fyvault.devThis command:
- 1Checks system compatibility
- 2Creates a dedicated system user with no interactive access
- 3Installs the agent binary
- 4Configures it to run as a system service
- 5Requires elevated privileges at startup, then permanently drops them
System Requirements
| Kernel | Linux 4.4+ |
| Privileges | Requires elevated privileges at startup, then permanently drops them |
| Distros | Every modern EC2 AMI, Ubuntu 18.04+, Debian 10+, RHEL 8+ |
Assigned Secrets
Each device receives only the secrets assigned to it. When the agent boots:
- 1Authenticates with the cloud
- 2Receives encrypted bundles for assigned secrets only
- 3Securely stores them in kernel memory
- 4Begins transparent injection based on secret types
You can assign and unassign secrets from the device detail page.