Tìm kiếm bí mật về Bitcoin

Một phần của tài liệu NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1 (Trang 25 - 27)

Để quét hồ sơ cho các khóa Bitcoin bí mật, chúng tôi tận dụng quan sát rằng các khóa Bitcoin được tuần tự hóa bằng cách sử dụng một định dạng nổi tiếng. Khóa bí mật là một số nguyên sk, chúng tôi sẽ mô tả kỹ hơn trong Sect. 4.1. Định dạng được thỏa thuận để tuần tự hóa các khóa đó là Định dạng Nhập Ví (WIF). Để chuyển một sk khóa bí mật sang định dạng này, quy trình sau được áp dụng. Đầu

Sau đó, 0x80 được thêm vào trước b và tùy chọn 0x01 được thêm vào nếu khóa bí mật sẽ tương ứng với khóa công khai được nén. Sau đó SHA256 được áp dụng hai lần trên b và chúng tôi gọi bốn byte cuối cùng của băm này là c. WIF được định nghĩa là mã hóa base58 của b || c.

Để quét hồ sơ cho bí mật Bitcoin khóa, chúng tôi tận dụng quyền kiểm soát rằng Bitcoin khóa được tự động hóa bằng cách sử dụng một ngôn ngữ nổi định dạng. Bí mật khóa là một số sk nguyên, chúng tôi sẽ mô tả kỹ hơn trong Sect. 4.1. Được thỏa thuận định dạng để tự động hóa các khóa đó thành Nhập ví định dạng (WIF). To move a sk lock a secret to this format, the process after be used. First, sk được chuyển thành byte dài 32 byte big-endian biểu diễn, chúng tôi gọi là b. Sau đó, 0x80 được thêm vào trước b và 0x01 tùy chọn được thêm vào nếu bí mật khóa sẽ tương ứng với công khai khóa được nén. Sau đó SHA256 được áp dụng hai lần trên b và chúng tôi gọi bốn lần cuối cùng của byte này là c. WIF được định nghĩa là base58 mã hóa của b || C.

3.3.2 Kết quả

Để áp dụng phương pháp của mình, chúng tôi đã theo dõi và quét tất cả các tệp dán công khai trên Pastebin kể từ tháng 9 năm 2017. Chúng tôi đã xác định được 21.464 khóa bí mật, tương ứng với 42.936 địa chỉ, tức là 2 địa chỉ cho mỗi khóa như được mô tả trong Sect. 2. Tuy nhiên, hầu hết các địa chỉ này đều không được sử dụng, tức là không có giao dịch nào trong chuỗi khối chuyển Bitcoin từ hoặc đến các địa chỉ này. Tính đến thời điểm hiện tại, 391 (Hình ảnh mở trong cửa sổ mới) của những địa chỉ đó đã giữ số dư tại một thời điểm nào đó. Tuy nhiên, đối với việc đánh cắp Bitcoin, việc một địa chỉ giữ số dư tại một thời điểm nào đó là không đủ. Thay vào đó, chúng tôi cũng phải tính đến việc địa chỉ đó có số dư sau khi chúng tôi đã thấy khóa bí mật tương ứng ở dạng dán. Nếu chúng tôi tôn trọng ràng buộc này, chúng tôi nhận thấy rằng địa chỉ 165 (Mở hình ảnh trong cửa sổ mới) có số dư sau khi chúng tôi thấy khóa bí mật của chúng ở dạng dán. Những chiếc chìa khóa đó nằm rải rác trong tổng số 34 lần dán. Tổng cộng những số dư đó cho ra tổng cộng 326,70 BTC.

Tuy nhiên, cần phải đề cập rằng đây vẫn không phải là sự đảm bảo rằng số Bitcoin này có thể đã bị đánh cắp. Điều này là do chúng tôi xác định số dư của một địa chỉ tại một thời điểm nào đó dựa trên blockchain, không phải mempool. Đó là, chúng tôi lấy khối mới nhất đã được khai thác trước khi hình dán được xuất bản và kiểm tra số dư của một địa chỉ bị ảnh hưởng cho đến khối này. Có thể xảy ra

trường hợp trong thời gian chờ đợi có một giao dịch đã đổi kết quả đầu ra từ địa chỉ đã cho, tức là có thể có một giao dịch đang chờ xử lý trong mempool. Trong

trường hợp này, kẻ tấn công không thể dễ dàng tạo một giao dịch để đánh cắp Bitcoin. Các quy tắc mạng hiện tại không khuyến khích việc phân phối các giao dịch chi tiêu gấp đôi đầu ra trừ khi giao dịch được đánh dấu rõ ràng là giao dịch thay thế theo phí (RBF). Kẻ tấn công có thể cố gắng tự khai thác một giao dịch ăn cắp hoặc cố gắng thông báo trực tiếp giao dịch ăn cắp cho các nhóm khai thác không tuân theo các quy tắc mạng này. Ngoài ra, nếu giao dịch chặn có mức phí thấp, kẻ tấn công có thể đợi cho đến khi một số lượng đáng kể đồng nghiệp không có giao dịch trong bản sao mempool của họ nữa. Điều này sẽ làm tăng khả năng giao dịch ăn cắp mới sẽ được đẩy sang nhiều đối tượng ngang hàng hơn, do đó sẽ làm tăng cơ hội khai thác các giao dịch ăn cắp. Tuy nhiên, không có phương pháp nào trong số này đảm bảo thành công và do đó số lượng 326,70 BTC là giới hạn trên.

Để có được ước tính thận trọng hơn về số lượng Bitcoin có thể ăn cắp, chúng tôi phải xem xét các giao dịch đang chờ xử lý. Đó là, chúng tôi chỉ xem xét các trường hợp không có giao dịch nào ở giữa không được đánh dấu là RBF. Hóa ra, đây là trường hợp của 26 địa chỉ trong 119 lần dán. Đối với các trường hợp còn lại, có một giao dịch chặn ở giữa, tức là, việc dán có chứa khóa bí mật đã được xuất bản sau khi giao dịch chặn được phân phối. Ví dụ: một hình dán chứa địa chỉ chứa số dư 40,84 BTC mà giao dịch đã được đặt trong mempool. Tổng cộng, chúng tôi phát hiện ra rằng kẻ tấn công có thể đã đánh cắp 22,40 BTC. Chúng tôi đã loại trừ phí giao dịch trong phân tích này vì chúng có tính năng động cao theo thời gian và số lượng kết quả đầu ra có thể đánh cắp được rất ít nên phí dẫn đến sẽ không phải là một yếu tố đáng kể.

Điều này chứng tỏ rằng kẻ tấn công có thể gây ra tổn thất tài chính đáng kể với các phương tiện tương đối đơn giản. Điều này được khuếch đại bởi thực tế là kẻ tấn công có thể mở rộng phương pháp luận này sang các nền tảng tiền điện tử và OSINT khác.

Một phần của tài liệu NGHIÊN CỨU MỘT SỐ TẤN CÔNG TÌM KHÓA RIÊNG LIÊN QUAN VIỆC THỰC THI GIÁ TRỊ NONCE TRONG CHUẨN KÝ SỐ ECDSA SECP256K1 (Trang 25 - 27)

Tải bản đầy đủ (DOCX)

(43 trang)
w