Booban musiikkivideon ja NFT:n turvallisuudesta | Ledger

Booban musiikkivideon ja NFT:n turvallisuudesta | Ledger

Lähdesolmu: 2657383

3. marraskuuta 2021, Booba (ranskalainen räppäri, joka loi levyn La Piraterie musiikkia) laita 5 NFT:n sarja myyntiin, yhteensä 5000 150 kutakin näistä animoiduista korteista. Kaikki nämä NFT:t myytiin muutamassa päivässä hintaan 0.006 ETH (700.000 ETH kukin), mikä on yli XNUMX XNUMX dollaria tänä päivänä. Bonuksena yhden tällaisen NFT:n onnelliset omistajat saivat nähdä eksklusiivisen musiikkivideon TN koska 8 marraskuu 2021.

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

Olimme hieman uteliaita ja ihmettelimme kuinka musiikkivideo oli suojattu ja voisimmeko nauttia siitä, vaikka emme ostaisikaan NFT: t.

Miten musiikkivideon suojaus toimii?

Nähdäkseen videon NFT:n omistajien täytyy käydä sivulla /mon-nft ja käyttää kryptolompakkoaan (kuten Metamask tai WalletConnect) Ethereum-viestin allekirjoittamiseen "Pour accéder à TN, merci de bien vouloir signer ce message" samalla lompakolla kuin NFT:t ostettaessa. Allekirjoituksen jälkeen verkkoselain lähettää POST-pyynnön, jossa on tätä muotoa noudattava JSON-teksti, osoitteeseen a verkkopalvelu isännöi AWS:ssä:

Muutamat testit osoittavat, että oletusviestistä poikkeavia viestejä ei hylätä, kunhan ne ovat JSON-koodattuja. Esimerkiksi: [1337] ja "blah" katsotaan kelvollisiksi, mutta viestit, jotka eivät ole JSONissa, laukaisevat internal error hetkessä.

Jos Ethereum-osoitteeseen liittyvä allekirjoitus (wallet) Ja message ovat voimassa, palvelin varmistaa, että lompakko todellakin osti yhden NFT:stä, muuten virhe Tu ne possèdes aucun des NFTs palautetaan. Tämä viimeinen vaihe vie hieman enemmän aikaa, joten voimme muotoilla seuraavan hypoteesin. Jos löydämme Internetistä julkisen avaimen, joka täyttää nämä kaksi ehtoa:

  • Julkinen avain allekirjoitti JSON-sanoman ja siihen liittyvä allekirjoitus on julkinen;
  • Lompakko osti ainakin yhden NFT:stä.

saattaa olla mahdollista toistaa viesti ja allekirjoitus AWS-palvelimella musiikkivideon hakemiseksi.

BOOBA TN NFT on myös ERC-20-tunnus (B2O_TN) lyöty älykkäällä sopimuksella 0x3b73…94dd. Aloitimme listaamalla kaikki NFT-omistajat, kiitos etherscan.io. Kirjoitushetkellä ainakin yhden näistä NFT:stä oli 3484 1 omistajaa. 1516 lompakkoa omistaa useamman kuin yhden saman NFT:n, luultavasti myydäkseen yhden niistä myöhemmin.

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

Ensimmäinen yritys – etherscan.io

Ethereum-viestit koodataan käyttämällä personal_sign muoto ("x19Ethereum Signed Message:n" + length(message) + message) ennen kuin se allekirjoitetaan ECDSA:lla. Koska Ethereum-tapahtumat on koodattu eri muotoon (RLP), tapahtuman allekirjoituksia ei voida tunnistaa kelvollisiksi viestien allekirjoituksiksi. Toisin sanoen viestien allekirjoituksia ei löydy Ethereum-lohkoketjusta.

Ensimmäinen paikka, josta löysimme ketjun ulkopuolisia Ethereum-viestejä, on etherscan.io, joka tarjoaa verkkokäyttöliittymän todentaa Ethereum-viestin allekirjoitus ja tallenna se lopulta käytettäväksi julkisen URL-osoitteen kautta. Haimme ensin kaikki tämän palvelun kautta tallennetut Ethereum-viestit: etherscan.io/verifiedSignatures.

Esimerkiksi verifySig/2642 osoittaa, että NFT:n omistaja Tylsä apina #6743 osoitti olevansa myös Twitter-tilin omistaja apina6743:

Hän on myös NFT:n omistaja Booba TN kuten tässä näkyy kauppa. Vaikka allekirjoitus olisikin kelvollinen, viesti ei ole JSON-muotoiltu, eikä AWS-palvelin voi tunnistaa sitä.

Tu n'peux que gagner quand t'as rien à perdre.
Magnifique, Trone

Toinen yritys – snapshot.org

Nettisivu snapshot.org sallii yksilöiden äänestää ehdotuksia käyttämällä Ethereum-lompakkoaan: Snapshot on ketjun ulkopuolinen kaasuton monen hallinnon asiakas, jonka tulokset on helppo tarkistaa ja tulokset on vaikea kyseenalaistaa. Äänet ovat sattumalta JSON-muodossa.

GraphQL käyttöliittymää voidaan käyttää äänitietokannan kyselyyn. Esimerkiksi seuraava GraphQL-minimipyyntö palauttaa äänestystunnukset, joissa äänestäjän osoite on 0x668248dF4595e09Aa253B31478312748078F7a20:

Kyselyn tulos osoittaa, että tätä osoitetta on käytetty 2 äänessä:

Jokaisen Booba TN NFT:n omistavan lompakon allekirjoittamat äänet voidaan noutaa kokonaisuudessaan yhdellä GraphQL-pyynnöllä. Tuloksia on 689 140 yksittäiselle äänestäjälle.

Osoite 0x668248dF4595e09Aa253B31478312748078F7a20 osti 5 Booba TN NFT:tä. Kuten aiemmin osoitettiin, tämä osoite äänesti myös seuraavien ehdotusten puolesta:

Asiaan liittyvät äänet tallennetaan InterPlanetary File Systemiin (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM ja QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Ensimmäisen äänestyksen sisältö on:

videon kuvakaappaus

Huomaa, että URL-osoite vanhenee tietyn ajan kuluttua eikä ole enää voimassa.

Yhteenveto

Tämä blogikirjoitus osoittaa, että vaikka tämän NFT-tapahtuman salaus onkin hyvä, perusasia uusintahyökkäys riitti rikkomaan musiikkivideon suojauksen. Korjaus on yksinkertainen: AWS-palvelimelle lähetetty viesti tulee hylätä, jos se ei vastaa salauslompakkoon lähetettyä viestiä.

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

Kun otettiin yhteyttä (oikean kontaktin löytäminen oli itse asiassa vaikein osa), kehittäjät alkaen RenaissanceNFT olivat erittäin yhteistyöhaluisia ja reagoivia. Ongelma korjattiin alle tunnissa, eikä suojausta voi enää ohittaa.

Aikaleima:

Lisää aiheesta pääkirja