정보보안/리눅스

[리눅스] 파일 및 디렉토리 무결성 검사 MD5sum

록스타★ 2024. 11. 5. 14:21
반응형

MD5 해시 함수는 파일의 무결성을 확인하는 데 자주 사용되는 알고리즘이다. 이와 관련하여 md5sum 명령어를 사용하면 파일의 해시 값을 계산하고 이를 통해 파일의 무결성을 검증할 수 있다. 

 

1. MD5sum

md5sum 명령어는 파일의 MD5 해시 값을 생성하여 파일의 변경 여부를 확인할 수 있게 해준다. MD5는 128비트 해시 값을 생성하기 때문에, 파일의 내용이 조금이라도 변경되면 완전히 다른 해시 값이 생성되며, 이를 통해 파일 전송 중 오류가 발생했거나 악의적인 변경이 있었는지 쉽게 파악할 수 있다.

 

 

2. MD5sum 사용예시

md5testAmd5testB 파일의 내용이 동일하기 때문에 해시 값도 동일한 반면에 md5testC 파일은 내용이 다르기 때문에 해시 값이 완전히 다르게 출력된다.

$ md5sum filename

 

 

3. MD5 디렉토리 사용 방법

다음은 폴더 내부의 모든 파일에 대해 MD5 해시 값을 계산하고, 이를 이용해 폴더 전체의 MD5 해시 값을 계산하는 명령어입니다:

$ find [디렉토리 파일] -type f -exec md5sum {} \; | sort -k 2 | md5sum

 

 

find [디렉토리 이름] -type f -exec md5sum {} ;

  • find: 파일이나 디렉토리를 찾기 위한 명령어
  • [디렉토리 이름]: 검색할 디렉토리 경로를 지정
  • -type f: 파일의 타입을 지정하는 옵션으로, 여기서는 일반 파일(-type f)을 찾는다.
  • -exec md5sum {} ;: 찾은 각 파일에 대해 md5sum 명령어를 실행합니다. **{}**는 각 파일의 이름을 의미하며, **;**는 명령어의 종료를 나타냄
  • sort -k 2
    • sort 명령어는 데이터를 정렬
    • -k 2: 두 번째 열을 기준으로 정렬한다는 의미
  • | md5sum
    • 앞에서 정렬된 결과 전체에 대해 MD5 해시 값을 계산하고, |는 파이프라인으로, 앞 명령어의 출력을 다음 명령어의 입력으로 전달하는 역할을 한다.

 

 

사용예시

디렉토리 안에 내용이 같아도 디렉토리 명이 다르면 MD5 해시값이 다르다.

 


                                      

사용예시 2

- 디렉토리를 삭제했다가 같은 이름으로 재생성했을 때

- 내용물과 이름이 같다면 MD5해시값이 동일하다.

 

 

 

 

4. 마무리

MD5는 비교적 빠르고 간편하지만, 충돌 가능성이 존재하므로 민감한 보안 목적에는 적합하지 않다. 파일의 단순 무결성 확인에는 유용하지만, 보안에 민감한 경우에는 SHA-256과 같은 더 강력한 해시 함수를 사용하는 것이 좋다.

보안 목적보다는 무결성 검증 용도로 사용하는 게 제일 유용하다.

반응형