Anaconda/Features/Encrypted Boot IPA key Management

= Anaconda Encrypted Boot IPA key Management =

Summary
Provide enterprise-class key management support for encrypted devices

Owner

 * Name: Dave Lehman / Miloslav Trmač

Current status

 * Completed in Fedora 13: 75%
 * Last update 2010-11-05

Detailed Description
Add support for saving encryption keys (to recover access to a volume when the passphrase is forgotten, or when the user leaves a company), and for creating backup passphrases (to be disclosed to the user when the user forgets the passphrase and is on the road). See Key Management for general discussion, Disk encryption key escrow use cases for specifics.

Subtasks:
 * Add two or three small packages ( and , perhaps  ) to the installation image
 * Add two kickstart options (#508963) to pykickstart. The options specify an URL for a certificate (to use for encryption, implicitly enables key escrow) and a "create backup passphrase" flag.
 * Add anaconda support: Download the specified certificates, and use the functionality provided by the *volume_key* packages and to store encryption keys or passphrases under $rootPath/root. (#510545)
 * Add system-config-kickstart support for the new kickstart options; needs to integrate with other planned changes to the storage configuration GUI, blocked on those.
 * Add FirstAidKit support for recovering access to encrypted voluems using the stored encryption keys

Target Audience
Enterprise customers want a means by which they can guarantee access to the data on encrypted block devices in employees' systems. This way they still have a way in if the user changes the device's keys/passphrases.

Product Variants / High Level Use Cases
Relevant to desktops/laptops particularly, but depending upon implementation may be interesting for other products as well e.g. to support encrypted databases, medical records protection.

Hardware Architectures
All

Testing
TBD but should be integrated with anaconda storage testing

Third-Party Dependencies
Cryptsetup-luks, volume_key, perhaps python-nss, and anaconda interdependencies

Bugzilla Numbers

 * See Bug 458392 - [RFE] luks: add support for admin keyslot for the prereq from an anaconda POV
 * Note: The above description does not address the "admin keyslot" requirement. This remains an useful feature, does anybody own it?


 * Bug 488718 - (encrypted_LVM) Support for encrypted LVs in LVM2 & key management (tracker) for a description of work in progress
 * Bug 508960 - tracker for all key escrow work
 * Bug 508963 - Add key escrow options to pykickstart
 * Bug 510545 - (anaconda) RFE: encryption key escrow support
 * Bug 508967 - (system-config-kickstart) RFE: encryption key escrow support