
Ich habe vor Kurzem den Sprung gewagt und das Upgrade von 14.04 auf 16.04 akzeptiert. Ich habe den Computer verlassen, während er Pakete installierte. Als ich zurückkam, hatte ich einen schwarzen Bildschirm, auf dem nur ein einziger Cursor blinkte.
Nach dem Zurücksetzen kam ich zu dem Schluss, dass eskaputtes lohnt sich nicht mehr, es zu reparieren.
Wie kann ich verschlüsselte Daten wiederherstellen?
Antwort1
Wie habe ich das Problem behoben:
Ich habe das Ubuntu-Installationsprogramm gestartet und meine Root-Partition gelöscht. Die neue Neuinstallation fühlt sich viel gesünder an als die alte und ist daher wahrscheinlich sowieso notwendig.
Beim ersten Login erhielt ich eine Erinnerung, meinen ecryptfs-Schlüssel an einem sicheren Ort zu speichern -Ich kann mich nicht erinnern, dies bei meiner vorherigen Installation getan zu haben.
Als ich mein Home-Ordner-Array zusammenstellte, fand ich, was ich für meine verschlüsselten Daten hielt:
root@computer:~/mnt/user# ls -la
total 8
dr-x------ 2 user user 4096 jul 2 2011 .
drwxr-xr-x 8 root root 4096 feb 18 2015 ..
lrwxrwxrwx 1 user user 56 jul 2 2011 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
lrwxrwxrwx 1 user user 33 jul 2 2011 .ecryptfs -> /home/.ecryptfs/user/.ecryptfs
lrwxrwxrwx 1 user user 32 jul 2 2011 .Private -> /home/.ecryptfs/user/.Private
lrwxrwxrwx 1 user user 52 jul 2 2011 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt
Aber ich konnte es nicht entsperren.
root@computer:~# ecryptfs-unwrap-passphrase /root/mnt/user/.ecryptfs/wrapped
Passphrase:
ffffffffffffffffffffffffffffffff
root@computer:~# ecryptfs-recover-private /root/mnt/user
INFO: Found [/root/mnt/user].
Try to recover this directory? [Y/n]:
INFO: Could not find your wrapped passphrase file.
INFO: To recover this directory, you MUST have your original MOUNT passphras
INFO: When you first setup your encrypted private directory, you were told t
INFO: your MOUNT passphrase.
INFO: It should be 32 characters long, consisting of [0-9] and [a-f].
Enter your MOUNT passphrase:
INFO: Success! Private data mounted at [/tmp/ecryptfs.lls9FwPj].
root@computer:~# ls -la /tmp/ecryptfs.lls9FwPj
total 8
dr-x------ 2 user user 4096 Jul 2 2011 .
drwxrwxrwt 11 root root 4096 Sep 11 11:08 ..
lrwxrwxrwx 1 user user 32 Jul 2 2011 .Private -> /home/.ecryptfs/user/.
lrwxrwxrwx 1 user user 33 Jul 2 2011 .ecryptfs -> /home/.ecryptfs/user/
lrwxrwxrwx 1 user user 56 Jul 2 2011 Access-Your-Private-Data.desktop -
lrwxrwxrwx 1 user user 52 Jul 2 2011 README.txt -> /usr/share/ecryptfs-
Keine Fehler, aber der Einhängepunkt enthält nur dieselben unverschlüsselten Daten wie der Quellordner.
Mit habe ecryptfs-unwrap-passphrase /root/mnt/user/.ecryptfs/wrapped-passphrase
ich bekommenASchlüssel, aber leider war es derselbe, den ich bekommen hätte, wenn ich die Datei nicht als Argument angegeben hätte. Ich schätze also, dass ich nur meinen aktuellen Schlüssel bekommen habe, nicht den für die alten Daten.
Die alten und neuen wrapped-passphrase
Dateien scheinen gleich zu sein:
root@computer:~# mount | grep md0
/dev/md0 on /root/mnt type ext4 (rw,relatime,data=ordered)
root@computer:~# md5sum /home/user/.ecryptfs/wrapped-passphrase /root/mnt/user/.ecryptfs/wrapped-passphrase
52da6f1ea1ffff114795c7613b5c560e /home/user/.ecryptfs/wrapped-passphrase
52da6f1ea1ffff114795c7613b5c560e /root/mnt/user/.ecryptfs/wrapped-passphrase
Ich fand das sehr merkwürdig, da es md0
bei der Installation nicht einmal zusammengebaut war.
Dieses Unterrätsel wurde jedoch dadurch gelöst, dass ich richtig las:
root@computer:~# ls -l /root/mnt/user/.Private
lrwxrwxrwx 1 user user 32 Jul 2 2011 /root/mnt/user/.Private -> /home/.ecryptfs/user/.Private
Scheinbar habe ich über einen symbolischen Link auf den neuen Home-Ordner anstatt auf die alten Daten reagiert.
Das Lesen der richtigen Datei ergab einen anderen (richtigen) Schlüssel!
root@computer:~/mnt/.ecryptfs/user# ecryptfs-unwrap-passphrase /root/mnt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Passphrase:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Das ist eigentlich die Antwort auf meine ursprüngliche Frage: Die wrapped-passphrase
Datei ist mit meinem Anmeldekennwort verschlüsselt. Solange ich also die Datei habe und mein Kennwort kenne, sollte ich auf meine Daten zugreifen können.
Die Verwendung einer vernünftigeren Pfad-/Tastenkombination hat leider keinen großen Unterschied gemacht:
root@computer:~/mnt/.ecryptfs/user# ls -al
total 52
drwxr-xr-x 4 user user 4096 Jul 2 2011 .
drwxr-xr-x 3 root root 4096 Jul 2 2011 ..
drwxr-xr-x 121 user user 36864 Sep 8 14:58 .Private
drwx------ 2 user user 4096 Mar 15 2015 .ecryptfs
root@computer:~/mnt/.ecryptfs/user# ecryptfs-recover-private /root/mnt/.ecryptfs/user
INFO: Found [/root/mnt/.ecryptfs/user].
Try to recover this directory? [Y/n]:
INFO: Could not find your wrapped passphrase file.
INFO: To recover this directory, you MUST have your original MOUNT passphrase.
INFO: When you first setup your encrypted private directory, you were told to record
INFO: your MOUNT passphrase.
INFO: It should be 32 characters long, consisting of [0-9] and [a-f].
Enter your MOUNT passphrase:
INFO: Success! Private data mounted at [/tmp/ecryptfs.dKQkSvjC].
root@computer:~/mnt/.ecryptfs/user# ls -al /tmp/ecryptfs.dKQkSvjC
total 52
drwxr-xr-x 4 user user 4096 Jul 2 2011 .
drwxrwxrwt 12 root root 4096 Sep 11 12:32 ..
drwxr-xr-x 121 user user 36864 Sep 8 14:58 .Private
drwx------ 2 user user 4096 Mar 15 2015 .ecryptfs
Da einige der ecryptfs-tools fest codierte Pfade haben, habe ich sogar Folgendes versucht:
root@computer:~# mount /dev/md0 /home
root@computer:~# su - user
Signature not found in user keyring
Perhaps try the interactive 'ecryptfs-mount-private'
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
user@computer:~$ ecryptfs-mount-private
Enter your login passphrase:
Inserted auth tok with sig [e403598bcfe01170] into the user session keyring
mount: No such file or directory
Aber auch da ist nichts dabei.
Das Gleiche tunohnedie Montage funktioniert allerdings auch nicht md0
./home
user@computer:~$ dash -e -x `which ecryptfs-mount-private`
+ PRIVATE_DIR=Private
+ WRAPPING_PASS=LOGIN
+ PW_ATTEMPTS=3
+ TEXTDOMAIN=ecryptfs-utils
+ gettext Enter your login passphrase:
+ MESSAGE=Enter your login passphrase:
+ [ -f /home/user/.ecryptfs/wrapping-independent ]
+ WRAPPED_PASSPHRASE_FILE=/home/user/.ecryptfs/wrapped-passphrase
+ MOUNT_PASSPHRASE_SIG_FILE=/home/user/.ecryptfs/Private.sig
+ /sbin/mount.ecryptfs_private
+ [ -f /home/user/.ecryptfs/wrapped-passphrase -a -f /home/user/.ecryptfs/Private.sig ]
+ tries=0
+ stty -g
+ stty_orig=2d00:5:bd:ca1b:3:1c:7f:1f:4:0:1:0:11:13:1a:ff:12:f:17:16:ff:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ [ 0 -lt 3 ]
+ echo -n Enter your login passphrase:
Enter your login passphrase:+ stty -echo
+ head -n1
+ LOGINPASS=MyLoginPassword
+ stty 2d00:5:bd:ca1b:3:1c:7f:1f:4:0:1:0:11:13:1a:ff:12:f:17:16:ff:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+ echo
+ wc -l
+ [ 2 = 1 ]
+ printf %s\0 MyLoginPassword
+ ecryptfs-insert-wrapped-passphrase-into-keyring /home/user/.ecryptfs/wrapped-passphrase -
Inserted auth tok with sig [93196f7a8af1fdfe] into the user session keyring
+ break
+ [ 0 -ge 3 ]
+ /sbin/mount.ecryptfs_private
mount: No such file or directory
user@computer:~$ ls -l /sbin/mount.ecryptfs*
-rwxr-xr-x 1 root root 25944 jul 13 19:13 /sbin/mount.ecryptfs
-rwsr-xr-x 1 root root 19024 jul 13 19:13 /sbin/mount.ecryptfs_private
Daher passiert beim normalen Anmelden wahrscheinlich irgendein magischer Vorgang (über PAM?), der in meinem Beispiel fehlt.
Durch das Booten einer Live-CD konnte ich auf die Daten zugreifen!
root@ubuntu:~# apt install mdadm
Reading package lists... Done
[...]
root@ubuntu:~# mdadm --assemble /dev/md0 /dev/sd[bc]1
mdadm: /dev/md0 has been started with 2 drives.
root@ubuntu:~# mount /dev/md0 /home
root@ubuntu:/home# ecryptfs-recover-private /home/.ecryptfs/user/.PrivateINFO: Found [/home/.ecryptfs/user/.Private].
Try to recover this directory? [Y/n]:
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] Y
INFO: Enter your LOGIN passphrase...
Passphrase:
Inserted auth tok with sig [f403498bcfd01070] into the user session keyring
INFO: Success! Private data mounted at [/tmp/ecryptfs.uHQ0z177].
root@ubuntu:/home# ls /tmp/ecryptfs.uHQ0z177/ | grep Doc
Documents
Aber selbst dann funktionieren die Tools nicht perfekt:
root@ubuntu:/home# ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
find: ‘/run/user/999/gvfs’: Permission denied
find: File system loop detected; ‘/sys/kernel/debug/pinctrl’ is part of the same file system loop as ‘/sys/kernel/debug’.
Ich fange also an zu denken, dass die meisten Probleme, die ich damit hatte, einfach darauf zurückzuführen sind, dass die Benutzerfreundlichkeit von ecryptfs wahrscheinlich erheblich verbessert werden könnte.
Durch einen Neustart meiner echten Installation kann ich jetzt auf die Daten zugreifen:
root@computer:~# mount /dev/md0 mnt
root@computer:~/mnt/.ecryptfs/user/.Private# cd /root/mnt/.ecryptfs/user/.Private/
root@computer:~/mnt/.ecryptfs/user/.Private# ecryptfs-recover-private .
INFO: Found [.].
Try to recover this directory? [Y/n]:
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n]
INFO: Enter your LOGIN passphrase...
Passphrase:
Inserted auth tok with sig [f4f3498bcfd01070] into the user session keyring
INFO: Success! Private data mounted at [/tmp/ecryptfs.ZMqBVhRu].
root@computer:~/mnt/.ecryptfs/user/.Private# ls /tmp/ecryptfs.ZMqBVhRu | grep Doc
Documents
BEARBEITEN :
Das Suchtool ecryptfs-recover-private
scheint nicht besonders gut darin zu sein, .Private
Ordner zu finden. Die Angabe des richtigen absoluten Pfads funktioniert wie vorgesehen.
ecryptfs-recover-private
sucht nur, wenn kein Argument angegeben ist. Wenn ein Pfad angegeben wird, muss dieser auf den .Private
Ordner zeigen.
In diesem Beispiel:
ecryptfs-recover-private /root/mnt/.ecryptfs/user/.Private
Und ja, wrapped-passphrase
es wird durch die Verwendung Ihres LOGIN-Passworts verschleiert. Wenn Sie Ihr Passwort kennen und über die Datei verfügen, benötigen Sie den eigentlichen KEY-Ausdruck nicht.
Entschuldigen Sie den langen Beitrag, aber hoffentlich kann mein „Tagebuch“ hier jemand anderem ein paar Stunden ersparen.