Zur Sicherheit der Linux-Datenträgerverschlüsselung LUKS

2023-05-03

In den vergangenen Tagen gab es Unklarheiten und Sorgen zur Datenträgerverschlüsselung LUKS (“Linux Unified Key Setup”), die unter Linux weit verbreitet ist. Wir veröffentlichen hier unsere Einschätzung dazu.

Inhaltsverzeichnis

Vorgeschichte

Am 17. April 2023 veröffentlichte Matthew “mjg59” Garrett den Aufruf, die Schlüsselableitungsfunktion (Key Derivation Function, KDF) von LUKS-verschlüsselten Datenträger zu ändern: PSA: upgrade your LUKS key derivation function. Darin bezieht er sich auf den Artikel “Une lettre d’Ivan, enfermé à la prison de Villepinte : perquisitions et disques durs déchiffrés” (Crosspost von paris-luttes.info).

Demzufolge ist es gelungen, zwei verschlüsselte Computer eines Beschuldigten zu entschlüsseln – ein mit BitLocker verschlüsselter Windows-Computer und ein LUKS-verschlüsselter Computer mit Ubuntu 18. (Ob es sich um Ubuntu 18.04 oder 18.10 handelt, geht aus dem Text nicht hervor, ist aber auch nicht relevant.)

Der Windows-Computer sei von einem bootfähigen USB-Stick gestartet worden, dann sei mit der Software “AccessData FTK imager 3.3.05” (inzwischen “FTK® Imager von Exterro”, welche AccessData im Jahr 2020 aufgekauft haben) eine Kopie der (verschlüsselten) Festplatte erstellt worden. Das Erstellen einer Kopie, um mit dieser weiterzuarbeiten, ist in der IT-Forensik normal und sagt nichts über die Sicherheit von Verschlüsselungsverfahren aus. Mit BitLocker möchten wir uns an dieser Stelle nicht weiter beschäftigen. Verwiesen sei aber auf Stolperfallen wie etwa Schwachstellen in Implementationen des Trusted Platform Module (TPM), die beispielsweise TPM-Sniffing-Angriffe ermöglichen, oder Schlagzeilen wie Windows 10: Microsoft kriegt Bitlocker-Nachschlüssel frei Cloud (2015). Eine gute Übersicht über öffentlich bekannte Angriffe auf BitLocker findet sich hier.

Der zweite Computer, mit Ubuntu 18, sei mit LUKS1 verschlüsselt gewesen unter Verwendung eines Passworts aus mehr als zwanzig Zeichen, bestehend aus Buchstaben, Zahlen und Sonderzeichen. Garrett hält es für möglich, dass kein “opsec failure” vorliegt und der Grund für den erfolgreichen Zugriff auf den Ubuntu-Datenträger demzufolge die Datenträgerverschlüsselung LUKS1 und dessen Schlüsselableitungsfunktion PBKDF2 ist. Wir gehen weiter unten darauf ein.

Es könnte auch andere Gründe für die Entschlüsselung geben. Aus dem Text geht z. B. nicht hervor, in welchem Zustand der Ubuntu-Computer beschlagnahmt wurde. Eine Beschlagnahmung im eingeschalteten Zustand mit gesperrtem Bildschirm oder im Suspend-to-RAM (“Standby”) ermöglicht das Auslesen der Schlüssel aus dem Arbeitsspeicher mittels einer Cold Boot Attack. Da die Entschlüsselung für die betroffene Person wohl überraschend kam, würden wir zumindest ausschließen, dass das Passwort irgendwo handschriftlich notiert war – eine von vielen Möglichkeiten, die wir später noch benennen.

Diskussion auf Reddit

Auf Reddit entwickelte sich eine kurze Diskussion zwischen dem LUKS-Entwickler Clemens Fruhwirth und Matthew “mjg59” Garrett (im Web Archive: Fruhwirth, Garrett, Fruhwirth).

