昨晚,StarkWare产品负责人Avihu Levy和其团队的产品经理兼研究员Louis Guthmann 报告了一个路印交易所前端生成EdDSA密钥对的逻辑漏洞。我们已经确认了该漏洞的确存在。

漏洞

在路印交易所的前端代码中,我们对用于生成用户EdDSA密钥对的种子进行了一次额外的哈希处理。不幸的是,这次哈希导致用户的EdDSA密钥对实际被限制在了一个32位整数空间。这个漏洞导致黑客可以通过穷举,找出所有用户的EdDSA密钥对。这是个严重的安全问题。

对用户资产安全的影响

路印协议使用EdDSA密钥对用户的链下请求做签名 — 因为EdDSA对零知识证明更加友好。这些链下请求包括订单和链下提现。

如果用户的EdDSA密钥对泄露,黑客就可以在路印交易所的订单簿上用非常低的价格出售用户的资产,并作为交易对手方来获利。

黑客还可以进行链下提现,但是用户的资产只会被提现到用户的地址,而不是黑客指定的其他地址。这是路印协议设计中的一个安全保障,正好是用来处理此类密钥泄露的情况。

用户的以太坊账户是安全的

这个漏洞和用户的以太坊地址或其ECDSA密钥对无关。 路印协议和路印交易所不访问也无法访问用户的以太坊密钥。

漏洞和路印协议、中继无关

这次发现的漏洞是个网页端的问题,和路印协议,路印中继系统没有直接关联。

问题修复

我们第一时间改进了派生EdDSA密钥对的方式,并已经在生产环境中发布了新版本。

另一方面,我们停止了所有现有用户的订单撮合服务,直到他们更改了交易密码,并由此更新了EdDSA密钥对。充值和提现一直不受影响,可以正常进行。

用户需要采取的行动

所有用户都应该在下次使用路印交易所时重置密码。但这一操作并不急迫,换句话说,即使您现在什么都不做,您的资产也不会受到任何损失。

在重置密码时,您可以使用相同的交易密码。我们只需要一个新的重置密码的以太坊交易。

为了确保您使用的网页端是修复后的版本,请在网页的左上角将鼠标悬停在Beta1标签上,并确保LAST_COMMMIT不是c67193a14fb230f28a3be54f81a897f3fa4a8f13

检查前端提交的哈希

如果您仍然看到旧的LAST_COMMMIT,请强迫浏览器重新加载我们的网站。使用Chrome/火狐浏览器,您可以:

  1. 按住Ctrl键,然后单击“重新加载”按钮。
  2. 或者,按住Ctrl并按F5。

路印需要采取的行动

我们将对前端代码库进行更彻底的内部安全审计,以确保不会忽略layer 2的安全性。我们还会考虑在未来开源我们的前端代码。

对于此漏洞给您带来的任何不便,我们深表歉意。

我们感谢Avihu Levy, Louis Guthmann, 和 StarkWare及时专业地报告了这个漏洞。非常感谢!


关于路印协议:路印协议采用零知识证明(zkRollup)技术,允许开发者在以太坊上搭建高吞吐量、低成本、非托管、基于订单本的去中心化交易平台。路印交易所在不牺牲安全性的前提下,提供媲美中心化交易所的交易体验。

获取路印协议更多最新的动态,请访问我们的社区帐号:
⭑ Twitter: twitter.com/loopringorg
⭑ Reddit: reddit.com/r/loopringorg
⭑ 电报: t.me/loopringfans (中文)
⭑ 微博: https://weibo.com/loopringfoundation
⭑ 路印的官方微信群: