NIST刚刚推出了一项名为NSANIST随机信标的新服务。最初有人对此表示怀疑。也许密码学界会在2013年6月NIST享有声誉之前使用它。起初我以为是愚人节愚人节的玩笑,但实际上它似乎是一个正在进行的严肃项目。鉴于这项服务可能具有敌意并且可能在对抗性控制下,因此可以合法提供。我假设将其用于私有密码密钥是不可能的。

我将在“用法”部分的规范中引用一些让我大吃一惊的东西:


首先,信标生成的数字在发布之前无法预测。其次,Beacon的公开,有时间限制和经过认证的性质允许用户应用程序向任何人证明其使用了在某个时间点之前未知的真正随机数。但是,此功能可能不正确,因为:


信标每60秒以512位的块形式广播全熵位字符串。 />因此,尽管普通用户将无法预测随机数,但在60秒的窗口中,拥有NIST(或NSA)内部特权访问权限的人可以很容易地在60秒钟之前访问下一个随机位字符串它已经被“出版”了。如果此具有内部访问权限的对手成为使用此信标的应用程序的常规用户之一,则在其他用户根据应用程序类型提供明显优势之前,他们将具有随机数知识。此信息,此潜在的受威胁信标可以提供哪些实际的安全,公平和有用的加密用途?

评论

那个reddit帖子(截止到本帖子)似乎只有1个发帖人,他似乎了解这是什么用途,以及它有多方便。
实际上,假设内部来源是可预测的,内部人员甚至可能更早地知道这些字符串。

#1 楼

我将服务描述为类似于受信任的时间戳服务。除非他们不进行时间戳记,而仅提供“密钥”。这使用户可以决定如何处理它,例如将其用作私钥来对某些内容或HMAC密钥进行签名,以证明签名“不早于时间戳”。如果签名已发布到可验证的记录,则可以证明它比记录的日期“新”。如果间隔足够短,那么具有可证明的创建时间段的签名或哈希的应用程序很多。也可以将其用作两因素身份验证系统的附加输入(我认为这是最有用的)。不需要将其用于加密目的。从业务或政治角度来看,有一种方法可以证明或审核您的随机源是有益的,例如“不可预测的采样”应用程序链接的示例。

可以使用其他非加密方式使用随机值来防止对诸如“对旅客进行随机检查”,陪审团选择和普查数据收集之类的偏见。我怀疑这是否会实现,但可以希望。

服务安全性

我们可以从巧妙的角度进行三种假设。
数字是真正随机的,但会提前提供给国家安全局(或只是延迟公开显示)。
历史记录可以由国家安全局或NIST修改,因为
他们可以访问私钥。
数字不是真正随机的。

不随机是需要审核或某种分析来证明的事情。我怀疑它们不是随机的,但这并不意味着可以将非随机值用于单个输出。

第二种情况不太可能发生,因为只有在您可以验证来自其他方的记录(只有一个方确实相信未修改)的情况下,才可能接受该服务。同样,由于输出基于先前的输出,因此整个链都需要进行篡改。

第一种可能性更大,输出可能会延迟相当长的时间,甚至几天,而且除非熵源可以由可信任的方审核,否则您将不知道。由于签名是使用已知的未来时间代码加上当前值和先前值生成的,因此无需检测即可轻松完成。可能会随机选择种子并对其进行测试,以提供具有特定偏差的输出,但是可能需要测试大量种子才能提供适当的输出,而这会给攻击者造成重大损失(每个都需要RSA符号和哈希,并且确保目标将使用一个特定的值。)鉴于此,人们可能只会将这些数字用于不太可能发生的用途。大多数应用程序将属于该类别。任何需要这些类型的数字才能被情报机构操纵的人,都只会构建自己的熵生成器,这并不难。如果没有人将服务用于NSA想要篡改的东西,NSA不会篡改它,那简直太贵了,也就没有收益。

从加密角度来看,我唯一关心的是数字的实际生成方式。该页面确实说输出是完整的熵,并且输出是512位。可以安全地假定“种子值”实际上是熵源/ DRBG的哈希输出,因为XML模式文件说“输出值”是签名的SHA-512哈希,我已经验证了就是这样。这意味着在没有所有输入值和私钥的情况下,输出值在计算上是无法预测的。

