KR101837678B1 - 신뢰실행환경 기반의 컴퓨팅 장치 - Google Patents

신뢰실행환경 기반의 컴퓨팅 장치 Download PDF

Info

Publication number
KR101837678B1
KR101837678B1 KR1020160076524A KR20160076524A KR101837678B1 KR 101837678 B1 KR101837678 B1 KR 101837678B1 KR 1020160076524 A KR1020160076524 A KR 1020160076524A KR 20160076524 A KR20160076524 A KR 20160076524A KR 101837678 B1 KR101837678 B1 KR 101837678B1
Authority
KR
South Korea
Prior art keywords
tee
security
shared space
api
operating system
Prior art date
Application number
KR1020160076524A
Other languages
English (en)
Other versions
KR20170142672A (ko
Inventor
권영주
이경일
안재용
김동현
엄윤호
Original Assignee
주식회사 씨오티커넥티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 씨오티커넥티드 filed Critical 주식회사 씨오티커넥티드
Priority to KR1020160076524A priority Critical patent/KR101837678B1/ko
Publication of KR20170142672A publication Critical patent/KR20170142672A/ko
Application granted granted Critical
Publication of KR101837678B1 publication Critical patent/KR101837678B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 보안영역에 대한 액세스를 용이하게 하는 신뢰실행환경 기반의 컴퓨팅 기술에 관한 것으로, 보안영역 및 공유공간을 포함하는 비보안영역으로 구성된 메모리, 상기 보안영역을 관리하며 상기 보안영역의 접근을 위한 제1 TEE API(Application Programming Interface)를 제공하는 제1 운영체제에 의하여 구축되고, 상기 제1 운영체제 상에서 TEE 처리 프로세스를 실행시키는 TEE 관리부 및 상기 보안영역에 대한 제2 TEE API를 제공하며 특정 프로세스가 상기 제2 TEE API를 통해 상기 보안영역을 접근하고자 하는 경우 상기 공유공간을 통해 상기 TEE 처리 프로세스와 통신하도록 하는 제2 운영체제에 의하여 구축된 TEE 환경부를 포함한다.

Description

신뢰실행환경 기반의 컴퓨팅 장치{COMPUTING APPARATUS BASED ON TRUSTED EXECUTION ENVIRONMENT}
본 발명은 신뢰실행환경 기반의 컴퓨팅 기술에 관한 것으로, 보다 상세하게는, 보안영역 접근을 제어하는 전용 프로세스를 구비하여 보안영역에 대한 액세스를 용이하게 하고, 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있는 TEE 기반의 컴퓨팅 장치에 관한 것이다.
TEE(Trusted Execution Environment: 신뢰가 보장된 실행 환경)는 안전성을 높이기 위하여 프로세서, 주변장치 및 저장장치를 대상으로 보안 서비스를 제공하는 소프트웨어 플랫폼을 말한다. TEE는 일반적으로 보안 영역과 비보안 영역의 분리를 지원하는 하드웨어 기능과 이를 이용하여 보안 서비스를 제공하는 소프트웨어로 구성된다.
TEE는 개방형 운영체제에 하드웨어 기반의 독립적으로 격리된 실행 환경을 제공할 수 있기 때문에 소프트웨어 공격에 대한 방어가 가능하여 보안 수준을 향상시킬 수 있다. 이로 인해, TEE는 장치 및 사용자의 정보에 대한 보안기술을 필요로 하는 다양한 컴퓨팅 장치들에 적용되고 있다.
종래의 TEE는 보안 수준이 강력한 만큼 상시로 요구되는 보안영역에 대한 접근이 용이하지 않고, 보안영역 내의 정보를 송수신하기 위한 운영체제 내의 통신 인터페이스를 환경에 따라 일일이 설계해주어야 하는 단점이 있다.
한국 공개특허공보 제10-2015-0033368호는 신뢰하는 실행 환경(Trusted Execution Environment; TEE)에서의 보안 도메인 관리 방법 및 장치에 관한 것으로, 적어도 하나의 보안 도메인을 포함하는 TEE에서 적어도 하나의 보안 도메인을 관리하기 위한 보안 도메인 관리 방법에 있어서, 임의의 보안 도메인에 대한 이벤트가 발생하면, 상기 이벤트에 관한 정보를 획득하는 단계, 상기 이벤트에 관한 정보를 적어도 하나의 다른 보안 도메인으로 전달하는 단계를 포함하되, 상기 이벤트에 관한 정보는 TEE 커널을 통하여 전달되는 것을 특징으로 한다.
한국 공개특허공보 제10-2014-0111943호는 보안 환경 장치 및 구현 방법에 관한 것으로, 일반 환경은 데이터를 보안 환경으로 요청하는 클라이언트 애플리케이션을 포함하고, 보안 환경은 상기 클라이언트 애플리케이션으로부터 상기 데이터의 요청을 수신하는 신뢰된 실행 환경 소프트웨어를 포함하고, 상기 신뢰된 실행 환경 소프트웨어는 상기 데이터의 요청과는 상이한 경로로 요청된 데이터를 상기 클라이언트 애플리케이션으로 전송하고, 상기 클라이언트 애플리케이션은 상기 요청된 데이터를 수신하는 것을 특징으로 한다.
한국 공개특허공보 제10-2015-0033368호 (2015.04.01 공개) 한국 공개특허공보 제10-2014-0111943호 (2014.09.22 공개)
본 발명의 일 실시예는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 두고 별도의 전용 프로세스와 통신하도록 하여 보안영역에 대한 액세스를 용이하게 하는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.
본 발명의 일 실시예는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.
본 발명의 일 실시예는 보안영역 접근에 대하여 복호화 키 관리를 통해 외부 단말기 및 서버에 대한 인증을 수행하여 보안 수준을 높게 유지하는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.
실시예들 중에서, TEE(Trusted Execution Environment) 기반의 컴퓨팅 장치는 보안영역 및 공유공간을 포함하는 비보안영역으로 구성된 메모리, 상기 보안영역을 관리하며 상기 보안영역의 접근을 위한 제1 TEE API(Application Programming Interface)를 제공하는 제1 운영체제에 의하여 구축되고, 상기 제1 운영체제 상에서 TEE 처리 프로세스를 실행시키는 TEE 관리부 및 상기 보안영역에 대한 제2 TEE API를 제공하며 특정 프로세스가 상기 제2 TEE API를 통해 상기 보안영역을 접근하고자 하는 경우 상기 공유공간을 통해 상기 TEE 처리 프로세스와 통신하도록 하는 제2 운영체제에 의하여 구축된 TEE 환경부를 포함한다.
TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 제2 TEE API를 호출하여 상기 보안영역을 접근하는 경우 상기 제2 TEE API가 암호화 메시지를 상기 공유공간에 저장하도록 하는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 공유공간으로부터 획득된 제1 보안정보를 상기 암호화 메시지로서 외부의 서버에 송신하도록 하는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 외부의 서버로부터 획득된 제2 보안정보를 상기 암호화 메시지로서 상기 공유공간에 저장하도록 하는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서 상기 TEE 관리부는 외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리하는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서 상기 TEE 관리부는 상기 DRM 복호화 키를 통해 상기 공유공간에 저장된 암호화 메시지를 복호화하고 상기 TEE 처리 프로세스를 통해 상기 보안영역을 접근하는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서 상기 메모리는 휘발성 메모리와 비휘발성 메모리로 구성되고, 상기 TEE 관리부는 메모리 매핑 테이블을 통해 상기 보안영역을 상기 비휘발성 메모리로 연관시키는 것을 특징으로 할 수 있다.
TEE 기반의 컴퓨팅 장치에서, 상기 TEE 처리 프로세스는 상기 제1 운영체제 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고, 제1 데몬이 비정상적으로 동작되면 제2 데몬은 상기 제1 데몬을 복구시키면서 상기 공유공간에 저장된 암호화 메시지를 기초로 작업을 수행하는 것을 특징으로 할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 두고 별도의 전용 프로세스와 통신하도록 하여 보안영역에 대한 액세스를 용이하게 할 수 있다.
본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있다.
본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근에 대하여 복호화 키 관리를 통해 외부 단말기 및 서버에 대한 인증을 수행하여 보안 수준을 높게 유지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 하드웨어 및 소프트웨어의 구성을 개략적으로 나타내는 도면이다.
도 3은 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 실시예를 설명하는 순서도이다.
도 4는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 다른 실시예를 설명하는 순서도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 시스템을 설명하는 도면이다.
도 1을 참조하면, TEE 기반의 컴퓨팅 시스템(100)은 TEE 기반의 컴퓨팅 장치(110) 및 클라우드 서버(120)를 포함한다.
TEE 기반의 컴퓨팅 장치(110)는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경이 바뀌어도 간편하게 적용할 수 있는 TEE 기반의 소프트웨어 플랫폼을 제공한다. 여기에서, TEE(Trusted Execution Environment)는 일반적으로 안전성을 높이기 위하여 프로세서, 주변장치 및 저장장치를 대상으로 보안 서비스를 제공하는 소프트웨어 플랫폼을 말하는 것으로, 보안 영역과 비보안 영역의 분리를 지원하는 하드웨어 기능과 이를 이용하여 보안 서비스를 제공하는 소프트웨어로 구성된다. 또한, 여기에서, 소프트웨어 플랫폼이란, 다양한 어플리케이션이 작동하는 기반이 되는 운영체제 소프트웨어를 말한다.
TEE 기반의 컴퓨팅 장치(110)는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 통해 별도의 전용 프로세스인 TEE 처리 프로세스(226)를 진행하도록 하여 보안영역에 대한 액세스를 용이하게 할 수 있다. 예를 들어, N-스크린 진행 시, TEE 기반의 컴퓨팅 장치(110)는 수시로 즉각적인 데이터 처리를 필요로 하는 민감한 정보들의 보안을 유지하면서 보안영역에 대한 엑세스를 용이하게 할 수 있다. 이에 따라, TEE 기반의 컴퓨팅 장치(110)는 VOD(Video On Demand) 구매목록이나 결제내역처럼 보안을 필요로 하는 사용자의 정보 처리를 보안영역 안에서 진행할 수 있다. 여기에서, N-스크린은 여러 개의 화면을 통해 콘텐츠를 제공하는 서비스를 말한다. 예를 들어, N-스크린은 영화나 음악을 구입한 후 셋톱박스, TV, PC, 태블릿 및 스마트폰 등의 다양한 단말기에서 공통으로 콘텐츠를 향유할 수 있도록 한다.
TEE 기반의 컴퓨팅 장치(110)는 클라우드 서버(120)와 네트워크를 통해 연결될 수 있다. TEE 기반의 컴퓨팅 장치(110)는 중앙처리장치, 메모리 장치 및 입출력 수단을 구비한 셋톱박스, PC, 스마트폰, 태블릿 PC와 같은 컴퓨팅 장치에 해당할 수 있고, 클라우드 서버(120)에 의해 제공되는 서비스를 사용하는 사용자 혹은 사용자의 단말기에 해당할 수 있다.
클라우드 서버(120) 클라우드 컴퓨팅을 제공할 수 있는 가상 사설 서버로, 하나의 물리적 서버를 나누어 여러 개의 가상 서버로 이용하는 가상화 기술방법의 한 형태이다. 여기에서, 클라우드 컴퓨팅이란, 인터넷 기반의 컴퓨터 기술로, 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고, 그때 그때 필요할 때마다 컴퓨터나 휴대폰, 셋톱박스 등에 불러와서 사용하는 웹 기반 소프트웨어 서비스를 말한다. 클라우드 서버(120)는 네트워크를 통해 TEE 기반의 컴퓨팅 장치(110)에 다양한 서비스 및 기능을 제공할 수 있다.
도 2는 도1에 있는 TEE 기반의 컴퓨팅 장치의 하드웨어 및 소프트웨어의 구성을 개략적으로 나타내는 도면이다.
도 2를 참조하면, TEE 기반의 컴퓨팅 장치(110)는 메모리(210), TEE 관리부(220), TEE 환경부(230) 및 CPU(240)를 포함한다.
메모리(210)는 TEE 기반의 컴퓨팅 장치(110)에 설치된 로컬 저장장치에 해당하고, 휘발성 메모리와 비휘발성 메모리로 구성될 수 있다. 여기에서, 휘발성 메모리는 저장된 정보를 유지하기 위해 전기를 요구하는 컴퓨터 메모리로서, 동적 램(DRAM), 정적 램(SRAM)을 포함한 랜덤 액세스 메모리(RAM)로 구현될 수 있고, 비휘발성 메모리는 시스템에서 전원이 공급되지 않아도 내부 정보가 지워지지 않는 메모리로서, 플래시 메모리, 롬, 마그네틱 컴퓨터 기억장치 등으로 구현될 수 있다.
메모리(210)는 보안영역(212) 및 공유공간(216)을 포함하는 비보안영역(214)으로 구성된다. 보안영역(212)과 비보안영역(214)은 TEE 기반의 컴퓨팅 장치(110)의 소프트웨어 플랫폼에 의해 엄격하게 분리되도록 지원 받는다.
보안영역(212)은 제1 운영체제(222)에 의해 관리될 수 있고, 비보안영역(214)은 제2 운영체제(232)에 의해 관리된다. 공유공간(216)은 제2 TEE API(234) 및 복호키 관리부(228)에 의해 접근될 수 있고, 클라우드 서버(120)를 대상으로 한 복호화 및 인증 과정에 사용되는 암호화 메시지들이 저장될 수 있다.
TEE 관리부(220)는 보안영역(212)을 관리하며 보안영역(212)의 접근을 위한 제1 TEE API(Application Programming Interface)(224)를 제공하는 제1 운영체제(222)에 의하여 구축되고, 제1 운영체제(222) 상에서 TEE 처리 프로세스(226)를 실행시킨다. 여기에서, API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 응용 프로그램 프로그래밍 인터페이스를 의미하고, 이러한 API는 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 제1 운영체제(222)는 보안영역을 관리하는 운영체제이기 때문에 보안을 강화시킨 운영체제 소프트웨어를 필요로 한다. 일 실시예에서, 제1 운영체제(222)는 Secure OS(Operating System, 운영체제)를 통해 구현될 수 있다. 여기에서, Secure OS는 컴퓨터 운영체제 상에 내재된 보안상의 결함으로 인하여 발생할 수 있는 각종 해킹과 내부 공격자로부터 시스템을 보호하기 위한 솔루션으로, 기본적인 보안 계층을 파일시스템, 디바이스, 프로세스에 대한 접근 권한 결정이 이루어지는 운영체제의 커널 레벨로 낮춘 통합된 보안 커널(Security Kernel)을 이식한 운영체제이다. 이와 같은 Secure OS는 컴퓨터 시스템 자체를 통제하는 운영체제에 보안기능을 부여하였기 때문에 다른 보안 어플리케이션보다 보안 기능이 우수한 특징이 있다.
TEE 관리부(220)는 외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리할 수 있다. 여기에서, DRM은 전자장치 상의 디지털 콘텐츠에 대해 사용을 제어하여 콘텐츠가 정해진 규칙 내에서만 사용되도록 특정 사람 및 기기에서 사용권한을 제어하는 기술을 의미한다. TEE 관리부(220)는 DRM 복호화 키를 통해 공유공간에 저장된 암호화 메시지를 복호화하고 TEE 처리 프로세스를 통해 보안영역을 접근할 수 있다. 이러한 복호화 키 관리는 복호관리 프로세스(228)을 통해 진행될 수 있다.
TEE 관리부(220)는 메모리 매핑 테이블을 통해 보안영역(212)을 비휘발성 메모리(미도시됨)로 연관시키는 것을 특징으로 할 수 있다. 여기에서, 메모리 매핑 테이블은 프로그램에 의해 작성 된 코드를 실행파일로 만들어 운영체제를 실행할 때, 메모리에 각각의 데이터 영역을 분리하여 할당된 지도를 말한다. 예를 들어, 메모리 매핑 테이블은 헤더와 바디를 포함하는 바이너리 이미지로 구현될 수 있고, 헤더는 바디에 있는 보안영역(212)의 정보와 비휘발성 메모리의 위치(즉, 주소 정보)를 기록할 수 있다. TEE 관리부(220)는 이와 같은 방법을 통해 제1 운영체제(222)를 통해 보안영역(212) 내에서 비휘발성 메모리를 관리할 수 있다.
TEE 관리부(220)에서 TEE 처리 프로세스(226)는 제1 운영체제(222) 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고, 제1 데몬이 비정상적으로 동작되면 제2 데몬은 제1 데몬을 복구시키면서 공유공간(216)에 저장된 암호화 메시지를 기초로 작업을 수행할 수 있다. 여기에서, 데몬은 사용자에 의해 직접적으로 제어되지 않고 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 일반적으로 시스템은 시동할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당하게 된다. TEE 처리 프로세스(226)는 이러한 이중화 데몬을 통해 데몬의 동작 오류에 대비할 수 있고, 공유공간(216)에 저장된 암호화 메시지를 기초로 한 작업이 중단되지 않고 수행될 수 있도록 한다.
TEE 환경부(230)는 보안영역(212)에 대한 제2 TEE API(234)를 제공하며 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우 공유공간(216)을 통해 TEE 처리 프로세스(226)와 통신하도록 하는 제2 운영체제(232)에 의하여 구축된다. 일 실시예에서, 제2 운영체제(232)는 리눅스(Linux)에 의해 구현될 수 있다. 여기에서, 리눅스는 컴퓨터를 위한 운영 체제 중 하나로서, 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있다.
TEE 환경부(230)는 특정 프로세스가 제2 TEE API(234)를 호출하여 보안영역(212)을 접근하는 경우 제2 TEE API(234)가 암호화 메시지를 공유공간(216)에 저장하도록 할 수 있다. TEE 환경부(230)는 특정 프로세스가 공유공간(216)으로부터 획득된 제1 보안정보를 암호화 메시지로서 외부의 클라우드 서버(120)에 송신하도록 할 수 있고, 특정 프로세스가 클라우드 서버(120)로부터 획득된 제2 보안정보를 암호화 메시지로서 공유공간(216)에 저장하도록 할 수 있다. 클라우드 서버(120)와의 통신 과정은 통신관리 프로세스(236)을 통해 진행될 수 있다.
TEE 환경부(230)는 특정 프로세스가 제2 TEE API(234)를 호출하는 횟수를 카운트하여 이를 기초로 공유공간(216)의 크기를 동적으로 할당할 수 있다. 여기에서, 메모리의 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말하고, 사용 종료 시 운영체제가 쓸 수 있도록 반납하며 다음 요청이 있을 때 재 할당을 받을 수 있다. 일 실시예에서, TEE 환경부(230)는 수식 1을 적용하여 공유공간(216)의 크기를 동적으로 할당할 수 있다.
[수식 1]
Figure 112016059114371-pat00001
(SIZE는 공유공간(216)의 크기에 해당하고, Count는 특정 프로세스가 제2 TEE API(234)를 호출하는 횟수를 일정 시간 구간 동안 카운트한 수치에 해당함)
CPU(Central Processing Unit)(240)는 메모리(210), TEE 관리부(220), TEE 환경부(230) 및 기타 주변 장치들의 동작 전반을 제어하는 컴퓨터 내의 중앙 처리 장치로서, 외부에서 정보를 입력 받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력하는 역할을 수행한다.
도 3은 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 실시예를 설명하는 순서도이다.
도 3을 참조하면, TEE 기반의 컴퓨팅 장치(110)는 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우, 공유공간(216)을 통해 TEE 처리 프로세스(226)와 통신하도록 한다(단계 S310-S330).
TEE 기반의 컴퓨팅 장치(110)는 제1 운영체제(222)에 의하여 구축되는 TEE 관리부(220)와 제2 운영체제(232)에 의하여 구축되는 TEE 환경부(230)를 포함한다. 제1 운영체제(222)는 보안영역(212)을 관리하며 보안영역(212)의 접근을 위한 제1 TEE API(224)를 제공하고, 제2 운영체제(232)는 보안영역(212)에 대한 제2 TEE API(234)를 제공한다.
우선, 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우(단계S310), TEE 관리부(220)는 제1 운영체제(222) 상에서 TEE 처리 프로세스(226)를 실행시킬 수 있다(단계 S320). 다음, 제2 운영체제(232)는 해당 특정 프로세스와 TEE 처리 프로세스(226)의 통신이 공유공간(216)을 통해 진행되도록 할 수 있다(단계S330). 이와 같은 통신의 과정에서, TEE 처리 프로세스(226)는 해당 특정 프로세스에 의해 공유공간(216)에 저장된 암호화 메시지를 기초로 보안영역(212)에 대한 접근 여부에 대해 결정할 수 있고, 이를 기초로 TEE 관리부(220)는 외부 클라우드 서버(120)와의 통신에 있어서 보안영역(212)에 대한 액세스를 제어할 수 있다.
도 4는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 다른 실시예를 설명하는 순서도이다.
도 4를 참조하면, 우선, 앞서 서술한 바와 같이, 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우(단계S410), TEE 관리부(220)는 제1 운영체제(222) 상에서 TEE 처리 프로세스(226)를 실행시킬 수 있다(단계S420). 예를 들어, 클라우드 서버(120)와의 통신을 통해 클라우드 서버(120)의 보안 정보를 포함한 통신관리 프로세스(236)가 제2 TEE API(234)를 통해 보안영역(212)에 접근하고자 할 수 있고, 이에 대해 TEE 관리부(220)는 TEE 처리 프로세스(226)를 실행시키어 이후의 보안영역(212)의 접근과 관련한 통신에 대하여 제어할 수 있다.
해당 특정 프로세스가 제2 TEE API(234)를 호출하여 보안영역(212)에 접근함에 따라, 제2 TEE API(234)는 암호화 메시지를 공유공간(216)에 저장할 수 있다(단계S430). 예를 들어, 제2 TEE API(234)는 사전에 접근을 인가 받은 서버 혹은 단말기인지 확인하기 위하여 고유의 디바이스 정보를 요청하는 암호화 메시지를 공유공간(216)에 저장할 수 있다. 이후, TEE 환경부(230)는 해당 특정 프로세스가 공유공간(216)으로부터 획득한 제1 보안정보를 암호화 메시지로서 외부의 클라우드 서버(120)에 송신하도록 할 수 있다(단계S440).
다음, TEE 환경부(230)는 해당 특정 프로세스로 하여금 외부의 클라우드 서버(120)로부터 획득한 제2 보안정보를 암호화 메시지로서 공유공간(216)에 저장하도록 할 수 있다(단계S450). 예를 들어, 해당 특정 프로세스는 단계S430에서 공유공간(216)에 암호화 메시지로 저장되어 요청된 바 있는 고유의 디바이스 정보를 제2 보안정보로서 외부의 클라우드 서버(120)로부터 획득하여 암호화 메시지로서 공유공간(216)에 저장할 수 있다.
이후, TEE 관리부(220)는 이와 같이 외부의 클라우드 서버(120)로부터 획득하여 공유공간(216)에 저장된 암호화 메시지를 복호화하는 작업을 진행하도록 할 수 있다(단계S460). TEE 관리부(220)는 외부의 클라우드 서버(120)와 통신을 수행하기 위하여 적어도 하나의 DRM 복호화 키를 관리할 수 있고, 이와 같은 DRM 복호화 키를 통해 공유공간(216)에 저장된 암호화 메시지를 복호화할 수 있다. 실시예에서, TEE 관리부(220)는 복호관리 프로세스(228)를 통해 적어도 하나의 DRM 복호화 키 정보를 저장 및 관리할 수 있고, TEE 처리 프로세스(226)에 의해 복호화 과정 전반이 제어되도록 할 수 있다.
TEE 관리부(220)는 복호화 과정이 정상적으로 통과되면, TEE 처리 프로세스(226)를 통해 보안영역(212)을 접근하도록 할 수 있다(단계S470). 예를 들어, 외부의 클라우드 서버(120)로부터 획득하여 공유공간(216)에 저장된 암호화 메시지를 복호화하여 사전에 저장된 DRM 복호화 키와 일치됨을 확인하면, TEE 처리 프로세스(226)를 통해 보안영역(212)에 접근하도록 할 수 있고, 이를 기초로 하여 외부와의 통신을 수행하도록 제어할 수 있다(단계S480)
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: TEE 기반의 컴퓨팅 시스템
110: TEE 기반의 컴퓨팅 장치 120: 클라우드 서버
210: 메모리
212: 보안영역 214: 비보안영역
216: 공유공간
220: TEE 관리부
222: 제1 운영체제 224: 제1 TEE API
226: TEE 처리 프로세스 228: 복호관리 프로세스
230: TEE 환경부
232: 제2 운영체제 234: 제2 TEE API
236: 통신관리 프로세스
240: CPU

Claims (8)

  1. 보안영역 및 공유공간을 포함하는 비보안영역으로 구성된 메모리;
    상기 보안영역을 관리하며 상기 보안영역의 접근을 위한 제1 TEE API(Application Programming Interface)를 제공하는 제1 운영체제에 의하여 구축되고, 상기 제1 운영체제 상에서 TEE 처리 프로세스를 실행시키는 TEE 관리부; 및
    상기 보안영역에 대한 제2 TEE API를 제공하며 특정 프로세스가 상기 제2 TEE API를 통해 상기 보안영역을 접근하고자 하는 경우 상기 공유공간을 통해 상기 TEE 처리 프로세스와 통신하도록 하는 제2 운영체제에 의하여 구축된 TEE 환경부를 포함하고,
    상기 TEE 환경부는 상기 특정 프로세스가 상기 제2 TEE API를 호출하여 상기 보안영역을 접근하는 경우 상기 제2 TEE API가 암호화 메시지를 상기 공유공간에 저장하도록 하는 TEE(Trusted Execution Environment) 기반의 컴퓨팅 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 TEE 환경부는
    상기 특정 프로세스가 상기 공유공간으로부터 획득된 제1 보안정보를 상기 암호화 메시지로서 외부의 서버에 송신하도록 하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
  4. 제1항에 있어서, 상기 TEE 환경부는
    상기 특정 프로세스가 외부의 서버로부터 획득된 제2 보안정보를 상기 암호화 메시지로서 상기 공유공간에 저장하도록 하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
  5. 제1항에 있어서, 상기 TEE 관리부는
    외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
  6. 제5항에 있어서, 상기 TEE 관리부는
    상기 DRM 복호화 키를 통해 상기 공유공간에 저장된 암호화 메시지를 복호화하고 상기 TEE 처리 프로세스를 통해 상기 보안영역을 접근하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
  7. 제6항에 있어서,
    상기 메모리는 휘발성 메모리와 비휘발성 메모리로 구성되고,
    상기 TEE 관리부는 메모리 매핑 테이블을 통해 상기 보안영역을 상기 비휘발성 메모리로 연관시키는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
  8. 제1항에 있어서, 상기 TEE 처리 프로세스는
    상기 제1 운영체제 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고,
    제1 데몬이 비정상적으로 동작되면 제2 데몬은 상기 제1 데몬을 복구시키면서 상기 공유공간에 저장된 암호화 메시지를 기초로 작업을 수행하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
KR1020160076524A 2016-06-20 2016-06-20 신뢰실행환경 기반의 컴퓨팅 장치 KR101837678B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160076524A KR101837678B1 (ko) 2016-06-20 2016-06-20 신뢰실행환경 기반의 컴퓨팅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160076524A KR101837678B1 (ko) 2016-06-20 2016-06-20 신뢰실행환경 기반의 컴퓨팅 장치

Publications (2)

Publication Number Publication Date
KR20170142672A KR20170142672A (ko) 2017-12-28
KR101837678B1 true KR101837678B1 (ko) 2018-03-12

Family

ID=60940320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160076524A KR101837678B1 (ko) 2016-06-20 2016-06-20 신뢰실행환경 기반의 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR101837678B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073411A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 메모리 정보 획득 시스템 및 방법
US11132440B2 (en) 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102161777B1 (ko) * 2018-12-14 2020-10-05 서울여자대학교 산학협력단 신뢰 실행 환경 시스템
KR102137894B1 (ko) * 2018-12-18 2020-07-24 서울여자대학교 산학협력단 커널 무결성 검사 장치 및 방법
KR102235556B1 (ko) * 2019-12-12 2021-04-02 숭실대학교산학협력단 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
CN113139175A (zh) 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
KR102236761B1 (ko) * 2020-12-22 2021-04-06 주식회사 유니온플레이스 사물 인터넷 장치, 사물 인터넷 장치 관리 시스템 및 사물 인터넷 장치를 관리하는 방법
WO2024075929A1 (ko) * 2022-10-04 2024-04-11 삼성전자 주식회사 신뢰 실행 환경을 제공하기 위한 전자 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132440B2 (en) 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
US11874919B2 (en) 2018-11-01 2024-01-16 Crowdstrike, Inc. Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
KR20200073411A (ko) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 메모리 정보 획득 시스템 및 방법
KR102161770B1 (ko) * 2018-12-14 2020-10-05 서울여자대학교 산학협력단 메모리 정보 획득 시스템 및 방법

Also Published As

Publication number Publication date
KR20170142672A (ko) 2017-12-28

Similar Documents

Publication Publication Date Title
KR101837678B1 (ko) 신뢰실행환경 기반의 컴퓨팅 장치
US10372919B1 (en) Protecting virtual machine data in cloud environments
KR102451109B1 (ko) 디바이스 익명성을 제공하는 키 증명문 생성
RU2667713C2 (ru) Селективное обеспечение соблюдения целостности кода, обеспечиваемое менеджером виртуальной машины
US9710400B2 (en) Secure virtual machine memory
US8924723B2 (en) Managing security for computer services
US8505084B2 (en) Data access programming model for occasionally connected applications
JP5611598B2 (ja) Usbトークン上の暗号化キーコンテナ
US10409984B1 (en) Hierarchical data security measures for a mobile device
US9172724B1 (en) Licensing and authentication with virtual desktop manager
US10440111B2 (en) Application execution program, application execution method, and information processing terminal device that executes application
KR102295960B1 (ko) 가상화 기반의 보안 서비스 제공 장치 및 제공 방법
JP2017527919A (ja) ポリシーを有するデータ保護の保持
WO2019047745A1 (zh) 一种数据共享方法、终端设备和存储介质
KR20150017844A (ko) 페이지 구성 방법 및 이를 지원하는 전자 장치
KR20150092890A (ko) 가상화 기반 보안 강화 장치 및 그 방법
US20210109870A1 (en) Isolating memory within trusted execution environments
WO2020175884A1 (en) Device and method for authenticating application in execution environment in trust zone
US10049222B1 (en) Establishing application trust levels using taint propagation
US20230015537A1 (en) Reducing latency of hardware trusted execution environments
WO2016197850A1 (zh) 一种访问电子设备的物理内存中私密数据的方法和装置
US20200288210A1 (en) Display device and control method therefor
US9609080B2 (en) Systems and methods for device identity delegation for application software
US9501658B1 (en) Avoiding file content reading using machine information
KR20140127124A (ko) 시스템 자원에 대한 접근을 관리하는 전자 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant