Cryptsetup 1.7.0 Release Notes ============================== The cryptsetup 1.7 release changes defaults for LUKS, there are no API changes. Changes since version 1.6.8 * Default hash function is now SHA256 (used in key derivation function and anti-forensic splitter). Note that replacing SHA1 with SHA256 is not for security reasons. (LUKS does not have problems even if collisions are found for SHA1, for details see FAQ item 5.20). Using SHA256 as default is mainly to prevent compatibility problems on hardened systems where SHA1 is already be phased out. Note that all checks (kernel crypto API availability check) now uses SHA256 as well. * Default iteration time for PBKDF2 is now 2 seconds. Increasing iteration time is in combination with PBKDF2 benchmark fixes a try to keep PBKDF2 iteration count still high enough and also still acceptable for users. N.B. Long term is to replace PBKDF2 algorithm with Password Hashing Competition winner - Argon2. Distributions can still change these defaults in compilation time. You can change iteration time and used hash function in existing LUKS header with cryptsetup-reencrypt utility even without full reencryption of device (see --keep-key option). * Fix PBKDF2 iteration benchmark for longer key sizes. The previous PBKDF2 benchmark code did not take into account output key length properly. For SHA1 (with 160-bits output) and 256-bit keys (and longer) it means that the final iteration value was higher than it should be. For other hash algorithms (like SHA256 or SHA512) it caused that iteration count was lower (in comparison to SHA1) than expected for the requested time period. The PBKDF2 benchmark code is now fixed to use the key size for the formatted device (or default LUKS key size if running in informational benchmark mode). Thanks to A.Visconti, S.Bossi, A.Calo and H.Ragab (http://www.club.di.unimi.it/) for point this out. (Based on "What users should know about Full Disk Encryption based on LUKS" paper to be presented on CANS2015). * Remove experimental warning for reencrypt tool. The strong request for full backup before using reencryption utility still applies :) * Add optional libpasswdqc support for new LUKS passwords. If password is entered through terminal (no keyfile specified) and cryptsetup is compiled with --enable-passwdqc[=/etc/passwdqc.conf], configured system passwdqc settings are used to check password quality. * Update FAQ document. Cryptsetup API NOTE: Direct terminal handling and password calling callback for passphrase entry will be removed from libcryptsetup in next major (2.x) version (application should handle it itself). It means that application have to always provide password in API calls. Functions returning last error will be removed in next major version (2.x). These functions did not work properly for early initialization errors and application can implement better function easily using own error callback. See comments in libcryptsetup.h for more info about deprecated functions.