Clemens Fruhwirth vermutet nicht LUKS1, sondern andere Gründe als Ursache. Selbst bei LUKS1 mit PBKDF2 und einem Passwort aus 13 zufälligen Groß- und Kleinbuchstaben und Ziffern würde ein Angriff mit der aktuellen Rechenkraft des gesamten Bitcoin-Netzwerks (unter der Annahme, dass es auf diesem Stand bleibt und es keinen weiteren technischen Fortschritt gibt) 77 Jahre dauern. Unter der Annahme, dass die zur Verfügung stehende Rechenleistung sich alle 24 Monate verdoppelt, wären es 10-12 Jahre. Garrett ist der Auffassung, das Passwörter selten wirklich zufällig sind und damit schwächer sind, als es theoretisch möglich wäre. Er merkt auch an, dass die Rechenleistung von Grafikkarten und von möglicher Spezialhardware (ASICs) schneller als prognostiziert zunimmt.

Anzumerken ist, dass Fruhwirth in seinem Rechenbeispiel von einem PBKDF2-Schwierigkeitsgrad von 3.000.000 Wiederholungen ausgeht. Bei Laufwerken, die vor vielen Jahren verschlüsselt wurden, kann der Schwierigkeitsgrad durchaus um den Faktor 20 bis 30 geringer sein. Mehr dazu im nächsten Abschnitt.

Schlüsselableitungsfunktionen

Zur Verschlüsselung von Datenträgern werden symmetrische Verschlüsselungsverfahren verwendet, beispielsweise AES (“Advanced Encryption Standard”). Symmetrische Verschlüsselungsverfahren nutzen zum Verschlüsseln und zum Entschlüsseln den selben kryptografischen Schlüssel. Dieser muss eine bestimmte Länge haben, beispielsweise 256 Bit.

In der Praxis wird eine Passphrase nicht direkt als kryptografischer Schlüssel verwendet. Stattdessen wird eine Schlüsselableitungsfunktion ausgewählt, die aus der Passphrase einen kryptografischen Schlüssel erzeugt. Das hat mehrere Vorteile:

Der letzte Punkt ist hier relevant. Um eine Passphrase auszuprobieren, muss die Schlüsselableitungsfunktion ausgeführt werden. Je aufwändiger die verwendete Funktion ist, umso aufwändiger ist es dementsprechend auch, eine große Menge möglicher Passphrasen durchzuprobieren. Moderne Grafikkarten können tausende Rechenoperationen parallel ausführen. Deshalb werden mittlerweile Schlüsselableitungsfunktionen wie etwa Argon2id bevorzugt, die resistent gegen Angriffe mit spezieller Hardware (Grafikkarten oder ASICs) sind, indem sie nicht nur viel Rechenzeit, sondern auch viel Arbeitsspeicher benötigen und sich nicht gut parallel ausführen lassen.

Beim Anlegen eines verschlüsselten Datenträgers wird der Schwierigkeitsgrad meist so gewählt, dass wir etwa eine Sekunde lang warten müssen. Ein Datenträger, der vor vielen Jahren auf langsamer Hardware verschlüsselt wurde, wird daher eine ältere Schlüsselableitungsfunktion und einen geringeren Schwierigkeitsgrad verwenden als ein Datenträger, den wir heute auf einem modernen Computer verschlüsseln. Deshalb kann es sinnvoll sein, den Schwierigkeitsgrad der Funktion gelegentlich zu erhöhen oder auf eine modernere Funktion umzusteigen. Genau das empfiehlt Matthew Garrett in seinem Aufruf.

Das ältere LUKS1 unterstützt nur die Schlüsselableitungsfunktion PBKDF2, die zwar eine einstellbare Rechenzeit, aber kaum Arbeitsspeicher benötigt. PBKDF2 ist lediglich eine einstellbare Anzahl Wiederholungen (“Iterationen”) des SHA256- oder SHA512-Hashverfahrens. Das neuere LUKS2 verwendet standardmäßig die Funktion Argon2 mit einstellbarer Rechenzeit und einstellbarem Arbeitsspeicherbedarf. Sowohl Garrett als auch beispielsweise das OWASP und KeePassXC empfehlen die Variante Argon2id. Auch das Forensik-Unternehmen elcomsoft stellt fest, dass LUKS2 Brute-Force-Angriffe mit Grafikkarten erheblich schwerer macht.

Auch mit LUKS1 und dessen Schlüsselableitungsfunktion PBKDF2 besteht aktuell kein Grund zur Sorge, wenn die verwendete Passphrase ausreichend komplex ist.

Angriffe auf verschlüsselte Daten(träger)

Einen Eindruck über die Methoden und Wege, Passwörter und Passphrasen zu erlangen bzw. zu umgehen, liefert beispielsweise das Kapitel “Analyzing Filesystem Encryption” des Buches “Practical Linux Forensics: A Guide for Digital Investigators” (übersetzt):

Die Entschlüsselung geschützter Daten erfordert ein/e Passwort/Passphrase oder eine Kopie des kryptografischen Schlüssels (eine Zeichenkette oder Schlüsseldatei). Die forensische Herausforderung besteht darin, den Entschlüsselungsschlüssel zu finden. Einige bekannte Methoden zur Wiederherstellung von Passwörtern/Schlüsseln sind:

Wie ist die Einschätzung anderer zu diesem Thema? Mikko Hyppönen schrieb in “If It’s Smart, It’s Vulnerable” im Kapitel “Cracking Passwords” (übersetzt):

Die Behörden verfügen zu diesem Zweck über ziemlich beeindruckende Entschlüsselungssysteme. Ein Bürogebäude in Den Haag beispielsweise verfügt über Entschlüsselungshardware von der Größe eines Supercomputers, die ihr eigenes Kraftwerk benötigt. Mit einer solchen Hardware können Millionen von Passwortoptionen pro Sekunde getestet werden. Dennoch kann es Monate dauern, eine einzige verschlüsselte Datei [oder ein verschlüsseltes Laufwerk] zu öffnen.

Automatisierte Entschlüsselungssysteme verwenden eine clevere Taktik, um diesen Vorgang zu beschleunigen. Wird eine kennwortgeschützte Datei auf der Festplatte eines Verdächtigen gefunden, werden alle Dateien auf dem Laufwerk indiziert und alle einzelnen Wörter aus jeder Datei gesammelt, um sie als Kennwörter zu testen. Wenn dies nicht funktioniert, werden alle gefundenen Wörter in umgekehrter Reihenfolge getestet und das Laufwerk nach ungenutzten Bereichen und gelöschten Dateien durchsucht, und die darin enthaltenen Wörter werden ausprobiert. In erstaunlich vielen Fällen lassen sich die Dateien auf diese Weise entschlüsseln.

Noch bessere Erfolgsaussichten biete jedoch eine andere Methode:

Die beste Taktik besteht darin, einen Kriminellen abzulenken und ihn daran zu hindern, seine Geräte bei der Verhaftung zu zerstören oder zu sperren. Bei einer von EUROPOL koordinierten Verhaftung saß der Verdächtige in einem Café mit einem Laptop, als sich eine verdeckte Ermittlerin an denselben Tisch setzte und einige Augenblicke später ihren Kaffee verschüttete. Die Verdächtige stand auf, woraufhin ein männlicher Beamter, der hinter ihr wartete, vortrat und den unverschlossenen Computer zur forensischen Analyse mitnahm.

Auch der Laptop von Ross Ulbricht, dem Betreiber der Darknet-Plattform “Silk Road”, wurde im entsperrten Zustand beschlagnahmt. In einem anderen Fall wurde der Betreiber des Neonazi-Forums “Thiazi” mit einem Telefonanruf dazu gebracht, kurz vor dem Zugriff seinen Computer hochzufahren und zu entsperren.

Trotz allem gilt das Fazit des OWASP Password Storage Cheat Sheets (das sich zwar an Onlinedienste richtet, sich aber auf die Verschlüsselung gespeicherter Daten übertragen lässt):

Starke Kennwörter, die mit modernen Hashing-Algorithmen und unter Verwendung bewährter Hashing-Verfahren gespeichert werden, sollten für einen Angreifer praktisch unmöglich zu knacken sein.

Empfehlungen

Für verschlüsselte Datenträger, die sich in deinem Besitz befinden, teilen wir die Empfehlung von mjg59, auf LUKS2 zu upgraden und die Schlüsselableitungsfunktion zu Argon2id zu ändern (übersetzt):

