Sulla sicurezza del video musicale e degli NFT di Booba | Libro mastro

Sulla sicurezza del video musicale e degli NFT di Booba | Libro mastro

Nodo di origine: 2657383

Il 3 novembre 2021, Booba (il rapper francese che ha creato l'etichetta La Pirateria Musica) inserisci un set di 5 NFT in vendita, per un totale di 5000 di ciascuna di queste carte animate. La totalità di questi NFT sono stati venduti in pochi giorni per 150 ETH (0.006 ETH ciascuno), ovvero più di 700.000 dollari ad oggi. Come bonus, ai fortunati possessori di uno di questi NFT è stato permesso di vedere l'esclusivo video musicale TN poiché l' 8 novembre 2021.

I rappeurs m'envient, sont tous en galère.
Boulbi, lato ovest

Eravamo un po' curiosi e ci chiedevamo come fosse protetto il video musicale e se potessimo godercelo anche senza acquistarne alcuno. NFTs.

Come funziona la protezione dei video musicali?

Per vedere il video, i proprietari degli NFT devono visitare la pagina /lun-nft e usa il loro portafoglio crittografico (come Metamask o WalletConnect) per firmare il messaggio Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" con lo stesso portafoglio di quello utilizzato per acquistare gli NFT. Una volta firmata, una richiesta POST con un corpo JSON che segue questo formato viene inviata dal browser web a servizio web ospitato su AWS:

Alcuni test mostrano che i messaggi diversi da quello predefinito non vengono rifiutati purché siano codificati in JSON. Ad esempio: [1337] ed "blah" sono considerati validi, tuttavia i messaggi che non sono in JSON attivano un file internal error immediatamente.

Se la firma associata all'indirizzo Ethereum (wallet) e message sono validi, il server verifica che il wallet abbia effettivamente acquistato uno degli NFT, altrimenti errore Tu ne possèdes aucun des NFTs viene restituito. Quest'ultimo passaggio richiede un po' più di tempo, il che ci consente di formulare la seguente ipotesi. Se troviamo su Internet una chiave pubblica che soddisfa queste 2 condizioni:

  • La chiave pubblica ha firmato un messaggio JSON e la firma associata è pubblica;
  • Il portafoglio ha acquistato almeno uno degli NFT.

potrebbe essere possibile riprodurre il messaggio e la firma sul server AWS per recuperare il video musicale.

BOOBA TN NFT è anche un token ERC-20 (B2O_TN) coniato dallo smart contract 0x3b73…94gg. Abbiamo iniziato elencando tutti i proprietari di NFT grazie a etherscan.io. Al momento in cui scrivo, c’erano 3484 proprietari di almeno 1 di questi NFT. 1516 portafogli possiedono più di uno stesso NFT, probabilmente per rivenderne uno in seguito.

Un jour de mon salaire c’est leur Insurance vie.
Boulbi, lato ovest

1° tentativo – etherscan.io

I messaggi Ethereum vengono codificati utilizzando il file personal_sign formato ("x19Ethereum Signed Message:n" + length(message) + message) prima di essere firmato utilizzando l'ECDSA. Poiché le transazioni Ethereum sono codificate in un formato diverso (RLP), le firme delle transazioni non possono essere riconosciute come firme dei messaggi valide. In altre parole, le firme dei messaggi non possono essere trovate sulla blockchain di Ethereum.

Il primo posto in cui abbiamo trovato messaggi Ethereum off-chain è etherscan.io, che fornisce un'interfaccia web per verificare una firma del messaggio Ethereum ed eventualmente salvarla per renderla accessibile tramite un URL pubblico. Per prima cosa abbiamo recuperato tutti i messaggi Ethereum salvati tramite questo servizio: etherscan.io/verifiedSignatures.

Per esempio verificareSig/2642 mostra che il proprietario NFT di Scimmia noiosa #6743 ha dimostrato di essere anche il proprietario dell'account Twitter ape6743:

È anche un proprietario degli NFT Booba TN come mostrato in questo delle transazioni. Tuttavia, anche se la firma è valida, il messaggio non è formattato JSON e non può essere riconosciuto dal server AWS.

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

2° tentativo – snapshot.org

Il sitoweb snapshot.org consente alle persone di votare per le proposte utilizzando il proprio portafoglio Ethereum: Snapshot è un client multi-governance senza gas fuori catena con risultati facili da verificare e difficili da contestare. I voti sono casualmente in formato JSON.

GraphQL l'interfaccia può essere utilizzata per interrogare il database dei voti. Ad esempio, la seguente richiesta GraphQL minima restituisce gli ID di voto in cui si trova l'indirizzo dell'elettore 0x668248dF4595e09Aa253B31478312748078F7a20:

Il risultato della query mostra che questo indirizzo è stato utilizzato per 2 voti:

I voti firmati da ciascun portafoglio proprietario di Booba TN NFT possono essere recuperati nella loro interezza con una singola richiesta GraphQL. Ci sono 689 risultati per 140 elettori unici.

L'indirizzo 0x668248dF4595e09Aa253B31478312748078F7a20 comprato 5 NFT Booba TN. Come indicato in precedenza, questo indirizzo ha votato anche a favore delle seguenti proposte:

I voti associati sono archiviati nell'InterPlanetary File System (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM ed QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Il contenuto della prima votazione è:

screenshot del video

Tieni presente che l'URL scade dopo un certo periodo di tempo e non è più valido.

Conclusione

Questo post sul blog mostra che, anche se la crittografia alla base di questo evento NFT è solida, di base rigiocare l'attacco era sufficiente a rompere la protezione del video musicale. La soluzione è semplice: il messaggio inviato al server AWS dovrebbe essere rifiutato se non corrisponde al messaggio inviato al portafoglio crittografico.

La piraterie n’est jamais finie!
Walabok, Nerone Nemesi

Una volta contattati (trovare il contatto giusto è stata in realtà la parte più difficile), gli sviluppatori di RenaissanceNFT erano super collaborativi e reattivi. Il problema è stato risolto in meno di un’ora e l’accesso alla protezione non può più essere aggirato.

Timestamp:

Di più da Ledger