TrustZone 기반 보안 환경에서의 Keymaster 동작 원리
안드로이드 보안 구조를 이해하는 데 있어 가장 핵심이 되는 영역 중 하나가 TrustZone이다.
특히 Keymaster는 암호화 키를 생성·보관·사용하기 위한 기반 기술로, 앱이 다루는 중요한 데이터가 안전하게 보호되도록 보안 경로를 제공한다.
이 글에서는 TrustZone 기반 보안 환경이 어떻게 구성되는지, 그리고 Keymaster가 어떤 원리로 키를 보호하고 동작하는지 기술적으로 정리한다.
1. TrustZone 보안 환경의 기본 구조
ARM TrustZone은 하나의 프로세서 안에 Secure World와 Normal World라는 두 개의 실행 환경을 제공한다.
Normal World는 일반 앱과 OS가 구동되는 영역이며, Secure World는 보안 연산과 중요한 데이터를 처리하는 고립된 공간이다.
TrustZone의 핵심 특징은 다음과 같다.
- Secure World는 Normal World의 접근을 완전히 차단
- 보안 연산은 TrustZone 내부에서만 수행
- 악성 앱이나 커널 취약점으로부터 키 정보 보호
- Secure Monitor Call(SMC)로 두 영역 간 통신
TrustZone은 Keymaster와 같은 보안 구성 요소가 안전하게 실행될 수 있는 기반을 제공한다.
2. Keymaster의 개념과 역할
Keymaster는 안드로이드 보안 모델에서 암호화 키를 처리하는 핵심 구성 요소다.
이는 단순한 소프트웨어 라이브러리가 아니라 **TrustZone 내부(TA, Trusted Application)**에서 동작하는 보안 서비스다.
Keymaster가 수행하는 주요 기능은 아래와 같다.
- 암호화 키 생성
- Secure World 내부 저장소에 키 보호
- 키 사용 권한 제어
- 하드웨어 기반 인증(HW-backed Keystore) 제공
- TEE 기반 암호 연산 수행
즉, Keymaster는 안드로이드의 Keystore 시스템을 하드웨어 기반으로 강화하는 역할을 한다.
3. Keymaster가 동작하는 보안 경로
Keymaster의 동작은 크게 두 개의 환경에서 이루어진다.
Normal World
- 앱/프레임워크/Keystore 서비스
- 키 요청/암호화 연산 요청 전달
- 데이터는 반드시 안전한 인터페이스를 통해 전달
Secure World
- TrustZone 내부에서 Keymaster TA가 동작
- 키 생성, 저장, 암호화 연산 수행
- 키는 절대 Normal World로 유출되지 않음
앱에서 암호화 요청이 들어오면 다음 흐름으로 처리된다.
- 앱 → Keystore API 호출
- Keystore 서비스가 TrustZone으로 요청 전달
- TrustZone 내부의 Keymaster TA가 실제 키 연산 수행
- 결과만 Normal World로 반환
이 과정에서 키 자체는 절대 Secure World 밖으로 나오지 않는다는 점이 가장 중요하다.
4. 키 생성 및 저장 과정
Keymaster는 키를 생성할 때 다음과 같은 보안 요소를 활용한다.
- 하드웨어 난수 생성기(HW RNG)
- SoC 고유 ID(하드웨어 바운딩)
- 보안 영역 내 암호화 모듈
- TrustZone 파일 시스템 또는 보안 저장소(Secure Storage)
키 생성 시 사용된 시드(seed)와 키 전체가 Secure World 내부에만 존재하며, Normal World 단에서는 키 핸들(참조용 토큰)만 전달된다.
즉, 앱은 “키를 사용한다”는 요청만 할 수 있고
“키 자체를 가져오는 것”은 불가능하다.
5. Keymaster의 보안 정책 적용 방식
Keymaster는 단순 키 저장소가 아니라 다양한 보안 정책을 키에 부여할 수 있는 구조로 설계되어 있다.
대표적인 정책
- 키 사용 목적 지정(Encrypt, Sign 등)
- 만료 시간 설정
- 사용자 인증 필요(지문·생체 인증)
- 허용되는 알고리즘/길이 제한
- 디바이스 바인딩(Device-bound Key)
예를 들어 생체 인증이 필요한 키의 경우, Keymaster는 TrustZone 내부의 Biometric TA와 연동하여 인증 성공 후에만 키 사용을 허용한다.
이 모든 정책은 Secure World 내부에서 강제된다.
6. 앱 보안에 미치는 실제 영향
Keymaster의 존재는 앱 보안에 매우 큰 영향을 준다.
키 유출 위험 제거
앱·프레임워크·커널 어디에서도 키 원본에 접근할 수 없다.
악성 코드로부터 보호
Normal World가 오염되더라도 Secure World는 영향을 받지 않는다.
인증 기반 접근 제어
지문·PIN·패턴 인증 성공 후에만 키가 사용되는 방식으로 데이터를 보호할 수 있다.
데이터 위변조 방지
Secure World는 시스템 루트 여부에 상관없이 독립적으로 동작하므로, 루팅 환경에서도 키 자체는 안전하게 유지된다.
7. TrustZone 기반 Keymaster의 한계와 고려 사항
Keymaster는 매우 강력하지만 몇 가지 고려할 점도 존재한다.
- SoC 제조사별 구현 차이가 존재
- Secure World 취약점 발견 시 패치가 중요
- 루팅 기기에서는 Keymaster 무력화 시도가 존재할 수 있음
- 일부 중저가 기기는 완전한 하드웨어 백업을 제공하지 않기도 함
이러한 점들을 고려해 앱 보안 모델을 설계해야 한다.
8. 정리 및 결론
TrustZone 기반의 Keymaster는 안드로이드 생태계에서 가장 높은 수준의 보안 기능을 제공하는 핵심 요소다.
키는 Secure World 내부에서만 생성·보관·사용되며, Normal World는 절대 키에 접근할 수 없다.
이 구조 덕분에 앱은 키 유출 없이 암호화 기능을 안전하게 사용할 수 있으며, 생체 인증과 결합된 강력한 보안 정책도 적용할 수 있다.
모바일 보안이 중요해지는 시대에 TrustZone과 Keymaster의 이해는 필수적인 기술 지식이다.
필요하시면 같은 형식으로 “TrustZone vs TEE 구조 비교” 또는 “StrongBox Keymaster” 주제도 작성해드릴 수 있어요.