Tôi đã liệt kê những người dùng có mật khẩu của họ bằng cách sử dụng ldapsearch
và mật khẩu không được liệt kê ở dạng văn bản rõ ràng, nhưng điều đó có thực sự xác nhận rằng chúng không được lưu trữ ở dạng văn bản rõ ràng không?
Có, không, có thể.
Tôi nghĩ ldapsearch
và ví dụ một lớp phủ chính sách mật khẩu không thay thế mật khẩu văn bản rõ ràng được lưu trữ bằng phiên bản được mã hóa hoặc băm trong phản hồi tìm kiếm. Mã hóa/băm mật khẩu văn bản rõ ràng chỉ xảy ra khi mật khẩu được đặt/cập nhật. Tôi nghĩ rằng về vấn đề đó bạn có thể tin tưởng những gì ldapsearch
cho bạn thấy.
Nhưng cả hai ldapsearch
và cái tát
trưng bày mật khẩu người dùng
ở định dạng được mã hóa base64. Dấu hai chấm ::
sau tên thuộc tính được sử dụng để chỉ ra rằng giá trị được mã hóa base64.
mật khẩu người dùng:: c2VjcmV0LXBhc3N3b3JkCg==
mật khẩu người dùng:: e1NTSEF9RGtNVHdCbCthLzNEUVR4Q1lFQXBkVXROWEdnZFVhYzMK
Bạn sẽ không thực sự biết cho đến khi bạn giải mã chuỗi ký tự base64 đó nếu mật khẩu được băm hoặc văn bản rõ ràng. Nếu bạn chỉ tìm thấy mật khẩu ở dạng {tiền tố băm}muối/giá trị
:
Mật khẩu người dùng: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3
Mật khẩu người dùng: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb
Mật khẩu người dùng: {CRYPT}$1$czBJdDqS$TmkzUAb836oMxg/BmIwN.1
mật khẩu người dùng: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
Mật khẩu người dùng: {SMD5}4QWGWZpj9GCmfuqEvm8HtZhZS6E=
sau đó bạn tốt. Mật khẩu không có tiền tố như vậy là văn bản thuần túy.
Chỉ cần kiểm tra tập tin cấu hình là không đủ.
Thực vậy. Khi băm/mã hóa mật khẩu được bật/thay đổi, mật khẩu văn bản rõ ràng hiện có cũng như mật khẩu hiện tại được mã hóa bằng các thuật toán khác nhau đều không được chuyển đổi.
Theo như tôi biết sau khi thay đổi chính sách mật khẩu mặc định, văn bản rõ ràng hiện có và mật khẩu được băm bằng các thuật toán khác cũng sẽ không ngừng hoạt động, trình nền ldap chỉ cần lặp lại qua tất cả các cơ chế được hỗ trợ bất cứ khi nào có yêu cầu xác thực.
Để kiểm tra nội dung của dữ liệu được lưu trữ thực tế trong OpenLDAP, cách dễ nhất có lẽ là xuất cơ sở dữ liệu sang định dạng LDIF có thể đọc được với cái tát
; trích xuất tất cả các giá trị thuộc tính userPassword từ LDIF đó và giải mã base64.