예전것/시스템 보안2009. 5. 31. 22:10

문제 : OS 패치를 하기 위해 패치 파일을 다운받은 관리자는 해당 파일이 변조가 되지 않은 무결한 파일인지
확인해 보려고 한다. 패치 파일의 checksum 값과 MD5 값을 확인하여 변조여부를 확인해 보시오.
(패치 파일은 /var/spool/patch 아래에 존재)

checksum 이란?

체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.

기본적인 메시지 구성 요소(보통 비트)를 추가하여 결과값을 저장함으로써 동작한다. 나중에 누구나 데이터에 같은 작업을 수행할 수 있고, 무결성 검사에 대한 결과를 비교할 수 있으며, (체크섬이 맞아 떨어지는지 확인해 봄으로써) 메시지가 손상되지 않았다고 결론을 내릴 수도 있다


MD5란?

암호학에서 MD5(Message-Digest algorithm 5)는 128비트 해시를 제공하는 암호화 해시 함수이다. RFC 1321로 지정되어 있으며 수많은 프로그램과 파일의 무결성 검사에 사용된다.

MD5는 1991년로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안했다. 1996년에는 MD5의 설계상 결함이 발견되었다. 매우 치명적인 결함은 아니었지만, 암호학자들은 SHA-1 같은 다른 알고리즘을 사용할 것을 권장하기 시작했다. 2004년에는 더욱 심한 암호화 결함[1]이 발견되었고 2006년에는 노트북 컴퓨터 한 대의 계산 능력으로 1분 내에 해시 충돌을 찾을 정도로 빠른 알고리즘이 발표[2]되기도 하였다. MD5 알고리즘을 보안 관련 용도로 쓰는 것은 권장하지 않으며, 심각한 보안 문제를 야기할 수도 있다. 2008년 12월에는 MD5의 결함을 이용해 SSL 인증서를 변조하는 것이 가능하다는 것이 발표되기도 했다[3].

cksum : Print CRC checksum and byte counts of each FILE.

sum : Print checksum and block counts for each FILE.

cksum 명령은 File 매개변수에 지정한 파일을 읽고
각 파일에 대한 32비트 체크섬 CRC(순회 중복 검사) 및 바이트 수를 계산합니다. 

chsum 명령을 실행할 때 체크섬, 바이트 수 및 파일 이름이 출력됩니다.
(sum 명령은 체크섬, 블럭 수 및 파일이름이 출력되지요)

cksum 명령은 sum 명령과 다른 알고리즘을 사용하여 32 비트 체크섬 CRC를 계산합니다.

(cksum 명령은 이더넷 표준 프레임 검사를 바탕으로 하는 CRC 알고리즘을 사용합니다.)

---------------------------------------------------------------------------------------

예)

file1 및 file2의 체크섬과 크기를 바이트 단위로 표시하려면, 다음과 같이 입력하십시오.

$ cksum file1 file2

file1 파일의 체크섬이 3995432187이고 이 파일이 1390 바이트이며
file2 파일의 체크섬이 3266927833이고 이 파일이 20912 바이트일 경우

cksum 명령은 다음을 표시합니다.
$ cksum file1 file2
3995432187 1390 file1
3266927833 20912 file2