TrueCrypt: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
not "open source" under OSI terms, more available source
Reverted 1 edit by Richard W.M. Jones (talk): You are allowed to modify the source and redistribute it as your own product, including for commercial purposes. This makes...
Line 13: Line 13:
| website = [http://www.truecrypt.org/ www.truecrypt.org]
| website = [http://www.truecrypt.org/ www.truecrypt.org]
}}
}}
'''TrueCrypt''' is a [[software application]] used for [[on-the-fly encryption]] (OTFE). It is free (in terms of cost and commercial usage) and the source is available. It can create a virtual encrypted disk within a file or encrypt a [[Disk partitioning|partition]] or (under [[MS Windows]] except [[Windows 2000]]) the entire [[Data storage device|storage device]] ([[pre-boot authentication]]).
'''TrueCrypt''' is a [[software application]] used for [[on-the-fly encryption]] (OTFE). It is free (in terms of cost and commercial usage) and open source. It can create a virtual encrypted disk within a file or encrypt a [[Disk partitioning|partition]] or (under [[MS Windows]] except [[Windows 2000]]) the entire [[Data storage device|storage device]] ([[pre-boot authentication]]).


== Operating systems ==
== Operating systems ==

Revision as of 22:52, 8 October 2011

TrueCrypt
Developer(s)TrueCrypt Foundation
Stable release
7.1 / September 1, 2011 (2011-09-01)
Written inC, C++, Assembly
Operating systemCross-platform - Windows, Mac OS, Linux, DragonFly BSD [1] using the tcplay implementation
Available in30 languages
(although most are incomplete translations)
TypeDisk encryption software
LicenseSource available (TrueCrypt License)
Websitewww.truecrypt.org

TrueCrypt is a software application used for on-the-fly encryption (OTFE). It is free (in terms of cost and commercial usage) and open source. It can create a virtual encrypted disk within a file or encrypt a partition or (under MS Windows except Windows 2000) the entire storage device (pre-boot authentication).

Operating systems

TrueCrypt supports Microsoft Windows, Mac OS X, and Linux operating systems[2] (using FUSE). Both 32-bit and 64-bit versions of these operating systems are supported, except for Windows IA-64 (not supported) and Mac OS X 10.6 Snow Leopard (runs as a 32-bit process).[2] The version for Windows 7, Windows Vista, or Windows XP can encrypt the boot partition or entire boot drive.[3] There is an independent, compatible implementation, tcplay, for DragonFly BSD[1].

Cryptographic algorithms

Individual algorithms supported by TrueCrypt are AES, Serpent, and Twofish. Additionally, five different combinations of cascaded algorithms are available: AES-Twofish, AES-Twofish-Serpent, Serpent-AES, Serpent-Twofish-AES and Twofish-Serpent. The cryptographic hash functions used by TrueCrypt are RIPEMD-160, SHA-512, and Whirlpool.

Modes of operation

TrueCrypt currently uses the XTS mode of operation. Prior to this, TrueCrypt used LRW mode in versions 4.1 through 4.3a, and CBC mode in versions 4.0 and earlier.[4] XTS mode is thought to be more secure than LRW mode, which in turn is more secure than CBC mode.[5]

Although new volumes can only be created in XTS mode, TrueCrypt is backward compatible with older volumes using LRW mode and CBC mode.[4] Later versions produce a security warning when mounting CBC mode volumes and recommend that they be replaced with new volumes in XTS mode.

Performance

TrueCrypt supports parallelized[6] encryption for multi-core systems and, under Microsoft Windows, pipelined read/write operations (a form of asynchronous processing)[7] to reduce the performance hit of encryption and decryption. On some Intel processors, TrueCrypt supports hardware-accelerated AES to further improve performance.[8] The performance impact of disk encryption is especially noticeable on operations which would normally use Direct Memory Access (DMA), as all data must pass through the CPU for decryption, rather than being copied directly from disk to RAM.

In a test carried out by Tom's Hardware, although TrueCrypt is slower compared to an unencrypted disk, the overhead of real-time encryption was found to be similar regardless of whether mid-range or state-of-the-art hardware is in use, and this impact was "quite acceptable".[9] In another article the performance cost was found to be unnoticeable when working with "popular desktop applications in a reasonable manner", but it was noted that "power users will complain".[10]

Security concerns

TrueCrypt is vulnerable to various known attacks. To prevent them, the documentation distributed with TrueCrypt requires users to follow various security precautions.[11] Some of those attacks are detailed below.

Plausible deniability

TrueCrypt supports a concept called plausible deniability,[12] by allowing a single "hidden volume" to be created within another volume.[13] In addition, the Windows versions of TrueCrypt have the ability to create and run a hidden encrypted operating system whose existence may be denied.[14]

The TrueCrypt documentation lists many ways in which TrueCrypt'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.[15] In a paper published in 2008 and focused on the then latest version (v5.1a) and its plausible deniability, a team of security researchers led by Bruce Schneier states that Windows Vista, Microsoft Word, Google Desktop, and others store information on unencrypted disks, which might compromise TrueCrypt's plausible deniability. The study suggested the addition of a hidden operating system functionality; this feature was added in TrueCrypt 6.0. When a hidden operating system is running, TrueCrypt also makes local unencrypted filesystems and non-hidden TrueCrypt volumes read-only to prevent data leaks.[16] The security of TrueCrypt's implementation of this feature was not evaluated because the first version of TrueCrypt with this option had only recently been released.[17]

Identifying TrueCrypt volumes

TrueCrypt volumes do not contain known file headers and their content is indistinguishable from random data, so while it is theoretically impossible to prove that certain files are TrueCrypt volumes without knowing their passwords, their presence can provide reasonable suspicion (probable cause)[18] that they contain encrypted data. TrueCrypt volume files have file sizes that are evenly divisible by 512 and their content passes chi-squared randomness tests. These features give reason to suspect a file to be a TrueCrypt volume.[19]

If a system drive or a partition on it has been encrypted then the above paragraph applies to the contents of that drive/partition. However the boot loader is replaced with a TrueCrypt one to allow a password to be entered and the decryption to begin. By default this clearly states that it is the TrueCrypt boot loader when run. It may be customized to display a BIOS-like message (such as "Non-system disk or disk error"), although this reduces the functionality of the boot loader and still results in a flicker of the hard-drive light when return is pressed (as the entered password is checked). In either case, offline analysis of the drive can be used to determine that a TrueCrypt boot loader is present.

Passwords stored in memory

TrueCrypt stores its keys in RAM; on an ordinary personal computer the 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 can intelligently 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), has been successfully used to attack a file system protected by TrueCrypt.[20]

Physical security

TrueCrypt documentation states that TrueCrypt is unable to secure data on a computer if an attacker physically accessed it and TrueCrypt is used on the compromised computer by the user again (this does not apply to a common case of a stolen, lost, or confiscated computer).[21] The attacker having physical access to a computer can, for example, install a hardware/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".[22]

Malware

TrueCrypt documentation states that TrueCrypt can not secure data on a computer if it has any kind of malware installed. 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 he or she gains physical access to the computer.[23]

The "Stoned" bootkit

The "Stoned" bootkit, an MBR rootkit presented by Austrian software developer Peter Kleissner at the Black Hat Technical Security Conference USA 2009,[24][25] has been shown capable of tampering TrueCrypt's MBR effectively bypassing TrueCrypt's full volume encryption.[26][27][28][29][30] (but potentially every hard disk encryption software is affected too if it does not rely on hardware-based encryption technologies like TPM, or—even if it does—if this type of attack is made with administrative privileges while the encrypted operating system is running).[31][32]

