我可以在我的计算机上使用硬件随机数生成吗?我已经在使用它了吗?

信息安全 加密 硬件 随机的
2021-08-11 00:12:59

很多计算机安全依赖于加密:SSL 连接、TCP 数据包排序、加密文件等。这些依赖于随机数生成以确保攻击者无法猜到加密密钥。

弱随机数生成会产生安全漏洞,例如最近的 SSL 证书漏洞。但是,您无法从确定性计算机程序中获得真正的随机输出。你至少需要用来自物理世界的真正随机的东西来播种它。

伪随机数发生器足以满足大多数用途;它们输出的数字模式很难预测,除非你知道起点。然而,这个起点应该是一个真正随机的种子,并且应该定期更新。

我看到确实存在硬件随机数生成器我的问题是:作为一个普通的计算机用户,我如何使用一个?还是我可能已经在使用一个?

我想知道,当我启动 SSL 连接时,它是基于可靠的随机性。

(当然,这双重适用于我使用的 Web 服务器。)

2个回答

作为普通计算机用户,您的问题不会与您使用的随机数生成器有关,而可能是密码重用之类的问题。SSL 确实部分依赖于 MD5 散列函数,对于该函数确实存在冲突攻击。最近,Flame恶意软件展示了对 Windows Update 系统的成功(但计算量大)攻击,因为它依赖 MD5 来保证安全性。TLS更普遍,使用SHA1算法,目前还没有发现攻击;然而,任何理智的黑客都会尝试直接攻击 CA 并使用伪造的证书来执行中间人攻击,而不是调查随机数的熵。

对于普通的 linux 用户,您可以从 /dev/random 读取以获取从环境中收集的“纯”随机数,实际上 /dev/urandom 也一样好。它对 /dev/random 从中提取的熵池进行哈希处理,并在池变得“稀释”时回退到伪随机数生成器上。为了比较我从 /dev/random 读取 10 秒的上网本,我得到了 46字节的真正随机数据,/dev/urandom 管道传输了 65 兆字节的随机数据。我不想等待一分钟来启动 ssh 会话。

在大多数情况下,随机性都不是薄弱环节。TLS 取决于由人操作的 CA,文件加密取决于您能记住密码多长时间以及您在哪里输入密码,人始终是等式的一部分,而且它们通常不如 SHA1 可靠。

是的,我同意“Tyler Parker”的观点,即大多数黑客攻击是通过 CA 端发生的,而不是通过最终用户安全随机生成机制检测或拦截。

另一方面,你是对的;用于生成安全随机数的确定性算法模型存在漏洞,无法与硬件随机数生成器相提并论。通常,硬件生成器缓慢而稳健,因为它们使用一些自然随机代理,如通量和环境参数。这就是基于硬件的加密设备(如智能卡)包含随机生成所需硬件的原因。

Intel in there architecture for Intel 4 在微处理器中引入了类似的逻辑,PC 中的软件使用该逻辑可以利用硬件随机生成过程。如需更多信息,请访问http://software.intel.com/en-us/articles/fast-random-number-generator-on-the-intel-pentiumr-4-processor/http://www.intel .com/design/software/drivers/platform/security.htm我不太确定新的安全提供商软件实现是否使用了它。但这绝对是一种更好的方法。