source avatarJoseph Hurtado - Founder Granata Consulting

Chia sẻ

CUỘC BẤT NGỜ VỀ BẢO MẬT CỦA VÍ CỨNG BITCOIN COLDCARD, ĐIỀU GÌ ĐÃ THẬT SỰ XẢY RA? Báo cáo AI tốt nhất - Claude Opus 5 Max - về những gì thực sự đã xảy ra với @COLDCARDwallet. Để xác minh, nhưng dường như khá có khả năng, và điều đó có nghĩa là Trezor và Ledger nên an toàn: "Sự cố của Coldcard **không** phải do chip TRNG bị hỏng. Đó là một lỗi cấu hình xây dựng vô tình bỏ qua hoàn toàn TRNG phần cứng. Cấu hình bo mạch của Coldcard đặt `MICROPY_HW_ENABLE_RNG` bằng không vì Coinkite cung cấp trình bao bọc TRNG phần cứng riêng. Nhưng thư viện libngu chỉ kiểm tra xem macro đó có *được định nghĩa* hay không, chứ không kiểm tra xem nó có *được kích hoạt* hay không, do đó quá trình xây dựng thành công và lặng lẽ liên kết với trình thay thế phần mềm của MicroPython — một bộ tạo ngẫu nhiên phi mật mã "Yasmarang" được khởi tạo từ UID, thanh ghi SysTick và RTC của chip.¹ Không có cái nào trong số đó là bí mật: UID là siêu dữ liệu nhà máy một phần được hiển thị dưới dạng số serial USB, và các giá trị bộ đếm có thể bị giới hạn.¹ Hậu quả theo thế hệ:¹ - **Mk2/Mk3 trên firmware v4.0.0–v4.1.9** — không có entropy mật mã nào cả. Với UID đã biết, trạng thái bộ đếm và lịch sử gọi, việc tạo seed là *xác định*. Giới hạn thực tế khi khởi động lạnh: khoảng 2^16 đến 2^40 ứng viên thay vì 2^256. - **Mk4/Q/Mk5** — quá trình khởi động thêm entropy từ phần tử bảo mật, nhưng mã hóa nó và chỉ giữ lại bốn byte, và `reseed()` ghi đè chỉ một từ trạng thái 32-bit. Giới hạn: 2^32, trung bình khoảng 2^31 lần thử. Hai chi tiết làm điều này trở nên đáng chú ý. Libngu XOR đầu ra thay thế với một luồng Yasmarang *thứ hai* được khởi tạo từ các hằng số công khai — XOR của hai đầu vào có thể tái tạo vẫn là có thể tái tạo.¹ Và kiểm tra sức khỏe chỉ từ chối các đầu ra liền kề giống nhau, điều mà một PRNG xác định vượt qua một cách dễ dàng.¹ SHA256d trên kết quả không giúp ích gì: mã hóa không thể mở rộng tập hợp ứng viên.¹ Khoảng 594 BTC (~38 triệu USD) đã bị rút khỏi khoảng 500 ví single-sig trong khung thời gian 25 phút, với 1.324 UTXO trải dài trên ba khối.³ Lời khuyên của Coinkite đề cập đến firmware Mk3 từ 4.0.1 đến 5.0.3 và tuyên bố Mk4/Q/Mk5 không bị ảnh hưởng trong phân tích ban đầu;² Báo cáo độc lập của Block lại phản bác điểm cuối này và đặt các mô hình hiện tại ở ngưỡng 2^32.¹ Hãy coi cả hai đều là sơ bộ. Hai điều khiến mọi người ngạc nhiên: mức độ phơi nhiễm phụ thuộc vào firmware đang chạy **khi seed được tạo**, chứ không phải ngày mua hoặc firmware hiện tại — nâng cấp không sửa chữa seed hiện có.¹ Và xuất một seed yếu vào ví khác cũng không sửa chữa nó.¹ ## Cách các ví lớn tạo entropy **Ledger** — một nguồn duy nhất, nhưng là nguồn được chứng nhận mạnh mẽ. TRNG nằm bên trong phần tử bảo mật; entropy được tạo ra tại đó và ánh xạ thành các từ BIP39.⁵ Phòng thí nghiệm bảo mật của Ledger mô tả TRNG SE là các thiết kế dao động tự do được các phòng thí nghiệm bên thứ ba xác minh đạt EAL5+ và AIS-31, được kiểm tra trên nhiều nhiệt độ, điện áp và tần số với cơ chế phát hiện lỗi tích hợp.⁴ Nano X đạt EAL5+; Nano S Plus và Stax sử dụng linh kiện EAL6+.⁶ Sự đánh đổi là trung thực: bạn nhận được chứng nhận nhưng không có khả năng xác minh — hệ điều hành là mã nguồn đóng và không có sự pha trộn entropy từ máy chủ mà bạn có thể kiểm tra độc lập. **Trezor** — thiết kế đa nguồn, và đây là câu trả lời kiến trúc cho chế độ thất bại của Coldcard. Model One và Model T XOR entropy từ hệ điều hành máy chủ với TRNG phần cứng STM32. Safe 3 và Safe 5 thêm nguồn thứ ba, phần tử bảo mật Optiga. Safe 7 thêm nguồn thứ tư, chip TROPIC01.⁷ Lý do là kẻ tấn công cần tất cả các nguồn đều thất bại cùng lúc.⁷ Quan trọng là bạn có thể xác minh: `trezorctl` cho phép bạn xem entropy mà máy chủ gửi và yêu cầu thiết bị hiển thị entropy nội bộ, sau đó tự mình tái tạo seed và kiểm tra xem nó có khớp không.⁸ Trezor Suite 25.2.2 (tháng 2 năm 2025) đã tự động hóa phiên bản này dưới dạng "kiểm tra entropy", và đây là quy trình trong `ResetDevice` của firmware.⁹ ¹⁰ **BitBox02** — năm nguồn: ngẫu nhiên sản xuất, mật khẩu thiết bị của bạn, máy tính chủ, vi điều khiển và chip bảo mật, được kết hợp sao cho mỗi nguồn chỉ có thể bổ sung entropy, không bao giờ loại bỏ.¹¹ Firmware là mã nguồn mở với các bản dựng có thể tái tạo được kiểm tra độc lập bởi WalletScrutiny.¹² ## Những ví này an toàn đến đâu trước các cuộc tấn công? Câu trả lời trung thực là chip TRNG gần như không bao giờ là mục tiêu bị tấn công. Mọi sự cố entropy thực tế lớn đều là sự thất bại trong *tích hợp* phần mềm: - Lỗi `SecureRandom` của Android đã làm cạn kiệt ví vào năm 2013⁴ - Milksad (2023) — Libbitcoin Explorer sử dụng Mersenne Twister khởi tạo từ giá trị đồng hồ 32-bit; khoảng 2.600 ví bị xâm phạm, ~900 nghìn USD đã được xác nhận⁷ - Coldcard (2026) — một `#ifndef` nên là `#if`¹ Tấn công một TRNG SE được chứng nhận đòi hỏi sự sở hữu vật lý, thiết bị phòng thí nghiệm và kỹ năng chuyên sâu. Khai thác lỗi entropy đòi hỏi một xpub hoặc một địa chỉ — vốn là công khai và đóng vai trò như một oracle xác minh miễn phí, cho phép kẻ tấn công kiểm tra các seed ứng viên ngoại tuyến quy mô lớn.¹ Sự bất cân xứng này là lý do tại sao kiến trúc vượt trội hơn chứng nhận ở đây. Vì vậy, thứ hạng thực tế: 1. **Pha trộn đa nguồn** nơi các thành phần độc lập cùng đóng góp. Một nguồn lỗi không thể làm sụp đổ seed. 2. **Khả năng xác minh** — firmware mã nguồn mở, được xây dựng có thể tái tạo, cộng với cách để *bạn* xác nhận rằng entropy bạn cung cấp thực sự đã được sử dụng. Kiểm tra entropy của Trezor và bản dựng có thể tái tạo của BitBox là những ví dụ cụ thể. 3. **Chứng nhận** — giá trị thực sự chống lại các cuộc tấn công vật lý (EAL5+/6+, AIS-31), nhưng nó chứng nhận linh kiện, không phải firmware gọi nó. Mk4 của Coldcard *có* phần tử bảo mật; firmware đã vứt bỏ 28 trong số 32 byte của nó.¹ ## Nếu bạn muốn loại bỏ hoàn toàn niềm tin vào RNGXúc xắc. Mỗi lần gieo D6 góp 2,585 bit, do đó 50 lần gieo mang lại bảo mật 128-bit và 99 lần gieo mang lại bảo mật 256-bit.¹³ Đường dẫn xúc xắc chuyên dụng của Coldcard băm trực tiếp chuỗi gieo bằng SHA256 và bỏ qua bộ tạo ngẫu nhiên của thiết bị hoàn toàn² ¹³ — lưu ý rằng điều này chỉ hoạt động thông qua `Nhập Hiện Có > Gieo Xúc Xắc`, không phải quy trình Tạo Ví Mới bình thường.² BitBox02 công bố quy trình tương đương.¹¹ Không bao giờ chụp ảnh các lần gieo hoặc nhập chúng vào máy tính có kết nối mạng.² Một mật khẩu BIP39 mạnh là công cụ còn lại: nó thêm độ ngẫu nhiên bên ngoài RNG của thiết bị, đó là lý do tại sao Coinkite cho rằng các ví Mk3 được bảo vệ bằng mật khẩu có rủi ro tối thiểu.² Đây là một biện pháp giảm thiểu thực sự, không phải sự thay thế cho việc di chuyển. Nếu bạn đã tạo seed trên Coldcard bị ảnh hưởng, cả Coinkite và Block đều khuyến nghị chuyển tiền — và lưu ý rằng một quorum multisig gồm hoàn toàn các thiết bị dễ bị tổn thương sẽ không cung cấp bất kỳ sự bảo vệ nào.¹ ² --- **NGUỒN** 1. Block Engineering — *Phục hồi RNG có thể dự đoán và Tái khởi động 32-bit trong Firmware COLDCARD* — https://t.co/YrOOIe9vZq 2. Blog Coinkite — *Cảnh báo Bảo mật Mk3* — https://t.co/ZSVtMGe7wr 3. CoinDesk — *Lỗ hổng lớn trong ví bitcoin làm cạn kiệt 594 BTC trong vòng 25 phút* — https://t.co/IoK6xqEUOi 4. Ledger Donjon — *Mô hình mối đe dọa: Tạo số ngẫu nhiên* — https://t.co/L3pZxe9McO 5. Ledger Academy — *Độ ngẫu nhiên trong tiền mã hóa là gì?* — https://t.co/WckSL8rTFM 6. Ledger Academy — *Chip Secure Element* — https://t.co/0e1bv1VnBr 7. Cơ sở tri thức Trezor — *Độ ngẫu nhiên là gì và Trezor tạo ví của bạn như thế nào?* — https://t.co/BNQ0E9trcK 8. Diễn đàn Trezor — *Kiểm tra độ ngẫu nhiên trên Trezor Model One* — https://t.co/y1sTJpp10u 9. Trezor — *Cập nhật Trezor Suite tháng 2 năm 2025* — https://t.co/HV77m2i5uk 10. Firmware Trezor — *core/CHANGELOG.md* — https://t.co/Zllvf7bw5F 11. Trung tâm Hỗ trợ BitBox — *Tôi có thể tạo ví bằng độ ngẫu nhiên của riêng mình không?* — https://t.co/TnGyVIDb2J 12. BitBox — *Bảo mật ở mọi cấp độ* — https://t.co/Gon18TlnkH 13. Tài liệu COLDCARD — *Xác minh Toán học Gieo Xúc Xắc* — https://t.co/hATD4o7yI4

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.