Was die Sache noch schlimmer macht, ist die Tatsache, dass die Distributionen [die Schlüsselableitungsfunktion] im Allgemeinen in keiner Weise aktualisieren. Wenn Sie Ihr System installiert haben und pbkdf2 als KDF erhalten haben, verwenden Sie wahrscheinlich immer noch pbkdf2, selbst wenn Sie auf ein System aktualisiert haben, das bei einer Neuinstallation argon2id verwenden würde. Glücklicherweise kann das alles an Ort und Stelle behoben werden. Beachten Sie aber, dass Sie, wenn hier etwas schief geht, den Zugriff auf alle Ihre verschlüsselten Daten verlieren könnten. Bevor Sie also irgendetwas tun, stellen Sie sicher, dass alle Daten gesichert sind (und finden Sie heraus, wie Sie das Backup sicher aufbewahren können, damit Ihre Daten nicht auf diese Weise beschlagnahmt werden).

Für Datenträger, die sich außerhalb deiner Reichweite befinden, haben wir eine Übersicht über gängige Linux-Distributionen und die von ihnen verwendeten Schlüsselableitungsfunktionen aufgestellt.

Upgraden verschlüsselter Laufwerke

mjg59 schreibt (übersetzt):

Stellen Sie zunächst sicher, dass Sie eine möglichst aktuelle Version Ihrer Distribution verwenden. Wenn Sie Werkzeuge haben, die das LUKS2-Format unterstützen, bedeutet das nicht, dass Ihre Distribution das alles integriert hat, und alte Versionen Ihrer Distribution erlauben es Ihnen vielleicht, Ihr LUKS-Setup zu aktualisieren, ohne das ein Booten von diesem Format zu unterstützen. Wenn Sie außerdem ein verschlüsseltes /boot verwenden, sollten Sie jetzt damit aufhören - sehr aktuelle Versionen von grub2 unterstützen LUKS2, aber nicht argon2id, und das macht Ihr System unbootbar.

Als nächstes müssen Sie herausfinden, welches Gerät unter /dev zu Ihrer verschlüsselten Partition gehört. Führen Sie folgene Eingabe aus

lsblk

und suchen Sie nach Einträgen, die den Typ “crypt” aufweisen. Das Gerät darüber in der Baumstruktur ist das eigentliche verschlüsselte Gerät. Notieren Sie diesen Namen und führen Sie

sudo cryptsetup luksHeaderBackup /dev/whatever --header-backup-file /tmp/luksheader

aus und kopieren Sie es auf einen USB-Stick oder ähnliches. Wenn hier etwas schief geht, können Sie ein Live-Image booten und Folgendes ausführen

sudo cryptsetup luksHeaderRestore /dev/whatever --header-backup-file luksheader

um es wiederherzustellen.

(Ergänzung: Sobald alles funktioniert, löschen Sie diese Sicherung! Es enthält den alten schwachen Schlüssel, und jemand kann ihn möglicherweise dazu verwenden, Ihren Festplattenverschlüsselungsschlüssel mit dem alten KDF zu erzwingen, selbst wenn Sie das KDF auf der Festplatte aktualisiert haben).

Als nächstes führen Sie folgendes aus

sudo cryptsetup luksDump /dev/whatever

und suchen Sie die Zeile Version:. Wenn es Version 1 ist, müssen Sie den Header auf LUKS2 aktualisieren. Führen Sie dazu aus

sudo cryptsetup convert /dev/whatever --type luks2

und folgen Sie den Eingabeaufforderungen. Vergewissern Sie sich, dass Ihr System noch bootet, und wenn nicht, gehen Sie zurück und stellen Sie die Sicherung Ihres Headers wieder her. Wenn zu diesem Zeitpunkt alles in Ordnung ist, führen Sie

sudo cryptsetup luksDump /dev/whatever

und suchen Sie nach der PBKDF: Zeile in jedem Keyslot (achten Sie nur auf die Keyslots, ignorieren Sie alle Verweise auf pbkdf2, die nach der Digests:-Zeile kommen). Wenn die PBKDF entweder “pbkdf2” oder “argon2i” lautet, sollten Sie sie in argon2id umwandeln. Führen Sie dazu Folgendes aus

