April 15, 2014, 9:28 AM — The source code of TrueCrypt, a popular disk encryption tool, is not the most polished work of programming, but it has no critical flaws or intentional backdoors, security testers concluded in a report released Monday.
The professional code review was performed during January and February by security engineers from iSEC Partners, a subsidiary of information assurance company NCC Group, and was the first phase of a crowd-funded audit project that aims to thoroughly test TrueCrypt for code vulnerabilities and cryptographic weaknesses.
The iSEC auditors analyzed only select parts of the TrueCrypt 7.1a source code: the Windows kernel code, the bootloader, the filesystem driver and other code areas related to those important components.
The company didn't find any high-severity issues during the review and concluded that there was "no evidence of backdoors or intentional flaws." Some security vulnerabilities were identified, but they appeared to be accidental and did not present "immediate exploitation vectors," the auditors said in a summary of their findings.
Eleven vulnerabilities were found in total, four of them of medium severity, four of low severity, and three rated as informational.
Only one of the flaws was directly related to cryptographic implementations and stems from the use of PBKDF2, a standard key derivation algorithm, with a low iteration count.
"Developers are responsible for specifying an iteration count that influences the computational cost of deriving a key from a password," the iSEC auditors wrote in the full technical report. "The iteration count used by TrueCrypt is either 1000 or 2000, depending on the hash function and use case. In both cases, this iteration count is too small to prevent password guessing attacks for even moderately complex passwords."
The auditors recommended that TrueCrypt's developers should make the PBKDF2 iteration count configurable to keep pace with advances in CPU and GPU performance that improve the feasibility of brute-force attacks or, in the longer term, switch to a different key derivation function called Scrypt that uses larger amounts of memory and requires more expensive hardware to attack via brute-force techniques.
There's also room for improvement beyond resolving the identified issues. From a quality perspective, the source code for both the TrueCrypt bootloader and Windows kernel driver failed to meet expected standards for secure code, the iSEC auditors said in the report. "This includes issues such as lack of comments, use of insecure or deprecated functions, inconsistent variable types and so forth."