Как восстановить ecryptfs зашифрованные данные с помощью пароля после поврежденного обновления?

Я недавно сделал решающий шаг и принял обновление от 14,04 до 16,04. Я оставил компьютер, в то время как он устанавливал пакеты, когда я возвратился к нему, у меня был черный экран только с единственным курсором blinkning.

На сброс я сделал вывод, который это был borked вне того, чтобы быть стоящим, чтобы фиксации.

Как восстановить зашифрованные данные?

3
задан 18 March 2017 в 14:43

1 ответ

Как я это исправил:

Я запустил программу установки ubuntu и стер свой корневой раздел. Новая свежая установка кажется намного более здоровой, чем старая, поэтому, вероятно, в любом случае она необходима.

При первом входе в систему я получил напоминание о необходимости сохранить мой ключ ecryptfs в безопасном месте - Я не помню, чтобы делал это из моей предыдущей установки .

Когда я собрал свой массив домашних папок, я обнаружил то, что считал моими зашифрованными данными:

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

Но я не смог его разблокировать.

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-

Ошибок нет, но точка монтирования содержит только те же незашифрованные данные, что и исходная папка.

Используя ecryptfs-unwrap-passphrase /root/mnt/user/.ecryptfs/wrapped-passphrase, я получил ключ , но, к сожалению, он был тем же самым, что и я, если Я не предоставил файл в качестве аргумента, поэтому, думаю, я получил только мой текущий ключ, а не тот, который используется для старых данных.

Похоже, в старых и новых файлах парольной фразы было одно и то же:

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

Я обнаружил, что это очень странно, поскольку md0 даже не был собран во время установки.

Эта тайна, однако, была раскрыта, когда я правильно прочитал:

root@computer:~# ls -l /root/mnt/user/.Private
lrwxrwxrwx 1 user user 32 Jul  2  2011 /root/mnt/user/.Private -> /home/.ecryptfs/user/.Private

Похоже, я действовал по символической ссылке на новую домашнюю папку вместо старых данных.

Чтение правильного файла дало другой (правильный) ключ!

root@computer:~/mnt/.ecryptfs/user# ecryptfs-unwrap-passphrase /root/mnt/.ecryptfs/user/.ecryptfs/wrapped-passphrase 
Passphrase:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Что на самом деле является ответом на мой первоначальный вопрос: файл с парольной фразой зашифрован с использованием моего пароля для входа, поэтому, пока у меня есть этот файл и я знаю свой пароль, я должен иметь доступ мои данные.

Использование более разумного пути / комбинации клавиш, к сожалению, не имело большого значения:

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

Поскольку некоторые из инструментов ecryptfs имеют жестко запрограммированные пути, я даже пробовал:

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

Но и сигары там нет.

Выполнение того же действия без монтирования 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

Так что, вероятно, во время обычного входа в систему происходит какое-то волшебство (через PAM?), Которое отсутствует в моем примере.

Загрузив live-cd, я смог получить доступ к данным!

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

Но даже тогда инструменты работают хуже, чем идеально:

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’.

Итак, я начинаю думать, что большинство проблем, которые у меня были с этим, связаны только с тем, что ecryptfs, вероятно, можно было бы немного улучшить с точки зрения удобства использования.

Перезагружая свою настоящую установку, я теперь могу получить доступ к данным:

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

РЕДАКТИРОВАТЬ:

Похоже, что инструмент "search" ecryptfs-recovery-private не очень хорош для поиска . Личные папки. Указание правильного абсолютного пути работает должным образом.

ecryptfs-recovery-private выполняет поиск, только если не указан аргумент. Если указан путь, он должен указывать на папку .Private .

В этом примере:

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

И, да, закрытая парольная фраза запутана с использованием вашего пароля LOGIN, если вы знаете свой пароль и имеете файл, фактическая распечатка KEY вам не нужна.

Извините за длинный пост, но, надеюсь, мой "дневник" поможет кому-то еще несколько часов.

3
ответ дан 1 December 2019 в 16:21

Другие вопросы по тегам:

Похожие вопросы: