신뢰실행환경

위키원
이동: 둘러보기, 검색

신뢰실행환경(TEE : Trusted Execution Environment)는 메인 프로세서 내 별도로 독립된 보안 영역(Secure Area)이 제공하는 안전한 실행 환경이다.

개요[편집]

신뢰실행환경은 메인 프로세서의 보안 영역으로 기밀성과 무결성 측면에서 내부에 업로드되는 코드와 데이터가 보호될 수 있도록 보장한다. 신뢰실행환경은 격리된 실행 환경으로서 격리된 실행 방식을 사용하여, 실행되는 응용 프로그램의 무결성, 자산의 기밀성 등의 보안 기능을 제공하는 것이다. 크게 보면 신뢰실행환경은 유닉스 운영 체제보다는 더 높은 수준의 보안을, 보안 요소(SE : secure element)보다는 더 많은 기능을 제공한다. 일반 영역과 보안 영역이 따로 분리된 프로세서에서, 보안 영역에서는 생체 정보, 결제 정보, 기업 보안 문서 등의 중요한 정보가 저장된다. 일반 영역과 정보 교환이 통제되고 보안 소프트웨어가 안전하게 실행될 수 있다. 신뢰실행환경은 개인정보가 많은 스마트폰에 주로 사용된다. 신뢰실행환경을 구현하는 대표적인 상업 솔루션으로 암(ARM) 사의 트러스트존(TrustZone)이 있다.[1]

오픈 모바일 터미널 플랫폼(OMTP : Open Mobile Terminal Platform)은 "Advanced Trusted Environment:OMTP TR1"의 이름의 표준으로 신뢰실행환경을 처음 정의하였으며, 정의된 2개의 보안 수준 가운데 하나의 요건을 충족해야 하는 "응용 프로그램을 지원하는데 필수적인 기능을 제공하는 하드웨어, 소프트웨어 구성 요소의 집합"으로 정의하였다. 최초 보안 레벨인 프로파일 1은 소프트웨어 공격만을 대상으로 한 반면, 프로파일 2는 소프트웨어와 하드웨어 공격 2 부분을 대상으로 하였다. 트러스티드 로직이 개발한 트러스티드 파운데이션스 등 TR1 표준을 준수하는 암(ARM)의 트러스트존(TrustZone) 기술에 기반한 상용 신뢰실행환경 솔루션들이 나중에 론칭되었다. 오픈 모바일 터미널 플랫폼 표준에 대한 작업은 2010년 중순에 종료되었고 당시 이 그룹은 홀세일 애플리케이션 커뮤니티(WAC)로 전향하였다. 신뢰실행환경을 정의하는 것을 포함한 오픈 모바일 터미널 플랫폼 표준은 지에스엠(GSM) 협회가 관리하고 있다.[2]

특징[편집]

서비스 제공 업체, 모바일 네트워크 사업자, 운영 체제 개발자, 응용 프로그램 개발자, 장치 제조업체, 플랫폼 공급 업체 및 실리콘 공급 업체가 신뢰실행환경 주변의 표준화 노력에 기여하는 주요 이해관계자이다. 사용자 제어 소프트웨어를 사용한 하드웨어 시뮬레이션을 방지하기 위해 소위 "하드웨어 신뢰 루트"가 사용된다. 이것은 제조하는 동안 칩에 직접 내장된 개인 키 세트이다. 일회성 프로그램 가능 메모리 칩의 넓은 영역에도 불구하고 일반적으로 사용되며, 변경할 수 없으며, 공개 당사자는 신뢰할 수 있는 당사자의 공개 키에 대한 비밀이 아닌 해시와 함께 제조업체 데이터베이스에 상주한다. 하드웨어는 신뢰할 수 있는 당사자의 키로 서명하지 않은 모든 소프트웨어가 권한 있는 기능에 액세스하지 못하도록 설계되었다. 공급 업체의 공개 키는 런타임에 제공되며 해시 된다. 이 해시는 칩에 내장된 해시와 비교된다. 해시가 일치하면 공개 키를 사용하여 디지털 서명을 확인한다. 신뢰할 수 있는 공급 업체 제어 펌웨어를 사용하여 원격 증명을 구현하는 것이다.

증명해야 할 응용 프로그램의 신뢰할 수 없는 구성 요소는 신뢰할 수 있는 구성 요소 메모리에 업로드한다. 신뢰할 수 있는 응용 프로그램은 하드웨어가 있는 신뢰할 수 없는 구성 요소에 의해 수정되지 않도록 보호된다. 암호화는 검증의 서버에서 신뢰할 수 없는 당사자가 요청하고, 신뢰할 수 있는 응용 프로그램의 무결성을 입증, 암호 인증 프로토콜의 일부로서 사용된다. 증명은 검증 자에게 전달되어 검증 자에게 전달된다. 시뮬레이션 된 하드웨어에서 유효한 증명을 계산할 수 없다. 그것을 구성하기 위해서는 하드웨어에 구운 키에 액세스해야 한다. 신뢰할 수 있는 펌웨어만 이러한 키 또는 해당 키에서 파생되었거나 사용하여 얻은 키에 액세스할 수 있다. 플랫폼 소유자만 파운드리(foundry)에 기록된 데이터에 액세스할 수 있으므로 검증 당사자는 공급 업체가 설정 한 서비스와 상호작용해야 한다. 체계가 부적절하게 구현되면 칩 공급 업체는 어떤 칩이 어떤 애플리케이션에서 사용되는지 추적하고 인증이 통과되지 않았다는 메시지를 반환하여 서비스를 선택적으로 거부할 수 있다.[3]

