VeraCrypt

Aus besserwiki.de
VeraCrypt
VeraCrypt Logo.svg
VeraCrypt screenshot.png
VeraCrypt 1.17 unter Windows 10
Entwickler(n)IDRIX (mit Sitz in Paris, Frankreich)
Erste Veröffentlichung22. Juni 2013; vor 9 Jahren
Stabile Version1.25.9 (19. Februar 2022; vor 12 Monaten) ]
Geschrieben in.C, C++, Assembler
Betriebssystem
  • Windows XP und höher
  • Windows Server 2003-2012
  • macOS 10.7 und höher
  • Linux
  • FreeBSD
PlattformIA-32, x86-64, AArch64 und armhf
Verfügbar in40 Sprachen
TypSoftware zur Festplattenverschlüsselung
LizenzMehrfach lizenziert als Apache-Lizenz 2.0 und TrueCrypt-Lizenz 3.0
Websitewww.veracrypt.fr/en/Home.html

VeraCrypt ist ein freies und quelloffenes Dienstprogramm für fliegende Verschlüsselung (OTFE). Die Software kann ein virtuelles verschlüsseltes Laufwerk erstellen, das genau wie ein normales Laufwerk funktioniert, aber innerhalb einer Datei. Sie kann auch eine Partition oder (in Windows) das gesamte Speichergerät mit Pre-Boot-Authentifizierung verschlüsseln.

VeraCrypt ist eine Abspaltung des eingestellten TrueCrypt-Projekts. Es wurde erstmals am 22. Juni 2013 veröffentlicht. Viele Sicherheitsverbesserungen wurden implementiert und Bedenken innerhalb der TrueCrypt-Code-Audits wurden ausgeräumt. VeraCrypt enthält Optimierungen an den ursprünglichen kryptografischen Hash-Funktionen und Chiffren, die die Leistung auf modernen CPUs steigern.

VeraCrypt ist eine Software zur Datenverschlüsselung, insbesondere zur vollständigen oder partiellen Verschlüsselung von Festplatten und Wechseldatenträgern. VeraCrypt erschien erstmals 2013 als Abspaltung von TrueCrypt und ist teilweise dazu kompatibel. Größere Bekanntheit erhielt das Projekt durch das unerwartete Ende der Entwicklung TrueCrypts.

Verschlüsselungsschema

VeraCrypt verwendet AES, Serpent, Twofish, Camellia und Kuznyechik als Chiffrierverfahren. In Version 1.19 wurde die Verwendung der Magma-Chiffre als Reaktion auf eine Sicherheitsüberprüfung eingestellt. Für zusätzliche Sicherheit sind zehn verschiedene Kombinationen von kaskadierten Algorithmen verfügbar:

  • AES-Twofish
  • AES-Twofish-Serpent
  • Camellia-Kuznyechik
  • Kamelie-Serpent
  • Kuznyechik-AES
  • Kusnebuchtschik-Serpent-Kamelie
  • Kusnebischtschik-Zweifisch
  • Schlange-AES
  • Schlange-Zweifisch-AES
  • Twofish-Serpent

Die kryptographischen Hash-Funktionen, die in VeraCrypt verwendet werden können, sind RIPEMD-160, SHA-256, SHA-512, Streebog und Whirlpool.

Der Blockchiffriermodus von VeraCrypt ist XTS. Es generiert den Header-Schlüssel und den sekundären Header-Schlüssel (XTS-Modus) unter Verwendung von PBKDF2 mit einem 512-Bit-Salz. Standardmäßig durchlaufen sie 200.000 bis 655.331 Iterationen, je nach der zugrunde liegenden Hash-Funktion. Der Benutzer kann sie so anpassen, dass sie mit nur 2.048 Iterationen beginnen.

Temporär war auch die Blockchiffre Magma (definiert im russischen Standard GOST 28147-89) verfügbar. Diese Verschlüsselung wurde jedoch mit Version 1.19 nach einem Sicherheitsaudit (VeraCrypt 1.18 Security Assessment) entfernt, da Magma inzwischen als kryptographisch schwach gilt.

