为什么在 VeraCrypt 中生成密钥时仍然需要移动鼠标?
信息安全
密钥生成
真密码
2021-08-24 00:01:12
1个回答
我认为您需要查看代码库的历史以首先了解它存在的原因。VeraCrypt是TrueCrypt的后裔,它是在 Windows 中的 CSPRNG 使用未指定的数据生成方法时构建的:
因为 CryptGenRandom 是 Win32 环境中事实上的标准 CSPRNG,所以它的安全性对 Windows 用户来说至关重要。
CryptGenRandom 算法的细节尚未正式公布。与任何未发布的随机数生成算法一样,它可能容易受到理论缺陷的影响,包括使用过时的算法,以及依赖于几个单调递增计数器的熵收集,这些计数器可能在一定程度上由具有本地访问权限的攻击者估计或控制到系统。
至于按照今天的标准是否仍然有必要,这显然是一个品味问题。我设法在 .NET 中找到了关于 CSPRNG 的高级声明。在搜索 Microsoft 文档大约 10 分钟后,我一直无法发现任何类型的 Windows 内置 CSPRNG 规范。
对于尚未考虑信息安全这一方面的读者,这里有一个关于 CSPRNG 的很好的讨论:Pornin 2010 https://stackoverflow.com/a/3532136