APK 파일을 설치하기 전에 SHA-256 해시를 비교하면, 신뢰할 수 있는 해시를 확보한 버전과 현재 파일이 같은지 확인할 수 있습니다. 유용한 검사이지만, 이것만으로 앱에 취약점이나 악성코드가 없다고 증명할 수는 없습니다.
안전한 다운로드에는 세 가지 별도 질문이 있습니다. 파일은 어디에서 왔는가, 전달되는 동안 변경되었는가, 내부 코드에 대해서는 어떤 근거가 있는가? 해시값 하나만으로 이 세 질문 모두에 답할 수는 없습니다.
파일 해시는 무엇을 하는가?
SHA-256은 파일 내용으로부터 고정된 길이의 값을 만듭니다. 파일이 바뀌면 해시도 바뀔 것으로 예상됩니다. 따라서 두 해시를 비교하는 것은 파일의 바이트가 같은지 확인하는 실용적인 방법입니다.
이 결과는 비교 기준이 신뢰할 수 있는 만큼만 신뢰할 수 있습니다. 공격자가 APK와 그 옆에 게시된 해시를 모두 바꿀 수 있다면, 두 값이 일치해도 문제를 드러내지 못합니다. Livara 위협 모델도 파일 확인의 이 한계를 설명합니다.
설치 전 확인 방법
대상 버전을 확인하세요. 제품명, 버전 번호, 패키지 종류를 릴리스 페이지와 비교하세요. 서로 다른 두 버전의 파일은 일반적으로 해시가 같지 않습니다.
신뢰할 수 있는 출처에서 예상 해시를 받으세요. 파일과 해시를 함께 보내는 낯선 메시지만 믿지 마세요. 공식 사이트 주소를 별도로 확인하세요.
다운로드한 파일의 해시를 계산하세요. Livara Proof Lab은 APK 해시 비교 도구를 제공합니다. 이를 앱 전체 보안 검사와 혼동하지 마세요.
전체 값을 비교하세요. 앞이나 뒤의 몇 글자만으로는 충분하지 않습니다. 버전명을 잘못 보거나 파일을 잘못 선택하지 않았는지도 확인하세요.
다르면 설치를 중단하세요. 불일치는 버전 차이, 불완전한 다운로드, 파일 변경 때문에 생길 수 있으며, 그 자체로 악성코드의 증거는 아닙니다. 원인이 밝혀질 때까지 설치하지 말고 공식 경로에서 다시 확인하세요.
이 안내는 “안전한 버전”을 나타내는 예시 해시를 제공하지 않습니다. 올바른 값은 특정 릴리스 파일에 따라 달라지기 때문입니다.
해시, 서명, 재현 가능한 빌드는 어떻게 다른가?
| 확인 방법 | 뒷받침할 수 있는 결과 | 그것만으로 증명하지 못하는 것 |
|---|---|---|
| SHA-256 해시 | 파일이 비교 기준과 동일함 | 코드가 안전하거나 배포자를 신뢰할 수 있음 |
| APK 서명 | 특정 서명 키로 서명되었고 서명 검증이 유효함 | 키 소유자가 절대로 악성 코드를 배포하지 않음 |
| 재현 가능한 빌드 | 지정된 소스, 환경, 명령으로 같은 바이트를 만들 수 있음 | 소스에 보안 결함이 없음 |
| 코드 보안 검토 | 검토한 범위와 버전에서 문제가 발견되거나 평가됨 | 알려지지 않은 결함이 하나도 남지 않음 |
Android 공식 apksigner 도구는 APK 서명과 인증서 정보를 확인하는 데 쓰입니다. 새로 설치하는 것과 기존 앱을 업데이트하는 것도 같지 않습니다. Android는 업데이트할 때 서명자의 호환성을 확인합니다. 알 수 없는 배포자의 유효한 서명만으로는 신뢰하기에 충분하지 않습니다.
재현 가능한 빌드의 정의도 지정된 소스와 빌드 환경을 요구합니다. 다운로드 파일의 해시 비교는 이 과정을 대신하지 않습니다.
Proof Lab의 범위는 어디까지인가?
Proof Lab 페이지에는 파일 해시 외에도 브라우저 안에서 실행되는 암호 연산 시연이 있습니다. 암호 연산이 성공하는 시연은 설치된 앱 전체에 대한 감사도, 메신저 프로토콜 전체의 실행도 아닙니다. 도구 자체도 신뢰할 수 있는 환경에서 실행해야 합니다. 침해된 기기나 페이지는 오해를 유발하는 결과를 표시할 수 있습니다.
설치 후에도 업데이트, 앱 권한, 기기 보안은 중요합니다. 오늘 파일을 확인했다고 미래 버전까지 자동으로 검증되는 것은 아닙니다.
해시 비교는 신뢰 사슬의 특정한 검사입니다. 배포 출처, 서명자, 결과의 한계도 함께 이해할 때 그 가치가 더 커집니다.



