# TrueCrypt

TrueCrypt ist eine Software zur Verschlüsselung, insbesondere zur vollständigen oder partiellen Verschlüsselung von Festplatten und Wechseldatenträgern. Das Programm läuft unter Windows ab der Version 2000 bis zur Version Windows 10, unter macOS ab Version 10.4 und unter Linux mittels dm-crypt.
Laut einer Meldung vom 28. Mai 2014 auf der offiziellen Website wurde die Entwicklung von TrueCrypt im Mai 2014 eingestellt. Auf der Website wird eine Anleitung für den Wechsel zu BitLocker bereitgestellt. Zudem wird dort gewarnt, dass die Nutzung von TrueCrypt unsicher sei, da TrueCrypt ungelöste Sicherheitslücken enthalten könne. Hingegen stellten Jacob Appelbaum und Laura Poitras auf dem Chaos Communication Congress im Dezember 2014 fest, „Truecrypt sei als schier unüberwindbar eingestuft worden, bevor das Entwicklerteam die Arbeit daran überraschend aufgegeben habe“. Die Computerzeitschrift c’t empfahl, vorerst weiterhin die Vorgängerversion TrueCrypt 7.1a zu verwenden.
VeraCrypt, das sich im Juni 2013 von TrueCrypt abspaltete, wird nach wie vor weiterentwickelt und behebt einige der bei dem Audit von TrueCrypt gefundenen Probleme.

## Funktionen
### Algorithmen

TrueCrypt bietet die Verschlüsselungsalgorithmen AES, Twofish und Serpent an. Neben der Verwendung eines einzelnen Algorithmus steht auch die Option zur Verfügung, mehrere Algorithmen zu kaskadieren.

### Partitions- oder Container-Verschlüsselung

TrueCrypt kennt drei Arbeitsweisen im Umgang mit verschlüsselten Daten:
* Ein ganzes Gerät (beispielsweise eine Festplatte) wird verschlüsselt. Das führt dazu, dass Betriebssysteme das verschlüsselte Gerät als nicht initialisiert ansehen und u. U. zur Partitionierung raten werden, solange das Gerät nicht eingehängt ist. Diese Partitionsverschlüsselung ist schneller als die nachfolgend beschriebene Methode, jedoch werden vorhandene Daten bei der Verschlüsselung überschrieben (ausgenommen bei der Verschlüsselung der Systemplatte).
* Eine bestehende Partition wird verschlüsselt. Dabei kann nur eine komplette Systempartition ohne Verlust der vor der Verschlüsselung vorhandenen Daten verschlüsselt werden. Bei anderen Partitionen oder externen Laufwerken werden die vor der Verschlüsselung vorhandenen Daten gelöscht und sollten vorher extern gesichert werden.
* TrueCrypt kennt sogenannte Container-Dateien. Container sind insbesondere geeignet, auf einer ansonsten nicht verschlüsselten Partition einen privaten verschlüsselten Bereich für sensible Daten anzulegen. Innerhalb eines Containers verwaltet TrueCrypt ein Dateisystem. Zum Lesen und Schreiben mountet TrueCrypt diese Datei. Unter Windows wird dazu ein neues virtuelles Laufwerk erstellt. Unter macOS und Linux wird der Container in ein beliebiges Verzeichnis eingehängt. Zugriffe auf das Laufwerk/das Verzeichnis unterscheiden sich nicht von Zugriffen auf andere, nicht durch TrueCrypt erzeugte Pendants. Die Ver- und Entschlüsselung übernimmt der TrueCrypt-Treiber im Hintergrund (englisch on the fly). Container können, wenn sie nicht eingebunden sind, wie normale Dateien behandelt werden, beispielsweise auf eine DVD gebrannt werden.

### Konzept der glaubhaften Abstreitbarkeit