Verbesserungen der Sicherheit

  • Das VeraCrypt-Entwicklungsteam hielt das TrueCrypt-Speicherformat für zu anfällig für einen Angriff der National Security Agency (NSA) und hat deshalb ein neues Format entwickelt, das mit dem von TrueCrypt nicht kompatibel ist. VeraCrypt ist weiterhin in der Lage, Datenträger im TrueCrypt-Format zu öffnen und zu konvertieren.
  • Eine unabhängige Sicherheitsüberprüfung von TrueCrypt, die am 29. September 2015 veröffentlicht wurde, ergab, dass TrueCrypt zwei Schwachstellen im Windows-Installationstreiber enthält, die einem Angreifer die Ausführung von beliebigem Code und die Ausweitung von Rechten durch DLL-Hijacking ermöglichen. Dies wurde in VeraCrypt im Januar 2016 behoben.
  • Während TrueCrypt 1.000 Iterationen des PBKDF2-RIPEMD160-Algorithmus für Systempartitionen verwendet, verwendet VeraCrypt standardmäßig entweder 200.000 oder 327.661 Iterationen (die vom Benutzer auf bis zu 2.048 angepasst werden können), je nach verwendetem Algorithmus. Für Standard-Container und andere Partitionen verwendet VeraCrypt standardmäßig 655.331 Iterationen von RIPEMD160 und 500.000 Iterationen von SHA-2 und Whirlpool (der Wert kann vom Benutzer auf bis zu 16.000 angepasst werden). Diese Standardeinstellungen machen VeraCrypt zwar langsamer beim Öffnen verschlüsselter Partitionen, aber auch langsamer bei Passwort-Ermittlungsangriffen.
  • Darüber hinaus gibt es seit Version 1.12 eine neue Funktion namens "Personal Iterations Multiplier" (PIM), die einen Parameter bereitstellt, dessen Wert verwendet wird, um die Anzahl der Iterationen zu steuern, die von der Funktion zur Ableitung des Header-Schlüssels verwendet werden, wodurch Brute-Force-Angriffe potenziell noch schwieriger werden. Veracrypt verwendet standardmäßig einen angemessenen PIM-Wert, um die Sicherheit zu verbessern, aber Benutzer können einen höheren Wert angeben, um die Sicherheit zu erhöhen. Der Hauptnachteil dieser Funktion besteht darin, dass der Prozess des Öffnens verschlüsselter Archive dadurch noch langsamer wird.
  • Eine Sicherheitslücke im Bootloader wurde unter Windows behoben und verschiedene Optimierungen wurden vorgenommen. Die Entwickler fügten der Systemboot-Verschlüsselungsoption Unterstützung für SHA-256 hinzu und behoben außerdem ein Sicherheitsproblem bei ShellExecute. Linux- und macOS-Nutzer profitieren von der Unterstützung für Festplatten mit Sektorgrößen größer als 512. Linux erhielt außerdem Unterstützung für die NTFS-Formatierung von Volumes.
  • Unicode-Passwörter werden seit Version 1.17 auf allen Betriebssystemen unterstützt (außer für die Systemverschlüsselung unter Windows).
  • VeraCrypt hat in Version 1.18a die Möglichkeit hinzugefügt, Systempartitionen über UEFI zu booten.
  • Die Option zur Aktivierung/Deaktivierung der Unterstützung für den TRIM-Befehl für System- und Nicht-System-Laufwerke wurde in Version 1.22 hinzugefügt.
  • Das Löschen der Systemverschlüsselungsschlüssel aus dem RAM während des Herunterfahrens/Neustarts hilft, einige Cold-Boot-Angriffe zu entschärfen, hinzugefügt in Version 1.24.
  • Die RAM-Verschlüsselung für Schlüssel und Passwörter auf 64-Bit-Systemen wurde in Version 1.24 hinzugefügt.

