Booba'nın müzik videosunun ve NFT'lerinin güvenliği hakkında | defter

Booba'nın müzik videosunun ve NFT'lerinin güvenliği hakkında | defter

Kaynak Düğüm: 2657383

3 Kasım 2021, Booba (etiketi yaratan Fransız rapçi La Piraterie Müzik) 5 NFT'lik bir set koyun Satılık, bu animasyonlu kartların her birinden toplam 5000 adet. Bu NFT'lerin tamamı birkaç gün içinde 150 ETH'ye (her biri 0.006 ETH) satıldı, bu da şu anda 700.000 doların üzerinde bir rakama tekabül ediyor. Bonus olarak, bu NFT'lerden birinin şanslı sahiplerinin özel müzik videosunu görmesine izin verildi TN yana 8 Kasım 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, Batı Yakası

Biraz merak ettik ve müzik videosunun nasıl korunduğunu, satın almasak bile keyif alıp alamayacağımızı merak ettik. NFT'ler.

Müzik videosu koruması nasıl çalışır?

Videoyu görebilmek için NFT sahiplerinin sayfayı ziyaret etmesi gerekmektedir. /mon-nft ve Ethereum mesajını imzalamak için kripto cüzdanlarını (Metamask veya WalletConnect gibi) kullanın "Pour accéder à TN, merci de bien vouloir signer ce message" NFT'leri satın almak için kullanılan cüzdanla aynı cüzdanla. İmzalandıktan sonra, bu formatı izleyen JSON gövdesine sahip bir POST isteği, web tarayıcısı tarafından bir internet servisi AWS'de barındırılanlar:

Birkaç test, JSON kodlu oldukları sürece varsayılandan farklı mesajların reddedilmediğini göstermektedir. Örneğin: [1337] ve "blah" geçerli olarak kabul edilir, ancak JSON'da olmayan iletiler bir internal error anında.

İmza Ethereum adresiyle ilişkiliyse (wallet) Ve message geçerliyse sunucu, cüzdanın gerçekten NFT'lerden birini satın aldığını doğrular, aksi takdirde hata Tu ne possèdes aucun des NFTs Geri döndü. Bu son adım biraz daha zaman alır ve bu da aşağıdaki hipotezi formüle etmemize olanak sağlar. İnternette şu 2 koşulu karşılayan bir ortak anahtar bulursak:

  • Ortak anahtar bir JSON mesajını imzalamıştır ve ilgili imza geneldir;
  • Cüzdan NFT'lerden en az birini satın aldı.

müzik videosunu almak için mesajı ve imzayı AWS sunucusunda yeniden oynatmak mümkün olabilir.

The BOOBA TN NFT aynı zamanda bir ERC-20 tokenidir (B2O_TN) akıllı sözleşme tarafından basıldı 0x3b73…94dd. İlk olarak tüm NFT sahiplerini listeleyerek başladık. etherscan.io. Bu yazının yazıldığı sırada bu NFT'lerden en az 3484 tanesinin 1 sahibi vardı. 1516 cüzdan aynı NFT'den birden fazlasına sahip, muhtemelen bunlardan birini daha sonra yeniden satmak için.

Bir günlük salaire c'est leur güvencesi vie.
Boulbi, Batı Yakası

1. deneme – eterscan.io

Ethereum mesajları aşağıdakiler kullanılarak kodlanır: personal_sign biçim ("x19Ethereum Signed Message:n" + length(message) + message) ECDSA kullanılarak imzalanmadan önce. Ethereum işlemleri farklı bir formatta (RLP) kodlandığından işlem imzaları geçerli mesaj imzaları olarak tanınamaz. Başka bir deyişle, mesaj imzaları Ethereum blok zincirinde bulunamaz.

Zincir dışı Ethereum mesajlarını bulduğumuz ilk yer, bir web arayüzü sağlayan eterscan.io'dur. doğrulamak bir Ethereum mesaj imzası oluşturun ve sonunda bunu genel bir URL aracılığıyla erişilebilir hale getirmek için kaydedin. İlk olarak bu hizmet aracılığıyla kaydedilen tüm Ethereum mesajlarını aldık: eterscan.io/verifiedSignatures.

Örneğin doğrulamaSig/2642 NFT'nin sahibi olduğunu gösterir Sıkıcı Maymun #6743 Twitter hesabının da sahibi olduğunu kanıtladı maymun6743:

Aynı zamanda NFT'lerin de sahibidir Booba TN bunda gösterildiği gibi işlem. Ancak imza geçerli olsa bile mesaj JSON biçiminde değildir ve AWS sunucusu tarafından tanınamaz.

Her zaman bu kadar iyi bir şey yaptın.
Magnifique, Trone

2. deneme – snapshot.org

İnternet sitesi anlık görüntü.org bireylerin Ethereum cüzdanlarını kullanarak tekliflere oy vermelerine olanak tanır: Snapshot, doğrulanması kolay ve itiraz edilmesi zor sonuçlara sahip, zincir dışı, gazsız bir çoklu yönetim istemcisidir. Oylar tesadüfen JSON formatındadır.

GraphQL arayüz oy veritabanını sorgulamak için kullanılabilir. Örneğin, aşağıdaki minimum GraphQL isteği, seçmen adresinin olduğu yerde oy kimliklerini döndürür 0x668248dF4595e09Aa253B31478312748078F7a20:

Sorgu sonucu bu adresin 2 oy için kullanıldığını gösteriyor:

Booba TN NFT'lere sahip her cüzdanın imzaladığı oyların tamamı, tek bir GraphQL isteği ile alınabilir. 689 tekil seçmen için 140 sonuç var.

Adres 0x668248dF4595e09Aa253B31478312748078F7a20 aldım 5 Booba TN NFT'si. Daha önce de gösterildiği gibi, bu adres aynı zamanda aşağıdaki önerilere de oy verdi:

İlgili oylar InterPlanetary Dosya Sisteminde (IPFS) saklanır: QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM ve QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. İlk oylamanın içeriği şöyle:

video ekran görüntüsü

Lütfen URL'nin süresinin belirli bir süre sonra dolacağını ve artık geçerli olmadığını unutmayın.

Sonuç

Bu blog yazısı, bu NFT olayına güç veren kriptografinin sağlam olmasına rağmen, temel bir tekrar saldırısı müzik video korumasını kırmak için yeterliydi. Çözümü basit: AWS sunucusuna gönderilen mesaj, kripto cüzdanına gönderilen mesajla eşleşmiyorsa reddedilmelidir.

La Piraterie n'est Jamais Finie!
Walabok, Nero'nun Düşmanı

Temasa geçildikten sonra (doğru kişiyi bulmak aslında en zor kısımdı), geliştiriciler RönesansNFT süper işbirlikçi ve duyarlıydılar. Sorun bir saatten kısa bir süre içinde düzeltildi ve koruma erişimi artık atlanamıyor.

Zaman Damgası:

Den fazla Defteri kebir