2011. 8. 7. 19:42

♧ 소프트웨어 패키지나 CD 또는 DVD 이미지와 같은 파일을 인터넷을 통해 공유 하고자 할 때,

SHA1SUM 또는 MD5SUM 파일이 함께 배포되는 경우가 많다.

이러한 파일은 다운로드 받은 파일이 원본 파일과 정확히 동일한 파일인지 확인하는데

사용되는 파일로써, 체크섬(checksum) 정보가 포함되어 있다.

 

MD5 (128 비트) 체크섬을 확인

SHA1 (160 비트) 체크섬을 확인

 

md5sum [ OPTION ]... [ FILE ]...

sha1sum [ OPTION ]... [ FILE ]...

[ 옵션 ]

-b, --binary

바이너리 모드로 읽기

-c, --check

파일에 (md5, sha1) 합계를 읽고 체크.

-t, --text

텍스트 모드로 읽기 (기본값)

체크섬을 검증 하는 경우의 옵션

--quiet

체크섬 검증이 성공한 메시지는 출력 안함

 

 

▶ md5sum, sha1sum 명령어를 사용해 파일의 체크섬을 생성.

$ touch devanix

$ md5sum devanix

d41d8cd98f00b204e9800998ecf8427e devanix

$ sha1sum devanix

da39a3ee5e6b4b0d3255bfef95601890afd80709 devanix

☞ 파일의 유효성을 검증하기 위해 md5sum 또는 sha1sum 정보 중 무엇을 선택할지는 전적으로 배포자의 결정.

 

Xubuntu 11.04 (Natty Narwhal) 배포판 사이트에서 MD5SUMS 파일 검증.

/* Xubuntu 11.04(Natty Narwhal) 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

--2011-08-07 18:57:05-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

Resolving cdimage.ubuntu.com... 91.189.92.164

접속 cdimage.ubuntu.com|91.189.92.164|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 722745344 (689M) [application/x-iso9660-image]

Saving to: `xubuntu-11.04-desktop-i386.iso'

 

100%[==========================================>] 722,745,344 6.70M/s in 2m 51s

2011-08-07 18:59:57 (4.03 MB/s) - `xubuntu-11.04-desktop-i386.iso' saved [722745344/722745344]

 

/* 해당 사이트 MD5SUMS 파일 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

--2011-08-07 19:03:00-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

Resolving cdimage.ubuntu.com... 91.189.92.174

접속 cdimage.ubuntu.com|91.189.92.174|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 266 [text/plain]

Saving to: `MD5SUMS'

 

100%[==========================================>] 266 --.-K/s in 0s

2011-08-07 19:03:01 (5.88 MB/s) - `MD5SUMS' saved [266/266]

 

/* 체크섬 파일(MD5SUMS) 내용 보기 */

$ cat MD5SUMS

ab4b5b18892afd8d4d3228fbc30061d9 *xubuntu-11.04-alternate-amd64.iso

d5b6d8595c44e9954ebc4f188cb9fb49 *xubuntu-11.04-alternate-i386.iso

f1b224166bea923042e53b0e9d5ff63f *xubuntu-11.04-desktop-amd64.iso

78719bfee11576729a62b4a241d40b19 *xubuntu-11.04-desktop-i386.iso

 

/* MD5SUMS 파일에 기록되어 있는 모든 파일을 한 번에 검증 */

$ md5sum -c MD5SUMS

md5sum: xubuntu-11.04-alternate-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-amd64.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-alternate-i386.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-i386.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-desktop-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-desktop-amd64.iso: 열기 또는 읽기 실패

xubuntu-11.04-desktop-i386.iso: 성공

md5sum: 경고: 3 중 4 개의 파일들을 읽을 수 없었음

 

/* 체크섬 파일에 있는 파일 목록 중 하나만을 검증 */

$ cat MD5SUMS | grep *desktop-i386* | md5sum -c

xubuntu-11.04-desktop-i386.iso: 성공

MD5SUMS 파일 대신 SHA1SUMS 파일을 가지고 있더라도, sha1sum 명령어와 동일

 

 

[ /etc 디렉토리의 모든 파일에 대한 체크섬 생성 & 검증 ]

♧ find 명령어와 md5sum 명령어를 함께 사용한다면 파일시스템의 어떠한 부분이라도 검증할 수 있다.

 

① /etc 디렉토리의 모든 파일에 대한 md5 체크섬 생성

$ sudo find /etc -type f -exec md5sum {} \; > /tmp/md5.list 2> /dev/null

128비트 체크섬이 기록된 /tmp/md5.list 파일 생성.

 

② 시간이 지난 뒤, 이들 중 어떤 것이 변경 되었는지 확인

$ sudo md5sum --quiet -c /tmp/md5.list

/etc/hosts.allow: 실패

md5sum: *경고*: 1588 중 1개가 서로 일치하지 않는 체크섬으로 계산됨match

☞ 결과에서 볼 수 있듯이, 하나의 파일(hosts.allow)만 변경 되었다.

☞ 필요 하다면 다음 단계로 변경된 파일을 조사하여 의도적인 것인지 살펴본다.

 

 

맨 페이지(manpage) 참조 : md5sum, sha1sum

Posted by devanix