heads/patches
Thierry Laurion 0cef8e1edc cryptsetup2 toolstack version bump and script fixes to support multi-LUKS containers (BTRFS QubesOS 4.2)
cryptsetup2 2.6.1 is a new release that supports reencryption of Q4.2 release LUKS2 volumes created at installation.
 This is a critical feature for the Qubes OS 4.2 release for added data at rest protection

Cryptsetup 2.6.x internal changes:
 - Argon2 used externally and internally: requires a lot of RAM and CPU to derivate passphrase to key validated in key slots.
  - This is used to rate limit efficiently bruteforcing of LUKS key slots, requiring each offline brute force attempt to consume ~15-30 seconds per attempt
  - OF course, strong passphrases are still recommended, but bruteforcing LUKSv2 containers with Argon2 would require immense time, ram and CPU even to bruteforce low entropy passphrase/PINs.
 - passphrase change doesn't permit LUKS key slot specification anymore: key slot rotates (new one consusumed per op: then old one wiped internally. EG: LUKS key slot 1 created, then 0 deleted)
 - reencryption doesn't permit old call arguments. No more direct-io; inadmissively slow through AIO (async) calls, need workarounds for good enough perfs (arguments + newer kernel with cloudfare fixes in tree)

cryptsetup 2.6.1 requires:
 - lvm2 2.03.23, which is also included in this PR.
   - requires libaio, which is also included in this PR (could be hacked out but deep dependency at first sight: left in)
   - requires util-linux 2.39
 - patches for reproducible builds are included for above 3 packages.

luks-functions was updated to support the new cryptsetup2 version calls/changes
 - reencryption happen in direct-io, offline mode and without locking, requiring linux 5.10.9+ to bypass linux queues
   - from tests, this is best for performance and reliability in single-user mode
 - LUKS container ops now validate Disk Recovery Key (DRK) passphrase prior and DRK key slot prior of going forward if needed, failing early.
  - Heads don't expect DRK to be in static key slot anymore, and finds the DRK key slot dynamically.
  - If reencrytipn/passphrase change: make sure all LUKS containers on same block device can be unlocked with same DRK
 - Reencryption: requires to know which key slot to reencrypt.
   - Find LUKS key slot that unlocks with DRK passphrase unlock prior of reencrypt call
 - Passphrase change: no slot can be passed, but key slot of DRK rotates.

kexec-seal-key
 - TPM LUKS Disk Unlock Key key slots have changed to be set in max slots per LUKS version (LUKSv1:7 /LUKSv2: 31)
  - If key slot != default LUKS version's keyslot outside of DRK key slot: prompt the user before wiping that key slot, otherwise wipe automatically
    - This takes for granted that the DRK key slot alone is needed on the system and Heads controls the LUKS key slots.
      - If user has something else going on, ie: Using USB Security dongle + TPM DUK, then the user will need to say no when wiping keys.
      - It was suggested to leave LUKS key slots outside of DRK alone, but then: what to do when all key slots would be used?
        - Alternative implementation could be to only prompt users to wipe keyslots other then DRK when key slots are all used (LUKSv1: 0-7, LUKSv2: 0-31)
          - But then cleanup would need to happen prior of operations (LUKS passphrase change, TPM DUK setup) and could be problematic.
  - LUKS containers now checked to be same LUKS version prior of permitting to set TPM DUK and will refuse to go forward of different versions.

TODO:
- async (AIO) calls are not used. direct-io is used instead. libaio could be hacked out
  - this could be subject to future work

Notes:
- time to deprecated legacy boards the do not enough space for the new space requirements
 - x230-legacy, x230-legacy-flash, x230-hotp-legacy
 - t430-legacy, t430-legacy-flash, t430-hotp-legacy already deprecated

