97 lines
4.2 KiB
Text
97 lines
4.2 KiB
Text
Cryptsetup 2.0.6 Release Notes
|
|
==============================
|
|
Stable bug-fix release.
|
|
All users of cryptsetup 2.0.x should upgrade to this version.
|
|
|
|
Cryptsetup 2.x version introduces a new on-disk LUKS2 format.
|
|
|
|
The legacy LUKS (referenced as LUKS1) will be fully supported
|
|
forever as well as a traditional and fully backward compatible format.
|
|
|
|
Please note that authenticated disk encryption, non-cryptographic
|
|
data integrity protection (dm-integrity), use of Argon2 Password-Based
|
|
Key Derivation Function and the LUKS2 on-disk format itself are new
|
|
features and can contain some bugs.
|
|
|
|
Please do not use LUKS2 without properly configured backup or in
|
|
production systems that need to be compatible with older systems.
|
|
|
|
Changes since version 2.0.5
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* Fix support of larger metadata areas in LUKS2 header.
|
|
|
|
This release properly supports all specified metadata areas, as documented
|
|
in LUKS2 format description (see docs/on-disk-format-luks2.pdf in archive).
|
|
|
|
Currently, only default metadata area size is used (in format or convert).
|
|
Later cryptsetup versions will allow increasing this metadata area size.
|
|
|
|
* If AEAD (authenticated encryption) is used, cryptsetup now tries to check
|
|
if the requested AEAD algorithm with specified key size is available
|
|
in kernel crypto API.
|
|
This change avoids formatting a device that cannot be later activated.
|
|
|
|
For this function, the kernel must be compiled with the
|
|
CONFIG_CRYPTO_USER_API_AEAD option enabled.
|
|
Note that kernel user crypto API options (CONFIG_CRYPTO_USER_API and
|
|
CONFIG_CRYPTO_USER_API_SKCIPHER) are already mandatory for LUKS2.
|
|
|
|
* Fix setting of integrity no-journal flag.
|
|
Now you can store this flag to metadata using --persistent option.
|
|
|
|
* Fix cryptsetup-reencrypt to not keep temporary reencryption headers
|
|
if interrupted during initial password prompt.
|
|
|
|
* Adds early check to plain and LUKS2 formats to disallow device format
|
|
if device size is not aligned to requested sector size.
|
|
Previously it was possible, and the device was rejected to activate by
|
|
kernel later.
|
|
|
|
* Fix checking of hash algorithms availability for PBKDF early.
|
|
Previously LUKS2 format allowed non-existent hash algorithm with
|
|
invalid keyslot preventing the device from activation.
|
|
|
|
* Allow Adiantum cipher construction (a non-authenticated length-preserving
|
|
fast encryption scheme), so it can be used both for data encryption and
|
|
keyslot encryption in LUKS1/2 devices.
|
|
|
|
For benchmark, use:
|
|
# cryptsetup benchmark -c xchacha12,aes-adiantum
|
|
# cryptsetup benchmark -c xchacha20,aes-adiantum
|
|
|
|
For LUKS format:
|
|
# cryptsetup luksFormat -c xchacha20,aes-adiantum-plain64 -s 256 <device>
|
|
|
|
The support for Adiantum will be merged in Linux kernel 4.21.
|
|
For more info see the paper https://eprint.iacr.org/2018/720.
|
|
|
|
Unfinished things & TODO for next releases
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
* Authenticated encryption should use new algorithms from CAESAR competition
|
|
https://competitions.cr.yp.to/caesar-submissions.html.
|
|
AEGIS and MORUS are already available in kernel 4.18.
|
|
|
|
For more info about LUKS2 authenticated encryption, please see our paper
|
|
https://arxiv.org/abs/1807.00309
|
|
|
|
Please note that authenticated encryption is still an experimental feature
|
|
and can have performance problems for high-speed devices and device
|
|
with larger IO blocks (like RAID).
|
|
|
|
* Authenticated encryption do not set encryption for a dm-integrity journal.
|
|
|
|
While it does not influence data confidentiality or integrity protection,
|
|
an attacker can get some more information from data journal or cause that
|
|
system will corrupt sectors after journal replay. (That corruption will be
|
|
detected though.)
|
|
|
|
* There are examples of user-defined tokens inside misc/luks2_keyslot_example
|
|
directory (like a simple external program that uses libssh to unlock LUKS2
|
|
using remote keyfile).
|
|
|
|
* The python binding (pycryptsetup) contains only basic functionality for LUKS1
|
|
(it is not updated for new features) and will be REMOVED in version 2.1
|
|
in favor of python bindings to the libblockdev library.
|
|
See https://github.com/storaged-project/libblockdev/releases that
|
|
already supports LUKS2 and VeraCrypt devices handling through libcryptsetup.
|