Om sikkerheten til Boobas musikkvideo og NFT-er | Ledger

Om sikkerheten til Boobas musikkvideo og NFT-er | Ledger

Kilde node: 2657383

3. november 2021, Booba (den franske rapperen som opprettet etiketten La Piraterie musikk) sette et sett med 5 NFT-er til salgs, for totalt 5000 av hvert av disse animerte kortene. Hele disse NFT-ene ble solgt på noen få dager for 150 ETH (0.006 ETH hver), det vil si mer enn $700.000 på denne datoen. Som en bonus fikk heldige eiere av en av disse NFT-ene se den eksklusive musikkvideoen TN siden 8 november 2021.

Les rappers m’envient, sont tous en galère.
Boulbi, Ouest Side

Vi var litt nysgjerrige og lurte på hvordan musikkvideoen var beskyttet og om vi kunne nyte den selv om vi ikke kjøpte noen NFT-er.

Hvordan fungerer musikkvideobeskyttelsen?

For å se videoen må eiere av NFT-ene besøke siden /man-nft og bruke kryptolommeboken deres (som Metamask eller WalletConnect) for å signere Ethereum-meldingen "Pour accéder à TN, merci de bien vouloir signer ce message" med samme lommebok som den som ble brukt til å kjøpe NFT-ene. Når den er signert, sendes en POST-forespørsel med en JSON-kropp etter dette formatet av nettleseren til en nettjeneste vert på AWS:

Noen få tester viser at meldinger som er forskjellige fra standardmeldingen, ikke blir avvist så lenge de er JSON-kodet. For eksempel: [1337] og "blah" anses som gyldige, men meldinger som ikke er i JSON utløser en internal error umiddelbart.

Hvis signaturen knyttet til Ethereum-adressen (wallet) Og message er gyldige, bekrefter serveren at lommeboken faktisk kjøpte en av NFT-ene, ellers feilen Tu ne possèdes aucun des NFTs er returnert. Dette siste trinnet tar litt mer tid, som lar oss formulere følgende hypotese. Hvis vi finner en offentlig nøkkel på Internett som oppfyller disse to betingelsene:

  • Den offentlige nøkkelen signerte en JSON-melding og den tilknyttede signaturen er offentlig;
  • Lommeboken kjøpte minst en av NFT-ene.

det kan være mulig å spille av meldingen og signaturen på nytt på AWS-serveren for å hente musikkvideoen.

De BOOBA TN NFT er også et ERC-20-token (B2O_TN) preget av den smarte kontrakten 0x3b73…94dd. Vi startet først med å liste opp alle NFT-eierne takket være etherscan.io. I skrivende stund var det 3484 eiere av minst 1 av disse NFT-ene. 1516 lommebøker eier mer enn én av samme NFT, sannsynligvis for å videreselge en av disse senere.

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

1. forsøk – etherscan.io

Ethereum-meldinger kodes ved hjelp av personal_sign format ("x19Ethereum Signed Message:n" + length(message) + message) før den ble signert med ECDSA. Siden Ethereum-transaksjoner er kodet til et annet format (RLP), kan ikke transaksjonssignaturer gjenkjennes som gyldige meldingssignaturer. Si det annerledes, meldingssignaturer kan ikke finnes på Ethereum-blokkjeden.

Det første stedet vi fant Ethereum-meldinger utenfor kjeden er etherscan.io, som gir et nettgrensesnitt for verifisere en Ethereum-meldingssignatur og til slutt lagre den for å gjøre den tilgjengelig via en offentlig URL. Vi hentet først alle Ethereum-meldinger lagret gjennom denne tjenesten: etherscan.io/verifiedSignatures.

For eksempel verifySig/2642 viser at NFT-eieren av Kjedelig ape #6743 bevist at han også er eieren av Twitter-kontoen ape6743:

Han er også eier av NFT-ene Booba TN som vist i denne Transaksjonen. Men selv om signaturen er gyldig, er meldingen ikke JSON-formatert og kan ikke gjenkjennes av AWS-serveren.

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

2. forsøk – snapshot.org

Nettsiden snapshot.org lar enkeltpersoner stemme for forslag ved å bruke deres Ethereum-lommebok: Snapshot er en gassløs multi-governance-klient utenfor kjeden med resultater som er enkle å verifisere og vanskelige å bestride. Stemmer er tilfeldigvis i JSON-format.

GraphQL grensesnitt kan brukes til å spørre i stemmedatabasen. For eksempel returnerer følgende minimale GraphQL-forespørsel stemme-IDer der velgeradressen er 0x668248dF4595e09Aa253B31478312748078F7a20:

Spørreresultatet viser at denne adressen har blitt brukt til 2 stemmer:

Stemmene signert av hver lommebok som eier Booba TN NFT-er kan hentes i sin helhet med en enkelt GraphQL-forespørsel. Det er 689 resultater for 140 unike velgere.

Adressen 0x668248dF4595e09Aa253B31478312748078F7a20 kjøpt 5 Booba TN NFT-er. Som vist tidligere stemte denne adressen også for følgende forslag:

De tilknyttede stemmene lagres på InterPlanetary File System (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM og QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Innholdet i den første avstemningen er:

video skjermdump

Vær oppmerksom på at nettadressen utløper etter en periode og ikke lenger er gyldig.

konklusjonen

Dette blogginnlegget viser at selv om kryptografien som driver denne NFT-hendelsen er forsvarlig, en grunnleggende replay-angrep var tilstrekkelig til å bryte musikkvideobeskyttelsen. Løsningen er enkel: meldingen som sendes til AWS-serveren bør avvises hvis den ikke samsvarer med meldingen sendt til kryptolommeboken.

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

En gang kontaktet (å finne den rette kontakten var faktisk den vanskeligste delen), utviklerne fra RenaissanceNFT var super samarbeidsvillige og lydhøre. Problemet ble løst innen mindre enn en time, og beskyttelsestilgangen kan ikke omgås lenger.

Tidstempel:

Mer fra Ledger