사용사례[편집]

신뢰실행환경에 대한 많은 사용 사례가 있다. 프리미엄 콘텐츠 보호, 디지털 권리 관리, 모바일 금융 서비스, 인증, 기업·정부 및 클라우드, 안전한 모듈식 프로그래밍 등이 있다. 프리미엄 콘텐츠 보호와 디지털 권리 관리는 신뢰 실행환경을 통해 스마트폰, 태블릿 및 HD 텔레비전과 같은 연결된 장치에서 디지털로 인코딩 된 정보를 보호하기에 적합한 환경이다. 장치에서 복호화 된 콘텐츠가 암호 해독된 콘텐츠가 아닌지 확인함으로써 콘텐츠를 보호할 수 있다. 모바일 금융 서비스는 NFC, 보안 요소 및 신뢰할 수 있는 백엔드 시스템과 함께 사용되어 금융 거래를 수행하는 데 필요한 보안을 제공할 수 있다. 신뢰 실행환경에서 선택적으로 모바일 장치에서 사용자 인증을 구성하는 데 사용할 수 있고 신뢰할 수 있는 사용자 인터페이스를 제공한다. 인증은 처럼 암호보다 사용하기 쉽고 훔치기가 어려운 생체 인식 아이디 방법에 적합하다. 신뢰실행환경은 모바일 장치 내에서 일치하는 엔진과 사용자를 인증하는 데 필요한 관련 처리를 수용하기에 적합한 영역이다. 기업·정부 및 클라우드는 신뢰실행환경을 사용하여 모바일 장치 및 서버 인프라에서 기밀 정보를 안전하게 처리할 수 ​​있다. 정부와 기업은 신뢰실행환경이 제공하는 기능과 보안 수준을 활용하여 자신의 장치를 사용하는 직원이 안전하고 신뢰할 수 있는 방식으로 업무를 수행하도록 하는 것이다. 안전한 모듈식 프로그래밍은 각 모듈에는 원하는 기능을 실행하는 데 필요한 모든 것이 포함되어 있으므로, 신뢰실행환경을 사용하면 높은 수준의 안정성과 보안을 갖춘 완전한 시스템을 구성하는 동시에 각 모듈이 다른 모듈의 취약성을 방지할 수 있다.[4]

전망[편집]

마이크로소프트블록체인에 신뢰실행환경을 접목하는 기술로 두 건의 특허를 출원했다. 미국 특허청이 공개한 특허 신청서에 따르면 마이크로소프트는 블록체인의 검증 노드 안에서 사전에 결정된 블록체인 유형이나 기타 보안 프로토콜 코드를 저장할 때 신뢰실행환경을 적용할 계획이다. 신뢰실행환경에서 데이터가 오가면 노드에서 얻은 정보를 통해 정보를 들고 있는 이의 신원을 검증할 수 있다. 블록체인에서 노드란 네트워크상에서 단순히 데이터를 받고 보관하며 다시 보내는 역할을 하는 하나의 점이다. 그런 노드에 신뢰실행환경을 적용함으로써 얻게 되는 이점으로 마이크로소프트는 다음 두 가지를 들었다.[5]

  • 컨소시엄 블록체인 네트워크
블록체인의 첫 번째 노드에 다른 여러 주요 정보와 함께 "사전에 승인한 네트워크 참여자 명단" 을 저장해두면, 신뢰실행환경을 통해 컨소시엄 네트워크에 속한 이들만 안전하게 블록체인에서 거래할 수 있게 된다.
  • 블록체인 거래 검증
컨소시엄 블록체인과 비슷하게 사전에 등록된 수많은 회원이 정보를 주고받고 거래해야 하는 네트워크에서 특정 암호를 포함한 거래는 곧바로 확인해 처리하도록 하여 신뢰실행환경에서는 복잡한 암호를 푸는 과정을 생략하고 곧바로 안전하게 거래를 처리할 수 있다.

각주[편집]

  1. 한국정보통신기술협회, 〈신뢰실행환경〉, 《한국정보통신기술협회》
  2. 신뢰실행환경〉, 《위키백과》
  3. 신뢰실행환경〉, 《위키피디아》
  4. 신뢰실행환경〉, 《위키피디아》
  5. Christine Kim, 〈마이크로소프트 “블록체인에 신뢰실행환경(TEE) 도입” 특허 출원〉, 《코인데스크》, 2018-08-16

참고자료[편집]

같이 보기[편집]

틀:검토필요