Ein besonderes Sicherheitsmerkmal von TrueCrypt ist das Konzept der glaubhaften Abstreitbarkeit (englisch plausible deniability), also die Möglichkeit, bewusst Spuren versteckter Daten zu vermeiden. Dadurch soll es unmöglich sein, die Existenz verschlüsselter Daten nachzuweisen. TrueCrypt bietet hierfür eine besondere Funktion: Versteckte Container (Hidden Volumes) können innerhalb des freien Speicherplatzes eines anderen verschlüsselten Volumes versteckt werden. Wird man z. B. gezwungen, das Passwort für das Volume herauszugeben, gibt man nur das Passwort für das äußere Volume heraus; das versteckte und mit einem anderen Passwort verschlüsselte Volume bleibt unentdeckt. So sieht ein Angreifer nur unwichtige Alibi-Daten, die vertraulichen Daten sind verschlüsselt im freien Speicherplatz des verschlüsselten Volumes verborgen. Allerdings ist zu beachten, dass auf dem physischen Datenträger, im Betriebssystem oder innerhalb der verwendeten Programme Spuren zurückbleiben können, die die Existenz des versteckten Volumes für einen Angreifer offenbaren. Im August 2016 wurde ein Fehler im TrueCrypt Quellcode gefunden, der es ermöglicht, die Existenz eines versteckten Containers (Hidden Volume) zu beweisen. Mounir Idrassi, der Entwickler von VeraCrypt, bestätigte diesen Fehler. Eine Fehlerbehebung floss in die Version 1.18a von VeraCrypt, jedoch müssen Nutzer ihre Containerdaten erneuern.

### Portabler Modus

Ab Version 3.1 unterstützt TrueCrypt auch einen sogenannten „Portable Mode“, womit das Programm nicht mehr installiert werden muss (siehe auch Portable Software). Dadurch kann es z. B. von USB-Sticks gestartet werden. Für diesen Modus werden auf den Windows-Betriebssystemen jedoch Administrator-Rechte benötigt, da, wie auch in der installierten Variante, beim Start von TrueCrypt für die (transparente) Ver- und Entschlüsselung ein Gerätetreiber geladen werden muss.
Alternativ ist der Start unter einem Live-System auf Windows-Basis wie Windows PE oder Bart PE möglich. Da diese Systeme von sich aus nicht auf die Festplatte schreiben, sondern lediglich im Hauptspeicher agieren, ist eine hohe Sicherheit gewährleistet.

### Verschlüsselung von Systempartitionen

Ab Version 5.0 unterstützt TrueCrypt auch die „Full System Encryption“ bzw. „Whole Disk Encryption“ genannte (auch als Pre-Boot Authentication bekannte) vollständige Verschlüsselung von Windows-Systempartitionen oder auch der gesamten Festplatte, auf der sich eine Systempartition befindet. Unterstützt werden Windows XP, Windows Vista, Windows 7 und Windows Server 2003, jeweils in den 32- oder 64-Bit-Ausführungen. Ist die gesamte Systempartition verschlüsselt, erscheint vor dem Starten des Betriebssystems ein spezieller TrueCrypt-Bootloader, der zur Kennworteingabe auffordert. Diese Aufforderung kann man ab Version 6.1 aber auch unterdrücken oder durch einen eigenen Text ersetzen. Da der Bootloader unverschlüsselt auf der Festplatte gespeichert ist, greift hier das Prinzip der glaubhaften Abstreitbarkeit nicht. Stattdessen kann jedoch ein verstecktes Betriebssystem innerhalb einer TrueCrypt-Partition abgelegt werden.
Ein Vorteil der Verschlüsselung der Systempartition ist, dass Temporär-, Auslagerungs- und Ruhezustand-Dateien verschlüsselt auf der Partition abgelegt werden. Allerdings ist dies ab Version 7.0 für Windows-Vista-, Windows-7- und Windows-8-Systeme auch ohne Systemverschlüsselung möglich. TrueCrypt verwendet hier allerdings Microsoft-Windows-eigene Verschlüsselungsmechanismen, um diese Dateien sicher abzulegen.
Es ist sowohl möglich, bereits vorhandene Systempartitionen und -festplatten im laufenden Windows-Betrieb zu verschlüsseln, als auch diesen Vorgang zu unterbrechen und zu einem späteren Zeitpunkt fortzusetzen. Auch ist es möglich, ebenfalls im laufenden Windows-Betrieb, die Verschlüsselung wieder rückgängig zu machen. Noch nicht vollständig ver- bzw. entschlüsselte Partitionen können nicht von einem anderen System gemountet werden. Es ist daher ratsam, den Prozess nicht unnötig zu unterbrechen.
Zu Beginn des Verschlüsselungsvorgangs einer Systempartition oder -festplatte erstellt TrueCrypt ein ISO-Abbild für eine systemspezifische Rettungs-CD („Rescue Disk“), welche im Notfall die Wiederherstellung des defekten Kopfbereichs oder des Bootloaders ermöglicht. Die Daten der Partition können durch die CD nicht wiederhergestellt werden. Das ISO-Abbild muss anschließend auf CD gebrannt werden; TrueCrypt startet die Verschlüsselung erst, nachdem die fehlerfreie Lesbarkeit der Rettungs-CD geprüft wurde. Administratoren können diese sonst zwingende Verifikation durch virtuelle Laufwerke oder eine Kommandozeilenoption umgehen, um die Abbilder mehrerer Rechner zentral zu sammeln und nur im Bedarfsfall zu brennen.

