본문 바로가기
TechNology

TrustZone 이란

by jszzang2079 2023. 6. 17.

 

오늘 포스팅 할 주제는 Trust Zone 입니다.

제가 하는 일과도 연관이 있고하여...

 

하나카드 앱의 

간편인증(하나T-sign보안인증서비스) 이나 

2019년 3월 기본 탑재가 되어 나올 예정인

현대 자동차의 디지털키(휴대폰) 같은 경우

휴대폰의 Trust zone 을 이용하여

인증처리를 하게 되는데요.

 

이 Trust zone에 대해 

간단히 알아보록 하겠습니다.

 

일단 Trust zone을 사용하는

하나T-sign보안인증서비스는

하나카드 홈페이지 

및 모바일에서 

로그인, 조회, 등 

각종 카드 서비스 이용에 

필요한 본인인증시

TEE(Trust Execution Environment)영역 및 

WBC(White Box Cryptography)기반의 

하나카드만의 간편 인증 서비스 입니다.

 

중요한 거래나 정보변경에 대해

인증이 매우 중요한 보안적인 요소이므로

Trust Zone이라는 완벽한 보안 영역에서

처리가 되도록 하는 것이 중요한데요

 

그럼 상위 개념부터 보면

 

Trustzone 이란

ARM processors에 탑재된

하드웨어 보안 기술로 

기밀성(confidentiality)과 

완벽보안영역(integrity protection)을

보장할 수 있는

programable environment를

제공함에 목적이 있습니다. 

 

TZ Model

 

TEE (Trust Execution Environment)

 스마트폰에 주로 사용되는 

   ARM사의 CPU에서 제공하는 

   트러스트존(Trustzone) 내부에 있는 

보안영역(integrity protection) 입니다.

 

개방형 OS에 

독립적으로 격리된 

TEE(Trust Execution Environment) 영역이 제공되고

REE(Rich Execution Environment), 즉 NWd 와

TEE(SWd) 에 별도의 API를 지원합니다.

 

그리고 Monitor Mode 는

Secure Monitor Call (SMC)을 이용하거나

IRQ 및 FIQ 발생시 이루어 지며

SMC는 커널 모드에서만 실행이 가능합니다.

 

지문, DRM 등 보안이 필요한 많은 

소프트웨어 들이 TZ을 이용하게 됩니다.

 

Client API System Architecture.

 

위 아키텍처 그림에서 

Trusted environment(TEE) 영역에 

Trusted Application을 TA 라고 합니다.

 

Rich environment (REE) 영역의 

Client Application을 CA 라고 합니다.

 

데이터 흐름의 방향도가

CA → TA 이동할때는 INPUT

반대일 경우 OUTPUT으로 표현 됩니다.

 

위 이미지에서 

CA와 TA사이는 OUTPUT 이네요.

 

이렇게 

OUTPUT 일때는 ,

CA는 읽거나 쓰면 안되고 TA만 읽고 쓸 수 있습니다.

 

INPUT 일때는, 

CA는 읽을수는 있지만 써서는 안됩니다.

그리고 TA는 데이터를 읽게 됩니다.

 

TA에 명령을 전달 할 때는

TEEC_InvokeCommand() 함수를 사용하고

인자중 하나인

Memory References 가 전달 되는데

이를 이용해 공유메모리에서 데이터를 확보 할 수 있습니다.

 

 

별도용어

 

 

TAM (Trusted Application Manager)

 

위에서 설명한 TrustZone를 사용하려면

마음대로 사용할 수 있는 것이 아니라

Trustonic 사에서 활성화(TEE 영역)를 해주어야 합니다.

 

그런데 

직접 Trustionic 사에서 다이렉트로 하지 않고

TAM 이라는 Manager를 통해

Key를 이용하여 인증처리를 거쳐서

활성화가 되게 됩니다.

 

이렇게 활성화가 되고

TEE 영역으로 진입하게 되는 것을

프로비저닝(provisioning) 이라고 표현합니다.

 

활성화 되기 전에 단말기에서 준비되어 있다가

활성화 되면 TEE 영역으로 들어가는 것이죠.

 

사실,

TEE 영역이 iOS 에서는 일부밖에 지원이 안되는데

이를 해결하기 위해

TEE와 같은 환경을 가상(?)으로 만들어

TEE에서의 보안 장점을 가질수 있도록 만든 환경을

WBC (White Box Cryptography) 라고 합니다.

 

TAM.v2 로 업그래이드 되면서

이렇게 iOS의 단말기도 TEE와 흡사한 환경을

추가로 제공하게 되었고

TAM.v2에서는 프로비저닝 대신 

언블락이라고 표현을 합니다.