웹사이트에서 파일이나 프로그램을 다운로드 받을 때 해시 지문을 공개하는 경우가 있습니다.
해시 지문을 공개하는 이유는 PC나 스마트폰에 다운로드 완료된 파일이 웹사이트에 있는 원본 파일과 일치하는지 검사하기 위함입니다.
다운로드 과정에서 파일이 깨지거나 컴퓨터 바이러스에 감염되거나 위변조 됐다면 내 장치에 피해를 줄 수 있기 때문에 중요한 파일이라면 다운로드 완료된 파일의 해시 지문을 추출하고 웹사이트에서 공개한 해시 지문과 비교하여 지문이 일치하는지 확인하는 게 좋습니다.
지문이 일치하면 원본 파일과 동일한 이상이 없는 파일이고 지문이 불일치하면 다운로드 과정에서 깨지거나 위변조 되어서 웹사이트에 있는 원본 파일과 다르다는 뜻입니다.
파일 해시 지문으로는 주로 md5, SHA-1, SHA-256, SHA-512 등과 같은 해시가 많이 쓰이며 내 장치에서 특정 파일이나 다운로드 완료된 파일의 해시 지문을 추출하기 위해서는 해시 지문을 추출해 주는 앱이나 프로그램이 필요합니다.
해시 추출기 앱을 사용해 파일의 해시 지문을 추출해 보겠습니다.
https://play.google.com/store/apps/details?id=com.sinsoft.hashgenerator
↑해시 추출기 앱을 실행하고 시작 버튼을 누릅니다.
↑파일 해시를 선택한 후 해시를 추출할 파일을 선택합니다.
↑추출하고자 하는 해시 종류를 모두 선택하고 해시 추출 시작 버튼을 누릅니다.
↑파일 해시 추출이 완료된 화면입니다.
MD5, SHA1, SHA256, SHA512 등 총 4개의 해시를 추출했습니다.
각각의 해시는 파일의 지문이 됩니다.
파일에서 단 1bit라도 내용이 변하면 위 지문도 달라지게 됩니다.
웹사이트에서 다운로드 받은 파일이 원본 파일이 맞는지 검증하고 싶으면 위와 같은 방법으로 해시 지문을 추출하고 다음과 같은 절차를 따르면 됩니다.
(웹사이트에서 다운로드 파일의 해시 지문을 공개한 경우에만 검증 가능)
↑파일 해시 결과 화면에서 비교 버튼을 누릅니다.
↑웹사이트에서 공개한 원본 파일에 대한 해시 지문을 복사해 종류에 맞게 입력합니다.
위 화면에 이미 표시되어 있는 해시 지문은 아직 원본 파일인지 검증되지 않은 내 장치에 저장된 다운로드 파일의 해시 지문입니다.
그리고 위 화면의 빈칸에 입력해야 할 해시 지문은 웹사이트에서 공개한 원본 파일의 지문입니다.
즉, 원본 파일의 지문과 내 장치에 다운로드된 파일의 지문이 일치하는지 검사하는 것입니다.
↑위 화면은 웹사이트에서 공개한 원본 파일의 SHA256 해시 지문을 입력한 화면입니다.
내가 다운로드한 파일과 원본 파일의 지문이 일치하면 위 화면처럼 해시 일치라고 표시됩니다.
이 경우 다운로드한 파일과 웹사이트의 원본 파일이 동일한 파일인 것으로 간주합니다.
↑내가 다운로드한 파일의 지문과 웹사이트 원본 파일의 지문이 다르면 위 화면처럼 해시가 불일치하다는 메시지가 표시됩니다.
이 경우 다운로드한 파일과 웹사이트의 원본 파일이 같지 않은 것으로 봅니다.
해시가 불일치하다는 것은 다운로드 과정에서 무언가 문제가 생겼다는 의미입니다.
다운로드 과정에서 파일이 깨졌거나 해킹에 의해 파일이 위변조 됐다면 해시가 일치하지 않게 됩니다.
따라서 해시 지문이 불일치되면 내가 다운로드한 파일과 웹사이트에서 공개한 파일이 서로 다르다는 의미이므로 파일을 다시 다운로드 받아야 합니다.
위 예시에서는 SHA256 해시만 검증했지만 웹사이트에서 여러 해시 지문을 공개했을 경우 가능한 공개된 해시 지문 모두를 검증하는 것이 좋습니다.
웹사이트에서 MD5, SHA1, SHA256, SHA512 등 4개의 해시 지문을 공개했다면 그중 1개만 검증해도 되지만 공개된 4개 모두 검증하는 것을 권장합니다.
이는 해시 충돌의 가능성을 낮추기 위함입니다.(내용이 다른 파일 2개가 지문이 서로 같은 경우)
해시 충돌의 가능성은 매우 낮지만 아주 낮은 확률도 회피하고자 한다면 검증 가능한 해시 모두를 검증하면 됩니다.
'안드로이드 앱' 카테고리의 다른 글
QR코드 피싱 및 해킹 대처하기, 스캔한 QR코드 웹주소 확인 방법 (0) | 2023.10.31 |
---|---|
강력한 패스워드, 암호 쉽게 만들기 (0) | 2023.09.06 |
이미지를 원하는 가로 세로 비율로 쉽게 변경하기(image aspect ratio) (0) | 2023.01.10 |
SRT 자막 전체 표시 시간 감소시키는 방법 (0) | 2022.12.11 |
한글,영문,숫자 텍스트에 비밀번호를 걸어서 암호화하는 방법 (0) | 2022.06.17 |
댓글