这个问题是关于使用实时 Linux 发行版 KNOPPIX v6.2 (2009-11-18) 对用户数据进行可选加密的问题,据我所知,该发行版基于 Debian。
我不再使用这个旧版本,但我正在尝试从KNOPPIX v6.2 在启动提示中创建的持久数据文件knoppix-data.aes中检索多年前的数据。该文件小于 4 GiB 一个字节。
我希望知道可追溯到 2000 年代后期的 Linux 加密标准的人可能能够提供有关此文件的一些信息(我将在下面解释)。我对 Linux 加密标准不是很熟悉,并且对我看到的无数术语(如“LUKS”、“dm-crypt”等)有点不知所措——我不确定哪个,如果有的话,适用于我在 2000 年代后期 Knoppix 的情况。
显然文件名中的“.aes”表示AES加密。起初我怀疑我输入的密码不正确,但现在我想知道是否还有其他问题会导致我尝试正确输入密码的尝试徒劳无功。我会解释:
当我使用十六进制编辑器查看文件时,令人惊讶的是,文件的开头是文件名和哈希的明文列表,例如:
f4374a5897aafd09a2439f6c3f4a961d5cc7c1a1 *autorun.bat
eaf953dce8de1442e4e32769260e22435a70f3bc *autorun.inf
(etc.)
(还包括许多明显与 Knoppix 相关的文件的哈希值,例如KNOPPIX/knoppix-logo-small.png,举个例子)
开始字节似乎与纯文本文件/mnt-system/KNOPPIX/sha1sums完全匹配(在安装 Knoppix 的 USB 驱动器上,因此它显然是 Knoppix 安装的一部分)。之后有大量的空字节(00),然后是随机乱码。我原以为整件事都是胡言乱语;在 AES 加密的上下文中,“.aes”文件开头的明文似乎是不协调的。
作为测试,我关闭电源,重命名原始 AES 文件,然后重新启动并创建另一个256 MiB的 knoppix-data.aes,密码为“123456789”。这个一开始不包含明文,我可以写入它(并在随后的引导中成功解密)。
但我不知道这种不透明的文件格式(或它的文档在哪里),除了它(大概)涉及 AES 算法(但我没有关于操作模式、密钥派生、标题等的详细信息) . 特别是,在文件的开头有这种明文内容(sha 哈希和文件名)是否正常,也许是某种标题?或者它是否表明该文件已以某种方式损坏(例如在某些奇怪的情况下与sha1sums文件连接)?
如果答案是明文 sha1 总和在那里是正常的,这是否意味着我需要为losttup提供一个偏移量才能越过明文?我目前正在使用
echo "mypassword" | losetup -p 0 -e aes -k 256 /dev/loop2 knoppix-data.aes
mount /dev/loop2 /media/mydir/
以避免每次我想尝试解密时都必须重新启动。这适用于knoppix-data.aes的 256 MiB 测试版本,密码为“123456789”且开头没有明文,但不适用于具有明文哈希的原始 4 GiB 文件(它抱怨文件系统不是指定,这大概意味着它不能被自动确定,这大概意味着解密产生了乱码而不是所需的数据,可能是因为明文不应该在那里,或者因为losttup需要一个偏移量才能通过它)。
好吧,腐败似乎是唯一可能的解释(有人做过
cp file /dev/loopX
或类似的事情)。loop aes 没有元数据,因此文件应该是随机的(也许除了从未写入的扇区,即“可用空间”)。您不想要一个奇怪的偏移量,您需要使用原始偏移量来解密未被覆盖的部分。
不幸的是,循环 aes 不是一个非常一致的标准,另请参阅cryptsetup FAQ 中的循环 aes 观察。
唯一适用更改偏移量的情况是文件实际上是由
cat cleartextfile aesfile > newaesfile
或类似文件生成的,即数据是完整的但移动到文件中稍后的偏移量。但是你会有一个奇怪的文件大小,而不是 4G 锐利,所以你可以排除那个。好吧,如果文件系统标头被覆盖,这是可以预料的——您必须查看解密的原始数据以找出其中是否有任何非乱码。无论您选择哪个密码,aes 文件中的明文在解密视图中都是乱码...