Về bảo mật video âm nhạc của Booba và NFT | sổ cái

Về bảo mật video âm nhạc của Booba và NFT | sổ cái

Nút nguồn: 2657383

Ngày 3 tháng 2021 năm XNUMX, Booba (rapper người Pháp đã tạo ra nhãn Âm nhạc cướp biển) đặt một bộ 5 NFT Giảm giá mạnh, với tổng số 5000 của mỗi thẻ hoạt hình này. Tổng số NFT này đã được bán trong vài ngày với giá 150 ETH (0.006 ETH mỗi chiếc), tức là hơn 700.000 đô la vào ngày này. Như một phần thưởng, chủ sở hữu may mắn của một trong những NFT này được phép xem video âm nhạc độc quyền TN kể từ khi 8 tháng mười một 2021.

Les rappeurs m'envient, sont tous en galère.
– Boulbi, Phía Ouest

Chúng tôi hơi tò mò và tự hỏi video âm nhạc được bảo vệ như thế nào và liệu chúng tôi có thể thưởng thức nó ngay cả khi không mua bất kỳ thứ gì hay không? NFT.

Bảo vệ video âm nhạc hoạt động như thế nào?

Để xem video, chủ sở hữu NFT phải truy cập trang /mon-nft và sử dụng ví tiền điện tử của họ (chẳng hạn như Metamask hoặc WalletConnect) để ký thông báo Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" với cùng một ví với ví được sử dụng để mua NFT. Sau khi được ký, một yêu cầu POST có nội dung JSON theo định dạng này sẽ được trình duyệt web gửi đến một dịch vụ web được lưu trữ trên AWS:

Một số thử nghiệm cho thấy rằng các thư khác với thư mặc định sẽ không bị từ chối miễn là chúng được mã hóa JSON. Ví dụ: [1337] và "blah" được coi là hợp lệ, tuy nhiên các thông báo không có trong JSON sẽ kích hoạt internal error ngay lập tức.

Nếu chữ ký được liên kết với địa chỉ Ethereum (wallet) Và message hợp lệ, máy chủ xác minh rằng ví thực sự đã mua một trong các NFT, nếu không thì lỗi Tu ne possèdes aucun des NFTs Được trả lại. Bước cuối cùng này mất thêm một chút thời gian, điều này cho phép chúng tôi hình thành giả thuyết sau. Nếu chúng tôi tìm thấy trên Internet một khóa công khai đáp ứng 2 điều kiện sau:

  • Khóa công khai đã ký một thông báo JSON và chữ ký liên quan là công khai;
  • Ví đã mua ít nhất một trong các NFT.

có thể phát lại tin nhắn và chữ ký trên máy chủ AWS để truy xuất video nhạc.

Sản phẩm BOOBA TN NFT cũng là một mã thông báo ERC-20 (B2O_TN) được tạo bởi hợp đồng thông minh 0x3b73…94dd. Đầu tiên chúng tôi bắt đầu bằng cách liệt kê tất cả các chủ sở hữu NFT nhờ etherscan.io. Tại thời điểm viết bài, đã có 3484 chủ sở hữu của ít nhất 1 trong số các NFT này. 1516 ví sở hữu nhiều hơn một NFT giống nhau, có thể sẽ bán lại một trong những ví này sau.

Un jour de mon salaire c'est leur Assurance vie.
– Boulbi, Phía Ouest

Lần thử đầu tiên – etherscan.io

Thông điệp Ethereum được mã hóa bằng cách sử dụng personal_sign định dạng ("x19Ethereum Signed Message:n" + length(message) + message) trước khi được ký bằng ECDSA. Vì các giao dịch Ethereum được mã hóa thành một định dạng khác (RLP), chữ ký giao dịch không thể được nhận dạng là chữ ký tin nhắn hợp lệ. Nói cách khác, không thể tìm thấy chữ ký tin nhắn trên chuỗi khối Ethereum.

Nơi đầu tiên mà chúng tôi tìm thấy thông báo Ethereum ngoài chuỗi là etherscan.io, nơi cung cấp giao diện web cho xác minh chữ ký tin nhắn Ethereum và cuối cùng lưu nó để có thể truy cập được thông qua một URL công khai. Trước tiên, chúng tôi đã truy xuất tất cả các tin nhắn Ethereum được lưu thông qua dịch vụ này: etherscan.io/verifiedSignatures.

Ví dụ xác minhSig/2642 cho thấy rằng chủ sở hữu NFT của Vượn nhàm chán #6743 đã chứng minh rằng anh ấy cũng là chủ sở hữu của tài khoản Twitter vượn6743:

Anh ấy cũng là chủ sở hữu của NFT Booba TN như được hiển thị trong này giao dịch. Tuy nhiên, ngay cả khi chữ ký hợp lệ, thông báo không được định dạng JSON và máy chủ AWS không thể nhận dạng được.

Tu n'peux que gagner quand t'as rien à perdre.
– Magnifique, Trône

Lần thử thứ 2 – snapshot.org

Trang web ảnh chụp nhanh.org cho phép các cá nhân bỏ phiếu cho các đề xuất bằng cách sử dụng ví Ethereum của họ: Snapshot là một ứng dụng khách đa quản trị off-chain không cần gas với kết quả dễ xác minh và khó tranh cãi. Bình chọn ngẫu nhiên ở định dạng JSON.

GraphQL giao diện có thể được sử dụng để truy vấn cơ sở dữ liệu phiếu bầu. Chẳng hạn, yêu cầu GraphQL tối thiểu sau đây trả về ID phiếu bầu có địa chỉ cử tri 0x668248dF4595e09Aa253B31478312748078F7a20:

Kết quả truy vấn cho thấy địa chỉ này đã được sử dụng cho 2 phiếu bầu:

Có thể truy xuất toàn bộ phiếu bầu được ký bởi mỗi ví sở hữu Booba TN NFT bằng một yêu cầu GraphQL duy nhất. Có 689 kết quả cho 140 cử tri duy nhất.

Địa chỉ 0x668248dF4595e09Aa253B31478312748078F7a20 mua 5 Booba TN NFT. Như đã trình bày trước đây, địa chỉ này cũng đã bỏ phiếu cho các đề xuất sau:

Các phiếu bầu liên quan được lưu trữ trên Hệ thống tệp liên hành tinh (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM và QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. Nội dung của cuộc bỏ phiếu đầu tiên là:

ảnh chụp màn hình video

Xin lưu ý rằng URL sẽ hết hạn sau một khoảng thời gian và không còn hợp lệ nữa.

Kết luận

Bài đăng trên blog này cho thấy rằng ngay cả khi mật mã cung cấp năng lượng cho sự kiện NFT này là hợp lý, thì cơ bản phát lại cuộc tấn công là đủ để phá vỡ lớp bảo vệ video âm nhạc. Cách khắc phục rất đơn giản: tin nhắn được gửi đến máy chủ AWS sẽ bị từ chối nếu nó không khớp với tin nhắn được gửi đến ví tiền điện tử.

La Piraterie n'est jamais finie!
– Walabok, Nero Kẻ Thù

Sau khi liên hệ (tìm đúng liên hệ thực sự là phần khó khăn nhất), các nhà phát triển từ Phục HưngNFT là siêu hợp tác và đáp ứng. Sự cố đã được khắc phục trong vòng chưa đầy một giờ và không thể bỏ qua quyền truy cập bảo vệ nữa.

Dấu thời gian:

Thêm từ Ledger