إنتقل إلى المحتوى الرئيسي
ينطبق على:
DuoKey Cockpit v2Full-disk and filesystem encryptionLUKS · Prim'X Cryhod · Microsoft BitLocker

Overview​

Disk Encryption is a single app type in the Apps catalog that protects one or more volumes, each bound to one of three on-host encryption engines. In every case, the volume's own data-encryption key never leaves the host and is unchanged by DuoKey — what DuoKey holds is a key-encryption-key (KEK) that wraps access to it. The host-side engine reaches the KEK through a DuoKey-provided interface (a PKCS#11 provider for LUKS and Cryhod, or a CNG Key Storage Provider certificate for BitLocker) instead of storing it locally, so raw key material never lands on disk in the clear and never lands in the DuoKey Cockpit database either — the KEK stays inside the linked vault and is only ever used there to unwrap.

Disk Encryption engines to DuoKey vault custody
LUKSLinuxPKCS#11 provider
CryhodWindowsPKCS#11 provider
BitLockerWindowsCNG-KSP certificate
PKCS#11 provider / CNG-KSP — HTTPS to the per-volume Cockpit endpoint
DuoKey Cockpit endpointPer-volume proxy — find_objects / decrypt / unwrap_key
RSA-OAEP unwrap
Tenant vaultHolds the RSA key-encryption-key (KEK) — private half never leaves it

All three engines reach the vault-held key-encryption-key through a DuoKey-provided interface; the private half of the KEK never leaves the vault.

EngineHost OSInterfaceUnlock mechanism
LUKSLinuxPKCS#11 providerA keyslot is bound to the vault-held KEK via a PKCS#11 token URI; the driver asks the provider to unwrap the volume key at boot.
Prim'X CryhodWindowsPKCS#11 providerCryhod's encryption centre selects the DuoKey PKCS#11 device and locates the KEK by a configured tag.
Microsoft BitLockerWindowsCNG Key Storage ProviderThe vault KEK is exposed as a smart-card certificate and added as a BitLocker key protector.
One integration, not three

Disk Encryption is a single app in the Apps catalog. When you create it you choose the engine (luks, cryhod or bitlocker); the volume, its KEK and its enrollment state are then managed the same way regardless of engine.

Volumes and key-encryption-keys​

Each disk-encryption app protects one or more volumes. Creating a volume registers it against a host and, optionally, a workload label — a purely informational tag (for example elasticsearch) noting which data directory the volume protects; it does not change how the volume is encrypted, since these engines protect the underlying volume regardless of what runs on top of it.