### Funktionalität mit Solid State Drives (SSD)

Aufgrund ihres hohen Durchsatzes insbesondere bei zufällig verteilten Lese- und Schreiboperationen bieten sich Solid-State-Drives (SSD) als Trägermedien für verschlüsselte Containerdateien und Partitionen an. Wegen der Funktionsweise von SSDs, die sich von denen herkömmlicher Festplatten (HDD) grundlegend unterscheidet, ist bisher noch nicht abschließend geklärt, welche Auswirkungen SSD-spezifische Funktionen wie beispielsweise das ATA-Kommando TRIM oder das in den Controllern von SSDs implementierte Wear-Leveling im Zusammenspiel mit dem Einsatz von TrueCrypt auf die Leistung und Langlebigkeit von SSDs haben. Zumindest beim Einsatz verschlüsselter Systempartitionen leitet TrueCrypt das TRIM-Kommando an die SSD weiter. Dies gilt für alle Partitionen, die durch die Systemverschlüsselung geschützt sind, nicht jedoch beim Verschlüsseln von herkömmlichen Partitionen und Containern. Durch das Weiterreichen des TRIM-Kommandos kann ein Angreifer feststellen, wie viele Daten tatsächlich auf der SSD gespeichert sind. Bei versteckten Betriebssystemen wird das TRIM-Kommando nicht durchgereicht, um die glaubhafte Abstreitbarkeit zu gewährleisten.
Möglicherweise ist es bei der Verschlüsselung ganzer SSD-Laufwerke oder ganzer Partitionen empfehlenswert, einen Teil des Speicherplatzes der SSD ungenutzt (unpartitioniert) zu belassen, um dem SSD-Controller die Möglichkeit zu geben, die freien Blöcke für das Wear-Leveling zu nutzen und so die Langlebigkeit der SSD zu erhöhen. Bei Systempartitionen ohne verstecktes Betriebssystem ist dies nicht notwendig (s. o.).
Die Performance beim Lesen von verschlüsselten SSDs wurde durch die Unterstützung von Read-Ahead-Buffering unter Windows ab Version 6.2 verbessert.

### Angriffsszenario

