Ed25519是一种流行的数字签名算法,其实施不佳导致数十个密码库容易受到攻击。根据发现并报告该漏洞的MystenLabs密码学家Konstantinos Chalkias的说法,攻击者可以利用该漏洞从加密货币钱包中窃取私钥。一些但并非所有易受攻击的技术都已被修补。
Ed25519通常用作椭圆曲线数字签名算法(ECDSA)的现代替代品。Ed25519比ECDSA更开放、更安全、更快速,这就是为什么它在许多领域变得非常流行,尤其是在区块链和加密货币平台中。
“针对ECDSA的主要好处是EdDSA签名[nature]是确定性的,用户不需要[访问]安全的随机数生成器[RNG]来签署交易,”Chalkias说。“这有什么用?因为用户的笔记本电脑或物联网设备可能没有良好的熵源或支持较弱的[RNG]功能。”
许多安全事件表明,糟糕的随机生成可能导致私钥泄露或被盗。一个值得注意的例子是PlayStation 3的私钥泄漏,其技术依赖于ECDSA算法。
Ed25519消息签名的标准规范涉及为算法提供消息和私钥。该函数将使用私钥计算公钥并对消息进行签名。一些库提供消息签名函数的变体,它也将预先计算的公钥作为输入参数。这种实现有一些好处。
“每次重新计算公钥会导致算法变慢(它为椭圆曲线点乘法添加了一个额外的标量来导出公钥,这将速度降低了近2倍,可能使其比ECDSA更慢),”Chalkias说。
“通常,在密码学中,避免多次访问私钥是一种良好的卫生习惯。如果我们在每次签名调用时都允许派生公钥,那么这意味着我们需要访问它两次,一次是签名,一次是派生公钥。”
但是,修改也会在库中创建一个安全漏洞。
Chalkias发现一些库允许任意公钥作为输入,而不检查输入公钥是否对应于输入私钥。这个缺点意味着攻击者可以将签名功能用作Oracle,执行密码分析并最终获取机密。例如,无法访问私钥但可以通过API调用访问签名机制的攻击者可以使用多个公钥和消息来逐步建立对私钥参数的洞察力。
评论已关闭。