Trước lỗi entropy thấp thảm khốc trong ví cứng Coldcard, liên quan đến các vụ trộm cắp được quan sát thấy công khai bắt đầu từ ngày 30 tháng 7, những người nắm giữ Bitcoin đã bắt đầu đánh giá lại các giả định về sự tin cậy trong thiết lập ví cứng của họ.
Cách lỗi entropy của Coldcard hoạt động
Các thiết bị Coldcard được trang bị "bộ tạo số ngẫu nhiên thực sự" (TRNG) STM32 có vẻ hoạt động, dựa vào các quá trình vật lý để tạo ra cụm từ hạt giống không thể đoán được.
Tuy nhiên, sau khi người sáng tạo Coldcard NVK quyết định khởi động việc viết lại firmware để chuyển từ mô hình phần mềm tự do có giấy phép GPL sang mô hình chỉ đọc, một lỗ hổng nghiêm trọng dường như đã được đưa vào.
Bắt đầu từ phiên bản firmware 4.0.1, phát hành vào tháng 3 năm 2021, thiết bị đã sử dụng PRNG Yasmarang 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 là một vấn đề không thể giải quyết trong khoa học máy tính, đó là lý do tại sao việc tạo khóa riêng tư an toàn, không thể đoán được luôn phải dựa vào các quá trình vật lý bên ngoài ở một mức độ nào đó.
Việc sử dụng PRNG Yasmarang đã được các nhà phân tích trong lĩnh vực này đánh giá rộng rãi là một phương án dự phòng được lập trình sẵn. Tuy nhiên, Coinkite hiện đã tranh cãi về đánh giá này trong một bài đăng X gần đây:
Giả thuyết rằng Coldcard được lập trình để mặc định sử dụng một phương pháp tạo hạt giống rõ ràng là không an toàn cũng đã làm dấy lên suy đoán trên X về việc liệu đây có phải là một cửa hậu được cố ý đặt vào hay không.
Nhà báo Bitcoin điều tra Hodlnaut suy đoán rằng lỗi bắt nguồn từ thực hành phát triển cẩu thả và nỗ lực ngăn chặn lỗi thông qua các thay đổi ngẫu nhiên.
Coinkite ước tính rằng các thiết bị Mk2 và Mk3 tạo ra hạt giống với entropy 40 bit, trong khi Mk4, Mk5 và Q đạt khoảng 70 bit. Cả hai đều thấp hơn nhiều so với 128 bit cần thiết cho một cụm từ hạt giống 12 từ an toàn.
Kể từ đó, những kẻ tấn công đã thành công trong việc brute-force các khóa riêng tư, đánh cắp hơn 100 triệu đô la trị giá BTC. Khả năng một ví bị tìm thấy phụ thuộc vào việc có thêm entropy từ xúc xắc hay không, hoặc có sử dụng cụm mật khẩu BIP-39 và đường dẫn không tiêu chuẩn hay không.
Liên quan: Hacker Coldcard chuyển 64 BTC và 200 ETH đến các dịch vụ trộn tiền mã hóa
Kể từ đó, James O’Beirne đã thiết lập một trang web với các địa chỉ honeypot, có tiêu đề cktripwire, để ước tính loại ví nào mà những kẻ tấn công đang quét một cách hiệu quả.

Các honeypot được theo dõi bởi cktripwire. Nguồn: cktripwire.com
Cách entropy vật lý đã cứu một số ví
Cuộc khai thác Coldcard một lần nữa đã nhấn mạnh đau đớn một trong những nguyên tắc cốt lõi của cộng đồng: Đừng tin tưởng, hãy xác minh.
Những người dùng không dựa vào một phần kỹ thuật mờ đục để tạo entropy cho phần quan trọng nhất về bảo mật của quá trình, mà sử dụng một số lượng đủ các lần gieo xúc xắc, đã bảo vệ được đồng xu của họ khỏi bị khai thác.
Gieo xúc xắc là một quá trình đơn giản, minh bạch mà một người dùng bình thường có thể tự kiểm toán và hiểu một cách trực quan. Trong khi đó, việc xác minh TRNG sẽ đòi hỏi kiểm tra vật lý chi tiết các linh kiện điện tử và kiểm tra firmware.
Trong khi một số người đã sử dụng các sự kiện gần đây như một cái cớ để tuyên bố sự kết thúc của việc tự giữ tiền, việc tuân theo thực hành tốt nhất này chỉ để lại rất ít lựa chọn cho một kẻ tấn công từ xa.
Nếu cụm từ hạt giống được tạo ra thông qua entropy vật lý mà không dựa vào bảo mật của ví cứng, thì điểm hỏng duy nhất thực sự trong quá trình tạo ví sẽ được loại bỏ.
Liên quan: Các cuộc tấn công Coldcard có nghĩa là tất cả ví cứng giờ đây đều không an toàn?
Xpub và địa chỉ nhận được suy ra từ hạt giống có thể được kiểm tra chéo bằng cách nhập nó vào các thiết bị khác.
Việc rò rỉ nonce thông qua một khoảng cách không khí cũng có thể bị phát hiện bằng cách kiểm tra xem hai thiết bị có tạo ra cùng một chữ ký tuân thủ RFC 6979 hay không khi được cung cấp một giao dịch chưa ký giống hệt nhau.
Do đó, việc tạo entropy an toàn là điều kiện tiên quyết tuyệt đối cho một chiếc ví an toàn. Nhiều phương pháp và đề xuất khác nhau để tạo ra nó đã được lan truyền trên X kể từ khi cuộc khai thác Coldcard được công bố.
Phương pháp phổ biến nhất là 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 một cụm từ hạt giống BIP-39 bằng cách áp dụng hàm băm SHA-256. Sử dụng từ 100 lần gieo xúc xắc trở lên sau đó là đủ để tạo entropy cho một hạt giống 24 từ.
Các phương pháp giấy đơn giản, chẳng hạn như bảng được xuất bản bởi Bitbox, phân vùng không gian của các từ hạt giống BIP-39 để một tổ hợp gồm sáu lần gieo xúc xắc và một lần tung đồng xu có thể trực tiếp được gán một từ hạt giống mà không cần sử dụng thiết bị điện tử.
Các mẫu tinh vi hơn như bảng tính khử độ lệch xúc xắc codex32 sử dụng một bộ trích xuất van Neumann có thể được tính toán bằng tay để tạo ra một cụm từ hạt giống an toàn ngay cả với xúc xắc có độ lệch.
Một phương án thay thế cho việc gieo xúc xắc là in ra các từ hạt giống BIP-39, cắt chúng thành những mảnh giấy nhỏ có kích thước bằng nhau, xáo trộn kỹ và sau đó rút ngẫu nhiên 24 từ. Các sản phẩm như Seedsticks hoặc Entropia làm cho việc này trở nên thuận tiện và chắc chắn hơn.
Các phần cứng chuyên dụng như Frostsnap cố gắng phân phối việc tạo entropy một cách có thể xác minh được trên nhiều thiết bị.
Một số người dùng đã bắt tay vào thiết kế các thiết bị entropy vật lý riêng của họ có thể tạo ra một cụm từ hạt giống nhanh gần như một phần cứng điện tử.
Liên quan: Các cuộc tấn công Coldcard có nghĩa là tất cả ví cứng giờ đây đều không an toàn?





