O varnosti Boobinega glasbenega videa in NFT-jev | Ledger

O varnosti Boobinega glasbenega videa in NFT-jev | Ledger

Izvorno vozlišče: 2657383

3. november 2021, Booba (francoski raper, ki je ustvaril založbo Glasba La Piraterie) postavite nabor 5 NFT-jev naprodaj, za skupno 5000 vsake od teh animiranih kartic. Vsi ti NFT-ji so bili v nekaj dneh prodani za 150 ETH (0.006 ETH vsak), kar je na ta datum več kot 700.000 $. Kot bonus so srečni lastniki enega od teh NFT-jev lahko videli ekskluzivni glasbeni video TN od 8 november 2021.

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

Bili smo nekoliko radovedni in spraševali smo se, kako je glasbeni video zaščiten in ali bi lahko uživali v njem, tudi če ga ne bi kupili. NFT.

Kako deluje zaščita glasbenega videa?

Za ogled videoposnetka morajo lastniki NFT-jev obiskati stran /pon-nft in uporabijo svojo kripto denarnico (kot je Metamask ali WalletConnect) za podpis sporočila Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" z isto denarnico kot tista, uporabljena za nakup NFT-jev. Ko je podpisana, spletni brskalnik pošlje zahtevo POST s telesom JSON, ki sledi tej obliki, na a spletne storitve gostuje na AWS:

Nekaj ​​testov je pokazalo, da sporočila, ki se razlikujejo od privzetega, niso zavrnjena, če so kodirana v JSON. Na primer: [1337] in "blah" se štejejo za veljavne, vendar sporočila, ki niso v JSON, sprožijo internal error takoj.

Če je podpis povezan z naslovom Ethereum (wallet) in message so veljavni, strežnik preveri, ali je denarnica res kupila enega od NFT-jev, sicer napaka Tu ne possèdes aucun des NFTs se vrne. Ta zadnji korak zahteva nekaj več časa, kar nam omogoča oblikovanje naslednje hipoteze. Če na internetu najdemo javni ključ, ki izpolnjuje ta dva pogoja:

  • Javni ključ je podpisal sporočilo JSON in povezan podpis je javen;
  • Denarnica je kupila vsaj enega od NFT-jev.

morda je mogoče znova predvajati sporočilo in podpis na strežniku AWS, da pridobite glasbeni video.

BOOBA TN NFT je tudi žeton ERC-20 (B2O_TN), skovan s pametno pogodbo 0x3b73…94dd. Najprej smo začeli s seznamom vseh lastnikov NFT, zahvaljujoč etherscan.io. V času pisanja je bilo 3484 lastnikov vsaj 1 od teh NFT-jev. 1516 denarnic ima v lasti več kot eno od istih NFT, verjetno za preprodajo enega od teh pozneje.

Un jour de mon salaire c'est leur assurance vie.
Boulbi, Ouest Side

1. poskus – etherscan.io

Sporočila Ethereum so kodirana z uporabo personal_sign format ("x19Ethereum Signed Message:n" + length(message) + message), preden se podpiše z ECDSA. Ker so transakcije Ethereum kodirane v drugi obliki (RLP), podpisov transakcij ni mogoče prepoznati kot veljavnih podpisov sporočil. Povedano drugače, podpisov sporočil ni mogoče najti v verigi blokov Ethereum.

Prvo mesto, kjer smo našli sporočila Ethereum zunaj verige, je etherscan.io, ki ponuja spletni vmesnik za preverjanje podpis sporočila Ethereum in ga na koncu shranite, da bo dostopen prek javnega URL-ja. Najprej smo pridobili vsa sporočila Ethereum, shranjena prek te storitve: etherscan.io/verifiedSignatures.

Na primer preveriSig/2642 kaže, da je lastnik NFT Dolgočasna opica #6743 dokazal, da je tudi lastnik Twitter računa opica6743:

Je tudi lastnik NFT-jev Booba TN kot je prikazano v tem transakcija. Tudi če je podpis veljaven, sporočilo ni oblikovano JSON in ga strežnik AWS ne more prepoznati.

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

2. poskus – snapshot.org

spletna stran snapshot.org omogoča posameznikom, da glasujejo za predloge z uporabo svoje denarnice Ethereum: Snapshot je odjemalec večupravljanja brez plina zunaj verige z rezultati, ki jih je enostavno preveriti, in težko izpodbijati.. Glasovi so po naključju v formatu JSON.

GraphQL vmesnik se lahko uporablja za poizvedovanje po podatkovni bazi glasov. Naslednja minimalna zahteva GraphQL na primer vrne ID-je glasovanja, kjer je naslov volivca 0x668248dF4595e09Aa253B31478312748078F7a20:

Rezultat poizvedbe kaže, da je bil ta naslov uporabljen za 2 glasovanja:

Glasove, ki jih je podpisala vsaka denarnica, ki ima v lasti Booba TN NFT, je mogoče pridobiti v celoti z eno samo zahtevo GraphQL. Obstaja 689 rezultatov za 140 edinstvenih volivcev.

Naslov 0x668248dF4595e09Aa253B31478312748078F7a20 Kupil 5 Booba TN NFT. Kot je prikazano prej, je ta naslov glasoval tudi za naslednje predloge:

Povezani glasovi so shranjeni v medplanetarnem datotečnem sistemu (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM in QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Vsebina prvega glasovanja je:

videoposnetek zaslona

Upoštevajte, da URL po določenem času poteče in ni več veljaven.

zaključek

Ta objava v spletnem dnevniku kaže, da je kriptografija, ki poganja ta dogodek NFT, dobra, osnovna ponovni napad je zadostovalo za zlom zaščite glasbenega videa. Popravek je preprost: sporočilo, poslano strežniku AWS, je treba zavrniti, če se ne ujema s sporočilom, poslanim v kripto denarnico.

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

Ko so bili vzpostavljeni stik (najtežji del je bilo najti pravi kontakt), so razvijalci iz RenaissanceNFT bili super kooperativni in odzivni. Težava je bila odpravljena v manj kot eni uri in zaščitenega dostopa ni več mogoče zaobiti.

Časovni žig:

Več od Ledger