Công cụ Tính Thời Gian Bẻ Khóa Mật Khẩu là gì?
Công cụ này ước tính khoảng thời gian mà kẻ tấn công cần để bẻ khóa mật khẩu của bạn bằng cách thử mọi tổ hợp có thể (tấn công brute-force). Kết quả dựa trên độ dài mật khẩu, kích thước bộ ký tự được sử dụng và số lần đoán mỗi giây mà kẻ tấn công thực hiện được. Đây chỉ là con số ước lượng theo mô hình lý thuyết — trên thực tế, các cuộc tấn công thường dùng từ điển và mẫu quen thuộc để bẻ khóa những mật khẩu yếu nhanh hơn rất nhiều.
Cách sử dụng
Nhập độ dài mật khẩu, tích chọn tất cả loại ký tự mà mật khẩu của bạn dùng (chữ thường, chữ hoa, chữ số, ký tự đặc biệt) và thiết lập tốc độ đoán của kẻ tấn công. Một dàn GPU hiện đại có thể thực hiện 10 tỷ (10.000.000.000) lần đoán mỗi giây với các hàm băm nhanh, trong khi một hàm băm chậm như bcrypt có thể giới hạn kẻ tấn công chỉ còn vài nghìn lần mỗi giây.
Giải thích công thức
Tổng số tổ hợp bằng kích thước bộ ký tự C lũy thừa với độ dài L: \(C^{L}\). Chia cho tốc độ đoán g ta được thời gian trong trường hợp xấu nhất. Vì trung bình mật khẩu đúng sẽ tìm ra sau khi quét được một nửa không gian khóa, ta chia thêm cho hai:
$$t = \frac{C^{L}}{2g}$$
Độ ngẫu nhiên (entropy) tính bằng bit là \(L \times \log_{2} C\) — mỗi bit tăng thêm sẽ nhân đôi công sức dò tìm.
Ví dụ minh họa
Một mật khẩu 8 ký tự chỉ gồm chữ thường dùng bộ 26 ký tự, nên có \(26^{8} = 208\,827\,064\,576\) tổ hợp. Trước một kẻ tấn công đoán 1 tỷ lần/giây, thời gian bẻ khóa trung bình là $$\frac{208\,827\,064\,576}{2 \times 1\,000\,000\,000} \approx 104{,}4 \text{ giây}.$$ Khi thêm chữ hoa, chữ số và ký tự đặc biệt, bộ ký tự tăng lên 94 và thời gian bẻ khóa tăng vọt.
Kích Thước Bộ Ký Tự
Cơ số \(C\) của công thức là số lượng ký tự riêng biệt mà kẻ tấn công phải xem xét cho mỗi vị trí. Đó là tổng kích thước của mọi lớp ký tự mà mật khẩu của bạn có thể được lấy từ. Các kết hợp phổ biến:
| Bộ ký tự | Ký hiệu | Kích thước |
|---|---|---|
| Chữ cái thường (a–z) | [a-z] | 26 |
| Chữ cái in hoa (A–Z) | [A-Z] | 26 |
| Chữ số (0–9) | [0-9] | 10 |
| Ký hiệu ASCII phổ biến | [sym] | 32 |
| Chữ cái thường + chữ số | [a-z0-9] | 36 |
| Chữ cái thường + in hoa | [a-zA-Z] | 52 |
| Chữ cái + chữ số (chữ và số) | [a-zA-Z0-9] | 62 |
| Cả bốn lớp | [a-zA-Z0-9 sym] | 94 |
32 "ký hiệu phổ biến" phản ánh bộ dấu chấm câu ASCII có thể in được là !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ cộng với dấu cách, cùng với 62 ký tự chữ và số tạo thành bộ ASCII có thể in được chuẩn 94 ký tự.
Diễn Giải Thời Gian Crack Của Bạn
Thời gian crack và entropy mật khẩu đo lường điều tương tự từ hai góc độ. Entropy tính bằng bit cho mật khẩu ngẫu nhiên là \(H = L\log_2 C\); mỗi bit được thêm vào sẽ tăng gấp đôi số lần đoán cần thiết, và do đó tăng gấp đôi thời gian crack trung bình ở tốc độ đoán cố định. Đọc sơ bộ về số bit:
- Dưới 40 bit — yếu. Phạm vi này (ví dụ: mật khẩu 8 ký tự chỉ chữ thường ở \(\approx 37.6\) bit) có thể bị phá vỡ trong vài giây đến vài ngày khi đối mặt với phần cứng ngoại tuyến nhanh và không nên bảo vệ bất kỳ thứ gì nhạy cảm.
- ~60–70 bit — vừa phải. Chống lại các cuộc tấn công ngoại tuyến bình thường nhưng có thể bị vượt qua bởi các cụm GPU có tài nguyên tốt theo thời gian.
- 80 bit trở lên — mạnh. Được coi là không khả thi để bẻ khóa bằng cách thử tất cả với công nghệ hiện tại và có thể dự đoán được; mật khẩu 12 ký tự gồm tất cả các lớp đạt khoảng 78 bit và mật khẩu 16 ký tự khoảng 105 bit.
Hướng dẫn nhận dạng kỹ thuật số của NIST (SP 800-63B) nhấn mạnh độ dài hơn các quy tắc phức tạp bắt buộc, khuyến nghị cho phép các cụm từ đi dài, và khuyên bạn nên sàng lọc mật khẩu chống lại các danh sách bị xâm phạm và từ điển thay vì bắt buộc các lớp ký tự hỗn hợp — chính vì công thức thử tất cả dưới đây giả định mật khẩu thực sự ngẫu nhiên.
Cảnh báo quan trọng: những con số này là giới hạn trên. Công thức giả định mỗi ký tự được chọn đồng nhất ngẫu nhiên trên toàn bộ bộ. Những kẻ tấn công thực tế không bắt đầu từ "aaaaaaaa" — họ chạy từ điển, danh sách mật khẩu bị rò rỉ, mẫu bàn phím, tên, ngày tháng và các thay thế có thể dự đoán trước tiên. Mật khẩu như P@ssw0rd123 có bộ ký tự danh định lớn và độ dài nhưng bị phá vỡ gần như ngay lập tức vì nó xuất hiện trong danh sách từ. Coi thời gian được tính toán là có ý nghĩa chỉ khi mật khẩu được tạo ra bằng quy trình ngẫu nhiên, không phải do con người chọn.
Đây là thông tin bảo mật chung, không phải là đảm bảo an toàn cho bất kỳ tài khoản cụ thể nào; kết hợp mật khẩu duy nhất mạnh với xác thực đa yếu tố.
Câu hỏi thường gặp
Tại sao phải chia cho hai? Tấn công brute-force tìm ra mật khẩu ở đâu đó trong không gian khóa; trung bình là ở khoảng giữa, nên thời gian kỳ vọng bằng một nửa thời gian tối đa.
Đây có phải là con số đảm bảo không? Không. Công cụ giả định mật khẩu hoàn toàn ngẫu nhiên. Mật khẩu dùng lại, có trong từ điển hoặc theo mẫu quen thuộc sẽ bị bẻ khóa nhanh hơn nhiều bất kể độ dài.
Nên chọn kích thước bộ ký tự nào? Chỉ tích chọn những loại ký tự thực sự xuất hiện trong mật khẩu. Ở đây, ký tự đặc biệt được giả định là tập hợp 32 dấu câu thông dụng.