Basic Security/_System2007.01.17 20:39

/etc/shadow 파일의 접근 권한을 확인해 보면 400이다. 따라서 관리자만이 읽을 수 있다. 이러한 강력한 접근 권한을 shadow 파일의 암호화된 패스워드 정보 때문이다. 이렇게 암호화된 패스워드는 리눅스/유닉스 종류에 따라 몇 가지 암호화 방법에 의해 구현된다.

리눅스를 설치하다 보면 설치 화면 암호화를 설정할 수 있을 것이다. 일반적으로 레드햇을 설치했다면 MD5와 섀도우 암호가 기본값으로 사용된다. 이를 선택하지 않을 경우 일반적인 유닉스 시스템과 마찬가지로 DES(Data Encryption Standard) 알고리즘을 사용한 shadow 파일을 생성한다.

⦁ DES(Data Encryption Standard)
1977년에 IBM이 만든 암호화 알고리즘이다. 56비트의 키 값을 가지고 암호화를 실시하며, 현재로서는 그다지 강한 암호화 알고리즘은 아니다. 알고리즘은 개발 당시 매우 강력한 미국 정부의 표준 알고리즘이었다. 하지만 컴퓨터의 성능이 발달하면서 점차 그 암호화 강도는 약해다. 1997년 초에는 RSA 암호화 알고리즘을 소유한 이들이 DES 메시지 해독에 10,000 달러의 상금을 걸었던 일이 있었다. 이때 DES 알고리즘은 약 3일 정도에 해독되었다고 한다.

⦁ AES(Advanced Encryption Standard)
AES로는 현재 라인덱(Rijndael) 알고리즘이 사용되고 있다. 우리나라의 은행권 등에서 사용되고 있는 국산 알고리즘은 SEED 역시 AES로 채택되기 위해 선별되었던 6개의 암호화 알고리즘 중 하나다.

⦁ MD 5(Message Digest)
엄밀히 말해 암호화 알고리즘이 아닌 해시(Hash)알고리즘이다. 암호화 알고리즘과 해시 알고리즘의 차이는 암호화 알고리즘은 암호화 되지 않은 평문을 암호화한 뒤에 다시 이를 해독하는 것이 가능하나 해시 알고리즘은 이에 대한 해독이 불가능하다는 것이다.

따라서 유닉스의 패스워드 저장 방식이 DES에서 MD 5로 바뀌고 있다. MD5로 해시한 결과 값을 이요해서 역으로 패스워드를 알아내는 것이 불가능하기 때문이다.

하지만 MD 5로 해시한 패스워드를 알아내는 것이 불가능 한 것은 아니다. 임의의 값을 MD 5 알고리즘에 입력해서 패스워드를 해시한 값과 똑같은 값을 얻게 된다면, 그 입력한 값이 패스워드가 되는 것이다. 리눅스나 유닉스에서는 이와 같이 임의의 값을 무수히 생성하여 MD 5 값을 구한다. 구한 MD 5 해시 값을 shadow 파일의 값과 비교하여 일치하는 값을 찾아내는 방법으로 패스워드를 크래킹한다.

리눅스의 경우에는 대부분 passwd 파일과 shadow 파일이 /etc/passwd 파일과 /etc/shadow 파일로 생성된다. passwd 파일의 경우에는 대부분 /etc/passwd 파일로 동일하나 shadow 파일의 경우에는 각각의 운영체제 별로 고유한 경로와 파일명을 사용하는 경우도 많다.


[표 1] 운영체제별 패스워드와 shadow 파일의 위치

운영체제

shadow 파일의 위치

IBM AIX

/etc/security/passwd

IBM A/UX 3.03(RS-6000)

/tcb/file/auth/?/*

BSD 4.3 - Reno

/etc/master.passwd

DEC DG/UX(Digital Unix)

/etc/tcb/aa/user

DEC EP/UX

/etc/shadow

HP/UX

/.secure/etc/passwd

IRIX 5

/etc/shadow

FreeBSD

/etc/shadow

SunOS 4.1 + C2

/etc/security/passwd.adjunct

SunOS 5.x

/etc/shadow, passwd

System V Release 4.0

/etc/shadow, passwd

Posted by Proneer

댓글을 달아 주세요


티스토리 툴바