Two types of attack scenarios exist in which it is possible to maliciously take advantage of this bootkit: in the first one, the user is required to launch the bootkit with administrative privileges once the PC has already booted into Windows; in the second one, analogously to hardware keyloggers, a malicious person needs physical access to the user's TrueCrypt-encrypted hard disk: in this context this is needed to modify the user's TrueCrypt MBR with the Stoned's one and then place the hard disk back on the unknowing user's PC, so that when the user boots the PC and types his/her TrueCrypt password on boot, the "Stoned" bootkit intercepts it thereafter because, from that moment on, the Stoned bootkit is loaded before TrueCrypt's MBR in the boot sequence. The first type of attack can be prevented as usual by good security practices, e.g. avoid running non-trusted executables with administrative privileges. The second one can be successfully neutralized by the user if he/she suspects that the encrypted hard disk might have been physically available to someone he/she doesn't trust, by booting the encrypted operating system with TrueCrypt's Rescue Disk instead of booting it directly from the hard disk and restoring boot loader in MBR.[33]

Operation Satyagraha

In July 2008, several TrueCrypt-secured hard drives were seized from a Brazilian banker Daniel Dantas, who was suspected of financial crimes. The Brazilian National Institute of Criminology (INC) tried unsuccessfully for five months to obtain access to TrueCrypt-protected disks owned by the banker, after which they enlisted the help of the FBI. The FBI used dictionary attacks against Dantas' disks for over 12 months, but were still unable to decrypt them.[34]

Licensing

The TrueCrypt License has not been officially approved by the Open Source Initiative and is not considered "free" by several major Linux distributions (Arch Linux,[35] Debian,[36] Ubuntu,[37] Fedora,[38] openSUSE,[39] Gentoo[40]), mainly because of distribution and copyright-liability reasons.[41]

TrueCrypt 6.3a (released Nov 2009) comes under TrueCrypt License Version 2.8 which was changed in some places from the 2.5 license, but TrueCrypt is still not included in any of the major Linux distributions.

Developers/Owners identities and related concerns

The TrueCrypt developers use the aliases "ennead" and "syncon", but later replaced all references to these aliases on their website with "The TrueCrypt Foundation" in 2010.[42]

The domain name "truecrypt.org" was originally registered to a false address ("NAVAS Station, ANTARCTICA"),[43][44] and was later concealed behind a Network Solutions private registration.[45]

The TrueCrypt trademark was registered in the Czech Republic under name of "David Tesařík".[46]

In February 2010, the TrueCrypt website published a contact address in Nevada, USA for the TrueCrypt Foundation. The domain name truecrypt.org and the TrueCrypt trademarks (US and international/WIPO) were subsequently registered to the TrueCrypt Developers Association, LC, also registered in Nevada.

The anonymity of the developers and the abnormalities mentioned above have led some[who?] to raise suspicions about the provenance of the product and speculate about the possible existence of vulnerabilities or backdoors that might exist in the source code or executables.[47]

Planned features

According to the TrueCrypt website[48] the following features are planned for future releases:

  • Command line options for volume creation (already implemented in Linux and Mac OS X versions)
  • "Raw" CD/DVD volumes

TrueCrypt and the Trusted Platform Module

The FAQ section of the TrueCrypt website states that the Trusted Platform Module (TPM) cannot be relied upon for security, because if the attacker has physical or administrative access to the computer and you use it 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, TrueCrypt will not support the TPM.[32]

Version history

TrueCrypt is based on Encryption for the Masses (E4M), an open source on-the-fly encryption program first released in 1997. However, E4M was discontinued in 2000 as the author, Paul Le Roux, began working on commercial encryption software.

