# 잠긴 기기의 데이터 추출을 막는 GrapheneOS 보호 체계

> Clean Markdown view of GeekNews topic #31848. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31848](https://news.hada.io/topic?id=31848)
- GeekNews Markdown: [https://news.hada.io/topic/31848.md](https://news.hada.io/topic/31848.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-27T09:45:32+09:00
- Updated: 2026-07-27T09:45:32+09:00
- Original source: [discuss.grapheneos.org](https://discuss.grapheneos.org/d/40700-grapheneos-protections-against-data-extraction-from-locked-devices)
- Points: 2
- Comments: 1

## Topic Body

- GrapheneOS는 **Android 17 보안 기능**과 최신 Pixel 하드웨어를 바탕으로 디스크 암호화, 무차별 대입 제한, 운영체제 공격 완화, 물리적 접근 방어를 결합함
- 최신 보안 요소는 PIN·암호 입력을 **최대 20회**로 제한하고 10회 실패 후 4시간, 15회 후 41일까지 지연하며, 소유자 인증 없는 펌웨어 변경을 막아 내부자 우회도 차단함
- 최대 128자 암호와 선택형 **지문+2차 PIN**을 지원해 6~8개의 무작위 Diceware 단어를 주 암호로 쓰면서도 일상적인 잠금 해제 편의성을 확보할 수 있음
- 잠긴 상태에서는 새 USB 연결을 소프트웨어와 하드웨어 양쪽에서 차단하고, **10분~72시간 자동 재부팅**과 메모리 초기화로 기기를 Before First Unlock 상태로 되돌림
- **강압 PIN·암호**는 어느 프로필의 인증 창에서 입력해도 기기를 삭제하지만, 전반적인 데이터 보호는 이 기능 하나가 아닌 암호화·하드웨어 보안·공격 완화 체계에 기반함

---

### 암호화와 인증 시도 제한
- 디스크 암호화를 직접 깨는 것은 가장 정교한 공격자에게도 현실적인 경로가 아니며, 공격자는 **After First Unlock 상태의 운영체제 취약점**을 악용하거나 PIN·암호를 무차별 대입해야 함
- Android 16 QPR2의 [보안 요소 시도 제한](https://source.android.com/docs/security/features/authentication/rate-limiting)은 실패 횟수에 따라 지연 시간을 단계적으로 늘림
  - 10회 실패하면 4시간, 15회 실패하면 41일까지 지연되며 전체 시도는 20회까지만 허용됨
  - 최근 실패한 서로 다른 값 5개를 조기에 거부해 반복 실수로 시도 횟수를 낭비하지 않게 함
  - GrapheneOS는 최신 세대 보안 요소의 시도 제한을 구현한 기기만 지원함
- 지원 기기의 보안 요소 펌웨어를 갱신하려면 유효한 서명 키와 더 높은 버전 번호뿐 아니라 **Owner 사용자 인증**도 필요함
  - 정부가 시도 제한을 제거한 펌웨어 제작을 강요하더라도 이를 설치해 제한을 우회할 수 없음
  - Pixel은 2017년 말 출시된 Pixel 2부터 내부 타이머와 [내부자 공격 방어](https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html)를 갖춘 보안 요소를 사용했으며, 이후 운영체제와의 통합도 개선됨
- GrapheneOS는 암호 길이 제한을 16자에서 **128자**로 늘려 보안 요소의 시도 제한에 의존하지 않는 고엔트로피 Diceware 암호 문구를 사용할 수 있게 함
- 선택형 지문+2차 PIN은 강한 주 암호와 편리한 일상 잠금 해제를 함께 지원함
  - Before First Unlock에서는 6~8개의 무작위 Diceware 단어로 구성된 주 암호를 사용하고, 이후에는 지문과 짧은 PIN을 조합할 수 있음
  - 유효한 지문을 인식한 뒤에도 2차 PIN을 입력해야 화면과 **하드웨어 키 저장소**의 잠금이 해제됨
  - 허용되는 지문 시도는 20회에서 5회로 줄고, 잘못된 2차 PIN도 실패 횟수에 포함됨

### 운영체제와 물리적 접근 방어
- GrapheneOS는 강화된 메모리 할당자와 하드웨어 메모리 태깅(MTE) 등 하드웨어 기반 기능으로 운영체제 공격의 난도를 높이며, 세부 항목은 [공격 완화 기능](https://grapheneos.org/features#exploit-protection)에서 확인할 수 있음
- 물리적으로 기기에 접근한 공격을 막기 위해 잠긴 동안 새 USB 연결을 **소프트웨어와 하드웨어 수준**에서 기본 차단하고, 활성 USB 연결이 사라지면 데이터 기능도 즉시 비활성화함
- 2021년 6월 도입된 잠금 기기 자동 재부팅 타이머는 **10분~72시간**으로 설정할 수 있음
  - 기본값은 처음 72시간이었으나 이후 18시간으로 낮아짐
  - 운영체제를 종료하고 다시 부팅하면서 메모리를 초기화해 기기를 Before First Unlock 상태로 되돌림
  - 2024년 4월에는 Pixel의 펌웨어 fastboot 모드 부팅에도 메모리 초기화가 추가됨
  - Apple과 Google도 iOS 18.1과 Android 16에 잠금 기기 자동 재부팅을 추가했으며, Android에서는 Advanced Protection Mode로 활성화할 수 있음
- Android는 보조 사용자와 Private Space마다 별도의 암호화 키를 사용함
  - GrapheneOS에서는 보조 사용자 세션 종료와 각 토글을 통해 재부팅 없이 해당 영역을 **Before First Unlock 상태**로 되돌릴 수 있음
  - 주 사용자 데이터를 다시 암호화된 정지 상태로 만들고 RAM의 잔여 데이터를 완전히 지우며 보안 요소 업데이트까지 차단하려면 기기 전체를 재부팅하는 편이 나음

### 강압 상황의 데이터 삭제
- 강압 PIN·암호는 현재 프로필의 PIN·암호를 요구하는 어느 운영체제 인증 창에서 입력해도 기기를 삭제함
  - 잠금 화면뿐 아니라 민감한 설정 변경 등 인증이 필요한 모든 창에서 작동함
  - 주 사용자, 보조 사용자, Private Space를 포함한 모든 프로필에서 사용할 수 있음
  - 지문 잠금 해제의 2차 PIN으로 입력해도 작동하지만 **SIM PIN에는 적용되지 않음**
- 강압 PIN·암호를 휴대전화 케이스나 지갑 속 종이에 적어 둘 수도 있지만, 실제 강압 상황에서 기기를 삭제하면 물리적·법적 결과가 생길 수 있어 사용 방식을 신중히 판단해야 함
- 강압 기능은 모든 프로필의 PIN·암호가 알려져도 데이터 복구 가능성을 완전히 없애지만 필수 방어 수단은 아니며, 전체 보호 기능은 [GrapheneOS 기능 목록](https://grapheneos.org/features)과 [릴리스 변경 기록](https://grapheneos.org/releases#changelog)에서 확인할 수 있음
- 현재 GrapheneOS가 요구하는 하드웨어 보안 기능과 업데이트는 **Pixel만 제공**하지만, Motorola Mobility와의 협력 및 Qualcomm의 개발 진전에 따라 2027년부터 달라질 예정임

## Comments



### Comment 62438

- Author: neo
- Created: 2026-07-27T09:45:33+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=49055169) 
- 이번 글은 강압 PIN 없이도 **GrapheneOS의 데이터 추출 방어력**이 강하다는 점을 분명히 하려고 [미국 국경 수색 중 강압 PIN으로 Pixel을 초기화했다가 기소된 사건](<https://www.theguardian.com/us-news/2026/jul/23/cop-city-protester-phone>)에 대응해 게시된 듯함  
  최근에는 GrapheneOS의 **18시간 자동 재부팅**이 기기를 최초 잠금 해제 전(BFU) 상태로 되돌려 키 추출을 막음으로써 기자의 취재 자료와 비밀 정보원을 보호했다는 [Computer Weekly 기사](<https://www.computerweekly.com/feature/Journalist-Richard-Medhurst-had-his-mobile-phone-seized-Did-using-a-secure-phone-protect-his-data>)도 나옴
  - 당사자가 **미국 영토 안에 있지 않았다면**, 미국에서만 적용되는 법률로 어떻게 기소할 수 있는지 여전히 궁금함
  - 첫 기사에서 “GrapheneOS가 기본적으로 범죄적이라는 메시지를 보낸다”는 인용은 상당히 유도적임. 결국 **보호는 범죄적이고 취약성은 준법적**이라는 구도를 만듦
  - 자동 재부팅 주기는 **최저 10분**까지 줄일 수 있음. 국경 통과나 시위처럼 압수 가능성이 예상된다면 일시적으로 짧게 설정하거나 직접 재부팅해 BFU 상태로 만드는 편이 좋음
  - Guardian 기사는 HN의 [기존 스레드](<https://news.ycombinator.com/item?id=49024436>)에서 논의됐지만, Computer Weekly 기사는 제출만 되고 별다른 논의가 없었음

- GrapheneOS에는 국경을 건너기 전에 휴대전화를 예방적으로 초기화할 수 있도록 **완전한 백업·복원 기능**이 필요함. Google Cloud나 iCloud처럼 모든 앱과 데이터를 개인 SSH/SFTP 서버에 백업하고 복원할 수 있으면 좋겠음  
  강압 PIN을 써서 기소 위험을 감수하기보다 휴대전화를 초기화한 뒤 직접 연락처 몇 개, 여권 사본, 항공권 PDF만 넣고 입국 심사에서 요구받으면 실제 PIN을 제공하는 편을 선호함. 여행 중 필요한 것은 암호 관리자나 원격 SSH 서버의 암호 문구만 기억해 필요한 데이터만 복원하고 언제든 다시 지우면 됨  
  다만 이를 기본 기능으로 만들면 수사기관이 모든 GrapheneOS 사용자의 원격 저장소를 의심하고 접속과 복원을 요구할 수 있으므로, 별도로 구성하는 편이 나을 수도 있음. 자연스러워 보이도록 평범한 구매와 YouTube 구독에만 쓰는 가짜 Google 계정을 준비하는 방법도 있음  
  3주 뒤 한 달간 해외여행을 앞두고 있어 휴대전화를 초기화하거나, 주 휴대전화는 집에 두고 가족 비상 연락처만 담은 150유로짜리 새 기기를 가져갈지 고민 중임. 잠금 화면만으로는 일반 Pixel Android가 아니라는 사실이 드러나지 않는 점은 다행임
  - GrapheneOS에는 Google 클라우드 백업보다 훨씬 많은 데이터를 다루는 **암호화 백업 시스템**이 이미 있음. 기기 간 전송 모드로 작동해 `allowBackup="false"`인 앱도 백업하며, 호환 API를 제공하는 임의의 동기화 서비스도 지원함  
    프로필별 백업이라 보조 사용자에 복원해 시험할 수도 있음. 구현과 사용자 경험을 더 단순하고 깔끔하게 만들기 위한 전면 개편을 계획 중이며, 현재는 다른 앱들을 먼저 개편하고 있음
  - SeedVault를 대체할 기능이 계획돼 있음: [암호화 백업 기능](<https://grapheneos.org/features#encrypted-backups>), [관련 이슈](<https://github.com/GrapheneOS/os-issue-tracker/issues/4687#issuecomment-3038977362>)
  - 다른 비밀번호로 **숨겨진 데이터 파티션**을 부팅하고 일상용 파티션은 감추는 기능이 더 유용해 보임. LUKS처럼 저장소 덤프는 무작위 데이터로 보이고 올바른 비밀번호만 대응하는 숨은 파티션을 찾아 복호화하는 방식임  
    잠금 화면에서 특수 PIN을 입력하면 약간의 지연 후 미끼 파티션으로 부팅되게 하면, 예상한 국경 검문뿐 아니라 불시 검사에서도 그럴듯한 부인 가능성을 확보할 수 있음
  - 개인 암호화 서버에 저장하고 버튼 한 번으로 복원하는 **완전한 백업**이 꼭 필요함. 휴대전화가 파손되거나 도난당하면 SeedVault가 놓친 항목을 몇 시간 동안 재설치·재설정해야 하고, 보안 요소 키에 묶인 계정 접근권까지 잃을 수 있어 걱정됨
  - 실제로 서구권의 문명국가에서 **Pixel에 GrapheneOS를 설치했다는 이유만으로** 국경에서 표적이 될 가능성이 있는지 의문임

- Android 패턴 잠금은 `Log2(389112) ≈ 18.57비트`의 엔트로피만 제공함. 무작위 문자 3개, 소문자 4개, 또는 **6자리 십진수 PIN**보다도 약함  
  긴 비밀번호는 기억법을 쓸 수 있지만 입력이 불편함. 너무 길면 해시 요약값을 쓰는 식으로 허용하면 될 텐데 강한 비밀번호 자체를 막으면 재사용이나 자기 자신에게 전송하는 나쁜 습관을 부추김
  - GrapheneOS는 Diceware 암호 문구를 위해 **최대 128자 비밀번호**를 지원함. 강한 암호 문구를 쓰면 보안 요소에 의존하지 않아도 되고, 무작위 6자리 PIN은 보안 요소의 시도 횟수 제한 덕분에 안전함. 총 20번만 시도할 수 있어 무작위 4자리 PIN도 충분할 수 있음  
    지문 잠금에는 두 번째 인증 PIN을 추가할 수 있어 생체 인증만 사용할 때의 단점 없이 강한 암호 문구를 편리하게 쓸 수 있음. 패턴 잠금은 실제 가능한 조합 중 극히 일부만 쓰게 유도해 계산보다 훨씬 취약하며, 잘못된 안전감을 주기 때문에 수년 전에 제거함. 내장 무작위 PIN·암호 문구 생성 기능도 개발 중임
  - GrapheneOS는 지문 시도 횟수를 20회에서 **5회**로 줄이고, 올바른 지문 뒤에도 두 번째 PIN을 요구할 수 있음. BFU에서는 6~8개의 무작위 Diceware 단어를 쓰고 평소에는 지문과 짧은 PIN을 조합하면 편리함  
    AOSP의 제한을 바꿔 최대 128자 비밀번호를 허용함. 긴 암호 문구는 재부팅 후에만 입력하면 되며, 보안 요소가 악용되더라도 보호된다는 장점이 있음
  - 최신 Pixel에는 무차별 대입을 막는 **TPM 유사 장치**가 있음. 패턴이 뻔하지 않다면 공격자는 보조 키 자료가 삭제돼 암호화 키를 잃기 전까지 20번만 시도할 수 있음  
    보안 칩에 대한 부채널 공격은 이론적으로 가능하지만, 이미 검증된 공격법과 기기 분해 및 정밀하고 파괴적인 작업이 필요함
  - 직접 GrapheneOS에 **35자 비밀번호**를 설정해 봤는데 아무 문제 없이 작동함

- Apple 기기와 같은 보안 보장을 원하면 범죄자로 취급되는 상황이 우스움. Apple에도 자동 재시작, 전체 암호화, Lockdown Mode가 있음
  - 당국은 GrapheneOS뿐 아니라 Apple에도 불만이 있지만, **iPhone 사용자를 범죄자라고 부르면 조롱받기 쉬움**. 반면 제3자 운영체제 설치는 낯설다는 이유로 이질화하고 주변화하기 쉬움

- 강압 비밀번호를 입력한 결과는 휴대전화를 넘겨받은 사람이 알아차릴 수 없어야 함. 실제 계정 정보는 지우되, 정중하고 무의미한 이메일 같은 **그럴듯한 콘텐츠가 채워진 운영체제**를 보여줘 수사관이 살펴볼 수 있게 해야 함
  - 이는 강압 비밀번호보다는 **미끼 비밀번호**라고 부르는 기능임
  - 앱과 데이터 일부를 별도 잠금 영역에 두고 기기 잠금 해제 후 추가 PIN을 요구하면 됨. 강압 PIN은 기기를 열면서 해당 영역을 지우고, 보안 영역이 애초에 설정되지 않았던 것처럼 보이게 할 수 있음  
    Google Photos나 Samsung 등 여러 운영체제와 서비스가 잠금 데이터 기능을 제공함
  - GrapheneOS의 강압 PIN·비밀번호는 **은밀한 초기화인 척하지 않으며**, 사용자가 기대하는 초기화를 안전하게 수행함. 법 집행 상황에서 어떻게 쓸지 결정하거나 법률 조언을 제공하는 것은 프로젝트 역할이 아니며, 관할권과 맥락에 따라 법이 크게 달라 변호사에게 물어야 함  
    프로필 삭제에는 그 존재를 입증하는 메타데이터가 기기 및 소유자 프로필의 암호화 저장소에 남음. ADB로 초기화 여부와 시각도 쉽게 확인할 수 있어 그럴듯한 부인 가능성을 제공할 수 없고, 이를 은밀하다고 믿게 하면 사용자를 위험에 빠뜨림  
    Android의 Private Space 숨김도 사용자 인터페이스에서만 어설프게 감출 뿐 공개된 탐지법이 여러 개이며, ADB까지 상대로 완전히 숨기기는 현실적으로 어려움. 불완전한 기능은 온라인 논의를 통해 빠르게 알려지고 LLM, 포렌식 도구와 안내서에 통합될 것임  
    GrapheneOS 기능은 **기능의 존재를 아는 적대자**에게도 작동해야 함. 강압 PIN은 실제 PIN과 구별할 방법이 없어, 기능을 쓰지 않는 사용자에게 받은 PIN조차 강압 PIN일 가능성을 고려하게 만듦  
    향후 기기에서는 운영체제 취약점으로도 우회하지 못하도록 Weaver 시도 횟수 제한의 일부로 보안 요소 자체에 강압 PIN 지원을 추가하려 함

- 최초 잠금 해제 후(AFU)에 기기를 잠근 상태에서도 보호되는지 궁금함. 자주 사용하므로 수사기관이나 공격자가 확보하기 전에 잠그더라도 AFU 데이터를 보호하지 못한다면 소용이 적고, 수사기관은 Cellebrite 같은 도구로 당일 분석도 가능함  
  VeraCrypt를 쓰면서도 재부팅이 귀찮아 PC를 켜두는 것과 비슷하며, 이 경우 메모리 추출로 복호화될 수 있음
  - GrapheneOS는 **AFU 상태의 잠긴 프로필도 강하게 보호**함. 기본적으로 잠근 지 18시간 뒤 자동 재부팅해 작동하는 취약점 공격의 유효 시간을 제한하며, 사용자가 10분까지 줄일 수 있음  
    18시간은 하루에 몇 번만 휴대전화를 쓰는 사람에게도 거의 발동하지 않도록 정한 값임. 대개 최대 수면 시간보다 조금 길면 충분하고, 밤중 재부팅 자체는 괜찮지만 통신사 전화가 아닌 긴급 연락 등을 놓칠 수 있음  
    최근 공개된 Cellebrite Premium 문서에서도 **2022년의 특정 패치 수준 이후로 업데이트된 GrapheneOS 잠금 기기**를 공격할 수단이 없는 것으로 나타남

- GrapheneOS와 Motorola의 협력이 아직 진행 중인지, Motorola 기기가 언제 출시될지 궁금함
  - 프로젝트 직원이 아닌 단골 기여자에 따르면 [약 12개월 이내인 2027년](<https://news.ycombinator.com/item?id=49038982>)으로 예상됨

- TSA나 출입국 심사를 통과할 때는 휴대전화와 노트북을 항상 꺼둠. 미국에서는 비밀번호 제공을 강제할 수 없다고 보며, 기기를 압수하더라도 전원이 꺼져 있다면 비밀번호를 깨기 어려움
  - 종료나 재시작으로 **BFU 상태**를 만드는 것이 훨씬 안전함. 최신 Cellebrite 유출 자료를 보면 GrapheneOS는 AFU 상태에서도 공격할 수 없는 것으로 보임  
    GrapheneOS의 자동 재부팅은 최저 10분까지 설정할 수 있고 기본값은 18시간임. 이후 Google과 Apple도 고정 72시간 타이머를 도입함  
    다만 GrapheneOS에는 더 빠른 종료 바로가기가 있으면 좋겠음. 현재는 물리 버튼을 누른 뒤 화면에서 다시 확인해야 하는 것으로 앎

- 관련 xkcd: [https://xkcd.com/538/](<https://xkcd.com/538/>)
  - 이 밈을 싫어함. 핵심은 적어도 공격자가 **5달러 렌치로 폭력을 행사하게 만들어**, 국가에 따라서는 사용자가 받는 혐의보다 더 심각한 범죄를 저지르게 하는 데 있음
  - [관련 기사](<https://www.androidauthority.com/grapheneos-duress-pin-us-prosecution-3691271/>)에 따르면 미국 법무부는 국경 요원이 Google Pixel을 수색하던 중 GrapheneOS 강압 PIN을 제공한 혐의로 애틀랜타 주민 Samuel Tunick을 기소 중임  
    비밀번호를 주긴 했지만 잠금 해제가 아니라 휴대전화를 초기화하는 비밀번호였던 듯함. 수색 전에 기기를 백업하지 않은 점은 의외임

- 선택한 앱만 지우되 티 나지 않는 **완화형 강압 PIN**을 만들 수 있음. 또는 앱 데이터를 지정한 복원 지점으로 되돌려 아무 일도 없었던 것처럼 보이게 하고, 설정 여부도 추적할 수 없게 하면 법적 위험을 줄이는 데 도움이 됨
  - 신뢰성 있는 삭제에는 하드웨어 지원을 받아 키를 폐기해야 함. Android는 사용자와 Private Space마다 별도 키를 사용하므로 전체 데이터나 특정 프로필을 확실히 지울 수 있고, 남은 메모리 흔적을 없애려면 재부팅도 중요함  
    하지만 특정 프로필의 존재와 삭제 시점은 파일 시스템 및 운영체제 메타데이터에 남아 명백히 드러남. SSD 곳곳에 복사·수정된 파일 흔적도 남으며, 오랫동안 일반적으로 사용한 뒤에는 특정 범위의 보안 삭제를 요청해도 너무 늦고 복구될 가능성이 있음. 있어야 할 메타데이터와 통계가 사라진 사실 자체도 증거가 됨  
    예약 저장 공간에서 모든 암호 문구를 유효하게 받아들이고, 설정되지 않았거나 틀린 경우 무작위 출력을 내는 기능은 가능함. 제대로 구현하려면 **가상 머신과 기본 예약 공간**이 필요하지만, 그래도 SSD 저수준 분석으로 사용 사실을 입증할 가능성이 있음
  - 포렌식 분석에도 안전한 방식은 불가능함. 견고하지 않은 **그럴듯한 부인 가능성**을 구현하면 잘못된 안전감을 줘 사용자를 위험에 빠뜨리므로 GrapheneOS는 도입하지 않을 것임
