Angenommen wir haben eine Partition /dev/sda1, die verschlüsselt ist:
Zunächst muß das Laufwerk entschlüsselt werden:
CODE:
cryptsetup create old /dev/sda1
Enter passphrase: altesPasswort
Enter passphrase: altesPasswort
Dann erstellen wir einen zweiten Container, bei dem wir die gewünschte neue Passphrase verwenden:
CODE:
cryptsetup -y create new /dev/sda1
Enter passphrase: neuePassphrase
Verify passphrase: neuePassphrase
Enter passphrase: neuePassphrase
Verify passphrase: neuePassphrase
Diesmal verwenden wir den Schalter -y, um Vertippter zu vermeiden.
Jetzt gibt es in /dev/mapper die 2 logischen Geräte old und new, die beide auf die Partition sda1 zeigen. Um die Passphrase zu ändern, müssen wir nun lediglich vom Gerät /dev/mapper/old lesen und nach /dev/mapper/new schreiben. Da dieser Schritt kritisch ist, empfiehlt sich vorher ein Backup der Daten anzulegen. Abhängig von der Größe der Partition und dem verwendeten Verschlüsselungsalgorithmus kann das auch eine Weile dauern. Achtung: Ein Stromausfall oder vorzeitiger Abbruch wird die Daten korrumpieren!
Das umkopieren kann mit dd erledigt werden:
CODE:
dd if=/dev/mapper/read of=/dev/mapper/new bs=8k
cryptsetup remove read
cryptsetup remove new
cryptsetup remove read
cryptsetup remove new
Geschafft, jetzt sind die Daten mit der neuen Passphrase verschlüsselt.
Passphrase-Änderungen sind also etwas umständlich. Verbesserung verspricht LUKS. Leider gibt es anscheinend außer in Gentoo noch keine angepassten Versionen von cryptsetup. Für Debian stehen inoffizielle Pakete hier zur Verfügung. Mit LUKS wird dann auch die Erstellung eines neuen CryptoContainers erleichtert. Ein detailiertes Howto dazu gibt es auf www.saout.de.
Hier können dann mehrere Schlüssel einfach verwendet werden. In einem Header werden die Informationen über den verwendeten Algorithmus, sowie die verschiedenen Passphrases gespeichert. Es wird ein Master Key verwendet, um die Daten zu verschlüsseln. Dieser wird mit einer Passphrase gesichert und verschlüsselt (gehasht) in einem Slots gespeichert. In weiterne Slots können zusätzliche Hashes, die durch eine andere Passphrase erzeugt wurden gespeichert werden. Jede Passphrase kann damit den Master-Key entschlüsseln und zum Entschlüsseln genutzt werden.
Das Prinzip der Passphrase Änderung vereinfacht sich damit dann zu:
Hinzufügen eines neuen Schlüssels zum Ver- und Entschlüsseln des Containers (cryptsetup luksAddKey /dev/sda1), sowie Entfernen des alten Schlüssels des Containers (cryptsetup luksDelKey /dev/sda1 0 [die Null gibt den Slot an, dessen Passphrase gelöscht werden soll)
