메뉴 닫기

리눅스shadow 파일 (인증구조) 알아보기

전통적인 유닉스 및 유닉스를 기반으로 파생되어진 모든 리눅스 시스템은 단방향 암호화가 된 패스워드를 포함하여 사용자 계정 정보를
`/etc/passwd’ 라는 파일에 보관합니다. 그러나 이 파일은 수정은 못하지만 아무나 볼수는 있습니다. 이로인해서 보안문제가 심각한데
해커가 크랙툴을 돌리기만 해도 패스워드가 뻥뻥 뚫려버립니다.

.passwd-1

(↑ 사진 1 . 일반유저로 passwd 파일을 열었을때, 수정은 하지 못하나 읽을수는 있습니다.)

이와같은 단점을 해결하기 위해 shadow 패스워드가 사용되기 시작했는데, 이 경우 /etc/passwd 에 있는 패스워드 부분을 shadow 라는 별도의

파일에 보관하고 이를 root 만이 읽을 수 있는 퍼미션으로 설정해두기 때문에 상당히 보안성이 향상됬다고 볼 수 있습니다.

passwd-3

 

(↑사진 2. root 계정이 아닌 일반 계정으로 shadow 파일을 열었을경우 위와 같은 메시지가 뜨면서 아무것도 보여주지않습니다.)

shadow 파일을 이해하기 위해서는 먼저 passwd 파일을 간략하게 살펴 볼 필요가 있는데 passwd 파일에서패스워드 항목에 x표시가 들어가
있으면 패스워드는 자동으로 `/etc/shadow` 파일에 저장되게 됩니다.

본격적으로 shadow 파일의 구조를 살펴보겠습니다.

자세한 설명을 위해 securitytest 라는 계정을 생성하였습니다.

securitytest:$6$aC2vFOkQ$amvhx85BJpteMhhoSbJZfyrW.

9wSmNuVb1xZlLHte9naTvpIMBhKI0yYQL0cSXjeSYcOSzbCHyltHxRgoZ0Z60:16523:0:99999:7:::

( 글 편집때는 한줄로 보여지나 보기가 좋지않아 두줄로 편집하였습니다. ) 

 

1.Login Name : 사용자 계정각 항목별 구분은 :(콜론) 으로 구분되어있으며 콜론과 콜론 사이 각 필드에는 다음과 같은 구조로 구성되어 있습니다.

2.Encrypted : 패스워드를 암호화시킨 값
3.Last Changed : 1970년부터 1월 1일부터 패스워드가 수정된 날짜의 일수를 계산
4.Minimum : 패스워드가 변경되기 전 최소사용기간(일수)
5.Maximum : 패스워드 변경 전 최대사용기간(일수)
6.Warn : 패스워드 사용 만기일 전에 경고 메시지를 제공하는 일수
7.Inactive : 로그인 접속차단 일 수
8.Expire : 로그인 사용을 금지하는 일 수 (월/일/연도)
9.Reserved : 사용되지 않음

또한 2번 항목 앞쪽 부분을 잘 보면 $로 구분이 지어져 있는것을 확인 할 수 있는데 다음과 같은 값이 적용되기 때문입니다.

$Hashid $Salt $Hash vlaue

Hashid 는 어떤 scheme 를 이용해 hash 를 했는지 보여줍니다. 아래 표와 같이 어떤 scheme를 사용했느냐에 따라 id 값이 달라지며 주로 많이
사용되는것은 $1, $5, $6 입니다.

passwd-5
그 다음은 Salt입니다. 해시는 단방향함수입니다. 다시 말하면, A->B는 가능하지만 B->A는 불가능하다는 뜻입니다.
결국 해시를 하고 난 값을 가지고 해시하기 전의 값을 못 구한다는 말입니다. 그래서 이를 공격하기 위해서 해커들은 레인보우테이블을 미리 구해둡니다.
레인보우테이블은 모든 해시 쌍들을 구해놓은 것으로, 이를 통해 해시값들을 대입하여 고속으로 패스워드를 크랙할 수 있게합니다.
일반 사용자는 아무리 비밀번호를 어렵게 해도 이에 대한 해시값만 해커가 대입을 한다면 패스워드가 노출될 수 밖에 없습니다.
그래서 이를 좀 더 어렵게, 성가시게 하기 위해 salt를 넣습니다. salt는 해시를 하기전에 랜덤한 값을 참고하는데,
해커가 salt값을 모른다면 레인보우테이블을 가지고 있어도 의미가 없습니다. 해당 salt 따른 값이 아니기 때문입니다.

마지막은 Hash value입니다. hash value는 hashid에 따른 해시 방법과 salt값을 가지고 hash function을 수행한 결과라고 보면 되겠습니다.

 

[polldaddy rating=”7739789″]

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x