Der 512 Byte große Header eines Containers enthält unter anderem den Hauptschlüssel, mit dessen Hilfe sich der Container entschlüsseln lässt. Damit für potentielle Angreifer das Erraten dieses Schlüssels durch Ausprobieren (Brute-Force-Methode) erschwert wird, werden die Hash-Funktionen zum Erstellen des Headers mehrfach aufgerufen. Die Entwickler von VeraCrypt entschieden sich, die Anzahl dieser Iterationen von etwa 1000 deutlich zu erhöhen. So werden mit RIPEMD-160 bei einer vollständigen Systemverschlüsselung bis zu 327.661 Iterationen durchgeführt, bei Standard-Containern und einfachen Partitionen können es sogar bis zu 655.331 werden.

Hierdurch wird zwar die theoretische Sicherheit deutlich erhöht, jedoch steigt auch die zum Entschlüsseln notwendige Zeit an. Die für den Dateizugriff notwendige Zeit bleibt jedoch unverändert. Daher ermöglicht es VeraCrypt den Anwendern, die Anzahl der Iterationen zu variieren. Das Schema zur Berechnung der Iterationen lautet für Systempartitionen PIM × 2048, während es bei den restlichen Nutzungsmöglichkeiten 15000 + (PIM × 1000) beträgt. Der Wert des PIM muss jedes Mal für das Entsperren mit angegeben werden.

Aus Sicherheitsgründen wird eine sehr geringe Anzahl an Iterationen nur bei langen Passwörtern mit über 20 Zeichen ermöglicht.

VeraCrypt-Audit

QuarksLab führte im Auftrag des Open Source Technology Improvement Fund (OSTIF) eine Prüfung der Version 1.18 durch, die 32 Manntage in Anspruch nahm. Der Prüfer veröffentlichte die Ergebnisse am 17. Oktober 2016. Am selben Tag veröffentlichte IDRIX die Version 1.19, mit der die wichtigsten bei der Prüfung festgestellten Schwachstellen behoben wurden.

Das Fraunhofer-Institut für Sichere Informationstechnologie (SIT) führt im Jahr 2020 ein weiteres Audit durch, das vom Bundesamt für Sicherheit in der Informationstechnik (BSI) angefordert wurde, und veröffentlicht die Ergebnisse im Dezember 2020.

Sicherheitsvorkehrungen

Es gibt mehrere Arten von Angriffen, für die jede softwarebasierte Festplattenverschlüsselung anfällig ist. Wie bei TrueCrypt werden die Benutzer in der VeraCrypt-Dokumentation angewiesen, verschiedene Sicherheitsvorkehrungen zu treffen, um diese Angriffe abzuschwächen, von denen einige im Folgenden beschrieben werden.

Im Speicher gespeicherte Verschlüsselungsschlüssel

VeraCrypt Boot Loader

VeraCrypt speichert seine Schlüssel im Arbeitsspeicher (RAM); auf einigen PCs behält der DRAM seinen Inhalt für einige Sekunden bei, nachdem die Stromversorgung unterbrochen wurde (oder länger, wenn die Temperatur gesenkt wird). Selbst wenn der Speicherinhalt beschädigt ist, können verschiedene Algorithmen die Schlüssel wiederherstellen. Diese Methode, die als Cold-Boot-Angriff bekannt ist (was insbesondere für einen Notebook-Computer gilt, der im eingeschalteten, angehaltenen oder bildschirmsperrenden Modus betrieben wird), wurde 2008 erfolgreich für einen Angriff auf ein Dateisystem verwendet, das durch die TrueCrypt-Versionen 4.3a und 5.0a geschützt ist. Mit Version 1.24 fügte VeraCrypt die Option hinzu, die In-RAM-Schlüssel und Passwörter auf x64-Editionen von Windows zu verschlüsseln, mit einem CPU-Overhead von weniger als 10 %, und die Option, alle Verschlüsselungsschlüssel aus dem Speicher zu löschen, wenn ein neues Gerät angeschlossen wird.

Manipulierte Hardware

