所以我有一个用 DPAPI 和一个未知密钥加密的文本,我有加密文本所代表的明文。我可以从中派生使用的密钥吗?如何?
问问题
624 次
2 回答
0
你能从明文和加密文本样本中导出密钥吗?仅当您在具有已知漏洞的非常旧且过时的 Windows 版本上执行此加密时。
否则,不……这(还)不可能。
假设您有一个明文样本和生成的密文(加密文本),您可以尝试暴力攻击并尝试密钥的每个排列,直到获得预期的密文。
用于加密数据的可能密钥的数量取决于所使用算法的密钥长度......因此,如果使用足够弱的密钥来加密数据,那么暴力攻击是可行的。
但是,Microsoft 会定期更新 DPAPI 使用的底层算法和密钥长度,因此除非在 Windows Server 2000 上对数据进行加密,否则使用的密钥长度将使暴力攻击变得不切实际。
那么问题就变成了,是否有另一种方法可以使用明文和密文来执行更有效的攻击,而不是简单地尝试所有可能的密钥直到找到匹配项?这种方法可以称为“已知明文攻击”。
已知的明文攻击是差分密码分析的一种形式……一组试图发现和利用密码中的非随机行为以帮助确定密钥的技术。
根据您的 Windows 版本,DPAPI 使用 Triple-DES 或 AES 加密。 这两种算法都被设计成能够抵抗差分密码分析……即使有大量的明文/密文对,这种方法也只比暴力攻击快一点,因此仍然不实用。
附加信息:
于 2016-08-30T19:37:51.960 回答