未列出种子编号的详细信息,只能假设样本通过SHA- 512给出这个,但是没有列出样本的大小。由于“信标”页面专门列出了对SP800-90的符合性,因此熵样本应至少为888位,但没有什么可以确认的,也没有关于输出生成实际方法的详细信息,例如所使用的DRBG(非常重要)和重新播种间隔。给定的值,例如randomValue和previousHashValue,它们很可能应该是种子值和先前的输出。

另一个未知数是签名的生成方式,因为必须通过某种方式对其进行验证,但是没有列出任何公开密钥或有关签名类型的任何详细信息。它是一个2048位值,因此RSA很可能,甚至可能由相同的私钥为其SSL流量生成。我希望不是这样,当密钥在今年晚些时候到期时,可能难以验证以前的输出,因为需要找到旧的公共密钥。

另外,该页面使用TLS 1.0使用CBC模式加密,这意味着该连接在传输过程中很容易受到第三者的篡改。此类服务应尽可能不受当前技术和标准的侵害,而事实并非如此。这不是服务本身的问题,只是服务的访问方式。该页面使用相同的协议和密钥在同一台服务器上使用AJAX访问XML格式的条目。

接受程度还取决于对SHA-512安全性的公共信任,SHA-512是用于测量量子行为的不可预测性,以及SP800-90A中描述的将这些测量结果转换为随机位的方法。 SP800-90A是描述Dual EC DRBG的出版物....

截至2018年3月的服务更新

如上所述,SSL流量的私钥证书于2014年到期,那时他们获得了新证书,并且此后发布了用于签署信标数据的特定证书。该证书(2048位RSA,SHA256哈希)有效期为3年,于2017年5月7日到期。该证书可下载以验证以前的数据,并且列出用于签署当前信标数据的新公共密钥,但不是

新的公用密钥是2048位RSA,其指数为65537,与以前的证书相同。

现在,通过TLS 1.2保护SSL流量,使用的特定密码套件为TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA。该证书的有效期为1年,并且也是2048位RSA。

其架构已更新,不再引用randomValue或previousHashValue。信标中的XML记录正确匹配了架构。最后一页于2014年5月13日编辑。

截至2019年10月的服务更新。

2018年6月,该服务使用我之前提到的“新版本”正式退出了原型状态,并进入Beta版,现在称为2.0版。新的XML Schema文件已被很好地记录。新信标似乎在2018年7月23日上线。

我能够确定用于签署信标输出的证书在2019年8月16日发生的脉冲502025上发生了变化。脉冲的状态正确地指定发生在信标输出中的间隔(这是3分钟),其中代码6用于证书更改,尽管XML Schema文件中未列出该代码。先前的证书实际上已于2019年1月11日到期,并使用了另外7个月5天。

可以从服务界面轻松获取当前证书和先前的证书。两者均由DigiCert Global CA G2发行。新的公用密钥是使用65537作为指数的4096位RSA。

它们的SSL通信仍通过我的系统上的TLS 1.2进行保护,现在使用的特定密码套件为TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。该证书的有效期为1年(11月到期),仍然是2048位RSA。它也是由DigiCert颁发的,但是它是14个单独的NIST子域(包括NVD和CSRC)的通用Web服务器证书。

在2019年5月,他们发布了有关随机信标的参考草案。版本2.0服务是内部报告8213的实现。这是信标系统的设计和实现的非常详细的报告,并且包括具有多个威胁评估的安全分析。

