다운로드한 파일이 변조되지 않았는지 확인하는 법 (SHA-256)

설치 파일, 운영체제 이미지, 펌웨어 업데이트를 받았습니다. 개발사가 공개한 바로 그 파일인지 어떻게 알 수 있을까요?

실제로 일어나는 위험

  • 공식처럼 보이는 사이트와 광고: 인기 무료 프로그램을 검색하면 광고 결과가 애드웨어나 악성코드를 끼워 넣은 설치 파일로 이어지기도 합니다.
  • 해킹된 서버: 2016년 유명 리눅스 배포판의 공식 사이트가 해킹되어, 하루 중 일부 시간 동안 다운로드 링크가 백도어가 심어진 ISO로 바뀌었습니다. 공식 해시값과 비교한 사람은 알아챌 수 있었습니다.
  • 손상된 다운로드: 중간에 끊긴 파일로 펌웨어를 업데이트하면 기기가 먹통이 될 수 있습니다.

해시값이란

해시값은 파일의 모든 바이트로 계산한 지문입니다. 1바이트만 달라도 값이 완전히 바뀝니다. 개발사는 SHA256SUMS 같은 파일로 SHA-256 값을 공개합니다.

세 단계로 확인

  1. 개발사의 공식 사이트에서 해시값을 확인합니다(다운로드를 권한 페이지가 아니라).
  2. 다운로드 파일 검증에 파일을 놓고 공식 값을 붙여 넣습니다.
  3. 초록색이면 일치. 빨간색이면 파일을 지우고 공식 경로에서 다시 받으세요.

파일은 브라우저 안에서 조금씩 읽기 때문에 몇 GB짜리 이미지도 컴퓨터 밖으로 나가지 않습니다.

어떤 알고리즘을 쓸까

SHA-256이나 SHA-512를 쓰세요. MD5와 SHA-1은 우연한 손상은 잡아내지만, 같은 값을 갖는 다른 파일을 만들 수 있다는 사실이 알려져 있어 의도적인 변조가 없다는 증명은 되지 못합니다.

해시값의 한계

공격자가 공식 사이트 자체를 장악하면 해시값도 바꿀 수 있습니다. 그래서 전자서명을 함께 쓰는 프로젝트도 있습니다. 그래도 일상적인 다운로드에서는 공식 페이지의 값과 비교하는 것만으로 대부분의 문제를 막을 수 있습니다.

무료 도구 사용하기

다른 가이드