我正在我的Windows上学习各种磁盘加密方案(如PGP、MS位锁定器、BestCrypt和TrueCrypt)。
我想知道如何将带有特定方案(例如PGP)的加密分区/磁盘/文件与其他磁盘加密方案区分开来。
在研究过程中,我发现有一个固有的挑战:如何确定一个加密的磁盘或卷是否存在。我找到了一个免费的工具,EDD (加密磁盘检测器),它可以识别由PGP、TrueCrypt、BitLocker加密的磁盘和卷。EDD依赖于基于签名的检测,从而识别上述加密方案.我想知道EDD如何具体地执行基于签名的检测(例如PGP)。更普遍的情况是,如何检测磁盘或卷是否加密了PGP?
发布于 2013-05-07 10:56:13
如果加密软件存储元数据或其他(未加密的)签名/魔术数字,或者可验证的结构,那么当然可以使用这些数字来识别--但是,由于从某种意义上来说,这会给游戏带来好处,因此您会发现更好的加密软件(例如从Truecrypt卷格式规范)中没有这样做:
TrueCrypt卷没有“签名”或ID字符串。在解密之前,它们似乎完全由随机数据组成。
TrueCrypt特性是似是而非,目的是要证明加密卷的存在是不可能的(或者至少使人对其存在的否认是可信的)。
我相信EDD依赖于那些具有可识别签名的格式的签名;启发式(例如,在文件系统分区之外存在非零扇区);以及最近对于那些缺少签名的格式( 命名进程/驱动程序检测 )。此PDF纸涵盖了当时(2005年)的一些已知签名,包括PGP (v9)。这个纸张(PDF)是最近对OS 2的法医分析,这是一个有趣的阅读。
为了实用目的,只有软件的磁盘加密实现,在磁盘上可能有未加密的、易于识别的代码,例如,在使用启动时密码/密钥提示的全磁盘加密的情况下。识别引导代码可以很小地识别产品。
准确地说,伪随机数据识别是一个不可能的问题(尽管至少对于加密的磁盘卷,您应该有足够多的数据来对随机性做出一些统计断言)。一个健壮的加密算法应该有一个输出与随机(不管在实际输出格式中识别元数据)是不可区分的,这正是TrueCrypt可信的可否认性所依赖的。
由于性能原因,磁盘加密可能没有尽可能的加密安全,例如可能存在有限的或没有MAC (完整性/抗篡改),加密模式将本地化和限制需要更新的磁盘上扇区(参见TrueCrypt使用的用于解决可能问题的XTS上的维基百科页面 )。可以在主动攻击方法中利用这些功能,例如,如果您可以说服某人存储精心编制的文件(请参阅打水攻击)。我不知道有什么方法可以利用这些限制来攻击或识别磁盘加密(冷启动攻击似乎是首选的方法,或者至少得到更多的注意)。
更新:(2013年10月)在阅读即将发布的TrueCrypt开放式审计项目 (和这里)时,我发现了2011年8月的TrueCrypt 7.0a的安全性分析文档。
https://security.stackexchange.com/questions/35456
复制相似问题