值得一提的是版本2.0的一些重要变化,首先是它们现在已经发布了系统工作原理的框图,请注意,尽管RNG3被列为量子,但信标项目网站指定“我们可能很快集成NIST Beacon中的PML开发的基于光子检测的量子RNG(在图中标识为#3)”,表示RNG3当前未激活:



下一个重要的变化是哈希链的构建方式,以及跳过列表的添加。我尚未验证跳过列表的完整操作,但是它似乎使用第1个小时/每天/每月/每年作为哈希链的定位点,因此审核当前信标到开始时要快得多。该链可能长达数年。

现在,您不必回溯过去的一百万个哈希,只需回到小时的开始,然后按小时返回,依此类推,直到验证链返回到一年中第一天第一个小时的第一分钟为止,最多124次验证可以返回到当年年初。

因此要验证脉冲502025(2019年8月16日,14:14 Z)是否与479573的月初脉冲相对应,请向后跳15分钟到502013,然后在14个小时的跳越(60个脉冲)中返回501173,然后每天进行15次跳跃(1440脉冲)到479573,总共进行了44次验证,相比之下,没有跳跃列表功能的22453次。

最后要注意的是,这并不是2.0版信标技术的唯一实现,智利大学和巴西政府也提供服务。除了硬件RNG,智利信标还使用从智利地震测量中收集的熵源,本地广播电台的流,精选的Twitter帖子以及以太坊区块链中的数据。巴西实际上运行着多个信标,包括它们的一个使用光子量子TRNG的信标,以及一个组合信标,其中也包括智利和NIST信标的输出作为熵的来源。智利信标的输出也是Cloudflare自己的信标的多个输入之一,它不是基于NIST设计或API。

此时,设计看起来不错,并且如果它们可以证书问题并使RNG3处于活动状态(也许已经存在),它和它的其他用途确实有很多用途,尽管加密用途可能不是其中之一,除了作为熵的附加来源而不是主要来源。 br />

评论


$ \ begingroup $
好答案。我认为还有另一个安全问题。在60 s的延迟期内,NIST可以访问系统和源代码,因此他们可以从战略上改变未来的随机输出,使其符合自己的目的。即使使用上面链接的“不可预测的抽样”应用程序,我也可以想象出一些情况,公司可以在NIST内还清一名员工来烹饪下一个号码,并扫描/检查特定的项目/位置。甚至像DEA这样的其他机构也可能在“随机”搜索的幌子下需要“平行结构”。
$ \ endgroup $
– NDF1
2014年3月26日10:22

$ \ begingroup $
该方案的问题在于,对输出进行数字签名然后进行哈希处理,并且输入之一是优先输出,因此篡改种子以产生所需输出并不容易
$ \ endgroup $
– Richie车架
2014年3月26日10:51

$ \ begingroup $
它从纠缠源获取新的熵,以形成可疑的Dual EC DRBG的下一个种子,然后输出新的512位熵。当然,它会对DRBG输出的最新512位进行哈希处理并对其进行签名,并使用过去的随机位和当前时间戳来形成MAC。在这种情况下,可以假定DRBG的输出是随机的,而无需任何人知道。当然,它不包括过去的随机位输出,当前时间戳和签名作为种子的一部分,进入下一个DRBG输出...如果这样做,那么听起来更像是PRNG而不是TRNG。
$ \ endgroup $
– NDF1
2014-3-27的2:24

$ \ begingroup $
实际上没有说它使用Dual EC DRBG,他们没有指定使用什么。是的,可以用非随机数据替换DRBG的输出,但是要操纵输出哈希值并不容易。
$ \ endgroup $
– Richie车架
2014-3-27的2:46

$ \ begingroup $
“ seedValue”是熵源和DRBG的哈希输出。这必须是系统用户想要的随机512位。该seedValue可以完全由内部人员代替。不需要操纵输入到DRBG中的熵。 “ signatureValue”是根据版本,频率,timeStamp,randomValue,previousHashValue和errorCode计算的RSA签名。 “ outputValue”是“ signatureValue”的SHA-512哈希,为64字节字符串。他们不能期望用户使用“ outputValue”(RSA签名的哈希作为其“随机位”)...
$ \ endgroup $
– NDF1
2014年3月27日4:00在

#2 楼

首先:不要相信炒作!尤其是如果事情很容易被证明是错误的。我的意思是您的NIST have just launched a new service…是不正确的,因为自2011年以来我(和其他人)就知道了NIST随机信标项目。此外,该项目在8月获得了NIST的测量科学创新(IMS)计划的多年资助。 2012年。因此,这并不是说他们刚刚启动了项目或网站……这只是一个错误的主张!只需查看项目信息即可。
...
我不知道您为什么出于安全目的甚至考虑使用原型实现。
在当前状态下,NIST的随机信标还不是但仍适合密码使用,该项目本身将自己描述为“原型实现-正在进行中”,在ITL的领导下处于“研究状态”。研究状态的结束日期仍设置为“进行中”,没有任何项目进展的进一步迹象。
还引用了我对random.org类似问题的回答,在此我也明确提及NIST随机信标项目:


如果您在https://beacon.nist.gov/home上查看项目主页,您会注意到,即使该项目也明确指出:

警告:请勿将BEACON生成的值用作秘密的密码密钥。 。
...
因此,出于安全性考虑,我个人建议不信任random.org等服务中的数据,而不是NIST Randomity Beacon项目在其当前研究阶段所产生的Beacon数据……进一步通知,您也不应该信任Beacon数据。
将其包装起来:它不会确保在加密解决方案中使用诸如random.org之类的服务中的随机数。各个服务的声明强调了这一点。
有许多经过严格审查和加密安全的替代方案,可以减少使用此类服务​​的需求。使用这些信息要比信任第三方更为明智,因为该方强调您不应该出于加密目的而信任其数据的事实…… “像这样的站点可能会占有一席之地,但不在密码学领域。”
谈到NIST的随机信标,这实际上意味着您(现在)不应该将其用于与密码学有关的任何事情,或者甚至期望它对您有用。也就是说,除非您是一名研究人员并且知道如何使用NIST的“随机信标”的原型实现所提供的数据以及首先对数据的期望。
tl? :如果您遇到某个人,希望其当前状态的NIST随机信标项目对密码学有用,只需告诉他们查找“原型”和“研究”一词以及“正在进行的工作”和“结束”一词日期:进行中”…,因为这是当前描述NIST随机信标状态的信息。

#3 楼

我想知道为什么有人会选择依靠真正的随机数来解决问题,而这些问题最终将没有可证明的甚至是令人满意的答案。至少有两家公司出售提供高质量真实随机数的发电机。拥有一个现场生成器并实时可用可以为任何加密应用程序提供必要的安全性。或者,至少,它将安全性放在了随机数用户的手中。

评论


$ \ begingroup $
目的是使它免费且可公开使用,并具有存储的记录。这不是用于生成私人号码的RNG
$ \ endgroup $
– Richie车架
2014年3月27日在2:47

$ \ begingroup $
您怎么知道您购买的“真实随机数生成器”实际上是在生成真实随机数,而没有被颠覆以产生(半)确定性输出? (答案:除非您自己构建和测试它,否则,实际上是不可能的。您可以做的最好的事情就是将多个源中的随机性提供给精心设计的熵池(例如Fortuna),并希望没有攻击者能够预测所有源。
$ \ endgroup $
–伊尔马里(Ilmari Karonen)
18年3月30日在1:05

$ \ begingroup $
@IlmariKaronen这就是为什么您应该构建自己的:-)
$ \ endgroup $
–Paul Uszak
18-10-29在14:12

#4 楼

先前的海报因指出该服务被冻结而被否决,但我认为这是不公平的:最初的问题是询问NIST信标是否有用;是否制作原型,实际上确实冻结了(最近一个周末)。因此,目前,它根本不可靠并且用途有限。它已经运行了一段时间,并且仍然冻结。可以公平地认为,在可预见的将来,网站的可靠性可能会很低。讨论有用性的因素。

,OP询问了加密价值。没有。它永远不会,而且不是因为它是实验性的。正如在锡盒上清楚指出的那样,您不能将其用于加密密钥,因为您的密钥必须是秘密的,并且此站点向所有人提供相同的东西。有人可以将它们全部记录下来-一分钟一次,您可以用一个小磁盘轻松地完成数千年的记录-并在解码某些内容时全部尝试。但这仅仅是问题的开始。

您可以将其用作时间戳,以证明某些内容不是在较早的日期创建的(在某些密码系统中可能有价值的事实)-如果和仅当您相信他们没有提前几年生成所有这些数字,并且没有证据证明他们没有这样做。那就是任何加密用途下降的地方-您真的不知道这些数字来自何处,它们的真正年龄,在您做之前就看清楚了它们,或者中间是否有人在弄乱您所看到的。 />
您可以信任数字,一旦发布,事实成立后就不会更改-如果您相信数字对先前值进行散列的方案是不间断的。我认为这可能是一个安全的信念,但是为什么要相信它呢?

该网站谈论将其用作随机数生成器。但是,如果不是随机的呢?答:您永远不会知道它是否存在,因为您每分钟只能收集一个样本,因此在您的一生中,您将没有足够的样本来进行猜测。许多人还认为它是随机的或足够接近的,因为即使他们在作弊,他们也会确保它看起来是随机的,甚至是多年。如果您一生中只能看到5千2百万个样本,那么512位的空间就足以隐藏非随机行为。
更大的随机数生成方案。它不是我使用的唯一来源,使用它的代码是自定义的,因此产生的随机数对于NSA来说并不重要,因为我使用它们来模拟与朋友一起游戏中的骰子。该站点对我很有用,因为我需要朋友无法预知的数字,因此他们提供的足够好。但是出于商业目的,更不用说安全目的了,只有您信任NIST,此站点才有用。 NIST已证明不信任它是有原因的。如果您正在做的事情价值数百万美元,或者具有重要的政治意义,那么问题始终必须是“您信任谁?”而且,没有理由相信不久以前就以重大方式违反信任的政府机构。

说了这么多,如果NIST做到了他们所宣称的,那将是一个非常巧妙的实验。他们所描述的是真正的随机性和不可预测性。根本无法判断他们的网站是否与量子发生器有关。

如果您需要可以信任的随机数,请从不同的制造商那里购买硬件发生器-其中一些。添加一个您自己创建的文件,无论它多么糟糕。编写一个自定义算法,以某种未证明的伪随机方式轮换它们全部生成的值,然后以其他某种未证明的伪随机方式对其重新排序,然后将它们全部异或。然后取其中的几个并将其异或为一个字节。定期更改伪随机部分。除非有人可以使用您的硬件,否则这就是您所希望的那样安全。真的没什么。

评论


$ \ begingroup $
如果您要解释NIST的不可信性,可能值得指出的是,他们(多次)公开声明他们在加密问题上与NSA合作。实际上,根据法律,他们必须这样做。
$ \ endgroup $
–Paul Uszak
18-10-29在14:25

#5 楼

为了用数学表达它,$有用度(NIST随机信标)\ approx 0 $。抱歉,它很大,但这是必需的。





我不知道它已经冻结了多久服务器所在的时区,但至少是我输入此时区的30分钟。对我来说实际上是昨天。那就是> 30个信标发出的响声,砰砰声或他们所谓的声音。结合证书崩溃,我将非常不愿意基于此构建合法的时间戳服务。我不希望我的企业信誉依赖于鸭子的玩物。

我非常感谢进展中的工作状态,但是Google的Gmail处于Beta版已经有五年了,在大多数情况下都非常有用时间。这项服务依赖于连续性。随机性和可靠性在这里不能分开。显然,此可靠性问题是在其他答案中的那些加密问题之外的。

为了进一步破坏信誉,截至本次编辑,它再次处于下降状态。这次整个区块链都消失了,因此无法验证。

评论


$ \ begingroup $
当您发布此内容时,它被冻结了约4小时
$ \ endgroup $
– Richie车架
18年4月14日在3:22

$ \ begingroup $
$ \ endgroup $
– Urda
18年4月20日在0:35

$ \ begingroup $
@PaulUszak您绝对不会,因为这是一个研究项目,旨在研究这种链接的数据源的用法。是生产等级吗?否。有用吗?可能您没有查看nist.gov/programs-projects/nist-randomness-beacon上详细介绍的“使用”部分,因为它远大于零。显然您似乎没有。如果我们将所有发展中的技术限制在现在可行的范围内,那么今天我们将一事无成。放下蛇,它在stackexchange网站上不受欢迎。
$ \ endgroup $
– Urda
18年4月21日在4:39

$ \ begingroup $
…由于我无法确定服务器所处的时区…–这是一个提示:“…以POSIX格式记录生成时间(自UTC午夜以来的秒数……”)因此,当您查看生成的最后一个时间戳和将其与当前UTC时间进行比较,您知道自上次记录发布/生成以来已经有多长时间了。
$ \ endgroup $
– e-sushi
18年4月21日在9:32



$ \ begingroup $
@PaulUszak我开始认为您在这里没有阅读任何内容。我已经完全解释了为什么您的答案无济于事,为什么在这里赚了您的赞成票。是生产等级吗?否。有用吗?可能吧。是关键。我很高兴您提出MITM,因为我很好奇您认为这是可能的,因为1)端点通过SSL提供服务; 2)所有记录均由NIST签名,并且可以使用NIST的公钥进行验证。您似乎对项目不了解,对项目的理解也很残缺。请先进行检查,然后再继续。
$ \ endgroup $
– Urda
18年4月22日在22:35