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 1, 2024
1 parent ca90744 commit 71a9479
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 @@ -39,6 +39,7 @@ UEFI
URI
Xubuntu
Zdev
ZFS
amd
authorized
autoinstall
Expand All @@ -50,6 +51,7 @@ bootloaders
codecs
config
conf
cryptsetup
curtin
dataset
decrypted
Expand All @@ -65,6 +67,7 @@ globbing
hostname
iSCSI
init
keystore
md
oem
openssh
Expand All @@ -90,6 +93,7 @@ traceback
tty
ubuntu
udev
unencrypted
unformatted
VLAN
webhook
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 71a9479

Please sign in to comment.