Nhà phát triển bitcoin Luke Dashjr vào ngày 9 tháng 11 đã công khai liệt kê chín mối quan tâm về mã tạo số ngẫu nhiên trong ví phần cứng Coldcard của Coinkite, cho biết ông đã từng báo cáo chúng cho công ty một cách riêng tư.
“Tôi không khẳng định tất cả những điều này đều có thể được sử dụng làm vũ khí, hay chắc chắn đều là lỗi,” Dashjr viết trong bản tiết lộ của ông. Ông cho biết không biết liệu Coinkite đã sửa chúng chưa và mô tả cuộc xem xét của mình là một cái nhìn nhanh, không phải cuộc kiểm toán toàn diện.
Bài viết của anh ấy liên kết đến bản cập nhật firmware tháng Bảy. Các ghi chú phát hành sau đó của Coinkite và nguồn được công bố cho thấy các thay đổi nhằm giải quyết một số vấn đề mà anh ấy đã nêu ra, bao gồm kiểm tra lỗi hạt giống chip và bài kiểm tra khởi động đường dẫn RNG phần cứng.
https://x.com/i/status/2119836060306018364
Sự tiết lộ này theo sau sự cố tạo seed tháng Bảy của Coldcard. Coinkite cho biết các kẻ tấn công đã khai thác các seed ví bị suy yếu bằng cách tái tạo khóa riêng offline và đánh cắp tiền mà không cần truy cập từ xa vào các thiết bị.
Các bài viết có số thứ tự của Dashjr numbered posts đã gây ra những lo ngại về mã được sử dụng sau bản sửa đổi trước đó:
Anh ấy đặt câu hỏi liệu các mẫu ngẫu nhiên ban đầu có nên được loại bỏ khi khởi động hay không, chỉ ra việc thiếu kiểm tra hạt giống chip và lỗi đồng hồ, đồng thời cho biết hướng dẫn chip yêu cầu xử lý sau cho các ứng dụng mật mã.
Anh ấy cho biết các kiểm tra đầu ra lặp lại được áp dụng cho các lần đọc được đệm nhưng không áp dụng cho các lời gọi trực tiếp, và lập luận rằng quy trình phát hiện lỗi cấp thấp hơn chưa được chứng minh là đủ độc lập.
Anh ấy đặt câu hỏi tại sao tính ngẫu nhiên của phần tử bảo mật không duy trì được độ mạnh mong đợi, kêu gọi kiểm tra đầy đủ con đường RNG vừa được kích hoạt, và yêu cầu thực hiện kiểm tra trên thiết bị thay vì chỉ dựa vào các biện pháp bảo vệ thời điểm xây dựng.
Anh ấy cảnh báo rằng việc hết thời gian xử lý trong một ngữ cảnh không thể xử lý an toàn một ngoại lệ Python có thể gây ra hành vi không xác định, có thể làm thiết bị bị sập hoặc trở nên không sử dụng được.
Dashjr cho biết anh ấy đã công khai sau khi nghe nói NVK tuyên bố con người không thể tìm ra lỗ hổng của Coldcard. Trước đó trong ngày, CEO Coinkite Rodolfo Novak, còn được biết đến với tên NVK, đã viết rằng “cần một mô hình AI mới để phát hiện điều mà con người không thể.” Bài đăng của Novak liên quan đến việc phát hiện lỗ hổng tạo seed trước đó; chuỗi kỹ thuật của Dashjr đề cập đến mã sau khi đã sửa lỗi.
Đã thêm kiểm tra RNG trong bản firmware sau
Trang tải xuống của Coinkite liệt kê 5.6.3 là phiên bản firmware tiêu chuẩn hiện tại cho Mk4/Mk5 và 1.5.3Q cho Q. lịch sử phát hành của nó ghi nhận việc thêm tính năng phát hiện lỗi seed và kiểm tra tự động khởi động RNG phần cứng vào phiên bản 5.6.1, được phát hành ngày 20 tháng Tám.
Nguồn Mk4 đã công bố cho phiên bản 5.6.3 loại bỏ các mẫu khởi động, kiểm tra các cờ lỗi hạt giống, thử lại các lần thất bại và kiểm tra xem các lời gọi có đạt đến bộ tạo số ngẫu nhiên phần cứng hay không. Các ghi chú phát hành cũng cho biết cả hai phần tử bảo mật hiện đều được lấy mẫu trực tiếp cho mỗi hạt giống chính mới, thay vì chỉ đóng góp thông qua việc khởi tạo RNG tại thời điểm khởi động.
Nguồn hiện tại vẫn đặt kiểm tra đầu ra lặp lại trong quy trình đọc đệm thay vì trong mỗi lời gọi trực tiếp. Các ghi chú của nó cho biết các cờ lỗi đồng hồ bị bỏ qua chủ ý, trích dẫn tài liệu chip rằng các lỗi đó không làm vô hiệu hóa các số được tạo ra.
Đối với người dùng bị ảnh hưởng bởi sự cố tháng Bảy, hướng dẫn hiện hành của Coinkite standing guidance vẫn là việc cập nhật firmware không thể sửa chữa seed đã bị suy yếu. Những người dùng này nên tuân theo hướng dẫn di chuyển của nó, trừ khi ngoại lệ độc lập-dice trong thông báo áp dụng.