Enrolling a volume creates its KEK — an RSA key (2048-bit by default, or 4096-bit) — inside the linked vault (your tenant's software vault by default, or a vault you choose). The KEK is created as a managed key, so it also appears in the Keys module under its vault. Because the KEK is asymmetric, unlocking a volume is an RSA-OAEP decrypt of the wrapped volume key performed inside the vault adapter — the private half of the KEK never leaves it.

Volume fieldMeaning
Enrollment statepending (registered, no KEK bound yet), enrolled (KEK bound and usable), failed, or rotating (a key rotation is in progress).
Stateactive (may unlock), suspended (unlock refused), or revoked.
KEK algorithmRSA-2048 (default) or RSA-4096, selectable at enrollment or rotation time.
Suspending or revoking a volume blocks unlock

Once a volume's state is anything other than active, DuoKey refuses every unlock request for it — including a legitimate boot. Only suspend or revoke a volume deliberately, and confirm you have an alternative unlock path (for example, a recovery key for BitLocker) before you do.

Enrolling a volume​

1

Create the app and register the volume

Choose the engine (luks, cryhod or bitlocker), give the volume a name, and optionally record the host id, host OS and the on-host volume reference (device path or drive letter).

2

Enroll the volume

DuoKey creates the RSA KEK in the linked vault and returns an enrollment bundle: the DuoKey provider's endpoint for this volume, the on-host library/config paths, and an ordered list of host-side setup steps for the chosen engine.

3

Run the host-side steps

Follow the generated steps on the host — installing the DuoKey provider, then binding it into the engine (a LUKS keyslot, a Cryhod device selection, or a BitLocker key protector).

4

Verify unlock

Confirm the volume unlocks through the provider before removing any interim/local unlock method, then check the volume's status to confirm its KEK is bound and the vault is reachable.

LUKS setup​

StepWhat it does
Install the DuoKey PKCS#11 providerCopies the provider library onto the host and writes its configuration (server URL and access token).
Enroll the vault-held KEK into a LUKS keyslotBinds a new keyslot to the RSA KEK exposed by the provider, so the volume key becomes wrapped to the vault.
Register the token in the crypttabAdds a PKCS#11 token URI entry so the volume unlocks automatically at boot through the vault-held KEK.
Verify unlockConfirms the disk-encryption tooling can open the volume via the provider alone.
Enrolling and unlocking a LUKS volume
1. Register the volumeCreate the Disk Encryption app for the luks engine and register the volume (host id, device path)
enroll
2. Enroll the volumeDuoKey creates an RSA key-encryption-key in the vault and returns a PKCS#11 token URI and enrollment bundle
host-side setup
3. Bind the hostInstall the DuoKey PKCS#11 providerBind a LUKS keyslot via systemd-cryptenroll against the token URIRegister the token in /etc/crypttab
boot-time unlock
4. Unlock at bootcryptsetup asks the provider to unwrap the volume key; DuoKey RSA-OAEP-decrypts it inside the vault and the volume opens

The host never stores the KEK; systemd-cryptenroll and cryptsetup reach it through the DuoKey PKCS#11 provider at every unlock.

Cryhod setup​

StepWhat it does
Install the DuoKey PKCS#11 provider (Windows)Registers the provider and writes its configuration so Cryhod's encryption centre can enumerate the KEK.
Select the PKCS#11 device in the encryption centreChoose the 'key stored in a smart card or USB device (PKCS#11)' option and select the KEK by its configured tag.

BitLocker setup​

StepWhat it does
Expose the vault KEK as a CNG-KSP certificateInstalls the DuoKey Key Storage Provider and enrolls a smart-card certificate whose private key is the vault-held KEK.
Add the certificate as a key protectorBinds the volume's encryption key to the vault-held KEK via a certificate-based BitLocker key protector.

Rotating a volume's key​

Rotating a volume creates a new KEK (optionally at a different RSA strength or in a different vault) and re-binds the volume to it, returning a fresh enrollment bundle. The previous KEK is not reused after rotation; re-run the relevant host-side enrollment step so the engine picks up the new key.

BitLocker recovery-key escrow and recovery​

BitLocker volumes generate their own recovery protectors (a numerical recovery password, an external key file, or both) independently of the certificate-based key protector DuoKey enrolls. Losing access to both the vault-backed unlock path and a locally stored recovery key would leave a machine permanently locked, so Disk Encryption adds a dedicated, centralized escrow flow for these recovery protectors: instead of relying on a spreadsheet or a local printout, the recovery secret itself is wrapped with the volume's own vault-held KEK and stored centrally.

Recovery escrow is BitLocker-specific

Escrow, listing and recovery of protectors apply to BitLocker volumes. LUKS and Cryhod volumes do not use this flow.

BitLocker recovery-key escrow and recovery
1. Generate the recovery protectorBitLocker creates a numerical recovery password and/or external key on the host — independent of the vault-backed certificate protector
submit secret + type for escrow
2. Submit for escrowThe recovery secret, its type (recovery_password / external_key / numerical_password) and an optional label are sent to DuoKey
encrypt with the volume KEK
3. DuoKey wraps and stores itThe secret is encrypted with the volume's vault-held KEK before storage; the wrapped secret is never returned by listing
recover endpoint — permission gated
4. Admin requests recoveryAn authorized operator identifies the locked volume and its escrowed protector
unwrap inside the vault, audited
5. DuoKey unwraps and the machine unlocksThe vault-held KEK unwraps the secret; disclosure is recorded in the audit trail and the recovered value unlocks BitLocker at the recovery prompt

The recovery secret is wrapped by the same vault-held KEK as the primary unlock path, and every disclosure is recorded in the audit trail.

Escrowing a recovery key​

1

Generate the recovery protector on the host

Add a recovery protector to the volume using standard BitLocker tooling (a numerical recovery password, an external key, or both). This must happen after the volume's KEK has been enrolled.

2

Submit it for escrow

Send the recovery secret, its type (recovery_password, external_key, or numerical_password), an optional protector id/label, to DuoKey. The secret is encrypted with the volume's vault-held KEK before it is stored — DuoKey never persists it in the clear.

3

Confirm escrow

The escrowed protector then appears in the volume's protector list, identified by its type and label; the wrapped secret itself is never returned by the listing.

Recovering a locked machine​

1

Identify the locked volume and protector

Find the volume and the specific escrowed protector to use (a machine may have more than one escrowed protector over its lifetime).

2

Recover the secret

An operator with the appropriate permission requests recovery. DuoKey unwraps the protector's secret using the volume's vault-held KEK and returns it.

3

Unlock the machine

Enter the recovered recovery password (or supply the recovered external key) at the BitLocker recovery prompt to unlock the machine.

Recovery disclosure is audited

Recovering (disclosing) an escrowed protector is treated as a sensitive operation: it is recorded in the audit trail and activity feed against the requesting user, and the protector's last-recovered timestamp is updated. Restrict the permission to unwrap recovery protectors to operators who are authorized to handle disk recovery.

Prerequisites​

المتطلبات المسبقة

  • A DuoKey vault to hold the volume KEK (the tenant default software vault is used automatically if none is chosen)
  • Administrative access on the host to install the DuoKey provider (PKCS#11 or CNG-KSP)
  • For LUKS: a Linux host with cryptsetup / systemd-cryptenroll support
  • For Cryhod: Prim'X Cryhod already deployed on the Windows host
  • For BitLocker: BitLocker already enabled or ready to enable on the Windows host
Health and connectivity

Each volume exposes a status check that reports its enrollment state and whether the vault holding its KEK is currently reachable — use it before relying on a newly enrolled volume in production.