sudo cryptsetup luksConvertKey /dev/whatever --pbkdf argon2id

und folgen Sie den Aufforderungen. Wenn Ihr Laufwerk mit mehreren Passwörtern verknüpft ist, haben Sie mehrere Keyslots, und Sie müssen diesen Vorgang für jedes Passwort wiederholen.

Das Upgrade des Persistent Storage in Tails erfordert Administratorrechte, die du erhälst, indem du beim Anmeldebildschirm ein Administrationspasswort vergibst. Außerdem darf beim Upgrade von LUKS1 auf LUKS2 der persistente Speicher nicht eingebunden sein.

Schlüsselableitungsfunktionen von Linux-Distributionen

Das Systemwerkzeug cryptsetup führte in Version 2.0.0 (veröffentlicht 2017-12-10) die Unterstützung für das LUKS2-Format ein und nutzt dafür standardmäßig Argon2i mit 128 MB Arbeitsspeicherbedarf und 800 ms Rechenzeit (auf dem verwendeten Computer). In Version 2.0.1 (veröffentlicht 2018-01-21) wurde der Arbeitsspeicherbedarf auf 1 GiB erhöht. Das LUKS2-Format selbst ist jedoch erst seit Version 2.1.0 (2019-02-08) Standard. Seit Version 2.4.0 (veröffentlicht 2021-08-18) verwendet cryptsetup standardmäßig Argon2id. Linux-Distributionen enthalten allerdings oftmals nicht die neuesten Softwareversionen und verwenden auch nicht zwangsläufig die Standardoptionen.

Entscheidend ist der Zeitpunkt der Verschlüsselung bzw. die zur Verschlüsselung verwendete Version des Betriebssystems. Falls du beispielsweise einen Datenträger im Rahmen der Installation von Ubuntu 18.04 verschlüsselt hast und dein Betriebssystem später auf Ubuntu 22.04 aktualisiert hast, wird er wahrscheinlich mit dem älteren LUKS1 verschlüsselt sein. Die folgende Tabelle zeigt, welche Verschlüsselungsverfahren die Installationsprogramme bzw. Installationsanleitungen der untersuchten Linux-Distributionen verwenden.

Linux-Distribution Version der Distribution Release Date Verfahren Diskussion
Arch Linux Wiki ab 2018-01-08, standardmäßig ab 2019.03.01 - LUKS2 mit Argon2i
Wiki ab 2021-08-22, standardmäßig ab 2021.09.01 - LUKS2 mit Argon2id
Debian ab 10 2019-07-06 LUKS2 mit Argon2i
11.6.0 2022-12-17 LUKS2 mit Argon2i
Fedora Linux ab 30 2019-04-30 LUKS2 mit Argon2i
38 2023-04-18 LUKS2 mit Argon2id
Kali Linux 2023.1 2023-03-13 LUKS2 mit Argon2id
Linux Mint 20 2020-06-27 LUKS2 mit Argon2i
21.1 2022-12-20 LUKS2 mit Argon2id
Manjaro 22.1.0 (getestet mit manjaro-xfce-22.1.0-230421) 2023-04-21 LUKS1 mit PBKDF2
openSUSE Leap 15.4 2022-06-08 LUKS1 mit PBKDF2
Tumbleweed Snapshot 20230501 2023-05-01 LUKS1 mit PBKDF2
Pop!_OS 22.04 2022-04-25 LUKS2 mit Argon2id
Qubes OS ab 4.1 2022-02-04 LUKS2 mit Argon2i
4.1.2 2023-03-14 LUKS2 mit Argon2i Qubes-Forum, Reddit
Tails 5.12 2023-04-19 LUKS1 mit PBKDF2
5.13 (geplant) 2023-05 LUKS2 Issue 19615, Issue 19633
Ubuntu Linux 18.04 LTS 2018-04-23 LUKS1 mit PBKDF2
19.04 2019-04-18 LUKS2 mit Argon2i
22.04.2 LTS 2023-02-23 LUKS2 mit Argon2id
23.04 2023-04-20 LUKS2 mit Argon2id

Neuinstallation statt Upgrade

