Máy tính đếm thời gian cần thiết để tìm lại mật khẩu

Bạn có muốn biết cần phải thử mã khóa bao lâu không? Dưới đây sẽ giải thích rõ nguyên lý của ba phương pháp: “phá mã một cách bạo lực”, “tấn công từ cơ sở dữ liệu”, và “tấn công bằng mật mã”. Sau đó, sẽ giải thích tại sao các định dạng tệp tin khác nhau lại có độ khó khác nhau nhiều như vậy, cũng như sự chênh lệch về khả năng xử lý của card đồ họa và CPU.

Tính toán: Mất bao lâu để crack bạo lực thuần túy

Kéo đến chiều dài bạn muốn đo. Không sao nếu bạn không nhớ được bao nhiêu người cụ thể, chọn dài hơn chỉ để xem kịch bản xấu nhất.
Các con số trong logo là bao nhiêu lựa chọn cho mỗi chữ số. Mỗi khi phạm vi được mở rộng, tổng số tổ hợp sẽ tăng gấp đôi.
Kết quả ước tính
Tổng số mật khẩu cần thử
—

Tự tải phần mềm vs giao cho chúng tôi

Mục so sánh Tự tải phần mềm crack giao cho chúng tôi
Sức mạnh tính toán Một máy tính gia đình, trong hầu hết các trường hợp, chỉ có card đồ họa tích hợp Nhiều máy giải mã GPU chạy cùng một tác vụ cùng một lúc
Từ điển mật khẩu Tôi đã tìm thấy hàng trăm nghìn mục ngẫu nhiên trên Internet, trong đó có rất nhiều lặp lại và không hợp lệ Từ điển được tích lũy và làm sạch trong nhiều năm được phân loại theo thói quen sử dụng
Chiến lược crack Tôi sẽ chỉ thử từng cái một từ đầu đến cuối Đầu tiên là từ điển, sau đó là mặt nạ, sau đó là toàn bộ, các chiến lược đa cấp được thúc đẩy từng lớp một
Bạn có thể tiếp tục chạy được không Máy tính phải luôn bật, tắt hoặc khởi động lại sẽ lãng phí mọi nỗ lực trước đó Chạy 7×24 trên máy chủ, bạn sẽ không bị ảnh hưởng ngay cả khi tắt máy tính
Khả năng cởi mở Tất cả phụ thuộc vào may mắn, mật khẩu dài hơn một chút về cơ bản sẽ không có cơ hội Trước tiên ghi đè các tổ hợp có khả năng cao nhất, mật khẩu ngắn thường có kết quả trong vòng vài chục phút
Chi phí bắt đầu Không ai quan tâm đến việc cài đặt trình điều khiển, cấu hình dòng lệnh và báo lỗi Chỉ cần tải file lên, kết quả sẽ được thông báo cho bạn

Về máy tính này

  1. Tiêu chuẩn tốc độ dựa trên dữ liệu thử nghiệm công khai của một card đồ họa RTX 3080 duy nhất và được chuyển đổi một cách thận trọng. Kết quả sẽ khác nhau giữa các mẫu máy khác nhau.
  2. Thời gian là "trung bình phải thử một nửa tổ hợp" ước tính, may mắn tốt sẽ đánh sớm hơn, may mắn không tốt sẽ đi xong một vòng.
  3. Các con số ở đây được ước tính bằng bạo lực thuần túy. Việc xử lý thực tế sẽ sử dụng từ điển và mặt nạ trước. Các mật khẩu yếu thông thường thường có thể xuất hiện trong vài phút và bạn không cần phải đợi quá lâu.
  4. Cùng một tệp, các phiên bản được mã hóa khác nhau rất khác nhau: một tài liệu Word có thể chênh lệch hàng chục nghìn lần giữa phiên bản 2003 và phiên bản 2013.

Tại sao việc tìm lại mật khẩu lại khó khăn đến vậy? Hãy cùng tìm hiểu nguyên lý và năng lực tính toán trong bài viết này

Bản chất của việc tìm lại mật khẩu là việc liên tục thử nghiệm qua các tổ hợp có thể xảy ra, cho đến khi tìm được tổ hợp chính xác. Càng thử nhanh, số lượng tổ hợp càng ít, thì khả năng thành công càng cao; ngược lại, càng có nhiều tổ hợp, và mỗi lần thử có chi phí cao hơn, thì hy vọng tìm lại mật khẩu càng mong manh. Chiếc máy tính này giúp đánh giá cụ thể “bao nhiêu lần cần thử” và “mất bao lâu để thử mỗi lần”, giúp bạn có cái nhìn trực quan về mức độ an toàn của tài liệu của mình, cũng như hiểu tại sao một số tài liệu có thể được mở trong vài phút, trong khi một số tài liệu thì không thể mở được ngay cả khi máy tính bị hỏng.

I. Phương pháp phá mật: Kiểm tra tất cả các tổ hợp một cách thủ công

