CÁCH BĂM MẬT KHẨU HOẠT ĐỘNG TRÊN LINUX
Bạn có thể biết rằng mật khẩu được băm trên các hệ thống Linux và các hàm băm được lưu trữ trong tệp bị hạn chế truy cập / etc / shadow . Nhưng bạn có biết rằng bạn cũng có thể xác định phương pháp băm đã
được sử dụng và báo cáo số ngày kể từ khi mật khẩu được thay đổi lần cuối từ tệp này không ? Để xem bản ghi của người dùng trong tệp / etc / shadow , hãy chạy một lệnh như sau:
$ sudo grep nemo / etc / shadow
Bạn sẽ thấy một dòng trông giống như sau:
nemo: $ 6 $ FVYIIgcEcObSsUcf $ FsSBlV9soVt.Owbd4xnvhlZzjx73ZBQQBT0WM yah6qcdnH91tBf9C4EaYbRtr7jKGETP / TwBNjyrDFqhvK0NV1: 18.698: 7: 90: 7
:::
Bất chấp dòng đó dài bao nhiêu, nó khá dễ dàng để phân tích cú pháp. Hai trường đầu tiên trong các dòng của tệp lưu trữ tệp được phân tách bằng dấu hai chấm này:
- Tên người dùng (nemo)
- Băm mật khẩu (bao gồm cả phương pháp băm được sử dụng) ở định dạng băm $ id $ salt $
Phần $ 6 $ đó của chuỗi này đại diện cho thuật toán băm được sử dụng.
$ 1 $ nghĩa là MD5
- $ 2a $ có nghĩa là Blowfish
- $ 2y $ có nghĩa là Blowfish
- $ 5 $ nghĩa là SHA-256
- $ 6 $ nghĩa là SHA-512
Phần chính của mục nhập tệp / etc / shadow của nemo đại diện cho hàm băm mật khẩu. Các trường số sau (18698: 7: 90: 7 :: :) đại diện cho:
- Ngày thay đổi mật khẩu cuối cùng theo định dạng “ngày kể từ ngày đặt mật khẩu” (18698).
- Số ngày bắt buộc tối thiểu giữa các lần thay đổi mật khẩu (7).
- Số ngày được phép tối đa giữa các lần thay đổi mật khẩu (90).
- Số ngày trước để hiển thị thông báo hết hạn mật khẩu (7).
- Số ngày sau khi hết hạn mật khẩu để vô hiệu hóa tài khoản (không được đặt ở trên).
- Ngày hết hạn tài khoản (không được đặt ở trên).
- Một trường dự trữ (không được đặt ở trên).
Để tìm ngày hôm nay ở dạng «ngày kể từ ngày đặt mật khẩu”, bạn có thể chạy một lệnh giống như được hiển thị trong bí danh bên dưới chia “giây kể từ giây đặt mật khẩu cho Unix” cho 86.400 (số giây trong một ngày) .
$ alias epoch_date = “echo $ (($ (date +% s) / 86400))” $ epoch_date 18855
Sau đó, bạn có thể lấy trường đầu tiên được hiển thị trong các trường số (18698) của tệp /etc/shadow và xác định mật khẩu đã được thay đổi cách đây bao nhiêu ngày. Trong ví dụ này, đó là 157 ngày trước.
$ expr 18855 - 18698 157
Bạn cũng có thể xác định ngày mật khẩu được thay đổi lần cuối bằng cách sử dụng lệnh chage lấy dữ liệu từ tệp / etc / shadow và báo cáo ngày đó cùng với các số liệu thống kê về mật khẩu khác.
$ sudo chage -l nemo
Lần thay đổi mật khẩu cuối cùng: 12 tháng 3 năm 2021 Mật khẩu hết hạn: 12 tháng 3 năm 2022
Mật khẩu không hoạt động: không bao giờ Tài khoản hết hạn: không bao giờ
Số ngày tối thiểu giữa các lần thay đổi mật khẩu: 7 Số ngày tối đa giữa các lần thay đổi mật khẩu: 90 Số ngày cảnh báo trước khi mật khẩu hết hạn: 7
Wrap-Up ( Gói lại)
Tệp / etc / shadow lưu trữ rất nhiều cài đặt quan trọng cho mật khẩu trên hệ thống Linux, bao gồm thuật toán được sử dụng để tạo băm mật khẩu và mật khẩu được đặt lần cuối và ngày hết hạn.
khắc Tuyên