암호 이름만 보지 말고, 누가 평문에 접근하고 업데이트에 영향을 줄 수 있는지 비교하세요.
암호화된 웹 메신저가 무조건 위험한 것도, 네이티브 Android 앱이 무조건 안전한 것도 아닙니다. 둘 다 종단간 암호화를 구현할 수 있으며, 둘 다 사용자 기기에서 평문을 처리해야 합니다. 의미 있는 비교를 하려면 누가 클라이언트에 영향을 미치고, 화면에 표시된 내용을 읽거나 암호화 키에 접근할 수 있는지 살펴봐야 합니다.
같은 이름의 알고리즘을 사용한다고 해서 두 클라이언트의 구현이나 보안 수준이 동일하다는 뜻은 아닙니다. Livara의 경우 공개된 보안 아키텍처가 의도한 보호 방식을 설명합니다. 이 글은 플랫폼의 신뢰 경계를 비교하는 것이며, 어느 클라이언트에 대해서도 독립적인 감사를 수행한 결과가 아닙니다.
확인할 가치가 있는 차이점
| 영역 | 웹 클라이언트 | Android 클라이언트 |
|---|---|---|
| 코드 배포 | 사이트 코드, 의존성, 브라우저 캐시와 업데이트 동작 | 설치된 패키지와 업데이트 경로 |
| 추가 소프트웨어 | 관련 권한을 가진 확장 프로그램, 사이트에 주입된 코드 | 접근성 서비스, 키보드와 그 밖의 높은 권한을 가진 소프트웨어 |
| 저장소 | 브라우저 프로필과 출처별 저장소 | 앱 저장소, 운영체제의 제어 기능과 백업 설정 |
| 물리적 접근 | 잠금 해제된 브라우저 세션과 공용 컴퓨터 | 잠금 해제된 휴대전화와 활성 앱 세션 |
| 무결성 확인 | 사이트의 코드 전달 과정과 브라우저 보안에 대한 신뢰 | 패키지 서명과, 제공되는 경우 신뢰할 수 있는 릴리스 해시 |
이는 서로 다른 공격 표면이지, 모든 경우에 적용되는 순위가 아닙니다. 잘 관리되는 전용 브라우저가 악성 소프트웨어가 설치된 오래된 휴대전화보다 나은 선택일 수 있습니다.
확장 프로그램이 암호화된 채팅 메시지를 읽을 수 있나요?
적절한 사이트 접근 권한이 있는 확장 프로그램은 콘텐츠 스크립트로 페이지 내용을 읽거나 바꿀 수 있습니다. Chrome의 콘텐츠 스크립트 문서는 이 스크립트가 페이지의 DOM과 상호작용한다고 설명합니다. 메시지가 DOM에 읽을 수 있는 텍스트로 표시된다면, 권한이 부여된 스크립트는 메시지 암호화를 깨지 않고도 그 내용에 접근할 수 있습니다.
확장 프로그램은 일반적으로 격리된 JavaScript 환경에서 실행되지만, 그렇다고 페이지의 화면에 보이는 DOM까지 확장 프로그램으로부터 격리되는 것은 아닙니다. 반대로 같은 브라우저 프로필의 무관한 웹사이트가 다른 사이트의 채팅을 자동으로 읽을 수 있다고 말하는 것도 잘못입니다. 브라우저의 출처 경계는 여전히 중요하며, 이를 넘으려면 허용된 상호작용이나 취약점, 그 밖의 접근 수단이 필요합니다.
확장 프로그램의 사이트 접근 권한을 검토하고 불필요한 확장 프로그램을 제거하세요. 확장 프로그램을 최소화한 별도 프로필은 노출을 줄일 수 있지만, 침해된 운영체제나 안전하지 않은 사이트 코드를 해결해 주지는 않습니다.
WebCrypto가 제공하는 것과 제공하지 않는 것
W3C 웹 암호화 명세는 웹 애플리케이션에 암호화 연산을 제공합니다. 이 연산을 조합해 만든 프로토콜을 인증하거나 악성 스크립트를 무해하게 만들지는 않습니다.
추출 불가능한 키는 API를 통한 일반적인 키 자료 내보내기를 제한합니다. 적절한 접근 권한이 있는 코드는 그 키로 허용된 연산을 수행하거나 결과로 나온 평문을 읽을 수 있습니다. 따라서 키의 추출 불가능성은 침해된 애플리케이션 환경에 대한 완전한 방어책이 아닙니다. 알고리즘의 사용 가능 여부도 브라우저 구현에 따라 달라집니다. 명세의 이름만 보고 지원을 가정하지 말고 실제로 확인해야 합니다.
사용자가 실질적으로 확인할 사항은 브라우저와 운영체제가 최신 상태인지, 출처가 올바른지, 어떤 확장 프로그램이 사이트에 접근할 수 있는지, 앱이 영구 보관 키와 로그아웃을 어떻게 처리하는지입니다.
새로 전달된 웹 코드에는 언제나 최신 수정 사항이 있나요?
아닙니다. 웹을 통한 배포는 업데이트를 빠르게 할 수 있지만, 캐싱, 서비스 워커, 오래 열어 둔 탭에 따라 실제로 실행되는 코드가 달라질 수 있습니다. 사이트의 코드 전달 과정을 신뢰해야 한다는 뜻이기도 합니다. 설치형 앱에도 업데이트 지연, 서명 또는 배포 체계의 침해, 지원이 끝난 운영체제 버전과 같은 위험이 있습니다.
두 종류의 클라이언트 모두 공식 경로를 통해 최신 상태로 유지하세요. 페이지를 새로고침했다고 보안 패치가 적용되었다고 가정하거나, 패키지 서명이 있다고 앱에 취약점이 없다고 가정하지 마세요.
Android 다운로드를 확인하는 방법
Android 패키지 서명과 공개된 파일 해시는 서로 다른 질문에 답합니다. 공식 apksigner 문서는 서명 검증 방법을 설명합니다. SHA-256 비교로 다운로드한 파일이 특정 기준과 일치하는지 확인할 수 있지만, 그 기준 자체를 신뢰할 수 있어야 합니다.
공격자가 APK와 표시된 체크섬을 모두 통제한다면, 두 값이 일치해도 진위가 확인되지는 않습니다. 파일의 해시를 구하는 것만으로는 재현 가능한 빌드, 악성 동작의 부재, 암호화 구현의 정확성도 입증할 수 없습니다. Livara의 위협 모델은 신뢰할 수 있는 기준이 필요하다는 이 한계를 명시합니다.
블로그가 네이티브 앱을 더 안전하다고 부른다는 이유만으로 대체 앱을 사이드로드하지 마세요. 공식 배포 경로와 설치하려는 정확한 버전을 확인하세요.
플랫폼 선택 체크리스트
- 공용 컴퓨터인가요? 비공개 채팅 세션을 열어 둔 채 자리를 떠나지 말고, 저장된 세션과 로그아웃 동작을 확인하세요.
- 확장 프로그램이 많나요? 사이트 접근 권한을 줄이거나 민감한 작업에는 불필요한 확장 프로그램이 없는 프로필을 사용하세요.
- 조직이 관리하는 기기인가요? 개인 계정을 사용하기 전에 조직의 기기 관리 및 모니터링 정책을 이해하세요.
- 신뢰할 수 없는 Android 서비스가 있나요? 접근성, 알림, 키보드, 원격 지원 접근 권한을 검토하되 필요한 보조 도구를 무분별하게 비활성화하지 마세요.
- 오래 보관한 대화 기록이 있나요? 무엇이든 삭제하기 전에 브라우저 저장소 정리나 앱 재설치 후 키와 백업이 어떻게 유지되는지 확인하세요.
- 위험도가 높은 대화인가요? 신뢰할 수 있는 별도의 경로로 상대방을 확인하고, 대화 참여자 양쪽 기기의 보안을 고려하세요.
더 폭넓게 판단하려면 안전한 메신저 체크리스트를 활용하세요. 어느 플랫폼을 선택하든 수신자의 복사, 악성 기기의 접근, 서비스가 보관하는 메타데이터를 없애 주지는 않습니다.
자주 묻는 질문
브라우저 확장 프로그램이 암호화를 깨야 하나요?
페이지에 이미 표시된 평문에 접근할 수 있다면 그럴 필요가 없습니다. 그 접근 가능 여부는 관련 권한과 브라우저의 보호 장치에 따라 결정됩니다.
Android 앱이 언제나 더 안전한 선택인가요?
아닙니다. 기기 상태, 업데이트 지원, 설치 출처, 높은 권한을 가진 소프트웨어가 중요합니다. 실제로 사용하는 환경을 비교하세요.
체크섬이 일치하면 안전한 빌드라는 뜻인가요?
해시 함수에 대한 가정이 성립하는 한, 기준 해시와의 동일성을 입증합니다. 기준의 진위나 코드의 안전성을 입증하지는 않습니다.



