KR20170142672A - Computing apparatus based on trusted execution environment - Google Patents

Computing apparatus based on trusted execution environment Download PDF

Info

Publication number
KR20170142672A
KR20170142672A KR1020160076524A KR20160076524A KR20170142672A KR 20170142672 A KR20170142672 A KR 20170142672A KR 1020160076524 A KR1020160076524 A KR 1020160076524A KR 20160076524 A KR20160076524 A KR 20160076524A KR 20170142672 A KR20170142672 A KR 20170142672A
Authority
KR
South Korea
Prior art keywords
tee
security
shared space
api
environment
Prior art date
Application number
KR1020160076524A
Other languages
Korean (ko)
Other versions
KR101837678B1 (en
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/en
Publication of KR20170142672A publication Critical patent/KR20170142672A/en
Application granted granted Critical
Publication of KR101837678B1 publication Critical patent/KR101837678B1/en

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

The present invention relates to a computing technology based on a trusted execution environment (TEE), to facilitate access to a security region. According to the present invention, the computing apparatus comprises: a memory formed with the security region and a non-security region including a shared space; a TEE management unit managing the security region, constructed by a first operating system (OS) providing a first TEE application programming interface (API) to access the security region, and executing a TEE processing process on the first OS; and a TEE environment unit providing a second TEE API for the security region, and constructed by a second OS communicating with the TEE processing process through the shared space when the security region is accessed through the second TEE API.

Description

신뢰실행환경 기반의 컴퓨팅 장치{COMPUTING APPARATUS BASED ON TRUSTED EXECUTION ENVIRONMENT}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a computing apparatus based on trust execution environment,

본 발명은 신뢰실행환경 기반의 컴퓨팅 기술에 관한 것으로, 보다 상세하게는, 보안영역 접근을 제어하는 전용 프로세스를 구비하여 보안영역에 대한 액세스를 용이하게 하고, 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있는 TEE 기반의 컴퓨팅 장치에 관한 것이다.The present invention relates to a trusted execution environment-based computing technology, and more particularly, to a trusted execution environment-based computing technology that includes a dedicated process for controlling access to a secure area to facilitate access to a secure area, The present invention relates to a TEE-based computing device that can be easily applied without changing the user interface.

TEE(Trusted Execution Environment: 신뢰가 보장된 실행 환경)는 안전성을 높이기 위하여 프로세서, 주변장치 및 저장장치를 대상으로 보안 서비스를 제공하는 소프트웨어 플랫폼을 말한다. TEE는 일반적으로 보안 영역과 비보안 영역의 분리를 지원하는 하드웨어 기능과 이를 이용하여 보안 서비스를 제공하는 소프트웨어로 구성된다.The Trusted Execution Environment (TEE) is a software platform that provides security services to processors, peripherals, and storage devices for increased security. TEE generally consists of hardware functions that support the separation of security and non-security areas and software that provides security services using them.

TEE는 개방형 운영체제에 하드웨어 기반의 독립적으로 격리된 실행 환경을 제공할 수 있기 때문에 소프트웨어 공격에 대한 방어가 가능하여 보안 수준을 향상시킬 수 있다. 이로 인해, TEE는 장치 및 사용자의 정보에 대한 보안기술을 필요로 하는 다양한 컴퓨팅 장치들에 적용되고 있다.TEE can provide an independent operating environment independent of the hardware on an open operating system, which can protect against software attacks and improve security. As a result, TEE is being applied to various computing devices that require security technology for device and user information.

종래의 TEE는 보안 수준이 강력한 만큼 상시로 요구되는 보안영역에 대한 접근이 용이하지 않고, 보안영역 내의 정보를 송수신하기 위한 운영체제 내의 통신 인터페이스를 환경에 따라 일일이 설계해주어야 하는 단점이 있다.The conventional TEE has a disadvantage in that it is not easy to access the security area which is always required as the security level is strong, and the communication interface in the operating system for transmitting and receiving information in the security area must be designed according to the environment.

한국 공개특허공보 제10-2015-0033368호는 신뢰하는 실행 환경(Trusted Execution Environment; TEE)에서의 보안 도메인 관리 방법 및 장치에 관한 것으로, 적어도 하나의 보안 도메인을 포함하는 TEE에서 적어도 하나의 보안 도메인을 관리하기 위한 보안 도메인 관리 방법에 있어서, 임의의 보안 도메인에 대한 이벤트가 발생하면, 상기 이벤트에 관한 정보를 획득하는 단계, 상기 이벤트에 관한 정보를 적어도 하나의 다른 보안 도메인으로 전달하는 단계를 포함하되, 상기 이벤트에 관한 정보는 TEE 커널을 통하여 전달되는 것을 특징으로 한다.Korean Patent Laid-Open Publication No. 10-2015-0033368 relates to a security domain management method and apparatus in a Trusted Execution Environment (TEE), wherein at least one security domain in a TEE including at least one security domain The method comprising: acquiring information about the event when an event for a certain security domain occurs; and forwarding information about the event to at least one other secure domain And information about the event is transmitted through a TEE kernel.

한국 공개특허공보 제10-2014-0111943호는 보안 환경 장치 및 구현 방법에 관한 것으로, 일반 환경은 데이터를 보안 환경으로 요청하는 클라이언트 애플리케이션을 포함하고, 보안 환경은 상기 클라이언트 애플리케이션으로부터 상기 데이터의 요청을 수신하는 신뢰된 실행 환경 소프트웨어를 포함하고, 상기 신뢰된 실행 환경 소프트웨어는 상기 데이터의 요청과는 상이한 경로로 요청된 데이터를 상기 클라이언트 애플리케이션으로 전송하고, 상기 클라이언트 애플리케이션은 상기 요청된 데이터를 수신하는 것을 특징으로 한다.Korean Patent Laid-Open No. 10-2014-0111943 relates to a security environment apparatus and an implementation method, wherein a general environment includes a client application for requesting data to a security environment, and a security environment for requesting the data from the client application Wherein the trusted execution environment software is adapted to send the requested data to the client application on a different path than the request for the data and the client application to receive the requested data .

한국 공개특허공보 제10-2015-0033368호 (2015.04.01 공개)Korean Patent Laid-Open Publication No. 10-2015-0033368 (published on April 20, 2015) 한국 공개특허공보 제10-2014-0111943호 (2014.09.22 공개)Korean Patent Laid-Open Publication No. 10-2014-0111943 (published on September 22, 2014)

본 발명의 일 실시예는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 두고 별도의 전용 프로세스와 통신하도록 하여 보안영역에 대한 액세스를 용이하게 하는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.An embodiment of the present invention is to provide a TEE-based computing device that facilitates access to a security area by communicating with a separate dedicated process over a shared space in a non-security area upon receiving a secure area access request.

본 발명의 일 실시예는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.An embodiment of the present invention is to provide a TEE-based computing device that has a dedicated process for controlling access to a secure area and can be easily applied without changing the design of a software platform according to a user interface and environment.

본 발명의 일 실시예는 보안영역 접근에 대하여 복호화 키 관리를 통해 외부 단말기 및 서버에 대한 인증을 수행하여 보안 수준을 높게 유지하는 TEE 기반의 컴퓨팅 장치를 제공하고자 한다.An embodiment of the present invention is to provide a TEE-based computing device that performs authentication for an external terminal and a server through a decryption key management for a secure area access, thereby maintaining a high level of security.

실시예들 중에서, TEE(Trusted Execution Environment) 기반의 컴퓨팅 장치는 보안영역 및 공유공간을 포함하는 비보안영역으로 구성된 메모리, 상기 보안영역을 관리하며 상기 보안영역의 접근을 위한 제1 TEE API(Application Programming Interface)를 제공하는 제1 운영체제에 의하여 구축되고, 상기 제1 운영체제 상에서 TEE 처리 프로세스를 실행시키는 TEE 관리부 및 상기 보안영역에 대한 제2 TEE API를 제공하며 특정 프로세스가 상기 제2 TEE API를 통해 상기 보안영역을 접근하고자 하는 경우 상기 공유공간을 통해 상기 TEE 처리 프로세스와 통신하도록 하는 제2 운영체제에 의하여 구축된 TEE 환경부를 포함한다.Among the embodiments, a TEE (Trusted Execution Environment) based computing device includes a memory configured by a non-security area including a security area and a shared area, a first TEE API (Application Programming Interface) for managing the security area, A TEE management unit configured to execute a TEE processing process on the first operating system and a second TEE API for the security area, and a specific process is provided through the second TEE API, And a TEE environment unit constructed by a second operating system for communicating with the TEE processing process through the shared space when accessing the security area.

TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 제2 TEE API를 호출하여 상기 보안영역을 접근하는 경우 상기 제2 TEE API가 암호화 메시지를 상기 공유공간에 저장하도록 하는 것을 특징으로 할 수 있다. The TEE environment unit in the TEE-based computing device causes the second TEE API to store an encryption message in the shared space when the specific process accesses the security area by calling the second TEE API have.

TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 공유공간으로부터 획득된 제1 보안정보를 상기 암호화 메시지로서 외부의 서버에 송신하도록 하는 것을 특징으로 할 수 있다.In the TEE-based computing device, the TEE environment unit may cause the specific process to transmit the first security information obtained from the shared space to the external server as the encrypted message.

TEE 기반의 컴퓨팅 장치에서 상기 TEE 환경부는 상기 특정 프로세스가 상기 외부의 서버로부터 획득된 제2 보안정보를 상기 암호화 메시지로서 상기 공유공간에 저장하도록 하는 것을 특징으로 할 수 있다.In the TEE-based computing device, the TEE environment part may cause the specific process to store the second security information obtained from the external server in the shared space as the encrypted message.

TEE 기반의 컴퓨팅 장치에서 상기 TEE 관리부는 외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리하는 것을 특징으로 할 수 있다.In the TEE-based computing device, the TEE management unit manages at least one DRM (Digital Rights Management) decryption key to perform communication with an external server.

TEE 기반의 컴퓨팅 장치에서 상기 TEE 관리부는 상기 DRM 복호화 키를 통해 상기 공유공간에 저장된 암호화 메시지를 복호화하고 상기 TEE 처리 프로세스를 통해 상기 보안영역을 접근하는 것을 특징으로 할 수 있다.In the TEE-based computing device, the TEE management unit decrypts the encrypted message stored in the shared space through the DRM decryption key, and accesses the secure area through the TEE process.

TEE 기반의 컴퓨팅 장치에서 상기 메모리는 휘발성 메모리와 비휘발성 메모리로 구성되고, 상기 TEE 관리부는 메모리 매핑 테이블을 통해 상기 보안영역을 상기 비휘발성 메모리로 연관시키는 것을 특징으로 할 수 있다.In the TEE-based computing apparatus, the memory may be constituted by a volatile memory and a nonvolatile memory, and the TEE management unit may associate the security area with the nonvolatile memory through a memory mapping table.

TEE 기반의 컴퓨팅 장치에서, 상기 TEE 처리 프로세스는 상기 제1 운영체제 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고, 제1 데몬이 비정상적으로 동작되면 제2 데몬은 상기 제1 데몬을 복구시키면서 상기 공유공간에 저장된 암호화 메시지를 기초로 작업을 수행하는 것을 특징으로 할 수 있다.In a TEE-based computing device, the TEE processing process operates as a redundant daemon composed of main and auxiliary daemons communicating with each other at regular intervals on the first operating system, and when the first daemon is abnormally operated, One daemon is restored and an operation is performed based on an encryption message stored in the shared space.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technique may have the following effects. It is to be understood, however, that the scope of the disclosed technology is not to be construed as limited thereby, as it is not meant to imply that a particular embodiment should include all of the following effects or only the following effects.

본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 두고 별도의 전용 프로세스와 통신하도록 하여 보안영역에 대한 액세스를 용이하게 할 수 있다.The TEE-based computing device according to an embodiment of the present invention can facilitate access to the security area by communicating with a dedicated process in a shared space in a non-security area upon receiving a security area access request.

본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경에 따라 소프트웨어 플랫폼의 설계를 일일이 변경하지 않아도 간편하게 적용할 수 있다.The TEE-based computing device according to an exemplary embodiment of the present invention includes a dedicated process for controlling access to the secure area, so that it can be easily applied without changing the design of the software platform according to the user interface and the environment.

본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 장치는 보안영역 접근에 대하여 복호화 키 관리를 통해 외부 단말기 및 서버에 대한 인증을 수행하여 보안 수준을 높게 유지할 수 있다.The TEE-based computing apparatus according to an exemplary embodiment of the present invention can perform authentication of an external terminal and a server through a decryption key management for a secure area access, thereby maintaining a high level of security.

도 1은 본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 하드웨어 및 소프트웨어의 구성을 개략적으로 나타내는 도면이다.
도 3은 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 실시예를 설명하는 순서도이다.
도 4는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 다른 실시예를 설명하는 순서도이다.
1 is a diagram illustrating a TEE-based computing system according to an embodiment of the present invention.
2 is a diagram schematically showing the hardware and software configuration of the TEE-based computing device shown in FIG.
3 is a flow chart illustrating an embodiment of the operation of the TEE-based computing device in FIG.
4 is a flowchart illustrating another embodiment of the operation of the TEE-based computing device in FIG.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas. Also, the purpose or effect of the present invention should not be construed as limiting the scope of the present invention, since it does not mean that a specific embodiment should include all or only such effect.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that the singular " include " or "have" are to be construed as including the stated feature, number, step, operation, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all kinds of recording devices for storing data that can be read by a computer system . Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and also implemented in the form of a carrier wave (for example, transmission over the Internet) . In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present application.

도 1은 본 발명의 일 실시예에 따른 TEE 기반의 컴퓨팅 시스템을 설명하는 도면이다.1 is a diagram illustrating a TEE-based computing system according to an embodiment of the present invention.

도 1을 참조하면, TEE 기반의 컴퓨팅 시스템(100)은 TEE 기반의 컴퓨팅 장치(110) 및 클라우드 서버(120)를 포함한다.Referring to FIG. 1, a TEE-based computing system 100 includes a TEE-based computing device 110 and a cloud server 120.

TEE 기반의 컴퓨팅 장치(110)는 보안영역 접근을 제어하는 전용 프로세스를 구비하여 사용자 인터페이스 및 환경이 바뀌어도 간편하게 적용할 수 있는 TEE 기반의 소프트웨어 플랫폼을 제공한다. 여기에서, TEE(Trusted Execution Environment)는 일반적으로 안전성을 높이기 위하여 프로세서, 주변장치 및 저장장치를 대상으로 보안 서비스를 제공하는 소프트웨어 플랫폼을 말하는 것으로, 보안 영역과 비보안 영역의 분리를 지원하는 하드웨어 기능과 이를 이용하여 보안 서비스를 제공하는 소프트웨어로 구성된다. 또한, 여기에서, 소프트웨어 플랫폼이란, 다양한 어플리케이션이 작동하는 기반이 되는 운영체제 소프트웨어를 말한다. The TEE-based computing device 110 has a dedicated process for controlling access to the secure area, thereby providing a TEE-based software platform that can be easily applied even if the user interface and the environment change. The Trusted Execution Environment (TEE) is a software platform that provides security services to processors, peripherals, and storage devices in order to enhance security. It is a hardware platform that supports separation of security and non-security areas. And software that provides security services by using them. Here, the software platform refers to operating system software on which various applications operate.

TEE 기반의 컴퓨팅 장치(110)는 보안영역 접근 요청을 수신하면 비보안영역 내의 공유공간을 통해 별도의 전용 프로세스인 TEE 처리 프로세스(226)를 진행하도록 하여 보안영역에 대한 액세스를 용이하게 할 수 있다. 예를 들어, N-스크린 진행 시, TEE 기반의 컴퓨팅 장치(110)는 수시로 즉각적인 데이터 처리를 필요로 하는 민감한 정보들의 보안을 유지하면서 보안영역에 대한 엑세스를 용이하게 할 수 있다. 이에 따라, TEE 기반의 컴퓨팅 장치(110)는 VOD(Video On Demand) 구매목록이나 결제내역처럼 보안을 필요로 하는 사용자의 정보 처리를 보안영역 안에서 진행할 수 있다. 여기에서, N-스크린은 여러 개의 화면을 통해 콘텐츠를 제공하는 서비스를 말한다. 예를 들어, N-스크린은 영화나 음악을 구입한 후 셋톱박스, TV, PC, 태블릿 및 스마트폰 등의 다양한 단말기에서 공통으로 콘텐츠를 향유할 수 있도록 한다. When the TEE-based computing device 110 receives the secure area access request, the TEE-based computing device 110 may proceed to the TEE processing process 226, which is a separate dedicated process, through the shared area in the non-secured area to facilitate access to the secure area. For example, during an N-screen, the TEE-based computing device 110 may facilitate access to the secure area while maintaining the security of sensitive information that requires immediate data processing from time to time. Accordingly, the TEE-based computing device 110 can process information of a user requiring security, such as a VOD (Video On Demand) purchase list or payment history, in the security domain. Here, the N-screen refers to a service that provides contents through a plurality of screens. For example, N-Screen enables users to enjoy movies and music and then enjoy the contents in a variety of terminals such as set-top boxes, TVs, PCs, tablets and smart phones.

TEE 기반의 컴퓨팅 장치(110)는 클라우드 서버(120)와 네트워크를 통해 연결될 수 있다. TEE 기반의 컴퓨팅 장치(110)는 중앙처리장치, 메모리 장치 및 입출력 수단을 구비한 셋톱박스, PC, 스마트폰, 태블릿 PC와 같은 컴퓨팅 장치에 해당할 수 있고, 클라우드 서버(120)에 의해 제공되는 서비스를 사용하는 사용자 혹은 사용자의 단말기에 해당할 수 있다.The TEE-based computing device 110 may be connected to the cloud server 120 via a network. The TEE-based computing device 110 may correspond to a computing device such as a set-top box, a PC, a smart phone, a tablet PC with a central processing unit, a memory device and input / output means, and may be provided by a cloud server 120 And may correspond to a user using a service or a terminal of a user.

클라우드 서버(120) 클라우드 컴퓨팅을 제공할 수 있는 가상 사설 서버로, 하나의 물리적 서버를 나누어 여러 개의 가상 서버로 이용하는 가상화 기술방법의 한 형태이다. 여기에서, 클라우드 컴퓨팅이란, 인터넷 기반의 컴퓨터 기술로, 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고, 그때 그때 필요할 때마다 컴퓨터나 휴대폰, 셋톱박스 등에 불러와서 사용하는 웹 기반 소프트웨어 서비스를 말한다. 클라우드 서버(120)는 네트워크를 통해 TEE 기반의 컴퓨팅 장치(110)에 다양한 서비스 및 기능을 제공할 수 있다.The cloud server 120 is a virtual private server capable of providing cloud computing, and is a type of virtualization technique in which one physical server is divided into several virtual servers. Here, cloud computing is an Internet-based computer technology that refers to a web-based software service in which a program is placed on a utility data server on the Internet and is then used whenever necessary in a computer, a mobile phone, or a set-top box. The cloud server 120 may provide various services and functions to the TEE-based computing device 110 via the network.

도 2는 도1에 있는 TEE 기반의 컴퓨팅 장치의 하드웨어 및 소프트웨어의 구성을 개략적으로 나타내는 도면이다.2 is a diagram schematically showing the hardware and software configuration of the TEE-based computing device shown in FIG.

도 2를 참조하면, TEE 기반의 컴퓨팅 장치(110)는 메모리(210), TEE 관리부(220), TEE 환경부(230) 및 CPU(240)를 포함한다.Referring to FIG. 2, the TEE-based computing device 110 includes a memory 210, a TEE management unit 220, a TEE environment unit 230, and a CPU 240.

메모리(210)는 TEE 기반의 컴퓨팅 장치(110)에 설치된 로컬 저장장치에 해당하고, 휘발성 메모리와 비휘발성 메모리로 구성될 수 있다. 여기에서, 휘발성 메모리는 저장된 정보를 유지하기 위해 전기를 요구하는 컴퓨터 메모리로서, 동적 램(DRAM), 정적 램(SRAM)을 포함한 랜덤 액세스 메모리(RAM)로 구현될 수 있고, 비휘발성 메모리는 시스템에서 전원이 공급되지 않아도 내부 정보가 지워지지 않는 메모리로서, 플래시 메모리, 롬, 마그네틱 컴퓨터 기억장치 등으로 구현될 수 있다.The memory 210 corresponds to a local storage device installed in the TEE-based computing device 110, and may be constituted by a volatile memory and a nonvolatile memory. Volatile memory may be implemented as a random access memory (RAM), including dynamic random access memory (DRAM), static random access memory (SRAM), and non-volatile memory, A flash memory, a ROM, a magnetic computer storage device, or the like, which does not erase internal information even if power is not supplied thereto.

메모리(210)는 보안영역(212) 및 공유공간(216)을 포함하는 비보안영역(214)으로 구성된다. 보안영역(212)과 비보안영역(214)은 TEE 기반의 컴퓨팅 장치(110)의 소프트웨어 플랫폼에 의해 엄격하게 분리되도록 지원 받는다.The memory 210 is comprised of a secure area 212 and a non-secure area 214 including a shared space 216. The secure area 212 and the non-secure area 214 are supported to be strictly separated by the software platform of the TEE-based computing device 110.

보안영역(212)은 제1 운영체제(222)에 의해 관리될 수 있고, 비보안영역(214)은 제2 운영체제(232)에 의해 관리된다. 공유공간(216)은 제2 TEE API(234) 및 복호키 관리부(228)에 의해 접근될 수 있고, 클라우드 서버(120)를 대상으로 한 복호화 및 인증 과정에 사용되는 암호화 메시지들이 저장될 수 있다. The secure area 212 can be managed by the first operating system 222 and the non-secured area 214 is managed by the second operating system 232. [ The shared space 216 may be accessed by the second TEE API 234 and the decryption key manager 228 and encrypted messages used in the decryption and authentication process for the cloud server 120 may be stored .

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는 컴퓨터 시스템 자체를 통제하는 운영체제에 보안기능을 부여하였기 때문에 다른 보안 어플리케이션보다 보안 기능이 우수한 특징이 있다.The TEE management unit 220 is constructed by a first operating system 222 that manages the security area 212 and provides a first TEE application programming interface (API) 224 for accessing the security area 212, RTI ID = 0.0 > 226 < / RTI > Here, an API refers to an application programming interface that allows an application to control the functions provided by an operating system or programming language, such as file control, window control, image processing, character control And so on. Since the first operating system 222 is an operating system that manages a security area, it requires operating system software that enhances security. In one embodiment, the first operating system 222 may be implemented through a Secure OS (Operating System). Here, Secure OS is a solution to protect the system from various hacking and internal attackers that may be caused by security flaws inherent in the computer operating system. It is a solution that determines the access rights to file systems, devices, and processes It is an operating system that ported an integrated security kernel that is lowered to the kernel level of the operating system. Such a Secure OS provides security functions to the operating system that controls the computer system itself, which is superior to other security applications.

TEE 관리부(220)는 외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리할 수 있다. 여기에서, DRM은 전자장치 상의 디지털 콘텐츠에 대해 사용을 제어하여 콘텐츠가 정해진 규칙 내에서만 사용되도록 특정 사람 및 기기에서 사용권한을 제어하는 기술을 의미한다. TEE 관리부(220)는 DRM 복호화 키를 통해 공유공간에 저장된 암호화 메시지를 복호화하고 TEE 처리 프로세스를 통해 보안영역을 접근할 수 있다. 이러한 복호화 키 관리는 복호관리 프로세스(228)을 통해 진행될 수 있다.The TEE management unit 220 may manage at least one DRM (Digital Rights Management) decryption key to perform communication with an external server. Here, DRM refers to a technique of controlling usage of digital content on an electronic device to control usage rights in a specific person and device so that the content is used only within a predetermined rule. The TEE management unit 220 decrypts the encrypted message stored in the shared space through the DRM decryption key and accesses the secure area through the TEE process. This decryption key management may proceed through the decryption management process 228. [

TEE 관리부(220)는 메모리 매핑 테이블을 통해 보안영역(212)을 비휘발성 메모리(미도시됨)로 연관시키는 것을 특징으로 할 수 있다. 여기에서, 메모리 매핑 테이블은 프로그램에 의해 작성 된 코드를 실행파일로 만들어 운영체제를 실행할 때, 메모리에 각각의 데이터 영역을 분리하여 할당된 지도를 말한다. 예를 들어, 메모리 매핑 테이블은 헤더와 바디를 포함하는 바이너리 이미지로 구현될 수 있고, 헤더는 바디에 있는 보안영역(212)의 정보와 비휘발성 메모리의 위치(즉, 주소 정보)를 기록할 수 있다. TEE 관리부(220)는 이와 같은 방법을 통해 제1 운영체제(222)를 통해 보안영역(212) 내에서 비휘발성 메모리를 관리할 수 있다. The TEE management unit 220 may associate the secure area 212 with the nonvolatile memory (not shown) through the memory mapping table. Here, the memory mapping table refers to a map allocated by dividing each data area into memory when the operating system is executed by making the code written by the program into an executable file. For example, the memory mapping table can be implemented as a binary image including a header and a body, and the header can record the information of the security area 212 in the body and the location of the nonvolatile memory (i.e., address information) have. The TEE management unit 220 can manage the nonvolatile memory in the security area 212 through the first operating system 222 through this method.

TEE 관리부(220)에서 TEE 처리 프로세스(226)는 제1 운영체제(222) 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고, 제1 데몬이 비정상적으로 동작되면 제2 데몬은 제1 데몬을 복구시키면서 공유공간(216)에 저장된 암호화 메시지를 기초로 작업을 수행할 수 있다. 여기에서, 데몬은 사용자에 의해 직접적으로 제어되지 않고 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 일반적으로 시스템은 시동할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당하게 된다. TEE 처리 프로세스(226)는 이러한 이중화 데몬을 통해 데몬의 동작 오류에 대비할 수 있고, 공유공간(216)에 저장된 암호화 메시지를 기초로 한 작업이 중단되지 않고 수행될 수 있도록 한다.In the TEE management unit 220, the TEE processing process 226 operates as a redundant daemon that is composed of main and auxiliary daemons communicating with each other on a first cycle 222 on a first operating system 222. When the first daemon is abnormally operated, May perform operations based on the encryption message stored in the shared space 216 while recovering the first daemon. Here, a daemon is a program that is not directly controlled by the user but that does several things in the background. In general, systems often start daemons at startup, and these daemons are responsible for network requests, hardware operations, and other program responsiveness. The TEE processing process 226 is able to prepare for the operational error of the daemon through this redundant daemon and allows the work based on the encrypted message stored in the shared space 216 to be performed without interruption.

TEE 환경부(230)는 보안영역(212)에 대한 제2 TEE API(234)를 제공하며 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우 공유공간(216)을 통해 TEE 처리 프로세스(226)와 통신하도록 하는 제2 운영체제(232)에 의하여 구축된다. 일 실시예에서, 제2 운영체제(232)는 리눅스(Linux)에 의해 구현될 수 있다. 여기에서, 리눅스는 컴퓨터를 위한 운영 체제 중 하나로서, 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있다.The TEE environment 230 provides a second TEE API 234 for the secure area 212 and provides a shared space 216 when a particular process wishes to access the secure area 212 via the second TEE API 234. [ Lt; RTI ID = 0.0 > 226 < / RTI > In one embodiment, the second operating system 232 may be implemented by Linux. Here, Linux is one of the operating systems for computers, and is one of the most famous examples of free software and open source development.

TEE 환경부(230)는 특정 프로세스가 제2 TEE API(234)를 호출하여 보안영역(212)을 접근하는 경우 제2 TEE API(234)가 암호화 메시지를 공유공간(216)에 저장하도록 할 수 있다. TEE 환경부(230)는 특정 프로세스가 공유공간(216)으로부터 획득된 제1 보안정보를 암호화 메시지로서 외부의 클라우드 서버(120)에 송신하도록 할 수 있고, 특정 프로세스가 클라우드 서버(120)로부터 획득된 제2 보안정보를 암호화 메시지로서 공유공간(216)에 저장하도록 할 수 있다. 클라우드 서버(120)와의 통신 과정은 통신관리 프로세스(236)을 통해 진행될 수 있다.The TEE environment unit 230 may cause the second TEE API 234 to store an encrypted message in the shared space 216 when a particular process calls the second TEE API 234 to access the secure area 212 . The TEE environment unit 230 may cause the specific process to send the first security information obtained from the shared space 216 as an encrypted message to the external cloud server 120 and that the specific process is acquired from the cloud server 120 And store the second security information in the shared space 216 as an encrypted message. The process of communicating with the cloud server 120 may proceed through the communication management process 236.

TEE 환경부(230)는 특정 프로세스가 제2 TEE API(234)를 호출하는 횟수를 카운트하여 이를 기초로 공유공간(216)의 크기를 동적으로 할당할 수 있다. 여기에서, 메모리의 동적 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말하고, 사용 종료 시 운영체제가 쓸 수 있도록 반납하며 다음 요청이 있을 때 재 할당을 받을 수 있다. 일 실시예에서, TEE 환경부(230)는 수식 1을 적용하여 공유공간(216)의 크기를 동적으로 할당할 수 있다.The TEE environment unit 230 may count the number of times a specific process calls the second TEE API 234 and dynamically allocate the size of the shared space 216 based on the count. Here, dynamic allocation of memory refers to allocating memory space to be used during execution time in computer programming, returning it for use by the operating system at the end of use, and reallocation when the next request is made. In one embodiment, the TEE environment 230 may apply Equation 1 to dynamically allocate the size of the shared space 216.

[수식 1][Equation 1]

Figure pat00001
Figure pat00001

(SIZE는 공유공간(216)의 크기에 해당하고, Count는 특정 프로세스가 제2 TEE API(234)를 호출하는 횟수를 일정 시간 구간 동안 카운트한 수치에 해당함)(SIZE corresponds to the size of the shared space 216, and Count corresponds to a value obtained by counting the number of times that the specific process calls the second TEE API 234 during a certain time period)

CPU(Central Processing Unit)(240)는 메모리(210), TEE 관리부(220), TEE 환경부(230) 및 기타 주변 장치들의 동작 전반을 제어하는 컴퓨터 내의 중앙 처리 장치로서, 외부에서 정보를 입력 받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력하는 역할을 수행한다.A central processing unit (CPU) 240 is a central processing unit in a computer that controls overall operations of the memory 210, the TEE management unit 220, the TEE environment unit 230, and other peripheral devices, And interprets and computes the instructions of the computer program and outputs it to the outside.

도 3은 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 실시예를 설명하는 순서도이다.3 is a flow chart illustrating an embodiment of the operation of the TEE-based computing device in FIG.

도 3을 참조하면, TEE 기반의 컴퓨팅 장치(110)는 특정 프로세스가 제2 TEE API(234)를 통해 보안영역(212)을 접근하고자 하는 경우, 공유공간(216)을 통해 TEE 처리 프로세스(226)와 통신하도록 한다(단계 S310-S330).Referring to FIG. 3, a TEE-based computing device 110 may communicate with a TEE processing process 226 (FIG. 3) via a shared space 216 if a particular process wishes to access the secure area 212 via the second TEE API 234. [ (Steps 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)를 제공한다. The TEE-based computing device 110 includes a TEE management unit 220 constructed by a first operating system 222 and a TEE environment unit 230 constructed by a second operating system 232. The first operating system 222 manages the security area 212 and provides a first TEE API 224 for accessing the security area 212 and a second operating system 232 provides the first TEE API 224 for the security area 212 2 < / RTI > 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)에 대한 액세스를 제어할 수 있다.The TEE management unit 220 executes the TEE processing process 226 on the first operating system 222 when the specific process intends to access the security area 212 through the second TEE API 234 (Step S320). Next, the second operating system 232 may cause the communication between the specific process and the TEE processing process 226 to proceed through the shared space 216 (step S330). In the course of such a communication, the TEE processing process 226 can determine whether to access the security area 212 based on the encryption message stored in the shared space 216 by the specific process, The management unit 220 can control access to the secure area 212 in communication with the external cloud server 120. [

도 4는 도 1에 있는 TEE 기반의 컴퓨팅 장치의 동작의 다른 실시예를 설명하는 순서도이다.4 is a flowchart illustrating another embodiment of the operation of the TEE-based computing device in FIG.

도 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)의 접근과 관련한 통신에 대하여 제어할 수 있다.4, when a specific process tries to access the security area 212 through the second TEE API 234 (step S410), the TEE management unit 220 determines whether or not the first OS Lt; / RTI > process 226 on the workstation 222 (step S420). For example, a communication management process 236 including security information of the cloud server 120 through communication with the cloud server 120 may attempt to access the security area 212 via the second TEE API 234 The TEE management unit 220 can execute the TEE processing process 226 to control communication with respect to access of the security area 212 thereafter.

해당 특정 프로세스가 제2 TEE API(234)를 호출하여 보안영역(212)에 접근함에 따라, 제2 TEE API(234)는 암호화 메시지를 공유공간(216)에 저장할 수 있다(단계S430). 예를 들어, 제2 TEE API(234)는 사전에 접근을 인가 받은 서버 혹은 단말기인지 확인하기 위하여 고유의 디바이스 정보를 요청하는 암호화 메시지를 공유공간(216)에 저장할 수 있다. 이후, TEE 환경부(230)는 해당 특정 프로세스가 공유공간(216)으로부터 획득한 제1 보안정보를 암호화 메시지로서 외부의 클라우드 서버(120)에 송신하도록 할 수 있다(단계S440).The second TEE API 234 may store an encryption message in the shared space 216 (step S430) as the particular process calls the second TEE API 234 to access the secure area 212. [ For example, the second TEE API 234 may store in the shared space 216 an encryption message requesting unique device information to confirm whether it is a server or a terminal that has been previously accessed. Then, the TEE environment unit 230 may cause the specific process to transmit the first security information obtained from the shared space 216 as an encrypted message to the external cloud server 120 (step S440).

다음, TEE 환경부(230)는 해당 특정 프로세스로 하여금 외부의 클라우드 서버(120)로부터 획득한 제2 보안정보를 암호화 메시지로서 공유공간(216)에 저장하도록 할 수 있다(단계S450). 예를 들어, 해당 특정 프로세스는 단계S430에서 공유공간(216)에 암호화 메시지로 저장되어 요청된 바 있는 고유의 디바이스 정보를 제2 보안정보로서 외부의 클라우드 서버(120)로부터 획득하여 암호화 메시지로서 공유공간(216)에 저장할 수 있다.Next, the TEE environment unit 230 may cause the specific process to store the second security information obtained from the external cloud server 120 as an encrypted message in the shared space 216 (step S450). For example, the specific process is stored as an encrypted message in the shared space 216 in step S430 to acquire the requested unique device information from the external cloud server 120 as second security information, May be stored in space 216.

이후, TEE 관리부(220)는 이와 같이 외부의 클라우드 서버(120)로부터 획득하여 공유공간(216)에 저장된 암호화 메시지를 복호화하는 작업을 진행하도록 할 수 있다(단계S460). TEE 관리부(220)는 외부의 클라우드 서버(120)와 통신을 수행하기 위하여 적어도 하나의 DRM 복호화 키를 관리할 수 있고, 이와 같은 DRM 복호화 키를 통해 공유공간(216)에 저장된 암호화 메시지를 복호화할 수 있다. 실시예에서, TEE 관리부(220)는 복호관리 프로세스(228)를 통해 적어도 하나의 DRM 복호화 키 정보를 저장 및 관리할 수 있고, TEE 처리 프로세스(226)에 의해 복호화 과정 전반이 제어되도록 할 수 있다.Thereafter, the TEE management unit 220 may proceed to decrypt the encrypted message stored in the shared space 216 acquired from the external cloud server 120 (step S460). The TEE management unit 220 can manage at least one DRM decryption key for communicating with the external cloud server 120 and decrypts the encrypted message stored in the shared space 216 through the DRM decryption key . In an embodiment, the TEE management unit 220 may store and manage at least one DRM decryption key information through the decryption management process 228, and may allow the overall decryption process to be controlled by the TEE process 226 .

TEE 관리부(220)는 복호화 과정이 정상적으로 통과되면, TEE 처리 프로세스(226)를 통해 보안영역(212)을 접근하도록 할 수 있다(단계S470). 예를 들어, 외부의 클라우드 서버(120)로부터 획득하여 공유공간(216)에 저장된 암호화 메시지를 복호화하여 사전에 저장된 DRM 복호화 키와 일치됨을 확인하면, TEE 처리 프로세스(226)를 통해 보안영역(212)에 접근하도록 할 수 있고, 이를 기초로 하여 외부와의 통신을 수행하도록 제어할 수 있다(단계S480)The TEE management unit 220 may access the secure area 212 through the TEE process 226 when the decryption process is normally performed (step S470). For example, if the encryption message stored in the shared space 216 is acquired from the external cloud server 120 and the encrypted message is found to match the previously stored DRM decryption key, the security area 212 , And controls to perform communication with the outside based on this (step S480)

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

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
100: TEE-based computing system
110: TEE-based computing device 120: Cloud server
210: memory
212: security area 214: non-security area
216: Shared Space
220: TEE management
222: first operating system 224: first TEE API
226: TEE process 228: Decryption management process
230: TEE Ministry of Environment
232: 2nd operating system 234: 2nd TEE API
236: Communication Management Process
240: CPU

Claims (8)

보안영역 및 공유공간을 포함하는 비보안영역으로 구성된 메모리;
상기 보안영역을 관리하며 상기 보안영역의 접근을 위한 제1 TEE API(Application Programming Interface)를 제공하는 제1 운영체제에 의하여 구축되고, 상기 제1 운영체제 상에서 TEE 처리 프로세스를 실행시키는 TEE 관리부; 및
상기 보안영역에 대한 제2 TEE API를 제공하며 특정 프로세스가 상기 제2 TEE API를 통해 상기 보안영역을 접근하고자 하는 경우 상기 공유공간을 통해 상기 TEE 처리 프로세스와 통신하도록 하는 제2 운영체제에 의하여 구축된 TEE 환경부를 포함하는 TEE(Trusted Execution Environment) 기반의 컴퓨팅 장치.
A memory configured of a non-security area including a security area and a shared space;
A TEE management unit that is constructed by a first operating system that manages the security area and provides a first TEE API (Application Programming Interface) for accessing the security area, and executes a TEE processing process on the first operating system; And
Providing a second TEE API for the security realm, and allowing a specific process to communicate with the TEE process via the shared space when the second process tries to access the security realm through the second TEE API TEE (Trusted Execution Environment) based computing device including the Ministry of Environment.
제1항에 있어서, 상기 TEE 환경부는
상기 특정 프로세스가 상기 제2 TEE API를 호출하여 상기 보안영역을 접근하는 경우 상기 제2 TEE API가 암호화 메시지를 상기 공유공간에 저장하도록 하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
The system of claim 1, wherein the TEE environment unit
And the second TEE API stores an encryption message in the shared space when the specific process calls the second TEE API to access the secure area.
제2항에 있어서, 상기 TEE 환경부는
상기 특정 프로세스가 상기 공유공간으로부터 획득된 제1 보안정보를 상기 암호화 메시지로서 외부의 서버에 송신하도록 하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
3. The apparatus of claim 2, wherein the TEE environment unit
Wherein the specific process causes the first security information obtained from the shared space to be transmitted as an encrypted message to an external server.
제2항에 있어서, 상기 TEE 환경부는
상기 특정 프로세스가 상기 외부의 서버로부터 획득된 제2 보안정보를 상기 암호화 메시지로서 상기 공유공간에 저장하도록 하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
3. The apparatus of claim 2, wherein the TEE environment unit
And the specific process saves the second security information obtained from the external server as the encrypted message in the shared space.
제1항에 있어서, 상기 TEE 관리부는
외부의 서버와 통신을 수행하기 위하여 적어도 하나의 DRM(Digital Rights Management) 복호화 키를 관리하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
The apparatus of claim 1, wherein the TEE management unit
And at least one DRM (Digital Rights Management) decryption key is managed in order to perform communication with an external server.
제5항에 있어서, 상기 TEE 관리부는
상기 DRM 복호화 키를 통해 상기 공유공간에 저장된 암호화 메시지를 복호화하고 상기 TEE 처리 프로세스를 통해 상기 보안영역을 접근하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
6. The apparatus of claim 5, wherein the TEE management unit
Decrypts the encrypted message stored in the shared space through the DRM decryption key, and accesses the secure area through the TEE process.
제6항에 있어서,
상기 메모리는 휘발성 메모리와 비휘발성 메모리로 구성되고,
상기 TEE 관리부는 메모리 매핑 테이블을 통해 상기 보안영역을 상기 비휘발성 메모리로 연관시키는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
The method according to claim 6,
Wherein the memory is constituted by a volatile memory and a nonvolatile memory,
Wherein the TEE management unit associates the secure area with the non-volatile memory through a memory mapping table.
제1항에 있어서, 상기 TEE 처리 프로세스는
상기 제1 운영체제 상에서 일정 주기마다 상호 통신하는 메인 및 보조 데몬들로 구성된 이중화 데몬으로 동작되고,
제1 데몬이 비정상적으로 동작되면 제2 데몬은 상기 제1 데몬을 복구시키면서 상기 공유공간에 저장된 암호화 메시지를 기초로 작업을 수행하는 것을 특징으로 하는 TEE 기반의 컴퓨팅 장치.
The method of claim 1, wherein the TEE processing process
A second daemon that is configured as a main daemon and a second daemon that communicate with each other at regular intervals on the first operating system,
Wherein the second daemon restores the first daemon and performs an operation based on the encryption message stored in the shared space when the first daemon abnormally operates.
KR1020160076524A 2016-06-20 2016-06-20 Computing apparatus based on trusted execution environment KR101837678B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160076524A KR101837678B1 (en) 2016-06-20 2016-06-20 Computing apparatus based on trusted execution environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160076524A KR101837678B1 (en) 2016-06-20 2016-06-20 Computing apparatus based on trusted execution environment

Publications (2)

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

Family

ID=60940320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160076524A KR101837678B1 (en) 2016-06-20 2016-06-20 Computing apparatus based on trusted execution environment

Country Status (1)

Country Link
KR (1) KR101837678B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073413A (en) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 Trusted execution environment system
KR20200080386A (en) * 2018-12-18 2020-07-07 서울여자대학교 산학협력단 Apparatus and method for checking kernel integrity
KR102236761B1 (en) * 2020-12-22 2021-04-06 주식회사 유니온플레이스 Internet of things device, and system and method of managing internet of things devices
WO2021118125A1 (en) * 2019-12-12 2021-06-17 숭실대학교 산학협력단 Secure container construction device and method executable by android application, and computer-readable recording medium on which program thereof is recorded
CN113139175A (en) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 Processing unit, electronic device, and security control method
WO2024075929A1 (en) * 2022-10-04 2024-04-11 삼성전자 주식회사 Electronic device for providing trusted execution environment

Families Citing this family (2)

* 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
KR102161770B1 (en) * 2018-12-14 2020-10-05 서울여자대학교 산학협력단 System and method for obtaining memory information

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073413A (en) * 2018-12-14 2020-06-24 서울여자대학교 산학협력단 Trusted execution environment system
KR20200080386A (en) * 2018-12-18 2020-07-07 서울여자대학교 산학협력단 Apparatus and method for checking kernel integrity
WO2021118125A1 (en) * 2019-12-12 2021-06-17 숭실대학교 산학협력단 Secure container construction device and method executable by android application, and computer-readable recording medium on which program thereof is recorded
CN113139175A (en) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 Processing unit, electronic device, and security control method
US11977663B2 (en) 2020-01-19 2024-05-07 Alibaba Group Holding Limited Processing unit, electronic device, and security control method
KR102236761B1 (en) * 2020-12-22 2021-04-06 주식회사 유니온플레이스 Internet of things device, and system and method of managing internet of things devices
WO2022139101A1 (en) * 2020-12-22 2022-06-30 주식회사 유니온플레이스 Internet of things apparatus, internet of things apparatus management system, and method for managing internet of things apparatus
US11880691B2 (en) 2020-12-22 2024-01-23 Unionplace Co., Ltd. Internet of things (IoT) device, IoT device management system, and method for managing IoT device
WO2024075929A1 (en) * 2022-10-04 2024-04-11 삼성전자 주식회사 Electronic device for providing trusted execution environment

Also Published As

Publication number Publication date
KR101837678B1 (en) 2018-03-12

Similar Documents

Publication Publication Date Title
KR101837678B1 (en) Computing apparatus based on trusted execution environment
KR102451109B1 (en) Generate key proofs that provide device anonymity
US20210157938A1 (en) Methods, media, apparatuses and computing devices of user data authorization based on blockchain
US9892265B1 (en) Protecting virtual machine data in cloud environments
US9710400B2 (en) Secure virtual machine memory
RU2667713C2 (en) Virtual machine manager facilitated selective code integrity enforcement
US8924723B2 (en) Managing security for computer services
US8505084B2 (en) Data access programming model for occasionally connected applications
JP5611598B2 (en) Encryption key container on USB token
US9172724B1 (en) Licensing and authentication with virtual desktop manager
KR102295960B1 (en) Apparatus and method for security service based virtualization
JP2017527919A (en) Preserve data protection with policies
WO2019047745A1 (en) Data sharing method, terminal apparatus and storage medium
KR20150017844A (en) Controlling Method For Input Status and Electronic Device supporting the same
KR20150092890A (en) Security-Enhanced Device based on Virtualization and the Method thereof
KR20130007659A (en) Protecting video content using virtualization
US20210109870A1 (en) Isolating memory within trusted execution environments
JP2018511956A (en) Technology to enhance data encryption using secure enclaves
EP3921749A1 (en) Device and method for authenticating application in execution environment in trust zone
US20230015537A1 (en) Reducing latency of hardware trusted execution environments
WO2016197850A1 (en) Method and apparatus for accessing privacy data in physical memory of electronic device
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
JP2005149394A (en) Information processor, information processing method, program and recording medium

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