티스토리 뷰

반응형

hash check

 

파일 위변조 확인 방법(pgp signature verification/gpg --verify)

 

많은 사이트에서 배포하는 파일의 위변조 확인을 위해 파일명과 hash 값을 제공하는 경우가 많습니다. 프로그램 설치 전 이 hash 값을 다운로드한 파일의 hash와 비교해 보고 설치하는 것이 일반적으로 안전합니다. 그러나 그 프로그램을 배포하는 홈페이지 관리자 권한이 해킹당하는 경우, 해커가 직접 변조한 파일과 hash 값을 악의적으로 대체할 가능성이 있습니다.

이런 단점을 보완한 방법이 pgp signature 파일을 사용하는 방법입니다.

 

pgp signature verification

 

gpg --verify

 

리눅스에서 gpg와 gpa를 설치해 주세요.

 

sudo apt-get install gnupg2 gpa

 

windows 사용자의 경우 gpg4win이라는 프로그램을 사용할 수 있습니다.
gpg 프로그램을 일반적으로 파일을 암호화하거나 복호화 하는 용도로 많이 사용하지만, 파일에서 signature 파일을 추출하여 파일의 위변조 확인도 가능합니다.

 

파일 변경

 

예시로 보여드리기 위해 파일의 마지막 줄에 임의의 문자열을 추가하고, gpg --verify 명령어를 사용해 보면 "BAD Signature from~~"이라는 결과값을 확인할 수 있습니다.

정상적인 파일이라면 "Good signature from~~"과 같은 결과를 확인할 수 있습니다.

 

PGP Signature 및 public key

 

file과 PGP Signature 파일

 

프로그램 파일, PGP Signature, Publick key 파일 총 3개의 파일을 다운로드하여야 signature를 이용해 파일의 위변조를 확인할 수 있습니다.

 

다운로드한 파일과 signature

 

경우에 따라 PGP Public key의 링크를 눌렀을 때 asc 파일이 다운로드되지 않고 key가 홈페이지 화면에 나오는 경우가 있습니다. 이럴 경우 파일의 링크를 복사하여 터미널에서 wget 명령어를 사용하여 public key를 다운로드하시면 됩니다.

 

PGP Public Key

 

다운로드한 파일을 일단 antivirus 프로그램으로 1차 점검하고 문제가 없다면 gpg --import filename.asc 입력하여 public key를 import 합니다.

 

바이러스 점검

 

gpg 프로그램(CLI)이 불편하다면 gpa 명령어로 gpa 프로그램(GUI)에서 key manger에서 import 할 수 있습니다.

 

gpg --import

 

gpa 프로그램은 Key Manager에 보시면 정상적으로 public key가 import 되었음을 확인할 수 있습니다. Public key의 경우 Key의 아이콘이 은색으로 나오게 됩니다.

 

gpa 실행 화면

 

public key import가 완료되었다면 gpg --verify filename.sig 파일 명령어를 사용하여 확인할 수 있습니다.
signature 파일, 다운로드한 파일이 같은 디렉터리에 있어야 확인 가능합니다.

 

gpg --verify

 

반응형
댓글