In der VeraCrypt-Dokumentation heißt es, dass VeraCrypt nicht in der Lage ist, Daten auf einem Computer zu sichern, wenn ein Angreifer physisch darauf zugreift und VeraCrypt dann vom Benutzer erneut auf dem kompromittierten Computer verwendet wird. Dies betrifft nicht den üblichen Fall eines gestohlenen, verlorenen oder beschlagnahmten Computers. Ein Angreifer, der physischen Zugang zu einem Computer hat, kann zum Beispiel einen Hardware- oder Software-Keylogger installieren, ein Bus-Mastering-Gerät, das den Speicher erfasst, oder jede andere bösartige Hardware oder Software installieren, die es dem Angreifer ermöglicht, unverschlüsselte Daten (einschließlich Verschlüsselungsschlüssel und Passwörter) zu erfassen oder verschlüsselte Daten unter Verwendung der erfassten Passwörter oder Verschlüsselungsschlüssel zu entschlüsseln. Daher ist die physische Sicherheit eine Grundvoraussetzung für ein sicheres System.

Einige Arten von Malware sind so konzipiert, dass sie Tastatureingaben, einschließlich eingegebener Kennwörter, protokollieren, die dann über das Internet an den Angreifer gesendet oder auf einem unverschlüsselten lokalen Laufwerk gespeichert werden können, von dem der Angreifer sie später lesen kann, wenn er physischen Zugriff auf den Computer erhält.

Vertrauenswürdiges Plattformmodul

VeraCrypt nutzt nicht die Vorteile des Trusted Platform Module (TPM). Die FAQ von VeraCrypt wiederholt wörtlich die negative Meinung der ursprünglichen TrueCrypt-Entwickler. Die TrueCrypt-Entwickler waren der Meinung, dass der ausschließliche Zweck des TPM darin besteht, "vor Angriffen zu schützen, die Administratorrechte oder physischen Zugriff auf den Computer erfordern". Ein Angreifer, der physischen oder administrativen Zugang zu einem Computer hat, kann das TPM umgehen, indem er z. B. einen Hardware-Keystroke-Logger installiert, das TPM zurücksetzt oder den Speicherinhalt erfasst und die vom TPM ausgegebenen Schlüssel abruft. Der Verurteilungstext geht sogar so weit zu behaupten, dass das TPM völlig überflüssig ist.

Es stimmt, dass es nur eine Frage der Zeit ist, bis andere Sicherheitsvorkehrungen umgangen werden, nachdem man sich entweder uneingeschränkten physischen Zugang oder administrative Rechte verschafft hat. Einem Angreifer mit administrativen Rechten Einhalt zu gebieten, war jedoch nie eines der Ziele des TPM. (Weitere Informationen finden Sie unter Trusted Platform Module § Verwendungszwecke.) Das TPM kann jedoch den oben beschriebenen Cold-Boot-Angriff verhindern.

Glaubhafte Abstreitbarkeit

Wie das Vorbild TrueCrypt ermöglicht VeraCrypt den Benutzern glaubhafte Abstreitbarkeit. Dies wird durch sogenannte hidden volumes (deutsch: versteckte Container) umgesetzt.

Hierunter wird ein innerhalb eines anderen Containers verstecktes, virtuelles Laufwerk verstanden, das mit Hilfe eines separaten Passwortes entsperrt werden muss. Standardmäßig wird freier Speicherplatz eines regulären Containers mit zufälligen Daten aufgefüllt. In diesem freien Bereich wird von VeraCrypt der etwaige versteckte Container gespeichert. Für einen außenstehenden Betrachter ist nicht erkennbar, ob es sich bei einem Bereich eines Containers um überschriebenen freien Speicherplatz oder einen versteckten Container handelt.

Der äußere und der darin versteckte Container sind jeweils mit einem separaten Passwort zugänglich. Je nachdem, welches der beiden Passwörter eingegeben wird, wird der jeweilige Container entsperrt. Hierdurch können Anwender, wenn sie beispielsweise von den Behörden zur Herausgabe des Passwortes aufgefordert werden, weniger sensible Daten durch Eintippen des Passwortes für den äußeren Container preisgeben, ohne dass hierdurch die sensibleren Daten im versteckten Container erkennbar werden. Da für einen Angreifer nicht erkennbar ist, dass ein versteckter Container genutzt wurde, bleiben hierdurch die Daten geschützt.

