메뉴
HN
Hacker News 3일 전

GrapheneOS의 잠금 장치 데이터 추출 방지 기술

IMP
8/10
핵심 요약

안드로이드 기반의 커스텀 OS인 GrapheneOS는 강력한 하드웨어 보안 모듈과 메모리 보호 기술을 통해 기기 잠금 상태에서의 데이터 추출 및 무차별 대입 공격(Brute-force)을 철저히 방어합니다. 이는 최신 안드로이드 보안 기능을 극대화하여 사용자가 고강도 비밀번호를 안전하고 편리하게 사용할 수 있도록 지원합니다. 물리적 기기 탈취나 국가 주도의 공격 등 극단적인 상황에서도 데이터를 보호해야 하는 보안 실무자에게 매우 중요한 업데이트입니다.

번역된 본문

GrapheneOS는 데이터 추출에 대한 강력한 방어 체계를 갖추고 있습니다. 이는 안드로이드 17이 제공하는 표준 보안 기능과 현재 안드로이드에서 사용 가능한 가장 안전한 하드웨어를 기반으로 구축되었습니다. 현재 GrapheneOS에 필요한 하드웨어 보안 기능과 업데이트를 제공하는 기기는 픽셀(Pixel) 스마트폰뿐입니다. 하지만 모토로라 모빌리티(Motorola Mobility)와의 파트너십과 퀄컴(Qualcomm)의 발전 덕분에 2027년에는 이 상황이 변할 것입니다.

디스크 암호화는 데이터에 대한 강력한 보호를 제공합니다. 아무리 정교한 공격자라도 이를 직접 뚫는 것은 불가능에 가깝습니다. 대신 공격자들은 기기가 잠금 해제된 상태(AFU)일 때 운영체제의 취약점을 노리거나 PIN/비밀번호에 대한 무차별 대입 공격(Brute-force)을 시도해야 합니다. 안드로이드 16 QPR2는 지연 시간을 점진적으로 늘리는 하드웨어 기반 보안 요소(Secure element)의 속도 제한을 요구합니다. 오류가 10회 발생하면 4시간, 15회 발생하면 41일 동안 대기해야 하며, 총 시도 횟수는 20회로 제한됩니다. 사용성을 위해, 반복된 동일한 실수로 시도 횟수를 낭비하지 않도록 가장 최근에 실패한 5개의 고유한 시도는 즉시 거부합니다. GrapheneOS는 최신 세대 보안 요소 속도 제한을 구현한 기기만 지원합니다.

지원되는 기기의 보안 요소는 내부자 공격 방지(Insider attack resistance) 기능도 갖추고 있습니다. 이는 보안 요소의 펌웨어를 업데이트하기 전에 기기 소유자(Owner)의 인증을 성공적으로 완료해야만 구현됩니다. 유효한 서명 키와 높은 버전 번호만으로는 부족합니다. 이의 목적은 속도 제한을 제거하는 펌웨어 업데이트를 강제로 만들어내려는 정부의 시도를 방지하는 것입니다. 픽셀 기기는 2017년 말 출시된 픽셀 2부터 내부 타이머가 있는 보안 요소를 사용하여 속도 제한 및 내부자 공격 방지를 구현해 왔습니다. (관련 포스팅: https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html) 그 이후로 보안 요소와 운영체제 통합은 훨씬 좋아졌지만, 이러한 기반은 오래전부터 마련되어 왔으며 새로운 기능이 아님을 보여줍니다.

GrapheneOS는 비밀번호의 글자 수 제한을 16자에서 128자로 늘렸습니다. 이를 통해 보안 요소의 속도 제한에 의존하지 않는 높은 엔트로피(High entropy)의 다이스웨어(Diceware) 암호문을 사용할 수 있습니다. 생체 인식 잠금 해제로 인해 강력한 암호문을 망치지 않으면서도 편리하게 사용할 수 있도록, GrapheneOS는 선택적 2단계 지문 PIN을 추가했습니다. 허용되는 지문 시도 횟수를 20회에서 5회로 줄였으며, 올바른 2단계 PIN을 입력하지 못하면 이 횟수에 포함됩니다. 이렇게 하면 기기 재부팅 후 최초 잠금 해제 전(BFU) 상태에서 필수적인 기본 잠금 해제 방법으로 6~8개의 무작위 다이스웨어 단어를 사용하고, 편의성을 위해 짧은 PIN을 사용하는 지문+PIN 방식을 함께 사용할 수 있습니다. 유효한 지문이 인식되면 2단계 PIN을 입력하라는 메시지가 표시되며, 이를 입력해야 화면 및 하드웨어 키스토어(Keystore) 잠금 해제가 완료됩니다.

GrapheneOS는 강화된 메모리 할당자(Hardened memory allocators) 및 기타 기능을 통해 운영체제에 대한 익스플로잇(Exploit) 방어를 크게 개선했습니다. 또한 익스플로잇으로부터 보호하기 위해 하드웨어 기반 메모리 태깅(MTE)을 포함한 하드웨어 기반 보안 기능을 적극적으로 활용합니다. 이러한 보호 기능에 대한 부분적인 개요는 여기에서 확인할 수 있습니다: https://grapheneos.org/features#exploit-protection

