Mật khẩu mạnh và UUID
Giá trị ngẫu nhiên phục vụ hai mục đích khác nhau: mật khẩu phải khó đoán, còn UUID phải là duy nhất. Hướng dẫn này giải thích điều gì làm mật khẩu mạnh, các con số entropy có ý nghĩa gì và UUID v4 khác v7 như thế nào.
Độ dài và tính ngẫu nhiên
Mật khẩu mạnh là mật khẩu mà kẻ tấn công cần quá nhiều lần đoán mới tìm ra. Có hai yếu tố quan trọng nhất: mật khẩu dài bao nhiêu và được chọn như thế nào. Mỗi ký tự thêm vào sẽ nhân số khả năng lên, nên độ dài thường có ích hơn việc thêm một loại ký hiệu nữa.
Cách chọn mật khẩu cũng quan trọng không kém. Con người có xu hướng chọn từ, tên, ngày tháng và các kiểu thay thế dễ đoán như "P@ssw0rd", và kẻ tấn công thử những mẫu đó trước tiên. Mật khẩu được tạo từ một nguồn ngẫu nhiên an toàn tránh được các mẫu này. Công cụ của LeedyBox dùng bộ sinh số ngẫu nhiên Web Crypto của trình duyệt thay vì Math.random(), vốn không được thiết kế cho mục đích bảo mật.
Hướng dẫn này cung cấp thông tin chung, không phải tư vấn bảo mật chuyên môn. Hãy tuân theo yêu cầu của tổ chức bạn hoặc của dịch vụ bạn đăng ký.
Số bit entropy có ý nghĩa gì
Entropy, đo bằng bit, ước tính một mật khẩu ngẫu nhiên cần bao nhiêu lần đoán. Với mật khẩu có độ dài L được chọn ngẫu nhiên đồng đều từ N ký tự có thể dùng, entropy là L × log2(N). Mỗi bit thêm vào làm không gian tìm kiếm tăng gấp đôi.
| Tập ký tự | Bit mỗi ký tự | 16 ký tự ngẫu nhiên |
|---|---|---|
| Chữ số (10) | khoảng 3,3 | khoảng 53 bit |
| Chữ thường (26) | khoảng 4,7 | khoảng 75 bit |
| Chữ hoa, chữ thường và chữ số (62) | khoảng 6,0 | khoảng 95 bit |
| ASCII in được (94) | khoảng 6,6 | khoảng 105 bit |
Ước tính này có giới hạn. Nó chỉ có ý nghĩa khi mọi ký tự đều được chọn ngẫu nhiên. Một mật khẩu bạn tự nghĩ ra, như "Summer2026!", theo công thức này có thể trông như có nhiều bit nhưng lại dễ đoán hơn nhiều. Entropy cũng không cho biết dịch vụ lưu mật khẩu ra sao, mật khẩu có bị dùng lại hay không, hoặc có bị đánh cắp qua lừa đảo (phishing) hay không.
Trình quản lý mật khẩu và mật khẩu riêng biệt
Mật khẩu ngẫu nhiên khó nhớ, và đó là lúc trình quản lý mật khẩu phát huy tác dụng: nó tạo, lưu và điền một mật khẩu khác nhau cho mỗi trang. Dùng mật khẩu riêng ở mọi nơi rất quan trọng vì các vụ rò rỉ dữ liệu vẫn xảy ra, và một mật khẩu dùng lại cho phép kẻ tấn công thử cùng thông tin đăng nhập trên các dịch vụ khác. Với số ít mật khẩu bạn cần nhớ, như mật khẩu chính của trình quản lý, một cụm mật khẩu dài gồm nhiều từ được chọn ngẫu nhiên là cách làm phổ biến.
Xác thực hai yếu tố
Ngay cả mật khẩu mạnh cũng có thể bị đánh cắp qua lừa đảo hoặc phần mềm độc hại. Xác thực hai yếu tố (2FA) thêm một bước kiểm tra thứ hai, như mã từ ứng dụng xác thực, khóa bảo mật phần cứng hoặc passkey. Bật tính năng này cho email, ngân hàng và các tài khoản quan trọng khác giúp giảm thiệt hại mà một mật khẩu bị đánh cắp có thể gây ra. Hãy cất giữ mã khôi phục ở nơi an toàn.
UUID v4 và UUID v7
UUID (định danh duy nhất toàn cục) là một giá trị 128 bit được viết thành 36 ký tự, như 550e8400-e29b-41d4-a716-446655440000. Chữ số sau dấu gạch nối thứ hai cho biết phiên bản.
- UUID v4 gần như hoàn toàn ngẫu nhiên (122 trong 128 bit). Nó không tiết lộ gì về thời điểm hay nơi được tạo, và xác suất hai giá trị trùng nhau là không đáng kể trong thực tế.
- UUID v7, được định nghĩa trong RFC 9562, bắt đầu bằng dấu thời gian Unix tính bằng mili giây, theo sau là các bit ngẫu nhiên. Giá trị được tạo sau sẽ xếp sau giá trị tạo trước, điều này có thể giúp chỉ mục cơ sở dữ liệu hiệu quả hơn so với v4. Đổi lại, bất kỳ ai nhìn thấy UUID v7 đều có thể biết đại khái thời điểm nó được tạo.
Công cụ của LeedyBox có thể tạo cả hai phiên bản, và phần kiểm tra UUID cho phép bạn xem xét một UUID bạn dán vào.
UUID là định danh, không phải bí mật
UUID được thiết kế để là duy nhất, không phải để giữ bí mật. Nhiều UUID xuất hiện trong URL, nhật ký và phản hồi API, và UUID v7 mang theo thời điểm tạo. Đừng dùng riêng một UUID làm mật khẩu, khóa API hay token đặt lại mật khẩu; hãy dùng một token ngẫu nhiên chuyên dụng từ bộ sinh an toàn, kết hợp với kiểm tra quyền truy cập phù hợp.
Câu hỏi thường gặp
Mật khẩu ngẫu nhiên nên dài bao nhiêu?
Không có câu trả lời duy nhất. Như bảng trên cho thấy, 16 ký tự ngẫu nhiên từ tập ký tự hỗn hợp cho khoảng 95 đến 105 bit entropy, và dài hơn thì mạnh hơn. Hãy tuân theo mức tối thiểu do tổ chức hoặc dịch vụ của bạn đặt ra nếu mức đó cao hơn.
Tôi nên dùng UUID v4 hay v7 cho khóa cơ sở dữ liệu?
v7 thường được chọn làm khóa vì nó sắp xếp theo thời gian. Hãy chọn v4 nếu không muốn thời điểm tạo hiện ra từ định danh.
Mật khẩu được tạo có bị gửi đi đâu không?
Công cụ của LeedyBox tạo giá trị trong trình duyệt của bạn bằng Web Crypto, nên chúng được tạo ra trên thiết bị của bạn.