Version Release Date Significant Changes
1.0 February 2, 2004 Initial release. Featured support for Windows 98, ME, 2000, and XP. Added plausible deniability for containers (although due to its simplistic nature, the practical value of the "plausible deniability" offered in this version is debatable),[49] and various bugfixes and improvements over E4M.
1.0a February 3, 2004 Removed support for Windows 98 and ME because the author of the Windows 9x driver for E4M (the ScramDisk driver) gave no permission that would allow his code to be used in projects derived from E4M.[50]
2.0 June 7, 2004 Added AES algorithm. Release made under the GNU General Public License, and signed as the TrueCrypt Foundation – previous versions were signed by TrueCrypt Team.
2.1 June 21, 2004 New release due to licencing issues relating to the GNU General Public License. This release was made under original E4M license.[51] Added RIPEMD-160, size of a volume was no longer limited to 2048 GB, ability to create NTFS volumes.
2.1a October 1, 2004 Removed IDEA encryption algorithm. Version released on SourceForge.net, which became the official TrueCrypt domain. The official TrueCrypt domain moved back to truecrypt.org again at the beginning of May 2005, and the SourceForge website redirects to there.
3.0 December 10, 2004 Added hidden volume support for containers. Added the Serpent and Twofish algorithms, along with cascaded cipher support.
3.1 January 22, 2005 Added portable "Traveller mode", along with new volume mounting options such as being able to mount as "read only".
4.0 November 1, 2005 Added support for Linux, x86-64, Big Endian machines, keyfiles, hot keys, ability to protect hidden volumes against corruption when their outer volumes are mounted, favorite volumes, the Whirlpool hash algorithm, and language packs.
4.1 November 25, 2005 Added LRW mode, which is more secure than CBC mode for on-the-fly storage encryption.[5] LRW mode also neutralized an exploit that could (under certain circumstances) be used to compromise the plausible deniability of a TrueCrypt volume by allowing it to be distinguished from random data.[4]
4.2 April 17, 2006 Added various features to the Linux version, such as the ability to create volumes, change passwords and keyfiles, generate keyfiles, and backup/restore volume headers. In the Windows version, it introduced support for dynamic (sparse file) volumes.
4.3 March 19, 2007 Added support for Windows Vista, support for file systems using sector sizes other than 512 bytes. This release phased out support of 64-bit block ciphers, disallowing creation of new containers using the Blowfish, CAST-128, or Triple DES algorithms.
5.0 February 5, 2008 Introduced XTS mode of operation, which is more secure than LRW mode. Added Mac OS X support, Linux GUI and Windows system disk encryption with pre-boot authentication, ability of creation of hidden volumes within NTFS volumes, but removed the ability to create hidden volumes on Linux, use the tool on a non-gui console and the ability to create encrypted partitions from the text mode. Encrypting the system volume for Windows 2000 is no longer supported (encrypting containers and non-system volumes are still supported, however). Pipelining, SHA-512.
5.1 March 10, 2008 Added support for hibernation on Windows computers where the system partition is encrypted, the ability to mount a partition in Windows that is within the key scope of system encryption without pre-boot authentication, and added command line options for creating new volumes in Linux and Mac OS X. This version also reduced the minimum memory requirements for the TrueCrypt Boot Loader (AES) from 42 KB to 27 KB in Windows and included significant improvements in AES encryption/decryption performance. Changed to assembly implementation of AES.[52]
6.0 July 4, 2008 Parallelized encryption/decryption on multi-core processors (or multi-processor systems). Increase in encryption/decryption speed is directly proportional to the number of cores and/or processors. Deniable encryption support. Volume format updated to allow for a built-in backup, which allows recovery of containers with minor damage to their headers. Ability to create hidden volumes under Mac OS X and Linux.
6.0a July 8, 2008 On systems where certain inappropriately designed chipset drivers were installed, it was impossible to encrypt the system partition/drive. This will no longer occur. Other minor bug fixes.
6.1 October 31, 2008 Ability to encrypt a non-system partition without losing existing data on the partition (in place encryption) on Windows Vista and Windows 2008. Added support for security tokens and smart cards (two-factor authentication), though only to store keyfiles (without encryption). TrueCrypt boot loader now customizable. Pre-boot passwords can be used to mount non-system volumes. Linux and Mac OS X versions can now mount an encrypted Windows system partition.
6.1a December 1, 2008 Minor improvements, bug fixes, and security enhancements.
6.2 May 11, 2009 The I/O pipeline of the Windows version now uses read-ahead buffering to improve read performance, especially on solid-state drives.
6.2a June 15, 2009 Improved file container creation speed on systems that have issues with write block sizes greater than 64 KB. The "Device not ready" error will no longer occur when the process of decrypting a system partition/drive is finished. Other minor improvements and bug fixes.
6.3 October 21, 2009 Full support for Windows 7 and Mac OS X 10.6 Snow Leopard. "System Favorite Volumes" that allow regular TrueCrypt volumes to be mounted before system and application services start and before users start logging on.
6.3a November 23, 2009 "Minor" unspecified improvements and bug fixes.
7.0 July 19, 2010 Hardware-accelerated AES. Encryption of hibernation files on Windows Vista and later. Automounting of volumes.
7.0a September 6, 2010 Workaround for a bug that caused system crashes when hibernating Truecrypt-encrypted systems. Other minor bug fixes and minor improvements.
7.1 September 1, 2011 Full compatibility with 64-bit and 32-bit Mac OS X 10.7 Lion. Minor improvements and bug fixes (Windows, Mac OS X, and Linux).