Seit Juli 2009 kursiert ein Bootkit für die damals gängigen Windows-Versionen mit x86-Architektur (Windows 2000 bis Windows 7). Das Programm verändert den Master Boot Record der verschlüsselten Festplatte und wird bei einem Rechnerstart zuerst geladen. Dadurch kann es die Eingabe des Kennworts für die TrueCrypt-Pre-Boot-Authentifizierung ausspähen. Betroffen sind nur Systeme mit BIOS, Systeme mit EFI dagegen nicht. Für eine Infektion sind Administratorrechte oder ein physischer Zugang zur Hardware erforderlich. Das Programm soll nicht von Virenscannern erkannt werden können.
Ein weiteres Angriffsszenario, das auch andere Verschlüsselungssysteme wie BitLocker aushebeln kann, setzt voraus, dass der zur Entschlüsselung verwendete Rechner über einen FireWire-Anschluss verfügt und der Angreifer auf diesen physisch zugreifen kann. TrueCrypt im Speziellen schreibt nach erfolgtem Einhängen der virtuellen Festplatte zwei Schlüsselwerte aus dem Header der Containerdatei in den Arbeitsspeicher. Nachfolgende Entschlüsselungen von Dateien im Container erfolgen mit diesen Schlüsseln. Auch wenn der PC gesperrt ist, kann nun über eine Firewire-Verbindung der Inhalt des Arbeitsspeichers kopiert werden. Dieses Speicherabbild kann danach mit einer Software nach den zwei Schlüsselwerten durchsucht werden. Der Header der Containerdatei kann im Folgenden ersetzt und eine veränderte TrueCrypt-Version erzeugt werden, die die zuvor extrahierten Schlüssel zur Entschlüsselung nutzt. Auch von Windows selbst angelegte Speicherabbilder können für einen derartigen Angriff genutzt werden, deren Erstellung lässt sich aber leicht unterbinden.
Nach dem gleichen Prinzip funktionieren auch sogenannte Kaltstartattacken, bei denen unter bestimmten Bedingungen und in einem eng bemessenen Zeitfenster nach Ausschalten eines Computers noch der Zugriff auf den Arbeitsspeicher möglich ist.

## Lizenz

TrueCrypt basiert auf Encryption for the Masses (E4M), dessen Entwicklung im Jahr 2000 eingestellt worden war. Anfang 2004 wurde das Programm als TrueCrypt weiterentwickelt. Ein Nachteil dieser allmählichen Entwicklung ist die uneinheitliche Lizenz. Der Quelltext des Programms ist zwar offen, allerdings besitzen einzelne Programmteile unterschiedliche und teilweise autorenspezifische Lizenzen, die dann in der TrueCrypt Collective License zusammengefasst werden, welche weder von der OSI zertifiziert noch von der Free Software Foundation als frei anerkannt wurde und GPL-inkompatibel ist. Eine Vereinheitlichung der Lizenz steht derzeit nicht in Aussicht, da dafür die Zustimmung aller beteiligten Urheber nötig wäre. Nach einer Prüfung der Lizenz in Version 1.3 sah Debian aufgrund möglicher rechtlicher Probleme der Lizenz davon ab, diese als DFSG-konform anzuerkennen. Auch das Fedora-Projekt rät aus den gleichen Gründen vom Einsatz der Software ab. Die Lizenz-Version 3.0 erlaubt nur eine Weitergabe in unveränderter Form für das komplette Programm. Allerdings kann man Teile der Software bzw. des Quelltextes verwenden und in eigenen Projekten benutzen, wenn Lizenz und Urheber im Programm bzw. Projekt angegeben werden und das eigene Projekt keinen ähnlich klingenden Namen trägt. Laut c’t schließt die „vertrackte Lizenz“ auch in diesem Anwendungsfall „sehr viele Nutzungsszenarien [aus]“.
Version 7.2, die offenbar letzte Version von TrueCrypt, wurde mit einer Version 3.1 der TrueCrypt-Lizenz ausgeliefert. Dort wurden Hinweise auf Trademarks der TrueCrypt Foundation sowie sämtliche Hinweise auf Kontaktmöglichkeiten entfernt.

## Geschichte

Der Hauptentwickler von TrueCrypt galt lange Zeit als unbekannt. Durch Recherchen des Journalisten Evan Ratliff konnte jedoch aufgezeigt werden, dass TrueCrypt seinen Ursprung in der Software E4M hat, die durch Paul Le Roux programmiert wurde. Frühe Screenshots des Programms aus dem Jahr 2001 zeigen eine deutliche Verwandtschaft zum heutigen TrueCrypt bzw. dessen Abspaltungen.
Im Frühling 2005 suchten die Programmierer von TrueCrypt nach Helfern zur Portierung auf andere Betriebssysteme neben Windows.
Verschiedene Versionen für Linux gibt es ab Version 4.0. Ab Version 4.2 ist es auch möglich, unter Linux verschlüsselte Partitionen zu erstellen, davor war nur das Benutzen von unter Windows erstellten Partitionen möglich. Ab Version 5.0 steht TrueCrypt auch für macOS 10.4 und 10.5 zur Verfügung. Ab Version 6.0 besteht auch unter Linux und macOS die Möglichkeit, versteckte Container (hidden volumes) zu erstellen; weiterhin ist in Version 6.0 durch Parallelisierung die Leistung auf Multi-Core-Prozessoren wesentlich verbessert worden.
Die Version 6.1 unterstützt die Anbindung kryptografischer Token und Smartcards über den Kryptographie-Standard PKCS#11.
Die Version 6.2 soll durch verbesserte Nutzung von Read-Ahead-Buffern die Geschwindigkeit von Truecrypt besonders bei der Nutzung von Solid State Disks (SSD) verbessern.
Die Version 6.3 hat unter anderem den Support auch auf Windows 7 und Mac OS X Snow Leopard ausgedehnt.
Mit Version 7.0 wurde eine Unterstützung für Hardware-beschleunigtes AES eingeführt. Diese Option ist bei entsprechender Systemkonfiguration standardmäßig aktiviert, kann jedoch optional abgeschaltet werden.

