Một buổi sáng tháng 10 u ám, Michael Stay nhận được những dòng tin nhắn kỳ cục trên LinkedIn. Một người hoàn toàn xa lạ muốn Stay giúp anh ta lấy lại số Bitcoin trị giá 300.000 USD nằm trong file Zip mà anh ta đã quên mật khẩu. Stay gọi anh chàng này là The Guy.
Rõ ràng, The Guy biết mình đang nhờ cậy đúng người. Stay là một cựu kỹ sư bảo mật của Google. 19 năm trước, chính Stay đã xuất bản một bài viết mô tả chi tiết kỹ thuật bẻ khóa các file Zip được bảo vệ bởi mật khẩu.
Về vấn đề của The Guy, anh ta đã mua số Bitcoin của mình với giá 10.000 USD, thời điểm mà Bitcoin chưa tăng giá phi mã. The Guy đã cất số Bitcoin này trong một file Zip và thiết lập mật khẩu cho nó. Đáng buồn là bây giờ, khi số Bitcoin ấy tăng giá gấp 30 lần, The Guy lại quên mất mật khẩu.
Trong một cuộc trò chuyện tại hội nghị bảo mật Defcon vừa diễn ra, Stay đã kể lại hành trình "giải cứu" số Bitcoin cho The Guy.
Zip là một định dạng file phổ biến, thường được dùng để nén dữ liệu nhưng vẫn đảm bảo sự nguyên vẹn cho dữ liệu. "Nếu chúng ta tìm ra mật khẩu, tôi sẽ hậu tạ cho anh", The Guy nhắn cho Stay, kèm theo biểu tượng mặt cười.
Sau những phân tích ban đầu, Stay báo cho The Guy rằng chi phí để giải mã có thể lên tới 100.000 USD. The Guy đồng ý bởi xét cho cùng số tiền còn lại của anh ta vẫn khá nhiều.
Stay đã rất hào hứng với dự án này, ngày nào ông cũng hăng say tìm giải pháp, giải quyết các thách thức nhằm tìm ra mật khẩu đúng nhanh nhất. Stay hiện đang là giám đốc công nghệ của công ty phát triển phần mềm blockchain Pyrofex. "Hệ thống mã hóa của Zip được tạo ra bởi một chuyên gia mã hóa nghiệp dư nhưng thật kỳ lạ là nó có cấu trúc rất tốt", Stay chia sẻ. Nhưng trong khi hầu hết các file zip đều có thể bị bẻ khóa dễ dàng bằng các công cụ sẵn có thì file của The Guy lại gặp vấn đề.
The Guy dường như đã sử dụng tiêu chuẩn Zip Legacy 2.0 lạc hậu để mã hóa file của mình, một tiêu chuẩn không được đánh giá là mạnh mẽ. Nhưng độ khó của mật khẩu lại tùy thuộc vào cách đặt mật khẩu, độ dài, sự kết hợp của các ký tự, số, ký tự đặc biệt... Điều này tạo ra thêm nhiều vấn đề cho các chuyên gia khi họ cố gắng giải mã và cũng vì thế mà chi phí Stay đưa ra ở mức rất cao.
Ít nhất thì Stay vẫn còn một số manh mối để tìm ra cách tiếp cận tốt nhất. The Guy vẫn còn giữ chiếc laptop mà anh ta sử dụng để mã hóa số Bitcoin của mình, đây là minh chứng rõ ràng nhất cho việc số Bitcoin này thực sự thuộc về anh ta. Bên cạnh đó, nhờ chiếc laptop Stay cũng biết được phần mềm và phiên bản phần mềm mà The Guy dùng để mã hóa file Zip.
Kết hợp với thông tin về thời điểm file Zip được tạo, Stay dùng phần mềm Info-ZIP để nắm được sơ đồ mật khẩu của nó. Từ đó, ông rút gọn số mật khẩu khả dĩ từ vô cùng xuống còn khoảng vài nghìn tỷ.
Tiếp theo, để dò ra mật khẩu đúng trong vài nghìn tỷ mật khẩu, Stay sẽ phải thuê các đơn vị xử lý đồ họa đám mây. Stay đã nhờ CEO Pyrofex là Nash Foster cho triển khai mã phân tích và chạy nó trên các GPU đa năng của Nvidia Tesla. Khi tiến sâu hơn vào dự án, Stay có thể tùy chỉnh phương pháp dò mật khẩu để giảm thời gian cần thiết.
"Ban đầu, chúng tôi nghĩ rằng sẽ phải thực hiện các biện pháp kỹ thuật trong vài tháng sau đó chạy mã phân tích thêm vài tháng nữa mới tìm ra mật khẩu. Sau đó, Stay nói rằng anh ấy giỏi về phân tích mật khẩu nên chúng tôi tập trung nhiều hơn vào việc phát triển phương thức dò mật khẩu để khi khởi động hệ thống chỉ cần chạy trong khoảng một tuần là đã tìm ra mật khẩu trùng khớp, tiết kiệm khá nhiều chi phí", Foster chia sẻ. "Nếu câu chuyện này xảy ra 10 năm trước chúng tôi sẽ phải xây dựng một hệ thống phần cứng riêng và chi phí có thể vượt qua giá trị của số Bitcoin ấy".
Sau nhiều tháng phát triển, cuối cùng Stay đã sẵn sàng khởi động hệ thống dò mật khẩu. The Guy đã không đưa toàn bộ file Zip cho Stay và Foster, có thể anh ấy sợ rằng họ sẽ đánh cắp số Bitcoin sau khi bẻ khóa thành công. Thay vào đó, anh ta chỉ cung cấp cho Stay và Foster thẻ tiêu đề đã được mã hóa hoặc các ghi chú thông tin của file chứ không cung cấp nội dung.
Đến tháng 2/2020, 4 tháng sau khi Stay và The Guy lần đầu nói chuyện qua LinkedIn, tất cả đã sẵn sàng để khởi động hệ thống dò mật khẩu.
Nó chạy trong 10 ngày và không thành công. Stay nhắn cho The Guy rằng ông rất đau lòng.
"Trước đó chúng tôi tìm ra rất nhiều lỗi nhưng khi thử nghiệm trên laptop của tôi, mọi thứ diễn ra hoàn hảo", Stay chia sẻ. "Tôi sợ rằng lần này nếu có lỗi thì sẽ là một lỗi rất tinh vi và chúng tôi sẽ mất rất nhiều thời gian để tìm kiếm, khắc phục". Suốt tháng 2 mọi việc không có gì tiến triển trong khi giá Bitcoin sụt giảm làm giảm giá trị của file Zip. The Guy tỏ ra bồn chồn, sốt ruột.
Stay xem xét lại một cách kỹ lưỡng phương thức dò mật khẩu, sợ rằng có một số giả định không rõ ràng, không chính xác hoặc một lỗi nào đó chưa được tìm ra. Ông nảy ra ý định về một con số "hạt giống" được dùng làm điểm khởi đầu cho trình tạo số ngẫu nhiên được dùng trong sơ đồ mật mã.
The Guy cũng xem xét dữ liệu thử nghiệm và nhận ra một lỗi sẽ xuất hiện nếu trình dò mật khẩu không tìm ra mật khẩu chính xác trong lần thử đầu tiên. Stay và Foster bắt tay vào sửa lỗi. Sau khi cả hai vấn đề được khắc phục, họ sẵn sàng thử lại.
Và lần này, họ thành công. "Oa! Một đống Bitcoin đã được giải thoát", Foster nói. "Thật là nhẹ nhõm", Foster bổ sung.
Cuối cùng, chi phí cho cơ sở hạ tầng thực hiện chiến dịch dò mật khẩu rơi vào khoảng 6.000 tới 7.000 USD, thấp hơn rất nhiều so với mức 100.000 USD dự kiến. The Guy cũng rất hào phóng khi trả cho Stay và Foster tới 25.000 USD.
"Anh ấy đã ký một thỏa thuận không thơm cho lắm", Foster nói. "Những dự án như thế này chẳng bình thường chút nào. Nếu The Guy sử dụng một tiêu chuẩn mã hóa mới hơn một chút thì chúng tôi chẳng thể nào dò ra mật khẩu".
Sau khi Stay chia sẻ về chiến dịch giải cứu Bitcoin của mình lên internet hồi tháng 4 vừa rồi, rất nhiều người đã liên hệ để nhờ ông tìm lại mật khẩu truy cập ví Bitcoin của họ. Tuy nhiên, cách dò mật khẩu file Zip của Stay không liên quan gì tới các ví điện tử chứa Bitcoin. Các hệ thống ví điện tử này đôi khi có lỗ hổng nhưng thường sử dụng các hệ thống mã hóa hiện đại, mạnh mẽ hơn nhiều.