KR102028670B1 - 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
KR102028670B1
KR102028670B1 KR1020170098934A KR20170098934A KR102028670B1 KR 102028670 B1 KR102028670 B1 KR 102028670B1 KR 1020170098934 A KR1020170098934 A KR 1020170098934A KR 20170098934 A KR20170098934 A KR 20170098934A KR 102028670 B1 KR102028670 B1 KR 102028670B1
Authority
KR
South Korea
Prior art keywords
token
application
integrity guarantee
xor operation
integrity
Prior art date
Application number
KR1020170098934A
Other languages
Korean (ko)
Other versions
KR20170095780A (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법{MOBILE DEVICE APPLYING CLARK-WILSON MODEL AND OPERATING METHOD THEREOF}MOBILE DEVICE APPLYING CLARK-WILSON MODEL AND OPERATING METHOD THEREOF}

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

TEE (trusted execution environment)는 메인 프로세서의 보안 영역이다. TEE는 기밀 유지 및 무결성과 관련하여 내부에 로드된 코드 및 데이터를 보호한다. 격리된 실행 환경인 TEE는 신뢰할 수 있는 어플리케이션의 무결성 및 자산의 기밀성과 같은 보안 기능을 제공한다. 일반적으로 TEE는 REE(rich execution environment) 모바일 운영 체제 (모바일 OS) 보다 높은 보안 수준을 제공하고, SE(secure element)보다 많은 기능을 제공하는 실행 공간을 갖는다. TEE는 모바일 장치의 칩(SoC; system on chip)을 기반으로 한 일종의 가상화 공간이다. TEE (trusted execution environment) 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 trusted application integrity and asset confidentiality. In general, TEEs have an execution space that provides a higher level of security than a rich execution environment (REE) mobile operating system (mobile OS) and more functionality than a secure element (SE). TEE is a kind of virtualization space based on a system of chip (SoC) of a mobile device.

공개특허: 10-2016-0008012, 공개일자: 2016년01월21일, 제목: 휴대단말기에서의 사용자 인증방법.Publication No. 10-2016-0008012, published date: January 21, 2016, the title: user authentication method in a mobile terminal. 미국공개특허: US 2017/0083882, 공개번호: 2017년 03월 23일, 제목: Secure Payment Method and Electronic Device Adapted Thereto.United States Patent Application Publication US 2017/0083882, Publication No. March 23, 2017 Title: Secure Payment Method and Electronic Device Adapted Thereto. 공개번호: 10-2016-0140159, 공개일자: 2016년12월07일, 제목: 전자 장치 및 커널 데이터 접근 방법.Publication No. 10-2016-0140159, Publication date: December 7, 2016, Title: Electronic Devices and Kernel Data Access Methods.

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 a method of operation thereof for improving 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 the same in the application; Performing a second XOR operation on the result value of the first XOR operation and the second token in an integrity guarantee program; And transmitting a result value of the second XOR operation to a trusted execution environment (TEE).

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

또한, 본 발명의 모바일 장치 및 그것의 동작 방법은 상술 된 방법에 따라 해커의 잠재적인 활동을 저지할 수 있으며, 보안을 극대화 시킬 수 있다.In addition, the mobile device of the present invention and its operation method can prevent potential hacker activity according to the above-described method, 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 are provided to facilitate understanding of the present embodiment, and provide embodiments with a detailed description. 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 a diagram illustrating a mobile device 100 according to an embodiment of the present invention.
3 is a diagram illustrating the integrity guarantee operation of the IAP 150 according to an embodiment of the present invention.
4 is a diagram illustrating an integrity verification process (IVP) of the IAP 150 according to an embodiment of the present invention.
5 is a ladder diagram illustrating a token issuance process in an integrity guarantee operation according to an embodiment of the present invention.
6 is a diagram conceptually illustrating the application of the Clark Wilson model to a mobile device according to an embodiment of the present invention.
7 is a diagram illustrating a method of operating the mobile device 100 according to an embodiment of the present disclosure.
8 is a diagram illustrating a method of operating the mobile device 100 according to another embodiment of the present disclosure.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.DETAILED DESCRIPTION Hereinafter, the contents of the present invention will be described clearly and in detail so that those skilled in the art can easily implement the drawings.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.As the inventive concept allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. Terms such as first and second 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 component. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may be present in the middle. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Other expressions describing the relationship between components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring", should be interpreted as well. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise.

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

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

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

클락 윌슨 모델은 데이터 무결성을 강화하기 위해 각 데이터 항목을 정의하고 작은 프로그램 세트를 통해서만 수정할 수 있다. 이 모델은 트리플 또는 액세스 제어 트리플로 알려진 주체/프로그램/객체 (프로그램이 트랜잭션과 상호 교환 가능)의 세 부분으로된 관계를 사용한다. 이 관계 내에서 주체(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 a three-part relationship of subjects / programs / objects (programs can interchange with transactions), known as triples or access control triples. Within this relationship, the subject cannot directly access the object, but only through the 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 includes many basic constructs that represent both data items and the processes that operate on them. 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). TP generates CDI by receiving CDI or unconstrained data item (UDI). The TP must transition the system from one valid state to another. UDI stands for system input. The TP must ensure (via authentication) that all possible values of UDI are converted to "safe" CDI.

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

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

C1- IVP가 실행되면 CDI가 유효한지 확인해야 한다.Once C1-IVP is executed, you should check that the CDI is valid.

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

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

E2 시스템은 사용자를 각 TP 및 CDI 세트와 연관시켜야 한다. TP는 "합법적"인 경우 사용자를 대신하여 CDI에 액세스할 수 있다. 이를 위해서는 "허용된 관계"라고 하는 트리플 (사용자, TP, {CDI})를 추적해야 한다.The E2 system must associate a user with each TP and CDI set. The TP may access CDI on behalf of the user if it is "legal". This requires keeping track of the triples (user, TP, {CDI}) called "permitted relationships".

C3- 허용 관계는 "의무 분립"의 요구 사항을 충족해야 한다. 이를 추적하기 위해서는 인증이 필요하다.C3- Permitted relationships must meet the requirements of "segregation of duties". To track this, authentication is required.

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

C4 - 모든 TP는 작업을 재구성하기에 충분한 정보를 로그에 추가해야 한다. 정보가 시스템에 입력되면 신뢰할 수 있거나 제한될 필요가 없다 (즉, UDI 일 수 있음).C4-All TPs should add enough information to the log to reconstruct their work. Once the information is entered into the system, it doesn't need to be trusted or restricted (i.e. it can be UDI).

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

마지막으로, TP의 자격을 변경하여 사람들이 접근하지 못하도록 방지하기 위해: E4 - TP의 인증자는 해당 TP와 연관된 엔티티 목록을 변경할 수 있다.Finally, to change the credentials of the TP to prevent people from accessing it: E4-The authenticator of the 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)으로 해석 가능하다. On the other hand, a mobile having a trust zone may assume that the device is a multi level security system. For example, a first level security system may be interpreted as a trusted execution environment (TEE), and a 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)로 하겠다.The mobile device according to an embodiment of the present invention may be implemented to apply the Clark Wilson model to such a multi-level security system to ensure integrity. In this case, TEE and REE of a mobile device are general concepts and will be interpreted as a subject, not an object. In the following, REE is referred to as a first-level virtual subject, and TEE is referred to as a second-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 a diagram illustrating a mobile device 100 according to an embodiment of the present invention. Referring to FIG. 2, the mobile device 100 may include an 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, the TEE 140, and the IAP 150 illustrated 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 implemented to control at least one internal components of the mobile device 100 or to execute processing / data relating to communication. In an embodiment, the processor may include at least one of a central processing unit (CPU), a graphic processing unit (GPU), an application processor (AP), and a communication processor (CP).

REE(120)는, 하드웨어, 소프트웨어, 혹은 펌웨어적으로 구현되고, 일반적인 실행 환경을 제공하도록 구현될 수 있다. REE(120)는 적어도 하나의 어플리케이션(APP), 및 노멀 OS(operating system, 122)을 포함할 수 있다.The 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 operating system 122.

어플리케이션(APP)은 사용자에게 필요한 서비스를 제공하도록 구현될 수 있다. 본 발명의 어플리케이션(APP)은 메모리 장치(160)의 노멀 영역(162)에 저장될 노멀 데이터(ND) 및 메모리 장치(160)의 보안 영역(164)에 저장될 보안 데이터(SD)를 생성하도록 구현될 수 있다.The application APP may be implemented to provide a service required by the user. The application APP of the present invention generates the normal data ND to be stored in the normal area 162 of the memory device 160 and the security data SD to be stored in the security 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, a user authentication application can be driven in the REE 110 to perform an authentication operation on the user. The authentication operation may be performed in various forms or in various combinations based on the user's selection or the service provider's selection. Authentication operations include what the user knows (e.g. a password), what the user has (e.g. digital fingerprints, tokens, certificates, etc.), user characteristics (physiological, psychological, behavioral, etc.); Fingerprint, face, iris, heart rate, etc.), or a combination of at least two of them. In other words, the user authentication application may be implemented to perform multi-factor authentication. The user authentication application may be implemented to securely process the authentication operation 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 a service to a user in the REE 120. For example, the normal OS 122 may be Android, Android Wear, Symbian OS, Windows OS family, Tizen, Unix, Linux, or the like. . In an embodiment, the normal OS 122 may be updated from a third party after the mobile device 10 is manufactured. In an embodiment, the normal OS 122 may include a virtual platform (eg, a hypervisor) capable of simultaneously driving a plurality of operating systems.

또한, 노멀 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). The TZ is a kernel module loaded in the normal OS 122 and may relay communication between the application (APP) of the REE 120 and the application (TAPP) of the TEE 140. TZ may be implemented by REE 120 to allow secure access of TEE 140. It should be understood that a secure approach can basically satisfy conditions such as confidentiality, integrity, and availability.

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 consist of hardware, software, or firmware, and may be implemented to provide a level of protection from software attacks generated by the REE 120. The TEE 140 may control access / execution of sensitive applications, ie, at least one trusted application, that need to be isolated from the REE 120. The trusted application may be a security application (DRM (digital right management), bank, payment, corporate, etc.) that requires security running in the TEE 140. For example, the security 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 secure application (TAPP) and a secure OS 142. The security application TAPP may be implemented to securely process data necessary to perform an authentication operation of the REE 120. De-identification processing, encryption, comparison, and the like of authentication data required for the authentication operation may 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 security OA 142 may run a security application (TAPP) in the TEE 140. The security OA 142 includes a security kernel, and since the security kernel is operated in a physical / software protected state from malicious users, the security OA 142 is used for tasks requiring security such as key management. The secure kernel may include a virtual file system. When a file application of a virtual file system is called by a security application (TAPP), the virtual file system may safely store / load / delete the file system of the REE 120 after performing operations such as encryption / decryption internally. .

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

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가 구비될 수 있다.IAP 150 may be a program trusted by TEE 140. The guarantee of trust of IAP 150 may be determined by communication with a secure application (TAPP) of TEE 140. In an embodiment, IAP 150 may be driven on normal OA 122 of REE 120. In another embodiment, the IAP 150 may run on a 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 this 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 help guarantee the integrity 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, the IAP 150 receives the modified security data TSD and the token transmitted from the APP of the REE 120, verifies the security data SD, and generates the verified security data VSD. It can be implemented to. The modified security data TSD is a modification of the security data SD using a token in the APP of the REE 120.

실시 예에 있어서, IAP(150)는 REE(120)의 APP에서 변형된 보안 데이터(TSD)와 토큰을 수신하고, 토큰을 이용하여 변형된 보안 데이터(TSD)에 포함된 보안 데이터(SD)의 무결성을 검증할 수 있다.In an embodiment, the IAP 150 receives the modified security data TSD and the token in the APP of the REE 120 and uses the token to convert the security data SD included in the modified security 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 / nonvolatile memory device. In an embodiment, 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 memroy (SRAM), a dual line memory module (DIMM), or the like. In another embodiment, the memory device 160 may be a nonvolatile memory device. For example, the memory device 160 may include NAND flash memory, vertical NAND (VNAND), NOR flash memory, and 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 memory, and so on. In another embodiment, the memory device 160 may be a hybrid memory device including a volatile memory device and a nonvolatile 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 security area 164 may include a security area for storing secure data (SD) or storing encrypted data.

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

실시 예에 있어서, 보안 영역(164)에 IAP(150)의 도움을 받아 REE(120)의 보안 데이터(SD)가 간접적으로 저장될 수 있다. 이때 저장되는 보안 데이터(SD)는 REE(120)에서 생성되는 오리지널 보안 데이터(SD)가 아니라, IAP(150)에 검증받은 검증된 보안 데이터(VSD)이다.In an embodiment, the security data SD of the REE 120 may be indirectly stored in the security area 164 with the help of the IAP 150. In this case, 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 레벨 가상화 객체(보안 영역)에 저장할 수 있다.On the other hand, when considering the mobile device 100 in terms of security level, as shown in FIG. 2, the REE 120 is a first level virtualization entity, the normal area 162 is a first level virtualization object, and the TEE ( 140 is a second level virtualization subject, and security zone 164 is a second level virtualization object. The first level virtualization subject (REE) may transmit data (VSD) that guarantees integrity to the second level virtualization subject (TEE) by using an integrity guarantee program (IAP). The second level virtualization subject TEE may store this guaranteed data VSD in a second level virtualized object (security area).

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

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

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

도 3은 본 발명의 실시 예에 따른 IAP(150)의 무결성 보장 동작을 예시적으로 보여주는 도면이다. 도 2 내지 도 3을 참조하면, 무결성 보장 동작은 다음과 같이 진행 될 수 있다.3 is a diagram illustrating the integrity guarantee operation of the IAP 150 according to an embodiment of the present invention. 2 to 3, the integrity guarantee operation may 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 original data SD to be stored in the secure area 164. At this time, the APP of the REE 120 may request a token issuance for integrity guarantee from the IAP 150 and receive the issued token. The APP of the REE 120 may generate the modified data UDP (TSD) by performing a first XOR operation on the original data SD and the token. The process of generating the modified data TSD will be referred to as a deformation process TP.

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

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

도 5는 본 발명의 실시 예에 따른 무결성 보장 동작에서 토큰 발행 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 2 내지 도 5를 참조하면, 무결성 보장 동작을 위한 토큰 발행과정은 다음과 같이 진행될 수 있다.5 is a ladder diagram illustrating a token issuance process in an integrity guarantee operation according to an embodiment of the present invention. 2 to 5, the token issuance process for the integrity guarantee 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 APP of the REE 120 may request the IAP 150 to access the secure area 164. The IAP 150 may receive an access request of the APP and transmit an authentication request to the APP. The APP may transmit the biometric code to the IAP 150 by ID / password writing or biometric in response to the authentication request. The IAP 150 may request issuance of a token while transmitting the received ID / password or biometric code to the TAPP of the TEE 140. In response to this request, the TAPP may first authenticate whether the APP is a legitimate user, and issue and store tokens if the APP is a legitimate user. The fact that the APP is a legitimate user may be performed by checking ID / password or biometric code. Authentication related information related thereto 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 transmit 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 diagram conceptually illustrating the application of the Clark Wilson model to a mobile device according to an embodiment of the present invention. Referring to FIG. 6, the first subject S1 may be an REE 120 and may have an unconstrained data item (UDI) and a token. By performing the integrity verification procedure in the IAP 150, the first constrained data item CDI1 of the first subject S1 may be generated. The first restricted data item CDI1 may be stored in the objects 0 and 164. In addition, the second restricted data item CDI2 of the second subject S1 may be stored in the object O. FIG.

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

도 7은 본 발명의 실시 예에 따른 모바일 장치(100)의 동작 방법을 예시적으로 보여주는 도면이다. 도 2 내지 도 7를 참조하면, 모바일 장치(100)의 동작 방법을 다음과 같다.7 is a diagram illustrating a method of operating the mobile device 100 according to an embodiment of the present disclosure. 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 the request for access to the secure area 164 from the APP of the REE 120, the TEE 140 may perform an authentication operation (S110). The TEE 140 may receive a 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 a diagram illustrating a method of operating the mobile device 100 according to another embodiment of the present disclosure. 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 issuance request of the IAP 150, the TEE 140 may generate a token (S210). The generated token may be transmitted to the REE 120 (S220). The TEE 140 may receive the modified data and the token from the REE 120 (S230). It may be determined whether the received token and the generated token are the same (S240). If the received token and the generated token are the same, original data may be extracted from the data modified using the token (S250).

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

실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.In some embodiments, some or all of the steps and / or actions may be directed to instructions, programs, interactive data structures, clients, and / or servers stored on one or more non-transitory computer-readable media. At least some may be implemented or performed using one or more processors. One or more non-transitory computer-readable media may be illustratively software, firmware, hardware, and / or any combination thereof. In addition, the functionality 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 used in application-specific integrated circuits (ASICs), standard integrated circuits, A controller that performs appropriate instructions, including a microcontroller, and / or an embedded controller, field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and the like. Does not.

한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.On the other hand, the content of the present invention described above is only specific embodiments for carrying out the invention. The invention will include not only specific and practically available means per se, but also technical ideas as abstract and conceptual ideas that may be utilized in future technology.

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

Claims (5)

모바일 장치의 동작 방법에 있어서:
(a) REE(rich execution environment)의 어플리케이션에서 제 1 데이터와 제 1 토큰에 대한 제 1 XOR 연산을 수행하는 단계;
(b) 상기 어플리케이션에서 무결성 보장 프로그램(integrity assurance program)으로 상기 제 1 XOR 연산의 결과값과 상기 제 1 토큰을 전송하는 단계;
(c) 상기 무결성 보장 프로그램에서 상기 제 1 토큰과 제 2 토큰이 동일한 지를 판별하는 단계;
(d) 상기 무결성 보장 프로그램에서 상기 제 1 XOR 연산의 결과값과 상기 제 2 토큰에 대한 제 2 XOR 연산을 수행하는 단계; 및
(e) 상기 무결성 보장 프로그램에서 상기 제 2 XOR 연산의 결과값을 TEE(trusted execution environment)로 전송하는 단계를 포함하는 방법.
In the method of operation of a mobile device:
(a) performing a first XOR operation on the first data and the first token in an application of a rich execution environment (REE);
(b) transmitting a result value of the first XOR operation and the first token from the application to an integrity assurance program;
(c) determining whether the first token and the second token are the same in the integrity guarantee program;
(d) performing a second XOR operation on the resultant value of the first XOR operation and the second token in the integrity guarantee program; And
(e) transmitting, at the integrity guarantee program, a result of the second XOR operation to a trusted execution environment (TEE).
제1항에 있어서, 상기 (a) 단계 이전에,
상기 어플리케이션에서 상기 무결성 보장 프로그램에 토큰 발행을 요청하는 단계; 및
상기 토큰 발행의 요청에 응답하여, 상기 무결성 보장 프로그램이 상기 제 1 토큰을 발행하는 단계를 더 포함하는 방법.
The method of claim 1, wherein before step (a),
Requesting a token issuance from the application to the integrity guarantee program; And
In response to the request for issuing the token, the integrity guarantee program issuing the first token.
제2항에 있어서,
상기 제 1 토큰을 발행하는 단계는,
상기 어플리케이션에서 상기 무결성 보장 프로그램의 보안 영역에 대한 접근 요청을 전송하는 단계;
상기 접근 요청에 응답하여, 상기 무결성 보장 프로그램에서 상기 어플리케이션으로 인증 요청을 전송하는 단계;
상기 인증 요청에 응답하여, 상기 어플리케이션에서 인증 관련 정보를 상기 무결성 보장 프로그램으로 전송하는 단계;
상기 무결성 보장 프로그램에서 상기 보안 어플리케이션에 상기 인증 관련 정보 및 토큰의 발행 요청을 전송하는 단계; 및
상기 보안 어플리케이션에서 상기 인증 관련 정보를 이용하여 상기 어플리케이션을 인증하고, 상기 제 1 토큰을 생성하여 상기 무결성 보장 프로그램에 전송하는 단계를 포함하는,
방법.
The method of claim 2,
Issuing the first token,
Transmitting an access request to a security area of the integrity guarantee program in the application;
In response to the access request, transmitting an authentication request from the integrity guarantee program to the application;
In response to the authentication request, transmitting authentication related information to the integrity guarantee program in the application;
Transmitting a request for issuing the authentication related information and a token to the security application in the integrity guarantee program; And
Authenticating the application using the authentication related information in the security application, generating the first token, and transmitting the generated first token to the integrity guarantee program;
Way.
제1항에 있어서,
상기 제 2 토큰은 상기 보안 어플리케이션에 의해 생성된 후 상기 무결성 보장 프로그램으로 전송된 상기 제1 토큰을 의미하는,
방법.
The method of claim 1,
The second token means the first token generated by the security application and then transmitted to the integrity guarantee program.
Way.
적어도 하나의 프로세서와 상기 적어도 하나의 프로세서에 의해 실행되는 명령어 세트를 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함하는 모바일 장치에 있어서,
상기 명령어 세트는,
REE의 어플리케이션에서 제 1 데이터와 제 1 토큰에 대한 제 1 XOR 연산을 수행하도록 하는 명령어 세트;
상기 어플리케이션에서 무결성 보장 프로그램으로 상기 제 1 XOR 연산의 결과값과 상기 제 1 토큰을 전송하도록 하는 명령어 세트;
상기 무결성 보장 프로그램에서 상기 제 1 토큰과 제 2 토큰이 동일한 지를 판별하도록 하는 명령어 세트;
상기 무결성 보장 프로그램에서 상기 제 1 XOR 연산의 결과값과 상기 제 2 토큰에 대한 제 2 XOR 연산을 수행하도록 하는 명령어 세트; 및
상기 무결성 보장 프로그램에서 상기 제 2 XOR 연산의 결과값을 TEE로 전송하도록 하는 명령어 세트를 포함하는,
모바일 장치.
A mobile device comprising at least one processor and a non-transitory computer readable storage medium storing a set of instructions executed by the at least one processor, the mobile device comprising:
The instruction set is
An instruction set for performing a first XOR operation on the first data and the first token in an application of the REE;
An instruction set for transmitting the result of the first XOR operation and the first token from the application to an integrity guarantee program;
An instruction set for determining, by the integrity guarantee program, whether the first token and the second token are the same;
An instruction set for causing the integrity guarantee program to perform a result of the first XOR operation and a second XOR operation on the second token; And
And an instruction set for transmitting the result of the second XOR operation to a TEE in the integrity guarantee program.
Mobile devices.
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 KR20170095780A (en) 2017-08-23
KR102028670B1 true 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)

Families Citing this family (1)

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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101625065B1 (en) 2014-07-11 2016-06-08 (주)케이스마텍 User authentification method in mobile terminal
KR102327782B1 (en) 2015-05-29 2021-11-18 한국과학기술원 Electronic device and method for approaching to kernel data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Countermeasure against Side-Channel Attack in Shared Memory of TrustZone(2017.05.20) 1부.*

Also Published As

Publication number Publication date
KR20170095780A (en) 2017-08-23

Similar Documents

Publication Publication Date Title
US11093604B2 (en) Personalized and cryptographically secure access control in trusted execution environment
US10831886B2 (en) Virtual machine manager facilitated selective code integrity enforcement
JP5500458B2 (en) Protecting the memory contents of the processor main memory
US9064116B2 (en) Techniques for security management provisioning at a data storage device
US20160350534A1 (en) System, apparatus and method for controlling multiple trusted execution environments in a system
US10255425B2 (en) Secure authentication protocol systems and methods
US10318765B2 (en) Protecting critical data structures in an embedded hypervisor system
KR20170095161A (en) Secure system on chip
US20130145139A1 (en) Regulating access using information regarding a host machine of a portable storage drive
JP6584500B2 (en) Representing operating system context in a trusted platform module
EP3338214B1 (en) Secure computation environment
US20180288052A1 (en) Trusted remote configuration and operation
US11328050B2 (en) Measured execution of trusted agents in a resource constrained environment with proof of work
KR102028670B1 (en) Mobile device applying clark-wilson model and operating method thereof
KR102102179B1 (en) Embedded system, authentication system comprising the same, method of authenticating the system
Ahn et al. Countermeasure against side-channel attack in shared memory of trustzone
EP3036674B1 (en) Proof of possession for web browser cookie based security tokens
US10938857B2 (en) Management of a distributed universally secure execution environment
Umar et al. Trusted Execution Environment and Host Card Emulation
Zhang Comparison of prominent trusted execution environments
KR20230124434A (en) User authenticiation method of electronic device and electronic device performing the same

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