[ 개요 ]
개발자들은 자신이 만든 프로그램을
인터넷 등의 수단을 통해 다른사람들에게
공개 및 배포한다.
그런데, 그렇게 배포된 프로그램은
비단 정상적인 사용자 뿐만 아니라
악의적인 목적을 지닌 해커에게도 갈 수 있다.
그러면, 배포된 프로그램을 조작하여
개발자가 만든것처럼 보이면서도
해커가 원하는대로 동작하는 악의적인 프로그램이
만들어져 배포될 수도 있는 것이다.
이에 개발자들은, Hash값을 같이 공개함으로써
개발자 본인이 만든 프로그램과 같은 것인지
아니면, 해커에 의해서 변조된 프로그램인지
구분할 수 있도록 함으로써 이를 방지한다.
(= 무결성 보장)
그런 Hash값을 별도의 프로그램 없이
CMD만을 이용해서 확인하는 방법을 알아보자
[ 명령어 ]
certutil -hashfile 파일명 [해시알고리즘]
* 해시 알고리즘이 별도로 입력되지 않으면
SHA1으로 처리 된다. (즉, 기본값 : SHA1)
if 원본값 == 비교값 echo 일치합니다
[ 실습 ]
1. 위와 같은 텍스트가 포함된 파일을 생성한다.
* 간단한 실습을 위해 txt 파일을 사용하는데
exe, jpg, zip, hwp 등의 파일도 비교 가능함.
2. 파일이 존재하는 경로로 진입한 후,
위의 certutil 명령어를 입력하고 결과를 확인한다.
3. 비교명령어를 통해서
Hash값의 일치여부를 확인한다.
( 결론 )
단 한글자만 바뀌어도
Hash값은 완전히 달라짐을 알 수 있다.
이런 원리로 프로그램이 변조되었는지의
여부를 Hash값을 통해 파악 할 수 있는 것이다.
[ 참고자료 ]
댓글