关于 Booba 的音乐视频和 NFT 的安全性 | 账本

关于 Booba 的音乐视频和 NFT 的安全性 | 账本

源节点: 2657383

3 年 2021 月 XNUMX 日, BOOBA (创建该厂牌的法国说唱歌手 海盗音乐)放置一组 5 个 NFT 待售,每张动画卡总共 5000 张。 这些 NFT 在几天内全部以 150 ETH(每张 0.006 ETH)的价格售出,截至目前已超过 700.000 美元。 作为奖励,这些 NFT 之一的幸运所有者被允许观看独家音乐视频 TN 自 8. Nov.2021.

Les rappeurs m'envient, sont tous en galère。
– 布尔比,西侧

我们有点好奇,想知道音乐视频是如何受到保护的,即使我们不购买任何音乐视频是否也可以欣赏它 NFT.

音乐视频保护如何运作?

为了观看视频,NFT 所有者必须访问该页面 /mon-nft 并使用他们的加密钱包(例如 Metamask 或 WalletConnect)来签署以太坊消息 "Pour accéder à TN, merci de bien vouloir signer ce message" 使用与购买 NFT 相同的钱包。 签名后,Web 浏览器会将带有遵循此格式的 JSON 正文的 POST 请求发送到 网络服务 托管在 AWS 上:

一些测试表明,只要是 JSON 编码的消息,与默认消息不同的消息就不会被拒绝。 例如: [1337] 和 "blah" 被认为是有效的,但是不在 JSON 中的消息会触发 internal error 瞬间。

如果与以太坊地址关联的签名(wallet) 以及 message 有效,服务器验证钱包确实购买了其中一种 NFT,否则错误 Tu ne possèdes aucun des NFTs 被返回。 最后一步需要多一点时间,这让我们可以提出以下假设。 如果我们在互联网上找到满足这两个条件的公钥:

  • 公钥对 JSON 消息进行签名,并且关联的签名是公开的;
  • 该钱包至少购买了一种 NFT。

或许可以在 AWS 服务器上重播消息和签名来检索音乐视频。

 BOOBA TN NFT 也是一种 ERC-20 代币(B2O_TN)由智能合约铸造 0x3b73…94dd。 我们首先列出了所有 NFT 所有者,感谢 etherscan.io。 截至撰写本文时,有 3484 名所有者至少拥有其中 1 种 NFT。 1516 个钱包拥有不止一个相同的 NFT,可能会在以后转售其中一个。

今天的工资就是保证竞争的保证。
– 布尔比,西侧

第一次尝试 – etherscan.io

以太坊消息使用以下方式编码 personal_sign 格式("x19Ethereum Signed Message:n" + length(message) + message),然后使用 ECDSA 进行签名。 由于以太坊交易被编码为不同的格式(RLP),交易签名无法被识别为有效的消息签名。 换句话说,在以太坊区块链上找不到消息签名。

我们发现链下以太坊消息的第一个地方是 etherscan.io,它提供了一个 Web 界面 确认 以太坊消息签名并最终保存它以便通过公共 URL 进行访问。 我们首先检索通过此服务保存的所有以太坊消息: etherscan.io/verifiedSignatures.

例如 验证签名/2642 显示 NFT 所有者 无聊的猿 #6743 证明他也是 Twitter 帐户的所有者 猿6743:

他也是 NFT 的所有者 布巴田纳西州 如图所示 交易。 但是,即使签名有效,该消息也不是 JSON 格式,无法被 AWS 服务器识别。

Tu n'peux que gagner quand t'as rien à perdre。
– 壮丽的特隆

第二次尝试 – snapshot.org

网站 快照.org 允许个人使用以太坊钱包对提案进行投票: Snapshot 是一个链下无 Gas 多治理客户端,易于验证且难以质疑结果。 投票恰好采用 JSON 格式。

GraphQL 接口可用于查询投票数据库。 例如,以下最小 GraphQL 请求返​​回投票 ID,其中投票者地址为 0x668248dF4595e09Aa253B31478312748078F7a20:

查询结果显示该地址已被使用2票:

每个拥有 Booba TN NFT 的钱包签署的投票可以通过单个 GraphQL 请求完整检索。 689 位独立选民有 140 个结果。

地址 0x668248dF4595e09Aa253B31478312748078F7a20  5 个 Booba TN NFT。 如前所示,该地址还投票支持了以下提案:

相关投票存储在星际文件系统(IPFS)上: QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM 和 QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT。 第一次投票的内容是:

视频截图

请注意,该 URL 一段时间后就会过期,不再有效。

结论

这篇博文表明,即使支持这一 NFT 事件的密码学是合理的,一个基本的 重播攻击 足以打破音乐视频的保护。 修复方法很简单:如果发送到 AWS 服务器的消息与发送到加密钱包的消息不匹配,则应拒绝该消息。

海盗不再是牙买加了!
– 瓦拉博克,尼禄复仇者

一旦联系上(找到正确的联系人实际上是最困难的部分),来自的开发人员 文艺复兴NFT 非常合作且反应灵敏。 该问题在不到一个小时内得到解决,并且无法再绕过保护访问。

时间戳记:

更多来自 莱杰