这个问题是关于实时 Linux 发行版 KNOPPIX v6.2 (2009-11-18) 的用户数据可选加密,据我所知,它基于 Debian。
我不再使用这个旧版本,但我正在尝试从持久数据文件中检索多年的数据knoppix-data.aes由 KNOPPIX v6.2 在启动提示中创建。该文件小于 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 文件,然后重新启动并创建另一个knoppix-data.aes即 256 MiB,密码为“123456789”。这个一开始不包含明文,我能够写入它(并在后续启动时成功解密它)。
但我不知道这种不透明的文件格式(或者它的文档在哪里),除了它(大概)涉及 AES 算法(但我没有关于操作模式、密钥派生、标头等的详细信息) 。特别是,在文件开头有这种明文内容(SHA 哈希值和文件名)(作为某种标头)是否正常?或者它是否表明该文件已以某种方式损坏(例如通过与sha1sums在一些奇怪的情况下归档)?
如果答案是明文 sha1 和存在是正常的,这是否意味着我需要提供偏移量丢失设置超越明文?我目前正在使用
echo "mypassword" | losetup -p 0 -e aes -k 256 /dev/loop2 knoppix-data.aes
mount /dev/loop2 /media/mydir/
以避免每次我想尝试解密时都必须重新启动。这适用于 256 MiB 测试版本knoppix-data.aes,密码为“123456789”,开头没有明文,但原始的 4 GiB 文件却有明文哈希值(它抱怨没有指定文件系统,这可能意味着无法自动确定,这可能意味着解密产生的是乱码而不是所需的数据,可能是因为明文不应该在那里,或者因为丢失设置需要一个偏移量才能越过它)。
答案1
嗯,腐败似乎是唯一可能的解释(有人做了cp file /dev/loopX
或类似的)。循环 aes 没有元数据,因此文件应该是随机的(也许除了从未写入的扇区,即“可用空间”)。
您不需要奇怪的偏移量,您需要使用原始偏移量才有机会解密未被覆盖的部分。
不幸的是循环 aes 不是一个非常一致的标准,另请参阅来自 cryptsetup FAQ 的循环 aes 观察结果。
更改后的偏移量适用的唯一情况是文件实际上是由cat cleartextfile aesfile > newaesfile
或类似文件生成的,即数据是完整的但移至文件中较晚的偏移量。但这样你就会得到一个奇怪的文件大小,而不是 4G 锐利,所以你可以排除这个问题。
它抱怨未指定文件系统
好吧,如果文件系统标头被覆盖,这是预期的 - 您必须查看解密的原始数据以找出其中是否有任何非乱码的内容。无论您选择哪个密码,aes 文件中的任何明文内容在解密视图中都将是乱码......