TrustZone 기반 보안 환경에서의 Keymaster 동작 원리

TrustZone 기반 보안 환경에서의 Keymaster 동작 원리

안드로이드 보안 구조를 이해하는 데 있어 가장 핵심이 되는 영역 중 하나가 TrustZone이다.
특히 Keymaster는 암호화 키를 생성·보관·사용하기 위한 기반 기술로, 앱이 다루는 중요한 데이터가 안전하게 보호되도록 보안 경로를 제공한다.
이 글에서는 TrustZone 기반 보안 환경이 어떻게 구성되는지, 그리고 Keymaster가 어떤 원리로 키를 보호하고 동작하는지 기술적으로 정리한다.

1. TrustZone 보안 환경의 기본 구조

ARM TrustZone은 하나의 프로세서 안에 Secure WorldNormal 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로 유출되지 않음

앱에서 암호화 요청이 들어오면 다음 흐름으로 처리된다.

  1. 앱 → Keystore API 호출
  2. Keystore 서비스가 TrustZone으로 요청 전달
  3. TrustZone 내부의 Keymaster TA가 실제 키 연산 수행
  4. 결과만 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” 주제도 작성해드릴 수 있어요.

댓글 남기기