Unrelated:
- typos fixes found along the way

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
2024-10-30 14:18:20 -04:00
..
coreboot-4.11 coreboot-4.11: add fixes to KGPE-D16 raminit 2024-08-26 07:46:49 -04:00
coreboot-4.19 coreboot configs: changeset needed to use efifb 2023-08-16 09:39:09 -04:00
coreboot-4.22.01 patches/coreboot-4.22.01/0001-x230-fhd-variant.patch: adapt patch for Makefile.inc (Makefile.mk doesn't exist under 4.22) 2024-03-25 15:15:58 -04:00
coreboot-24.02.01 coreboot patches: remove lib/jpeg patches for heap increase and alloc failure. Add https://review.coreboot.org/c/coreboot/+/83895 2024-10-30 13:57:10 -04:00
coreboot-dasharo-unreleased patches/coreboot-dasharo-unreleased : keep track of patches per upsream dasharo+heads unreleased patches to apply on top of last release 2024-05-14 12:09:22 -04:00
coreboot-talos_2 coreboot-talos_2: Patch acpi-unix2 mirror to Intel 2023-07-11 15:03:36 -04:00
flashrom-b1f858f65b2abd276542650d8cb9e382da258967 Makefile: replace patch with git apply 2022-08-21 14:28:30 -04:00
linux-4.14.62 backport upstream patch for 4.14.62. Allows building on debian 12 2023-05-02 20:49:34 +01:00
linux-4.19.139 Support Multiple Kernel Options (#805) 2020-08-20 19:26:48 -04:00
linux-5.4.69 modules/linux: add support for building with kernel 5.4.69 (#854) 2020-10-25 01:26:08 -04:00
linux-5.5-openpower Remove hard coded paths in shebang lines 2024-05-02 13:00:22 -04:00
linux-5.10.214 Bump 5.10.5 kernel to 5.10.214 2024-10-30 14:18:20 -04:00
linux-6.1.8 modules/linux: Support building with Linux 6.1.8. 2023-06-21 13:26:49 -04:00
slang-2.3.3 modules/patches slang: bump to version 2.3.3 so we can disable termcap without hacking around 2024-05-02 13:02:55 -04:00
bash-5.1.16.patch patches/bash-5.1.16.patch: Do not increment build number 2023-04-27 11:49:22 -06:00
busybox-1.36.1.patch Add external/usb disk encryption (adds exfatprogs and e2fsprogs) 2023-08-28 16:23:48 -04:00
cryptsetup2-2.6.1.patch cryptsetup2 toolstack version bump and script fixes to support multi-LUKS containers (BTRFS QubesOS 4.2) 2024-10-30 14:18:20 -04:00
cryptsetup-1.7.3.patch make cryptsetup1/cryptsetup2 optional 2021-01-30 07:28:28 +02:00
dropbear-2016.74.patch fix patches to have the correct -p level 2017-09-20 14:26:07 -04:00
gpg2-2.4.0.patch Fix key to card failing with invalid time when moving keys to smartcard on master (Opt: Authenticated Heads) 2024-05-17 09:27:29 -04:00
gpg-1.4.21.patch force cross_compile=yes for gnupg (issue #299) 2018-01-20 16:56:53 -05:00
kexec-2.0.26.patch kexec-2.0.26.patch: report to user in non-debug context that unsupported fb/drm driver is needed on OS initrd 2023-07-07 15:33:02 -04:00
libassuan-2.5.5.patch Fix key to card failing with invalid time when moving keys to smartcard on master (Opt: Authenticated Heads) 2024-05-17 09:27:29 -04:00
libgcrypt-1.8.3.patch Fix key to card failing with invalid time when moving keys to smartcard on master (Opt: Authenticated Heads) 2024-05-17 09:27:29 -04:00
libgcrypt-1.10.1.patch libgcrypt: disconnect tests from the build 2023-06-27 11:39:56 -04:00
libgcrypt-1.10.2.patch modules/gpg2: Bump version 2.4.0 -> 2.4.2 2024-05-02 13:00:37 -04:00
libgpg-error-1.46.patch Fix key to card failing with invalid time when moving keys to smartcard on master (Opt: Authenticated Heads) 2024-05-17 09:27:29 -04:00
libksba-1.3.5.patch modules: maintain reproducibility by removing rpath 2020-01-16 09:36:42 -08:00
libksba-1.6.3.patch Fix key to card failing with invalid time when moving keys to smartcard on master (Opt: Authenticated Heads) 2024-05-17 09:27:29 -04:00
lvm2-2.02.168.patch lvm2: turn off buffering, which prevents segfault with new musl (#651) 2020-01-09 13:27:09 +01:00
lvm2-2.03.23.patch cryptsetup2 toolstack version bump and script fixes to support multi-LUKS containers (BTRFS QubesOS 4.2) 2024-10-30 14:18:20 -04:00
newt-0.52.20.patch newt(whiptail): fix code that was doing toupper of input 2023-10-11 15:47:53 -04:00
openssl-3.0.8.patch OpenSSL (libcrypto): patch so that crypto/buildinfo.h generated by perl script contains reproducible date and fake compiler_flags 2024-04-03 13:48:47 -04:00
pciutils-3.5.4.patch build the superiotool, which requires a hack on the pciutils lib/types.h file 2018-03-02 09:37:31 -05:00
powerpc-utils-1.3.5.patch modules/powerpc-utils: add 2023-06-07 01:10:13 +03:00
tpm2-tools-5.6.patch modules-tpm2-tools: bump from 5.2->5.6 (removes need to hack around PACKAGE_VERSION string which configure.ac points to ./VERSION already 2024-04-03 13:48:52 -04:00
tpm2-tss-3.2.2.patch modules/tpm2-tss: sed configure script to remove hardcoding of libs, move patch 3.2.0->3.2.2 2024-04-03 13:48:58 -04:00
util-linux-2.39.patch cryptsetup2 toolstack version bump and script fixes to support multi-LUKS containers (BTRFS QubesOS 4.2) 2024-10-30 14:18:20 -04:00