综合

如何确保生成真正的随机数?CloudFlare公布公司内部最新的熵源 – 蓝点网

时间:2010-12-5 17:23:32  作者:知识   来源:知识  查看:  评论:0
内容摘要:可能有些开发者听说过 CloudFlare 办公室里的熔岩灯,这些熔岩灯持续工作多年,主要工作内容就是亮着,CloudFlare 会定时拍摄照片然后生成哈希值作为随机数生成器的种子。熔岩灯虽然一直亮着

可能有些开发者听说过 CloudFlare 办公室里的何确熔岩灯,这些熔岩灯持续工作多年,保生布公部最主要工作内容就是随机数C司内熵源亮着,CloudFlare 会定时拍摄照片然后生成哈希值作为随机数生成器的蓝点种子。

熔岩灯虽然一直亮着它们在细节方面是何确不停变化的,CloudFlare 要的保生布公部最就是这种变化 (熵),这样取得的随机数C司内熵源随机数安全性更高。

当然标题中说的蓝点真正的随机数其实不准确,因为 CloudFlare 最终也是何确将哈希作为种子放到加密安全伪随机数生成器 (CSPRNG) 中生成数据的,只不过这种处理方式可以提供更强大的保生布公部最安全性。

如何确保生成真正的随机数C司内熵源<strong></strong>随机数?CloudFlare公布公司内部最新的熵源

为什么要不停地生成随机数:

CloudFlare 的服务器每秒需要处理超过 5500 万个 HTTP 请求,其中绝大多数请求是蓝点通过 TLS 协议进行保护的,以确保真实性和机密性。何确

在幕后,保生布公部最像 TLS 这样的随机数C司内熵源加密协议需要安全随机性的底层来源,否则安全保证就会崩溃。

密码学中使用的安全随机性在计算上需要与 “真正的” 随机性取法区分,为此,它必须通过统计随机性测试,并且输出对于任何计算有限的对手来说都是不可预测的。

实现这个目的的典型方法就是获取一些随机种子并将其放到 CSPRNG 中,该生成器可以根据请求生成本质上无限的、不可预测的字节流。

CloudFlare 的种子:

在以前 CloudFlare 的种子主要是旧金山办公室里的熔岩灯,其原理是定时对这组熔岩灯进行拍照,然后对图片计算哈希值,将这个哈希值作为种子放到 CSPRNG 中。

对 CloudFlare 来说这组熔岩灯产生的不停变化的照片就是熵源,该公司需要确保服务器可以定期从外部源获得真正的随机性刷新其熵池,而熔岩灯的在不停变化,所以它们具有真正的随机性。

如何确保生成真正的随机数?CloudFlare公布公司内部最新的熵源

新增的熵源:

为了给熵池增加更多熵源,CloudFlare 在全球几个办公室增加了一些基于物理学的熵系统,这些系统可以直观地认为就是随机的。

例如在伦敦办公室有一堵双摆墙,这些双摆在无规则的摆动中会在墙上投下不停变换的阴影,摄像机定时拍摄照片传递到服务器中,服务器计算哈希值后放到熵池中。

如何确保生成真正的随机数?CloudFlare公布公司内部最新的熵源

在奥斯汀的办公室里也有一个熵源,在办公室入口悬挂了大量半透明的彩片,同理,在办公室开门、关门、空调开关、环境光变化都会让整个背景发生发生变化,因此这也可以认为是随机的。

如何确保生成真正的随机数?CloudFlare公布公司内部最新的熵源

在 CloudFlare 这种随机系统名为 LavaRand,如果你是开发者对 LavaRand 有兴趣的话,可以点击这里查看博客:https://blog.cloudflare.com/harnessing-office-chaos

copyright © 2024 powered by 以强凌弱网   sitemap