Phương pháp phá khóa bằng lực lượng con người (Brute Force) không cần dựa vào bất kỳ kiến thức nào trước đó, mà chỉ cần thử tất cả các tổ hợp có thể với bộ ký tự và độ dài của chúng. Ví dụ, một mật khẩu 8 chữ số thuần túy chỉ có một tỷ tổ hợp khác nhau, trong khi mật khẩu gồm chữ cái in hoa/viết thường, số và ký hiệu thì có hơn 6×10¹⁴ tổ hợp khác nhau. Phương pháp này sẽ thử từ aaaaaaaa cho đến tổ hợp cuối cùng. Điểm đặc biệt của phương pháp này là “dễ nhất nhưng cũng chính xác nhất” – miễn là có đủ thời gian, về mặt lý thuyết thì chắc chắn có thể tìm ra mật khẩu đó. Tuy nhiên, chi phí là số lượng tổ hợp tăng lên theo cấp số nhân với độ dài và bộ ký tự. Một mật khẩu dài một chút thì có lẽ cần nhiều thế hệ mới có thể thử hết được.

II. Tấn công bằng bảng chữ cái: Hãy thử sử dụng mật khẩu có vẻ giống ngôn ngữ con người nhất trước

Hầu hết mọi người không sử dụng các ký tự ngẫu nhiên làm mật khẩu, mà thường sử dụng ngày sinh, tên người dùng, chuỗi ký tự trên bàn phím (qwerty) hoặc các từ ngữ phổ biến. Các cuộc tấn công dữ liệu sẽ sắp xếp các mật khẩu phổ biến này thành bảng từ vựng, và cố gắng thử từng mật khẩu một, thường chỉ cần vài phút là có thể tìm ra mật khẩu yếu. Phương pháp này hiệu quả hơn nhiều so với việc sử dụng phương pháp tấn công lực lượng một cách thuần túy, nhưng điều kiện tiên quyết là mật khẩu thực sự nằm trong bảng từ vựng; nếu gặp phải mật khẩu ngẫu nhiên mạnh thì sẽ không thể tìm ra được mật khẩu nào cả. Chúng tôi đã tích lũy và xử lý các bảng từ vựng mật khẩu trong nhiều năm, chính để nâng cao tỷ lệ thành công của phương pháp này.

III. Tấn công bằng mã ẩn: Kết hợp “thông tin đã biết” vào phương pháp phá hủy mật khẩu

Các cuộc tấn công sử dụng “mã khóa” là phiên bản thông minh của việc phá mật khẩu bằng cách dùng sức mạnh để tìm ra câu trả lời: Nếu bạn nhớ được các điều kiện như “mật khẩu có 8 ký tự, bắt đầu bằng chữ in hoa, và cuối cùng là 2024”, bạn có thể cung cấp những điều kiện này cho chương trình phá mật khẩu, để nó chỉ tạo ra những bộ mã đáp ứng các điều kiện đó. Ban đầu có tổng cộng 6×10¹⁴ bộ mã khả thi, nhưng sau khi áp dụng các điều kiện này, số lượng bộ mã khả thi có thể giảm xuống chỉ còn vài trăm triệu bộ, và thời gian cần thiết để tìm ra mật khẩu cũng giảm từ “tuổi thọ của vũ trụ” xuống chỉ còn “vài giờ”. Đó cũng chính là lý do tại sao khi gửi yêu cầu tìm mật khẩu, việc cung cấp thêm một số thông tin mà bạn nhớ được sẽ giúp tăng đáng kể tỷ lệ thành công.

IV. Tại sao các định dạng khác nhau lại có sự chênh lệch về độ khó lên đến hàng vạn lần? – Lý do nằm ở số lần lặp của thuật toán hash

Tệp tin không so sánh trực tiếp với mật khẩu, mà là so sánh với “giá trị hash” được tạo ra từ mật khẩu. Mỗi lần thử một mật khẩu, chương trình sẽ thực hiện phép tính hash trước. Số lần lặp lại càng nhiều thì tốc độ càng chậm. Định dạng cũ hầu như không có biện pháp bảo vệ nào: Office 97 sử dụng MD5/RC4, card đồ họa có thể thử hàng triệu lần mỗi giây; trong khi Office 2013 đã áp dụng phương pháp PBKDF2 với khoảng 100.000 lần lặp lại mỗi giây, chỉ có thể thử khoảng 1.000 lần mỗi giây, tức là chậm gấp 10.000 lần. RC4 trong PDF rất yếu, AES thì hơi mạnh hơn; RAR5 có khoảng 30.000 lần lặp lại, chậm hơn RAR3 hàng chục lần; 7Z có tới hơn 500.000 lần lặp lại, là một trong những định dạng khó nhất. Một mật khẩu giống nhau, trên máy của người khác có thể được giải mã trong vài phút, còn trên máy của bạn thì cần vài ngày mới có kết quả, lý do chính nằm ở đây.

5. Sự chênh lệch về khả năng tính toán giữa card đồ họa (GPU) và CPU