GrapheneOS는 물리적 접근을 통한 공격에 대비한 특수한 보호 기능도 추가했습니다. 예를 들어, 기기가 잠겨 있는 동안에는 소프트웨어 및 하드웨어 수준에서 새로운 USB 연결을 기본적으로 차단하며, 활성화된 USB 연결이 없는 즉시 USB 데이터 전송을 비활성화합니다. GrapheneOS는 2021년 6월에 잠금 장치 자동 재부팅 타이머를 출시했습니다. 이 타이머는 10분에서 72시간 사이로 설정할 수 있습니다. 기본값을 72시간으로 설정했다가 나중에 18시간으로 낮췄습니다. 운영체제를 종료하고 부팅하는 과정의 일환으로 메모리를 초기화(Memory zeroing)하기 때문에, 기기가 자동으로 재부팅되면 잠금 해제 전(BFU) 상태로 돌아갑니다. 2024년 4월에는 픽셀 기기가 펌웨어 fastboot 모드 부팅 시 메모리를 초기화하도록 했습니다. Apple과 Google도 iOS 18.1 및 안드로이드 16에서 잠금 장치 자동 재부팅 타이머를 추가했습니다. 안드로이드의 경우 고급 보호 모드(Android Advanced Protection Mode)를 통해 활성화할 수 있습니다. 당사의 구현이 여러 가지 이유로 더 우수하지만, 이는 그 자체로도 매우 유용한 기능입니다. 안드로이드는 각 보조 사용자 계정에 대해 별도의 암호화 키를 사용합니다.

원문 보기
원문 보기 (영어)
GrapheneOS GrapheneOS has strong defenses against data extraction. It heavily builds upon the standard security features provided by Android 17 and the most secure hardware available for Android. Currently, only Pixels provide the hardware security features and updates required by GrapheneOS. That's going to change in 2027 thanks to our partnership with Motorola Mobility and progress being made by Qualcomm. Disk encryption provides strong protection for data. Even the most sophisticated attackers aren't going to be directly breaking it. They either need to exploit the OS while in After First Unlock state or brute force the PIN/password. Android 16 QPR2 calls for a secure element implementing rate limiting ramping up delays. It's 4 hours after 10 and 41 days after 15. Only 20 attempts are allowed. For usability, It rejects the most recent 5 unique failed attempts early to avoid wasting attempts on repeated errors. GrapheneOS only supports devices implementing the latest generation secure element rate limiting. https://source.android.com/docs/security/features/authentication/rate-limiting The secure element on the supported devices also has insider attack resistance. That's implemented by requiring the Owner user to successfully authenticate before the secure element firmware can be updated. A valid signing key and greater version number aren't enough alone. The purpose of this is preventing any government from bypassing the rate limiting by coercing the creation of a firmware update removing the rate limit. Pixels have used a secure element with an internal timer implementing rate limiting and insider attack resistance since the Pixel 2 launched near the end of 2017. Here's a post about this from back in 2018: https://android-developers.googleblog.com/2018/05/insider-attack-resistance.html The secure element and integration into the OS has become far better since then, but it shows this goes back a long way and isn't a new feature. GrapheneOS also raises the character limit for passwords from 16 to 128. This enables using high entropy diceware passphrases not depending on the secure element rate limiting. To make a strong passphrase convenient to use without ruining it with biometric unlock, GrapheneOS adds an optional 2nd factor fingerprint PIN. We reduce the allowed fingerprint attempts from 20 to 5 and failure to enter the correct 2nd factor PIN counts towards it. This enables using 6-8 random diceware words as the main unlock method required in Before First Unlock and fingerprint+PIN using a short PIN for convenience. Using a valid fingerprint prompts to enter the 2nd factor PIN which is needed to complete unlocking the screen and hardware keystore. GrapheneOS greatly improves the exploit protections for the OS with hardened memory allocators and other features. It heavily uses hardware-based security features including hardware memory tagging (MTE) to protect against exploits. A partial overview of those protections is here: https://grapheneos.org/features#exploit-protection GrapheneOS adds specialized protection against attacks with physical access too. For example, it blocks new USB connections at a software and hardware level by default while locked and disables USB data as soon as there are no active USB connections. GrapheneOS shipped a locked device auto-reboot timer back in June 2021. It can be set between 10 minutes and 72 hours. We enabled it by default using 72 hours and then lowered it 18 hours. It automatically returns the device to Before First Unlock state due to our memory zeroing as part of tearing down the OS and booting. We got Pixels to add memory zeroing for booting the firmware fastboot mode in April 2024. Apple and Google added a locked device auto-reboot timer in iOS 18.1 and Android 16. For Android, it can be enabled with the Android Advanced Protection Mode. Our implementation is better for multiple reasons but it's a useful feature regardless. Android uses separate encryption keys for each secondary user and Private Space. GrapheneOS adds support for putting both back into Before First Unlock state without a reboot via end session for secondary users or toggles for either to do it by default. It's still much better for the device to be rebooted to get the main user back at rest, completely clear leftover data from RAM and block secure element updates. Our duress PIN/password feature is a minor feature fitting into the bigger picture. It wipes the device when it's entered in any OS prompt for the current profile's PIN or password. It will wipe the device when entered into the authentication prompt for changing a sensitive setting or anything else requiring it, not only the lockscreen. It works across every profile including secondary users and Private Spaces, not only the main user. There are multiple ways to use the duress PIN/password feature including writing it down on a phone case or a paper kept in a wallet. People should carefully consider how to use it in an actual duress situation where there can be physical or legal consequences for wiping the device. GrapheneOS doesn't require it to protect data from being extracted from the device, but it takes recovering it completely off the table even with the PIN/password for each profile on the device. GrapheneOS doesn't depend on the duress PIN/password to protect user data. It's one of the tools it provides among the major privacy and security improvements it offers as a whole. Our features page provides an overview of what GrapheneOS offers compared to standard Android 17. It covers most of the major features we provide and many of the minor ones but there's also a lot more beyond it. Our release notes are a lot more exhaustive since we make sure to cover everything when it's added, changed or removed. https://grapheneos.org/features https://grapheneos.org/releases#changelog