我已经实现了下面的代码来加密我的驱动器。
需要澄清有关 ecryptfs 的使用情况。
我已经在脚本中实现了以下代码
FILES_TO_BACKUP="/opt /opt/test /opt/test2 /opt/test3"
KEY=1234
time printf "%s" "${KEY}" | ecryptfs-add-passphrase --fnek - > tmp.txt
cat tmp.txt
#Now get the signature from the output of the above command
SIG=`tail -1 tmp.txt | awk '{print $6}' | sed 's/\[//g' | sed 's/\]//g'`
echo $SIG
for i in $FILES_TO_BACKUP
do
PATH_TO_CRYPT=$i
time mount -i -t ecryptfs $PATH_TO_CRYPT $PATH_TO_CRYPT \
-o noauto,ecryptfs_passthrough,ecryptfs_key_bytes=16,ecryptfs_cipher=aes,ecryptfs_sig=$SIG,ecryptfs_fnek_sig=$SIG,ecryptfs_unlink_sigs
done
从上面的代码中,我将密钥添加到内核密钥环中。从那时起,我使用 SIG(身份验证令牌)将文件夹挂载为加密文件夹。注意,我不再使用 $KEY。
运行脚本后,如果我执行 $mount 命令,我会看到
---
/opt/test on /opt/test type ecryptfs (rw,relatime,ecryptfs_fnek_sig=3208187a52bf0f9c,ecryptfs_sig=3208187a52bf0f9c,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough,ecryptfs_unlink_sigs)
---
其中显示了身份验证令牌 3208187a52bf0f9c。这样安全吗?如果有人在我的设备开启时输入 mount 命令,然后尝试使用同一个 ID 通过连接到另一台 PC 来挂载我的硬盘分区,他们是否能够破解我的硬盘?
答案1
他们必须能够逆转 SHA512 哈希才能使用密钥签名。目前还无法做到这一点,所以你应该没问题。
我希望包含密钥的脚本不会存储在您使用 eCryptfs 的同一台设备上。如果攻击者获得该脚本,他们就会拥有解密您的文件所需的一切。