Despre securitatea videoclipului muzical al lui Booba și a NFT-urilor | Registrul mare

Despre securitatea videoclipului muzical al lui Booba și a NFT-urilor | Registrul mare

Nodul sursă: 2657383

3 noiembrie 2021, booba (rapperul francez care a creat eticheta La Piraterie Music) puneți un set de 5 NFT-uri de vânzare, pentru un total de 5000 din fiecare dintre aceste cărți animate. Totalitatea acestor NFT-uri au fost vândute în câteva zile pentru 150 ETH (0.006 ETH fiecare), adică peste 700.000 USD la această dată. Ca bonus, proprietarii norocoși ai unuia dintre aceste NFT au avut voie să vadă videoclipul muzical exclusiv TN din moment ce 8 noiembrie 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, partea de vest

Am fost puțin curioși și ne-am întrebat cum a fost protejat videoclipul și dacă ne-am putea bucura de el chiar dacă nu am cumpărat niciunul NFT-uri.

Cum funcționează protecția videoclipurilor muzicale?

Pentru a vedea videoclipul, proprietarii NFT-urilor trebuie să viziteze pagina /lun-nft și să-și folosească portofelul cripto (cum ar fi Metamask sau WalletConnect) pentru a semna mesajul Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" cu același portofel decât cel folosit pentru cumpărarea NFT-urilor. Odată semnată, o solicitare POST cu un corp JSON care urmează acest format este trimisă de browserul web către a serviciu web găzduit pe AWS:

Câteva teste arată că mesajele diferite de cel implicit nu sunt respinse atâta timp cât sunt codificate JSON. De exemplu: [1337] și "blah" sunt considerate valide, însă mesajele care nu sunt în JSON declanșează un internal error instantaneu.

Dacă semnătura asociată adresei Ethereum (wallet) Şi message sunt valide, serverul verifică dacă portofelul a cumpărat într-adevăr unul dintre NFT-uri, altfel eroarea Tu ne possèdes aucun des NFTs este returnat. Acest ultim pas necesită ceva mai mult timp, ceea ce ne permite să formulăm următoarea ipoteză. Dacă găsim pe internet o cheie publică care îndeplinește aceste 2 condiții:

  • Cheia publică a semnat un mesaj JSON și semnătura asociată este publică;
  • Portofelul a cumpărat cel puțin unul dintre NFT-uri.

ar putea fi posibil să redați mesajul și semnătura pe serverul AWS pentru a prelua videoclipul muzical.

 BOOBA TN NFT este, de asemenea, un token ERC-20 (B2O_TN) bătute prin contractul inteligent 0x3b73…94dd. Am început prin a enumera toți proprietarii NFT datorită lui etherscan.io. La momentul redactării acestui articol, existau 3484 de proprietari ai cel puțin 1 dintre aceste NFT. 1516 portofele dețin mai mult de unul dintre același NFT, probabil pentru a revând unul dintre acestea mai târziu.

Un jour de mon salaire c'est leur assurance vie.
Boulbi, partea de vest

Prima încercare – etherscan.io

Mesajele Ethereum sunt codificate folosind personal_sign format ("x19Ethereum Signed Message:n" + length(message) + message) înainte de a fi semnat folosind ECDSA. Deoarece tranzacțiile Ethereum sunt codificate într-un format diferit (RLP), semnăturile tranzacțiilor nu pot fi recunoscute ca semnături de mesaj valide. Cu alte cuvinte, semnăturile mesajelor nu pot fi găsite pe blockchain-ul Ethereum.

Primul loc unde am găsit mesaje Ethereum în afara lanțului este etherscan.io, care oferă o interfață web pentru verifica o semnătură de mesaj Ethereum și eventual salvați-o pentru a o face accesibilă printr-o adresă URL publică. Am preluat mai întâi toate mesajele Ethereum salvate prin acest serviciu: etherscan.io/verifiedSignatures.

De exemplu verifySig/2642 arată că proprietarul NFT al Maimuță plictisitoare #6743 a dovedit că el este și proprietarul contului de Twitter maimuță6743:

El este, de asemenea, proprietarul NFT-urilor Booba TN așa cum se arată în aceasta tranzacție. Cu toate acestea, chiar dacă semnătura este validă, mesajul nu este formatat JSON și nu poate fi recunoscut de serverul AWS.

Tu n'peux que gagner quand t'as rien à perdre.
Magnifique, Trône

A doua încercare – snapshot.org

Site-ul snapshot.org permite persoanelor să voteze pentru propuneri folosind portofelul Ethereum: Snapshot este un client multi-guvernare fără gaze în afara lanțului, cu rezultate ușor de verificat și greu de contestat. Voturile sunt întâmplător în format JSON.

GraphQL interfața poate fi folosită pentru a interoga baza de date de voturi. De exemplu, următoarea solicitare minimă GraphQL returnează ID-urile de vot unde se află adresa alegătorului 0x668248dF4595e09Aa253B31478312748078F7a20:

Rezultatul interogării arată că această adresă a fost folosită pentru 2 voturi:

Voturile semnate de fiecare portofel care deține Booba TN NFT pot fi recuperate în întregime cu o singură solicitare GraphQL. Există 689 de rezultate pentru 140 de alegători unici.

Adresa 0x668248dF4595e09Aa253B31478312748078F7a20 au cumpărat 5 Booba TN NFT. După cum sa arătat anterior, această adresă a votat și pentru următoarele propuneri:

Voturile asociate sunt stocate în Sistemul de fișiere InterPlanetary (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM și QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Conținutul primului vot este:

captură de ecran video

Vă rugăm să rețineți că adresa URL expiră după o perioadă de timp și nu mai este valabilă.

Concluzie

Această postare pe blog arată că, chiar dacă criptografia care alimentează acest eveniment NFT este solidă, o bază atac de redare a fost suficient pentru a sparge protecția videoclipului muzical. Remedierea este simplă: mesajul trimis către serverul AWS ar trebui respins dacă nu se potrivește cu mesajul trimis către portofelul cripto.

La piraterie n'est jamais finie !
Walabok, Nero Nemesis

Odată contactați (găsirea contactului potrivit a fost de fapt partea cea mai dificilă), dezvoltatorii de la RenaissanceNFT au fost super cooperanți și receptivi. Problema a fost rezolvată în mai puțin de o oră și accesul la protecție nu mai poate fi ocolit.

Timestamp-ul:

Mai mult de la carte mare