Vào tháng 10 năm ngoái, Micheal Stay đột nhiên nhận được một tin nhắn kỳ lạ trên LinkedIn. Một ai đó đã mất quyền truy cập vào ví bitcoin của mình và muốn Stay giúp anh ta lấy lại số tiền mã hóa trị giá 300.000 USD đó.
Không ngạc nhiên khi anh ta tìm đến Stay – cựu kỹ sư bảo mật của Google. 19 năm trước, Stay từng công bố một báo cáo mô tả chi tiết một kỹ thuật phá vỡ các file zip mã hóa.
Còn người tìm đến anh ta – người được Stay gọi với cái tên The Guy – đã bỏ khoảng 10.000 USD ra mua bitcoin vào tháng 1 năm 2016, ngay trước đợt tăng giá bùng nổ của nó. Anh ta đã mã hóa các khóa riêng tư của ví bitcoin đó trong một file zip và quên mất mật khẩu. Giờ đây, anh hy vọng Stay có thể phá được lớp mật khẩu và cứu số bitcoin của mình.
"Nếu chúng ta tìm lại được mật khẩu, tôi sẽ hậu tạ anh", The Guy viết cho Stay. Sau các phân tích ban đầu đối với yêu cầu của The Guy, Stay ước tính việc bẻ khóa file này sẽ tốn khoảng 100.000 USD. The Guy đồng ý ngay. Dù sao đi nữa, anh ta vẫn có lời từ giá bitcoin lúc đó.
Chấp thuận thử thách mà The Guy đặt ra, Stay bước vào một dự án bất thường nhất anh từng gặp từ trước đến nay. Hành trình đầy gian nan đó chỉ được biết đến khi anh kể lại trong hội nghị bảo mật Defcon diễn ra trong tuần qua.
Thử thách trị giá 100.000 USD
Zip là một định dạng file nén phổ biến, dù việc thực hiện nó vẫn có một số khía cạnh kém bảo mật. "Đây là điều thú vị nhất tôi từng gặp trong nhiều năm nay", Stay – giờ đã là CTO của hãng phát triển phần mềm blockchain Pyrofex – cho biết. "Tính năng mã hóa file zip đã được thiết kế từ nhiều thập kỷ trước bởi một nhà mã hóa nghiệp dư – việc nó còn tồn tại đến bây giờ đúng là xuất sắc." Cho dù một số file zip có thể bẻ khóa dễ dàng, nhưng file của The Guy lại không may mắn như vậy.
Đó là một phần lý do vì sao Stay đòi hỏi mức phí cao đến như vậy. Các chương trình zip thế hệ mới sử dụng loại mật mã vững chắc nhất theo chuẩn AES, nhưng các phiên bản cũ hơn – giống như phiên bản The Guy sử dụng – vẫn sử dụng chuẩn mã hóa Zip 2.0 Legacy, thường bị bẻ khóa. Cho dù vậy, mức độ khó của nó phụ thuộc vào cách thực hiện.
Stay chỉ còn một ít bằng chứng để tìm lại mật khẩu của file nén này. Do The Guy vẫn giữ lại laptop mà anh ta đã dùng để tạo và mã hóa file zip kể trên, ít nhất Stay cũng biết chương trình zip nào đã mã hóa file và phiên bản của nó. Đây cũng là một chỉ dấu cho thấy số bitcoin này thực sự thuộc về The Guy.
Nhờ chiếc laptop đó, Stay cũng biết khung thời gian file zip được tạo ra bằng cách sử dụng phần mềm Info-Zip, đồng thời cũng để hiểu được cách mã hóa của nó. Do vậy, từ một khối khổng lồ các mật khẩu và khóa mã hóa có thể tạo ra, Stay có thể rút gọn xuống con số khoảng vài... tỷ tỷ khả năng khác nhau.
Để thực hiện một cuộc tấn công với quy mô lớn đến vậy sẽ cần đến các đơn vị xử lý đồ họa trên nền điện toán đám mây. Stay liên hệ với CEO Pyrofex, Nash Foster để triển khai các đoạn code phân tích mật mã của mình trên GPU Nvidia Tesla. Khi đi sâu hơn vào dự án, Stay có thể tinh chỉnh lại cuộc tấn công và giảm thời gian cần thiết để cho ra kết quả sớm hơn.
"Dự kiến ban đầu của chúng tôi là sẽ thực hiện kỹ thuật này trong một vài tháng, và sau đó cuộc tấn công phải chạy tiếp trong nhiều tháng nữa mới thành công", Foster nói với trang Wired.
"Nhưng nếu Mike có thể phân tích mật mã hiệu quả hiệu quả hơn, chúng tôi có thể dành nhiều thời gian hơn cho việc phát triển cuộc tấn công để nó chỉ cần chạy trong một tuần. Điều đó tiết kiệm cho The Guy một số tiền đáng kể cho chi phí hạ tầng. Mười năm trước, sẽ chẳng có cách nào khác ngoài việc tự xây dựng hạ tầng phần cứng dành riêng cho cuộc tấn công này, và chi phí của nó có thể vượt quá cả giá trị số bitcoin trên."
Bốn tháng để phân tích mật mã
Tuy vậy, vẫn chưa thể biết chắc liệu giải mật mã bằng GPU có thực sự hiệu quả hay không. Sau nhiều tháng tìm hiểu vấn đề, Stay cuối cùng cũng sẵn sàng thử nghiệm dự án của mình.
Thật ra The Guy vẫn chưa đưa toàn bộ file zip của mình cho Stay và Foster – có lẽ khó có thể tin tưởng trao toàn bộ gia sản của mình vào tay những người lạ, các chuyên gia bảo mật có thể bẻ khóa và lấy trộm nó. Thay vào đó, anh ta chỉ đưa cho các chuyên gia phần "header" của file mã hóa hay các thông tin về file, mà không có nội dung thực sự bên trong nó.
Dù sao đi nữa, đến đầu tháng Hai, 4 tháng sau khi nhận được tin nhắn đầu tiên trên LinkedIn, Stay và Foster bắt đầu thực hiện cuộc tấn công của mình.
"Nó chạy trong vòng 10 ngày và thất bại – thật đau lòng" Stay nói với The Guy.
Điều này làm Stay băn khoăn. "Chúng tôi đã gặp nhiều lỗi trước đó, nhưng các bài test tôi chạy trên laptop của mình đều hoạt động một cách hoàn hảo." Anh cho biết. "Nếu đó là vì một lỗi nào đó, chắc hẳn nó phải rất khó nhận ra và tôi sợ rằng chúng tôi sẽ mất một thời gian dài để tìm ra nó." Cùng lúc với thất bại đó, giá bitcoin bắt đầu sụt giảm chóng mặt và giá trị của file zip đó cũng giảm theo. The Guy bắt đầu trở nên sốt ruột.
Trong khi đó Stay vẫn tiếp tục suy nghĩ về lỗi dẫn đến thất bại vừa qua. Anh nhanh chóng tìm ra một ý tưởng mới về "chữ số hạt giống" – hay điểm khởi đầu để bộ tạo số ngẫu nhiên sử dụng trong sơ đồ mật mã. The Guy cũng rà soát lại dữ liệu thử nghiệm và nhận ra một lỗi xảy ra nếu GPU không xử lý đúng mật khẩu ngay trong lần thử đầu tiên. Stay và Foster sửa lại lỗi này và mọi người sẵn sàng thử lại một lần nữa.
"Xong! Đã lấy được chỗ bitcoin đó", Foster nói. Sau hai tuần thực hiện cuộc tấn công, việc giải mã đã thành công khi đưa ra được 3 khóa mã hóa của file zip này, giúp The Guy mở lại được kho báu của mình. Thời gian này đã được rút ngắn đáng kể so với con số nhiều tháng dự kiến ban đầu. "Thật nhẹ nhõm." Stay bổ sung thêm.
Stay đã mã nguồn mở phần mềm phá mã file zip của mình để cộng đồng tham khảo
Cuối cùng chi phí hạ tầng cho cuộc tấn công đó chỉ khoảng 6.000 USD cho đến 7.000 USD thay vì gần 100.000 USD như họ dự tính ban đầu. Vì vậy, The Guy chỉ phải trả một phần tư mức giá ban đầu mà Stay đưa ra.
Cho dù đến khi đó giá Bitcoin đã không còn ở mức đỉnh như trước, nhưng Foster cho rằng The Guy vẫn gặp may với dự án vừa rồi. "Các dự án như vậy thực sự là điều hiếm gặp. Chỉ cần một vài chi tiết trong trường hợp của anh ta khác đi, chỉ cần anh ta dùng một phiên bản zip mới hơn một chút, điều này sẽ không thể làm được. Nhưng trong trường hợp này, đây là điều chúng tôi có thể làm được."
Kể từ khi Stay và Foster công bố dự án của mình vào tháng Tư vừa qua, một số người đã tìm đến anh để nhờ anh lấy lại mật khẩu cho ví bitcoin của họ. Thật không may, đây lại là điều mà anh không thể giúp được. Tấn công phá vỡ mật mã trên file zip hoàn toàn không giống như phá mật mã ví tiền mã hóa, vốn được trang bị một lớp mã hóa hiện đại và vững chắc hơn nhiều.
Tham khảo Wired