Wie auch Garrett andeutet, ist es möglich, dass Linux-Installationen ein Upgrade auf LUKS2 oder den Umstieg auf Argon2id nicht unterstützen bzw. danach nicht mehr starten können. Um dieses Risiko auszuschließen, kannst du auch deine Daten verschlüsselt sichern und dein Betriebssystem neu aufsetzen. (Ob sich das lohnt, siehst du in der obigen Tabelle. Falls du Tails verwendest, warte damit noch bis zum kommenden Release.) Auch von verschlüsselten Datenträgern, von denen kein Betriebssystem startet, solltest du vor dem Upgrade ein Backup machen. Bei der Gelegenheit kannst du auch nicht mehr benötigte Daten löschen – denn nicht vorhandene Daten können auch nicht entschlüsselt werden.

Für jene, die sich nicht allein auf ein Verfahren verlassen möchten, empfehlen wir: Verschlüsselt eure Laufwerk zuerst mit LUKS2 und speichert besonders schützenswerte Inhalte in zusätzlichen VeraCrypt-Containern mit einem anderen sicheren Passwort und einem anderen Verschlüsselungsverfahren. Dadurch sind eure Daten auch dann noch geschützt, wenn Schwachstellen in einem Verfahren entdeckt werden. Allerdings nutzt VeraCrypt derzeit auch noch PBKDF2 als Schlüsselableitungsfunktion.

Schutzmaßnahmen gegen Zugriffe auf entsperrte Geräte

Eine solche zweistufige Verschlüsselung kann auch gegen Zugriffe auf entsperrte Geräte helfen, indem besonders schützenswerte Inhalte seperat verschlüsselt sind und nur entschlüsselt werden, wenn es erforderlich ist.

Ebenfalls nützlich kann es sein, einen Computer z. B. durch den Kippschalter einer Steckdosenleiste oder das Ziehen des Netzstecker und der damit verbunden Unterbrechung der Stromversorgung auszuschalten. Bei Laptops sollte natürlich zuvor der Akku entfernt werden. Eine andere Möglichkeit, einen Computer schnell auszuschalten oder sogar zu löschen, bieten Geräte wie BusKill.

Schutzmaßnahmen gegen Angriffe auf Passwörter und Passphrasen

Den oben genannten Angriffen auf verschlüsselte Daten(träger) stehen einige Gegenmaßnahmen gegenüber. Verwendete Verfahren und Software sollte möglichst auf dem aktuellen Stand sein (z. B. LUKS2 mit Argon2id). Daneben können insbesondere bei der Wahl von und dem Umgang mit Passwörtern bzw. Passphrasen Fehler vermieden werden.

Wähle ein Passwort bzw. eine Passphrase mit hoher Entropie – oder mit anderen Worten: so dass genügend mögliche Passwörter bzw. Passphrasen in Frage kommen.

Dafür bieten sich Verfahren wie Diceware an. Die Würfel sorgen für den notwendigen Zufall, während sich die Wörter mittels Eselsbrücken gut merken lassen. Die Electronic Frontier Foundation (EFF) empfiehlt in Creating Strong Passwords Using Dice die Verwendung von mindestens sechs zufällig ausgewählten Wörtern aus einer 7776 Wörter umfassenden Liste. Die EFF stellt dazu eine englischsprachige Wortliste bereit. Wir haben eine deutschsprachige Diceware-Wortliste “de-7776” zusammengestellt, die demnächst noch einmal überarbeitet wird.

Führe das Verfahren am besten offline mit Würfeln durch. Ein Beispiel für sechs Wörter mit jeweils fünf Würfeln:

  1. 36433 jugend
  2. 64355 weinkarte
  3. 36541 kampagne
  4. 63656 wahnsinn
  5. 23654 entkernen
  6. 34466 hemmschwelle

Die im Beispiel erzeugte Passphrase lautet demnach: “jugend weinkarte kampagne wahnsinn entkernen hemmschwelle”.

