Zur Sicherheit von Boobas Musikvideo und NFTs | Hauptbuch

Zur Sicherheit von Boobas Musikvideo und NFTs | Hauptbuch

Quellknoten: 2657383

Der 3. November 2021, Booba (der französische Rapper, der das Label gegründet hat La Piraterie-Musik) stellte einen Satz von 5 NFTs bereit zum Verkauf, für insgesamt 5000 dieser animierten Karten. Die Gesamtheit dieser NFTs wurde innerhalb weniger Tage für 150 ETH (jeweils 0.006 ETH) verkauft, was zu diesem Zeitpunkt mehr als 700.000 US-Dollar entspricht. Als Bonus durften glückliche Besitzer eines dieser NFTs das exklusive Musikvideo sehen TN Da die 8 November 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, Ostseite

Wir waren etwas neugierig und fragten uns, wie das Musikvideo geschützt war und ob wir es genießen konnten, auch wenn wir keins gekauft hatten NFTs.

Wie funktioniert der Musikvideoschutz?

Um das Video zu sehen, müssen Besitzer der NFTs die Seite besuchen /mon-nft und verwenden Sie ihre Krypto-Wallet (wie Metamask oder WalletConnect), um die Ethereum-Nachricht zu signieren "Pour accéder à TN, merci de bien vouloir signer ce message" mit der gleichen Wallet wie die, mit der die NFTs gekauft wurden. Nach der Signatur sendet der Webbrowser eine POST-Anfrage mit einem JSON-Text, der diesem Format folgt, an a Webservice gehostet auf AWS:

Einige Tests zeigen, dass von der Standardnachricht abweichende Nachrichten nicht abgelehnt werden, solange sie JSON-codiert sind. Zum Beispiel: [1337] und "blah" gelten als gültig, Nachrichten, die nicht in JSON vorliegen, lösen jedoch eine aus internal error sofort.

Wenn die mit der Ethereum-Adresse verknüpfte Signatur (wallet) und message gültig sind, überprüft der Server, ob das Wallet tatsächlich einen der NFTs gekauft hat, andernfalls tritt ein Fehler auf Tu ne possèdes aucun des NFTs ist zurück gekommen. Dieser letzte Schritt nimmt etwas mehr Zeit in Anspruch, was uns die folgende Hypothese formulieren lässt. Wenn wir im Internet einen öffentlichen Schlüssel finden, der diese beiden Bedingungen erfüllt:

  • Der öffentliche Schlüssel signiert eine JSON-Nachricht und die zugehörige Signatur ist öffentlich;
  • Die Wallet hat mindestens einen der NFTs gekauft.

Möglicherweise ist es möglich, die Nachricht und die Signatur auf dem AWS-Server abzuspielen, um das Musikvideo abzurufen.

Das BOOBA TN NFT ist auch ein ERC-20-Token (B2O_TN), geprägt durch den Smart Contract 0x3b73…94dd. Wir begannen zunächst damit, alle NFT-Besitzer aufzulisten etherscan.io. Zum Zeitpunkt des Verfassens dieses Artikels gab es 3484 Besitzer von mindestens einem dieser NFTs. 1 Wallets besitzen mehr als einen der gleichen NFTs, wahrscheinlich um einen davon später weiterzuverkaufen.

Ein Tag meines Aufenthalts ist mein Lebensvertrauen.
Boulbi, Ostseite

1. Versuch – etherscan.io

Ethereum-Nachrichten werden mit dem verschlüsselt personal_sign Format ("x19Ethereum Signed Message:n" + length(message) + message), bevor es mit ECDSA signiert wird. Da Ethereum-Transaktionen in einem anderen Format (RLP) kodiert sind, können Transaktionssignaturen nicht als gültige Nachrichtensignaturen erkannt werden. Anders ausgedrückt: Nachrichtensignaturen sind in der Ethereum-Blockchain nicht zu finden.

Der erste Ort, an dem wir Off-Chain-Ethereum-Nachrichten gefunden haben, ist etherscan.io, das eine Webschnittstelle dazu bereitstellt überprüfen Erstellen Sie eine Ethereum-Nachrichtensignatur und speichern Sie sie schließlich, um sie über eine öffentliche URL zugänglich zu machen. Wir haben zunächst alle über diesen Dienst gespeicherten Ethereum-Nachrichten abgerufen: etherscan.io/verifiedSignatures.

Zum Beispiel überprüfenSig/2642 zeigt, dass der NFT-Besitzer von Langweiliger Affe #6743 bewiesen, dass er auch der Inhaber des Twitter-Kontos ist ape6743:

Er ist auch Besitzer der NFTs Booba TN wie hier gezeigt Transaktion. Selbst wenn die Signatur gültig ist, ist die Nachricht jedoch nicht JSON-formatiert und kann vom AWS-Server nicht erkannt werden.

Es besteht die Möglichkeit, dass du gagner wirst, wenn du dich daran erfreust.
Magnifique, Trône

2. Versuch – snapshot.org

Die Webseite snapshot.org ermöglicht es Einzelpersonen, über ihre Ethereum-Wallet für Vorschläge zu stimmen: Snapshot ist ein gasloser Off-Chain-Multi-Governance-Client mit leicht zu überprüfenden, aber schwer zu bestreitenden Ergebnissen. Die Stimmen liegen übrigens im JSON-Format vor.

GraphQL Über die Schnittstelle kann die Stimmendatenbank abgefragt werden. Beispielsweise gibt die folgende minimale GraphQL-Anfrage Abstimmungs-IDs zurück, in denen sich die Wähleradresse befindet 0x668248dF4595e09Aa253B31478312748078F7a20:

Das Abfrageergebnis zeigt, dass diese Adresse für 2 Abstimmungen verwendet wurde:

Die von jeder Wallet, die Booba TN NFTs besitzt, unterzeichneten Stimmen können vollständig mit einer einzigen GraphQL-Anfrage abgerufen werden. Es gibt 689 Ergebnisse für 140 einzelne Wähler.

Die Adresse 0x668248dF4595e09Aa253B31478312748078F7a20 gekauft 5 Booba TN NFTs. Wie bereits gezeigt, stimmte diese Adresse auch für die folgenden Vorschläge:

Die zugehörigen Stimmen werden im InterPlanetary File System (IPFS) gespeichert: QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM und QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Der Inhalt der ersten Abstimmung ist:

Video-Screenshot

Bitte beachten Sie, dass die URL nach einiger Zeit abläuft und nicht mehr gültig ist.

Zusammenfassung

Dieser Blogbeitrag zeigt, dass die Kryptografie, die diesem NFT-Ereignis zugrunde liegt, zwar solide ist, aber eine grundlegende Angriff wiederholen reichte aus, um den Musikvideoschutz zu durchbrechen. Die Lösung ist einfach: Die an den AWS-Server gesendete Nachricht sollte abgelehnt werden, wenn sie nicht mit der an die Krypto-Wallet gesendeten Nachricht übereinstimmt.

Die Piraterie ist noch nicht fertig!
Walabok, Nero Nemesis

Nach der Kontaktaufnahme (den richtigen Ansprechpartner zu finden war eigentlich der schwierigste Teil) meldeten sich die Entwickler RenaissanceNFT waren super kooperativ und reaktionsschnell. Das Problem wurde innerhalb von weniger als einer Stunde behoben und der Schutzzugriff kann nicht mehr umgangen werden.

Zeitstempel:

Mehr von Ledger