KR20170067003A - 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템 - Google Patents

트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템 Download PDF

Info

Publication number
KR20170067003A
KR20170067003A KR1020150173339A KR20150173339A KR20170067003A KR 20170067003 A KR20170067003 A KR 20170067003A KR 1020150173339 A KR1020150173339 A KR 1020150173339A KR 20150173339 A KR20150173339 A KR 20150173339A KR 20170067003 A KR20170067003 A KR 20170067003A
Authority
KR
South Korea
Prior art keywords
tee
application program
operating system
management server
security
Prior art date
Application number
KR1020150173339A
Other languages
English (en)
Other versions
KR101756978B1 (ko
Inventor
최원근
김성원
안준철
강지헌
Original Assignee
(주)케이스마텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)케이스마텍 filed Critical (주)케이스마텍
Priority to KR1020150173339A priority Critical patent/KR101756978B1/ko
Publication of KR20170067003A publication Critical patent/KR20170067003A/ko
Application granted granted Critical
Publication of KR101756978B1 publication Critical patent/KR101756978B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템에 관한 것으로서, 본 발명에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법은, 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하는 TEE디바이스, 및 상기 TEE디바이스의 보안정보를 업데이트하는 TEE관리서버를 이용하여 상기 TEE디바이스에 설치되어 실행되는 어플리케이션 프로그램을 보호하는 보호방법에 있어서, 상기 TEE디바이스에 설치되는 어플리케이션 프로그램의 보안동작관련 특정모듈을 분리한 다음 상기 TEE관리서버에 암호화하여 저장하는 단계; 및 상기 특정모듈이 분리된 어플리케이션 프로그램을 TEE디바이스에서 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계;를 포함한다.
따라서, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스에 설치되는 어플리케이션 프로그램의 특정모듈을 TEE관리서버에 보관하고, 어플리케이션 프로그램이 구동될 때마다 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 함으로써 어플리케이션 프로그램의 보안성을 향상시킨 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템을 제공하는 효과가 있다.

Description