Wie sein Vorgänger TrueCrypt unterstützt VeraCrypt plausible Bestreitbarkeit, indem es die Erstellung eines einzelnen "versteckten Volumes" innerhalb eines anderen Volumes ermöglicht. Die Windows-Versionen von VeraCrypt können ein verstecktes verschlüsseltes Betriebssystem erstellen und ausführen, dessen Existenz geleugnet werden kann. Die VeraCrypt-Dokumentation listet Möglichkeiten auf, wie die Funktionen zur Leugnung von versteckten Datenträgern kompromittiert werden können (z.B. durch Software von Drittanbietern, die Informationen über temporäre Dateien oder über Miniaturansichten ausspähen kann) und welche Möglichkeiten es gibt, dies zu vermeiden.

Leistung

VeraCrypt unterstützt parallelisierte Verschlüsselung für Multi-Core-Systeme. Unter Microsoft Windows werden Lese- und Schreibvorgänge (eine Form der asynchronen Verarbeitung) in einer Pipeline zusammengefasst, um die Leistungseinbußen bei der Ver- und Entschlüsselung zu verringern. Auf Prozessoren, die den AES-NI-Befehlssatz unterstützen, unterstützt VeraCrypt hardwarebeschleunigtes AES zur weiteren Leistungssteigerung. Auf 64-Bit-CPUs verwendet VeraCrypt optimierte Assembler-Implementierungen von Twofish und Camellia.

Lizenz und Quellcode-Modell

VeraCrypt wurde 2013 von dem inzwischen eingestellten TrueCrypt-Projekt abgezweigt und enthielt ursprünglich hauptsächlich TrueCrypt-Code, der unter der TrueCrypt-Lizenz 3.0 veröffentlicht wurde. In den folgenden Jahren wurde immer mehr Code von Veracrypt umgeschrieben und unter der freizügigen Apache-Lizenz 2.0 veröffentlicht.

Die TrueCrypt-Lizenz gilt allgemein als quelloffen, aber nicht als frei und quelloffen. Die Apache-Lizenz gilt allgemein als frei und quelloffen. Die gemischte VeraCrypt-Lizenz wird allgemein, aber nicht universell als frei und quelloffen angesehen.

Am 28. Mai 2014 wurde TrueCrypt unter ungewöhnlichen Umständen aufgegeben, und es gibt keine Möglichkeit, die ehemaligen Entwickler zu kontaktieren.

VeraCrypt wird als frei und quelloffen angesehen von:

  • PC World
  • Techspot
  • DuckDuckGo's Open Source Technology Improvement Fund:
  • Sourceforge
  • Offener Technologie-Fonds
  • Fosshub
  • opensource.de
  • fossmint

VeraCrypt wird als nicht frei und quelloffen angesehen von:

  • Einige Mitglieder der Open Source Initiative, einschließlich des Direktors, äußerten Bedenken über eine ältere Version der TrueCrypt-Lizenz, aber die OSI selbst hat keine Entscheidung bezüglich TrueCrypt oder VeraCrypt veröffentlicht.
  • Die Free Software Foundation hat die TrueCrypt-Lizenz als unfrei eingestuft. Die FSF hat keine Entscheidung bezüglich der VeraCrypt-Lizenz veröffentlicht.

Sicherheit

Der Vorgänger TrueCrypt wurde in der Version 7.1a, auf der VeraCrypt basiert, einer Auditierung unterzogen und zunächst als relativ fehlerarm bewertet. Eine unabhängige Sichtung des Quelltextes der Version 1.18 von VeraCrypt fand im Jahr 2016 statt. Durchgeführt wurde diese vom Unternehmen Quarkslab in Zusammenarbeit mit der Initiative Ostif. Während der Vorbereitungen wurde die Meldung herausgegeben, das Audit würde womöglich sabotiert, da E-Mails zwischen den Parteien ihr Ziel nicht erreicht hätten. Später wurde ein falsch konfiguriertes E-Mail-Programm vermutet und die Veröffentlichung dieser Probleme als Fehler bezeichnet.

