Random.org通过不安全的Web服务提供真实的随机数。由于这些数字将以纯文本形式传输,在保持密码解决方案的安全性的同时,仍可以将它们视为真正的随机数吗?它们的子集可以随机使用,以使人们知道它们的使用较少。然后我意识到,无论以这种方式获得多少随机数,在尝试破解密码学时,它仍然是一个较小的数字集。

更新:Random.org支持基于HTTPS的SSL,但不建议在密码学中使用。

评论

您可以与random.org建立安全连接。另外,查看源代码,它们的“生成”按钮实际上位于通过安全连接加载的iframe中。

@mikeazo:只要Random.org不是攻击者,它就会起作用。

我想说的是,只要您信任Random.org并与他们建立安全连接,那就没问题了。

您总是可以构建自己的发电机。很酷。

@mikeazo呃,您是否不需要熵源来首先创建安全连接?这将使其仅对那些无法访问本地随机性源的运行时有用。

#1 楼

我考虑得越多,就越不愿意将Random.org用于任何类型的密码应用程序。我的原因在下面列出。



请参阅Q2.2,列出的组不是加密组,并且可能(或可能)在评估团队中没有加密人员
他们专门说不要将其用于密码学

它是封闭源。因此,我无法知道他们是否正确地将其RNG互斥,以便一次仅一个人从中提取。我(或比我要检查的要聪明得多的某人/某组)还有其他实施问题。
使用此方法需要互联网连接,以确保所有随机性。可以使用,没有上面列出的缺点。
RNG可能随时更改,而我不知道。他们只提供了关于为什么我个人不使用Random.org进行加密的见解。在加密解决方案中使用Random.org是否安全?可能吧。真的没有足够的信息要知道。

评论


$ \ begingroup $
我认为random.org应该可以收集CSPRNG的附加熵。从它们那里获得8到16个字节(64到128位熵)以及其他像Fortuna这样的CSPRNG中使用的熵应该没问题。即使某些熵源被破坏,它的设计也应尽可能地安全,只要它们中具有足够熵的足够多仍对攻击者有效且未知。 (我认为80位就足够了,我认为2015年128位就足够了。)
$ \ endgroup $
–新星
15年2月16日在9:55

$ \ begingroup $
@Nova它将如何使您受益?如果您的CSPRNG种子的熵太少而无法单独保证安全,并且需要Random.org提供某些保护,那么用于获取数字的TLS连接可能会中断。
$ \ endgroup $
–森林
19年2月6日在5:44

#2 楼

以已知强大的方式创建加密强度高的随机数非常容易,因此不建议添加会增加新风险的新方法。但是,如果您拥有一个已知的安全方法,并且能够以即使攻击者已知也不会造成危害的方式获取其他随机性源,则可以继续进行添加。你没什么可失去的。

#3 楼

在密码学中,随机性主要是任何攻击者都不知道的。任何攻击者都可以观察到您下载的这些随机数,但由于它们也知道这些随机数,因此它们并不是真正随机的。

Crypto'97上有一篇文章描述了如下内容:是一种安全的密钥交换系统,可以击败受内存限制的对手。这假设一个共享的随机性源广播了随机数。任何人都可以听到,包括任何攻击者。希望获得共享密钥的两个参与者仅记录了随机比特中的几个区块,并记录了每个区块在流中的位置(例如确切的发射时间)。在一天结束时,他们互相发送职位清单;如果他们记录的足够多,则很有可能他们都记录了几个块,他们可以将它们用作共享密钥。另一方面,愿意学习该密钥的攻击者必须记录很多流,才能有很大的机会让双方共享所有的块。只要随机源以很高的速率广播数据,此密钥交换机制就很安全,因此无法记录全天的广播。因此,它应该以每秒千兆字节左右的速度为单位。您可能会得到一些攻击者未能记录自己的信息。要从池中获取密钥,您可以使用安全的哈希函数(例如SHA-256)对整个密钥进行哈希处理(不要从池中选择数字;而是使用哈希函数,该函数不会“忘记”任何熵)。不过,实际上,这在以下几个方面失败:


