
Người dùng bitcoin đang xem xét lại một giả định cốt lõi về tự lưu trữ sau khi tiết lộ vấn đề “độ entropy thấp” liên quan đến phần mềm firmware của ví phần cứng Coldcard. Theo các báo cáo và phân tích được nhắc đến trong cộng đồng tiền điện tử, các vụ trộm cắp được quan sát công khai liên quan đến lỗ hổng này bắt đầu vào khoảng ngày 30 tháng Bảy, khiến các nhà đầu tư và những người sở hữu ví phần cứng lâu năm phải xem xét kỹ cách cụm từ hạt giống của họ được tạo ra.
Mặc dù các thiết bị của Coldcard đã lâu được đánh giá cao vì tính bảo mật ngoại tuyến và quyền kiểm soát của người dùng, sự việc này làm nổi bật một sự thật khó chịu: nếu tính ngẫu nhiên được sử dụng để tạo seed cho ví có thể bị dự đoán hoặc giảm hiệu quả, kẻ tấn công có thể dùng phương pháp bạo lực để tìm khóa riêng. Tình huống này cũng làm dấy lại cuộc tranh luận trong hệ sinh thái về việc “xác minh” entropy an toàn thực sự có nghĩa là gì — và nên giao bao nhiêu cho phần cứng so với việc người dùng tự thực hiện.
Những điểm chính
- Phiên bản firmware Coldcard bắt đầu từ phiên bản 4.0.1 (ra mắt tháng 3 năm 2021) được mô tả là sử dụng Yasmarang PRNG của MicroPython thay vì dựa đúng vào RNG phần cứng STM32 của thiết bị.
- Coinkite ước tính rằng các mẫu Coldcard bị ảnh hưởng đã tạo ra các seed với khoảng 40 bit entropy (Mk2/Mk3) hoặc khoảng 70 bit (Mk4/Mk5/Q), thấp hơn mức cần thiết cho một seed BIP-39 12 từ mạnh mẽ.
- Các kẻ tấn công được cho là đã dùng phương pháp bạo lực để tìm khóa riêng sau khi sự việc được tiết lộ, với báo cáo của Cointelegraph cho rằng giá trị bị đánh cắp vượt quá 100 triệu đô la Mỹ trong BTC.
- Các người dùng tạo cụm từ hạt giống bằng cách sử dụng độ ngẫu nhiên vật lý đủ lớn (ví dụ: xúc xắc) đã được cho là giảm sự phụ thuộc vào con đường ngẫu nhiên bị xâm phạm.
- Các công cụ cộng đồng như theo dõi honeypot đã được sử dụng để ước tính các loại ví mà kẻ tấn công đang quét hiệu quả.
Điều gì đã thay đổi trong việc tạo ngẫu nhiên của Coldcard
Yêu cầu kỹ thuật trung tâm là các ví phần cứng Coldcard chứa những gì dường như là bộ tạo số ngẫu nhiên thật sự (TRNG) STM32 có chức năng, được thiết kế để tạo ra các cụm từ hạt giống không thể đoán trước. Tuy nhiên, sau khi người sáng lập Coldcard là NVK khởi động việc viết lại firmware nhằm chuyển từ mô hình phần mềm miễn phí cấp phép GPL sang mô hình chỉ đọc, các nhà phân tích cho rằng một lỗ hổng nghiêm trọng đã được đưa vào.
Từ phiên bản firmware 4.0.1, được phát hành vào tháng 3 năm 2021, thiết bị được báo cáo đã chuyển sang sử dụng Yasmarang PRNG của MicroPython thay vì sử dụng đúng cách RNG phần cứng STM32. Việc tạo số ngẫu nhiên được mô tả là cực kỳ khó khăn đối với các hệ thống máy tính, và việc tạo hạt giống an toàn thường đòi hỏi phải tích hợp đủ độ bất định vật lý bên ngoài để làm cho các đầu ra không thể đoán được.
Trong hệ sinh thái, Yasmarang PRNG đã được mô tả rộng rãi là một phương án dự phòng được lập trình sẵn. Một phân tích kỹ thuật được trích dẫn từ Block, giải thích về “phương án dự phòng RNG có thể dự đoán” và cơ chế của tiếp cận “tái khởi động 32-bit”, đã được tài liệu nguồn của bài viết liên kết. Sau đó, Coinkite đã phản bác cách mô tả này trong một bài đăng trên X, thách thức kết luận rằng thiết bị chỉ đơn giản được cố định vào một phương pháp rõ ràng yếu kém.
Ngay cả với tranh chấp đó, hệ quả rộng hơn vẫn còn đó: khi quá trình tạo seed của ví không thực sự ngẫu nhiên, các khóa riêng tư có thể trở nên có thể tìm kiếm được. Tài liệu nguồn của bài viết ghi nhận những suy đoán trên X về việc liệu một lỗ hổng hậu môn có được đặt cố ý hay không, đồng thời trích dẫn quan điểm của một nhà báo Bitcoin rằng lỗi có thể xuất phát từ các thực hành phát triển và nỗ lực ức chế lỗi thông qua các thay đổi ngẫu nhiên.
Mức độ entropy, bảo mật seed và tại sao phương pháp brute force lại quan trọng
Các ước tính của Coinkite được trích dẫn trong tài liệu nguồn rất cụ thể về quy mô của vấn đề. Nó ước tính rằng các thiết bị Mk2 và Mk3 tạo ra các cụm từ hạt giống với khoảng 40 bit entropy, trong khi Mk4, Mk5 và Q đạt khoảng 70 bit. Như tài liệu nguồn ghi chú, cả hai con số này đều xa kém mức 128 bit thường được coi là đủ cho một cụm từ hạt giống 12 từ an toàn.
Sự thiếu hụt đó quan trọng vì nó làm thay đổi mô hình đe dọa. Thay vì yêu cầu kẻ tấn công phải bạo lực các không gian khóa khổng lồ, độ ngẫu nhiên hiệu dụng thấp hơn có thể làm cho việc phát hiện khóa trở nên thực tế hơn nhiều. Tài liệu nguồn còn nêu rằng sau khi phát hiện lỗ hổng, kẻ tấn công đã thành công trong việc bạo lực khóa riêng và đánh cắp tiền, dẫn đến báo cáo của Cointelegraph mô tả các vụ trộm cắp vượt quá 100 triệu đô la Mỹ giá trị BTC.
Khả năng một ví cụ thể được tìm thấy và quét được trình bày là phụ thuộc vào các biến số bổ sung—ví dụ như việc có thêm “độ ngẫu nhiên xúc xắc” hay không, hoặc việc có sử dụng mật khẩu BIP-39 và đường dẫn suy diễn phi tiêu chuẩn hay không. Những chi tiết này làm nổi bật một sự không chắc chắn quan trọng đối với người đọc: tác động của lỗ hổng có thể không đồng đều giữa tất cả người dùng và tất cả cấu hình ví.
Sử dụng độ hỗn loạn vật lý để giảm sự phụ thuộc vào phần cứng
Ngoài những tranh cãi ngay lập tức xung quanh phần mềm firmware của Coldcard, sự việc này đã củng cố một nguyên tắc thường thấy trong cộng đồng: “Đừng tin, hãy xác minh.” Tài liệu nguồn lập luận rằng những người dùng tránh phụ thuộc vào việc tạo seed bằng phần cứng không minh bạch cho bước quan trọng nhất về bảo mật đã có cơ hội tốt hơn để ngăn ngừa việc bị ảnh hưởng bởi vấn đề entropy thấp.
Điểm thực tế là việc ném xúc xắc cung cấp một quy trình mà người dùng có thể quan sát và kiểm tra chính mình. Ngược lại, việc xác minh chất lượng của TRNG sẽ yêu cầu kiểm tra chi tiết các linh kiện điện tử và phần mềm firmware—việc mà hầu hết người dùng không thể thực hiện một cách khả thi.
Quan trọng hơn, tài liệu nguồn cho thấy rằng việc tự lưu trữ an toàn vẫn không yêu cầu từ bỏ khả năng kiểm tra chéo. Nếu cụm từ hạt giống được tạo ra từ độ ngẫu nhiên vật lý, sự phụ thuộc của người dùng vào đường dẫn phần cứng bị xâm phạm sẽ giảm đi. Nó cũng mô tả các cách để xác minh xem các đối tượng được tạo ra có khớp nhau giữa các thiết bị hay không—ví dụ: nhập cùng một cụm từ hạt giống vào một thiết bị khác để kiểm tra chéo xpub và các địa chỉ nhận kết quả.
Để phát hiện các lớp xâm phạm khác, tài liệu nguồn cũng đề cập đến việc kiểm tra chữ ký: việc rò rỉ nonce qua khoảng cách cách ly có thể được phát hiện bằng cách so sánh xem hai thiết bị có tạo ra cùng một chữ ký khi nhận cùng một giao dịch chưa được ký không, tham chiếu đến RFC 6979 để hành vi ký xác định.
Mặc dù các kiểm tra này không thể thay thế sự không thể đoán trước thực sự tại thời điểm entropy được tạo ra, chúng tạo ra thêm những rào cản cho kẻ tấn công và có thể giúp người dùng phát hiện các bất thường trong cách xử lý và ký giao dịch.
Cộng đồng tạo ra entropy mà không cần tin tưởng vào một thiết bị duy nhất
Sau khi vụ khai thác được công khai, tài liệu nguồn cho biết các phương pháp và đề xuất để tạo entropy trực tiếp từ các đầu vào vật lý đã tăng tốc trong cộng đồng. Một trong những cách tiếp cận được sử dụng rộng rãi mô tả việc xác thực quá trình chuyển đổi xúc xắc thành cụm từ hạt giống bằng cách kiểm tra chéo khả năng của thiết bị trong việc chuyển đổi chính xác các mặt xúc xắc thành cụm từ hạt giống BIP-39 thông qua hàm băm. Bài viết nêu rằng việc ném hơn 100 lần xúc xắc có thể đủ để tạo entropy cho một cụm từ hạt giống 24 từ.
Các tùy chọn khác bao gồm các hệ thống dựa trên giấy. Nguồn trích dẫn một bảng do Bitbox công bố, sử dụng phương pháp tra cứu để ánh xạ trực tiếp các tổ hợp kết quả xúc xắc—cộng với một lần tung đồng xu—sang các từ hạt BIP-39 mà không cần thiết bị điện tử. Cũng đề cập đến các bảng tính nâng cao hơn, bao gồm phương pháp loại thiên lệch xúc xắc codex32 sử dụng bộ trích xuất von Neumann để các xúc xắc bị thiên lệch vẫn có thể tạo ra vật liệu hạt an toàn có thể tính toán bằng tay.
Đối với người dùng tìm kiếm sự tiện lợi, tài liệu nguồn đề cập đến các giải pháp thay thế giúp giảm thiểu sai sót, chẳng hạn như in và cắt các mảnh từ BIP-39, xáo trộn chúng và rút ngẫu nhiên các từ—những phương pháp được hỗ trợ dễ dàng hơn nhờ các sản phẩm như Seedsticks hoặc Entropia. Nó cũng đề cập đến các thiết bị phần cứng chuyên dụng nhằm phân phối entropy một cách có thể xác minh giữa các thiết bị, cùng với các ví dụ về máy tạo entropy vật lý do cộng đồng thiết kế và chia sẻ trên X.
Kết hợp lại, những ý tưởng này chuyển trọng tâm từ “ví phần cứng nào đáng tin cậy nhất” sang “nguồn ngẫu nhiên được lấy ở thời điểm bảo mật phụ thuộc vào nó.” Trong thực tế, sự cố Coldcard đã khuyến khích nhiều người dùng xem việc tạo seed ít giống một quy trình đóng hộp hơn và nhiều hơn như một quy trình mà họ có thể tái tạo và suy luận.
Trong tương lai, người đọc nên theo dõi sự đồng thuận kỹ thuật rõ ràng hơn về chính xác cách đường dẫn firmware bị ảnh hưởng tạo ra đầu ra có độ entropy thấp ở các mô hình khác nhau, cũng như các công cụ phân tích liên tục—như việc theo dõi honeypot được đề cập trong nguồn—to cải thiện ước tính về những hành vi ví nào vẫn duy trì độ bền vững cao nhất. Cho đến lúc đó, kết luận vận hành an toàn nhất là đơn giản: wherever possible, hãy đảm bảo việc tạo seed có thể được xác minh độc lập giống như các bước còn lại trong quy trình tự lưu trữ của bạn.
Bài viết này ban đầu được xuất bản dưới tiêu đề Người dùng Bitcoin đánh giá lại việc tự lưu trữ sau khi lo ngại về rủi ro gia tăng trên Crypto Breaking News – nguồn tin đáng tin cậy của bạn về tin tức tiền điện tử, tin tức bitcoin và cập nhật blockchain.