Im August 2016 wurde vorab ein schwerwiegender Fehler bestätigt, der sowohl in True- als auch VeraCrypt das Erkennen von versteckten Containern (Hidden Volumes) ermöglicht und somit den Schutz des Benutzers durch die glaubhafte Abstreitbarkeit aufhebt. Eine Lösung floss in die Version 1.18a von VeraCrypt ein, allerdings mussten Benutzer ihre vorhandenen Containerdateien erneuern.

Der endgültige Bericht legte zahlreiche Programmierfehler offen. Einige davon flossen erst nach der Abspaltung von TrueCrypt ein – andere wurden bereits bei der früheren Auditierung festgestellt und nicht behoben. So wurde die Verwendung einer bekannt fehlerhaften Version der Programmbibliothek zlib aus dem Jahre 1998 bemängelt, insbesondere da TrueCrypt seinerseits bereits eine modernere Variante nutzte. Passwörter werden im Zusammenspiel mit einer Komplett-Verschlüsselung der Systempartition gar nicht oder nur unzureichend im Arbeitsspeicher überschrieben, sodass sich zumindest die Länge des Passworts auslesen lässt. Des Weiteren wurde der neu hinzugefügte Algorithmus „GOST 28147-89“ auf unsichere Art angewandt.

Die kritischen, in Version 1.18 vorhandenen Fehler wurden mit der Version 1.19 korrigiert.

VeraCrypt ist auch für generelle, softwarebasierte Festplattenverschlüsselungsmethoden betreffende Angriffe anfällig. Da der zum Entschlüsseln benötigte Schlüssel im Arbeitsspeicher des Computers gespeichert wird, ist bei Zugriff auf die genutzte Hardware eine Kaltstartattacke möglich. Passwörter können durch Malware oder hardwareseitige Kompromittierungen des Systems wie Hardware-Keylogger abgefangen werden, die Verwendung von Schlüsseldateien kann diese Angriffsmethode jedoch erschweren.

In einer erst im Dezember 2019 veröffentlichten Sicherheitsuntersuchung der Vorgängersoftware TrueCrypt aus dem Jahr 2010 durch das Bundesamt für Sicherheit in der Informationstechnik (BSI) wurden zahlreiche als sicherheitsrelevant eingestufte Fehler aufgeführt, von denen viele auch in der zur Zeit der Veröffentlichung aktuellen VeraCrypt-Version (1.24 vom 6. Oktober 2019) noch enthalten gewesen seien. Allerdings sei keine der Schwachstellen einzeln betrachtet dramatisch und es wurden einige der Fehler umgehend behoben.

Funktionen

Kompatibilität zu TrueCrypt

VeraCrypt ist in weiten Teilen zu TrueCrypt kompatibel. Dementsprechend ermöglicht das Programm, mit Hilfe eines Kompatibilitätsmodus bereits existierende TrueCrypt-Container zu entschlüsseln. Weiterhin lassen sich viele der Funktionen des TrueCrypt-Derivates auch in dessen Wurzel finden. Jedoch sind viele der von den VeraCrypt-Entwicklern implementierten Verbesserungen nur in dem veracrypteigenen Containerformat nutzbar. Daher empfehlen die Herausgeber von VeraCrypt, auf dessen eigenes Format zu migrieren.

Verschlüsselungsmöglichkeiten

VeraCrypt bietet die Möglichkeit, gesamte Systeme, einzelne Partitionen oder sogenannte Container zu verschlüsseln. Bei letzterem handelt es sich um spezielle Dateien mit fester Größe, die nach dem Entschlüsseln wie virtuelle Laufwerke behandelt werden. Als Verschlüsselungsmodus wird XTS genutzt.