SHARE THE PERSPECTIVE

클라이언트 측 스캐닝은 사용자의 기기에서 콘텐츠를 검사합니다. 콘텐츠는 전송 전이나 수신 후에 이미 읽을 수 있는 상태일 수 있습니다. 따라서 암호화된 전달 경로 바깥에 정보 노출 경로를 만들 수 있습니다. APK 체크섬을 비교한다고 해서 앱에 스캐닝 코드가 없다는 사실이 입증되지는 않습니다. 이는 선택한 바이트가 특정 다이제스트와 일치하는지라는 더 좁은 질문에 답할 뿐입니다.

이러한 주장을 구분하면 암호화와 소프트웨어 검증 모두 더 유용해집니다.

기기 내 스캐닝이 프라이버시 경계를 바꾸는 이유

앱은 메시지를 표시하거나 사진을 전송할 준비를 하기 위해 평문을 다뤄야 합니다. 이후 네트워크로 전송되는 메시지가 종단 간 암호화되더라도 스캐닝 기능은 이 지점에서 작동할 수 있습니다. 무엇이 기기 밖으로 나가는지는 스캐너 설계에 따라 달라집니다. 일치 결과를 보고하거나, 선택된 콘텐츠를 업로드하거나, 그 밖의 파생 정보를 전송할 수 있습니다.

연구 논문 Bugs in our Pockets는 악용, 오탐, 추가 공격 표면 등의 위험을 살펴봅니다. 이는 제안된 스캐닝 시스템의 데이터 흐름과 거버넌스를 점검해야 하는 이유입니다. 모든 기기 내 기능이 감시라는 사실이나, 특정 법률이 보편적인 스캐닝 의무를 부과했다는 사실을 입증하는 것은 아닙니다.

사용자가 통제하는 로컬 기능이 곧 의무 보고와 같은 것은 아닙니다. 누가 분석을 선택하는지, 무엇이 분석을 촉발하는지, 누가 규칙을 갱신할 수 있는지, 어떤 데이터가 기기 밖으로 나갈 수 있는지 질문하세요.

서로 다른 네 가지 소프트웨어 증거

검사 입증할 수 있는 것 그것만으로 입증할 수 없는 것
SHA-256 체크섬 파일이 신뢰할 수 있는 기준 다이제스트와 일치함 기준 프로그램이 안전하거나 소스 코드와 일치함
APK 서명 검증 패키지 서명이 검증되고 서명 인증서를 식별할 수 있음 서명자를 신뢰할 수 있거나 코드에 원치 않는 동작이 없음
재현 가능한 빌드 지정된 소스와 빌드 입력으로 예상한 산출물을 생성할 수 있음 소스에 취약점이나 유해한 로직이 없음
독립적인 검토 및 테스트 정해진 버전과 범위에 대한 발견 사항 향후 모든 업데이트를 포괄하는 영구적인 보장

Android의 apksigner 문서는 패키지 검증과 인증서 정보 출력을 설명합니다. 재현 가능한 빌드의 정의는 산출물을 재현할 때 소스, 빌드 환경, 지침이 모두 중요한 이유를 설명합니다.

소스 아카이브와 그 옆에 표시된 체크섬만으로는 재현 가능한 빌드의 결과가 되지 않습니다. 마찬가지로 악성 릴리스에 붙은 유효한 서명도 여전히 유효한 서명입니다.

결과를 과대 해석하지 않고 다운로드를 확인하는 방법

먼저 의도한 릴리스를 식별하고 신뢰할 수 있는 배포 경로에서 APK와 예상 다이제스트를 받으세요. 로컬에서 다이제스트를 계산하세요. 값이 다르면 불일치의 원인이 밝혀지기 전에는 파일을 설치하지 마세요. 다른 릴리스, 불완전한 다운로드, 변조 모두 불일치를 일으킬 수 있습니다.

일치하면 릴리스와 결과를 기록하세요. 확인한 것은 해당 기준에 대한 바이트의 동일성이지 클라이언트 측 스캐닝이 없다는 사실이 아닙니다. 같은 공격자가 다운로드 파일과 표시된 체크섬을 모두 바꿀 수 있다면 비교는 여전히 통과할 수 있습니다. 독립적인 기준 정보, 서명 키의 연속성, 릴리스 투명성은 이 신뢰 문제의 서로 다른 부분을 다루는 데 도움이 됩니다.

소스와 바이너리의 대응 관계에 관한 주장이라면 실제 릴리스에 대한 문서화된 빌드 지침과 독립적으로 재현한 결과를 찾으세요. “오픈 소스”라는 말만으로 그 속성을 추론하지 마세요.

업데이트는 여전히 중요합니다

소프트웨어 배포는 공격받을 수 있지만 보안 업데이트를 무기한 피하는 것은 건전한 일반 방어책이 아닙니다. 업데이트는 악용 가능한 취약점도 고칩니다. 신뢰할 수 있는 업데이트 경로를 이용하고, 중요한 보안 공지를 검토하며, 자신의 위험 수준상 필요할 때 릴리스 증거를 검증하세요. 알려진 결함이 있는 구버전이 과거에 체크섬이 일치했다는 이유만으로 더 안전하지는 않습니다.

Livara의 Proof Lab이 입증하는 것

Livara의 Proof Lab은 로컬 APK 다이제스트 비교와 브라우저 암호 기술 시연을 제공합니다. 해당 페이지는 완전한 LVR1/LGS1 래칫을 실행하지 않으며 프로토콜 감사에 해당하지 않는다고 명시합니다. 위협 모델도 공격자가 파일과 예상 다이제스트를 모두 교체할 수 있을 때의 한계를 설명합니다.

이러한 검사는 그 범위 안에서 유용합니다. 하지만 앱이 설치된 휴대전화에 악성코드가 없다는 사실, Livara의 릴리스가 독립적으로 재현 가능하다는 사실, 앱에 공개되지 않은 동작이 포함될 수 없다는 사실을 입증하지는 않습니다. 주장하는 메시지 보호 경계에 대해서는 보안 문서를 별도로 읽어 보세요.

올바른 질문은 배지 하나에 “검증됨”이라고 적혀 있는지가 아닙니다. 어떤 주장을, 어떤 신뢰할 수 있는 기준과 비교해, 정확히 어떤 릴리스에 대해 테스트했는지가 중요합니다.

Proof Lab에서 앱 검증하기
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