安全是有分量的

cdn防御_cc防护是什么_如何解决

2022-01-12 20:30栏目:资讯

cdn防御_cc防护是什么_如何解决

在使用Markus分析信号时,我注意到基于Signal的Curve25519的ECDH不能验证公钥,特别是将接受0点作为公钥,从而产生与0等价的共享秘密,而不管私钥标量的值是多少。相反,如果共享密钥恰好为0,libnadium将返回一个错误,防御CC香港服务器,并且Wire现在也执行此验证,在我们报告了报告中丢失了它之后。

我们将此行为报告给了Moxie,他认为不应该验证公钥,主要是因为如果对等方是恶意的,然后他们可能会比发送无效密钥更糟糕。Trevor Perrin在噪声环境中提出了类似的反对意见,认为零检查"增加了复杂性(常量时间码、错误处理和实现差异),在好的协议中不需要。"Curve25519的设计者DJB也声称Curve25519密钥在ECDH中不需要验证,但是,对于"一些不寻常的非Diffie-Hellman椭圆曲线协议,需要确保‘贡献’行为",may表示支持。如果Moxie、Trevor和DJB认为不应该验证公钥,那么争论就结束了。

真的吗?

Thai Duong有不同的看法,免备案cc防御,Matt Green表示怀疑,我也是。

那么为什么验证ECDH公钥是有意义的?

在任何infosec类中,您学到的第一件事就是拒绝无效的输入,并检查返回值是否有错误,即使看不到明显的漏洞。这样做有时被称为"纵深防御"或"最佳实践"。Diffie-Hellman的观点是,两个密钥共享对共享秘密的贡献应该相等,因此协议不允许密钥控制,这是任何经过身份验证的密钥协商协议的理想属性,如本文所讨论的。如果协议允许一个对等方强制共享秘密为零,或者更普遍地说是位于一个子组中,那么所述对等方可以秘密地削弱协议的安全性(反对:"但是为什么对等方是恶意的?")。它是无成本的:添加一个零检查只需要十行代码,这不太可能引入新的漏洞,也不会影响性能。它降低了不明显攻击的风险。以Signal的协议为例。如果Alice生成所有的零预密钥和标识密钥,并将它们推送到信号服务器,那么所有与Alice发起新会话的对等方都将使用相同的密钥加密他们的第一条消息,该密钥来自所有零共享密钥,基本上,第一条消息将对窃听者来说是透明的。爱丽丝可以否认自己的恶意,认为她的PRNG失败了。这只是一个示例场景,虽然有些牵强,但可能还有其他的,检查无效密钥可能比证明它们永远不会被利用要容易得多。

底线是,在许多情况下,忽略密钥验证可能是好的,但在今天复杂的协议和场景中,这只是玩火。

多亏了Aaron Zauner,防火墙防御ddos攻击,David Wong,Matthew Green对这篇文章的初步版本发表了评论。

更新1:Thai Duong指出,如果Curve25519密钥没有被验证,防火墙如何防御ddos攻击,那么这个真实世界的协议就会被破坏。

更新2:Trevor Perrin将文章从"应该ECDH密钥…"重命名为"应该Curve25519密钥…"。

更新3:Trevor Perrin写了一个详细的回复,认为有效性在良好的DH协议中,检查(零密钥和其他无效密钥)是多余的,而且风险很大。他还引用了George Danezis在2014年发表的一篇文章,我鼓励你也读这篇文章。

分享:点击打印(在新窗口中打开)点击给朋友发邮件(在新窗口中打开)点击在LinkedIn上分享(在新窗口中打开)点击在Twitter上分享(在新窗口中打开)点击在Reddit上分享(在新窗口中打开)相关的当恒定时间源代码可能无法为您节省时间时,2017年1月16日在"会议和事件"中与goMay 27,2021在"量子计算"中实现了(量子)飞跃,在"加密"中为WireGuardJuly 8,静态资源高防cdn,2021添加了量子电阻