"Fossies" - the Fresh Open Source Software Archive

Member "cryptsetup-2.4.3/docs/v2.0.3-ReleaseNotes" (24 Jul 2021, 5336 Bytes) of package /linux/misc/cryptsetup-2.4.3.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 Cryptsetup 2.0.3 Release Notes
    2 ==============================
    3 Stable bug-fix release with new features.
    4 
    5 Cryptsetup 2.x version introduces a new on-disk LUKS2 format.
    6 
    7 The legacy LUKS (referenced as LUKS1) will be fully supported
    8 forever as well as a traditional and fully backward compatible format.
    9 
   10 Please note that authenticated disk encryption, non-cryptographic
   11 data integrity protection (dm-integrity), use of Argon2 Password-Based
   12 Key Derivation Function and the LUKS2 on-disk format itself are new
   13 features and can contain some bugs.
   14 
   15 To provide all security features of authenticated encryption, we need
   16 a better nonce-reuse resistant algorithm in the kernel (see note below).
   17 For now, please use authenticated encryption as an experimental feature.
   18 
   19 Please do not use LUKS2 without properly configured backup or in
   20 production systems that need to be compatible with older systems.
   21 
   22 Changes since version 2.0.2
   23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   24 
   25 * Expose interface to unbound LUKS2 keyslots.
   26   Unbound LUKS2 keyslot allows storing a key material that is independent
   27   of master volume key (it is not bound to encrypted data segment).
   28 
   29 * New API extensions for unbound keyslots (LUKS2 only)
   30   crypt_keyslot_get_key_size() and crypt_volume_key_get()
   31   These functions allow to get key and key size for unbound keyslots.
   32 
   33 * New enum value CRYPT_SLOT_UNBOUND for keyslot status (LUKS2 only).
   34 
   35 * Add --unbound keyslot option to the cryptsetup luksAddKey command.
   36 
   37 * Add crypt_get_active_integrity_failures() call to get integrity
   38   failure count for dm-integrity devices.
   39 
   40 * Add crypt_get_pbkdf_default() function to get per-type PBKDF default
   41   setting.
   42 
   43 * Add new flag to crypt_keyslot_add_by_key() to force update device
   44   volume key. This call is mainly intended for a wrapped key change.
   45 
   46 * Allow volume key store in a file with cryptsetup.
   47   The --dump-master-key together with --master-key-file allows cryptsetup
   48   to store the binary volume key to a file instead of standard output.
   49 
   50 * Add support detached header for cryptsetup-reencrypt command.
   51 
   52 * Fix VeraCrypt PIM handling - use proper iterations count formula
   53   for PBKDF2-SHA512 and PBKDF2-Whirlpool used in system volumes.
   54 
   55 * Fix cryptsetup tcryptDump for VeraCrypt PIM (support --veracrypt-pim).
   56 
   57 * Add --with-default-luks-format configure time option.
   58   (Option to override default LUKS format version.)
   59 
   60 * Fix LUKS version conversion for detached (and trimmed) LUKS headers.
   61 
   62 * Add luksConvertKey cryptsetup command that converts specific keyslot
   63   from one PBKDF to another.
   64 
   65 * Do not allow conversion to LUKS2 if LUKSMETA (external tool metadata)
   66   header is detected.
   67 
   68 * More cleanup and hardening of LUKS2 keyslot specific validation options.
   69   Add more checks for cipher validity before writing metadata on-disk.
   70 
   71 * Do not allow LUKS1 version downconversion if the header contains tokens.
   72 
   73 * Add "paes" family ciphers (AES wrapped key scheme for mainframes)
   74   to allowed ciphers.
   75   Specific wrapped ley configuration logic must be done by 3rd party tool,
   76   LUKS2 stores only keyslot material and allow activation of the device.
   77 
   78 * Add support for --check-at-most-once option (kernel 4.17) to veritysetup.
   79   This flag can be dangerous; if you can control underlying device
   80   (you can change its content after it was verified) it will no longer
   81   prevent reading tampered data and also it does not prevent silent
   82   data corruptions that appear after the block was once read.
   83 
   84 * Fix return code (EPERM instead of EINVAL) and retry count for bad
   85   passphrase on non-tty input.
   86 
   87 * Enable support for FEC decoding in veritysetup to check dm-verity devices
   88   with additional Reed-Solomon code in userspace (verify command).
   89 
   90 Unfinished things & TODO for next releases
   91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   92 * There will be better documentation and examples (planned for 2.0.4).
   93 
   94 * There will be some more formal definition of the threat model for integrity
   95   protection. (And a link to some papers discussing integrity protection,
   96   once it is, hopefully, accepted and published.)
   97 
   98 * Authenticated encryption will use new algorithms from CAESAR competition
   99   https://competitions.cr.yp.to/caesar-submissions.html.
  100   We plan to use AEGIS and MORUS, as CAESAR finalists.
  101 
  102   NOTE: Currently available authenticated modes (GCM, Chacha20-poly1305)
  103   in the kernel have too small 96-bit nonces that are problematic with
  104   randomly generated IVs (the collision probability is not negligible).
  105 
  106 * Authenticated encryption do not set encryption for a dm-integrity journal.
  107 
  108   While it does not influence data confidentiality or integrity protection,
  109   an attacker can get some more information from data journal or cause that
  110   system will corrupt sectors after journal replay. (That corruption will be
  111   detected though.)
  112 
  113 * There are examples of user-defined tokens inside misc/luks2_keyslot_example
  114   directory (like a simple external program that uses libssh to unlock LUKS2
  115   using remote keyfile).
  116 
  117 * The python binding (pycryptsetup) contains only basic functionality for LUKS1
  118   (it is not updated for new features) and will be REMOVED in version 2.1
  119   in favor of python bindings to the libblockdev library.
  120   See https://github.com/storaged-project/libblockdev/releases/tag/2.17-1 that
  121   already supports LUKS2 and VeraCrypt devices handling through libcryptsetup.