如何使用私钥而不是密码解密 ecryptfs 文件

如何使用私钥而不是密码解密 ecryptfs 文件

我的 Synology NAS DS413(使用 ecryptfs)上有一个加密的共享文件夹。我可以使用 Synologies GUI 手动挂载加密文件夹并毫无问题地读取解密文件。由于某种原因,我始终无法使用我的密码装载加密的文件夹。但我始终可以使用 ecryptfs 设置过程中生成的私钥来完成此操作。

因此,我一直在研究如何在没有 Synology 的情况下解密加密文件(例如,如果这个东西着火或被盗,我需要从备份中恢复)。我已经阅读了一些关于使用 linux 和 encryptfs-utils 解密 synology/ecryptfs 加密共享的线程和 howto。但指南总是告诉您提供密码,并且从未提及使用密钥进行解密。所以我的问题是如何使用密钥解密(可以使用 Synology 的软件安装和解密)?我的密钥是 80 字节并且是二进制的。前 16 个字节仅为整数,其余字节似乎是随机十六进制。

感谢您的任何提示!

答案1

简短回答:使用密码短语$1$5YN01o9y来显示密钥文件中的实际密码短语ecryptfs-unwrap-passphrase(反斜杠转义$字母):

printf "%s" "\$1\$5YN01o9y" | ecryptfs-unwrap-passphrase keyfile.key -

然后将您的密码与您可能已经知道的说明之一一起使用,例如 AlexP 的回答此处或罗伯特·卡斯尔的文章

或者在一行中完成所有操作:

mount -t ecryptfs -o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes,passwd=$(printf "%s" "\$1\$5YN01o9y" | ecryptfs-unwrap-passphrase /path/to/keyfile.key -) /path/to/encrypted/folder /path/to/mountpoint

我刚刚使用密钥文件测试了整个解密过程,并可以确认其工作原理:

  • 在 DSM 6.2 中创建新的加密共享文件夹并下载密钥文件。
  • 关闭 NAS,移除驱动器,将其连接到 Ubuntu x64 18.04.2 计算机,并在那里安装 raid 和卷组。
  • 使用上面提到的安装命令和下载的密钥文件安装ecryptfs-utils并成功访问解密的数据。

致谢:我发现$1$5YN01o9y-passphrase 在德国 Synology 论坛中的帖子。可能真正发现这个秘密的用户2014 年在那里被称为 Bastian (b666m)

答案2

参见“如何在 Linux 中恢复 Synology 加密文件夹” 作者:罗伯特·卡斯尔。摘要:

MOUNTOPTIONS=""
for option in                           \
  "key=passphrase"                      \
  "ecryptfs_cipher=aes"                 \
  "ecryptfs_key_bytes=32"               \
  "ecryptfs_passthrough=no"             \
  "ecryptfs_enable_filename_crypto=yes" \
; do
  MOUNTOPTIONS="${MOUNTOPTIONS}${MOUNTOPTIONS:+,}$option"
done
sudo mount -t ecryptfs -o $MOUNTOPTIONS,passwd=$PASSWORD $CRYPTDIR $TARGET

相关内容