KR20170095780A - Mobile device applying clark-wilson model and operating method thereof - Google Patents

Mobile device applying clark-wilson model and operating method thereof Download PDF

Info

Publication number
KR20170095780A
KR20170095780A KR1020170098934A KR20170098934A KR20170095780A KR 20170095780 A KR20170095780 A KR 20170095780A KR 1020170098934 A KR1020170098934 A KR 1020170098934A KR 20170098934 A KR20170098934 A KR 20170098934A KR 20170095780 A KR20170095780 A KR 20170095780A
Authority
KR
South Korea
Prior art keywords
data
ree
token
mobile device
tee
Prior art date
Application number
KR1020170098934A
Other languages
Korean (ko)
Other versions
KR102028670B1 (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 KR1020170098934A priority Critical patent/KR102028670B1/en
Publication of KR20170095780A publication Critical patent/KR20170095780A/en
Application granted granted Critical
Publication of KR102028670B1 publication Critical patent/KR102028670B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • H04M1/72522
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Abstract

A method for operating a mobile device according to an embodiment of the present invention includes the steps of: performing a first XOR operation on first data and a first token in an application of a rich execution environment (REE); determining whether the first token is identical to the first token in the application; performing a second XOR operation on the second token and the result of the first XOR operation in an integrity assurance program; and determining the result of the second XOR operation to a trusted execution environment (TEE). Accordingly, the present invention can improve the reliability of the data.

Description

클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법{MOBILE DEVICE APPLYING CLARK-WILSON MODEL AND OPERATING METHOD THEREOF}TECHNICAL FIELD [0001] The present invention relates to a mobile device employing a Clark Wilson model, and a mobile device employing the Clark Wilson model.

본 발명은 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법에 관한 것이다.The present invention relates to a mobile device employing a Clark Wilson model and a method of operating the same.

TEE (trusted execution environment)는 메인 프로세서의 보안 영역이다. TEE는 기밀 유지 및 무결성과 관련하여 내부에 로드된 코드 및 데이터를 보호한다. 격리된 실행 환경인 TEE는 신뢰할 수 있는 어플리케이션의 무결성 및 자산의 기밀성과 같은 보안 기능을 제공한다. 일반적으로 TEE는 REE(rich execution environment) 모바일 운영 체제 (모바일 OS) 보다 높은 보안 수준을 제공하고, SE(secure element)보다 많은 기능을 제공하는 실행 공간을 갖는다. TEE는 모바일 장치의 칩(SoC; system on chip)을 기반으로 한 일종의 가상화 공간이다. The trusted execution environment (TEE) is the security area of the main processor. TEE protects internally loaded code and data with respect to confidentiality and integrity. An isolated execution environment, TEE provides security features such as the integrity of trusted applications and the confidentiality of assets. In general, TEE provides a higher level of security than a rich execution environment (REE) mobile operating system (mobile OS) and has an execution space that provides more functionality than a secure element (SE). TEE is a kind of virtualization space based on mobile device chips (SoCs).

공개특허: 10-2016-0008012, 공개일자: 2016년01월21일, 제목: 휴대단말기에서의 사용자 인증방법.Open Patent: 10-2016-0008012, Publication date: Jan. 21, 2016 Title: User authentication method in a mobile terminal. 미국공개특허: US 2017/0083882, 공개번호: 2017년 03월 23일, 제목: Secure Payment Method and Electronic Device Adapted Thereto.U.S. Published Patent: US 2017/0083882, Pub. No.:23, 2013, Title: Secure Payment Method and Electronic Device Adapted Thereto. 공개번호: 10-2016-0140159, 공개일자: 2016년12월07일, 제목: 전자 장치 및 커널 데이터 접근 방법.Public number: 10-2016-0140159, Public date: December 07, 2016 Title: Electronic device and kernel data access method.

Ning Zhang and Kun Sun and Deborah Shands and Wenjing Lou and Y. Thomas Hou, "TruSpy: Cache Side-Channel Information Leakage from the Secure World on ARM Devices", http://eprint.iacr.org/2016/Ning Zhang and Kun Sun and Deborah Shands and Wenjing Lou and Y. Thomas Hou, "TruSpy: Cache Side-Channel Information Leakage from the Secure World on ARM Devices", http://eprint.iacr.org/2016/

본 발명의 목적은 데이터의 신뢰성을 향상시키는 모바일 장치 및 그것의 동작 방법을 제공하는데 있다.It is an object of the present invention to provide a mobile device and an operation method thereof that improve the reliability of data.

본 발명의 실시 예에 따른 모바일 장치의 동작 방법은: REE(rich execution environment)의 어플리케이션에서 제 1 데이터와 제 1 토큰에 대한 제 1 XOR 연산을 수행하는 단계; 상기 어플리케이션에서 상기 제 1 토큰과 제 2 토큰이 동일한 지를 판별하는 단계; 무결성 보장 프로그램에서 상기 제 1 XOR 연산의 결과값과 상기 제 2 토큰에 대한 제 2 XOR 연산을 수행하는 단계; 및 상기 제 2 XOR 연산의 결과값을 TEE(trusted execution environment)로 전송하는 단계를 포함할 수 있다.A method of operating a mobile device according to an embodiment of the present invention includes: performing a first XOR operation on first data and a first token in an application of a rich execution environment (REE); Determining whether the first token and the second token are identical in the application; Performing a second XOR operation on the result of the first XOR operation and the second token in an integrity assurance program; And transmitting the result of the second XOR operation to a trusted execution environment (TEE).

본 발명의 실시 예에 따른 모바일 장치 및 그것의 동작 방법은 REE에서 발생된 데이터를 보안 영역에 직접 저장하지 않고, 무결성 보장 프로그램(IAP)에 의해 검증된 데이터를 보안 영역에 저장함으로써, 전송된 데이터의 무결성을 보장할 수 있다.The mobile device and its operation method according to the embodiment of the present invention store the data generated by the REE in the security area without storing the data directly in the security area and verified by the integrity guarantee program (IAP) Can be guaranteed.

또한, 본 발명의 모바일 장치 및 그것의 동작 방법은 상술 된 방법에 따라 해커의 잠재적인 활동을 저지할 수 있으며, 보안을 극대화 시킬 수 있다.In addition, the mobile device of the present invention and its method of operation can prevent potential hacker activity according to the method described above, and can maximize security.

이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 일반적인 클락 윌슨(clark wilson) 모델을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 모바일 장치(100)를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 IAP(150)의 무결성 보장 동작을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 IAP(150)의 무결성 검증 과정(IVP)을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 무결성 보장 동작에서 토큰 발행 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 6은 본 발명의 실시 예에 따른 모바일 장치에 클락 윌슨 모델을 적용을 개념적으로 설명하는 도면이다.
도 7은 본 발명의 실시 예에 따른 모바일 장치(100)의 동작 방법을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 모바일 장치(100)의 동작 방법을 예시적으로 보여주는 도면이다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. However, the technical features of the present embodiment are not limited to the specific drawings, and the features disclosed in the drawings may be combined with each other to constitute a new embodiment.
1 is a diagram for explaining a general clark wilson model.
2 is an exemplary illustration of a mobile device 100 in accordance with an embodiment of the present invention.
3 is an exemplary diagram illustrating an integrity assurance operation of an IAP 150 according to an embodiment of the present invention.
4 is an exemplary diagram illustrating an integrity verification procedure (IVP) of an IAP 150 according to an embodiment of the present invention.
5 is a ladder diagram illustrating an exemplary token issuance process in an integrity assurance operation according to an embodiment of the present invention.
6 is a conceptual illustration of applying a Clark Wilson model to a mobile device according to an embodiment of the present invention.
FIG. 7 is an exemplary illustration of a method of operation of a mobile device 100 in accordance with an embodiment of the present invention.
8 is an exemplary illustration of a method of operation of a mobile device 100 in accordance with another embodiment of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms.

상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, 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" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.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. The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise.

본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In this application, the terms "comprises" or "having" are intended to specify the presence of stated features, integers, steps, operations, components, parts, or combinations thereof, wherein one or more other features, , Steps, operations, components, parts, or combinations thereof, as a matter of course. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .

도 1은 일반적인 클락 윌슨(clark wilson) 모델을 설명하기 위한 도면이다.1 is a diagram for explaining a general clark wilson model.

클락 윌슨의 무결성 모델은 지정 및 컴퓨팅 시스템에 대한 무결성 정책을 분석하기 위한 기반을 제공한다. 이 모델은 주로 정보 무결성의 개념을 공식화하는 데 관심이 있다. 오류 또는 악의적인 의도로 인해 시스템의 데이터 항목이 손상되는 것을 방지하여 정보 무결성을 유지한다.Clark Wilson's integrity model provides the basis for analyzing integrity policies for designation and computing systems. This model is primarily concerned with formulating the concept of information integrity. Maintain information integrity by preventing data items of the system from being damaged due to errors or malicious intent.

클락 윌슨 모델은 데이터 무결성을 강화하기 위해 각 데이터 항목을 정의하고 작은 프로그램 세트를 통해서만 수정할 수 있다. 이 모델은 트리플 또는 액세스 제어 트리플로 알려진 주체/프로그램/객체 (프로그램이 트랜잭션과 상호 교환 가능)의 세 부분으로된 관계를 사용한다. 이 관계 내에서 주체(subject)는 객체(object)에 직접 액세스할 수 없고, 프로그램을 통해서만 객체를 액세스할 수 있다.The Clark Wilson model defines each data item and can be modified only through a small set of programs to enhance data integrity. This model uses the three-part relationship of a subject / program / object (the program is interchangeable with the transaction) known as a triple or access control triple. Within this relationship, a subject can not access an object directly, but only through a program.

이 모델에는 데이터 항목과 해당 데이터 항목에서 동작하는 프로세스를 모두 나타내는 기본 구성이 많이 포함되어 있다. 클락 윌슨 모델의 주요 데이터 유형은 CDI(constrained data item)이다. 무결성 검증 절차 (integrity verification procedure; IVP)는 시스템의 모든 CDI가 특정 상태에서 유효함을 보장한다. 무결성 정책을 시행하는 트랜잭션은 변환 절차 (transformation procedure; TP)로 표현된다. TP는 CDI 또는 UDI (unconstrained data item)를 입력 받아 CDI를 생성한다. TP는 시스템을 하나의 유효한 상태에서 다른 유효한 상태로 전환해야 한다. UDI는 시스템 입력을 나타낸다. TP는 UDI의 모든 가능한 값을 "안전한" CDI로 변환하도록 (인증을 통해) 보장해야 한다.This model contains many basic configurations that represent both data items and the processes that operate on those data items. The primary data type of the Clark Wilson model is the constrained data item (CDI). An integrity verification procedure (IVP) ensures that all CDIs in the system are valid in a particular state. A transaction that enforces an integrity policy is represented by a transformation procedure (TP). The TP receives the CDI or unconstrained data item (UDI) and generates the CDI. The TP must transition the system from one valid state to another valid state. The UDI represents the system input. The TP must ensure that all possible values of the UDI are converted (through authentication) to a "secure" CDI.

모델의 중심에는 일련의 데이터 항목 (예 : UDI 및 CDI)에서 작동하는 인증 된 사용자 (즉, 사용자)와 일련의 프로그램 (예 : TP) 간의 관계 개념이 있다. 그러한 관계의 구성 요소들은 함께 취해서 클락 윌슨 트리플 이라고 불린다. 모델은 또한 다른 주체가 주체, 트랜잭션 및 데이터 항목 간의 관계를 조작할 책임이 있음을 보장해야 한다. 간단한 예로서, 관계를 인증하거나 생성할 수 있는 사용자는 해당 관계에 지정된 프로그램을 실행할 수 없어야 한다.At the heart of the model is the concept of the relationship between an authenticated user (ie, a user) and a set of programs (eg, TP) that operate on a set of data items (eg, UDI and CDI). The components of such a relationship are taken together and are called the Clark Wilson triple. The model should also ensure that other entities are responsible for manipulating the relationships between subjects, transactions, and data items. As a simple example, a user who can authenticate or create a relationship must not be able to execute the program specified in that relationship.

모델은 인증 규칙 (C)과 시행 규칙 (E)의 두 가지 규칙으로 구성된다. 아래의 9 가지 규칙은 데이터 항목의 외부 및 내부 무결성을 보장한다. The model consists of two rules: the authentication rule (C) and the enforcement rule (E). The following nine rules ensure the external and internal integrity of data items.

C1- IVP가 실행되면 CDI가 유효한지 확인해야 한다.When the C1- IVP is executed, it is necessary to check that the CDI is valid.

C2- 연관된 CDI 세트의 경우, TP는 해당 CDI를 유효한 상태에서 다른 상태로 변환해야 한다. 이러한 TP는 특정 CDI에서 작동하도록 인증되어야 하므로 E1과 E2가 있어야 한다.For a C2-associated CDI set, the TP must translate the CDI from its valid state to another state. These TPs must be certified to work with a specific CDI, so there must be E1 and E2.

E1- 시스템은 인증된 관계 목록을 유지하고 CDI를 실행하도록 인증 된 TP 만 해당 CDI를 변경하도록 보장해야 한다.The E1- system must maintain a list of certified relationships and ensure that only the TPs authorized to run the CDI change the CDI.

E2 시스템은 사용자를 각 TP 및 CDI 세트와 연관시켜야 한다. TP는 "합법적"인 경우 사용자를 대신하여 CDI에 액세스할 수 있다. 이를 위해서는 "허용된 관계"라고 하는 트리플 (사용자, TP, {CDI})를 추적해야 한다.The E2 system must associate users with each TP and CDI set. If the TP is "legitimate", you can access the CDI on your behalf. To do this, you need to keep track of the triple (user, TP, {CDI}) called "allowed relationships".

C3- 허용 관계는 "의무 분립"의 요구 사항을 충족해야 한다. 이를 추적하기 위해서는 인증이 필요하다.The C3- permissive relationship must meet the requirements of "separation of obligations". Authentication is required to track this.

E3 시스템은 TP를 시도하는 모든 사용자를 인증해야 한다. 이는 TP 요청이 아니라 로그인이다. 보안을 위해 로그를 보관해야 한다.The E3 system must authenticate all users attempting the TP. This is a login, not a TP request. You should keep logs for security purposes.

C4 - 모든 TP는 작업을 재구성하기에 충분한 정보를 로그에 추가해야 한다. 정보가 시스템에 입력되면 신뢰할 수 있거나 제한될 필요가 없다 (즉, UDI 일 수 있음).C4 - Every TP must add enough information to the log to reconstruct the operation. Once information is entered into the system, it does not need to be trusted or limited (that is, it may be a UDI).

C5 - UDI를 입력으로 사용하는 TP는 가능한 모든 UDI 값에 대해 유효한 트랜잭션만 수행할 수 있다. TP는 CDI로 수락하거나 UDI를 거부한다.A TP using C5 - UDI as input can only perform valid transactions for all possible UDI values. The TP accepts the CDI or rejects the UDI.

마지막으로, TP의 자격을 변경하여 사람들이 접근하지 못하도록 방지하기 위해: E4 - TP의 인증자는 해당 TP와 연관된 엔티티 목록을 변경할 수 있다.Finally, to prevent people from accessing the TP by changing their credentials: The authenticator of E4 - TP can change the list of entities associated with that TP.

한편, 트러스트 존(trust zone)을 갖는 모바일은 장치는 멀티 레벨 시큐리티 시스템(multi level security systme)으로 가정할 수 있다. 예를 들어, 제 1 레벨 시큐리트 시스템은 TEE(trusted execution environment)으로, 제 2 레벨 시큐리티 시스템은 REE(rich execution environment)으로 해석 가능하다. Meanwhile, a mobile device having a trust zone can be assumed as a multi-level security system. For example, the first level security system may be interpreted as a trusted execution environment (TEE), and the second level security system may be interpreted as a rich execution environment (REE).

본 발명의 실시 예에 따른 모바일 장치는 무결성 확보를 위해 이러한 멀티 레벨 시큐리티 시스템에 클락 윌슨 모델을 적용하도록 구현될 수 있다. 이때 모바일 장치의 TEE 및 REE은 일반적인 개념으로써 객체(object)가 아니라 주체(subject)로 해석될 것이다. 아래에서는 REE는 제 1 레벨 가상 주체(1-Level Virtual Subject)라고 하고, TEE는 제 2 레벨 가상 주체(2-Level Virtual Subject)로 하겠다.A mobile device according to an embodiment of the present invention may be implemented to apply a Clark Wilson model to such a multi-level security system for ensuring integrity. At this time, TEE and REE of the mobile device will be interpreted as a subject rather than an object as a general concept. In the following, REE will be called a 1-Level Virtual Subject and TEE will be a 2-Level Virtual Subject.

도 2는 본 발명의 실시 예에 따른 모바일 장치(100)를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 모바일 장치(100)는 REE(120), TEE(140), 무결성 보장 프로그램(integrity assurance program; IAP, 150), 및 메모리 장치(160)를 포함할 수 있다. 모바일 장치(10)는, 예를 들어, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 웨어러블 장치(wearable device) 일 수 있다.2 is an exemplary illustration of a mobile device 100 in accordance with an embodiment of the present invention. Referring to FIG. 2, mobile device 100 may include a REE 120, a TEE 140, an integrity assurance program (IAP) 150, and a memory device 160. The mobile device 10 may be, for example, a smartphone, a tablet personal computer, or a wearable device.

도 2에 도시된 REE(120), TEE(140), 및 IAP(150)는 적어도 하나의 프로세서로 구현될 수 있다.The REE 120, TEE 140, and IAP 150 shown in FIG. 2 may be implemented with at least one processor.

프로세서는 모바일 장치(100)의 적어도 하나의 내부 구성들을 제어하거나 통신에 관한 연산/데이터를 처리를 실행하도록 구현될 수 있다. 실시 예에 있어서, 프로세서는 CPU(central processing unit), GPU(graphic processing unit), AP(application processor), CP(communication processor) 중 적어도 하나를 포함할 수 있다.The processor may be configured to control at least one of the internal configurations of the mobile device 100 or to perform operations / data processing on the communication. In an embodiment, the processor may include at least one of a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), and a communication processor (CP).

REE(120)는, 하드웨어, 소프트웨어, 혹은 펌웨어적으로 구현되고, 일반적인 실행 환경을 제공하도록 구현될 수 있다. REE(120)는 적어도 하나의 어플리케이션(APP), 및 노멀 OS(operating system, 122)을 포함할 수 있다.REE 120 may be implemented in hardware, software, or firmware, and may be implemented to provide a general execution environment. The REE 120 may include at least one application (APP), and a normal OS (operating system) 122.

어플리케이션(APP)은 사용자에게 필요한 서비스를 제공하도록 구현될 수 있다. 본 발명의 어플리케이션(APP)은 메모리 장치(160)의 노멀 영역(162)에 저장될 노멀 데이터(ND) 및 메모리 장치(160)의 보안 영역(164)에 저장될 보안 데이터(SD)를 생성하도록 구현될 수 있다.The application (APP) can be implemented to provide the necessary service to the user. The application APP of the present invention is adapted to generate normal data ND to be stored in the normal area 162 of the memory device 160 and secure data SD to be stored in the secure area 164 of the memory device 160 Can be implemented.

도시되지 않았지만, REE(120)는 사용자 인증 어플리케이션을 포함할 수 있다. 예를 들어, 사용자 인증 어플리케이션은 사용자에게 인증 동작을 수행하도록 REE(110)에서 구동될 수 있다. 여기서 인증 동작은 사용자의 선택 혹은 서비스 제공자의 선택의 의거하여 다양한 형태 혹은 다양한 조합으로 수행될 수 있다. 인증 동작은 사용자가 알고 있는 것 (예를 들어, 패스워드), 사용자가 갖고 있는 것 (예를 들어, 디지털 지문, 토큰, 공인인증서 등), 사용자의 특징(생리적, 심리적, 행동 등; 생체 인증으로 대표되는 지문, 얼굴, 홍채, 심박수 등) 중 어느 적어도 하나, 혹은 그것들 중 적어도 2 개의 조합으로 이루어질 수 있다. 즉, 사용자 인증 어플리케이션은 멀티 팩터 인증을 수행하도록 구현될 수 있다. 사용자 인증 어플리케이션은, 인증 동작을 TEE(140)의 적어도 하나의 보안 어플리케이션(TAPP) 통하여 안전하게 처리하도록 구현될 수 있다.Although not shown, the REE 120 may include a user authentication application. For example, the user authentication application may be run in the REE 110 to perform an authentication operation to the user. Here, the authentication operation can be performed in various forms or in various combinations based on the selection of the user or the choice of the service provider. The authentication action may be performed by a user (e.g., a password), what the user has (e.g., a digital fingerprint, a token, an authentic certificate, etc.), a user characteristic (physiological, psychological, A representative fingerprint, a face, an iris, a heart rate, etc.), or a combination of at least two of them. That is, the user authentication application can be implemented to perform multi-factor authentication. The user authentication application may be implemented to securely perform authentication operations through at least one security application (TAPP) of the TEE 140.

노멀 OS(122)은 REE(120)에서 사용자에게 서비스를 제공하는 적어도 하나의 어플리케이션을 실행하는 커널이다. 예를 들어, 노멀 OS(122)는, 안드로이드(Android), 안드로이드웨어(Android Wear), 심비안(Symbian) OS, 윈도우(Windows) OS 계열, 타이젠(Tizen), 유닉스, 리눅스, 등 일 수 있다. 실시 예에 있어서, 노멀 OS(122)은 모바일 장치(10)를 제조한 후에 써드 파티(third party)로부터 업데이트 될 수 있다. 실시 예에 있어서, 노멀 OS(122)은 복수의 운영 체제들을 동시에 구동할 수 있는 가상 플랫폼(예, hypervisor)을 포함할 수 있다.The normal OS 122 is a kernel that executes at least one application that provides services to the user in the REE 120. [ For example, the normal OS 122 may be an Android, an Android Wear, a Symbian OS, a Windows OS family, a Tizen, a Unix, a Linux, etc. . In an embodiment, the normal OS 122 may be updated from a third party after manufacturing the mobile device 10. In an embodiment, the normal OS 122 may include a virtual platform (e.g., a hypervisor) capable of running multiple operating systems simultaneously.

또한, 노멀 OS(122)은 트러스트존 드라이버(TZ; trustzone driver)를 포함할 수 있다. TZ는 노멀 OS(122)에 로딩되는 커널 모듈로써, REE(120)의 어플리케이션(APP)과 TEE(140)의 어플리케이션(TAPP) 사이의 통신을 중계할 수 있다. TZ는 REE(120)에 의해 TEE(140)의 안전한 접근을 하도록 구현될 수 있다. 여기서 안전한 접근은 기본적으로 기밀성(confidentiality), 무결성(integrity), 가용성(availability) 등 조건들을 만족할 수 있다고 이해되어야 할 것이다.In addition, the normal OS 122 may include a trustzone driver (TZ). TZ is a kernel module loaded into the normal OS 122 and can relay communications between the application (APP) of the REE 120 and the application (TAPP) of the TEE 140. TZ may be implemented to allow secure access of TEE 140 by REE 120. It should be understood that a secure approach can basically meet the requirements of confidentiality, integrity, availability, and the like.

TEE(140)는, 하드웨어, 소프트웨어, 혹은 펌웨어로 구성되고, REE(120)에서 생성되는 소프트웨어 공격으로부터 보호 수준을 제공하도록 구현될 수 있다. TEE(140)는 REE(120)로부터 격리될 필요가 있는 민감한 어플리케이션, 즉, 적어도 하나의 트러스티드 어플리케이션의 접근/실행을 제어할 수 있다. 트러스티드 어플리케이션은 TEE(140)에서 구동되는 보안을 필요로 하는 보안 어플리케이션(DRM(digital right management), bank, payment, corporate 등) 일 수 있다. 예를 들어, 보안 어플리케이션(TAPP)은, 프리로드 어플리케이션(preloaded application), 네이티브 어플리케이션(native application), 혹은 서드파티 어플리케이션(third party application)을 포함할 수 있다.The TEE 140 may be implemented in hardware, software, or firmware and may be implemented to provide a level of protection against software attacks generated by the REE 120. The TEE 140 may control access / execution of sensitive applications that need to be isolated from the REE 120, i.e., at least one trusted application. The trusted application may be a security application (digital right management (DRM), bank, payment, corporate, etc.) that requires security running in the TEE 140. For example, a secure application (TAPP) may include a preloaded application, a native application, or a third party application.

또한, TEE(140)는 적어도 하나의 보안 어플리케이션(TAPP), 및 보안 OS(142)을 포함할 수 있다. 보안 어플리케이션(TAPP)는 REE(120)의 인증 동작을 수행하는데 필요한 데이터를 안전하게 처리하도록 구현될 수 있다. 인증 동작에 필요한 인증 데이터의 비식별 처리 동작, 암호화 동작, 비교 동작 등이 보안 어플리케이션(TAPP)에서 수행될 수 있다. 한편, 보안 어플리케이션(TAPP)의 동작이 여기에 제한되지 않는다고 이해되어야 할 것이다.In addition, the TEE 140 may include at least one security application (TAPP), and a secure OS 142. The secure application (TAPP) may be implemented to securely process the data required to perform the authentication operation of the REE 120. A non-identification processing operation of the authentication data, an encryption operation, a comparison operation, and the like necessary for the authentication operation can be performed in the security application (TAPP). On the other hand, it should be understood that the operation of the security application (TAPP) is not limited thereto.

또한, 보안 어플리케이션(TAPP)은 REE(120)에서 TEE(140)으로 전송된 데이터의 무결성을 보장하기 위하여 IAP(150)과 긴밀한 동작을 수행할 수 있다.In addition, the security application (TAPP) may perform a close operation with the IAP 150 to ensure the integrity of the data transmitted from the REE 120 to the TEE 140.

보안 OA(142)은 TEE(140)에서 보안 어플리케이션(TAPP)을 구동할 수 있다. 보안 OA(142)는 보안 커널을 포함하고, 보안 커널은 악의적인 사용자로부터 물리적/소프트웨어적으로 보호된 상태에서 구동되므로, 키 관리와 같이 보안이 요구되는 작업 등에 사용된다. 보안 커널은 가상 파일 시스템을 포함할 수 있다. 보안 어플리케이션(TAPP)에서 가상 파일 시스템의 파일 기능을 호출하는 경우, 가상 파일 시스템은 내부적으로 암/복호화 등의 작업을 수행한 뒤, REE(120)의 파일시스템에 안전하게 저장/로딩/삭제할 수 있다.The secure OA 142 may drive the secure application (TAPP) at the TEE 140. Since the security OA 142 includes a secure kernel and the secure kernel is operated in a state of being physically / software protected from a malicious user, it is used for tasks requiring security such as key management. The secure kernel may include a virtual file system. When the security application (TAPP) calls the file function of the virtual file system, the virtual file system can safely store / load / delete the file system of the REE 120 after performing the operation such as encryption / decryption internally .

무결성 보장 프로그램(IAP, 150)은 REE(120)에서 발생된 데이터가 TEE(140)으로 전송될 경우 데이터의 무결성을 보장하도록 구현될 수 있다. 예를 들어, IAP(150)은 도 1에 설명된 클락 윌슨 모델을 적용하도록 구현될 수 있다.The integrity assurance program (IAP) 150 may be implemented to ensure the integrity of data when data generated in the REE 120 is transmitted to the TEE 140. For example, the IAP 150 may be implemented to apply the Clark Wilson model described in FIG.

IAP(150)은 TEE(140)에 의해 신뢰받은 프로그램일 수 있다. IAP(150)의 신뢰 보장은 TEE(140)의 보안 어플리케이션(TAPP)와의 통신에 의해 결정될 수 있다. 실시 예에 있어서, IAP(150)은 REE(120)의 노멀 OA(122) 상에서 구동될 수 있다. 다른 실시 예에 있어서, IAP(150)은 REE(120)의 노멀 OA(122)에 의해 구현된 가상화 OA 상에서 구동될 수 있다. 한편, IAP(150)의 구동이 이러한 OA에 제한되지 않는다고 이해되어야 할 것이다. IAP(150)을 구동하기 위한 별도의 OA가 구비될 수 있다.The IAP 150 may be a program trusted by the TEE 140. The trustworthiness of the IAP 150 may be determined by communication with the security application (TAPP) of the TEE 140. In an embodiment, the IAP 150 may be driven on the normal OA 122 of the REE 120. In another embodiment, the IAP 150 may be run on the virtualized OA implemented by the normal OA 122 of the REE 120. On the other hand, it should be understood that the driving of the IAP 150 is not limited to such OA. A separate OA for driving the IAP 150 may be provided.

실시 예에 있어서, IAP(150)는 TEE(140)의 TAPP와 연동하여 무결성 보장을 돕기 위한 토큰을 발행할 수 있다.In an embodiment, the IAP 150 may issue a token to assist integrity assurance in conjunction with the TAPP of the TEE 140.

실시 예에 있어서, IAP(150)는 REE(120)의 APP로부터 전송된 변형된 보안 데이터(TSD)와 토큰을 수신하고, 보안 데이터(SD)를 검증하고, 검증된 보안 데이터(VSD)를 발생하도록 구현될 수 있다. 여기서 변형된 보안 데이터(TSD)는 REE(120)의 APP에서 토큰을 이용하여 보안 데이터(SD)를 변형시킨 것이다.In an embodiment, IAP 150 receives modified security data (TSD) and tokens transmitted from the APP of REE 120, verifies security data SD, and generates verified security data (VSD) . ≪ / RTI > The modified security data TSD is a modification of the secure data SD using the token in the APP of the REE 120. [

실시 예에 있어서, IAP(150)는 REE(120)의 APP에서 변형된 보안 데이터(TSD)와 토큰을 수신하고, 토큰을 이용하여 변형된 보안 데이터(TSD)에 포함된 보안 데이터(SD)의 무결성을 검증할 수 있다.The IAP 150 receives the modified TSD and the token in the APP of the REE 120 and uses the token to decrypt the secure data SD contained in the modified secure data TSD Integrity can be verified.

메모리 장치(160)는 휘발성/비휘발성 메모리 장치로 구현될 수 있다. 실시 에에 있어서, 메모리 장치(160)는 휘발성 메모리 장치일 수 있다. 예를 들어, 메모리 장치(160)는, DRAM(dynamic random access memory), SRAM(static random access memroy), DIMM(dual line memory module) 등 일 수 있다. 다른 실시 예에 있어서, 메모리 장치(160)는 비휘발성 메모리 장치일 수 있다. 예를 들어, 메모리 장치(160)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM), 3D Xpoint 메모리 등이 될 수 있다. 또 다른 실시 예에 있어서, 메모리 장치(160)는 휘발성 메모리 장치와 비휘발성 메모리 장치로 구성된 하이브리드 메모리 장치일 수 있다. 예를 들어, 메모리 장치(160)는 NVDIMM(nonvolatile dual line memory module), HMC(hybrid memory cube) 등 일 수 있다.The memory device 160 may be implemented as a volatile / non-volatile memory device. In an implementation, the memory device 160 may be a volatile memory device. For example, the memory device 160 may be a dynamic random access memory (DRAM), a static random access memory (SRAM), a dual line memory module (DIMM), or the like. In another embodiment, the memory device 160 may be a non-volatile memory device. For example, the memory device 160 may be a NAND flash memory, a vertical NAND (VNAND), a NOR flash memory, a resistive random access memory (RRAM) A phase change memory (PRAM), a magnetoresistive random access memory (MRAM), a ferroelectric random access memory (FRAM), a spin transfer random access memory (STT) -RAM), 3D Xpoint memory, and the like. In yet another embodiment, the memory device 160 may be a hybrid memory device comprised of a volatile memory device and a non-volatile memory device. For example, the memory device 160 may be a nonvolatile dual line memory module (NVDIMM), a hybrid memory cube (HMC), or the like.

또한, 메모리 장치(160)는 노멀 영역(162)과 보안 영역(164)을 포함할 수 있다. 노멀 영역(162)은 REE(120)에 의해 접근될 수 있는 영역이고, 보안 영역(164)은 TEE(140)에 의해 접근될 수 있는 영역이다. 또한, 보안 영역(164)은 보안 데이터(secure data; SD)를 저장하거나, 암복호화된 데이터를 저장하기 위한 보안 영역을 포함할 수 있다.In addition, the memory device 160 may include a normal area 162 and a security area 164. The normal area 162 is an area that can be accessed by the REE 120 and the security area 164 is an area that can be accessed by the TEE 140. [ In addition, the secure area 164 may include a secure area for storing secure data (SD) or for storing encryption / decryption data.

실시 있어서, 노멀 영역(162)에 REE(120)의 APP에서 발생된 노멀 데이터(ND)가 노멀 OS(122)을 경유하여 저장될 수 있다.In practice, the normal data (ND) generated in the APP of the REE 120 in the normal area 162 may be stored via the normal OS 122.

실시 예에 있어서, 보안 영역(164)에 IAP(150)의 도움을 받아 REE(120)의 보안 데이터(SD)가 간접적으로 저장될 수 있다. 이때 저장되는 보안 데이터(SD)는 REE(120)에서 생성되는 오리지널 보안 데이터(SD)가 아니라, IAP(150)에 검증받은 검증된 보안 데이터(VSD)이다.In an embodiment, security data SD of the REE 120 may be stored indirectly with the help of the IAP 150 in the secure area 164. The stored security data SD is not the original security data SD generated by the REE 120 but the verified security data VSD verified by the IAP 150.

한편, 보안 레벨 관점에서 모바일 장치(100)를 고려할 때, 도 2에 도시된 바와 같이, REE(120)는 제 1 레벨 가상화 주체이고, 노멀 영역(162)는 제 1 레벨 가상화 객체이고, TEE(140)는 제 2 레벨 가상화 주체이고, 보안 영역(164)는 제 2 레벨 가상화 객체이다. 제 1 레벨 가상화 주체(REE)는 IAP(무결성 보장 프로그램)를 이용하여 제 2 레벨 가상화 주체(TEE)로 무결성을 보장한 데이터(VSD)를 전송할 수 있다. 제 2 레벨 가상화 주체(TEE)는 이렇게 보장된 데이터(VSD)를 제 2 레벨 가상화 객체(보안 영역)에 저장할 수 있다.2, REE 120 is a first level virtualization subject, normal area 162 is a first level virtualization object, and TEE ( 140 is a second level virtualization subject, and security area 164 is a second level virtualization object. The first level virtualization entity (REE) can transmit integrity guaranteed data (VSD) to a second level virtualization entity (TEE) using an IAP (integrity assurance program). The second level virtualization entity (TEE) can store the thus guaranteed data (VSD) in the second level virtualization object (security area).

일반적인 모바일 장치는 REE 환경에서 TEE 환경에서 합법적 인증을 받기만 하면 자유롭게 보안 영역에 접근할 수 있었다. 예를 들어, 일반적인 모바일 장치는 노멀 OA 상의 트러스트존과 같은 모듈에서 접근 통제만 수행되고 있다. 그러나 합법적 인증이더라도 REE에 전송된 데이터에 악의적인 정보(바이러스, 스파이웨어, 악성코드 등)가 포함될 수 있다. 이 경우 TEE 환경이 해커에 의해 무력화될 수 있다.In a REE environment, a typical mobile device can access the security area freely only if it receives legitimate authentication in a TEE environment. For example, a typical mobile device is performing access control only in a module such as a trust zone on a normal OA. However, legitimate authentication may also contain malicious information (viruses, spyware, malware, etc.) in the data sent to the REE. In this case, the TEE environment can be disabled by a hacker.

반면에, 본 발명의 실시 예에 따른 모바일 장치(100)는 REE(120)에서 발생된 데이터(SD)를 보안 영역(164)에 직접 저장하지 않고, IAP(150)에 의해 검증된 데이터(VSD)를 보안 영역(164)에 저장함으로써, 전송된 데이터의 무결성을 보장할 수 있다. 본 발명의 모바일 장치(100)는 그에 따른 해커의 잠재적인 활동을 저지할 수 있으며, 보안을 극대화 시킬 수 있다.The mobile device 100 according to the embodiment of the present invention does not store the data SD generated in the REE 120 directly in the secure area 164 but transmits the data verified by the IAP 150 May be stored in the secure area 164 to ensure the integrity of the transmitted data. The mobile device 100 of the present invention can block potential hacker activity and maximize security.

한편, 상술 된 무결성 보장 동작은 XOR(exclusice or) 연산에 의해 구현될 수 있다.On the other hand, the above-described integrity assurance operation can be implemented by an XOR (exclusively or) operation.

도 3은 본 발명의 실시 예에 따른 IAP(150)의 무결성 보장 동작을 예시적으로 보여주는 도면이다. 도 2 내지 도 3을 참조하면, 무결성 보장 동작은 다음과 같이 진행 될 수 있다.3 is an exemplary diagram illustrating an integrity assurance operation of an IAP 150 according to an embodiment of the present invention. 2 to 3, the integrity assurance operation can proceed as follows.

REE(120)의 APP는 보안 영역(164)에 저장할 오리지널 데이터(SD)를 생성할 수 있다. 이때 REE(120)의 APP는 IAP(150)로부터 무결성 보장을 위한 토큰 발행을 요청 및 발행된 토큰을 수신할 수 있다. REE(120)의 APP는 오리지널 데이터(SD)와 토큰을 제 1 XOR 연산함으로써 변형된 데이터(UDI: TSD)를 발생할 수 있다. 여기서 변형된 데이터(TSD)가 생성되는 과정이 변형 과정(TP)이라 하겠다.The APP of the REE 120 may generate the original data SD to be stored in the secure area 164. At this time, the APP of the REE 120 can request token issuance for integrity guarantee from the IAP 150 and receive the issued token. The APP of the REE 120 may generate modified data (UDI: TSD) by performing a first XOR operation on the original data SD and the token. Here, the process of generating the modified data TSD is referred to as a transformation process TP.

이후, REE(120)의 APP는 변형된 데이터(TSD)와 토큰을 IAP(150)에 전송할 수 있다. IAP(150)는 REE(120)의 APP로부터 변형된 데이터(TSD)와 토큰을 수신하고, 수신된 변형된 데이터(TSD)와 토큰을 제 2 XOR 연산함으로써 검증된 데이터(CDI: VSD)를 발생할 수 있다. 검증된 데이터(VSD)는 오리지널 데이터일 것이다. 검증된 데이터(VSD)가 보안 영역(164)에 저장될 수 있다.The REE 120's APP may then send the modified data (TSD) and the token to the IAP 150. IAP 150 receives modified data (TSD) and tokens from the APP of REE 120 and generates validated data (CDI: VSD) by performing a second XOR operation on the received modified data (TSD) and tokens . The verified data (VSD) will be the original data. Verified data (VSD) may be stored in security area 164.

도 4는 본 발명의 실시 예에 따른 IAP(150)의 무결성 검증 과정(IVP)을 예시적으로 보여주는 도면이다. 도 4를 참조하면, IAP(150)는 REE(120)의 APP로부터 수신된 제 1 토큰과 내부에 존재하는 제 2 토큰을 비교함으로써, 수신된 데이터의 무결성 검증을 수행할 수 있다. 4 is an exemplary diagram illustrating an integrity verification procedure (IVP) of an IAP 150 according to an embodiment of the present invention. Referring to FIG. 4, IAP 150 may perform integrity verification of received data by comparing a first token received from an APP of REE 120 with an internal second token.

도 5는 본 발명의 실시 예에 따른 무결성 보장 동작에서 토큰 발행 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 2 내지 도 5를 참조하면, 무결성 보장 동작을 위한 토큰 발행과정은 다음과 같이 진행될 수 있다.5 is a ladder diagram illustrating an exemplary token issuance process in an integrity assurance operation according to an embodiment of the present invention. 2 to 5, the token issuing process for the integrity assurance operation may proceed as follows.

REE(120)의 APP는 IAP(150)에 보안 영역(164)에 접근을 요청할 수 있다. IAP(150)는 이러한 APP의 접근 요청을 수신하고, 인증 요청을 APP에 전송할 수 있다. APP는 이러한 인증 요청에 응답하여 사용자에 의해 ID/패스워드 기입 혹은 생체 인식을 통한 생체 코드를 IAP(150)에 전송할 수 있다. IAP(150)는 수신된 ID/패스워드 혹은 생체 코드를 TEE(140)의 TAPP에 전송하면서 토큰 발행을 요청할 수 있다. TAPP는 이러한 요청에 응답하여 우선적으로 APP가 합법적인 사용자인지 인증을 수행하고, APP가 합법적인 사용자라면 토큰을 발행 및 저장할 수 있다. APP가 합법적인 사용자라는 것은 ID/패스워드 혹은 생체 코드의 확인 과정을 통해 수행될 수 있다. 이와 관련된 인증 관련 정보는 TEE(140)에 저장되어 있을 수 있다. 실시 예에 있어서, 발행된 토큰은 유효 시간 정보를 포함할 수 있다. TAPP에 의해 발행된 토큰은 IAP(150)에 전송될 수 있다. IAP(150)는 전송된 토큰을 REE(120)의 APP에 전송할 수 있다.The REE 120's APP may request the IAP 150 to access the secure area 164. IAP 150 may receive an access request for this APP and send an authentication request to APP. The APP may send the biometric code to the IAP 150 via ID / password entry or biometrics by the user in response to the authentication request. The IAP 150 may request token issuance while transmitting the received ID / password or biometric code to the TAPP of the TEE 140. [ TAPP responds to these requests by first authenticating that the APP is a legitimate user and issuing and storing the token if the APP is a legitimate user. The legitimate user of the APP can be accomplished through an ID / password or biometric code verification process. The related authentication information may be stored in the TEE 140. In an embodiment, the issued token may include valid time information. The token issued by the TAPP may be sent to the IAP 150. The IAP 150 may send the transmitted token to the APP of the REE 120.

도 6은 본 발명의 실시 예에 따른 모바일 장치에 클락 윌슨 모델을 적용을 개념적으로 설명하는 도면이다. 도 6을 참조하면, 제 1 주체(S1)는 REE(120)이고, 제한되지 않은 데이터 항목(unconstrained data item, UDI; SD) 및 토큰을 가질 수 있다. IAP(150)에서 무결성 검증 절차를 수행함으로써, 제 1 주체(S1)의 제 1 제한된 데이터 항목(constrained data item, CDI1)이 발생 될 수 있다. 제 1 제한된 데이터 항목(CDI1)은 객체(0, 164)에 저장될 수 있다. 또한, 제 2 주체(S1)의 제 2 제한된 데이터 항목(CDI2)은 객체(O)에 저장될 수 있다.6 is a conceptual illustration of applying a Clark Wilson model to a mobile device according to an embodiment of the present invention. Referring to FIG. 6, the first subject S1 is the REE 120 and may have unconstrained data items (UDIs) and tokens. By performing an integrity verification procedure at the IAP 150, a constrained data item (CDI1) of the first subject S1 can be generated. The first restricted data item (CDI1) may be stored in object (0, 164). In addition, the second restricted data item CDI2 of the second subject S1 may be stored in the object O.

한편, 상술 된 도 2에 도시된 IAP(150)의 기능은 TEE 내에서 수행될 수도 있다.On the other hand, the function of the IAP 150 shown in FIG. 2 described above may be performed within the TEE.

도 7은 본 발명의 실시 예에 따른 모바일 장치(100)의 동작 방법을 예시적으로 보여주는 도면이다. 도 2 내지 도 7를 참조하면, 모바일 장치(100)의 동작 방법을 다음과 같다.FIG. 7 is an exemplary illustration of a method of operation of a mobile device 100 in accordance with an embodiment of the present invention. 2 to 7, a method of operating the mobile device 100 is as follows.

REE(120)의 APP로부터 보안 영역(164)에 대한 접근 요청에 응답하여 TEE(140)는 인증 동작을 수행할 수 있다(S110). TEE(140)는 대응하는 토큰을 수신할 수 있다(S120). REE(120)의 APP는 토큰을 이용하여 데이터를 변형할 수 있다(S130). REE(120)의 APP는 변형된 데이터 및 토큰을 TEE(140)으로 전송할 수 있다(S140).In response to an access request from the APP of the REE 120 to the secure area 164, the TEE 140 may perform an authentication operation (S110). The TEE 140 may receive the corresponding token (S120). The APP of the REE 120 may transform the data using the token (S130). The APP of the REE 120 may transmit the modified data and the token to the TEE 140 (S140).

도 8은 본 발명의 다른 실시 예에 따른 모바일 장치(100)의 동작 방법을 예시적으로 보여주는 도면이다. 도 2 내지 도 8을 참조하면, 모바일 장치(100)의 동작 방법은 다음과 같다.8 is an exemplary illustration of a method of operation of a mobile device 100 in accordance with another embodiment of the present invention. 2 to 8, a method of operating the mobile device 100 is as follows.

IAP(150)의 토큰 발행 요청에 응답하여 TEE(140)은 토큰을 발생할 수 있다(S210). 발생된 토큰은 REE(120)에 전송될 수 있다(S220). TEE(140)은 REE(120)로부터 변형된 데이터 및 토큰이 수신될 수 있다(S230). 수신된 토큰과 발생된 토큰이 동일한지 판별될 수 있다(S240). 만일 수신된 토큰과 발생된 토큰이 동일하다면, 토큰을 이용하여 변형된 데이터로부터 오리지널 데이터가 추출될 수 있다(S250).In response to the token issue request of IAP 150, TEE 140 may generate a token (S210). The generated token may be sent to the REE 120 (S220). The TEE 140 may receive modified data and tokens from the REE 120 (S230). It may be determined whether the received token is the same as the generated token (S240). If the received token is the same as the generated token, the original data may be extracted from the modified data using the token (S250).

본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.The steps and / or operations in accordance with the present invention may occur in different orders, in parallel, or concurrently in other embodiments for other epochs or the like, as may be understood by one of ordinary skill in the art .

실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.Depending on the embodiment, some or all of the steps and / or operations may be performed on one or more non-transitory computer-readable media, including instructions, programs, interactive data structures, At least some of which may be implemented or performed using one or more processors. The one or more non-transitory computer-readable media can be, by way of example, software, firmware, hardware, and / or any combination thereof. Further, the functions of the "module" discussed herein may be implemented in software, firmware, hardware, and / or any combination thereof.

본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/또는 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/또는 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.One or more non-transitory computer-readable media and / or means for implementing / performing one or more operations / steps / modules of embodiments of the present invention may be implemented as application-specific integrated circuits (ASICs), standard integrated circuits, But are not limited to, controllers that perform appropriate instructions, including microcontrollers, and / or embedded controllers, field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs) .

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.The above-described contents of the present invention are only specific examples for carrying out the invention. The present invention will include not only concrete and practical means themselves, but also technical ideas which are abstract and conceptual ideas that can be utilized as future technologies.

100: 모바일 장치
120: REE
122: 노멀 OS
140: TEE
142: 보안 OS
150: IVP
160: 메모리 장치
100: mobile device
120: REE
122: Normal OS
140: TEE
142: Security OS
150: IVP
160: memory device

Claims (1)

모바일 장치의 동작 방법에 있어서:
REE(rich execution environment)의 어플리케이션에서 제 1 데이터와 제 1 토큰에 대한 제 1 XOR 연산을 수행하는 단계;
상기 어플리케이션에서 상기 제 1 토큰과 제 2 토큰이 동일한 지를 판별하는 단계;
무결성 보장 프로그램에서 상기 제 1 XOR 연산의 결과값과 상기 제 2 토큰에 대한 제 2 XOR 연산을 수행하는 단계; 및
상기 제 2 XOR 연산의 결과값을 TEE(trusted execution environment)로 전송하는 단계를 포함하는 방법.
A method of operating a mobile device, comprising:
Performing a first XOR operation on the first data and the first token in an application of a rich execution environment (REE);
Determining whether the first token and the second token are identical in the application;
Performing a second XOR operation on the result of the first XOR operation and the second token in an integrity assurance program; And
And sending the result of the second XOR operation to a trusted execution environment (TEE).
KR1020170098934A 2017-08-04 2017-08-04 Mobile device applying clark-wilson model and operating method thereof KR102028670B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170098934A KR102028670B1 (en) 2017-08-04 2017-08-04 Mobile device applying clark-wilson model and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170098934A KR102028670B1 (en) 2017-08-04 2017-08-04 Mobile device applying clark-wilson model and operating method thereof

Publications (2)

Publication Number Publication Date
KR20170095780A true KR20170095780A (en) 2017-08-23
KR102028670B1 KR102028670B1 (en) 2019-10-04

Family

ID=59759546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170098934A KR102028670B1 (en) 2017-08-04 2017-08-04 Mobile device applying clark-wilson model and operating method thereof

Country Status (1)

Country Link
KR (1) KR102028670B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220129566A1 (en) * 2020-10-26 2022-04-28 Nxp B.V. Secure application execution in a data processing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008012A (en) 2014-07-11 2016-01-21 (주)케이스마텍 User authentification method in mobile terminal
KR20160140159A (en) 2015-05-29 2016-12-07 삼성전자주식회사 Electronic device and method for approaching to kernel data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008012A (en) 2014-07-11 2016-01-21 (주)케이스마텍 User authentification method in mobile terminal
KR20160140159A (en) 2015-05-29 2016-12-07 삼성전자주식회사 Electronic device and method for approaching to kernel data

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Countermeasure against Side-Channel Attack in Shared Memory of TrustZone(2017.05.20) 1부.* *
Ning Zhang and Kun Sun and Deborah Shands and Wenjing Lou and Y. Thomas Hou, "TruSpy: Cache Side-Channel Information Leakage from the Secure World on ARM Devices", http://eprint.iacr.org/2016/
미국공개특허: US 2017/0083882, 공개번호: 2017년 03월 23일, 제목: Secure Payment Method and Electronic Device Adapted Thereto.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220129566A1 (en) * 2020-10-26 2022-04-28 Nxp B.V. Secure application execution in a data processing system
US11783055B2 (en) * 2020-10-26 2023-10-10 Nxp B.V. Secure application execution in a data processing system

Also Published As

Publication number Publication date
KR102028670B1 (en) 2019-10-04

Similar Documents

Publication Publication Date Title
US11093604B2 (en) Personalized and cryptographically secure access control in trusted execution environment
CN107533609B (en) System, device and method for controlling multiple trusted execution environments in a system
KR102504519B1 (en) Paravirtual security threat protection of computer driven systems with networked devices
US20190182052A1 (en) Techniques to secure computation data in a computing environment
EP3047375B1 (en) Virtual machine manager facilitated selective code integrity enforcement
US8516260B2 (en) Method, apparatus, and device for providing security among a calling function and a target function
US10318765B2 (en) Protecting critical data structures in an embedded hypervisor system
KR20170095161A (en) Secure system on chip
US9582656B2 (en) Systems for validating hardware devices
US9830480B2 (en) Policies for secrets in trusted execution environments
US20160028728A1 (en) Implementing access control by system-on-chip
US20120159172A1 (en) Secure and private location
WO2019104988A1 (en) Plc security processing unit and bus arbitration method thereof
KR20170057279A (en) Method for privileged mode based secure input mechanism
US10885199B2 (en) Enhanced secure boot
US20220171883A1 (en) Efficient launching of trusted execution environments
Benadjila et al. Wookey: Designing a trusted and efficient USB device
JP6584500B2 (en) Representing operating system context in a trusted platform module
US20180288052A1 (en) Trusted remote configuration and operation
US11328050B2 (en) Measured execution of trusted agents in a resource constrained environment with proof of work
EP3044721B1 (en) Automatic pairing of io devices with hardware secure elements
KR102028670B1 (en) Mobile device applying clark-wilson model and operating method thereof
Fournaris et al. From hardware security tokens to trusted computing and trusted systems
US10938857B2 (en) Management of a distributed universally secure execution environment
US10771249B2 (en) Apparatus and method for providing secure execution environment for mobile cloud

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right