[Question] Cơ chế mã hoá pass trong shadow |
19/09/2006 23:52:05 (+0700) | #1 | 24376 |
navaro
Member
|
0 |
|
|
Joined: 27/06/2006 20:54:35
Messages: 8
Offline
|
|
Hi,
Mình có một thắc mắc về cách mã hoá password trong file shadow(*nix), không biết có phải mỗi *nix khác nhau lại có cách mã hoá khác nhau hay sao? Và có bạn có thể cho mình biết cơ chế mã hoá là thế nào được không.
Search trên goole rồi, ko thấy cái nào ưng ý vả lại tiếng anh kém lém
Thank đã bỏ thời gian ra đọc bài này :wink: |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 00:27:29 (+0700) | #2 | 24391 |
pnco
HVA Friend
|
Joined: 24/06/2005 16:33:48
Messages: 515
Offline
|
|
Tớ không rõ các *nix khác như thế nào nhưng hình như là dùng md5. Đối FreeBSD thì nó chính là md5 và có thể sửa đổi ở /etc/login.conf. Nếu được thì nên dùng blowfish.
Cách nhận diện: md5 thì bắt đầu bằng chuỗi $1, còn blowfish là $2 |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 00:35:59 (+0700) | #3 | 24394 |
subnetwork
Member
|
0 |
|
|
Joined: 05/09/2004 06:08:09
Messages: 1666
Offline
|
|
|
Quản lý máy chủ, cài đặt, tư vấn, thiết kế, bảo mật hệ thống máy chủ dùng *nix
http://chamsocmaychu.com |
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 00:41:17 (+0700) | #4 | 24396 |
navaro
Member
|
0 |
|
|
Joined: 27/06/2006 20:54:35
Messages: 8
Offline
|
|
Mình post bài này thì tấc nhiên mình biết đọc nội dung của passwd, mình muốn hiểu thêm về cách mã hoá passwd trong shadow
@pnco : mình đã search ra cũng nhiều tài liệu, nó cũng nói như bạn
|
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
20/09/2006 01:08:35 (+0700) | #5 | 24412 |
pnco
HVA Friend
|
Joined: 24/06/2005 16:33:48
Messages: 515
Offline
|
|
Golden Autumn wrote:
[root@ga ~]# more /etc/passwd
Người ta nói shadow passwd mà sao bác lại show /etc/passwd, bác thử show shadow passwd của bác em xem thử ) |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 19:55:54 (+0700) | #6 | 24542 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
navaro wrote:
Hi,
Mình có một thắc mắc về cách mã hoá password trong file shadow(*nix), không biết có phải mỗi *nix khác nhau lại có cách mã hoá khác nhau hay sao? Và có bạn có thể cho mình biết cơ chế mã hoá là thế nào được không.
Search trên goole rồi, ko thấy cái nào ưng ý vả lại tiếng anh kém lém
Thank đã bỏ thời gian ra đọc bài này :wink:
Trước đây *nix nói chung không có shadow password. System V Release 3.2 (1987), BSD4.3 Reno (1991) và Linux (1992) mới ứng dụng shadowing. Chúng có cùng nguyên tắc xử lý shadow. Chỉ có điểm khác biệt là tên gọi hồ sơ shadow và vị trí chứa hồ sơ này khác nhau trên các Unix flavors mà thôi. Ví dụ, trên Linux, shadow nằm ở /etc/shadow, trên BSD /etc/master.passwd, trên HP-UX /.secure/etc/passwd.... Có một số UNIX tạo shadow riêng cho từng username.
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên được gọi là salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống
Khi người dùng login bằng password của mình, giá trị salt sẽ được lấy ra từ encoded password (đã được lưu trên hệ thống) và giá trị salt này sẽ dùng để encode password (mà người dùng vừa gõ vào). Nếu hai giá trị: đã lưu và vừa được encoded trùng nhau --> người dùng được xác thực.
Quy trình encoding ở đây gọi là "one way hash function" và hàm crypt() được sử dụng để thực thi. #man crypt có cung cấp một số thông tin cụ thể hơn. Những điểm cần nắm với crypt() là:
1. crypt: hàm dùng để "mã hoá" mật khẩu, dựa trên tiêu chuẩn thuật toán DES.
2. key: là giá trị password (ở dạng string) mà người dùng gõ vào.
3. salt: là chuỗi string có 2 ký tự được chọn từ chuỗi [a-zA-Z0-9./] (biểu thị các ký tự từ a đến z cho chữ thường và chữ in và các số từ 0 đến 9, thêm vào đó là 2 ký tự . và /). Từ chuỗi này mới tạo ra giá trị ngẫu nhiên từ 4096 khả năng khác nhau.
4. Các ứng dụng mở rộng trên các thư viện dùng cho hàm này có chức năng dùng các thuật toán khác thay vì DES có thể tạo chuỗi hash lớn hơn.
Nhiều người dùng cụm "encrypted password" cho trường hợp shadowed password và dùng như thế có phần thiếu chính xác. "shadowed password" bao gồm salt (để encode password khi user gõ password vào) và encoded string (dùng để so sánh với giá trị vừa gõ vào và đã được encode). Gọi chung đây là "hash" (hay băm theo tiếng Việt - chẳng rõ ai đã sáng chế ra từ "băm" này ) )).
Thân mến. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 21:08:29 (+0700) | #7 | 24547 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
To anh conmale: Theo em được biết, password của bất kỳ user nào đều có thể được hash bằng các hàm hash như MD5, blowfish, vân vân. Hash này có thể được lưu trực tiếp vào file /etc/passwd (linux) và có thể được sử dụng. Tuy nhiên trong file /etc/shadow thì không cần thiết có thêm record của user này. Chỉ khi dùng pwconv để "generate" file shadow thì field password trong /etc/passwd mới được clear hoặc được thay bằng *, và file /etc/shadow sẽ có thêm một record cho user đó.
Như vậy, plain text pass của user sẽ được hash trước, và sau đó passhash này lại được shadow thêm lần nữa với salt? Vậy việc hash 2 lần này có hiệu quả gì? Bản thân file /etc/passwd không đủ đáp ứng các yêu cầu về bảo mật?
Khoai |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
20/09/2006 22:33:15 (+0700) | #8 | 24556 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Mr.Khoai wrote:
To anh conmale: Theo em được biết, password của bất kỳ user nào đều có thể được hash bằng các hàm hash như MD5, blowfish, vân vân. Hash này có thể được lưu trực tiếp vào file /etc/passwd (linux) và có thể được sử dụng. Tuy nhiên trong file /etc/shadow thì không cần thiết có thêm record của user này. Chỉ khi dùng pwconv để "generate" file shadow thì field password trong /etc/passwd mới được clear hoặc được thay bằng *, và file /etc/shadow sẽ có thêm một record cho user đó.
Như vậy, plain text pass của user sẽ được hash trước, và sau đó passhash này lại được shadow thêm lần nữa với salt? Vậy việc hash 2 lần này có hiệu quả gì? Bản thân file /etc/passwd không đủ đáp ứng các yêu cầu về bảo mật?
Khoai
Tất nhiên hash vẫn có thể đưa vào /etc/passwd để sử dụng. Tuy nhiên nếu system đã "enabled shadow" rồi thì chẳng ai làm như thế ). Em chỉ dùng pwconv lần đầu tiên khi ứng dụng password shadow trên hệ thống mà thôi.
Có 2 phần tách biệt:
1) lần đầu tiên khi account được tạo ra và command passwd <username> được chạy, clear txt input này sẽ được encoded và salt sẽ được tạo ra để cùng đưa vào "password" field trong /etc/shadow
2) khi người dùng login, clear txt string mà người dùng đưa vào sẽ được encoded với salt đã có trong /etc/shadow và kết quả sẽ được dùng để so sánh giữa cái vừa được tạo ra và cái có sẵn trên hệ thống (trong /etc/shadow)
Điều em nhận định về việc "hash 2 lần" này có thể tách rời thành 2 phần như trên chớ chẳng phải mỗi passhash được hash 2 lần ).
Nói về khía cạnh bảo mật thì việc "dời" passhash sang /etc/shadow nhằm khắc phục một điểm yếu của /etc/passwd đó là: ai cũng có thể read /etc/passwd và đọc hash value trong đó để brute force. Trong khi đó, /etc/shadow chỉ có thể đọc với chủ quyền root. Binary passwd được set SUID để thực hiện việc dùng chủ quyền root để đọc hash value trong /etc/shadow.
Thân mến. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
21/09/2006 00:36:20 (+0700) | #9 | 24578 |
navaro
Member
|
0 |
|
|
Joined: 27/06/2006 20:54:35
Messages: 8
Offline
|
|
hix, bài viết hay quá, thanks anh comale ! |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
21/09/2006 10:45:46 (+0700) | #10 | 24715 |
|
hieuhoc
Member
|
0 |
|
|
Joined: 08/09/2006 21:57:39
Messages: 103
Offline
|
|
Trước giờ thắc mắc cái này lắm mà chưa biết hỏi làm sao,nay được bác commale giải thích ngọn ngành,quá tuyệt.tks. |
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
21/09/2006 11:59:31 (+0700) | #11 | 24733 |
thang2rs
Member
|
0 |
|
|
Joined: 06/07/2006 18:45:35
Messages: 46
Offline
|
|
conmale wrote:
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên để tạo ra salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống.
Hình như có sự nhầm lẫn ở đây: "password này được encode với giá trị ngẫu nhiên để tạo ra salt". Salt chính là giá trị ngẫu nhiên này!!!
|
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
21/09/2006 18:41:14 (+0700) | #12 | 24757 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
thang2rs wrote:
conmale wrote:
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên để tạo ra salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống.
Hình như có sự nhầm lẫn ở đây: "password này được encode với giá trị ngẫu nhiên để tạo ra salt". Salt chính là giá trị ngẫu nhiên này!!!
Cám ơn thang2rs đã đưa ra điểm thiếu sót này ). Câu ở trên phải là:
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên được gọi là salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống.
Thân. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
22/09/2006 06:32:20 (+0700) | #13 | 24911 |
navaro
Member
|
0 |
|
|
Joined: 27/06/2006 20:54:35
Messages: 8
Offline
|
|
há há,
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên để tạo ra salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống.
Quả thật lúc đọc tới đây mình cũng chưa hình dung rõ , salt , nhưng ngại không dám hỏi
Về cách "mã hoá" shadow thì tổng thể như sau. Khi user được cung cấp một pasword hoặc anh ta chọn một password, password này được encode với giá trị ngẫu nhiên được gọi là salt. Giá trị salt này sẽ được lưu cùng với password đã được encoded trên hệ thống.
Giờ thì sửa lại thế này thì ok rồi ; |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
30/06/2007 16:50:37 (+0700) | #14 | 67942 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
conmale wrote:
3. salt: là chuỗi string có 2 ký tự được chọn từ chuỗi [a-zA-Z0-9./] (biểu thị các ký tự từ a đến z cho chữ thường và chữ in và các số từ 0 đến 9, thêm vào đó là 2 ký tự . và /). Từ chuỗi này mới tạo ra giá trị ngẫu nhiên từ 4096 khả năng khác nhau.
Anh conmale có thể giải thích rõ thêm về phần này ko ? em chưa hiểu lắm, salt là chuỗi gồm 2 ký tự (vd : ab, c1 ...) nhưng còn câu "Từ chuỗi này mới tạo ra giá trị ngẫu nhiên từ 4096 khả năng khác nhau." nghĩa là sao ạ ?
Với lại khi em view file /etc/shadow thì thấy hashed password được lưu hơi lạ (em xem trên centos và ubuntu), thứ nhất cơ chế shadow pass trong linux như anh nói là dùng md5 + salt, như vậy cốt lõi nó vẫn là md5, chẳng wa ko phải md5 thẳng clear-text password của user mà thêm salt vào clear-text password của user rồi mới md5, mà theo như em biết với thuật toán md5 thì dù pass như thế nào (dài bao nhiêu, có ký tự đặc biệt ...) thì sau khi hash độ dài của nó chỉ có 32 ký tự và là duy nhất, vậy mà em cat thử /etc/shadow thì thấy nó có tới 34 ký tự :
Code:
test:$1$8dZUMH8F$LvJ308TsswUsfg1kcspsl/:13538:0:99999:7:::
Sao lại dư 2 ký tự nhỉ ? Và em cũng thấy lạ điều nữa là tất cả Shadowed password trong linux đều có phần $1$ ở đầu, vậy là sao anh nhỉ ? |
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
01/07/2007 07:02:25 (+0700) | #15 | 68113 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
Anh conmale đâu rồi nhỉ ? |
|
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
01/07/2007 13:06:03 (+0700) | #16 | 68175 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
Chào rickb,
rickb wrote:
em chưa hiểu lắm, salt là chuỗi gồm 2 ký tự (vd : ab, c1 ...) nhưng còn câu "Từ chuỗi này mới tạo ra giá trị ngẫu nhiên từ 4096 khả năng khác nhau." nghĩa là sao ạ ?
2 ký tự dùng trong salt có thể là 2 trong số các ký tự sau: a..z, A..Z, 0..9 ký tự '.' và '/'. Do đó,mỗi ký tự trong salt cần có 6 bits (64 khả năng: 52 cho a-z và A-Z, + 10 ký tự số, và 2 ký tự ./). Salt tổng cộng cần 2*6 = 12 bits, và tạo ra tổng cộng 2^12 = 4092 trường hợp ngẫu nhiên.
rickb wrote:
Sao lại dư 2 ký tự nhỉ ? Và em cũng thấy lạ điều nữa là tất cả Shadowed password trong linux đều có phần $1$ ở đầu, vậy là sao anh nhỉ ?
Àh, dư 2 ký tự đó chính là salt . $1$ là đặc trưng cho hàm hash md5. Bạn dùng các hàm hash khác thì đoạn đầu sẽ có "sigature" khác. Ví dụ: blowfish hash thì chuỗi hash sẽ bắt đầu bằng $2$ hoặc $2a$ tùy implementation.
khoai |
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
01/07/2007 20:29:14 (+0700) | #17 | 68209 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Đọc man shadow, man crypt và các manual liên quan đến shadow thì sẽ thấy ). |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cơ chế mã hoá pass trong shadow |
01/07/2007 23:48:48 (+0700) | #18 | 68237 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
Mr.Khoai wrote:
Chào rickb,
rickb wrote:
em chưa hiểu lắm, salt là chuỗi gồm 2 ký tự (vd : ab, c1 ...) nhưng còn câu "Từ chuỗi này mới tạo ra giá trị ngẫu nhiên từ 4096 khả năng khác nhau." nghĩa là sao ạ ?
2 ký tự dùng trong salt có thể là 2 trong số các ký tự sau: a..z, A..Z, 0..9 ký tự '.' và '/'. Do đó,mỗi ký tự trong salt cần có 6 bits (64 khả năng: 52 cho a-z và A-Z, + 10 ký tự số, và 2 ký tự ./). Salt tổng cộng cần 2*6 = 12 bits, và tạo ra tổng cộng 2^12 = 4092 trường hợp ngẫu nhiên.
rickb wrote:
Sao lại dư 2 ký tự nhỉ ? Và em cũng thấy lạ điều nữa là tất cả Shadowed password trong linux đều có phần $1$ ở đầu, vậy là sao anh nhỉ ?
Àh, dư 2 ký tự đó chính là salt . $1$ là đặc trưng cho hàm hash md5. Bạn dùng các hàm hash khác thì đoạn đầu sẽ có "sigature" khác. Ví dụ: blowfish hash thì chuỗi hash sẽ bắt đầu bằng $2$ hoặc $2a$ tùy implementation.
khoai
Đầu tiên cám ơn Khoai đã trảlời, nhưng ở câu trả lời cuối, mình ko nghĩ 2 ký tự dư ra là phần salt, vì trong 1 tài liệu CEH mình đọc, phần linux nó đề cập như sau :
Under Linux, the MD5 password is 32 characters long and begins with $1$. The characters between the second and third $ represent the salt. In the previous example, that value is Gjt/eO.e
Tức là nó nói phần salt là phần bắt đầu từ ký từ $ thứ 2 đến kỳ tự $ thứ 3, mà mình để ý phần này trong password thường luôn lớn hơn 2 ký tự (như vd acc test của mình ở trên là 8dZUMH8F
Với lại sao mình thử encode md5 với 1 số site online thì thấy kết quả encode đâu có $1$ đâu nhỉ ? (vd http://scriptserver.mainframe8.com/md5.php) |
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
02/07/2007 01:39:59 (+0700) | #19 | 68268 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Nói thêm một chút về định dạng của /etc/passwd file và /etc/shadow file
Một non-shadowed /etc/passwd file có định dạng sau:
username:passwd:UID:GID:full_name:directory:shell
Trong đó:
username: login name
passwd: password đã được encoded
UID: số User ID
GID: số Group ID mặc định
full_name: tên đầy đủ của người dùng. Trường này thực sự được gọi là GECOS (General Electric Comprehensive Operating System) và có thể lưu những thông tin khác ngoài tên đầy đủ
directory: đường dẫn đầy đủ thư mục home của người dùng
shell: User's login shell
Ví dụ:
quanta:501:501:Tong Anh Quan:/home/quanta:/bin/bash
Còn định dạng của /etc/shadow file:
username:passwd:last:may:must:warn:expire:disable:reserved
Trong đó:
username: login name
passwd: password đã được encoded
last: số ngày kể từ 01/01/1970 (không biết tại sao lại lấy ngày này) mà password được thay đổi
may: số ngày trước khi password có thể được thay đổi
must: số ngày sau đó password phải được đổi
warn: số ngày trước khi password expired, user sẽ được cảnh báo
expire: số ngày sau khi password expired, account sẽ bị disabled
disable: số ngày từ 01/01/1970 mà account bị disabled
reserved: một trường dự bị
Ví dụ:
quanta:$1$d8Ox0nqF$lVMIaCwJrnSWSr8MUseNI0:13694:0:99999:7:::
Trong ví dụ này:
13694: chính là “last” (bạn thử chia cho 365 nhé)
0: “may”
99999: “must” (thử chia cho 365 thì được 274 (chắc không ai sống lâu đến thế))
7: “warn”: sẽ cảnh báo cho user 7 ngày trước khi password bị expired
Đầu tiên cám ơn Khoai đã trảlời, nhưng ở câu trả lời cuối, mình ko nghĩ 2 ký tự dư ra là phần salt, vì trong 1 tài liệu CEH mình đọc, phần linux nó đề cập như sau :
Under Linux, the MD5 password is 32 characters long and begins with $1$. The characters between the second and third $ represent the salt. In the previous example, that value is Gjt/eO.e
Tức là nó nói phần salt là phần bắt đầu từ ký từ $ thứ 2 đến kỳ tự $ thứ 3, mà mình để ý phần này trong password thường luôn lớn hơn 2 ký tự (như vd acc test của mình ở trên là 8dZUMH8F
Bạn phải hiểu thế này:
Trong /etc/passwd, chẳng hạn:
username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh
thì lúc này "Np" là salt còn "ge08pfz4wuk" là encoded password
Nhưng thường thì bạn không nhìn thấy đoạn này "Npge08pfz4wuk", nó được thay thế bằng ký tự "x".
Còn trong /etc/shadow file, nếu dùng MD5, thì shadow password có 32 ký tự bắt đầu với $1$, phần ký tự nằm giữa dấu $ thứ hai và thứ ba chính là salt đã được mã hóa. Phần này có 8 ký tự.
|
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
02/07/2007 02:31:33 (+0700) | #20 | 68279 |
|
rickb
Reseacher
|
Joined: 27/01/2007 17:47:27
Messages: 200
Offline
|
|
quanta wrote:
Nói thêm một chút về định dạng của /etc/passwd file và /etc/shadow file
Một non-shadowed /etc/passwd file có định dạng sau:
username:passwd:UID:GID:full_name:directory:shell
Trong đó:
username
login name
passwd
password đã được encoded
UID
số User ID
GID
số Group ID mặc định
full_name
tên đầy đủ của người dùng. Trường này thực sự được gọi là GECOS (General Electric Comprehensive Operating System) và có thể lưu những thông tin khác ngoài tên đầy đủ
directory
đường dẫn đầy đủ thư mục home của người dùng
shell
User's login shell
Ví dụ:
quanta:501:501:Tong Anh Quan:/home/quanta:/bin/bash
Còn định dạng của /etc/shadow file:
username:passwd:last:may:must:warn:expire:disable:reserved
Trong đó:
username
login name
passwd
password đã được encoded
last
số ngày kể từ 01/01/1970 mà password được thay đổi
may
số ngày trước khi password có thể được thay đổi
must
số ngày sau đó password phải được đổi
warn
số ngày trước khi password expired, user sẽ được cảnh báo
expire
số ngày sau khi password expired, account sẽ bị disabled
disable
số ngày từ 01/01/1970 mà account bị disabled
reserved
một trường dự bị
Ví dụ:
quanta:$1$d8Ox0nqF$lVMIaCwJrnSWSr8MUseNI0:13694:0:99999:7:::
Trong ví dụ này:
13694: chính là “last” (bạn thử chia cho 365 nhé)
0: “may”
99999: “must” (thử chia cho 365 thì được 274 (chắc không ai sống lâu đến thế))
7: “warn”: sẽ cảnh báo cho user 7 ngày trước khi password bị expired
Đầu tiên cám ơn Khoai đã trảlời, nhưng ở câu trả lời cuối, mình ko nghĩ 2 ký tự dư ra là phần salt, vì trong 1 tài liệu CEH mình đọc, phần linux nó đề cập như sau :
Under Linux, the MD5 password is 32 characters long and begins with $1$. The characters between the second and third $ represent the salt. In the previous example, that value is Gjt/eO.e
Tức là nó nói phần salt là phần bắt đầu từ ký từ $ thứ 2 đến kỳ tự $ thứ 3, mà mình để ý phần này trong password thường luôn lớn hơn 2 ký tự (như vd acc test của mình ở trên là 8dZUMH8F
Bạn phải hiểu thế này:
Trong /etc/passwd, chẳng hạn:
username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh
thì lúc này "Np" là salt còn "ge08pfz4wuk" là encoded password
Nhưng thường thì bạn không nhìn thấy đoạn này "Npge08pfz4wuk", nó được thay thế bằng ký tự "x".
Còn trong /etc/shadow file, nếu dùng MD5, thì shadow password có 32 ký tự bắt đầu với $1$, phần ký tự nằm giữa dấu $ thứ hai và thứ ba chính là salt đã được mã hóa. Phần này có 8 ký tự.
Nhưng như đã nói trên salt sẽ được ghép với password rồi mã hoà md5, do đó ta có thể xem chúng là 1 chuỗi duy nhất (password của ta trong hệ thống sẽ là pass thật + salt), trong md5 dù là pass như thế nào (dù là pass thật hay pass + salt dài thêm đi nữa) thì mã hoá ra cũng chỉ có 32 ký tự, mà trong shadow lại thành 34 ký tự ? vậy là như thế nào ? Nếu nói là pass thật md5 ghép với salt md5 thì càng ko đúng , vậy là ra tới 64 ký tự lận à ? |
|
|
|
|
[Question] Re: Cơ chế mã hoá pass trong shadow |
02/07/2007 02:39:34 (+0700) | #21 | 68280 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
rickb wrote:
Nhưng như đã nói trên salt sẽ được ghép với password rồi mã hoá md5, do đó ta có thể xem chúng là 1 (password của ta trong hệ thống sẽ là pass thật + salt), trong md5 dù là pass như thế nào (dù là pass thật hay pass + salt dài thêm đi nữa) thì mã hoá ra cũng chỉ có 32 ký tự, mà trong shadow lại thành 34 ký tự ? vậy là như thế nào ? Nếu nói là pass thật md5 ghép với salt md5 thì càng ko đúng , vậy là ra tới 64 ký tự lận à ?
salt bao giờ cũng là phần đầu tiên, sau đó mới đến encoded password. Bạn thắc mắc phần 34 ký tự à, ví dụ của tớ:
$1$d8Ox0nqF$lVMIaCwJrnSWSr8MUseNI0
thì ở đây, bạn nên hiểu là: $1 chính là phần đặc trưng của kiểu mã hoá (MD5), còn 32 ký tự còn lại là salt + encoded password |
|
Let's build on a great foundation! |
|
|