Cách sử dụng
- Đặt Độ dài bằng thanh trượt hoặc ô nhập số. Từ 16 ký tự trở lên là mức mặc định tốt cho mật khẩu được lưu trong trình quản lý mật khẩu.
- Chọn các loại ký tự: Chữ hoa, Chữ thường, Chữ số và Ký tự đặc biệt. Tùy chọn "Dùng đủ mọi loại đã chọn" được bật sẵn và đảm bảo mỗi mật khẩu có ít nhất một ký tự thuộc từng loại.
- Nếu cần, hãy bật Loại trừ ký tự trông giống nhau (như l, 1 và O) hoặc Loại trừ ký tự đặc biệt dễ gây nhầm lẫn, hay nhập vào ô Loại trừ ký tự những ký tự mà một trang web không chấp nhận.
- Nhấp Tạo, xem nhãn Độ mạnh và entropy, rồi sao chép một mật khẩu hoặc nhấp Sao chép tất cả.
Điều gì làm nên một mật khẩu mạnh
Với mật khẩu được tạo ngẫu nhiên, độ mạnh được đo bằng entropy: độ dài × log2(kích thước bộ ký tự) bit, trong đó bộ ký tự là tập hợp các ký tự dùng để tạo mật khẩu. Mỗi bit tăng thêm làm số lần đoán cần thiết tăng gấp đôi. Entropy tăng tỷ lệ thuận với độ dài, còn bộ ký tự lớn hơn chỉ thêm được chút ít cho mỗi ký tự, nên độ dài có tác dụng lớn hơn: mật khẩu 16 ký tự chỉ gồm chữ thường có số khả năng nhiều hơn khoảng 11 triệu lần so với mật khẩu 8 ký tự kết hợp cả bốn loại.
| Độ dài | Ký tự | Bộ ký tự | Entropy |
|---|---|---|---|
| 4 | Chữ số (mã PIN) | 10 | 13,3 bit |
| 8 | Chữ thường | 26 | 37,6 bit |
| 8 | Cả bốn loại | 89 | 51,8 bit |
| 12 | Chữ cái và chữ số | 62 | 71,5 bit |
| 16 | Chữ thường | 26 | 75,2 bit |
| 16 | Cả bốn loại | 89 | 103,6 bit |
| 20 | Cả bốn loại | 89 | 129,5 bit |
Ở đây, cả bốn loại cho bộ 89 ký tự: 26 + 26 + 10 + 27 ký tự đặc biệt. Công cụ hiển thị entropy được làm tròn xuống thành số bit nguyên. Các con số này chỉ đúng với mật khẩu ngẫu nhiên; mật khẩu do con người tự nghĩ ra có entropy thấp hơn nhiều so với những gì độ dài của nó gợi ý.
NIST SP 800-63B khuyến nghị gì
NIST SP 800-63B, hướng dẫn của chính phủ liên bang Hoa Kỳ về xác thực số, đặt ra yêu cầu cho các dịch vụ kiểm tra mật khẩu. Phiên bản hiện hành, SP 800-63B-4, quy định rằng các dịch vụ này:
- phải yêu cầu tối thiểu 15 ký tự khi mật khẩu là yếu tố xác thực duy nhất, hoặc 8 ký tự khi dùng kèm một yếu tố khác, và nên cho phép ít nhất 64 ký tự;
- không được áp đặt quy tắc về thành phần mật khẩu như "một chữ hoa, một chữ số và một ký tự đặc biệt", cũng không được bắt đổi mật khẩu định kỳ, nhưng phải buộc đổi khi có bằng chứng mật khẩu đã bị lộ;
- phải đối chiếu mật khẩu mới với danh sách chặn gồm các mật khẩu phổ biến, dễ đoán hoặc đã bị lộ;
- nên chấp nhận mọi ký tự ASCII in được và dấu cách, đồng thời cho phép dán để trình quản lý mật khẩu hoạt động được.
Với người dùng, bài học cũng vậy: độ dài và tính ngẫu nhiên mới là điều quan trọng; những phép thay thế dễ đoán như P@ssw0rd1 thì không.
Trình quản lý mật khẩu và cụm mật khẩu
Một mật khẩu dùng lại thường nguy hiểm hơn một mật khẩu ngắn: sau một vụ rò rỉ dữ liệu, kẻ tấn công đem các cặp email và mật khẩu bị lộ đi thử trên những trang web khác (credential stuffing). Hãy dùng một mật khẩu ngẫu nhiên riêng cho mỗi tài khoản và để trình quản lý mật khẩu ghi nhớ chúng; khi đó mật khẩu 20 ký tự cũng không tốn công hơn mật khẩu 8 ký tự.
Với số ít mật khẩu bạn phải gõ từ trí nhớ, như mật khẩu chính của trình quản lý mật khẩu, cụm mật khẩu (passphrase) dễ dùng hơn: các từ được chọn ngẫu nhiên, ví dụ bằng xúc xắc và danh sách từ dài của EFF. Mỗi từ trong danh sách 7.776 mục đóng góp khoảng 12,9 bit, nên sáu từ cho khoảng 77,5 bit. Công cụ này tạo mật khẩu từ các ký tự, không tạo cụm mật khẩu; với khóa API và các khóa bí mật khác dành cho máy, hãy dùng công cụ tạo Base64 ngẫu nhiên.
Cách công cụ tạo mật khẩu này hoạt động
Mật khẩu được tạo trên thiết bị của bạn bằng crypto.getRandomValues(), bộ sinh số ngẫu nhiên an toàn về mặt mật mã của trình duyệt, và không bao giờ được gửi đi hay lưu trữ. Phép chia lấy dư (modulo) đơn thuần sẽ khiến một số ký tự có khả năng xuất hiện cao hơn một chút, vì vậy công cụ dùng phương pháp lấy mẫu loại bỏ (rejection sampling): các giá trị ngẫu nhiên 32 bit lớn hơn hoặc bằng bội số lớn nhất của kích thước bộ ký tự sẽ bị loại và được sinh lại, nhờ đó mọi ký tự có xác suất xuất hiện chính xác như nhau.
Loại trừ ký tự trông giống nhau bỏ đi i l 1 L o 0 O, hữu ích khi mật khẩu được đọc to hoặc gõ lại từ giấy, như với mật khẩu Wi-Fi. Loại trừ ký tự đặc biệt dễ gây nhầm lẫn bỏ đi các loại dấu ngoặc, dấu gạch chéo, dấu ngã và , ; : ., vốn bị một số biểu mẫu, shell và tệp cấu hình xử lý sai, chỉ giữ lại ! @ # $ % ^ & * - _ = + ?. Cả hai tùy chọn đều thu nhỏ bộ ký tự, vì vậy hãy tăng độ dài thêm một hai ký tự để bù lại.
Câu hỏi thường gặp
Mật khẩu nên dài bao nhiêu?
Ít nhất 15 ký tự cho tài khoản chỉ được bảo vệ bằng mật khẩu, đó là mức tối thiểu NIST SP 800-63B-4 đặt ra cho mật khẩu dùng làm yếu tố xác thực duy nhất. Khi đã có trình quản lý mật khẩu, 16 đến 24 ký tự ngẫu nhiên không khiến bạn tốn thêm công sức gì. Với mật khẩu phải gõ thường xuyên, hãy cân nhắc một cụm mật khẩu gồm năm hoặc sáu từ ngẫu nhiên.
Dùng mật khẩu được tạo trên một trang web có an toàn không?
crypto.getRandomValues(), và mật khẩu không bị truyền đi, ghi nhật ký hay lưu lại. Hãy sao chép mật khẩu bạn cần thẳng vào trình quản lý mật khẩu.Entropy tính theo bit có nghĩa là gì?
Đó là logarit cơ số 2 của số mật khẩu mà thiết lập của bạn có thể tạo ra. 80 bit nghĩa là có 2 mũ 80 mật khẩu khả dĩ, và mỗi bit tăng thêm làm công sức dò đoán tăng gấp đôi. Con số này mô tả cách mật khẩu được tạo ra, nên chỉ áp dụng cho mật khẩu ngẫu nhiên.
Có nên đổi mật khẩu thường xuyên không?
Không cần theo lịch cố định. NIST SP 800-63B-4 yêu cầu các dịch vụ không bắt người dùng đổi mật khẩu định kỳ, vì khi đó người ta thường chỉ biến tấu mật khẩu cũ theo những cách dễ đoán. Hãy đổi mật khẩu khi dịch vụ thông báo bị rò rỉ dữ liệu, khi mật khẩu xuất hiện trong một vụ lộ lọt, hoặc khi bạn nghi ngờ người khác đã biết nó.
Bắt buộc có đủ mọi loại ký tự có làm mật khẩu mạnh hơn không?
Không. Tùy chọn này, vốn được bật sẵn, chỉ nhằm đảm bảo các trang web có quy tắc về thành phần mật khẩu chấp nhận mật khẩu đó. Công cụ loại bỏ và tạo lại những mật khẩu thiếu một loại đã chọn; việc này loại trừ một số tổ hợp và làm entropy thực tế giảm nhẹ, rõ nhất ở mật khẩu ngắn, nên con số hiển thị là giới hạn trên. Tăng độ dài là cách tốt hơn để mật khẩu mạnh hơn.