总体而言,Web(尤其是Internet访问)的速度还远远不够。攻击者可以轻松记录TB的数据,因此您应该下载更多内容。您的ISP不会感到高兴(除非您的合同包含配额,并且超出配额就按GB计费,在这种情况下ISP会很高兴)。是“真正的随机数”,但实际上是伪随机数生成器的输出。您将看不到差异。但是,这将使攻击者可以随意重建您获得的随机数(所有随机数)。
活跃的攻击者可以更改您获得的随机数,从而有效地将问题减少到了原点。

因此,为了简单起见:不,random.org对安全性或加密没有用。

#4 楼

由于您不能确定random.org不会保留该数字的副本,也不一定会对其进行保密,因此,您应该将random.org的数字视为公共随机性。也许这是悲观的,但是它会导致您以正确的方式使用这些数字。在许多情况下,公共随机性完全可以。以下是一些方法:


为随机审计生成挑战
为交互式证据生成挑战
公平交易
生成辅助随机字符串以供参考
/>选择非秘密的“密钥”,例如提取器或哈希系列中的哈希函数实例。
选择初始化矢量或盐
“信标”。 NIST正在开发一项服务,这是一项足够重要的服务。他们的白皮书解释了它的一些用法,并提到了random.org。另一个选择是使用财务数据,我们证明它具有足够的熵。

评论


$ \ begingroup $
好的,但是我们不能保证random.org在重新启动时不会重复其随机流。这将排除许多上述用例。基本上,我们只能希望random.org在首页上显示的内容有效。这根本不够。
$ \ endgroup $
–马腾·博德威斯♦
2014年3月2日在11:23

#5 楼

如果您信任与random.org的连接(并且您说过,它是不安全的),那么它只是安全的
如果您信任random.org本身(它可以例如,将生成的数据与您的IP一起记录)

评论


$ \ begingroup $
那么在密码学中它们没有用吗?
$ \ endgroup $
–吉姆·麦基思(Jim McKeeth)
2012年1月10日21:07

$ \ begingroup $
我可以提出的一个应用程序是验证随机性测试。但是对于通常的应用程序(例如生成密钥),我看不到random.org可能有多有用。
$ \ endgroup $
– Conrado
2012年1月10日21:45

#6 楼

不,这将是不安全的……尤其是如果没有特定的预防措施和协议实现,那将不是安全的。另外,据我所知,random.org没有经过认证,因此从“信任”的角度将其降级。

但是在谈论这种随机性提供者时,我总是喜欢提到一个更专业的项目,因为许多人并不知道它的存在:NIST随机性信标…



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


警告:请勿将BEACON生成的值用作秘密的加密密钥。


有充分的理由:他们仍在研究潜在的实现方案以及潜在的安全性优缺点。这样的解决方案。

我不会指望random.org解决了NIST随机信标仍在研究的所有问题。

如您所知,random.org声明了类似的内容:在传输过程中,真正关心安全的任何人都不应信任任何其他人(包括RANDOM.ORG)来生成其加密密钥。


(强调我的)

在安全性方面,因此,我个人建议不信任来自random.org之类的服务的数据,而不是比NIST Randomness Beacon项目在其当前研究阶段所生成的信标数据更多。

将其包装起来:在加密解决方案中使用诸如random.org之类的服务中的随机数并不安全。各个服务的声明强调了这一点。

有很多经过严格审查和加密安全的替代方案,可以减少使用此类服务​​的需求。使用这些信息要比信任第三方更为明智,因为第三方强调了一个事实,即您不应该出于加密目的而信任其数据……

random.org之类的网站可能有其位置,但没有在密码学领域。

#7 楼

简短的答案是:在线随机数生成器(或更好的在线放射性/量子源)具有很高的熵且不可预测,但是它们缺少逐字用作密钥的保证隐私的元素。

请注意,通常的爱丽丝和鲍勃密码理论故事都假定思想的私密性;互相念书或叙述者是不允许的。

#8 楼

任何认真的人都不应一直信任random.org。它由非商业实体维护,该实体在所有时间都没有经济价值。因此,只要服务器可用,服务器将只获得随机数。这应该足以阻止任何严重的使用(除了其他所有提到的安全性原因之外)。

我可以看到一个情况,即您的熵池很弱,并且您使用random.org添加您自己的伪随机数生成器的附加熵。如果下降,您可能会退回到自己的弱熵源。请注意,尽管您需要认真测试后备方案是否可行,但是一旦random.org突然不再发送任何数据,就不应陷入困境。