See also

References and notes

  1. ^ a b "DragonFly On-Line Manual Pages". DragonFly BSD Project. Retrieved 2011-07-17.
  2. ^ a b "Supported Operating Systems". TrueCrypt Foundation. Retrieved 2010-08-13.
  3. ^ "Operating Systems Supported for System Encryption". TrueCrypt Foundation. Retrieved 2010-08-13.
  4. ^ a b c "TrueCrypt version history". TrueCrypt Foundation. Retrieved 2009-10-01.
  5. ^ a b Fruhwirth, Clemens (2005-07-18). "New Methods in Hard Disk Encryption" (PDF). Institute for Computer Languages, Theory and Logic Group, Vienna University of Technology. Retrieved 2007-03-10.
  6. ^ Parallel encryption for multi-core systems
  7. ^ Pipelining support only under Windows as for ver 6.3a
  8. ^ http://www.truecrypt.org/docs/hardware-acceleration
  9. ^ http://www.tomshardware.com/reviews/bitlocker-truecrypt-encryption,2587-9.html
  10. ^ http://www.tomshardware.com/reviews/truecrypt-security-hdd,2125-11.html
  11. ^ Security Requirements and Precautions
  12. ^ http://www.truecrypt.org/docs/?s=plausible-deniability
  13. ^ http://www.truecrypt.org/docs/?s=hidden-volume
  14. ^ http://www.truecrypt.org/docs/hidden-operating-system
  15. ^ http://www.truecrypt.org/docs/?s=hidden-volume-precautions
  16. ^ http://www.truecrypt.org/docs/?s=hidden-operating-system
  17. ^ Alexei Czeskis, David J. St. Hilaire, Karl Koscher, Steven D. Gribble, Tadayoshi Kohno, Bruce Schneier (2008-07-18). "Defeating Encrypted and Deniable File Systems: TrueCrypt v5.1a and the Case of the Tattling OS and Applications" (PDF). 3rd USENIX Workshop on Hot Topics in Security. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)CS1 maint: multiple names: authors list (link)
  18. ^ http://www.freeotfe.org/docs/Main/plausible_deniability.htm#level_3_heading_2
  19. ^ http://www.forensicinnovations.com/blog/?p=7
  20. ^ Alex Halderman; et al. "Lest We Remember: Cold Boot Attacks on Encryption Keys". {{cite web}}: Explicit use of et al. in: |author= (help)
  21. ^ "TrueCrypt documentation - Physical security". truecrypt.org.
  22. ^ Bruce Schneier (2009-10-23). ""Evil Maid" Attacks on Encrypted Hard Drives". Schneier on Security.
  23. ^ TrueCrypt documentation: Malware. Accessed on: April 10, 2011
  24. ^ "Stoned bootkit White Paper" (PDF). Black Hat Technical Security Conference USA 2009. Peter Kleissner. Retrieved 2009-08-05.
  25. ^ "Stoned bootkit Presentation Slides" (PDF). Black Hat Technical Security Conference USA 2009. Peter Kleissner. Retrieved 2009-08-05.
  26. ^ "Bootkit bypasses hard disk encryption". The H-Security (H-Online.com). Heise Media UK Ltd. Retrieved 2009-08-05.
  27. ^ David M Williams (2009-09-07). "The dark side of open source software is Stoned". iTWire.
  28. ^ "TrueCrypt vs Peter Kleissner, Or Stoned BootKit Revisited." Simon Hunt. Retrieved 2009-08-05.
  29. ^ Uli Ries (2009-07-30). "Bootkit hebelt Festplattenverschlüsselung aus" (in German). Heise Online.
  30. ^ "Windows-Hacking: TrueCrypt Verschlüsselung umgangen" (in German). Gulli News. 2009-07-30.
  31. ^ "Stoned bootkit attacking TrueCrypt's full volume encryption". TrueCrypt Foundation mail in response to Peter Kleissner on 18/07/2009. Retrieved 2009-08-05.
  32. ^ a b "Some encryption programs use TPM to prevent attacks. Will TrueCrypt use it too?". TrueCrypt FAQ. TrueCrypt Foundation. Retrieved 2011-8-24. {{cite web}}: Check date values in: |accessdate= (help)
  33. ^ "TrueCrypt Foundation is a joke to the security industry, pro Microsoft". Peter Kleissner post and expert comments about Stoned bootkit. Peter Kleissner. Retrieved 2009-08-05.
  34. ^ J. Leyden (2010). "Brazilian banker's crypto baffles FBI". The Register. Retrieved 2010-08-13.
  35. ^ Arch Linux Truecrypt PKGBUILD Accessed on: July 17, 2011
  36. ^ Debian Bug report logs - #364034. Accessed on: January 12, 2009.
  37. ^ Bug #109701 in Ubuntu. Accessed on: April 20, 2009
  38. ^ TrueCrypt licensing concern Accessed on: April 20, 2009
  39. ^ non-OSI compliant packages in the openSUSE Build Service. Accessed on: April 20, 2009
  40. ^ Gentoo bug 241650. Accessed on: April 20, 2009
  41. ^ Tom Calloway of Red Hat about TrueCrypt licensing concern Accessed on July 10, 2009
  42. ^ http://sourceforge.net/projects/truecrypt/?showfeed=project_info
  43. ^ webreportr.com domain information for TrueCrypt
  44. ^ http://www.who.is/website-information/truecrypt.org/ who.is WHOIS
  45. ^ Network Solutions WHOIS
  46. ^ Intellectual Property Digital Library; search trademarks directory for IRN/925625
  47. ^ Analysis: Is there a backdoor in Truecrypt? Is Truecrypt a CIA honeypot?. Accessed on: April 10, 2011
  48. ^ Features to be implemented in future versions
  49. ^ Plausible Deniability
  50. ^ The authors of Scramdisk and E4M exchanged some code – the author of Scramdisk provided a driver for Windows 9x, and the author of E4M provided a driver for Windows NT, enabling cross-platform versions of both programs.
  51. ^ "TrueCrypt User's Guide" (PDF). TrueCrypt Version 3.1a. TrueCrypt Foundation. 2005-02-07. p. 44. Archived from the original (PDF) on 2007-03-27. Retrieved 2007-05-01.
  52. ^ "Version History Part 1". TrueCrypt Documentation. TrueCrypt Foundation. Retrieved 2008-06-04.

External links