Skip to content

Commit

Permalink
doc: add details on ZFS and LVM encryption
Browse files Browse the repository at this point in the history
  • Loading branch information
dbungert committed Oct 3, 2024
1 parent 9ae827b commit 8be5e57
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doc/.custom_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ UEFI
URI
Xubuntu
Zdev
ZFS
amd
authorized
autoinstall
Expand All @@ -53,6 +54,7 @@ bootloaders
codecs
config
conf
cryptsetup
curtin
dataset
datasource
Expand All @@ -69,6 +71,7 @@ globbing
hostname
iSCSI
init
keystore
md
oem
openssh
Expand All @@ -95,6 +98,7 @@ traceback
tty
ubuntu
udev
unencrypted
unformatted
validator
VLAN
Expand Down
35 changes: 35 additions & 0 deletions doc/explanation/security-overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,38 @@ system. Security updates are always applied, if the installer has network
access to the Ubuntu archive. Optionally, non-security updates can be
configured to be applied before first boot when using ``autoinstall``
:ref:`ai-updates` with the value ``all``.


Details on Encrypted installations
----------------------------------

LVM
^^^

To implement full disk encryption in the style referred to as "LVM", 3
partitions are created:

1. A bootloader partition
2. An ``ext4`` partition mounted at ``/boot``
3. A partition used as the :manualpage:`cryptsetup(8) <man5/keyboard.5.html>`
device. The resulting LUKS encrypted block device is then used as the LVM
Volume Group physical device, and the rootfs is created in a logical volume.

The configured passphrase is then used to unlock the LUKS encrypted device.

Note that while the term "full disk encryption" is used, ``/boot`` and any data
on the bootloader partition remain unencrypted in this scheme.

ZFS
^^^

ZFS disk encryption in Subiquity and Ubuntu-desktop-installer is a hybrid of
LUKS and ZFS encryption approaches. In addition to the required bootloader
partition, two pools ``bpool`` and ``rpool`` are created.

* A LUKS device is created as a ZFS dataset in the ``rpool``.
* The configured passphrase is used to encrypt the LUKS device.
* The real key for the ZFS dataset is contained in the "keystore" LUKS device
as a simple file.
* The ``rpool`` is decrypted using this simple file inside the encrypted LUKS
device.

0 comments on commit 8be5e57

Please sign in to comment.