Disk encryption key escrow use cases

From FedoraProject

Jump to: navigation, search

Contents

Change log

Key escrow

The escrow packet may be encrypted using a certificate's public key. The certificate is chosen by a system administrator: if using the RH system management server, this is the key escrow server's certificate; if using something else, the certificate's origin and other uses are site-specific.

Key escrow during installation

Key escrow after installation — without a system management server

volume_key --save /path/to/volume [-c /path/to/cert] [--create-random-passphrase passphrase-escrow-packet] -o main-escrow-packet
/path/to/volume is a LUKS device, not the plaintext device containted within: (blkid -s TYPE /path/to/volume) should report TYPE="crypto_LUKS"

Key escrow after installation — with a system management server

This is the same as above, except that when a system management client is set up, the client can automatically determine the correct certificate, and after the escrow packet is created, the client can automatically send it to the server. The system administrator uses the system management client to perform the operation instead of using volume_key directly.

Key recovery

Key recovery consists of two principal steps: making the escrow packet available to the client machine, and using it.

Making the packet available — without a system management server

volume_key --reencrypt [-d /path/to/nss/db] escrow-packet-in -o escrow-packet-out

Making the packet available — with a system management server

Restoring permanent access to a volume — manually

volume_key --restore /path/to/volume escrow-packet
/path/to/volume is a LUKS device, not the plaintext device containted within: (blkid -s TYPE /path/to/volume) should report TYPE="crypto_LUKS"
volume_key should support replacing a LUKS passphrase as well as adding it.

Restoring permanent access to a volume — using FirstAidKit

Gaining temporary access to a volume

This can be used when temporary access to the encrypted data is necessary, e.g. for forensic examination.

volume_key --setup-volume /path/to/volume escrow-packet tmp-volume-name
/path/to/volume is a LUKS device, not the plaintext device containted within: (blkid -s TYPE /path/to/volume) should report TYPE="crypto_LUKS"

Restoring access to a volume using a backup passphrase

This can be used if no technician is available locally and the above-described procedures are too complex, or if the user has no access to additional tools such as a rescue CD (e.g. on a business trip). It is possible only if --create-random-passphrase was used to generate and escrow the backup passphrase.

Restoring access to a volume using a backup passphrase — with a system management server

Restoring access to a volume using a backup passphrase — without a system management server

volume_key --secrets [-d /path/to/nss/db] escrow-packet
volume_key --save [-c /path/to/cert] [/path/to/escrow-packet-in] /path/to/volume --create-random-passphrase escrow-packet-out
/path/to/volume is a LUKS device, not the plaintext device containted within: (blkid -s TYPE /path/to/volume) should report TYPE="crypto_LUKS"

Replacing the data encryption key

(Requires underlying volume support for on-line re-encryption; this is planned for LVM.)

Replacing the data encryption key — without a system management server

volume-key --reencrypt-volume /path/to/volume [-c /path/to/cert] -o escrow-packet
/path/to/volume is a LUKS device, not the plaintext device containted within: (blkid -s TYPE /path/to/volume) should report TYPE="crypto_LUKS"

Replacing the data encryption key — with a system management server

The functionality is the same as above, but the operation can be initiated automatically by the management server (based on a defined policy) and the escrow server certificate can be automatically supplied by the management client. If access to the old key were not available automatically, the server could make a previous escrow packet available to the client, to let the client extract a volume key.