it-swarm.com.de

Wie kann ich verschlüsselte Daten nach einem defekten Upgrade mit einem Passwort wiederherstellen?

Ich habe vor kurzem den Sprung gewagt und das Upgrade vom 14.04 auf den 16.04 akzeptiert. Ich habe den Computer während der Installation von Paketen verlassen. Als ich darauf zurückkam, hatte ich einen schwarzen Bildschirm mit nur einem blinkenden Cursor.

Nach dem Zurücksetzen kam ich zu dem Schluss, dass es nicht mehr zu reparieren ist .

Wie kann ich verschlüsselte Daten wiederherstellen?

3
azzid

Wie habe ich das 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, also wahrscheinlich sowieso notwendig.

Bei der ersten Anmeldung wurde ich daran erinnert, meinen ecryptfs-Schlüssel an einem sicheren Ort zu speichern - Ich erinnere mich nicht daran, dass ich dies bei meiner vorherigen Installation getan habe.

Als ich mein Home-Folder-Array zusammenstellte, fand ich meine verschlüsselten Daten:

[email protected]:~/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 freischalten.

[email protected]:~# ecryptfs-unwrap-passphrase /root/mnt/user/.ecryptfs/wrapped
Passphrase:
ffffffffffffffffffffffffffffffff
[email protected]:~# 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].
[email protected]:~# 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 Mount-Punkt enthält nur dieselben unverschlüsselten Daten wie der Quellordner.

Mit ecryptfs-unwrap-passphrase /root/mnt/user/.ecryptfs/wrapped-passphrase habe ich zwar den Schlüssel a erhalten, aber leider war es derselbe, den ich erhalten habe, wenn ich die Datei nicht als Argument angegeben habe. Ich schätze, ich habe nur meinen aktuellen Schlüssel erhalten. nicht die für die alten daten.

Es sieht so aus, als ob sowohl die alten als auch die neuen wrapped-passphrase -Dateien gleich sind:

[email protected]:~# mount | grep md0
/dev/md0 on /root/mnt type ext4 (rw,relatime,data=ordered)
[email protected]:~# 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 seltsam, da der md0 während der Installation nicht einmal zusammengebaut wurde.

Dieses Submysterium wurde jedoch von mir durch richtiges Lesen gelöst:

[email protected]:~# ls -l /root/mnt/user/.Private
lrwxrwxrwx 1 user user 32 Jul  2  2011 /root/mnt/user/.Private -> /home/.ecryptfs/user/.Private

Anscheinend hatte ich einen Symlink zum neuen Ausgangsordner anstelle der alten Daten verwendet.

Das Lesen der richtigen Datei ergab einen anderen (richtigen) Schlüssel!

[email protected]:~/mnt/.ecryptfs/user# ecryptfs-unwrap-passphrase /root/mnt/.ecryptfs/user/.ecryptfs/wrapped-passphrase 
Passphrase:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Welches ist wirklich die Antwort auf meine ursprüngliche Frage: Die wrapped-passphrase- Datei wird mit meinem Anmeldekennwort verschlüsselt, so lange ich diese Datei habe und mein Kennwort kenne, sollte ich in der Lage sein, auf meine Daten zuzugreifen.

Die Verwendung eines normalen Pfads/einer Tastenkombination hat leider keinen großen Unterschied gemacht:

[email protected]:~/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
[email protected]:~/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].
[email protected]:~/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 hardcodierte Pfade haben, habe ich sogar versucht:

[email protected]:~# mount /dev/md0 /home
[email protected]:~# 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.

[email protected]:~$ 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 dort keine Zigarre.

Dasselbe zu tun ohne das Mounten von md0 auf /home funktioniert jedoch auch nicht.

[email protected]:~$ 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
[email protected]:~$ 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

Wahrscheinlich passiert während der normalen Anmeldung etwas Magisches (über PAM?), Das in meinem Beispiel fehlt.

Beim Booten einer Live-CD konnte ich auf die Daten zugreifen!

[email protected]:~# apt install mdadm
Reading package lists... Done
[...]
[email protected]:~# mdadm --assemble /dev/md0 /dev/sd[bc]1
mdadm: /dev/md0 has been started with 2 drives.
[email protected]:~# mount /dev/md0 /home
[email protected]:/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].
[email protected]:/home# ls /tmp/ecryptfs.uHQ0z177/ | grep Doc
Documents

Aber auch dann funktionieren die Werkzeuge nicht einwandfrei:

[email protected]:/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 beginne zu denken, dass die meisten Probleme, die ich damit hatte, nur darin bestehen, dass Ecryptfs auf der Usability-Seite der Dinge wahrscheinlich einiges verbessert werden könnte.

Ich starte meine reale Installation neu und kann jetzt auf die Daten zugreifen:

[email protected]:~# mount /dev/md0 mnt
[email protected]:~/mnt/.ecryptfs/user/.Private# cd /root/mnt/.ecryptfs/user/.Private/
[email protected]:~/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].
[email protected]:~/mnt/.ecryptfs/user/.Private# ls /tmp/ecryptfs.ZMqBVhRu | grep Doc
Documents

EDIT:

Scheint, als ob das "search" -Tool ecryptfs-recover-private nicht so gut darin ist, .Private Ordner zu finden. Den richtigen absoluten Weg zu finden funktioniert wie es sollte.

ecryptfs-recover-private sucht nur, wenn kein Argument angegeben ist. Wenn ein Pfad angegeben wird, muss dieser auf den Ordner .Private verweisen.

In diesem Beispiel:

ecryptfs-recover-private /root/mnt/.ecryptfs/user/.Private

Und ja, wrapped-passphrase wird mit Ihrem LOGIN-Passwort verschleiert, wenn Sie Ihr Passwort kennen und die Datei haben, benötigen Sie nicht den tatsächlichen KEY-Ausdruck.

Entschuldigung für den langen Beitrag, aber hoffentlich kann mein "Tagebuch" hier jemand anderem ein paar Stunden sparen.

2
azzid