앱의 부인 가능성: 무엇이며 왜 중요한가
부인 가능성은 숨긴 데이터의 존재를 증명할 수 없다는 뜻입니다.
암호화에서 부인 가능성이란 사용자가 한 데이터 세트를 공개하더라도 다른 데이터 세트가 존재한다는 것을 증명하는 구조적 흔적이 남지 않게 하는 저장소의 속성입니다. 이 주장은 위협 모델을 명시해야 합니다. 적절히 패딩된 암호화 저장소의 정적 이미지는 이미 침해된 실행 중인 기기, 클라우드 서비스 메타데이터, 다른 곳에 보관된 사본과 다릅니다. 이는 단순한 숨김 기능 이상입니다. 암호화, 레이아웃, 패딩, 운영 설계가 함께 작동해야 합니다.
이 가이드에서는 앱에서 부인 가능성이 어떻게 작동하는지, 진정한 암호학적 부인 가능성과 겉모습뿐인 미끼 모드의 차이, 부인 가능성이 중요한 실제 상황, 부인 가능성 주장을 평가하는 방법을 설명합니다.
암호화에서 부인 가능성의 의미
일상 언어에서 부인 가능성은 어떤 일을 신빙성 있게 부인할 수 있다는 뜻입니다. 저장소 암호학에서 현실적인 목표는 더 좁습니다. 명시된 위협 모델 안에서, 암호화 저장소를 조사하는 사람이 숨긴 콘텐츠와 패딩된 미사용 공간을 구별할 수 없어야 합니다. 어떤 앱도 이미 열린 금고, 기록된 입력, 외부 사본, 모든 형태의 기기 침해까지 이 약속을 확장할 수는 없습니다.
이 개념은 디스크 암호화에서 시작되었습니다. TrueCrypt(그리고 후속작 VeraCrypt)는 숨겨진 볼륨, 즉 암호화된 볼륨 안의 또 다른 암호화된 볼륨을 처음 도입했습니다. 한 비밀번호는 평범한 파일이 담긴 외부 볼륨을 엽니다. 다른 비밀번호는 민감한 파일이 담긴 내부의 숨겨진 볼륨을 엽니다. 외부 볼륨의 미사용 공간이 암호화된 데이터와 구별할 수 없는 무작위 데이터로 채워져 있으므로, 포렌식 조사관은 숨겨진 볼륨의 존재 여부를 판단할 수 없습니다.
앱에서 부인 가능성이란 서로 다른 자격 증명(비밀번호, PIN, 패턴)이 서로 다른 데이터 세트를 열고, 추가 데이터 세트의 존재를 드러내는 메타데이터, 레지스트리, 설정 플래그, 구조적 흔적이 전혀 없다는 뜻입니다.
진정한 부인 가능성 대 겉모습뿐인 미끼 모드
대부분의 앱이 잘못 이해하는 핵심적인 차이입니다.
겉모습뿐인 미끼 모드(진정한 부인 가능성이 아님)
많은 금고 앱이 "미끼" 또는 "가짜 PIN" 기능을 제공합니다. 보조 PIN을 설정하면 다른 사진이 담긴 별도 공간이 열립니다. 문제는 이런 앱이 보통 미끼 모드가 존재하고 설정되었음을 나타내는 불리언 플래그, 데이터베이스 항목, 설정 파일을 저장한다는 점입니다.
앱을 이해하는 포렌식 조사관은 이 플래그를 찾을 수 있습니다. 설정된 미끼 모드를 찾으면 숨긴 데이터가 존재한다는 것이 증명됩니다. 이런 부인 가능성은 겉모습뿐입니다. 가볍게 훔쳐보는 사람에게는 통하지만 포렌식 조사에는 무너집니다.
겉모습뿐인 부인 가능성의 징후:
- 앱 설정에 "미끼 모드" 토글이 있습니다
- 설정 파일에 미끼 모드 활성화 여부가 저장됩니다
- 데이터베이스 테이블에 유형 표시(기본/미끼)와 함께 금고 ID가 나열됩니다
- 미끼 모드를 켜면 앱의 저장소 구조가 바뀝니다
- 미끼 모드를 설정했던 경우 앱을 삭제하고 다시 설치하면 다른 동작이 드러납니다
진정한 암호학적 부인 가능성
진정한 부인 가능성은 기능 토글이 아니라 아키텍처의 속성입니다. 암호화 저장소는 다음과 같이 설계되어야 합니다.
대체 자격 증명은 자신의 데이터 세트만 공개합니다. 시스템은 어떤 자격 증명을 위장용으로 식별하는 별도의 미끼 플래그를 두지 않습니다. 잘못된 자격 증명은 실패할 수 있지만, 그 실패가 공개되지 않은 데이터 세트의 존재 여부를 드러내서는 안 됩니다.
금고 레지스트리가 없습니다. 앱은 금고가 몇 개 있는지 열거할 수 없습니다. 개수도, 색인도, 금고 ID 목록도 없습니다. 앱의 저장소를 조사하는 포렌식 조사관은 구분되지 않는 암호화 데이터 풀만 발견합니다.
숨긴 금고를 드러내는 설정 플래그가 없습니다. 추가 금고의 존재 여부를 나타내는 불리언, 데이터베이스 항목, 환경설정 파일이 없습니다.
저장소가 패딩됩니다. 전체 저장소 사용량은 금고나 파일 수에 따라 변하지 않습니다. 패딩이 없으면 조사관은 보이는 콘텐츠와 전체 암호화 데이터 크기를 비교해 금고 수를 추정할 수 있습니다.
암호화된 데이터는 무작위 노이즈와 구별할 수 없습니다. 한 금고의 데이터가 어디서 끝나고 다른 금고의 데이터가 어디서 시작하는지 드러내는 파일 경계, 헤더, 구조적 표식이 없습니다.
| 속성 | 겉모습뿐인 미끼 | 진정한 부인 가능성 |
|---|---|---|
| 자격 증명별 별도 데이터 | 예 | 예 |
| 금고 레지스트리 없음 | 아니요(데이터베이스가 금고를 추적) | 예 |
| 설정 플래그 없음 | 아니요(미끼 토글 저장) | 예 |
| 저장소 패딩 | 드묾 | 예 |
| 정적 이미지에서 대체 저장소를 숨김 | 아니요 | 예, 명시된 저장소 위협 모델 안에서 |
| 아키텍처 대 기능 | 기능 토글 | 아키텍처 속성 |
부인 가능성이 중요한 실제 상황
부인 가능성은 이론적인 걱정이 아닙니다. 기록으로 남아 있고 반복되는 실제 상황을 다룹니다.
국경 통과
국경 검문소에서 조사관은 기기를 검사하고 자격 증명을 요구할 수 있습니다. 설계가 실제로 저장소 수준의 부인 가능성을 제공한다면, 한 자격 증명으로 평범한 데이터 세트를 공개하는 동안 정적 이미지에는 숨긴 콘텐츠와 패딩을 구별하는 구조적 표식이 없습니다. Vaultaire의 현재 금고당 색인 파일 하나 구조는 앱 컨테이너에 접근할 수 있는 조사관에게 이 보장을 제공하지 않습니다.
가정 폭력과 강압적인 관계
학대 관계에 있는 사람은 가해자가 감시하는 기기에 증거(부상 사진, 협박 메시지, 법률 문서)를 보관해야 할 수 있습니다. 가해자가 금고를 보여 달라고 요구하면, 사용자는 민감하지 않은 콘텐츠가 담긴 금고를 열 수 있습니다. 진정한 부인 가능성이 없으면 앱 설정에 있는 "미끼 모드" 플래그가 숨긴 콘텐츠의 존재를 드러냅니다.
기기 도난
기술을 갖춘 도둑은 훔친 휴대폰에서 데이터를 추출하려 할 수 있습니다. 적절히 패딩된 부인 가능 저장소는 풀에 데이터 세트가 몇 개 있는지 숨기는 것을 목표로 하지만, 전체 할당량, 기기 상태, 백업, 운영상의 흔적은 여전히 위협 모델에 포함해야 합니다. Vaultaire는 현재 콘텐츠를 암호화하지만, 설정된 금고마다 셀 수 있는 로컬 색인 하나를 노출합니다.
법률 및 언론 보호
취재원을 보호하는 기자, 고객 파일을 보호하는 변호사, 권위주의 체제의 활동가는 기기 내용 공개를 강제당할 수 있는 상황에 처합니다. 진정한 부인 가능성은 데이터 압수에 맞서는 신빙성 있는 방어 수단이 됩니다.
Vaultaire가 현재 구현하는 것
Vaultaire는 패턴으로 분리된 접근과 금고 목록이 보이지 않는 일반 인터페이스를 구현합니다. 이런 속성은 평소 앱을 사용할 때 도움이 되지만, 위에 나온 진정한 부인 가능성 체크리스트의 모든 요건을 충족하지는 않습니다.
설정된 패턴은 각각 별도의 암호화된 금고를 엽니다. PBKDF2가 패턴과 기기 전체 솔트에서 금고 키를 파생합니다. 설정된 키는 해당 암호화 색인을 인증하고 무작위 마스터 키의 래핑을 풉니다. 설정되지 않은 패턴은 "잘못된 패턴" 메시지 대신 빈 상태를 보여 줍니다.
로컬 형식은 열거할 수 있습니다. Vaultaire는 금고마다 vault_index_<fingerprint>.bin 파일 하나를 저장합니다. 핑거프린트는 패턴이나 금고 이름을 드러내지 않지만, 앱 컨테이너에 접근할 수 있는 사람은 색인 파일 수를 셀 수 있습니다. AES-GCM 인증과 결정적 파일 이름은 후보 금고 키를 오프라인으로 검증하는 수단도 제공합니다.
로컬 저장소 크기는 일정하지 않습니다. 파일 콘텐츠와 메타데이터는 암호화되며, 클라우드 백업 청크에는 크기 패딩과 미끼 레코드가 사용됩니다. 로컬 앱 컨테이너는 실제 금고 슬롯과 더미 슬롯으로 이루어진 고정 풀을 예약하지 않으므로, 전체 저장소 크기와 색인 수로 구조가 드러날 수 있습니다.
복구 및 강압 상태가 존재합니다. Vaultaire는 복구 정보를 AES-GCM으로 암호화된 키체인 데이터베이스에 보관합니다. 강압 모드는 강압용이 아닌 금고의 로컬 색인과 복구 매핑을 제거하고 해당 기기를 동기화에서 분리합니다. 클라우드 백업, 다른 기기의 사본, 공유된 모든 암호화 블롭을 지우지는 않으며, 완료 시간은 수행되는 로컬 작업량에 따라 다릅니다.
따라서 Vaultaire가 제공하는 것은 인터페이스 구획화와 암호화 저장소이지, 추가 금고가 없다는 정보이론적 증명이 아닙니다. 오프라인 앱 컨테이너 스냅샷에서 로컬 금고 수를 숨기려면, 실제 슬롯과 더미 슬롯을 구별할 수 없는 고정 용량 카탈로그가 앞으로 필요합니다.
부인 가능성 주장을 평가하는 방법
앱이 부인 가능성을 주장하면 다음을 확인하십시오.
- "미끼 모드" 토글이 있습니까? 있다면 겉모습뿐입니다. 포렌식 조사관은 토글을 찾을 수 있습니다.
- 앱에 금고 목록이나 데이터베이스가 있습니까? 있다면 금고의 존재를 증명할 수 있습니다.
- 추측을 오프라인으로 검증할 수 있습니까? 인증된 암호문은 별도의 비밀번호 해시 없이도 후보 키를 검증할 수 있습니다. 무엇이 추측 비용을 제한하는지, 저장소 구조가 더 저렴한 키 핑거프린트를 제공하지는 않는지 확인하십시오.
- 금고 수에 따라 저장소 사용량이 변합니까? 변한다면 디스크 분석으로 금고 수를 추정할 수 있습니다.
- 앱이 금고를 열거할 수 있습니까? 앱이 금고 목록을 보여 줄 수 있다면, 그 목록은 기기에 존재하며 찾아낼 수 있습니다.
자주 묻는 질문
부인 가능성은 합법입니까?
부인 가능성을 갖춘 암호화를 사용하는 것은 대부분의 민주 국가에서 합법입니다. 존재를 증명할 수 없는 암호화 데이터를 기기에 보관하는 것을 금지하는 법은 없습니다. 일부 관할권(RIPA에 따른 영국, Assistance and Access Act에 따른 호주)에서는 당국이 암호화 키 공개를 강제할 수 있습니다. 법적 쟁점은 존재를 증명할 수 없는 데이터의 키 공개를 강제하는 것이 집행 가능한지입니다. 이는 아직 발전 중인 법 영역입니다.
포렌식 도구가 부인 가능성을 탐지할 수 있습니까?
Vaultaire의 앱 컨테이너를 확보한 조사관은 암호화 저장소를 탐지하고 금고별 저장소 디렉터리 수를 셀 수 있습니다. vault_index_*.bin 루트 파일은 위장 파일과 함께 64개 풀로 존재하지만, 디렉터리를 보면 어느 것이 실제인지 알 수 있습니다. 파일은 금고 이름이나 평문 내용을 드러내지 않지만, 그 수는 로컬 암호화 색인의 개수를 드러냅니다. 따라서 현재 설계는 금고를 일반 탐색에서 숨길 뿐, 모든 포렌식 저장소 조사에서 숨기지는 않습니다.
부인 가능성은 작정한 국가 수준의 공격자에게도 통합니까?
AES-256-GCM은 키, 논스, 구현이 건전할 때 강력한 콘텐츠 암호화 경계를 제공합니다. 그렇다고 Vaultaire의 현재 저장소 구조가 국가 수준의 조사관에게 부인 가능해지지는 않습니다. 로컬 색인 수는 여전히 보이며, 실행 중인 기기가 침해되면 금고가 열려 있는 동안 패턴, 키, 미리보기, 내보내기가 표적이 될 수 있습니다. 현재 기능은 패턴마다 인터페이스에서 여는 대상을 분리할 뿐, 작정한 조사관이 추가 로컬 색인의 존재를 증명할 수 없다고 약속하지는 않습니다.
부인 가능성과 숨겨진 금고의 차이는 무엇입니까?
숨겨진 금고는 앱의 일반 인터페이스에 보이지 않는 금고입니다. 강력한 암호학적 부인 가능성은 숨긴 데이터를 패딩된 미사용 저장 공간과 구별할 수 없다는 별개의 속성입니다. Vaultaire는 현재 첫 번째 속성을 제공합니다. 금고당 색인 파일 하나를 쓰는 형식은 앱 컨테이너에 접근할 수 있는 조사관에 대해 두 번째 속성을 제공하지 않습니다.
클라우드 백업에서도 부인 가능성을 쓸 수 있습니까?
Vaultaire는 암호화된 백업 매니페스트와 패딩된 암호화 파일 청크를 사용자의 비공개 CloudKit 데이터베이스에 씁니다. 무작위 레코드 이름, 균일한 레코드 유형, 10MB 청크 패딩, 미끼 레코드는 콘텐츠가 직접 노출되는 것을 줄여 줍니다. 레코드 수, 전체 용량, 타이밍, 업데이트 패턴은 서비스 메타데이터로 여전히 보이므로, 클라우드 백업이 크기가 일정하고 정보이론적으로 부인 가능한 저장소를 만들지는 않습니다.
결론
강력한 저장소 부인 가능성은 정적 암호화 저장소에서 조사관이 숨긴 데이터와 패딩된 여유 공간을 구별하지 못하게 하는 것을 목표로 합니다. 이 기능을 내세우는 앱 대부분은 찾아낼 수 있는 설정 플래그가 있는 겉모습뿐인 미끼 모드를 제공합니다. 더 엄격한 정의를 충족하려면 정확한 위협 모델, 셀 수 있는 금고 레지스트리의 부재, 드러나는 설정 플래그의 부재, 안정적인 패딩, 어느 슬롯이 실제인지 노출하지 않는 암호화 레코드가 필요합니다.
Vaultaire는 설정된 패턴으로 암호화된 금고를 분리하고, 잠긴 인터페이스에서 금고 이름과 내용을 드러내지 않습니다. 하지만 현재 저장소 구조는 앱 컨테이너 조사 시 암호화 색인 수를 여전히 노출합니다. 이를 추가 금고가 없다는 증명이 아니라, 인증된 암호화가 뒷받침하는 인터페이스 수준의 은폐로 받아들이십시오.