Lỗi entropy trên ví Coldcard bị nghi liên quan vụ đánh cắp 38 triệu USD Bitcoin

CẢNH BÁO BẢO MẬT KHẨN — Nếu bạn đã tạo seed trên Coldcard Mk3, Mk4, Mk5 hoặc Q trước khi có bản hotfix firmware mới nhất, tài sản có thể đang gặp rủi ro. Hãy đọc kỹ thông tin chính thức và thực hiện quy trình di chuyển ngay. Diễn biến chính — Vụ "38 triệu USD" trên chuỗi Theo Lookonchain, hơn 38 triệu USD Bitcoin (cụ thể 594,48 BTC) đã được chuyển từ khoảng 500 ví sang một địa chỉ gom tập trung bắt đầu bằng bc1qnk… trong một khoảng thời gian rất ngắn, chỉ qua một số block. Các đặc điểm của nhóm ví bị rút sạch đáng chú ý: - Chủ yếu là ví single-signature, không có lớp bảo vệ multisig. - Nhiều ví "ngủ đông" nhiều năm, cho thấy mục tiêu là các seed đã tồn tại sẵn và có lỗ hổng, thay vì ví hoạt động gần đây. - Giao dịch diễn ra gần như đồng thời theo mô thức phối hợp, phù hợp với hành vi tự động "sweep" các seed có thể bị liệt kê/uy hiếp do không gian tìm kiếm bị thu hẹp. Coinkite chưa xác nhận chính thức lỗi entropy là nguyên nhân trực tiếp của đợt sweep này. Dù vậy, việc cảnh báo kỹ thuật xuất hiện sát thời điểm dòng tiền bị rút cùng với đặc tính các ví đã khiến nhiều nhà nghiên cứu bảo mật coi kịch bản "seed entropy thấp" là lời giải thích kỹ thuật hợp lý nhất. Lỗi kỹ thuật — Entropy của Coldcard đã sai ở đâu? Theo tài liệu kỹ thuật của Coinkite (blog.coinkite.com/entropytechnicalbackgrounder/), một chuỗi lỗi tinh vi khiến bộ tạo số ngẫu nhiên thật (TRNG) của phần cứng không đóng góp entropy đúng cách trong quá trình tạo seed ở các phiên bản firmware bị ảnh hưởng. Điểm cốt lõi: quá trình tạo seed đã dựa nhầm vào bộ sinh số giả ngẫu nhiên (PRNG) từ MicroPython (dạng phần mềm) thay vì RNG phần cứng như thiết kế. Nguyên nhân gốc rễ được mô tả là cấu hình build và kiểm tra preprocessor không buộc đường đi RNG phần cứng, khiến cơ chế fallback phần mềm được dùng "âm thầm", người dùng không nhận được dấu hiệu nào cho thấy nguồn entropy phần cứng không tham gia như kỳ vọng. Tác động thực tế lên mức độ an toàn: - Mk3: an toàn hiệu dụng khoảng ~40 bit (mục tiêu 128 bit). - Mk4/Mk5/Q: an toàn hiệu dụng khoảng ~72 bit (có cải thiện một phần nhờ secure element) nhưng vẫn thấp hơn chuẩn 128 bit. 40 bit tương đương không gian seed khoảng 1.000 tỷ khả năng — rất lớn với người dùng phổ thông, nhưng có thể nằm trong tầm với của đối thủ có nguồn lực mạnh và phần cứng tính toán hiện đại. 72 bit an toàn hơn đáng kể, song vẫn kém xa 128 bit — mức thường được coi là khiến brute force không khả thi trong tương lai gần. Thiết bị/firmware bị ảnh hưởng Theo cảnh báo của Coinkite (blog.coinkite.com/coldcardmk3seedgenerationwarning/): - Mk3 — RỦI RO CAO: seed tạo trên firmware 4.0.1 (phát hành tháng 3/2021) đến phiên bản cuối hỗ trợ 5.0.3 được coi là có nguy cơ. Entropy hiệu dụng khoảng 40 bit, mức nghiêm trọng nhất. - Mk4, Mk5, Q — RỦI RO TĂNG CAO: seed tạo trên bất kỳ firmware nào trước hotfix mới nhất có entropy giảm còn khoảng 72 bit. - Không bị ảnh hưởng: TAPSIGNER, OPENDIME, SATSCARD (khác codebase, không thuộc lỗ hổng này). - Nhóm rủi ro thấp hơn: người dùng đã thêm ít nhất 50 lần gieo xúc xắc độc lập và riêng tư trong lúc tạo seed (bổ sung entropy bên ngoài mà thiết bị không thể làm giảm), hoặc dùng BIP39 passphrase mạnh và duy nhất. Passphrase được xử lý tách biệt với entropy nội bộ và vẫn tăng bảo vệ ngay cả khi RNG của thiết bị gặp vấn đề. Bạn cần làm gì — Hướng dẫn di chuyển từng bước Coinkite nhấn mạnh: cập nhật firmware không sửa được seed cũ. Seed đã được tạo với entropy không đủ thì việc nâng cấp không thể thay đổi mức ngẫu nhiên đã dùng. Cách xử lý duy nhất là tạo seed mới hoàn toàn và chuyển toàn bộ tài sản. Bước 1 — Xem seed hiện tại như có thể đã bị lộ Nếu seed được tạo trên tổ hợp thiết bị/firmware bị ảnh hưởng, đồng thời không có 50+ lần gieo xúc xắc và không có passphrase mạnh, hãy giả định seed có thể bị tấn công. Không nên chờ thêm thông tin. Bước 2 — Cập nhật firmware đã được vá ngay - Mk4/Mk5: firmware 5.6.0 trở lên. - Q: firmware 1.5.0Q trở lên. - Mk3: không có bản vá — xem biện pháp tạm thời bên dưới. Bước 3 — Tạo seed mới hoàn toàn trên firmware đã vá Trên thiết bị đã cập nhật, tạo seed mới, không khôi phục seed phrase cũ. Seed mới sẽ dùng entropy phần cứng đúng cách và không chịu ảnh hưởng từ lỗi. Khuyến nghị tăng cường: - Khi tạo seed mới, thêm tối thiểu 50 lần gieo xúc xắc độc lập để bổ sung entropy. - Kết hợp seed mới với BIP39 passphrase mạnh, duy nhất và lưu trữ tách khỏi bản sao seed. Bước 4 — Sao lưu seed và passphrase đúng cách Ghi seed phrase ra giấy và cất giữ an toàn. Nếu dùng BIP39 passphrase, lưu riêng với seed phrase. Cả hai đều cần để truy cập ví; mất một trong hai đồng nghĩa mất quyền truy cập. Bước 5 — Kiểm tra ví mới Đối chiếu fingerprint và kiểm tra ít nhất một địa chỉ nhận để xác nhận ví mới thiết lập đúng trước khi chuyển tiền. Bước 6 — Chuyển thử khoản nhỏ Trước khi chuyển toàn bộ số dư, gửi một khoản nhỏ từ ví cũ sang ví mới và xác nhận đã nhận thành công. Bước 7 — Di chuyển toàn bộ số dư còn lại Chuyển hết tài sản từ ví cũ (có thể đã bị lộ) sang ví mới. Không tiếp tục sử dụng seed cũ sau khi hoàn tất. Biện pháp tạm thời cho Mk3 Nếu Mk3 là thiết bị duy nhất bạn có và chưa thể chuyển sang Mk4/Mk5/Q ngay, có thể giảm rủi ro tạm thời bằng cách thêm BIP39 passphrase mạnh, duy nhất cho ví hiện tại. Đây không phải giải pháp lâu dài; hãy lên kế hoạch di chuyển sang thiết bị không bị ảnh hưởng sớm nhất có thể. Vì sao entropy quan trọng (giải thích không kỹ thuật) Bảo mật của ví cứng phụ thuộc trực tiếp vào độ ngẫu nhiên khi tạo seed — "chìa khóa gốc" sinh ra mọi địa chỉ Bitcoin. Khi seed được tạo với độ ngẫu nhiên không đủ, tập seed khả dĩ nhỏ hơn nhiều so với thiết kế. Thay vì một trong 2^128 khả năng, seed có thể chỉ nằm trong khoảng 2^40 hoặc 2^72 khả năng — một không gian mà đối thủ đủ mạnh có thể dò tìm. Khi nền tảng mật mã bị suy yếu, các lớp bảo vệ vật lý như air-gap hay chống can thiệp vẫn còn, nhưng không thể bù đắp cho seed yếu. Nguồn chính thức và lưu ý an toàn Hãy xác minh thông tin qua kênh chính thức của Coinkite. Không làm theo hướng dẫn từ nguồn không chính thống, tài khoản mạng xã hội tự nhận hỗ trợ Coinkite, hoặc bất kỳ bên thứ ba nào đề nghị giúp khôi phục/di chuyển tài sản. Kết luận Lỗi entropy của Coldcard là lỗ hổng nghiêm trọng và phức tạp. Dựa trên dữ liệu on-chain hiện có, sự cố được cho là đã dẫn tới việc thất thoát khoảng 38,2 triệu USD Bitcoin từ các ví bị ảnh hưởng. Nguyên nhân kỹ thuật là lỗi firmware khiến thiết bị dùng PRNG phần mềm thay cho RNG phần cứng, làm seed chỉ còn mức an toàn hiệu dụng 40 bit hoặc 72 bit thay vì 128 bit. Nếu bạn sở hữu Coldcard và đã tạo seed trên firmware thuộc diện ảnh hưởng mà không có gieo xúc xắc hoặc không có passphrase mạnh, tài sản có thể đang gặp rủi ro ngay lúc này. Việc cần làm không thể trì hoãn: cập nhật firmware, tạo seed mới và chuyển toàn bộ tài sản. FAQ Hỏi: Lỗi entropy của Coldcard là gì? Đáp: Lỗi firmware khiến Coldcard dùng PRNG phần mềm thay vì TRNG phần cứng khi tạo seed, dẫn tới seed có mức an toàn khoảng 40 bit (Mk3) hoặc 72 bit (Mk4/Mk5/Q) thay vì chuẩn 128 bit. Hỏi: Thiết bị của tôi có bị ảnh hưởng không? Đáp: Mk3 chạy firmware 4.0.1 đến 5.0.3 có rủi ro cao. Mk4/Mk5/Q chạy firmware trước hotfix mới nhất cũng bị ảnh hưởng. TAPSIGNER, OPENDIME, SATSCARD không bị ảnh hưởng. Hỏi: Cập nhật firmware có sửa seed hiện tại không? Đáp: Không. Cập nhật không thể sửa seed đã tạo. Bạn phải tạo seed mới trên firmware đã vá và chuyển toàn bộ tài sản sang ví mới. Hỏi: Cần cập nhật lên phiên bản nào? Đáp: Mk4/Mk5: 5.6.0 trở lên. Q: 1.5.0Q trở lên. Mk3 không có bản vá; có thể dùng BIP39 passphrase mạnh như biện pháp tạm thời và lên kế hoạch di chuyển sang thiết bị không bị ảnh hưởng.