### Audit der Software

Infolge der globalen Überwachungs- und Spionageaffäre gab es verstärkte Bemühungen, die Zuverlässigkeit von TrueCrypt zu verbessern und vertrauenswürdige Binärdateien zur Verfügung zu stellen. Zu diesem Zweck wurde mittels mehrerer Crowdfunding-Kampagnen über 60.000 Dollar gesammelt, mit dem unter anderem externe Sicherheitsunternehmen mit einem Audit des Quelltextes beauftragt wurden. Hierfür sagte auch der Kryptographie-Experte Bruce Schneier seine Unterstützung zu. Zur Verwaltung der Spendeneinnahmen wurde eine gemeinnützige Organisation mit Namen Open Crypto Audit Project und Sitz in North Carolina gegründet. Ein erster Vertrag zur Überprüfung der Windows-Software sowie des Bootloaders wurde mit der Firma iSEC partners geschlossen; der Audit sollte im Januar 2014 beginnen. Ein weiteres Ziel des Projekts war es, die TrueCrypt-Lizenz kompatibel zu etablierten Open-Source-Lizenzen wie etwa der GNU General Public License zu machen. Im April 2015 wurde der Bericht zum Audit veröffentlicht. Die Autoren fanden vier Fehler, von denen sie zwei als schwer und einen als leicht einstuften. Der vierte Fehler wurde nicht eingestuft.
Im Oktober 2013 konnte nachgewiesen werden, dass sich die auf der TrueCrypt-Website zum Download angebotenen Binärdateien tatsächlich aus dem veröffentlichten Quelltext reproduzieren lassen und somit frei von zusätzlichen, nicht im öffentlich einsehbaren Quelltext enthaltenen Hintertüren sind.
Im April 2014 wurden die Ergebnisse einer kommerziellen Teil-Begutachtung der Software veröffentlicht, wobei der Bootloader und der Windows-Kernel-Treiber untersucht wurde – eine vollständige Analyse der eigentlichen TrueCrypt-Software steht, mit Phase 2, noch aus. Die Autoren des Berichts fanden elf Fehler, von denen sie keine als schwer, vier als mittelschwer, vier als leicht und drei in die niedrigste Kategorie „informational“ einstuften. Hinweise auf eine Hintertür wurden nicht gefunden.
Im September 2015 wurde von einem Sicherheitsforscher eine Sicherheitslücke in TrueCrypt entdeckt, die bei der Abspaltung VeraCrypt behoben wurde.
Das Fraunhofer-Institut für Sichere Informationstechnologie (SIT) untersuchte 2015 im Auftrag des Bundesamtes für Sicherheit in der Informationstechnik (BSI) TrueCrypt auf Sicherheitslücken, da Teile des Verschlüsselungscodes für Verschlusssachen verwendet werden. Die Studie befand, „dass TrueCrypt weiterhin für die Verschlüsselung von Daten auf Datenträgern geeignet ist“.
Am 16. Dezember 2019 berichtete golem.de, dass das Bundesamt für Sicherheit in der Informationstechnik (BSI) TrueCrypt bereits im Jahr 2010 ausführlich untersucht hatte und dabei auf zahlreiche Sicherheitslücken gestoßen war. Als besonders problematisch stufte Hanno Böck in golem.de Fehler im Bereich des korrekten Überschreibens von Schlüsselmaterial ein, die in der BSI-Analyse zahlreich aufgeführt werden und von denen viele auch in der aktuellen Veracrypt-Version enthalten seien. Allerdings sei „keine der im Bericht erwähnten Schwachstellen (...) extrem kritisch“ und die Verschlüsselung selbst bleibe „vergleichsweise solide und sicher“. Die Ergebnisse wurden vom BSI nicht veröffentlicht, sondern erst im Rahmen einer Anfrage unter Berufung auf das Informationsfreiheitsgesetz im Dezember 2019 der Öffentlichkeit zugänglich gemacht.