Die Wortlisten sind 7776 Wörter lang, weil beim Werfen von fünf sechsseitige Würfeln 6^5 = 7776 verschiedene Ergebnisse möglich sind. Jedes Wort hat eine Entropie von log2(7776) ≈ 13 Bit. Eine Passphrase aus sechs ausgewürfelten Wörtern ist folglich 5 × 13 ≈ 78 Bit stark. Es gibt 2^78 ≈ 3 × 10^23 verschiedene mögliche Passphrasen aus sechs Wörtern. Ein Passwort aus dreizehn zufällig ausgewählten Groß- und Kleinbuchstaben sowie Ziffern hat ebenfalls eine Entropie von 78 Bit: eines von 62 möglichen Zeichen bringt log2(62) ≈ 6 Bit Entropie, dreizehn zufällige Zeichen demzufolge 78 Bit.

Da die Schlüsselableitungsfunktion PBKDF2 und das Bitcoin-Netzwerk den gleichen bzw. einen ähnlichen Hash-Algorithmus verwenden, lassen sich ihre Leistungen gut vergleichen. Das Bitcoin-Netzwerk, das in der Diskussion auf Reddit als Referenz herangezogen wurde, berechnet derzeit 3 × 10^20 Hashes pro Sekunde. Für eine PBKDF2-Schlüsselableitung mit 100.000 Iterationen könnte das Netzwerk damit 3 × 10^15 Passwörter bzw. Passphrasen pro Sekunde ausprobieren. Um alle möglichen Passphrasen aus sechs Wörtern auszuprobieren, bräuchte es bei konstanter Rechenleistung folglich (3 × 10^23) / (3 × 10^15) = 10^8 Sekunden, oder rund drei Jahre. Im Mittel muss die Hälfte aller Möglichkeiten ausprobiert werden, was rund eineinhalb Jahre dauern würde. Bei einer Passphrase aus fünf statt sechs Wörtern wären es im Durchschnitt nur knapp zwei Stunden. Allerdings gehen wir davon aus, dass die meisten Angreifer nicht über eine derart hohe Rechenleistung verfügen – erst recht nicht für einen langen Zeitraum. Mit Argon2 statt PBKDF dürften beide Angriffe um mehrere Größenordnungen schwerer sein.

Bedenke, dass Passwörter wie IgjAu23UiB!, die sich beispielsweise aus den Anfangsbuchstaben eines Satzes (“Ich gehe jeden Abend um 23 Uhr ins Bett!”) zusammensetzen, nicht zufällig sind.

Der Onlinedienst 1Password hat im Jahr 2021 Beispiele für Passwörter und den Aufwand, um diese zu knacken, aufgestellt: How strong should your account password be? Here’s what we learned. Die genannten Kosten könnten jedoch schon veraltet sein. Weitere Texte zur Wahl von Passwörtern finden sich u. a. bei digitalcourage.de und kuketz-blog.de. Die FAQ von cryptsetup bieten ebenfalls Informationen und Empfehlungen.

Für den Umgang mit Passwörtern bzw. Passphrasen empfehlen wir:

Möglicherweise begegnen dir in diesem Zusammenhang auch Verfahren der “glaubhaften Abstreitbarkeit”, um das Vorhandensein verschlüsselter Daten zu verschleiern. VeraCrypt bietet dafür die Funktionen Hidden Volume und Hidden Operating System. Bedenken und Nacheile dazu werden u. a. hier benannt:

Fazit

Unserer Einschätzung nach kann, basierend auf den vorhandenen Informationen, nicht ausschließlich PBKDF2 und LUKS1 für die Entschlüsselung verantwortlich gemacht werden. Es ist wichtig, ein starkes Passwort bzw. Passphrase zu verwenden und die beschriebenen Empfehlungen im Umgang mit ihnen zu beachten. Die Verwendung aktueller Software und Verfahren erhöht die Sicherheit und reduziert eventuelle Angriffsflächen.

Das Upgrade der Schlüsselableitungsfunktion ist keine einmalige Aufgabe. Du solltest alle paar Jahre prüfen, ob die verwendete Funktion noch als sicher eingeschätzt wird, und den Schwierigkeitsgrad anpassen. Dies betrifft nicht nur LUKS, sondern alle passwortbasierten Verschlüsselungswerkzeuge wie etwa VeraCrypt oder KeePassXC.

Weitere Diskussionen und Texte