เกี่ยวกับความปลอดภัยของมิวสิควิดีโอและ NFTs ของ Booba | บัญชีแยกประเภท

เกี่ยวกับความปลอดภัยของมิวสิควิดีโอและ NFTs ของ Booba | บัญชีแยกประเภท

โหนดต้นทาง: 2657383

วันที่ 3 พฤศจิกายน 2021 booba (แร็ปเปอร์ชาวฝรั่งเศสผู้สร้างฉลาก เพลง La Piraterie) ใส่ชุด NFT 5 ชุด ขึ้นเพื่อขายรวมเป็น 5000 ของการ์ดอนิเมชันเหล่านี้แต่ละใบ ยอดรวมของ NFT เหล่านี้ถูกขายในเวลาไม่กี่วันในราคา 150 ETH (0.006 ETH ต่อรายการ) ซึ่งมีมูลค่ามากกว่า $700.000 ณ วันนี้ เป็นโบนัส ผู้โชคดีที่เป็นเจ้าของหนึ่งใน NFT เหล่านี้ได้รับอนุญาตให้ดูมิวสิควิดีโอสุดพิเศษ TN ตั้งแต่ 8 พฤศจิกายน 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, ฝั่ง Ouest

เราค่อนข้างสงสัยและสงสัยว่ามิวสิกวิดีโอได้รับการปกป้องอย่างไร และเราจะสนุกกับมันได้หรือไม่แม้ว่าเราจะไม่ได้ซื้อก็ตาม NFTS.

การป้องกันมิวสิกวิดีโอทำงานอย่างไร

หากต้องการดูวิดีโอ เจ้าของ NFT จะต้องไปที่หน้าดังกล่าว /จันทร์-nft และใช้กระเป๋าเงินดิจิทัล (เช่น Metamask หรือ WalletConnect) เพื่อลงนามในข้อความ Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" ด้วยกระเป๋าเงินเดียวกันกับที่ใช้ซื้อ NFT เมื่อลงนามแล้ว คำขอ POST ที่มีเนื้อความ JSON ตามรูปแบบนี้จะถูกส่งโดยเว็บเบราว์เซอร์ไปยัง บริการเว็บ โฮสต์บน AWS:

การทดสอบบางอย่างแสดงให้เห็นว่าข้อความที่แตกต่างจากข้อความเริ่มต้นจะไม่ถูกปฏิเสธตราบใดที่เข้ารหัส JSON ตัวอย่างเช่น: [1337] และ  "blah" ถือว่าถูกต้อง อย่างไรก็ตาม ข้อความที่ไม่ได้อยู่ใน JSON จะทริกเกอร์ internal error ทันที

หากลายเซ็นเชื่อมโยงกับที่อยู่ Ethereum (wallet) and message ถูกต้อง เซิร์ฟเวอร์ยืนยันว่ากระเป๋าเงินซื้อหนึ่งใน NFT จริงๆ มิฉะนั้นจะเกิดข้อผิดพลาด Tu ne possèdes aucun des NFTs จะถูกส่งกลับ ขั้นตอนสุดท้ายนี้ใช้เวลาเพิ่มขึ้นเล็กน้อย ซึ่งให้เรากำหนดสมมติฐานต่อไปนี้ หากเราพบรหัสสาธารณะบนอินเทอร์เน็ตที่ตรงตามเงื่อนไข 2 ข้อนี้:

  • รหัสสาธารณะลงนามในข้อความ JSON และลายเซ็นที่เกี่ยวข้องเป็นแบบสาธารณะ
  • กระเป๋าเงินซื้อ NFT อย่างน้อยหนึ่งรายการ

อาจเป็นไปได้ที่จะเล่นซ้ำข้อความและลายเซ็นบนเซิร์ฟเวอร์ AWS เพื่อดึงมิวสิกวิดีโอ

พื้นที่ BOOBA TN NFT ยังเป็นโทเค็น ERC-20 (B2O_TN) สร้างเสร็จโดยสัญญาที่ชาญฉลาด 0x3b73…94dd. ก่อนอื่นเราเริ่มต้นด้วยรายชื่อเจ้าของ NFT ทั้งหมดขอบคุณ etherscan.io. ในขณะที่เขียน มี 3484 เจ้าของ NFT อย่างน้อย 1 รายการ กระเป๋าเงิน 1516 เป็นเจ้าของ NFT เดียวกันมากกว่าหนึ่งรายการ ซึ่งอาจจะขายต่อหนึ่งในนั้นในภายหลัง

Un jour de mon salaire c'est leur assurance vie.
Boulbi, ฝั่ง Ouest

ความพยายามครั้งแรก – etherscan.io

ข้อความ Ethereum ถูกเข้ารหัสโดยใช้ personal_sign รูปแบบ ("x19Ethereum Signed Message:n" + length(message) + message) ก่อนลงนามโดยใช้ ECDSA เนื่องจากธุรกรรม Ethereum ถูกเข้ารหัสเป็นรูปแบบอื่น (RLP) ลายเซ็นธุรกรรมจึงไม่สามารถรับรู้ได้ว่าเป็นลายเซ็นข้อความที่ถูกต้อง พูดให้ต่างออกไป ไม่พบลายเซ็นข้อความบน Ethereum blockchain