### Bekanntgabe der Einstellung des Projekts

Am 28. Mai 2014 wurde die bisherige Website des Projekts durch eine Warnung ersetzt, dass die Entwicklung von TrueCrypt eingestellt worden sei. TrueCrypt sei nicht sicher, da es nicht behobene Sicherheitslücken enthalten könne. Weiterhin wurde eine Empfehlung veröffentlicht, als Alternative BitLocker zu verwenden, sowie Anleitungen, wie mit TrueCrypt verschlüsselte Daten nach BitLocker migriert werden könnten.
Diese Informationen wurden nicht mehr auf der eigenen Domain, sondern durch die Weiterleitung von truecrypt.org auf SourceForge angeboten. Auf Sourceforge wurde ausschließlich eine neue und in den Funktionen eingeschränkte Version 7.2 angeboten, die bei der Benutzung vor Sicherheitslücken warnt. Diese Version dient zur Entschlüsselung von mit TrueCrypt verschlüsselten Daten, um diese auf andere Verschlüsselungslösungen zu migrieren. Die in der vorhergehenden Begutachtung gefundenen Fehler waren dagegen nicht behoben. Die letzte TrueCrypt-Version mit vollem Funktionsumfang ist somit die Version 7.1a.
Während anfangs über ein mögliches Defacement der TrueCrypt-Website spekuliert und vor dem Verwenden der neuen Version gewarnt wurde, wurde kurz darauf ein solches Szenario als unwahrscheinlich eingestuft: Die neuen Programmdateien trugen die korrekte offizielle elektronische Signatur des Herstellers. Zudem wurde im Quelltext keine Hintertür oder Ähnliches gefunden, und ersten Berichten zufolge war das zum Herunterladen angebotene, ausführbare Programm tatsächlich aus dem angebotenen Quelltext erstellt worden. Allerdings gab und gibt es weiterhin Spekulationen, ob die Autoren von TrueCrypt einen National Security Letter erhalten und aus diesem Grund das Projekt eingestellt haben. Die Entwickler von TrueCrypt empfahlen den Umstieg auf die bereits in den jeweiligen Betriebssystemen integrierten Verschlüsselungsprogramme. Die Computerzeitschrift c’t riet, Anwender sollten „bis auf weiteres die Finger von der neuen Version [7.2] lassen“; stattdessen spräche vorerst nichts dagegen, weiterhin TrueCrypt 7.1a zu verwenden.

### Ehemals geplante Merkmale in zukünftigen Versionen

Für spätere Versionen des Programms waren ein TrueCrypt-API zur Ansteuerung der Software durch andere Programme und eine Rohverschlüsselung für CD- und DVD-Volumes vorgesehen. Zudem sollten der Windows-Version Optionen zur Erstellung von Volumes aus der Kommandozeile hinzugefügt werden; diese waren in den Versionen für Linux und macOS bereits verfügbar.

## Auf TrueCrypt basierende oder kompatible Projekte
### tcplay

Im Jahr 2011 wurde das Projekt tcplay gegründet. Die Software ist kompatibel zu TrueCrypt, steht im Gegensatz zu diesem aber unter einer als freie Open-Source-Lizenz anerkannten BSD-Lizenz. tcplay ist Bestandteil unter anderem von Debian, DragonFly BSD und Fedora.

### VeraCrypt

VeraCrypt ist eine Abspaltung von TrueCrypt und teilweise dazu kompatibel. VeraCrypt steht unter der Apache-Lizenz und der TrueCrypt-Lizenz 3.0.