Privacy & Control

심층 방어: GemReader의 다계층 PIN 및 창 보안 아키텍처

2026년 9월 21일 · 4 min read

커스텀 터치 프리미티브를 통해 시스템 키보드를 우회하고, 참조 카운트 기반 FLAG_SECURE 창 마스킹을 적용하며, AES-GCM 보관함 키를 파생하는 엔지니어링 분석.

표준 모바일 입력 방식의 취약성

과거 학자들과 수집가들이 귀중한 서책을 보관할 때 보안은 물리적이고 완벽했습니다. 잠금 장치가 달린 궤와 비밀 암호는 해제 과정 자체가 타인에게 노출되지 않도록 정교하게 설계되었습니다. 현대의 모바일 독서 환경에서도 개인 연구 자료를 보호하기 위해 이와 같은 철저함이 요구됩니다. 그러나 모바일 운영체제의 표준 입력 방식은 보이지 않는 구조적 취약점으로 인해 사용자 프라이버시를 위협하곤 합니다.

대부분의 모바일 앱은 운영체제의 소프트웨어 키보드와 직접 연결되는 표준 텍스트 필드를 사용합니다. 일상적인 대화에는 편리하지만, 시스템 키보드는 서드파티 입력기(IME), 클라우드 기반 자동완성 엔진, 백그라운드 접근성 서비스의 감시를 받기 쉽습니다. 시스템 키보드로 비밀번호를 입력하면 인증 로직이 실행되기도 전에 키 입력 데이터가 텔레메트리 파이프라인과 클립보드 버퍼로 유출될 수 있습니다.

NumericKeypad를 통한 신호 차단 터치 격리

서드파티 키보드로 인한 공격 경로를 원천 차단하기 위해, GemReader는 잠긴 서재(Locked Libraries)를 해제할 때 Android 소프트웨어 키보드를 완전히 우회합니다. 표준 텍스트 입력창 대신 커스텀 터치 프리미티브로 직접 제작한 전용 인앱 키패드를 화면에 렌더링합니다.

이 전용 키패드는 앱의 격리된 UI 트리 내에서만 작동하므로 Android 운영체제는 키보드 호출 명령을 전혀 받지 않습니다. 키 터치는 외부 IME에 이벤트를 전달하거나 단어 예측 버퍼를 채우지 않고 메모리 상의 컴포넌트 상태만을 즉시 업데이트합니다. 선택 가능한 마스킹 기능은 정확한 터치 반응을 유지하면서 곁눈질로 인한 비밀번호 노출을 방지합니다.

참조 카운트 기반 창 보안 및 최근 앱 미리보기 차단

키 입력 보호는 물리적 프라이버시의 절반에 불과하며, 시각적 캐시 또한 매우 중대한 위협입니다. 사용자가 앱 간 전환을 할 때 모바일 운영체제는 최근 실행 앱 목록에 썸네일을 띄우기 위해 화면 스크린샷을 자동으로 캡처합니다. 명시적인 창 보안 조치가 없다면 백그라운드로 전환된 독서 화면의 책 제목과 본문 내용이 그대로 노출될 수 있습니다.

Android는 화면 캡처, 녹화, 화면 공유 및 최근 앱 미리보기 생성을 차단하는 `FLAG_SECURE` 네이티브 창 플래그를 제공합니다. 그러나 모달 창과 암호화 백업 대화상자가 겹치는 복잡한 앱 환경에서 단순한 불리언 스위치를 사용하면 경쟁 상태(race condition)가 발생하여 한 대화상자를 닫을 때 하위 화면의 보호가 의도치 않게 해제될 위험이 있습니다.

GemReader는 참조 카운팅(reference-counted) 캡처 방지 레지스트리로 이 문제를 해결합니다. 각 보안 컴포넌트는 마운트 시 고유한 키를 등록하고 언마운트 시 등록을 해제합니다. 활성 보호 카운트가 0보다 큰 동안에는 `FLAG_SECURE` 상태가 유지되며, 등록된 모든 컴포넌트가 안전하게 종료되었을 때만 보호가 해제됩니다.

폴더 기반 AES-GCM 암호화 키 파생 및 해제

많은 독서 앱에서 폴더 잠금은 단순히 화면에서 책을 숨기는 겉치레에 불과하며, 기기 저장소의 EPUB 파일 자체는 암호화되지 않은 평문 상태로 방치됩니다. GemReader는 PIN 입력을 단순한 화면 접근 확인이 아닌 진정한 암호화 키 언래핑(unwrapping) 작업으로 처리합니다.

잠긴 서재에 저장된 책들은 AES-GCM 알고리즘을 통해 로컬 저장소에 암호화되어 보관됩니다. 폴더 PIN을 입력하면 앱은 마스터 시크릿과 입력된 PIN으로부터 임시 복호화 키를 파생합니다. EPUB 리소스는 활성 독서 세션 동안 강화된 리더 엔진 메모리 내에서만 온디맨드로 복호화됩니다. 잘못된 PIN을 입력하면 키 파생이 즉시 실패하여 원본 데이터는 암호화된 상태로 안전하게 남습니다.

온전한 몰입을 위한 견고한 아키텍처

진정한 디지털 안식처는 막연한 신뢰가 아니라 검증 가능한 심층 방어 아키텍처로 뒷받침되어야 합니다. 격리된 터치 입력, 참조 카운트 기반 창 차단, 로컬 AES-GCM 암호화를 결합하여 GemReader는 연구 자료, 개인 노트, 중요한 문서를 사용자의 통제 아래 안전하게 지킵니다.

학술 연구서를 읽든 개인 일기를 기록하든, 독서 활동은 데이터 수집과 화면 캡처 위험으로부터 보호받아야 합니다. 텔레메트리 제로, 로컬 키 파생, 다계층 창 보안을 통해 사용자의 서재는 오롯이 자신만의 프라이빗한 공간으로 유지됩니다.