트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템 { Method and System for Protecting application program in trusted execution environment }
본 발명은,트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템에 관한 것으로서, 더욱 상세하게는, 트러스티드 실행 환경 기반의 TEE디바이스에 설치되는 어플리케이션 프로그램의 특정모듈을 TEE관리서버에 보관하고, 어플리케이션 프로그램이 구동될 때마다 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 특정모듈을 복호화함으로써 어플리케이션 프로그램의 보안성을 향상시킨 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템에 관한 것이다.
최근 들어, 스마트 폰이나 태블릿 PC 등과 같은 휴대용 단말기에 논트러스티드 실행 환경(non-trusted execution environment; NTEE)에서 동작하는 일반운영체제, 및 상기 일반운영체제와 독립적으로 트러스티드 실행 환경(trusted execution environment; TEE)에서 동작하는 보안운영체제를 동시에 포함하는 트러스티드 실행 환경 기반의 보안기술이 적용되고 있다.
여기서, NTEE는 운영체제(operating system; OS), 드라이버들, 미들웨어, 어플리케이션들을 가리키는 것으로. 이러한 시스템의 예로 가장 널리 알려진 것이 안드로이드이다. 안드로이드는 리눅스커널, 장치 드라이버들, 안드로이드 실행 환경, 안드로이드 미들웨어 및 어플리케이션들을 포함한다.
반면에, TEE는 보안 요소들(security critical components)을 포함한다. 보안 요소들은 실행 중인 NTEE 요소들에 의해 접근되고, 이러한 접근에 의해 특정 보안 관련 동작이 실행된다. 일반적으로 TEE는 보안 OS, 보안 드라이버들, 보안 미들웨어 및 트러스티드 어플리케이션(TA: trusted application)들을 포함한다.
이때, TEE의 무결성(integrity)을 지키기위해, TEE의 모든 요소들은 보안 부트의 지배를 받는다.
즉, 트러스티드 실행환경 기반의 보안 기술은 NTEE에서 동작하는 일반운영체제가 실행되기 이전에 TEE에서 동작하는 보안운영체제가 먼저 부팅되기 때문에 보안성을 대폭 향상시킨다.
그러나, 이러한 방법들도 안드로이드와 같이 공개소스를 기반으로 하는 일반운영체제를 사용하는 경우에 휴대용 단말기에 사전에 설치되어 백그라운드로 구동되는 악성코드에 의해 역컴파일되어 해킹될 가능성이 여전히 존재하는 문제점이 있었다.
따라서, 트러스티드 실행환경 기반의 휴대용 단말기와 같은 TEE디바이스에 설치되는 어플리케이션 프로그램에 대해 역컴파일 되는 것을 원천적으로 방지할 수 있는 현실적이고도 적용이 가능한 보안 기술이 절실히 요구되고 있는 실정이다.
한국등록특허공보 제 10-1324693호 (2013년10월28일)
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스에 설치되는 어플리케이션 프로그램의 특정모듈을 TEE관리서버에 보관하고, 어플리케이션 프로그램이 구동될 때마다 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행 함으로써 어플리케이션 프로그램의 보안성을 향상시킨 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템을 제공하는데 목적이 있다.
본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법은, 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하는 TEE디바이스, 및 상기 TEE디바이스의 보안정보를 업데이트하는 TEE관리서버를 이용하여 상기 TEE디바이스에 설치되어 실행되는 어플리케이션 프로그램을 보호하는 보호방법에 있어서, 상기 TEE디바이스에 설치되는 어플리케이션 프로그램의 보안동작관련 특정모듈을 분리한 다음 상기 TEE관리서버에 암호화하여 저장하는 단계; 및 상기 특정모듈이 분리된 어플리케이션 프로그램을 TEE디바이스에서 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계;를 포함할 수 있다.
상기 TEE디바이스의 보안운영체제가 관리하는 보안영역은, 일반운영체제가 동작하는 일반영역과는 물리적으로 분리된 ARM 트러스트존(Trustzone)기반의 TEE일 수 있다.
상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계는, 상기 TEE디바이스의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버에 사전에 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정일 수 있다.
상기 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정은, 상기 TEE디바이스가 보안운영체제에서 ID정보와 상기 특정모듈의 버전정보를 암호화한 다음 상기 TEE관리서버에 전송하고, 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계와; 상기 TEE관리서버가 상기 버전정보에 대응되는 암호화된 특정모듈을 찾아 상기 TEE디바이스로 전달하는 제 2 단계와; 상기 TEE디바이스가 보안운영체제에서 상기 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 제 3 단계와; 상기 TEE디바이스가 상기 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 제 4 단계와; 상기 TEE관리서버가 상기 TEE디바이스에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 상기 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 제 5 단계; 및 상기 TEE디바이스가 상기 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키 제 6 단계;를 포함할 수 있다.
상기 특정모듈은, 어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성될 수 있다.
상기 TEE디바이스가 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계는, 일반운영체제에서 TEE디바이스의 ID정보와 특정모듈에 해당하는 DEX파일의 버전정보를 수집하여 암호화 하는 단계; 보안운영체제에서 상기 ID정보와 버전정보를 복호화 하는 단계; 보안운영체제에서 대칭키를 생성하여 상기 ID정보와 버전정보를 암호화하고 공개키를 이용하여 상기 대칭키를 암호화하는 단계; 및 일반운영체제를 통해 상기 암호화된 정보와 대칭키를 상기 TEE관리서버에 전송하고 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 단계;를 포함할 수 있다.
상기 TEE디바이스가 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계 이전에, 상기 복호화된 TEE디바이스의 정보 중 버전정보에 대응되는 어플리케이션 프로그램의 특정 해쉬값을 TEE관리서버에 저장하는 단계;를 포함할 수 있다.
상기 TEE관리서버가 상기 버전정보에 대응되는 암호화된 특정모듈을 찾아 상기 TEE디바이스로 전달하는 제 2 단계는, 공개키를 이용해 상기 TEE디바이스에서 전송된 대칭키를 복호화하는 단계; 상기 복호화된 대칭키를 이용해 상기 TEE디바이스에서 전송된 암호화된 정보를 복호화하는 단계; 상기 복호화된 TEE디바이스의 전송된 정보를 이용해 상기 TEE디바이스에서 요청한 특정모듈을 찾고 세션용 대칭키를 생성하는 단계; 상기 세션용 대칭키를 이용해 상기 특정모듈 및 버전정보를 암호화하고 상기 세션용 대칭키를 공개키로 암호화하는 단계; 상기 암호화된 특정모듈 및 버전정보를 상기 암호화된 세션용 대칭키와 함께 상기 TEE디바이스로 전송하는 단계;를 포함할 수 있다.
상기 TEE디바이스가 보안운영체제에서 상기 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 제 3 단계는, 보안운영체제에서 상기 암호화된 세션용 대칭키를 공개키로 복호화하는 단계; 보안운영체제에서 상기 복호화된 세션용 대칭키를 이용하여 상기 TEE관리서버에서 전송한 암호화된 특정모듈을 복호화하는 단계; 및 일반운영체제에서 상기 복호화된 특정모듈에 해당하는 덱스파일을 로딩하여 위변조체크 동작을 실행시키는 단계;를 구비할 수 있다.
상기 TEE디바이스가 상기 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 제 4 단계는, 일반운영체제에서 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 수집하여 보안운영체제로 전달하는 단계와; 보안운영체제에서 OTP와 위변조체크용 대칭키를 생성하는 단계; 보안운영체제에서 상기 버전정보와 특정 해쉬값 및 OTP를 포함하는 위변조 판단정보를 위변조체크용 대칭키로 암호화하하고 공개키를 이용해 상기 위변조체크용 대칭키를 암호화하는 단계; 및 상기 암호화된 위변조체크용 대칭키 및 위변조 판단정보를 상기 TEE관리서버로 전송하는 단계;를 구비할 수 있다.
상기 TEE관리서버가 상기 TEE디바이스에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 상기 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 제 5 단계는, 공개키를 이용해 상기 암호화된 위변조체크용 대칭키를 복호화하는 단계; 상기 복호화된 위변조체크용 대칭키를 이용하여 상기 위변조 판단정보를 복호화하는 단계; 상기 위변조 판단정보를 구성하며 상기 TEE디바이스에서 수신한 OTP값을 이용하여 정상여부를 판단하는 단계; 및 상기 위변조 판단정보를 구성하며 상기 TEE디바이스에서 수신한 특정해쉬값을 TEE관리서버에 미리 저장된 특정해쉬값과 비교하여 정상여부를 판단하고 위변조결과정보를 생성하는 단계를 구비할 수 있다.
상기 TEE디바이스가 상기 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키는 제 6 단계는, 상기 TEE관리서버에서 위변조결과용 대칭키를 생성하는 단계; 상기 TEE관리서버에서 상기 위변조결과용 대칭키를 이용해 상기 위변조결과정보를 암호화한 다음, 상기 위변조결과용 대칭키를 공개키로 암호화하는 단계; 상기 암호화된 위변조결과용 대칭키와 위변조결과정보를 상기 TEE디바이스에 전달하는 단계; 상기 TEE디바이스의 보안운영체제에서 상기 암호화된 위변조결과용 대칭키를 공개키로 복호화한 다음, 상기 암호화된 위변조결과정보를 복호화된 위변조결과용 대칭키를 이용해 복호화하는 단계; 및 상기 TEE디바이스의 일반운영체제에 위변조결과정보가 전달되어 위변조로 판명이 되면 어플리케이션 프로그램을 종료하고 정상으로 판명되면 구동시키는 단계;를 포함할 수 있다.
본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방시스템은, 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하고, 적어도 하나 이상의 보안관련 모듈을 DEX파일형태로 구비하는 어플리케이션 프로그램이 설치되기 위한 TEE디바이스; 및 상기 TEE디바이스의 보안정보를 업데이트하는 TEE관리서버;를 구비하고, 상기 TEE디바이스는, 어플리케이션 프로그램을 구성하는 DEX파일형태의 보안관련 모듈 중 특정모듈이 분리된 어플리케이션 프로그램이 설치되고, 상기 TEE관리서버는, 상기 어플리이케이션 프로그램에서 분리된 DEX파일 형태의 특정모듈을 암호화하여 저장할 수 있다.
상기 TEE디바이스는, 상기 특정모듈이 분리된 어플리케이션 프로그램을 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 보안운영체제가 관리하는 보안영역에서 복호화한 다음 상기 복호화된 특정모듈에 의한 보안관련 동작을 수행할 수 있다.
상기 특정모듈은 어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성되고, 상기 특정모듈에 의한 보안관련 동작은, 상기 TEE디바이스의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버에 미리 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정일 수 있다.
이상에서 설명한 바와 같이, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스에 설치되는 어플리케이션 프로그램의 특정모듈을 TEE관리서버에 보관하고, 어플리케이션 프로그램이 구동될 때마다 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 함으로써 공개소스를 기반으로 하는 일반운영체제의 역컴파일에 의한 해킹가능성을 원천적으로 차단할 수 있는 효과가 있다.
또한, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스를 제공하면서 일반운영체제와 물리적으로 분리된 ARM트러스트존 기반의 TEE를 이용함으로써 보안성을 향상시키는 효과가 있다.
또한, 본 발명은, TEE디바이스의 어플리케이션 프로그램의 특정 해쉬값을 TEE관리서버에 사전 저장된 특정 해쉬값과 비교하여 위변조유무를 판단함으로써 보안관련 어플리케이션 프로그램의 효율성을 높이는 효과가 있다.
또한, 본 발명은, TEE디바이스에서 생성한 OTP값과 어플리케이션 프로그램의 특정해쉬값을 이용하여 이중으로 위변조여부를 판단할 수 있어 보안성을 향상시키는 효과가 있다.
또한, 본 발명은, 덱스파일을 구성하는 하나 이상의 보안관련모듈 중 특정모듈을 선택하여 TEE디바이스가 아닌 TEE관리서버에 암호화하여 저장함으로써 보안성을 높일 수 있고, 전체적인 TEE디바이스의 암/복호화 제어과정을 수행하는 경우에는 보안운영체제에서 독립적으로 수행함으로써 보안성을 향상 시키는 효과가 있다.
또한, 본 발명은, TEE디바이스에서 위변조 판단정보 외에 OTP생성시 어플리케이션의 특정 해쉬값과 어플리케이션을 구성하는 덱스파일의 파일크기 및 시간을 기준으로 하여 생성함으로써 OTP와 같은 보안토큰의 신뢰성을 높이는 효과가 있다.
또한, 본 발명은, 네트워크상에서 송수신되는 데이터를 대칭키로 암호화하고 공개키로 대칭키를 암호화 함으로써 위변조판단정보에 해당되는 데이터가 네트워크상에서 노출되는 것을 방지하는 효과가 있다.
도 1는 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 애플리케이션 프로그램 보호 방법을 개략적으로 설명하기 위한 블럭구성도이다.
도 2는 도 1에 도시된 덱스파일의 분리 저장되는 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정을 나타내는 흐름도이다.
도 4는 TEE디바이스가 TEE관리서버에 저장된 특정모듈을 요청할 때의 흐름을 보여주는 흐름도이다.(제1단계)
도 5는 TEE관리서버가 암호화된 특정모듈을 찾아 TEE디바이스에 전달할 때의 흐름을 보여주는 흐름도이다.(제2단계)
도 6은 TEE디바이스가 특정모듈을 복호화하고 특정모듈을 로딩할 때의 흐름을 보여주는 흐름도이다.(제3단계)
도 7은 TEE디바이스가 어플리케이 위변조판단정보를 암호화하여 TEE관리서버로 전송할 때의 흐름을 보여주는 흐름도이다.(제4단계)
도 8은 특정해쉬값을 포함하는 위변조체크값을 래덤하게 하기 위한 플래그 테이블 및 특정해쉬값의 실시예를 나타내는 도면
도 9는 TEE관리서버가 어플리케이션 프로그램의 위변조를 검증하고 결과데이터를 생성할 때의 흐름을 보여주는 흐름도이다.(제5단계)
도 10은 TEE디바이스가 TEE관리서버에서 위변조결과데이터를 복호화하여 위변조로 판명되면 어플리케이션 프로그램을 종료시킬 때의 흐름을 보여주는 흐름도이다.(제6단계)
도 11은 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템을 개략적으로 설명하기 위한 시스템 블럭구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 애플리케이션 프로그램 보호 방법을 개략적으로 설명하기 위한 블럭구성도이다.
본 발명은, 논트러스티드 실행 환경(non-trusted execution environment; NTEE)에서 동작하는 일반운영체제, 및 상기 일반운영체제와 독립적으로 트러스티드 실행 환경(trusted execution environment; TEE)에서 동작하는 보안운영체제를 동시에 포함하는 트러스티드 실행 환경 기반의 TEE 디바이스에 설치되는 애플리케이션 프로그램의 보호방법에 관한 것이다.
이하에서는 일반운영체제가 동작하는 영역을 NW(Normal world)(100)라 하고, 보안운영체제가 동작하는 영역을 SW(Secure Wolrd)(200)라고 한다.
본 발명에서 상기 TEE디바이스(10)는 스마트 폰이나 태블릿 PC 등과 같은 휴대용 단말기를 가리키는 것으로 안드로이드와 같이 공개소스를 기반으로 하는 일반운영체제를 포함하고 있다.
또한, 본 발명은 상기 TEE디바이스(10)의 보안정보를 업데이트하는 TEE 관리서버(20)를 포함한다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 애플리케이션 프로그램의 보호방법은, 앞서 상술한 TEE디바이스(10)에 설치되는 어플리케이션 프로그램에서 특정모듈을 분리하여 암호화 한 다음 TEE관리서버(20)에 보관하고, 특정모듈이 분리된 어플리케이션 프로그램을 어플리케이션 스토어, 예를 들어 안드로이드 마켓등에 배포함으로써 구현될 수 있다.
이때, 상기 특정모듈은, 본 발명의 실시예에 따라, 안드로이드 운영체제에 서 동작하는 어플리케이션에 기본제공되는 다수개의 클래스를 포함하는 덱스파일에서 분리된 것으로, 어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성될 수 있다.
도 2는 도 1에 도시된 덱스파일의 분리 저장되는 구성을 추가 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, 본 발명의 실시예에 따라 TEE디바이스에 설치되는 어플리케이션 프로그램은 안드로이드 프로그램 패키지(APK)를 가리키는 것으로, 사전에 중요모듈로 선정된 특정 클래스를 덱스파일에서 분리시킨 다음 수정된 APK를 안드로이드 마켓등에 배포하고, 상술한 특정 클래스와 같은 중요모듈을 TEE관리서버(20)에 저장할 수 있다.
여기서, TEE관리서버(20)에 저장되는 특정 클래스와 같은 중요모듈은 암호화되어 저장되는 것이 바람직하며, 또한, 수정된 APK를 사용자가 안드로이드 마켓등에서 다운받아 TEE디바이스(10)에 설치하는 경우에는 TEE디바이스의 SW(200)에서 상기 중요모듈을 복호화 할 수 있다. 이에 대한 상세한 설명은 후술하기로 한다.
이와 같이, 본 발명의 실시예에 따른 TEE디바이스에 설치되어 실행되는 어플리케이션 프로그램을 보호하는 보호방법은, 상기 TEE디바이스에 설치되는 어플리케이션 프로그램의 보안동작관련 특정모듈을 분리한 다음 상기 TEE관리서버에 암호화하여 저장하는 단계, 및 상기 특정모듈이 분리된 어플리케이션 프로그램을 TEE디바이스에서 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역(SW)(200)에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계를 포함할 수 있다.
이때, 상기 TEE디바이스(10)의 보안운영체제가 관리하는 보안영역 SW(200)은, 일반운영체제가 동작하는 일반영역 NW(100)와는 물리적으로 분리된 ARM 트러스트존(Trustzone)기반의 TEE일 수 있다.
한편, 본 발명의 실시예에서, 상기 암호화된 특정모듈을 TEE관리서버(20)로부터 수신하여 상기 TEE디바이스(10)의 보안운영체제가 관리하는 보안영역 SW(200)에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계는, 상기 TEE디바이스(10)의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버(20)에 사전에 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정일 수 있다.
이하, 도 3 내지 도 10을 참조하여 본 발명의 실시예에 따라 어플리케이션 프로그램의 위변조유무를 확인하는 과정을 설명하면 다음과 같다.
도 3은 본 발명의 실시예에 따른 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정을 전체적으로 나타내는 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따른 상기 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정을 설명하면 다음과 같다.
먼저, TEE디바이스(10)가 TEE관리서버(20)에 저장된 특정모듈을 요청하는 제 1 단계를 수행한다.
여기서, 상기 제 1 단계(S100)는, 상기 TEE디바이스(10)가 보안운영체제에서 ID정보와 상기 특정모듈의 버전정보를 암호화한 다음 상기 TEE관리서버(20)에 전송하고, 상기 TEE관리서버(20)에 저장된 암호화된 특정모듈을 요청하는 단계일 수 있다.
다음으로, 상기 TEE관리서버(20)가 상기 버전정보에 대응되는 암호화된 특정모듈을 찾아 상기 TEE디바이스(10)로 전달하는 제 2 단계(S200)를 수행한다.
다음으로, 상기 TEE디바이스(10)가 특정모듈을 복호화하고 특정모듈을 로딩하는 제 3 단계(S300)를 수행한다.
이때, 상기 제 3 단계(S300)는, 상기 TEE디바이스(10)가 보안운영체제에서 상기 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 단계일 수 있다.
다음으로, 상기 TEE디바이스(10)가 어플리케이 위변조판단정보를 암호화하여 TEE관리서버(20)로 전송하는 제 4 단계(S400)를 수행한다.
여기서, 상기 제 4 단계(S400)는, 상기 TEE디바이스(10)가 상기 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 단계일 수 있다.
다음으로, 상기 TEE관리서버(20)가 어플리케이션 프로그램의 위변조를 검증하고 결과데이터를 생성하는 제 5 단계(S500)를 수행한다.
이때, 상기 제 5 단계(S500)는, 상기 TEE관리서버(20)가 상기 TEE디바이스(10)에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 상기 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 단계일 수 있다.
마지막으로, 상기 TEE디바이스(10)가 상기 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키 제 6 단계(S600)를 수행한다.
도 4 내지 도 10을 참조하여 도 3에 도시된 어플리케이션 프로그램의 위변조유무를 확인하는 과정을 보다 세부적으로 구분하여 설명하면 다음과 같다.
도 4는 TEE디바이스가 TEE관리서버에 저장된 특정모듈을 요청할 때의 흐름을 보여주는 흐름도이다.
도 4에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE디바이스가 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 단계(S100)는, 일반운영체제에서 TEE디바이스(10)의 ID정보와 특정모듈에 해당하는 DEX파일의 버전정보를 수집하여 암호화 하고(S110), 보안운영체제에서 상기 ID정보와 버전정보를 복호화 한다.(S120)
다음으로, 보안운영체제에서 대칭키를 생성하여 상기 ID정보와 버전정보를 암호화하고 공개키를 이용하여 상기 대칭키를 암호화하고(S130), 일반운영체제를 통해 상기 암호화된 정보와 대칭키를 상기 TEE관리서버(20)에 전송하고 상기 TEE관리서버(10)에 저장된 암호화된 특정모듈을 요청할 수 있다.(S140)
한편, 본 발명의 실시예에서는, 상기 TEE디바이스(10)가 상기 TEE관리서버(20)에 저장된 암호화된 특정모듈을 요청하는 단계 이전에, 상기 복호화된 TEE디바이스의 정보 중 버전정보에 대응되는 어플리케이션 프로그램의 특정 해쉬값을 TEE관리서버에 저장하여 후술하는 위변조판단정보에 대응되는 정보로 사용할 수 있다.
도 5는 TEE관리서버가 암호화된 특정모듈을 찾아 TEE디바이스에 전달할 때의 흐름을 보여주는 흐름도이다.
도 5에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE관리서버(20)가 DEX파일의 버전정보에 대응되는 암호화된 특정모듈을 찾아 TEE디바이스(10)로 전달하는 단계(S200)는, 공개키를 이용해 상기 TEE디바이스(10)에서 전송된 대칭키를 복호화하고(S210), 상기 복호화된 대칭키를 이용해 상기 TEE디바이스(10)에서 전송된 암호화된 정보를 복호화한다.(S220)
다음으로, 상기 복호화된 TEE디바이스(10)의 전송된 정보를 이용해 상기 TEE디바이스(10)에서 요청한 특정모듈을 찾고 세션용 대칭키를 생성하고(S230), 상기 세션용 대칭키를 이용해 상기 특정모듈 및 버전정보를 암호화하고 상기 세션용 대칭키를 공개키로 암호화하며(S240), 상기 암호화된 특정모듈 및 버전정보를 상기 암호화된 세션용 대칭키와 함께 상기 TEE디바이스(10)로 전송한다.(S250)
도 6은 TEE디바이스가 특정모듈을 복호화하고 특정모듈을 로딩할 때의 흐름을 보여주는 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE디바이스가 보안운영체제에서 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 단계(S300)는, 보안운영체제에서 암호화된 세션용 대칭키를 공개키로 복호화하고(S310), 보안운영체제에서 상기 복호화된 세션용 대칭키를 이용하여 TEE관리서버(20)에서 전송한 암호화된 특정모듈을 복호화하며(S320), 일반운영체제에서 상기 복호화된 특정모듈에 해당하는 덱스파일을 로딩하여 위변조체크 동작을 실행시킨다.(S330)
도 7은 TEE디바이스가 어플리케이 위변조판단정보를 암호화하여 TEE관리서버로 전송할 때의 흐름을 보여주는 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE디바이스가 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 단계(S400)는, 일반운영체제에서 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 수집하여 보안운영체제로 전달하고(S410), 보안운영체제에서 OTP와 위변조체크용 대칭키를 생성한다.(S420)
다음으로, 보안운영체제에서 상기 버전정보와 특정 해쉬값 및 OTP를 포함하는 위변조 판단정보를 위변조체크용 대칭키로 암호화하하고 공개키를 이용해 상기 위변조체크용 대칭키를 암호화하고(S430), 상기 암호화된 위변조체크용 대칭키 및 위변조 판단정보를 상기 TEE관리서버(20)로 전송한다.(S440)
도 8은 특정해쉬값을 포함하는 위변조체크값을 랜덤하게 하기 위한 플래그 테이블 및 특정해쉬값의 실시예를 나타내는 도면이다.
도 8을 참조하여, 제 4 단계의 특정해쉬값을 포하하는 위변조체크용 특징값을 랜덤하게 하기 위한 방법을 구체적으로 설명하면 다음과 같다.
도면에 도시된 바와 같이, 본 발명의 실시예에서는, APK파일, DEX파일, 및 RES폴더내 파일을 해쉬값, 파일크기, 바이너리OFFSET과 대응시키는 플래그 테이블을 구성할 수 있다.
여기서, 예를 들어, 도면에 도시된 HASH1은 SHA1로 추출하고 HASH2는 SHA2로 추출될 수 있으며, 파일크기는 BYTE 단위 파일의 실제크기로 표현될 수 있다.
또한, 도면에 도시된 바와 같이, 메모리 내에서 차지하는 파일의 특정위치 값, 예를 들어 200~300번지 HEX값을 특징값으로도 구분할 수 있다.
한편, FLAG TABLE을 참고하였을 때, FLAG 가 101203 으로 표시되면, 이것은 FLAG 테이블의 HASH1 값과 덱스파일의 파일크기를 나타내는 것으로 보안운영체제의 보안영역에 전달되는 경우에 현재시간과 함께 SEED로 하여 OTP(보안토큰)을 생성할 수 있다.
도 9는 TEE관리서버가 어플리케이션 프로그램의 위변조를 검증하고 결과데이터를 생성할 때의 흐름을 보여주는 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE관리서버가 TEE디바이스에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 단계(S500)는, 공개키를 이용해 상기 암호화된 위변조체크용 대칭키를 복호화하고(S510), 복호화된 위변조체크용 대칭키를 이용하여 상기 위변조 판단정보를 복호화한다.(S520)
다음으로, 위변조 판단정보를 구성하며 상기 TEE디바이스(10)에서 수신한 OTP값 및 특정해쉬값을 TEE관리서버(20)에 미리 저장된 OTP값 및 특정해쉬값과 비교하여 정상여부를 판단하고 위변조결과정보를 생성한다.(S530,S540)
도 10은 TEE디바이스가 TEE관리서버에서 위변조결과데이터를 복호화하여 위변조로 판명되면 어플리케이션 프로그램을 종료시킬 때의 흐름을 보여주는 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따라, TEE디바이스가 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키는 단계(S600)는, TEE관리서버(20)에서 위변조결과용 대칭키를 생성하고(S610), TEE관리서버(20)에서 상기 위변조결과용 대칭키를 이용해 위변조결과정보를 암호화한 다음, 상기 위변조결과용 대칭키를 공개키로 암호화하여(S620) 암호화된 위변조결과용 대칭키와 위변조결과정보를 상기 TEE디바이스(10)에 전달한다.(S630)
다음으로, 상기 TEE디바이스(10)의 보안운영체제에서 상기 암호화된 위변조결과용 대칭키를 공개키로 복호화한 다음, 상기 암호화된 위변조결과정보를 복호화된 위변조결과용 대칭키를 이용해 복호화하고(S640), 상기 TEE디바이스(10)의 일반운영체제에 위변조결과정보가 전달되어 위변조로 판명이 되면 어플리케이션 프로그램을 종료하고 정상으로 판명되면 구동시킨다.(S650)
도 11은 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템을 개략적으로 설명하기 위한 시스템 블럭구성도이다.
도면에 도시된 바와 같이, 본 발명의 실시예에 따른 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템은, 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하는 TEE디바이스(10), 및 상기 TEE디바이스(10)의 보안정보를 업데이트하는 TEE관리서버(20)를 구비한다.
이때, 상기 TEE디바이스(10)는, 적어도 하나 이상의 보안관련 모듈을 DEX파일형태로 구비하는 어플리케이션 프로그램이 설치되고, 어플리케이션 프로그램을 구성하는 DEX파일형태의 보안관련 모듈 중 특정모듈이 분리된 어플리케이션 프로그램이 설치될 수 있다.
보다 상세하게는, 상기 TEE디바이스는, 앞서 상술한 도 3 내지 도 10의 어플리케이션 보호방법을 구현하기 위하여, 일반운영체제가 동작하는 영역(100;NWD)에 TEE관리서버(20)와 통신을 수행하기 통신부(110), 위변조판단정보를 수집하는 정보수집부(120), 덱스파일형태의 특정모듈을 로딩하는 덱스파일 로딩부(130), 및 일반운영체제에서 사용하는 자바코드를 보안운영체제에서 사용하기 위한 네이티브코드로 변환하는 JNI인터페이스(140)를 구비하고, 보안운영체가 동작하는 영역(200;SWD)에 상기 정보수집부(120)에서 수집한 위변조판단정보를 암호화하는 위변조정보암호화부(210), TEE관리서버에서 수신한 덱스파일 형태의 암호화된 특정모듈을 복호화 하는 덱스파일 복호화부(220), 디바이스 ID정보를 암호화하는 ID정보 암호화부(230), 공개키 및 대칭키를 이용한 암복호화부(240), OTP생성부(250), 및 대칭키 생성부(260)를 구비할 수 있다.
상기 TEE관리서버(20)는, 상기 어플리이케이션 프로그램에서 분리된 DEX파일 형태의 특정모듈을 암호화하여 저장할 수 있다.
더욱 상세하게는, 상기 TEE관리서버(20)는, 앞서 상술한 TEE디바이스(10)와 대응되어 상기 TEE디바이스(10)의 통신부(110)와 통신을 수행하기 위한 서버통신부(21), 어플리케이션 프로그램에서 분리한 덱스파일 형태의 특정모듈을 암호화하기 위한 덱스파일 암호화부(22), 공개키 및 대칭키를 이용한 서버 암복호화부(23), 서버 OTP생성부(24), 및 서버 대칭키생성부(25)를 구비할 수 있다.
한편, 본 발명의 실시예에서, 상기 TEE디바이스(10)는, 상기 특정모듈이 분리된 어플리케이션 프로그램을 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버(20)로부터 수신하여 보안운영체제가 관리하는 보안영역에서 복호화한 다음 상기 복호화된 특정모듈에 의한 보안관련 동작을 수행할 수 있다.
또한, 본 발명의 실시예에서, 상기 특정모듈은 상술한 바와 같이, 어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성되고, 상기 특정모듈에 의한 보안관련 동작은, 상기 TEE디바이스(10)의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버(20에 미리 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정일 수 있다.
상기와 같이, 본 발명은, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스에 설치되는 어플리케이션 프로그램의 특정모듈을 TEE관리서버에 보관하고, 어플리케이션 프로그램이 구동될 때마다 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 함으로써 공개소스를 기반으로 하는 일반운영체제의 역컴파일에 의한 해킹가능성을 원천적으로 차단할 수 있는 효과가 있다.
또한, 본 발명은, 트러스티드 실행 환경 기반의 TEE디바이스를 제공하면서 일반운영체제와 물리적으로 분리된 ARM트러스트존 기반의 TEE를 이용함으로써 보안성을 향상시키는 효과가 있다.
또한, 본 발명은, TEE디바이스의 어플리케이션 프로그램의 특정 해쉬값을 TEE관리서버에 사전 저장된 특정 해쉬값과 비교하여 위변조유무를 판단함으로써 보안관련 어플리케이션 프로그램의 효율성을 높이는 효과가 있다.
또한, 본 발명은, TEE디바이스에서 생성한 OTP값과 어플리케이션 프로그램의 특정해쉬값을 이용하여 이중으로 위변조여부를 판단할 수 있어 보안성을 향상시키는 효과가 있다.
지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐이며, 한정적인 것이 아님을 분명히 하고, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다.
10 : TEE디바이스 20 : TEE관리서버
21 : 서버통신부 22 : 덱스파일 암호화부
23 : 서버 암복호화부 24 : 서버 OTP생성부
25 : 서버 대칭키생성부 100 : NWD(Normal World)
110 : 통신부 120 : 정보수집부
130 : 덱스파일 로딩부 140 : JNI인터페이스
200 : SWD(Secure World) 210 : 위변조암호화부
220 : 덱스파일 복호화부 230 : ID정보 암호화부
240 : 암복호화부 250 : OTP생성부
260 : 대칭키생성부

Claims (15)

  1. 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하는 TEE디바이스, 및 상기 TEE디바이스의 보안정보를 업데이트하는 TEE관리서버를 이용하여 상기 TEE디바이스에 설치되어 실행되는 어플리케이션 프로그램을 보호하는 보호방법에 있어서,
    상기 TEE디바이스에 설치되는 어플리케이션 프로그램의 보안동작관련 특정모듈을 분리한 다음 상기 TEE관리서버에 암호화하여 저장하는 단계; 및
    상기 특정모듈이 분리된 어플리케이션 프로그램을 TEE디바이스에서 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  2. 제 1 항에 있어서, 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역은,
    일반운영체제가 동작하는 일반영역과는 물리적으로 분리된 ARM 트러스트존(Trustzone)기반의 TEE인 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  3. 제 1 항에 있어서, 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 상기 TEE디바이스의 보안운영체제가 관리하는 보안영역에서 상기 특정모듈을 복호화한 다음 상기 특정모듈에 의한 보안동작을 수행하는 단계는,
    상기 TEE디바이스의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버에 사전에 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정인 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  4. 제 3 항에 있어서, 상기 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정은,
    상기 TEE디바이스가 보안운영체제에서 ID정보와 상기 특정모듈의 버전정보를 암호화한 다음 상기 TEE관리서버에 전송하고, 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계와;
    상기 TEE관리서버가 상기 버전정보에 대응되는 암호화된 특정모듈을 찾아 상기 TEE디바이스로 전달하는 제 2 단계와;
    상기 TEE디바이스가 보안운영체제에서 상기 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 제 3 단계와;
    상기 TEE디바이스가 상기 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 제 4 단계와;
    상기 TEE관리서버가 상기 TEE디바이스에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 상기 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 제 5 단계; 및
    상기 TEE디바이스가 상기 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키는 제 6 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  5. 제 4 항에 있어서, 상기 특정모듈은,
    어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성되는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  6. 제 4 항에 있어서, 상기 TEE디바이스가 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계는,
    일반운영체제에서 TEE디바이스의 ID정보와 특정모듈에 해당하는 DEX파일의 버전정보를 수집하여 암호화 하는 단계;
    보안운영체제에서 상기 ID정보와 버전정보를 복호화 하는 단계;
    보안운영체제에서 대칭키를 생성하여 상기 ID정보와 버전정보를 암호화하고 공개키를 이용하여 상기 대칭키를 암호화하는 단계; 및
    일반운영체제를 통해 상기 암호화된 정보와 대칭키를 상기 TEE관리서버에 전송하고 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  7. 제 6 항에 있어서, 상기 TEE디바이스가 상기 TEE관리서버에 저장된 암호화된 특정모듈을 요청하는 제 1 단계 이전에,
    상기 복호화된 TEE디바이스의 정보 중 버전정보에 대응되는 어플리케이션 프로그램의 특정 해쉬값을 TEE관리서버에 저장하는 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  8. 제 7 항에 있어서, 상기 TEE관리서버가 상기 버전정보에 대응되는 암호화된 특정모듈을 찾아 상기 TEE디바이스로 전달하는 제 2 단계는,
    공개키를 이용해 상기 TEE디바이스에서 전송된 대칭키를 복호화하는 단계;
    상기 복호화된 대칭키를 이용해 상기 TEE디바이스에서 전송된 암호화된 정보를 복호화하는 단계;
    상기 복호화된 TEE디바이스의 전송된 정보를 이용해 상기 TEE디바이스에서 요청한 특정모듈을 찾고 세션용 대칭키를 생성하는 단계;
    상기 세션용 대칭키를 이용해 상기 특정모듈 및 버전정보를 암호화하고 상기 세션용 대칭키를 공개키로 암호화하는 단계;
    상기 암호화된 특정모듈 및 버전정보를 상기 암호화된 세션용 대칭키와 함께 상기 TEE디바이스로 전송하는 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  9. 제 8 항에 있어서, 상기 TEE디바이스가 보안운영체제에서 상기 특정모듈을 복호화한 다음 일반운영체제에서 어플리케이션 프로그램의 위변조유무를 확인하기 위한 특정모듈을 로딩하는 제 3 단계는,
    보안운영체제에서 상기 암호화된 세션용 대칭키를 공개키로 복호화하는 단계;
    보안운영체제에서 상기 복호화된 세션용 대칭키를 이용하여 상기 TEE관리서버에서 전송한 암호화된 특정모듈을 복호화하는 단계; 및
    일반운영체제에서 상기 복호화된 특정모듈에 해당하는 덱스파일을 로딩하여 위변조체크 동작을 실행시키는 단계;를 구비하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  10. 제 9 항에 있어서, 상기 TEE디바이스가 상기 특정모듈에 의해 수집된 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 보안운영체제에서 암호화한 다음 상기 보안운영체제에서 생성된 OTP값과 함께 TEE관리서버로 전송하는 제 4 단계는,
    일반운영체제에서 어플리케이션 프로그램의 버전정보와 특정 해쉬값을 수집하여 보안운영체제로 전달하는 단계와;
    보안운영체제에서 OTP와 위변조체크용 대칭키를 생성하는 단계;
    보안운영체제에서 상기 버전정보와 특정 해쉬값을 포함하는 위변조 판단정보를 위변조체크용 대칭키로 암호화하하고 공개키를 이용해 상기 위변조체크용 대칭키를 암호화하는 단계; 및
    상기 암호화된 위변조체크용 대칭키 및 위변조 판단정보를 상기 TEE관리서버로 전송하는 단계;를 구비하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  11. 제 10 항에 있어서, 상기 TEE관리서버가 상기 TEE디바이스에서 수신한 OTP값과 어플리케이션 프로그램의 버전정보 및 특정 해쉬값을 이용하여 상기 어플리케이션 프로그램의 위변조여부를 검증하고 위변조 결과데이터를 생성하는 제 5 단계는,
    공개키를 이용해 상기 암호화된 위변조체크용 대칭키를 복호화하는 단계;
    상기 복호화된 위변조체크용 대칭키를 이용하여 상기 위변조 판단정보를 복호화하는 단계;
    상기 위변조 판단정보를 구성하며 상기 TEE디바이스에서 수신한 OTP값을 이용하여 정상여부를 판단하는 단계; 및
    상기 위변조 판단정보를 구성하며 상기 TEE디바이스에서 수신한 특정해쉬값을 TEE관리서버에 미리 저장된 특정해쉬값과 비교하여 정상여부를 판단하고 위변조결과정보를 생성하는 단계를 구비하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  12. 제 11 항에 있어서, 상기 TEE디바이스가 상기 TEE관리서버에서 수신된 암호화된 위변조 결과데이터를 보안운영체제에서 복호화하여 위변조로 판명이 되면 어플리케이션 프로그램을 종료시키는 제 6 단계는,
    상기 TEE관리서버에서 위변조결과용 대칭키를 생성하는 단계;
    상기 TEE관리서버에서 상기 위변조결과용 대칭키를 이용해 상기 위변조결과정보를 암호화한 다음, 상기 위변조결과용 대칭키를 공개키로 암호화하는 단계;
    상기 암호화된 위변조결과용 대칭키와 위변조결과정보를 상기 TEE디바이스에 전달하는 단계;
    상기 TEE디바이스의 보안운영체제에서 상기 암호화된 위변조결과용 대칭키를 공개키로 복호화한 다음, 상기 암호화된 위변조결과정보를 복호화된 위변조결과용 대칭키를 이용해 복호화하는 단계; 및
    상기 TEE디바이스의 일반운영체제에 위변조결과정보가 전달되어 위변조로 판명이 되면 어플리케이션 프로그램을 종료하고 정상으로 판명되면 구동시키는 단계;를 포함하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법
  13. 일반운영체제와 독립적으로 동작하는 보안운영체제를 포함하여 트러스티드 실행 환경 기반을 지원하고, 적어도 하나 이상의 보안관련 모듈을 DEX파일형태로 구비하는 어플리케이션 프로그램이 설치되기 위한 TEE디바이스; 및
    상기 TEE디바이스의 보안정보를 업데이트하는 TEE관리서버;를 구비하고,
    상기 TEE디바이스는, 어플리케이션 프로그램을 구성하는 DEX파일형태의 보안관련 모듈 중 특정모듈이 분리된 어플리케이션 프로그램이 설치되고,
    상기 TEE관리서버는, 상기 어플리이케이션 프로그램에서 분리된 DEX파일 형태의 특정모듈을 암호화하여 저장하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템
  14. 청구항 13에 있어서, 상기 TEE디바이스는,
    상기 특정모듈이 분리된 어플리케이션 프로그램을 실행시키는 경우에 상기 암호화된 특정모듈을 TEE관리서버로부터 수신하여 보안운영체제가 관리하는 보안영역에서 복호화한 다음 상기 복호화된 특정모듈에 의한 보안관련 동작을 수행하는 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템
  15. 제 14 항에 있어서,
    상기 특정모듈은 어플리케이션의 위변조를 검증하는 클래스를 포함하는 덱스(dex)파일 형태로 구성되고,
    상기 특정모듈에 의한 보안관련 동작은, 상기 TEE디바이스의 어플리케이션 프로그램의 특정 해쉬 값을 상기 TEE관리서버에 미리 저장된 특정 해쉬값과 비교함으로써 트러스티드 실행 환경 기반에서 어플리케이션 프로그램의 위변조유무를 확인하는 과정인 것을 특징으로 하는 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 시스템
KR1020150173339A 2015-12-07 2015-12-07 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템 KR101756978B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150173339A KR101756978B1 (ko) 2015-12-07 2015-12-07 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150173339A KR101756978B1 (ko) 2015-12-07 2015-12-07 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170067003A true KR20170067003A (ko) 2017-06-15
KR101756978B1 KR101756978B1 (ko) 2017-07-11

Family

ID=59217359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150173339A KR101756978B1 (ko) 2015-12-07 2015-12-07 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101756978B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190046022A (ko) 2017-10-25 2019-05-07 이화여자대학교 산학협력단 의료 엔터프라이즈 애플리케이션에 대한 검증 방법 및 시스템
WO2019098790A1 (ko) * 2017-11-20 2019-05-23 삼성전자 주식회사 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
KR102031248B1 (ko) * 2019-01-14 2019-10-11 충남대학교산학협력단 보안 모듈을 이용한 실행 환경의 안전성 검증 방법
CN111881459A (zh) * 2020-08-03 2020-11-03 沈阳谦川科技有限公司 一种基于可信运算环境的设备风险控管***及检测方法
CN112364374A (zh) * 2020-11-04 2021-02-12 沈阳通用软件有限公司 Linux平台上文件复制、移动、压缩、解压操作识别方法
CN112446033A (zh) * 2020-12-11 2021-03-05 中国科学院信息工程研究所 软件可信启动方法、装置、电子设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111740824B (zh) * 2020-07-17 2020-11-17 支付宝(杭州)信息技术有限公司 可信应用管理方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190046022A (ko) 2017-10-25 2019-05-07 이화여자대학교 산학협력단 의료 엔터프라이즈 애플리케이션에 대한 검증 방법 및 시스템
WO2019098790A1 (ko) * 2017-11-20 2019-05-23 삼성전자 주식회사 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
US11347897B2 (en) 2017-11-20 2022-05-31 Samsung Electronics Co., Ltd. Electronic device and method for transmitting and receiving data on the basis of security operating system in electronic device
KR102031248B1 (ko) * 2019-01-14 2019-10-11 충남대학교산학협력단 보안 모듈을 이용한 실행 환경의 안전성 검증 방법
WO2020149440A1 (ko) * 2019-01-14 2020-07-23 충남대학교산학협력단 보안 모듈을 이용한 실행 환경의 안전성 검증 방법
CN111881459A (zh) * 2020-08-03 2020-11-03 沈阳谦川科技有限公司 一种基于可信运算环境的设备风险控管***及检测方法
CN111881459B (zh) * 2020-08-03 2024-04-05 沈阳谦川科技有限公司 一种基于可信运算环境的设备风险控管***及检测方法
CN112364374A (zh) * 2020-11-04 2021-02-12 沈阳通用软件有限公司 Linux平台上文件复制、移动、压缩、解压操作识别方法
CN112446033A (zh) * 2020-12-11 2021-03-05 中国科学院信息工程研究所 软件可信启动方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
KR101756978B1 (ko) 2017-07-11

Similar Documents

Publication Publication Date Title
KR101756978B1 (ko) 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템
KR101000191B1 (ko) 보안 소프트웨어 갱신
JP4971466B2 (ja) コンピューティング・デバイスの安全なブート
US8150039B2 (en) Single security model in booting a computing device
JP5852265B2 (ja) 計算装置、コンピュータプログラム及びアクセス許否判定方法
JP5821034B2 (ja) 情報処理装置、仮想マシン生成方法及びアプリ配信システム
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
CN106295255B (zh) 应用程序的加固方法和装置
US20100229242A1 (en) Program execution control system, program execution control method and computer program for program execution control
US20080168275A1 (en) Securely Recovering a Computing Device
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
US20070039054A1 (en) Computing system feature activation mechanism
CN103577206A (zh) 一种应用软件的安装方法和装置
JP2009070408A (ja) 情報処理装置
US9344406B2 (en) Information processing device, information processing method, and computer program product
JP6199712B2 (ja) 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
JP2019008592A (ja) セキュアエレメント、コンピュータプログラム、デバイス、os起動システム及びos起動方法
CN110837643B (zh) 一种可信执行环境的激活方法和装置
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
US20200151365A1 (en) Method for managing an instance of a class
US10318766B2 (en) Method for the secured recording of data, corresponding device and program
JP2009169868A (ja) 記憶領域アクセス装置及び記憶領域のアクセス方法
WO2010023683A2 (en) A method and system for client data security
JP6322961B2 (ja) アプリケーションプログラムおよびその実行方法

Legal Events

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