是否可以判断硬盘驱动器是否已加密?

信息安全 加密 磁盘加密 检测
2021-08-25 17:20:39

是否可以判断硬盘驱动器是否已加密,无论使用什么软件,即用于 AES-256 的 Truecrypt / VeraCrypt / Bitlocker?

就在前几天,我认为可以判断我是否使用“扇区视图”扫描驱动器以读取数据。如果数据充满随机性,那么这意味着它是加密的。有那么容易说吗?

4个回答

我们这里有两种类型的加密,“基于文件的加密”和“全盘加密”。有记录的取证方法和软件(例如 EnCase)可以帮助我们检测用于加密磁盘的方案和程序。

我将列出流行的工具和标准,看看它们是否留下任何痕迹,我们可以确定它们已被使用:

  • Bitlocker
    Bitlocker 是从 Windows 7 开始的 Windows 操作系统上可用的全盘加密标准;此工具使用 AES256 加密磁盘。使用 bitlocker 加密的磁盘不同于普通的 NTFS 磁盘。 -FVE-FS- ”的签名可以在bitlocker加密卷的开头找到。
    这些卷也可以通过 GUID 标识:
    • 对于 BitLocker:4967d63b-2e29-4ad8-8399-f6a339e3d00
    • 对于 BitLocker ToGo:4967d63b-2e29-4ad8-8399-f6a339e3d01
  • DiskCryptor/TrueCrypt/VeraCrypt
    DiskCryptor 基于 TrueCrypt。对于 DiskCryptor 和 TrueCrypt,我们可以使用以下标准检测它们的存在:
    • 文件或集群对象集合的大小是 512 的倍数,
    • 对象的最小大小为 19KB,虽然默认情况下最小为 5MB,
    • 在整个对象中不包含特定的文件签名,并且
    • 具有高香农熵或通过卡方分布检验。请注意,由于没有留下特定的签名或标头,我们无法确定是否使用了 TrueCrypt(或其兄弟姐妹),通过结合几种方法,我们可以尝试更好地猜测它的存在。
  • FileVault
    Filevault 是 Mac 上 Bitlocker 的等价物,并提供全盘加密。 encrdsa的签名或“ 65 6E 63 72 63 64 73 61 ”的十六进制值可以在 FileVault 加密卷的开头找到。
  • 带有 LUKS 的 cryptsetup
    Linux 统一密钥设置是一种磁盘加密规范,可用于 Linux 上的 cryptsetup,它是存储介质卷加密的常用工具。它是可选的,用户可以选择不使用这种格式,但如果使用,我们可以在卷的开头使用“ LUKS\xba\xbe ”签名来检测它的存在。
  • Check Point 全盘加密
    在 VBR 的扇区偏移 90 处,可以找到产品标识符“保护”。十六进制值“ 50 72 6F 74 65 63 74
  • GuardianEdge Encryption Plus/Anywhere/Hard Disk Encryption 和 Symantec Endpoint Encryption
    在扇区偏移量 6 MBR 处,可以找到产品标识符“ PCGM ”。十六进制值“ 50 43 47 4D
  • McAfee Safeboot/Endpoint Encryption
    在扇区偏移量 3 MBR 处,可以找到产品标识符“ Safeboot ”。十六进制值“ 53 61 66 65 42 6F 6F 74
  • Sophos Safeguard Enterprise 和 Safeguard Easy
    For Safeguard Enterprise,在 MBR 的扇区偏移 119 处,可以找到产品标识符“ SGM400 ”。十六进制值“ 53 47 4D 34 30 30 3A
  • Symantec PGP Whole disk Encryption
    在扇区偏移量 3 MBR 处,可以找到产品标识符“ ëH|PGPGUARD ”。十六进制值“ EB 48 90 50 47 50 47 55 41 52 44

测量文件随机性以检测加密

前面讨论的方法可能不适用于每个磁盘/文件加密方案,因为并非所有这些方法都具有我们可以用来检测它们的特定属性。另一种方法是测量文件的随机性,它们越接近随机,我们就越确定使用了加密。
为此,我们可以使用名为file_entropy.py的 Python 脚本。熵值越接近 8.0,熵就越高。
我们可以进一步扩展它并绘制图表以可视化字节的分布。计算文件熵

检测加密的另一个指标是卷中不会发现任何已知的文件签名。(没有 jpg,没有 office 文档,没有已知的文件类型)而且由于压缩方法(例如gziprarzip)具有已知的签名,我们可以在很大程度上将它们与加密区分开来。

总结

  1. 使用已知签名检测加密(如果可能)
  2. 使用特殊特征(最小文件大小、高熵、没有任何特殊文件签名等)来检测加密
  3. 使用签名排除压缩文件

所以回到主要问题,“这很容易分辨吗? ”,这属于取证方法,我们可能正在处理隐写术技术。在用户不想欺骗我们的正常情况下,很容易判断加密已经到位,但在现实世界中,用户可能试图隐藏东西并欺骗我们,他们可能只是通过管道 /dev/urandom 到文件!这并不容易。

虽然你不能确定,但你可以在一定的信心范围内说出来。

加密数据看起来像白噪声:每个位都有50 % 的概率被设置,而不管其余位如何;任何给定位与其他任何位之间都没有相关性。这纯粹是随机的。

事实证明,这种高质量的随机性在硬盘的正常生命周期中并不常见。一般来说,有一些模式。来自制造过程的残留模式,或者来自文件系统设置的模式,或者来自当前或以前删除的文件的模式。因此,如果磁盘包含纯白噪声,那么最可能的解释是有人对驱动器进行了“安全擦除”,或者它包含加密信息。

作为一个例外,一种常见的未加密数据形式通常看起来很像噪音,是压缩数据。压缩比越高,它就越像加密数据。尽管如此,压缩数据通常具有明显的标记,因此更仔细的检查通常可以排除这种情况。

如果数据充满随机性,那么这意味着它是加密的。有那么容易说吗?

不。如果我要扔掉或放弃硬盘,我会通过运行像shred这样的程序来删除个人数据,该程序用随机数据替换内容。因此,随机数据的存在证明不了任何事情。

然后,您可以使用某些文件系统或其他文件系统重新格式化该磁盘,这将使磁盘的第一部分看起来正常,而其余部分看起来是随机的。这仍然不能证明随机部分是否已加密,或者只是清理操作的剩余部分。

正如 Silverfox 所描述的那样,大多数加密产品都会留下签名,这让我有点惊讶。这似乎让用户可以接受暴力解密,如下所述:

安全

这并不像查看硬盘驱动器并看到随机字符那么容易。有随机字符粉碎实用程序可以用随机字符覆盖硬盘驱动器,使其成为粉碎驱动器,而不是加密驱动器。