Phép tính hash là một ví dụ điển hình của loại phép tính “lặp lại nhiều lần, nhưng mỗi lần đều độc lập”, và hoàn toàn phù hợp với cấu trúc song song của card đồ họa. Một card đồ họa game phổ thông có hàng nghìn bộ vi xử lý, có thể thực hiện tính toán hàng triệu giá trị hash cùng lúc, với tốc độ cao gấp hàng chục đến hàng trăm lần so với CPU. Các máy tính thông thường hoặc chỉ có card đồ họa tích hợp, hoặc phải để CPU đảm nhận toàn bộ công việc, vì vậy tốc độ của chúng rất chậm. Chúng tôi sử dụng nhiều máy chủ GPU để thực hiện cùng một nhiệm vụ song song, kết hợp với các chiến lược sử dụng từ điển và mã che khuất để thu hẹp phạm vi xử lý. Đây chính là sự khác biệt giữa việc tự mình xử lý trong vài tháng và việc giao nhiệm vụ cho chúng tôi để thu được kết quả trong vài phút.

Vì vậy, mỗi khi độ dài mật khẩu tăng thêm một chữ, hoặc tập hợp ký tự được mở rộng thêm một cấp độ, việc tìm lại mật khẩu sẽ trở nên khó khăn hơn nhiều. Ngược lại, nếu sử dụng định dạng tệp tin nhanh hơn hoặc ghi nhớ nhiều thông tin liên quan đến mật khẩu hơn, thì thời gian tìm kiếm sẽ được rút ngắn đáng kể. Chiếc máy tính trên đã tính toán các yếu tố này một cách chi tiết – chỉ cần nhập loại tệp tin và phạm vi mật khẩu của mình, bạn sẽ biết được thời gian cần thiết để hệ thống máy tính của mình và hệ thống của chúng tôi xử lý việc tìm kiếm mật khẩu. Nếu kết quả không như mong muốn, bạn có thể trực tiếp gửi tệp tin cho chúng tôi để chúng tôi thử xử lý.

Câu hỏi thường gặp

Thời gian cần thiết để phá vỡ mật khẩu là bao lâu?

Điều này phụ thuộc vào độ dài mật khẩu, tập hợp ký tự và phương pháp mã hóa tệp tin. Một mật khẩu gồm 8 chữ số có khoảng một triệu khả năng kết hợp khác nhau; máy tính thông thường có thể thử hết các khả năng này trong vài giờ đến vài ngày. Còn một mật khẩu gồm 12 chữ số, bao gồm cả chữ cái viết hoa, chữ cái viết thường, số và ký hiệu, thì số khả năng kết hợp sẽ vượt quá 10^24, và có thể cần hàng nghìn năm để tìm ra mật khẩu phù hợp. Bạn có thể sử dụng máy tính trực tuyến ở đây để tính toán ngay lập tức.

Sự khác biệt giữa việc phá vỡ bằng cách sử dụng lực lượng, các cuộc tấn công dựa trên từ điển và các cuộc tấn công dựa trên mã hóa là gì?

Phương pháp phá giải bằng bạo lực không cần dựa vào kiến thức trước đó, mà chỉ cần liệt kê tất cả các tổ hợp có thể xảy ra. Phương pháp tấn công từ điển thì ưu tiên sử dụng những mật khẩu yếu thường gặp, giúp tiết kiệm thời gian. Còn phương pháp tấn công bằng mã che giấu thì kết hợp với những thông tin đã biết (như số lượng bit, chữ cái đầu tiên trong mật khẩu), chỉ tạo ra những tổ hợp đáp ứng điều kiện cần thiết, từ đó thu hẹp phạm vi tìm kiếm một cách hiệu quả.

Tại sao một số tệp có thể được mở trong vài phút, trong khi một số tệp lại cần thời gian dài để được mở?

Vì số lần lặp lại mã hóa khác nhau giữa các định dạng khác nhau rất lớn. Office 97 sử dụng phương pháp mã hóa MD5/RC4 có độ mạnh thấp, và card đồ họa có thể thực hiện hàng triệu lần lặp lại mỗi giây; còn từ phiên bản Office 2013 trở đi, số lần lặp lại chỉ khoảng một trăm nghìn lần mỗi giây, tức là chậm hơn khoảng mười nghìn lần so với Office 97; còn định dạng 7Z thì có số lần lặp lại trên 500.000 lần, đặc biệt khó xử lý so với các định dạng thông thường khác.

Đừng cầm máy tính của bạn nữa

Đưa tài liệu cho chúng tôi và chạy lô kết hợp có khả năng cao nhất trước, điều này có ý nghĩa hơn là tự mình chạy ở nhà trong vài ngày.

Hỗ trợ các định dạng mã hóa phổ biến như PDF, Office, ZIP, RAR, 7Z

Định dạng tệp này khó bẻ khóa như thế nào

—
Tốc độ của các định dạng khác nhau có thể khác nhau hàng chục nghìn lần: định dạng cũ hầu như không được bảo vệ, trong khi định dạng mới cố tình thực hiện việc xác minh rất chậm để trì hoãn việc bẻ khóa. Đây là lý do tại sao cùng một mật khẩu có thể được giải mã từ người khác trong hàng chục phút và bạn không có động tĩnh ngay cả khi tự chạy trong vài ngày.