Hàm SecureRandom không an toàn - JavaScript tạo lỗ hổng trong một số ví Bitcoin

13:40 | 08/05/2018

David Gerard, quản trị hệ điều hành Unix, đồng thời là người theo dõi công nghệ chuỗi khối ở Anh đã bày tỏ sự quan ngại về lỗ hổng trong thư viện mật mã học có thể dẫn đến việc đánh cắp Bitcoin.

Ông chia sẻ rằng, hàm SecureRandom phổ biến của JavaScript không thực sự an toàn. Do JavaScript không an toàn, nên một lỗi có thể khiến mã lệnh không thể sử dụng window.crypto API của trình duyệt và quay lại sử dụng hàm Math.random() không đáp ứng yêu cầu ngẫu nhiên cho các thao tác mật mã học.

Mustafa Al-Bassam, một nhà nghiên cứu khoa học máy tính ở trường Đại học London nói rằng, vấn đề nằm trong các phiên bản trước năm 2013 của jsbn, một thư viện mật mã học của JavaScript. Lỗ hổng của thư viện này được biết đến từ năm 2013 và đã được Greg Maxwell, lập trình viên Bitcoin Core phân tích trong một bài trình bày năm 2015.

Matthew Green, Phó Giáo sư khoa học máy tính tại trường Johns Hopkins, đồng thời là một chuyên gia về mật mã học nói rằng, quay lại sử dụng các giải pháp thay thế sẽ kém an toàn hơn. Ông cho rằng, vấn đề với đoạn mã không chỉ liên quan tới các ví điện tử do những ứng dụng cũ sinh ra, mà còn liên quan cả tới các địa chỉ Bitcoin được tạo vào thời điểm đó. Nếu người dùng sinh địa chỉ Bitcoin của mình bằng đoạn mã đó có thể bị tấn công, các khoá có thể đoán biết được và có thể bị lợi dụng để trộm tiền. Ông nói thêm rằng, khó có thể biết trình duyệt và các ứng dụng sinh khoá thế nào vì điều đó không phải lúc nào cũng rõ ràng và có nhiều biến thể khác nhau.

Trình duyệt Chrome bị ảnh hưởng bởi lỗi này cho tới tận năm 2015. Việc sinh số ngẫu nhiên không đáp ứng tiêu chuẩn khiến các khoá mã hoá sinh bằng đoạn mã đó có thể được tìm ra bằng cách dò thử trong khoảng 1 tuần. Gerard đã nói rằng phần lớn các ví điện tử dùng để chứa tiền mã hoá bị ảnh hưởng bởi lỗ hổng này. Tuy nhiên, sau đó ông đã đính chính lại và cho biết chỉ có một số ví bị ảnh hưởng. Đó là Bitaddress (trước 2013), Bitcoinjs (trước 2014) và bất kỳ loại nào sử dụng các đoạn mã cũ trên GitHub từng triển khai hàm SecureRandom.

Dave Harding, một người tham gia đóng góp vào Bitcoin Core đã tỏ ý nghi ngờ về động cơ của người “đào” lại câu chuyện về lỗ hổng và cho rằng người đó khuấy lên để gây chú ý hay để kiếm tiền. Tuy nhiên, ông cũng thừa nhận một số khoá bí mật được sinh trong các trình duyệt những năm trước đây không đủ an toàn “Những khoá kém an toàn nhất đã bị lộ và tiền của người dùng đã bị đánh cắp; một số khoá khác có thể đủ an toàn vào thời điểm này, nhưng vẫn có thể bị lộ trong tương lai". Ông khuyên những người vẫn còn lo ngại nên liên hệ với nhà cung cấp ví và chỉ ra rằng Bitcoin.org vẫn duy trì một danh sách các ví điện tử có vấn đề về mặt an ninh.