VeraCrypt
Developer(s) | IDRIX (based in Paris, France)[1] |
---|---|
Initial release | June 22, 2013 |
Stable release | 1.26.15 (September 2, 2024[2]) [±] |
Repository | |
Written in | C, C++, Assembly |
Operating system |
|
Platform | IA-32 and x64 |
Available in | 37 languages[3] |
Type | Disk encryption software |
License | |
Website | www |
VeraCrypt is a source-available freeware utility used for on-the-fly encryption (OTFE).[5] It can create a virtual encrypted disk within a file or encrypt a partition[6] or (in Windows) the entire storage device with pre-boot authentication.[7]
VeraCrypt is a fork of the discontinued TrueCrypt project.[8] It was initially released on 22 June 2013. Many security improvements have been implemented and issues raised by TrueCrypt code audits have been fixed. VeraCrypt includes optimized implementations of cryptographic hash functions and ciphers which boost performance on modern CPUs.
License and source model
VeraCrypt inherited a substantial amount of code from its predecessor TrueCrypt, and also inherited the source-available TrueCrypt License for those files. This license is not one of many widely used open-source licenses and is not a free software license according to the Free Software Foundation (FSF) license list, as it contains distribution and copyright-liability restrictions.[9]
New parts of VeraCrypt have been licensed under the Apache License 2.0 since version 1.19.[4]
Encryption scheme
Algorithms
Individual ciphers supported by VeraCrypt are AES, Serpent, Twofish, Camellia, and Kuznyechik. The Magma cipher was removed in version 1.19 in response to a security audit.[10] Additionally, ten different combinations of cascaded algorithms are available: AES–Twofish, AES–Twofish–Serpent, Camellia–Kuznyechik, Camellia–Serpent, Kuznyechik–AES, Kuznyechik–Serpent–Camellia, Kuznyechik–Twofish, Serpent–AES, Serpent–Twofish–AES, and Twofish–Serpent.[11] The cryptographic hash functions available for use in VeraCrypt are RIPEMD-160, SHA-256, SHA-512, Streebog and Whirlpool.[12]
Modes of operation
VeraCrypt uses the XTS mode of operation.[13]
Keys
The header key and the secondary header key (XTS mode) are generated using PBKDF2 with a 512-bit salt and 200,000 to 655,331 iterations used by default (which could be customized by user to start as low as 2,048), depending on the underlying hash function used.[14]
Plausible deniability
As with its predecessor TrueCrypt, VeraCrypt supports plausible deniability[15] by allowing a single "hidden volume" to be created within another volume.[16] In addition, the Windows versions of VeraCrypt have the ability to create and run a hidden encrypted operating system whose existence may be denied.[17]
The VeraCrypt documentation lists many ways in which VeraCrypt's hidden volume deniability features may be compromised (e.g. by third-party software which may leak information through temporary files, thumbnails, etc., to unencrypted disks) and possible ways to avoid this.[18]
Performance
VeraCrypt supports parallelized[19]: 63 encryption for multi-core systems and, under Microsoft Windows, pipelined read and write operations (a form of asynchronous processing)[19]: 63 to reduce the performance hit of encryption and decryption. On processors supporting the AES-NI instruction set, VeraCrypt supports hardware-accelerated AES to further improve performance.[19]: 64 On 64-bit CPUs VeraCrypt uses optimized assembly implementation of Twofish and Camellia.[20]
Security improvements
- The VeraCrypt development team considered the TrueCrypt storage format too vulnerable to a National Security Agency (NSA) attack, so it created a new format incompatible with that of TrueCrypt. This is one of the main differences between VeraCrypt and its competitor CipherShed, which continues to use the TrueCrypt format. VeraCrypt is still capable of opening and converting volumes in the TrueCrypt format.[20][21]
- An independent security audit of TrueCrypt released 29 September 2015 found TrueCrypt includes two vulnerabilities in the Windows installation driver allowing an attacker arbitrary code execution and privilege escalation via DLL hijacking.[22] This was fixed in VeraCrypt in January 2016.[23]
- While TrueCrypt uses 1,000 iterations of the PBKDF2-RIPEMD160 algorithm for system partitions, VeraCrypt uses either 200,000 or 327,661 iterations by default (which is customizable by user to be as low as 2,048), depending on the algorithm used.[14] For standard containers and other partitions, VeraCrypt uses 655,331 iterations of RIPEMD160 and 500,000 iterations of SHA-2 and Whirlpool by default (which is customizable by user to be as low as 16,000).[14] While these default settings make VeraCrypt slower at opening encrypted partitions, it also makes password-guessing attacks slower.[24]
- Additionally, since version 1.12, a new feature called "Personal Iterations Multiplier" (PIM) provides a parameter whose value is used to control the number of iterations used by the header key derivation function, thereby making brute-force attacks potentially even more difficult. Veracrypt out of the box uses a reasonable PIM value to improve security,[25] but users can provide higher value to enhance security. The primary downside of this feature is that it makes the process of opening encrypted archives even slower.[25][26][27][28]
- A vulnerability in the bootloader was fixed on Windows and various optimizations were made as well. The developers added support for SHA-256 to the system boot encryption option and also fixed a ShellExecute security issue. Linux and macOS users benefit from support for hard drives with sector sizes larger than 512. Linux also received support for the NTFS formatting of volumes.
- Unicode passwords are supported on all operating systems since version 1.17 (except for system encryption on Windows).[20]
- VeraCrypt added the capability to boot system partitions using UEFI in version 1.18a.[20]
- Option to enable/disable support for the TRIM command for both system and non-system drives was added in version 1.22.[20]
- Erasing the system encryption keys from RAM during shutdown/reboot helps mitigate some cold boot attacks, added in version 1.24.[20]
- RAM encryption for keys and passwords on 64-bit systems was added in version 1.24.[20]
VeraCrypt audit
An audit of version 1.18 was conducted by QuarksLab on behalf of the Open Source Technology Improvement Fund (OSTIF), which took 32 man-days and was published on 17 October 2016.[20][29][30] The major vulnerabilities identified in this audit were resolved in version 1.19, released the same day.[31]
Security precautions
There are several kinds of attacks that all software-based disk encryption is vulnerable to. As with TrueCrypt, the VeraCrypt documentation instructs users to follow various security precautions to mitigate these attacks,[18][32] several of which are detailed below.
Encryption keys stored in memory
VeraCrypt stores its keys in RAM; on some personal computers DRAM will maintain its contents for several seconds after power is cut (or longer if the temperature is lowered). Even if there is some degradation in the memory contents, various algorithms may be able to recover the keys. This method, known as a cold boot attack (which would apply in particular to a notebook computer obtained while in power-on, suspended, or screen-locked mode), was successfully used to attack a file system protected by TrueCrypt versions 4.3a and 5.0a in 2008.[33] With version 1.24, VeraCrypt added the option of encrypting the in-RAM keys and passwords on 64-bit Windows systems, with a CPU overhead of less than 10%, and the option of erasing all encryption keys from memory when a new device is connected.[20]
Physical security
VeraCrypt documentation states that VeraCrypt is unable to secure data on a computer if an attacker physically accessed it and VeraCrypt is then used on the compromised computer by the user again. This does not affect the common case of a stolen, lost, or confiscated computer.[34] The attacker having physical access to a computer can, for example, install a hardware or a software keylogger, a bus-mastering device capturing memory or install any other malicious hardware or software, allowing the attacker to capture unencrypted data (including encryption keys and passwords) or to decrypt encrypted data using captured passwords or encryption keys. Therefore, physical security is a basic premise of a secure system. Attacks such as this are often called "evil maid attacks".[35]
Malware
Some kinds of malware are designed to log keystrokes, including typed passwords, that may then be sent to the attacker over the Internet or saved to an unencrypted local drive from which the attacker might be able to read it later, when they gain physical access to the computer.[36]
Trusted Platform Module
The FAQ section of the VeraCrypt website[37] states that the Trusted Platform Module (TPM) cannot be relied upon for security, because if the attacker has physical or administrative access to a computer and it is used afterwards, the computer could have been modified by the attacker: e.g. a malicious component – such as a hardware keystroke logger – could have been used to capture the password or other sensitive information. Since the TPM does not prevent an attacker from maliciously modifying the computer, VeraCrypt does not and will not support TPM.
See also
References
- ^ "Contact Us – IDRIX". Retrieved 16 November 2016.
- ^ "Release Notes". September 2, 2024. Retrieved September 15, 2024.
- ^ "VeraCrypt 1.0f Bundle (All files and their signatures)". IDRIX. Retrieved 2015-01-04.
- ^ a b "root/License.txt". VeraCrypt. TrueCrypt Foundation. 17 Oct 2016. Retrieved 23 Jul 2018.
- ^ "VeraCrypt Official Site"
- ^ "VeraCrypt Volume". VeraCrypt Official Website. Retrieved February 16, 2015.
- ^ "Operating Systems Supported for System Encryption". VeraCrypt Official Website. Retrieved February 16, 2015.
- ^ Rubens, Paul (October 13, 2014). "VeraCrypt a Worthy TrueCrypt Alternative". eSecurity Planet. Quinstreet Enterprise. Archived from the original on December 3, 2018. Retrieved February 16, 2015.
- ^ Phipps, Simon (2013-11-15), "TrueCrypt or false? Would-be open source project must clean up its act", InfoWorld, archived from the original on 2019-03-22, retrieved 2014-05-20
- ^ Pauli, Darren (October 18, 2016). "Audit sees VeraCrypt kill critical password recovery, cipher flaws". The Register. Archived from the original on November 15, 2018.
- ^ "Encryption Algorithms". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ "Hash Algorithms". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ "Modes of Operation". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ a b c "Header Key Derivation, Salt, and Iteration Count". VeraCrypt Documentation. IDRIX. Retrieved 2019-02-19.
- ^ "Plausible Deniability". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ "Hidden Volume". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ a b "Security Requirements and Precautions Pertaining to Hidden Volumes". VeraCrypt Documentation. IDRIX. Retrieved 2018-03-31.
- ^ a b c "VeraCrypt User Guide" (1.0f ed.). IDRIX. 2015-01-04.
- ^ a b c d e f g h i "VeraCrypt Release Notes"
- ^ Castle, Alex (March 2015). "Where Are We At With TrueCrypt?". Maximum PC. p. 59.
- ^ Constantin, Lucian (September 29, 2015). "Newly found TrueCrypt flaw allows full system compromise". PCWorld. Archived from the original on April 19, 2019.
- ^ CVE-2016-1281: TrueCrypt and VeraCrypt Windows installers allow arbitrary code execution with elevation of privilege
- ^ Rubens, Paul (June 30, 2016). "VeraCrypt a worthy TrueCrypt Alternative". eSecurity Planet. Archived from the original on December 3, 2018.
- ^ a b "PIM". veracrypt.fr. Retrieved 7 June 2017.
- ^ Khandelwal, Swati (11 August 2015). "Encryption Software VeraCrypt 1.12 Adds New PIM Feature To Boost Password Security". The Hacker News. Archived from the original on 10 April 2019. Retrieved 5 June 2017.
- ^ Brinkmann, Martin (7 August 2015). "TrueCrypt alternative VeraCrypt 1.12 ships with interesting PIM feature". Ghacks. Archived from the original on 10 April 2019. Retrieved 5 June 2017.
- ^ "Transcript of Episode #582". GRC.com. Retrieved 5 June 2017.
- ^ "The VeraCrypt Audit Results". OSTIF. October 17, 2016. Archived from the original on May 12, 2019. Retrieved October 18, 2016.
- ^ QuarksLab (October 17, 2016). VeraCrypt 1.18 Security Assessment (PDF) (Report). OSTIF. Archived (PDF) from the original on August 7, 2018. Retrieved October 18, 2016.
- ^ Bédrune, Jean-Baptiste; Videau, Marion (October 17, 2016). "Security Assessment of VeraCrypt: fixes and evolutions from TrueCrypt". QuarksLab. Archived from the original on May 7, 2019. Retrieved October 18, 2016.
- ^ "Security Requirements and Precautions". VeraCrypt Documentation. IDRIX. Retrieved February 16, 2015.
- ^ Halderman, J. Alex; et al. (July 2008). Lest We Remember: Cold Boot Attacks on Encryption Keys (PDF). 17th USENIX Security Symposium. Archived (PDF) from the original on May 12, 2019.
- ^ "Physical Security". VeraCrypt Documentation. IDRIX. 2015-01-04. Retrieved 2015-01-04.
- ^ Schneier, Bruce (October 23, 2009). ""Evil Maid" Attacks on Encrypted Hard Drives". Schneier on Security. Archived from the original on May 25, 2014. Retrieved May 24, 2014.
- ^ "Malware". VeraCrypt Documentation. IDRIX. 2015-01-04. Retrieved 2015-01-04.
- ^ "Frequently Asked Questions – "Some encryption programs use TPM to prevent attacks. Will VeraCrypt use it too?"". Retrieved 2018-05-05.