Tất cả bài viết

Trình tạo mật khẩu: điều gì thực sự làm cho mật khẩu mạnh

Người dùng gõ tiếng Việt bằng kiểu gõ Telex hay VNI quen thuộc với việc gõ nhiều phím để tạo ra một dấu thanh hay dấu mũ (ví dụ "aa" cho "â", "as" cho "á"). Khi bộ gõ tiếng Việt vô tình bật trong lúc nhập mật khẩu, những tổ hợp phím đó có thể biến một mật khẩu thuần ASCII thành một chuỗi ký tự có dấu hoàn toàn khác, khiến đăng nhập thất bại dù mật khẩu gõ "đúng" về mặt phím bấm.

Entropy của mật khẩu là gì

Entropy được đo bằng bit và phụ thuộc vào kích thước bảng ký tự và độ dài mật khẩu: entropy = log2(kích_thước_bảng_ký_tự ^ độ_dài). Một mật khẩu dài hơn với bảng ký tự nhỏ hơn (ví dụ chỉ chữ thường) có thể có entropy cao hơn một mật khẩu ngắn với bảng ký tự phức tạp.

Vì sao mật khẩu không nên chứa ký tự có dấu tiếng Việt

Ngay cả khi hệ thống chấp nhận Unicode đầy đủ, một mật khẩu chứa "Việt Nam123!" vẫn tiềm ẩn rủi ro thực tế: chuẩn hóa Unicode (NFC so với NFD) có thể biểu diễn cùng một ký tự có dấu bằng hai chuỗi byte khác nhau, khiến cùng một mật khẩu "trông giống hệt nhau" nhưng so sánh byte-so-byte lại thất bại giữa hai thiết bị hoặc trình duyệt khác nhau. Vì vậy trình tạo mật khẩu luôn giới hạn ở bảng chữ cái ASCII cơ bản.

Vì sao các trình tạo vẫn trộn các loại ký tự

Nhiều hệ thống yêu cầu bắt buộc có số, chữ hoa và ký hiệu đặc biệt — điều này không phải lúc nào cũng làm tăng entropy thực sự, nhưng nó bảo vệ khỏi các cuộc tấn công từ điển đơn giản nhất và các chính sách lỗi thời vẫn còn phổ biến. Một trình tạo mật khẩu tốt cân bằng độ dài và sự đa dạng của bảng ký tự theo mức entropy mong muốn.

Vì sao cần điều này

  • Tạo mật khẩu mạnh cho tài khoản mới mà không cần dựa vào trí nhớ con người.
  • Hiểu vì sao yêu cầu "ít nhất một số và một ký hiệu" không phải là yếu tố bảo mật quan trọng nhất.
  • Ước tính khả năng chống chịu thực sự của các mật khẩu hiện có trước tấn công brute force.

Cụm mật khẩu so với ký tự ngẫu nhiên

Một cụm mật khẩu gồm vài từ điển ngẫu nhiên (ví dụ "correct-horse-battery-staple") có thể có entropy cao hơn một mật khẩu ngắn chứa ký tự đặc biệt, đồng thời dễ nhớ hơn nhiều đối với con người. Đối với mật khẩu được lưu trong trình quản lý mật khẩu và không bao giờ được nhập thủ công, điều này không quan trọng — ký tự ngẫu nhiên cho entropy cao hơn trên mỗi ký tự. Nhưng đối với "mật khẩu chính" của chính trình quản lý mật khẩu, thứ phải ghi nhớ, cụm mật khẩu thường là lựa chọn thực tế hơn.

Dùng thử công cụ