Tôi đã thấy một vài bài viết về vấn đề này, nhưng tôi đã không nhìn thấy một câu trả lời dứt khoát hẳn. Vì vậy, tôi nghĩ rằng tôi sẽ cố gắng để đặt câu hỏi trong một bối cảnh mới (Bộ Quốc phòng).DoD Mật khẩu phức tạp: Người dùng không thể tái sử dụng bất kỳ mật khẩu X trước đây của họ
Theo phần 3.1.24.2 Mật khẩu phức tạp của DISA "Application Security and Development STIG, V3R2", và bảo trì, phần mềm doanh nghiệp DoD có một hướng dẫn khá khó khăn với mật khẩu:
Mật khẩu phải có ít nhất 15 kí tự dài.
Mật khẩu phải chứa một kết hợp của chữ hoa chữ cái, chữ thường, số và ký tự đặc biệt.
Khi thay đổi mật khẩu, người dùng không được có thể sử dụng thông tin cá nhân như tên, số điện thoại, tên tài khoản hoặc từ điển.
Mật khẩu phải hết hạn sau 60 ngày.
Người dùng không được sử dụng lại bất kỳ mật khẩu 10 trước đây của họ.
Đảm bảo rằng ứng dụng có khả năng yêu cầu mật khẩu tài khoản mới khác với mật khẩu trước đó ít nhất bốn ký tự khi mật khẩu được thay đổi.
Người dùng không được thay đổi mật khẩu nhiều hơn mỗi ngày một lần, ngoại trừ trường hợp của quản trị viên hoặc người dùng đặc quyền. Người dùng đặc quyền có thể được yêu cầu đặt lại mật khẩu đã bị quên lãng của người dùng và khả năng thay đổi mật khẩu nhiều lần mỗi ngày.
Như đã nêu trong NullUserException's post, cho các nhà phát triển để thực sự có thể kiểm tra cho số tiền X cuối cùng của mật khẩu (và cũng có thể đảm bảo rằng mật khẩu mới khác với mật khẩu trước đó [đạn 6]), các mật khẩu sẽ phải được mã hóa bằng một phương pháp hồi phục, chứ không phải băm mật khẩu (mà là rất nhiều không an toàn hơn, ngay cả khi tôi đang sử dụng NSA đã được phê duyệt thuật toán mã hóa). Câu trả lời được đề xuất dường như làm cho một thỏa thuận ý nghĩa, mặc dù có vẻ như có một số khác biệt và các đối số, như đã thấy trong Dan Vinton's post.
Tôi đoán câu hỏi thực sự ở đây là, có ai có thể triển khai tất cả các ràng buộc phức tạp về mật khẩu dường như phổ biến này mà không làm giảm sự an toàn của hệ thống của chúng?
Edit: dễ bị tổn thương APP3320.7 (đạn điểm 6) khẳng định "Đảm bảo rằng các ứng dụng có khả năng yêu cầu mật khẩu tài khoản mới khác với mật khẩu trước đó ít nhất bốn nhân vật khi mật khẩu được thay đổi . " Dẫn tôi để tin rằng tôi sẽ phải chạy một thuật toán chuỗi tương tự như Levenshtein để kiểm tra sự tương đồng. Tôi không thể làm điều này trên một băm/muối. Xin vui lòng cho tôi biết nếu tôi sai ở đây?
Hai thông báo sau: "Mật khẩu phải hết hạn sau 60 ngày". và "Người dùng không được phép sử dụng lại bất kỳ mật khẩu nào trong số 10 mật khẩu trước đó của họ". dẫn đến người dùng viết mật khẩu. Ít an toàn hơn .... Đó không phải là hệ thống thường là điểm yếu nhất: Mọi người đang ... –
Tại sao việc cấm sử dụng lại mật khẩu trước đây yêu cầu bạn mã hóa mật khẩu có thể đảo ngược? Chắc chắn nếu bạn lưu trữ X trước đó băm/muối sau đó nó là đơn giản, đủ để xem nếu mật khẩu mới được đề xuất phù hợp với bất kỳ trong số này –
@ FrederickCheung seconded. Bạn có thể sử dụng băm để kiểm tra, giống như xác thực đăng nhập. –