ที่แรกที่เราพบข้อความ Ethereum แบบออฟไลน์คือ etherscan.io ซึ่งมีเว็บอินเตอร์เฟสสำหรับ ตรวจสอบ ลายเซ็นข้อความ Ethereum และบันทึกในที่สุดเพื่อให้สามารถเข้าถึงได้ผ่าน URL สาธารณะ ก่อนอื่น เราดึงข้อความ Ethereum ทั้งหมดที่บันทึกไว้ผ่านบริการนี้: etherscan.io/verifiedSignatures.

ตัวอย่างเช่น ตรวจสอบSig/2642 แสดงให้เห็นว่าเจ้าของ NFT ของ ลิงน่าเบื่อ #6743 พิสูจน์แล้วว่าเขาเป็นเจ้าของบัญชี Twitter ด้วย ลิง 6743:

เขายังเป็นเจ้าของ NFTs บูบา ทีเอ็น ดังที่แสดงไว้ในนี้ การทำธุกรรม. อย่างไรก็ตาม แม้ว่าลายเซ็นจะถูกต้อง แต่ข้อความนั้นไม่ได้จัดรูปแบบเป็น JSON และเซิร์ฟเวอร์ AWS ไม่รู้จัก

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

ความพยายามครั้งที่ 2 – snapshot.org

เว็บไซต์ สแน็ปช็อต.org อนุญาตให้บุคคลลงคะแนนสำหรับข้อเสนอโดยใช้กระเป๋าเงิน Ethereum: Snapshot เป็นไคลเอ็นต์แบบหลายการกำกับดูแลแบบออฟไลน์ที่ไม่ต้องใช้แก๊สซึ่งตรวจสอบได้ง่ายและยากที่จะโต้แย้งผลลัพธ์. การโหวตอยู่ในรูปแบบ JSON โดยบังเอิญ

GraphQL สามารถใช้อินเทอร์เฟซเพื่อค้นหาฐานข้อมูลการโหวต ตัวอย่างเช่น คำขอ GraphQL ขั้นต่ำต่อไปนี้ส่งคืน ID การลงคะแนนเสียงในตำแหน่งที่อยู่ของผู้ลงคะแนน 0x668248dF4595e09Aa253B31478312748078F7a20:

ผลการค้นหาแสดงว่าที่อยู่นี้ถูกใช้สำหรับการโหวต 2 ครั้ง:

คะแนนโหวตที่ลงนามโดยกระเป๋าเงินแต่ละใบที่เป็นเจ้าของ Booba TN NFT สามารถเรียกคืนได้ทั้งหมดด้วยคำขอ GraphQL เดียว มีผลลัพธ์ 689 รายการสำหรับผู้ลงคะแนนที่ไม่ซ้ำกัน 140 คน

ที่อยู่ 0x668248dF4595e09Aa253B31478312748078F7a20 ซื้อ 5 Booba TN NFT ตามที่แสดงก่อนหน้านี้ ที่อยู่นี้ยังลงคะแนนให้กับข้อเสนอต่อไปนี้:

คะแนนที่เกี่ยวข้องจะถูกเก็บไว้ในระบบไฟล์ระหว่างดาวเคราะห์ (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM และ  QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. เนื้อหาของการโหวตครั้งแรกคือ:

ภาพหน้าจอวิดีโอ

โปรดทราบว่า URL จะหมดอายุหลังจากช่วงระยะเวลาหนึ่งและใช้งานไม่ได้อีกต่อไป

สรุป

บล็อกโพสต์นี้แสดงให้เห็นว่าแม้ว่าการเข้ารหัสที่ขับเคลื่อนกิจกรรม NFT นี้จะฟังดูดี แต่ก็เป็นพื้นฐาน เล่นซ้ำโจมตี ก็เพียงพอแล้วที่จะทำลายการป้องกันมิวสิกวิดีโอ การแก้ไขนั้นง่ายมาก: ข้อความที่ส่งไปยังเซิร์ฟเวอร์ AWS ควรถูกปฏิเสธหากไม่ตรงกับข้อความที่ส่งไปยังกระเป๋าเงินคริปโต

La Piraterie n'est jamais ฟินนี่ !
วาลาบอก, นีโร เนเมซิส

เมื่อได้รับการติดต่อแล้ว (การค้นหาผู้ติดต่อที่ถูกต้องเป็นส่วนที่ยากที่สุด) นักพัฒนาจาก ยุคฟื้นฟูศิลปวิทยาNFT มีความร่วมมือและตอบสนองเป็นอย่างดี ปัญหาได้รับการแก้ไขภายในเวลาน้อยกว่าหนึ่งชั่วโมงและไม่สามารถข้ามการเข้าถึงการป้องกันได้อีกต่อไป

ประทับเวลา:

เพิ่มเติมจาก บัญชีแยกประเภท