PIM immer sinnvoll?

Kürzlich bin ich im Internet über die Frage gestolpert, ob der Einsatz von PIM in VeraCrypt immer sinnvoll ist. Zum Beispiel auch dann, wenn man den Container mit einem 128-stelligen zufälligen Passwort abschließt. Dabei handelt es sich um die maximal unterstützte Passwortlänge der Applikation.

Kurz zur Erinnerung: Bei PIM (Personal Iterations Multiplier) wird das eingegebene Passwort über ein hardwareintensives Verfahren zu einem Schlüssel abgeleitet. Ein einfaches Beispiel hierfür ist eine vielfache Hashbildung: Anstelle eine Passphrase direkt zu verwenden, durchläuft diese vorher mehrmals eine Hashfunktion. Dieser Vorgang kann durch einen Angreifer nicht abgekürzt werden. Somit wäre dieser gezwungen, jeden möglichen Passwortkandidaten in gleicher Weise zu behandeln. Dies stellt einen hohen Aufwand dar und verhindert so einen Offline-Brute-Force-Angriff. Auf diese Weise sind sogar Passwörter aus einem Wörterbuch schwierig zu brechen.

Es ist wichtig zu verstehen, dass bei VeraCrypt das vom Benutzer eingegebene Passwort, mit oder ohne PIM, nicht unmittelbar verwendet wird, um die Inhaltsdaten auf der Festplatte zu verschlüsseln. Vielmehr wird vor der Formatierung ein durch Mausbewegungen erzeugter zufälliger Schlüssel verwendet. Dieser Schlüssel wird anschließend auf dem Datenträger abgelegt. Damit nicht jeder die Daten damit entschlüsseln kann, wird der Schlüssel durch die Passphrase des Benutzers verschlüsselt. An dieser Stelle kommt dann PIM zum Einsatz. Soll der Datenträger aufgeschlossen werden, wird die Passphrase des Benutzers verwendet, durchläuft aufgrund von PIM mehrere Iterationen und wird am Ende zu einem Schlüssel abgeleitet, welcher den Schlüssel für die Inhaltsdaten entschlüsselt.

Warum findet eine solche Entkoppelung zwischen Benutzerpassphrase und dem tatsächlichen Schlüssel statt? Ganz einfach: Auf diese Weise ist sichergestellt, dass der Schlüssel für die Inhaltsdaten wirklich zufällig ist und es ist möglich, das Benutzerpasswort zu ändern, ohne alle Daten mit der alten Passphrase entschlüsseln und mit der neuen Passphrase verschlüsseln zu müssen.

Die Inhaltsdaten sind also mit einem 256-Bit-Schlüssel gesichert, welcher durch die Mausbewegungen des Benutzers erzeugt wurde. Besser wird der Schutz also nicht. Somit sind nur Passphrasen sinnvoll, die diese 256 Bit abdecken. Jedes zusätzliche Zeichen führt nur zu einer Dopplung, sodass zwei unterschiedliche Passwörter denselben Schlüssel erzeugen. Unter der Prämisse, dass wir Groß- und Kleinbuchstaben und die Ziffern 0 bis 9 verwenden, hilft der Logarithmus zur Bestimmung der maximal sinnvollen Länge:

\log_{62}\left(2^{256}\right) = \frac{\log(2^{256})}{\log(62)} = \frac{256 \cdot \log(2)}{\log(62)} \approx 43

Mehr als 43 Stellen sind für ein Passwort also nicht sinnvoll, sofern die Zeichen zufällig gewählt wurden. Mit 43 zufälligen Zeichen aus diesem Alphabet bekommen wir einen perfekten 256-Bit-Schlüssel.

Auf diese Weise lässt sich die ursprüngliche Frage beantworten. Wenn ein Angriff ohnehin auf die vollständige Schlüsselsuche aller 256-Bit-Schlüssel hinauslaufen müsste, könnte der durch PIM gesicherte Teil übersprungen werden. Mit einem zufällig gewählten Schlüssel, welcher die volle Schlüssellänge der Blockchiffre abdeckt, bringt der Einsatz von PIM somit keinen zusätzlichen Nutzen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert