KR20180071679A - 사용자 단말 장치 및 그의 제어 방법 - Google Patents

사용자 단말 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20180071679A
KR20180071679A KR1020160174578A KR20160174578A KR20180071679A KR 20180071679 A KR20180071679 A KR 20180071679A KR 1020160174578 A KR1020160174578 A KR 1020160174578A KR 20160174578 A KR20160174578 A KR 20160174578A KR 20180071679 A KR20180071679 A KR 20180071679A
Authority
KR
South Korea
Prior art keywords
server
logic
user terminal
execution
application
Prior art date
Application number
KR1020160174578A
Other languages
English (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 KR1020160174578A priority Critical patent/KR20180071679A/ko
Priority to PCT/KR2017/015071 priority patent/WO2018117617A1/ko
Priority to US16/467,184 priority patent/US11245694B2/en
Publication of KR20180071679A publication Critical patent/KR20180071679A/ko

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • 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/45Structures or tools for the administration of authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • 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/725Cordless telephones
    • H04M1/72522
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/40Security arrangements using identity modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/34Microprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/06Details of telephonic subscriber devices including a wireless LAN interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys

Abstract

사용자 단말 장치 및 그의 제어 방법에 제공된다. 본 개시의 일 실시 예에 따른 사용자 단말 장치는, 서버와 통신하는 통신부, 어플리케이션이 저장된 메모리 및 보안 처리가 필요한 제1 로직을 포함하는 어플리케이션을 실행하고, 서버와 상호 검증하며, 서버에서 제1 로직이 실행되도록 서버에 요청하도록 통신부를 제어하고, 서버로부터 실행 결과가 수신되면, 수신된 실행 결과를 이용하여 어플리케이션의 실행을 계속하는 프로세서를 포함할 수 있다.

Description

사용자 단말 장치 및 그의 제어 방법{USER TERMINAL APPARATUS AND CONTROLLING METHOD OF THEREOF}
본 개시는 사용자 단말 장치 및 그의 제어 방법에 관한 것으로, 더욱 구체적으로는, 저사양의 사용자 단말 장치에서도 클라우드 기반으로 보안 실행 환경을 사용할 수 있는 사용자 단말 장치 및 그의 제어 방법에 관한 것입니다.
IT 기술의 발전으로 인하여, 사용자 단말 장치를 통해 실행할 수 있는 서비스의 종류가 늘어나고 있다. 또한, 개인 정보, 금융 정보, 저작권 정보 등 보호하여야 할 정보를 이용하는 서비스 또한 증가하고 있다. 이에 따라, 중요한 정보에 대한 보안 처리 요구 역시 증가하고 있다.
소프트웨어에만 의존한 보안 솔루션의 경우 최고 권한을 가진 소프트웨어(또는 커널)이 공격당하면, 모든 권한 및 데이터가 노출된다는 문제점이 존재한다. 이러한 점을 보완하기 위하여 하드웨어 기반으로 보안 실행 환경을 제공하는 방법이 제안되었다.
하드웨어 기반의 보안 실행 환경은 분리된 실행 환경을 제공하며, 커널이 공격당하더라도 안전을 보장할 수 있다는 장점을 갖는다. 하지만, 하드웨어 기반의 보안 실행 환경을 구축하기 위해서는 사용자 단말 장치가 고사양이어야 하고, 생산 비용이 증가한다는 문제점이 존재한다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 저사양의 사용자 단말 장치에서도 하드웨어 추가 없이 보안 실행 환경을 제공하여, 보안이 중요한 서비스를 이용할 수 있는 사용자 단말 장치 및 그의 제어 방법을 제공함을 목적으로 한다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 사용자 단말 장치는, 서버와 통신하는 통신부, 어플리케이션이 저장된 메모리 및 보안 처리가 필요한 제1 로직을 포함하는 상기 어플리케이션을 실행하고, 상기 서버와 상호 검증하며, 상기 서버에서 상기 제1 로직이 실행되도록 상기 서버에 요청하도록 상기 통신부를 제어하고, 상기 서버로부터 실행 결과가 수신되면, 상기 수신된 실행 결과를 이용하여 상기 어플리케이션의 실행을 계속하는 프로세서를 포함할 수 있다.
그리고, 상기 제1 로직은 상기 어플리케이션에 포함된 보안 처리가 불필요한 제2 로직의 해쉬 값을 포함하고, 상기 서버는 상기 제2 로직의 해쉬 값과 상기 사용자 단말 장치에서 측정된 해쉬 값을 비교하여 상기 사용자 단말 장치를 검증하고, 상기 프로세서는, 상기 제2 로직의 해쉬 값을 측정하고, 상기 측정된 해쉬 값을 서버에 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 프로세서는, 인증서를 이용하여 상기 서버를 검증하고, 상기 검증된 서버와의 사이에 보안 채널을 형성하도록 상기 통신부를 제어할 수 있다.
그리고, 상기 서버와 클라우드 네트워크를 형성하는 제2 서버는 상기 서버가 검증되면 제1 난스를 해쉬 연산한 제1 비밀 값을 상기 서버로 전송하고, 상기 서버는 상기 제1 비밀 값 및 제2 난스를 함께 해쉬 연산하여 제2 비밀 값을 생성하고, 상기 프로세서는, 상기 제2 서버에 제1 난스(nonce)를 전송하도록 상기 통신부를 제어하고, 상기 서버에 제2 난스(nonce)를 전송하도록 상기 통신부를 제어하며, 상기 생성된 제2 비밀 값이 상기 서버로부터 수신되면, 상기 제1 난스 및 상기 제2 난스를 이용하여 상기 서버를 검증할 수 있다.
또한, 상기 어플리케이션은, 소스 코드들을 보안 처리 필요 여부에 따라 이진 처리되어 생성될 수 있다.
그리고, 상기 서버는 보안 칩을 이용하여 상기 제1 로직을 실행할 수 있다.
또한, 상기 프로세서는, 상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 제1 로직을 상기 서버로 전송하고, 상기 전송된 제1 로직의 실행을 요청하도록 상기 통신부를 제어할 수 있다.
그리고, 상기 제1 로직은 상기 서버에 기설치되어 있고, 상기 프로세서는, 상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 기설치된 제1 로직의 실행을 요청하도록 상기 통신부를 제어할 수 있다.
또한, 상기 어플리케이션은 상기 제1 로직 및 보안 처리가 불필요한 제2 로직을 포함하고, 상기 프로세서는, 상기 서버에 상기 제1 로직의 실행을 요청하고 실행 결과 수신을 대기하는 동안, 상기 제2 로직을 병렬적으로 실행할 수 있다.
그리고, 사용자 명령을 입력받는 입력부를 더 포함하고, 상기 프로세서는, 상기 서버로부터 상기 제1 로직의 실행과 관련된 사용자 명령을 요청받으면, 상기 입력부를 통해 입력된 사용자 명령을 상기 서버로 전송하도록 상기 통신부를 제어할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 사용자 단말 장치의 제어 방법은, 보안 처리가 필요한 제1 로직을 포함하는 어플리케이션을 실행하는 단계, 상기 서버와 상호 검증하는 단계, 상기 서버에서 상기 제1 로직이 실행되도록 상기 서버에 요청하는 단계 및 상기 서버로부터 실행 결과가 수신되면, 상기 수신된 실행 결과를 이용하여 상기 어플리케이션의 실행을 계속하는 단계를 포함할 수 있다.
그리고, 상기 제1 로직은 상기 어플리케이션에 포함된 보안 처리가 불필요한 제2 로직의 해쉬 값을 포함하고, 상기 상호 검증하는 단계는, 상기 제2 로직의 해쉬 값을 측정하는 단계 및 상기 측정된 해쉬 값을 상기 서버로 전송하는 단계를 포함하고, 상기 서버는, 상기 제1 로직에 포함된 상기 제2 로직의 해쉬 값과 상기 측정된 해쉬 값을 비교하여 상기 사용자 단말 장치를 검증할 수 있다.
또한, 상기 상호 검증하는 단계는, 인증서를 이용하여 상기 서버를 검증하는 단계 및 상기 검증된 서버와의 사이에 보안 채널을 형성하는 단계를 포함할 수 있다.
그리고, 상기 상호 검증하는 단계는, 상기 서버와 클라우드 네트워크를 형성하는 제2 서버에 제1 난스(nonce)를 전송하는 단계, 상기 서버에 제2 난스(nonce)를 전송하는 단계 및 제2 비밀 값이 상기 서버로부터 수신되면, 상기 제1 난스 및 상기 제2 난스를 이용하여 상기 서버를 검증하는 단계를 포함하고, 상기 제2 서버는 상기 서버가 검증되면, 상기 제1 난스를 해쉬 연산한 제1 비밀 값을 상기 서버로 전송하고, 상기 서버는 상기 제1 비밀 값 및 상기 제2 난스를 함께 해쉬 연산하여 상기 제2 비밀 값을 생성할 수 있다.
또한, 상기 어플리케이션은, 소스 코드들을 보안 처리 필요 여부에 따라 이진 처리되어 생성될 수 있다.
그리고, 상기 서버는 보안 칩을 이용하여 상기 제1 로직을 실행할 수 있다.
또한, 상기 요청하는 단계는, 상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 제1 로직을 상기 서버로 전송하는 단계 및 상기 전송된 제1 로직의 실행을 요청하는 단계를 포함할 수 있다.
그리고, 상기 제1 로직은 상기 서버에 기설치되어 있고, 상기 요청하는 단계는, 상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 기설치된 제1 로직의 실행을 요청할 수 있다.
또한, 상기 어플리케이션은 상기 제1 로직 및 보안 처리가 불필요한 제2 로직을 포함하고, 상기 서버에 상기 제1 로직의 실행을 요청하고 실행 결과 수신을 대기하는 동안, 상기 제2 로직을 병렬적으로 실행하는 단계를 더 포함할 수 있다.
그리고, 상기 서버로부터 상기 제1 로직의 실행과 관련된 사용자 명령을 요청받으면, 사용자 명령을 입력받아 상기 서버로 전송하는 단계를 더 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 하드웨어 기반의 보안 실행 환경이 없는 저사양의 사용자 단말 장치에서도 보안 실행 환경을 제공할 수 있다. 그리고 사용자 단말 장치와 서버간의 상호 검증을 통해 클라우드 환경을 이용하면서도 안정성을 보장할 수 있다. 또한, 사용자 단말 장치 각각의 성능에 무관하게 일정 수준 이상의 보안성을 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 보안 실행 환경 시스템을 도시한 개념도,
도 2는 본 개시의 일 실시 예에 따른 사용자 단말 장치의 구성을 개략적으로 도시한 블록도,
도 3은 본 개시의 일 실시 예에 따른 사용자 단말 장치의 구성을 상세히 도시한 블록도,
도 4a 및 도 4b는 어플리케이션의 로직 구성을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 보안 실행 환경 시스템의 동작을 설명하기 위한 도면,
도 6은 본 개시의 다른 실시 예에 따른 보안 실행 환경 시스템의 동작을 설명하기 위한 도면,
도 7은 본 개시의 일 실시 예에 따른 사용자 단말 장치와 서버의 상호 검증 동작을 설명하기 위한 도면,
도 8은 본 개시의 다른 실시 예에 따른 사용자 단말 장치와 서버의 상호 검증 동작을 설명하기 위한 도면,
도 9는 복수의 서버를 이용한 사용자 단말 장치의 서버 검증 동작을 설명하기 위한 도면,
도 10 및 도 11은 본 개시의 다양한 실시 예에 따른 보안 실행 환경 시스템의 동작을 설명하기 위한 시퀀스도, 그리고,
도 12는 본 개시의 일 실시 예에 따른 서버와 연동하는 사용자 단말 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 본 개시의 바람직한 실시 예가 첨부된 도면을 참조하여 상세히 설명한다. 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 명세서에서 사용한 용어는 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 숫자, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 또는 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
이하에서는 첨부된 도면을 이용하여 본 개시에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 보안 실행 환경 시스템(Trusted Execution Environment System, TEE System, 1000)을 도시한 개념도이다. 도 1을 참조하면, 보안 실행 환경 시스템(1000)은 사용자 단말 장치(100) 및 서버(200)를 포함할 수 있다.
사용자 단말 장치(100)는 하드웨어 기반의 보안 실행 환경을 제공하지 않는 전자 장치일 수 있다. 예를 들어, 사용자 단말 장치(100)는 스마트폰, 웨어러블 장치, PC, 타블렛, IoT 장치 등 다양한 장치로 구현될 수 있다.
설명의 편의를 위하여 사용자 단말 장치(100)는 저사양의 장치인 것으로 가정하여 설명하나, 하드웨어 기반의 보안 실행 환경이 존재하는 장치의 경우도 본 개시에서 말하는 사용자 단말 장치(100)일 수 있다. 하드웨어 기반의 보안 실행 환경이 존재하더라도, 사용자 단말 장치(100)는 추가적인 보안 실행 환경을 제공받기 위하여 서버(200)와 연동할 수 있다.
서버(200)는 하드웨어 기반의 보안 실행 환경을 포함할 수 있다. 도 1의 실시 예에서 서버(200)는 단일 서버 장치로 도시되었으나, 서버(200)는 클라우드 네트워크에 포함된 복수의 서버 장치로 구성될 수도 있다. 서버(200)에는 어플리케이션 등이 설치되어 웹 기반의 소프트웨어 서비스가 사용자에게 제공될 수 있다.
어플리케이션 개발 단계에서, 소스 코드 중 보안적으로 중요한 부분은 크리티컬 로직으로 분류되고, 나머지 부분은 논크리티컬 로직으로 분류될 수 있다. 컴파일러는 크리티컬 로직과 논크리티컬 로직으로 구분된 이진 로직 구조를 갖는 어플리케이션을 생성할 수 있다.
예를 들어, 사용자 단말 장치(100)가 결재 서비스를 제공하는 경우에, 결재 서비스를 제공하는 어플리케이션은 크리티컬 로직과 논크리티컬 로직으로 구성될 수 있다. 계좌번호, 비밀번호, 생체정보를 이용한 결재 승인 로직은 보안이 요구되는 크리티컬 로직일 수 있다. 그리고 사용자에게 결재 결과를 표시하는 로직은 보안이 반드시 필요하지 않은 논크리티컬 로직일 수 있다.
다른 예로, 사용자 단말 장치(100)가 영상 재생 서비스를 제공하는 경우, 영상 재생 서비스를 제공하는 어플리케이션 역시 크리티컬 로직과 논크리티컬 로직으로 구성될 수 있다. 디지털 권리 관리(Digital Rights Management, DRM)과 관련된 로직은 크리티컬 로직일 수 있다. 그리고 영상 신호를 처리하여 재생하는 로직은 논크리티컬 로직일 수 있다.
사용자 단말 장치(100)는 어플리케이션의 로직 구조 중 보안적으로 중요한 부분이 아닌 논크리티컬 로직을 실행할 수 있다. 그리고 서버(200)는 보안적으로 중요한 크리티컬 로직을 실행할 수 있다. 예를 들어, 사용자 단말 장치(100)는 크리티컬 로직을 서버(200)로 전송하여 보안 실행 환경(TEE)에서 크리티컬 로직이 실행되도록 할 수 있다. 다른 예로, 사용자 단말 장치(100)에는 논크리티컬 로직만이 설치되고, 크리티컬 로직은 서버(200)에 설치될 수 있다. 사용자 단말 장치(100)는 크리티컬 로직에 대한 실행 요청을 서버(200)로 전송하고, 서버(200)는 보안 실행 환경(TEE)에서 크리티컬 로직을 실행할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 사용자 단말 장치(100)의 구성을 개략적으로 도시한 블록도이다. 도 2를 참조하면, 사용자 단말 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다.
통신부(110)는 서버(200)와 통신할 수 있다. 예를 들어, 통신부(110)는 서버(200)와 보안 채널을 형성하고, 형성된 보안 채널을 통해 데이터, 제어 신호 등을 송수신할 수 있다.
통신부(110)는 서버(200)로 보안 처리가 필요한 크리티컬 로직, 크리티컬 로직 실행 요청, 논크리티컬 로직의 해쉬 값 등을 송신할 수 있다. 그리고 통신부(110)는 서버(200)로부터 크리티컬 로직의 실행 결과 등을 수신할 수 있다.
메모리(120)는 사용자에게 다양한 서비스를 제공할 수 있는 복수의 어플리케이션을 저장할 수 있다.
프로세서(130)는 메모리(120)에 저장된 어플리케이션을 실행할 수 있다. 예를 들어, 어플리케이션은 보안 처리를 요하는 크리티컬 로직과 보안 처리 여부에 무관한 논크리티컬 로직으로 구성될수 있다.
어플리케이션 실행 도중 크리티컬 로직에 대한 실행이 필요하면, 프로세서(130)는 서버(200)와 상호 검증을 수행할 수 있다. 크리티컬 로직을 서버(200)를 통해 실행해야 하기 때문에, 크리티컬 로직 실행 전에 사용자 단말 장치(100) 및 서버(200)는 신뢰할 수 있는 장치인지 여부를 상호 검증할 수 있다.
예를 들어, 사용자 단말 장치(100)는 인증서를 이용하여 서버(200)를 검증할 수 있다. 또한, 사용자 단말 장치(100)는 서버(200)와 동일한 클라우드 네트워크에 속하는 제2 서버(300)를 이용하여 서버(200)를 검증할 수도 있다.
예를 들어, 서버(200)는 논크리티컬 로직을 해쉬 연산한 해쉬 값을 이용하여 사용자 단말 장치(100)를 검증할 수 있다. 어플리케이션의 제작 단계에서 논크리티컬 로직의 해쉬 값은 크리티컬 로직에 포함될 수 있다. 서버(200)는 크리티컬 로직에 포함된 해쉬 값과, 사용자 단말 장치(100)가 측정하여 전송한 해쉬 값을 비교하여 사용자 단말 장치(100)가 신뢰할 수 있는 장치인지를 검증할 수 있다.
사용자 단말 장치(100) 및 서버(200)의 상호 검증이 완료되면, 프로세서(130)는 크리티컬 로직에 대한 실행 요청을 서버(200)로 전송하도록 통신부(110)를 제어할 수 있다. 예를 들어, 서버(200)로 전송되는 실행 요청에는 실행 요청 신호만이 포함될 수도 있고, 실행 요청 신호와 실행하고자 하는 크리티컬 로직이 함께 포함될 수도 있다. 서버(200)는 크리티컬 로직을 실행하고, 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
크리티컬 로직의 실행 결과가 수신되면, 프로세서(130)는 수신된 크리티컬 로직의 실행 결과를 이용하여 나머지 논크리티컬 로직을 실행할 수 있다. 만일 크리티컬 로직의 결과와 관계없이 실행될 수 있는 논크리티컬 로직이 존재하면, 프로세서(130)는 크리티컬 로직에 대한 실행 요청 및 실행 결과 수신이 이루어지는 동안 병렬적으로 논크리티컬 로직을 실행할 수도 있다.
이와 같이, 프로세서(130)는 어플리케이션 실행 도중 보안이 필요한 부분은 서버(200)의 보안 실행 환경(TEE)에서 실행되도록 하고, 나머지 부분은 스스로 실행할 수 있다. 따라서, 프로세서(130)가 저사양의 장치(예를 들어, 저사양 CPU)로 구현되는 경우에도 하드웨어 기반의 보안 실행 환경(TEE)를 이용할 수 있다는 장점을 갖는다. 또한, 프로세서(130)는 서버(200)와의 상호 검증을 통해 안전성, 비밀성을 보장할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 사용자 단말 장치(100)의 구성을 상세히 도시한 블록도이다. 도 3을 참조하면, 사용자 단말 장치(100)는 통신부(110), 메모리(120), 프로세서(130), 입력부(140), 디스플레이(150), 오디오 출력부(160)를 포함할 수 있다. 도 3의 실시 예에 도시된 구성 요소 이외에도 사용자 단말 장치(100)는 영상 수신부(미도시), 영상 처리부(미도시), 전원부(미도시) 등 다양한 구성을 포함할 수 있다. 또한, 사용자 단말 장치(100)는 반드시 도 3에 도시된 구성을 모두 포함하여 구현되는 것으로 한정되지 않음은 물론이다.
통신부(110)는 서버(200)와 같은 외부 장치와 통신을 수행할 수 있다. 통신부(110)는 외부 장치와 어플리케이션의 로직, 제어 신호, 데이터 등을 송수신할 수 있다. 통신부(110)는 인증서를 이용하여 서버를 검증하고, 보안 연결(Secure Connection) 프로토콜을 통하여 서버(200)와의 사이에 보안 채널을 형성할 수 있다. 예를 들어, 통신부(110)는 서버(200)와 세션 식별자, 암호 설정 등의 정보를 교환할 수 있다. 통신부(110)는 서버(200)의 인증서를 검증하고, 인증서에 포함된 공개 키를 이용하여 세션 키를 생성할 수 있다. 서버(200) 또한 통신부(110)에서 송신한 정보를 이용하여 세션 키를 생성할 수 있다. 사용자 단말 장치(100)와 서버(200)가 동일한 세션 키를 가지고 있으므로, 통신부(110)는 대칭 키 암호를 사용하는 보안 통신 채널을 생성할 수 있다.
이를 위해, 통신부(110)는 근거리 무선 통신 모듈(미도시), 무선 통신 모듈(미도시) 등과 같은 다양한 통신 모듈을 포함할 수 있다. 여기에서, 근거리 무선 통신 모듈이란 블루투스(Bluetooth), 지그비(Zigbee) 등과 같은 근거리 무선 통신 방식에 따라, 근거리에 위치한 외부 기기와 통신을 수행하기 위한 모듈이다. 또한, 무선 통신 모듈이란 WiFi, WiFi direct, IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 통신을 수행하는 모듈이다. 이 밖에 무선 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution), LTE-A(LTE Advanced) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있다.
또한, 통신부(110)는 유선 통신 방식에 따라 외부 장치와 통신을 수행할 수도 있다. 예를 들어, 통신부(110)는 유선 통신 방식으로 유선 통신 방식으로 HDMI(High Definition Multimedia Interface), LVDS(Low Voltage Differential Signaling), LAN(Local Area Network) 등을 이용할 수 있다.
메모리(120)는 사용자 단말 장치(100)를 구동하기 위한 다양한 모듈, 소프트웨어, 어플리케이션, 데이터를 저장할 수 있다. 예를 들어, 메모리(120)에는 보안 처리 필요 여부에 따라 이진 구조로 생성된 어플리케이션이 저장될 수 있다.
메모리(120)는 사용자 단말 장치(100)를 동작시키기 위해 필요한 각종 프로그램 등이 저장되는 저장매체로서, 플래쉬 메모리, HDD(Hard Disk Drive), SSD (Solid State Drive) 등의 형태로 구현 가능하다. 예를 들어, 메모리(120)는 사용자 단말 장치(100)의 동작 수행을 위한 프로그램을 저장하기 위한 ROM, 사용자 단말 장치(100)의 동작 수행에 따른 데이터를 일시적으로 저장하기 위한 RAM을 구비할 수 있다.
입력부(140)는 사용자 단말 장치(100)를 제어하기 위한 다양한 사용자 명령을 입력받는다. 예를 들어, 어플리케이션 실행 도중 메뉴 선택, 실행 확인과 같은 사용자 명령이 입력되어야 하는 경우, 사용자 단말 장치(100)는 입력부(140)를 통해 사용자 명령을 입력받을 수 있다. 다른 예로, 서버(200)로부터 사용자 명령이 요청되면, 프로세서(130)는 입력부(140)를 통해 입력된 사용자 명령을 서버(200)로 송신하도록 통신부(110)를 제어할 수 있다.
입력부(140)는 버튼, 모션 인식 장치, 음성 인식 장치, 터치 패드 등으로 구현될 수 있다. 입력부(140)가 터치 패드로 구현되는 경우, 디스플레이(150)와 결합하여 상호 레이어 구조를 이루는 터치 스크린의 형태로 구현될 수 있다. 터치 스크린은 터치 입력 위치, 면적, 터치 입력의 압력 등을 검출할 수 있다.
디스플레이(150)는 사용자 단말 장치(100)에서 제공되는 어플리케이션 실행 결과, 정보, UI, 컨텐츠 등을 표시할 수 있다. 예를 들어, 디스플레이(150)는 어플리케이션의 실행 화면을 표시할 수 있다.
디스플레이(150)는 액정 표시 장치(Liquid Crystal Display, LCD), 유기 전기 발광 다이오드(Organic Light Emitting Display, OLED) 또는 플라즈마 표시 패널(Plasma Display Panel, PDP) 등으로 구현되어, 사용자 단말 장치(100)를 통해 제공 가능한 다양한 화면을 표시할 수 있다. 또한, 디스플레이(150)는 평면 디스플레이뿐 아니라 곡면 디스플레이, 플렉서블 디스플레이와 같은 다양한 형태로 구현될 수 있다.
오디오 출력부(160) 음성을 출력할 수 있다. 예를 들어, 오디오 출력부(160)는 각종 오디오 데이터뿐만 아니라 어플리케이션 실행 결과, 알림 음, 음성 메시지등을 출력할 수 있다. 본 발명의 일 실시 예에 따른 사용자 단말 장치(100)가 대화형 음성 인식 기능을 제공하는 경우, 오디오 출력부(160)는 디스플레이(150)와 함께 기능 실행 결과를 출력하기 위한 구성으로 이용될 수 있다. 오디오 출력부(160)는 사용자 단말 장치(100)에 내장될 수도 있으며, 잭 등과 같은 출력 포트의 형태로 구현될 수도 있다.
프로세서(130)는 사용자 단말 장치(100)의 상술한 구성들을 제어할 수 있다. 예를 들어, 프로세서(130)는 크리티컬 로직의 실행이 필요하면 서버(200)에 크리티컬 로직에 대한 실행 요청을 전송하도록 통신부(110)를 제어할 수 있다.
프로세서(130)는 단일 CPU로 구현되어 어플리케이션 중 논크리티컬 로직 실행, 크리티컬 로직에 대한 실행 요청, 서버(200) 검증 등을 수행할 수도 있고, 복수의 프로세서 및 특정 기능을 수행하는 IP로 구현될 수도 있다.
어플리케이션 실행 중 보안 처리되어야 할 크리티컬 로직이 실행되어야 하는 경우, 프로세서(130)는 보안 처리되어야 할 로직이 서버(200)가 제공하는 보안 실행 환경(TEE)에서 실행되도록 할 수 있다. 반대로, 보안 처리가 반드시 필요하지 않은 논크리티컬 로직이 실행되어야 하는 경우, 프로세서(130)는 직접 논크리티컬 로직을 실행할 수 있다.
서버(200)에 크리티컬 로직을 실행할 것을 요청하기 전, 프로세서(130)는 서버(200)를 검증함으로써 안전성을 확보할 수 있다. 서버(200) 역시 사용자 단말 장치(100)를 검증할 수 있다. 즉, 사용자 단말 장치(100)와 서버(200)는 상호 검증을 수행하여 안정성, 비밀성을 확보할 수 있다.
예를 들어, 프로세서(130)는 인증서(Certification)을 이용하여 서버(200)를 검증할 수 있다. 인증서는 사용자 단말 장치(100)가 접속한 서버(200)가 사용자 단말 장치(100)에서 접속하고자 의도한 서버가 맞는지 보장하는 역할을 한다. 인증서를 이용하여, 프로세서(130)는 서버(200)와 보안 연결(Secure Connection)을 구축할 수 있다.
다른 예로, 프로세서(130)는 크리티컬 로직 실행을 요청할 서버(200)와 동일 클라우드 네트워크에 포함된 제2 서버(300)를 이용하여 서버(200)를 검증할 수도 있다. 프로세서(130)는 서버(200)와 제2 서버(300)에 각각 상이한 난스(nonce)를 전송하도록 통신부(110)를 제어할 수 있다. 난스(nonce)란 일회 사용 숫자(number used once)를 의미하는 유일하고 랜덤한 스트링 데이터를 말한다. 제2 서버(300)는 동일 클라우드 네트워크에 속하는 서버(200)를 검증할 수 있다. 서버(200)에 대한 검증이 완료되면, 제2 서버(300)는 사용자 단말 장치(100)로부터 수신한 난스를 해쉬 연산 처리한 해쉬 값을 서버(200)로 전송할 수 있다. 서버(200)는 사용자 단말 장치로부터 수신한 난스와 제2 서버(300)에서 수신한 해쉬 값을 함께 해쉬 연산하고, 연산 처리된 해쉬 값을 사용자 단말 장치(100)로 전송할 수 있다. 프로세서(130)는 서버(200)로부터 수신한 해쉬 값을 통해 서버(200)를 검증할 수 있다.
사용자 단말 장치(100)에서 서버(200)를 검증하는 방법으로 예시한 두 가지 방법은 선택적으로 사용될 수도 있고, 두 방법이 함께 사용될 수도 있다.
서버(200) 역시 사용자 단말 장치(100)를 검증할 수 있다. 예를 들어, 크리티컬 로직은 논크리티컬 로직에 대한 무결성(integrity) 값을 포함할 수 있다. 논크리티컬 로직에 대한 무결성은 논크리티컬 로직을 해쉬 연산 처리한 해쉬 값일 수 있다. 사용자 단말 장치(100)는 저장된 논크리티컬 로직을 해쉬 연산 처리한 측정된 무결성(Measured Integrity) 값을 서버(200)로 전송할 수 있다. 서버(200)는 수신하거나 저장된 크리티컬 로직에 포함된 논크리티컬 로직에 대한 무결성 값과, 사용자 단말 장치(100)로부터 수신된 측정된 무결성 값을 비교하여 사용자 단말 장치(100)를 검증할 수 있다.
더욱 구체적인 클라우드를 이용한 보안 실행 환경을 이용하는 방법 및 사용자 단말 장치(100)와 서버(200)의 상호 검증 방법에 대해서는 이하에서 도면을 참고하여 다시 설명하기로 한다.
도 4a 및 도 4b는 어플리케이션 개발 단계에서의 로직 구성을 설명하기 위한 도면이다. 도 4a를 참조하면, 개발자는 어플리케이션에 대한 소스 코드(410)를 작성할 수 있다. 이때 소스 코드(410) 중 보안적으로 중요한 부분에는 크리티컬 로직임을 알리는 표시를 추가할 수 있다. 컴파일러(420)는 소스 코드를 컴파일하여 어플리케이션 파일을 생성할 수 있다. 컴파일러(420)는 소스 코드에 포함된 표시를 이용하여 크리티컬 로직(430)과 논크리티컬 로직(440)으로 이진적으로 구분된 어플리케이션을 생성할 수 있다. 즉, 어플리케이션은 소스 코드들을 보안 처리가 필요한지 여부에 따라 이진 처리하여 생성된 프로그램일 수 있다.
도 4b는 서버(200)가 사용자 단말 장치(100)를 검증할 수 있도록 크리티컬 로직(430)을 구성한 것을 설명하기 위한 도면이다. 크리티컬 로직(430)에 포함된 무결성 값(Integrity, 450)은 논크리티컬 로직(440)에 대한 무결성 값이다. 예를 들어, 무결성 값은 해쉬 연산을 통해 계산될 수 있다.
서버(200)에서 실행되는 크리티컬 로직(430)에 사용자 단말 장치(100)에서 실행되는 논크리티컬 로직(440)에 대한 무결성 값(450)을 포함하기 때문에, 서버(200)는 사용자 단말 장치(100)를 검증할 수 있다. 구체적인 내용은 이하에서 다시 설명하기로 한다.
도 5는 본 개시의 일 실시 예에 따른 보안 실행 환경 시스템(1000)의 동작을 설명하기 위한 도면이다. 보안 실행 환경 시스템(1000)은 사용자 단말 장치(100) 및 서버(200)를 포함할 수 있다. 도 5에 도시된 실시 예에서, 크리티컬 로직(430) 및 논크리티컬 로직(440)은 모두 사용자 단말 장치(100)에 설치될 수 있다. 사용자 단말 장치(100)는 하드웨어 기반으로 보안 실행 환경(TEE)를 제공할 수 없는 저사양 장치일 수 있으며, 서버(200)는 보안 칩과 같은 하드웨어를 이용하여 보안 실행 환경을 제공할 수 있는 장치일 수 있다.
어플리케이션 실행 도중에 크리티컬 로직(430)의 실행이 필요하면, 사용자 단말 장치(100)는 서버(200)의 크리티컬 로직(430)을 전송할 수 있다. 서버(200)는 수신된 크리티컬 로직(430)을 보안 실행 환경에서 실행할 수 있다. 그리고 서버(200)는 크리티컬 로직(430)의 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
도 6은 본 개시의 다른 실시 예에 따른 보안 실행 환경 시스템(1000)의 동작을 설명하기 위한 도면이다. 보안 실행 환경 시스템(1000)은 사용자 단말 장치(100) 및 서버(200)를 포함할 수 있다. 사용자 단말 장치(100)는 하드웨어 기반으로 보안 실행 환경(TEE)를 제공할 수 없는 저사양 장치일 수 있으며, 서버(200)는 보안 칩과 같은 하드웨어를 이용하여 보안 실행 환경을 제공할 수 있는 장치일 수 있다.
도 6에 도시된 실시 예에서, 논크리티컬 로직(440)은 사용자 단말 장치(100)에 설치될 수 있다. 그리고 크리티컬 로직(430)은 서버(200)에 설치될 수 있다. 개발자는 어플리케이션을 배포하면서 크리티컬 로직(430)은 클라우드 기반으로만 실행되도록 서버(200)에 등록할 수 있다. 그리고 개발자는 논크리티컬 로직(440)만이 포함된 어플리케이션을 일반 사용자에게 배포할 수 있다. 즉, 도 6의 실시 예에 따른 사용자 단말 장치(100)에는 원천적으로 보안 처리가 필요한 로직이 설치되지 않는다는 특징을 갖는다.
어플리케이션 실행 도중에 크리티컬 로직(430)의 실행이 필요하면, 사용자 단말 장치(100)는 서버(200)의 크리티컬 로직(430)의 실행을 요청할 수 있다. 실행 요청을 수신한 서버(200)는 기설치된 크리티컬 로직(430)을 보안 실행 환경에서 실행할 수 있다. 그리고 서버(200)는 크리티컬 로직(430)의 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 사용자 단말 장치(100)와 서버(200)의 상호 검증 동작을 설명하기 위한 도면이다. 도 7에 도시된 보안 실행 시스템(1000)의 실시 예는 도 5에 도시된 보안 실행 시스템(1000)의 실시 예와 대응된다.
사용자 단말 장치(100)에는 어플리케이션의 크리티컬 로직(430), 논크리티컬 로직(440) 및 인증서(460)가 설치될 수 있다. 또한, 크리티컬 로직(430)은 논크리티컬 로직의 무결성 값(450)을 포함할 수 있다.
사용자 단말 장치(100)는 인증서(460)를 이용하여 서버(200)를 검증하고, 검증된 서버(200)와의 사이에 보안 채널을 형성할 수 있다.
어플리케이션 실행 도중 크리티컬 로직(430)의 실행이 필요하면, 사용자 단말 장치(100)는 논크리티컬 로직(440)의 무결성 값(450)이 포함된 크리티컬 로직(430)을 서버(200)로 전송할 수 있다. 그리고 사용자 단말 장치(100)는 설치된 논크리티컬 로직(440)에 대한 무결성을 측정할 수 있다. 사용자 단말 장치(100)는 크리티컬 로직(430)과 함께 측정된 무결성 값(Measured Integrity, 470)을 서버(200)로 전송할 수 있다.
예를 들어, 무결성 값은 로직을 해쉬 연산 처리하여 도출된 해쉬 값일 수 있다. 개발 단계에서 크리티컬 로직(430)에 논크리티컬 로직(440)의 해쉬 값에 해당하는 무결성 값(450)을 포함하였기 때문에, 서버(200)는 측정된 무결성 값(470)과 크리티컬 로직(430)에 포함된 무결성 값(450)을 비교하여 사용자 단말 장치(100)가 신뢰할 수 있는 장치인지 검증할 수 있다. 만일 사용자 단말 장치(100)에 설치된 논크리티컬 로직(440)이 변형 또는 손상되었다면, 변형 또는 손상된 논크리티컬 로직(440)을 해쉬 연산한 측정된 무결성 값(470)이 개발 단계에서 측정된 무결성 값(450)과 상이하게 된다.
보안 실행 환경(TEE)에서 실행하기 위하여 서버(200)에 설치 또는 전송되는 크리티컬 로직(430)에 신뢰성이 보장된 논크리티컬 로직(440)의 무결성 값(450)을 포함함으로써, 서버(200)는 사용자 단말 장치(100)를 검증할 수 있다. 만일 사용자 단말 장치(100)의 사용자가 인지하지 못하는 상태에서 해킹이 이루어지더라도, 서버(200)에서 사용자 단말 장치(100)를 검증하는바 보안을 유지할 수 있게 된다.
사용자 단말 장치(100)와 서버(200)의 상호 검증이 완료된 이후에, 서버(200)는 하드웨어 기반의 보안 실행 환경(TEE)에서 크리티컬 로직(430)을 실행할 수 있다. 그리고 서버(200)는 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
도 8은 본 개시의 다른 실시 예에 따른 사용자 단말 장치(100)와 서버(200)의 상호 검증 동작을 설명하기 위한 도면이다. 도 8에 도시된 보안 실행 시스템(1000)의 실시 예는 도 6에 도시된 보안 실행 시스템(1000)의 실시 예와 대응된다.
사용자 단말 장치(100)에는 어플리케이션의 논크리티컬 로직(440) 및 인증서(460)가 설치될 수 있다. 서버(200)에는 어플리케이션의 크리티컬 로직(430)이 설치될 수 있다. 또한, 크리티컬 로직(430)에는 논크리티컬 로직의 무결성 값(450)이 포함될 수 있다.
사용자 단말 장치(100)는 인증서(460)를 이용하여 서버(200)를 검증하고, 검증된 서버(200)와의 사이에 보안 채널을 형성할 수 있다.
사용자 단말 장치(100)는 어플리케이션을 실행할 수 있다. 사용자 단말 장치(100)에 설치된 어플리케이션은 논크리티컬 로직(440)만을 포함할 수 있다. 인증서(460)를 통해 서버(200)를 검증한 후, 사용자 단말 장치(100)는 설치된 논크리티컬 로직(440)에 대한 무결성을 측정할 수 있다.
어플리케이션 실행 도중 크리티컬 로직(430)의 실행이 필요하면, 사용자 단말 장치(100)는 서버(200)에 측정된 무결성 값(Measured Integrity, 470)을 서버(200)로 전송할 수 있다. 또한, 사용자 단말 장치(100)는 서버(200)에 크리티컬 로직(430)의 실행을 요청할 수 있다.
도 7의 실시 예에서 설명한 바와 같이, 개발 단계에서 크리티컬 로직(430)에 논크리티컬 로직(440)의 해쉬 값에 해당하는 무결성 값(450)을 포함하였기 때문에, 서버(200)는 사용자 단말 장치(100)가 측정한 무결성 값(470)과 크리티컬 로직(430)에 포함된 무결성 값(450)을 비교하여 사용자 단말 장치(100)가 신뢰할 수 있는 장치인지 검증할 수 있다.
사용자 단말 장치(100)와 서버(200)의 상호 검증이 완료된 이후에, 서버(200)는 하드웨어 기반의 보안 실행 환경(TEE)에서 기설치된 크리티컬 로직(430)을 실행할 수 있다. 그리고 서버(200)는 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
도 9는 복수의 서버를 이용한 사용자 단말 장치(100)의 서버(200) 검증 동작을 설명하기 위한 도면이다. 도 7 및 8의 실시 예에서는 사용자 단말 장치(100)가 서버(200)를 인증서(460)를 통해 검증하는 방법을 설명하였다. 도 9의 실시 예에서, 서버(200)와 제2 서버(300)는 동일 클라이드 네트워크에 속할 수 있다. 서버(200)는 하드웨어 기반의 보안 실행 환경(TEE)을 통해 사용자 단말 장치(100)에서 요청한 로직을 직접 실행하는 장치이고, 제2 서버(300)는 단순히 서버(200)와 동일 클라우드 네트워크에 속하는 장치일 수 있다. 제2 서버(300)는 사용자 단말 장치(100)가 서버(200)를 검증하는데만 이용되는 장치이며, 직접 사용자 단말 장치(100)에 보안 실행 환경을 제공하지 않는 장치이다. 물론 설명의 편의를 위하여 서버(200)와 제2 서버(300)를 구분하였을 뿐, 사용자 단말 장치(100)가 접속하는 클라우드 네트워크에 속하는 모든 서버(200, 300)는 사용자 단말 장치(100)에 보안 실행 환경을 제공할 수도 있다.
사용자 단말 장치(100)는 제2 서버(300)에 제1 난스(Nonce1, 910)를 전송할 수 있다(①). 그리고 사용자 단말 장치(100)는 보안 실행 환경을 제공할 서버(200)에 제2 난스(Nonce2, 920)를 전송할 수 있다(②). 난스(Nonce)란 유일하면서 랜덤한 스트링 데이터이기 때문에, 제1 난스와 제2 난스는 상이한 값을 갖게 된다.
보안 실행 환경을 직접 제공하지 않는 제2 서버(300)는 보안 실행 환경을 직접 제공하는 서버(200)를 검증할 수 있다(③). 서버(200)가 신뢰할 수 있는 것으로 확인되면, 제2 서버(300)는 수신한 제1 난스(Nonce1, 910)을 해쉬 연산한 해쉬 값(H(Nonce1), 930)을 서버(200)로 전송할 수 있다(④). 이때 해쉬 값(930)은 제1 비밀 값으로 불릴 수도 있다.
서버(200)는 제2 서버(300)로부터 수신한 제1 비밀 값(H(Nonce1), 930) 및 사용자 단말 장치(100)로부터 수신한 제2 난스(Nonce2, 920)를 함께 해쉬 연산할 수 있다. 그리고 서버(200)는 해쉬 연산된 제2 비밀 값(H(Nonce2, H(Nonce1)), 940)을 사용자 단말 장치(100)로 전송할 수 있다(⑤).
사용자 단말 장치(100)는 제1 난스(Nonce1, 910)과 제2 난스(Nonce2, 920)를 알고 있기 때문에, 제2 비밀 값(940)을 구하는 과정과 동일하게 해쉬 연산을 수행할 수 있다. 해쉬 연산이 수행된 해쉬 값과 서버(200)에서 수신된 제2 비밀 값(940)을 비교하여, 사용자 단말 장치(100)는 서버(200)가 신뢰할 수 있는 장치인지 검증할 수 있다.
도 9의 실시 예에 따른 사용자 단말 장치(100)의 서버(200) 검증 방법은 서버(200)와 동일 클라우드 네트워크에 속한 제2 서버(300)가 신뢰할 수 없는 경우 역시 검증할 수 있다. 따라서, 직접 보안 실행 환경을 제공하는 서버(200)뿐 아니라 서버(200)가 포함된 클라우드 네트워크를 검증할 수 있기 때문에, 사용자 단말 장치(100)는 더욱 신뢰할 수 있는 보안 환경을 사용자에게 제공할 수 있다.
도 10 및 도 11은 본 개시의 다양한 실시 예에 따른 보안 실행 환경 시스템(1000)의 동작을 설명하기 위한 시퀀스도이다.
도 10을 참조하면, 사용자 단말 장치(100)는 어플리케이션을 실행할 수 있다(S1010). 그리고 사용자 단말 장치(100)는 보안 실행 환경을 제공할 서버(200)와 서로 신뢰할 수 있는 장치인지를 검증할 수 있다(S1020). 예를 들어, 사용자 단말 장치(100)와 서버(200)는 해쉬 연산을 이용하여 서로의 신뢰성을 검증할 수 있다.
서버(200)가 신뢰할 수 있는 것으로 검증되면, 사용자 단말 장치(100)는 보안 실행 환경에서 실행되어야 하는 어플리케이션의 크리티컬 로직을 서버(200)로 전송할 수 있다(S1030). 다만, 서버(200)에 크리티컬 로직이 설치되어 있는 실시 예에서는 S1030 단계를 생략할 수 있다.
어플리케이션 실행 중 크리티컬 로직의 실행이 필요하면, 사용자 단말 장치(100)는 크리티컬 로직을 호출할 수 있다(S1040). 크리티컬 로직이 호출되면, 사용자 단말 장치(100)는 서버(200)에 크리티컬 로직을 실행할 것을 요청할 수 있다(S1050). 예를 들어, 사용자 단말 장치(100)는 서버(200)에 동기적으로 크리티컬 로직을 실행할 것을 요청할 수 있다. 이 경우 사용자 단말 장치(100)는 서버(200)에서 크리티컬 로직의 실행이 완료되기까지 대기할 수 있다. 다른 예로, 사용자 단말 장치(100)는 서버(200)에 비동기적으로 크리티컬 로직을 실행할 것을 요청할 수 있다. 이 경우 사용자 단말 장치(100)는 서버(200)가 크리티컬 로직 실행 결과를 송신하기를 대기하면서, 병렬적으로 논크리티컬 로직을 실행할 수 있다.
동기적 또는 비동기적 실행 요청을 수신한 서버(200)는 하드웨어 기반의 보안 실행 환경에서 크리티컬 로직을 실행할 수 있다(S1060). 그리고 서버(200)는 크리티컬 로직 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다(S1070). 크리티컬 로직 실행 결과가 수신되면, 사용자 단말 장치(100)는 수신된 실행 결과를 이용하여 이후의 논크리티컬 로직을 실행할 수 있다(S1080).
도 10의 실시 예에서는 설명의 편의를 위하여, 크리티컬 로직 실행을 한번 요청하는 것만이 기대되었다. 하지만, 상호 인증을 마치고 크리티컬 로직이 서버로 전송된 후의 동작은 반복 실행 가능하다. 즉, 사용자 단말 장치(100)가 서버(200)에 크리티컬 로직의 실행을 요청하고 실행 결과를 받아오는 S1040 내지 S1080 단계는 반복되어 실행될 수 있다.
도 11은 서버(200)에서 크리티컬 로직 실행 도중 사용자 명령(선택, 실행 확인 등)이 필요한 경우의 실시 예를 도시한 것이다. 도 11을 참조하면, 사용자 단말 장치(100)는 어플리케이션을 실행할 수 있다(S1105). 그리고 사용자 단말 장치(100)는 보안 실행 환경을 제공할 서버(200)와 서로 신뢰할 수 있는 장치인지를 검증할 수 있다(S1110). 보안 실행 환경 시스템(1000)은 사용자 단말 장치(100)와 서버(200)의 상호 검증 과정을 통해 더욱 안전한 보안 환경을 제공할 수 있다.
서버(200)가 신뢰할 수 있는 것으로 검증되면, 사용자 단말 장치(100)는 보안 실행 환경에서 실행되어야 하는 어플리케이션의 크리티컬 로직을 서버(200)로 전송할 수 있다(S1115). 다만, 서버(200)에 크리티컬 로직이 설치되어 있는 실시 예에서는 S1115 단계를 생략할 수 있다.
사용자 단말 장치(100)가 신뢰할 수 있는 것으로 검증되면, 서버(200) 역시 어플리케이션을 실행할 수 있다(S1120). 서버(200)에서 실행되는 어플리케이션은 크리티컬 로직을 포함하는 기설치된 어플리케이션일 수도 있고, 사용자 단말 장치(100)로부터 수신한 크리티컬 로직을 포함하는 어플리케이션일 수도 있다.
어플리케이션의 실행하면서, 서버(200)는 중간 처리 과정에 대한 데이터, 실행 화면 등을 사용자 단말 장치(100)로 전송할 수 있다(S1125). 사용자 단말 장치(100)는 디스플레이(150), 오디오 출력부(160)와 같은 구성을 이용하여 사용자에게 실시간으로 어플리케이션 실행 과정을 제공할 수 있다.
서버(200)는 어플리케이션 실행 도중에 사용자 명령이 필요한 경우(S1130-Y), 사용자 단말 장치(100)에 사용자 명령을 입력받아 제공해줄 것을 요청할 수 있다(S1135). 또한, 서버(200)는 시스템 콜(system call)이 필요한 경우와 같이 사용자의 결정이 필요한 상황이 발생하면 사용자 단말 장치(100)와 통신하여 사용자 명령을 요청할 수 있다.
사용자 단말 장치(100)는 사용자 명령을 수신할 수 있다(S1140). 예를 들어, 사용자 단말 장치(100)는 선택 항목을 제공하는 UI를 표시하여 사용자로부터 제공된 항목들 중 하나를 선택하는 사용자 명령을 수신할 수 있다. 다른 예로, 사용자 단말 장치(100)는 비밀 번호를 입력하는 UI를 표시하고, 사용자로부터 비밀 번호를 입력받을 수 있다. 비밀 번호 정보는 숫자로 구성된 정보일 수도 있고, 사용자의 지문, 홍채와 같은 생체 정보일 수도 있다.
사용자 단말 장치(100)는 수신된 사용자 명령을 서버(200)로 전송할 수 있다(S1145). 그리고 서버(200)는 수신된 사용자 명령을 이용하여 어플리케이션 실행을 계속할 수 있다. 어플리케이션 실행이 완료되면, 서버(200)는 실행 결과를 사용자 단말 장치(100)에 전송할 수 있다(S1150).
도 11의 실시 예에서는 설명의 편의를 위하여, 사용자 명령을 한번 요청하는 것만이 기대되었다. 하지만, 상호 인증을 마치고 크리티컬 로직이 서버로 전송된 후의 동작은 반복 실행 가능하다. 즉, 서버(200)가 사용자 단말 장치(100)에 사용자 명령을 요청하고, 사용자 단말 장치(100)는 사용자 명령을 수신하여 서버(200)로 전송하고, 서버(200)는 실행 결과를 사용자 단말 장치(100)로 보내는 S1120 내지 S1150 단계는 반복되어 실행될 수 있다.
도 12는 본 개시의 일 실시 예에 따른 서버(200)와 연동하는 사용자 단말 장치(100)의 제어 방법을 설명하기 위한 흐름도이다. 도 12를 참조하면, 사용자 단말 장치(100)는 어플리케이션을 실행할 수 있다(S1210). 예를 들어, 어플리케이션은 보안 처리가 필요한 제1 로직과 보안 처리가 반드시 필요하지 않은 제2 로직으로 구성될 수 있다.
그리고 사용자 단말 장치(100)는 서버(200)와 서로 신뢰할 수 있는 장치인지에 대하여 상호 검증할 수 있다(S1220). 예를 들어, 사용자 단말 장치(100)는 인증서를 이용하여 서버(200)를 검증할 수 있다. 또한, 사용자 단말 장치(100)는 서버(200)와 동일한 클라우드 네트워크에 속하는 제2 서버(300)를 이용하여 서버(200)를 검증할 수도 있다.
예를 들어, 사용자 단말 장치(100)는 서버(200)로 제2 로직의 해쉬 값을 측정하여 전송할 수 있다. 서버(200)는 사용자 단말 장치(100)로부터 수신된 측정된 제2 로직의 해쉬 값과, 제1 로직에 포함된 제2 로직의 해쉬 값을 비교하여 사용자 단말 장치(100)를 검증할 수 있다.
서버(200)와의 상호 검증이 완료되면, 사용자 단말 장치(100)는 보안 처리가 필요한 제1 로직이 실행되도록 서버(200)에 요청할 수 있다(S1230). 이에 대응하여 서버(200)는 하드웨어 기반의 보안 실행 환경에서 보안 처리가 필요한 제1 로직을 실행할 수 있다. 그리고 서버(200)는 제1 로직 실행 결과를 사용자 단말 장치(100)로 전송할 수 있다.
예를 들어, 어플리케이션이 실행되는 동안 제1 로직의 실행이 필요하면, 사용자 단말 장치(100)는 제1 로직을 서버(200)로 전송할 수 있다. 그리고 사용자 단말 장치(100)는 전송된 제1 로직의 실행을 서버(200)에 요청할 수 있다.
다른 예로, 서버(200)에는 미리 제1 로직이 설치되어 있을 수 있다. 서버(200)에는 웹 기반의 서비스를 제공하기 위하여 다양한 어플리케이션이 설치될 수 있다. 어플리케이션이 실행되는 동안 제1 로직의 실행이 필요하면, 사용자 단말 장치(100)는 서버(200)에 기설치된 제1 로직의 실행을 요청할 수 있다.
서버(200)로부터 보안 처리가 필요한 제1 로직의 실행 결과가 수신되면, 사용자 단말 장치(100)는 수신된 실행 결과를 이용하여 어플리케이션 실행을 계속할 수 있다(S1240). 예를 들어, 사용자 단말 장치(100)는 실행 결과가 서버(200)에서 수신되기까지 대기할 수 있다. 그리고 서버(200)에서 실행 결과가 수신되면 그 결과를 이용하여 사용자 단말 장치(100)는 어플리케이션 실행을 진행할 수 있다.
다른 예로, 서버(200)에서 제1 로직이 실행되는 동안 보안 처리가 반드시 필요하지 않은 제2 로직을 병렬적으로 실행할 수도 있다. 사용자 단말 장치(100)는 서버(200)에서 수신된 제1 로직 실행 결과와, 병렬적으로 처리한 제2 로직 실행 결과를 이용하여 어플리케이션 실행을 진행할 수도 있다.
도 12의 실시 예에서도 상호 인증을 마치고 크리티컬 로직이 서버로 전송된 후의 동작은 반복 실행 가능하다. 즉, 사용자 단말 장치(100)가 서버(200)에 보안 처리가 필요한 로직을 실행하도록 요청하고, 서버(200)로부터 수신된 실행 결과를 이용하여 어플리케이션 실행을 하는 S1230 내지 S1240 단계는 반복되어 실행될 수 있다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따르면, 클라우드 네트워크와 통신만 가능하다면 사용자 단말 장치의 성능과 관계없이 동일한 보안 실행 환경이 제공될 수 있다. 그리고 사용자 단말 장치와 서버의 상호 검증, 보안 통신 채널 생성 등으로 사용자에게 보안성을 제공할 수 있다.
또한, 하드웨어 기반의 보안 실행 환경을 반드시 사용자 단말 장치에 포함하지 않아도 되기 때문에, 웨어러블 장치, IoT 장치 등의 휴대성이 유지되면서도 보안 처리가 필요한 서비스가 안전하게 제공될 수 있다.
상기에서 설명된 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기의 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 개시는 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 개시는 상기의 실시 예에 한정되는 것은 아니며, 본 개시가 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 사용자 단말 장치 110: 통신부
120: 메모리 130: 프로세서
200: 서버 300: 제2 서버

Claims (20)

  1. 서버와 연동하는 사용자 단말 장치에 있어서,
    상기 서버와 통신하는 통신부;
    어플리케이션이 저장된 메모리; 및
    보안 처리가 필요한 제1 로직을 포함하는 상기 어플리케이션을 실행하고, 상기 서버와 상호 검증하며, 상기 서버에서 상기 제1 로직이 실행되도록 상기 서버에 요청하도록 상기 통신부를 제어하고, 상기 서버로부터 실행 결과가 수신되면, 상기 수신된 실행 결과를 이용하여 상기 어플리케이션의 실행을 계속하는 프로세서;를 포함하는 사용자 단말 장치.
  2. 제1항에 있어서,
    상기 제1 로직은 상기 어플리케이션에 포함된 보안 처리가 불필요한 제2 로직의 해쉬 값을 포함하고,
    상기 서버는 상기 제2 로직의 해쉬 값과 상기 사용자 단말 장치에서 측정된 해쉬 값을 비교하여 상기 사용자 단말 장치를 검증하고,
    상기 프로세서는,
    상기 제2 로직의 해쉬 값을 측정하고, 상기 측정된 해쉬 값을 서버에 전송하도록 상기 통신부를 제어하는 사용자 단말 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    인증서를 이용하여 상기 서버를 검증하고, 상기 검증된 서버와의 사이에 보안 채널을 형성하도록 상기 통신부를 제어하는 사용자 단말 장치.
  4. 제1항에 있어서,
    상기 서버와 클라우드 네트워크를 형성하는 제2 서버는 상기 서버가 검증되면 제1 난스를 해쉬 연산한 제1 비밀 값을 상기 서버로 전송하고,
    상기 서버는 상기 제1 비밀 값 및 제2 난스를 함께 해쉬 연산하여 제2 비밀 값을 생성하고,
    상기 프로세서는,
    상기 제2 서버에 제1 난스(nonce)를 전송하도록 상기 통신부를 제어하고, 상기 서버에 제2 난스(nonce)를 전송하도록 상기 통신부를 제어하며, 상기 생성된 제2 비밀 값이 상기 서버로부터 수신되면, 상기 제1 난스 및 상기 제2 난스를 이용하여 상기 서버를 검증하는 사용자 단말 장치.
  5. 제1항에 있어서,
    상기 어플리케이션은,
    소스 코드들을 보안 처리 필요 여부에 따라 이진 처리되어 생성되는 사용자 단말 장치.
  6. 제1항에 있어서,
    상기 서버는 보안 칩을 이용하여 상기 제1 로직을 실행하는 사용자 단말 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 제1 로직을 상기 서버로 전송하고, 상기 전송된 제1 로직의 실행을 요청하도록 상기 통신부를 제어하는 사용자 단말 장치.
  8. 제1항에 있어서,
    상기 제1 로직은 상기 서버에 기설치되어 있고,
    상기 프로세서는,
    상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 기설치된 제1 로직의 실행을 요청하도록 상기 통신부를 제어하는 사용자 단말 장치.
  9. 제1항에 있어서,
    상기 어플리케이션은 상기 제1 로직 및 보안 처리가 불필요한 제2 로직을 포함하고,
    상기 프로세서는,
    상기 서버에 상기 제1 로직의 실행을 요청하고 실행 결과 수신을 대기하는 동안, 상기 제2 로직을 병렬적으로 실행하는 사용자 단말 장치.
  10. 제1항에 있어서,
    사용자 명령을 입력받는 입력부;를 더 포함하고,
    상기 프로세서는,
    상기 서버로부터 상기 제1 로직의 실행과 관련된 사용자 명령을 요청받으면, 상기 입력부를 통해 입력된 사용자 명령을 상기 서버로 전송하도록 상기 통신부를 제어하는 사용자 단말 장치.
  11. 서버와 연동하는 사용자 단말 장치의 제어 방법에 있어서,
    보안 처리가 필요한 제1 로직을 포함하는 어플리케이션을 실행하는 단계;
    상기 서버와 상호 검증하는 단계;
    상기 서버에서 상기 제1 로직이 실행되도록 상기 서버에 요청하는 단계; 및
    상기 서버로부터 실행 결과가 수신되면, 상기 수신된 실행 결과를 이용하여 상기 어플리케이션의 실행을 계속하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 제1 로직은 상기 어플리케이션에 포함된 보안 처리가 불필요한 제2 로직의 해쉬 값을 포함하고,
    상기 상호 검증하는 단계는,
    상기 제2 로직의 해쉬 값을 측정하는 단계; 및
    상기 측정된 해쉬 값을 상기 서버로 전송하는 단계;를 포함하고,
    상기 서버는, 상기 제1 로직에 포함된 상기 제2 로직의 해쉬 값과 상기 측정된 해쉬 값을 비교하여 상기 사용자 단말 장치를 검증하는 제어 방법.
  13. 제11항에 있어서,
    상기 상호 검증하는 단계는,
    인증서를 이용하여 상기 서버를 검증하는 단계; 및
    상기 검증된 서버와의 사이에 보안 채널을 형성하는 단계;를 포함하는 제어 방법.
  14. 제11항에 있어서,
    상기 상호 검증하는 단계는,
    상기 서버와 클라우드 네트워크를 형성하는 제2 서버에 제1 난스(nonce)를 전송하는 단계;
    상기 서버에 제2 난스(nonce)를 전송하는 단계; 및
    제2 비밀 값이 상기 서버로부터 수신되면, 상기 제1 난스 및 상기 제2 난스를 이용하여 상기 서버를 검증하는 단계;를 포함하고,
    상기 제2 서버는 상기 서버가 검증되면, 상기 제1 난스를 해쉬 연산한 제1 비밀 값을 상기 서버로 전송하고,
    상기 서버는 상기 제1 비밀 값 및 상기 제2 난스를 함께 해쉬 연산하여 상기 제2 비밀 값을 생성하는 제어 방법.
  15. 제11항에 있어서,
    상기 어플리케이션은,
    소스 코드들을 보안 처리 필요 여부에 따라 이진 처리되어 생성되는 제어 방법.
  16. 제11항에 있어서,
    상기 서버는 보안 칩을 이용하여 상기 제1 로직을 실행하는 제어 방법.
  17. 제11항에 있어서,
    상기 요청하는 단계는,
    상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 제1 로직을 상기 서버로 전송하는 단계; 및
    상기 전송된 제1 로직의 실행을 요청하는 단계;를 포함하는 제어 방법.
  18. 제11항에 있어서,
    상기 제1 로직은 상기 서버에 기설치되어 있고,
    상기 요청하는 단계는,
    상기 어플리케이션이 실행되는 동안 상기 제1 로직의 실행이 필요하면, 상기 기설치된 제1 로직의 실행을 요청하는 제어 방법.
  19. 제11항에 있어서,
    상기 어플리케이션은 상기 제1 로직 및 보안 처리가 불필요한 제2 로직을 포함하고,
    상기 서버에 상기 제1 로직의 실행을 요청하고 실행 결과 수신을 대기하는 동안, 상기 제2 로직을 병렬적으로 실행하는 단계;를 더 포함하는 제어 방법.
  20. 제11항에 있어서,
    상기 서버로부터 상기 제1 로직의 실행과 관련된 사용자 명령을 요청받으면, 사용자 명령을 입력받아 상기 서버로 전송하는 단계;를 더 포함하는 제어 방법.
KR1020160174578A 2016-12-20 2016-12-20 사용자 단말 장치 및 그의 제어 방법 KR20180071679A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160174578A KR20180071679A (ko) 2016-12-20 2016-12-20 사용자 단말 장치 및 그의 제어 방법
PCT/KR2017/015071 WO2018117617A1 (ko) 2016-12-20 2017-12-20 사용자 단말 장치 및 그의 제어 방법
US16/467,184 US11245694B2 (en) 2016-12-20 2017-12-20 User terminal apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160174578A KR20180071679A (ko) 2016-12-20 2016-12-20 사용자 단말 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20180071679A true KR20180071679A (ko) 2018-06-28

Family

ID=62626924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160174578A KR20180071679A (ko) 2016-12-20 2016-12-20 사용자 단말 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US11245694B2 (ko)
KR (1) KR20180071679A (ko)
WO (1) WO2018117617A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230079192A (ko) * 2020-10-01 2023-06-05 오보렌 시스템즈, 아이엔씨. 배타적 셀프 에스크로 방법 및 장치

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60132378D1 (de) * 2001-09-21 2008-02-21 Ericsson Telefon Ab L M Anordnung und verfahren zur ausführung von code
JP3791464B2 (ja) * 2002-06-07 2006-06-28 ソニー株式会社 アクセス権限管理システム、中継サーバ、および方法、並びにコンピュータ・プログラム
US7549059B2 (en) 2002-06-26 2009-06-16 Arm Limited Transferring data values via a data bus or storing data values using a selectable representation
EP1563375B1 (en) * 2002-11-18 2006-09-06 ARM Limited Processor switching between secure and non-secure modes
TW200607288A (en) * 2004-04-05 2006-02-16 Sony Corp Program, computer, and data processing method
EP1635545B1 (en) 2004-09-14 2013-04-10 Sony Ericsson Mobile Communications AB Method and system for transferring of digital rights protected content using USB or memory cards
US7814538B2 (en) * 2005-12-13 2010-10-12 Microsoft Corporation Two-way authentication using a combined code
GB2442023B (en) 2006-09-13 2011-03-02 Advanced Risc Mach Ltd Memory access security management
US20080095361A1 (en) * 2006-10-19 2008-04-24 Telefonaktiebolaget L M Ericsson (Publ) Security-Enhanced Key Exchange
WO2008088163A1 (en) 2007-01-15 2008-07-24 Samsung Electronics Co., Ltd. Rights object acquisition method of mobile terminal in digital right management system
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
JP5260081B2 (ja) * 2008-02-25 2013-08-14 パナソニック株式会社 情報処理装置及びその制御方法
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
US20100145854A1 (en) 2008-12-08 2010-06-10 Motorola, Inc. System and method to enable a secure environment for trusted and untrusted processes to share the same hardware
KR101263217B1 (ko) * 2009-10-15 2013-05-10 한국전자통신연구원 모바일 클라우드 서비스 제공을 위한 모바일 단말 및 그의 동작 방법
US20120284506A1 (en) * 2010-04-30 2012-11-08 T-Central, Inc. Methods and apparatus for preventing crimeware attacks
US10002466B2 (en) * 2010-07-21 2018-06-19 Verizon Patent And Licensing Inc. Method and system for providing autonomous car errands
US8973158B2 (en) 2011-07-20 2015-03-03 Microsoft Technology Licensing Llc Trust level activation
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US8864587B2 (en) 2012-10-03 2014-10-21 Sony Corporation User device position indication for security and distributed race challenges
US9195849B2 (en) * 2013-03-06 2015-11-24 Kings Information & Network Co., Ltd. Cloud application installed in client terminal connected to cloud server
US9118639B2 (en) * 2013-03-14 2015-08-25 Intel Corporation Trusted data processing in the public cloud
US20140365781A1 (en) * 2013-06-07 2014-12-11 Technische Universitaet Darmstadt Receiving a Delegated Token, Issuing a Delegated Token, Authenticating a Delegated User, and Issuing a User-Specific Token for a Resource
US9983894B2 (en) 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US9705849B2 (en) * 2014-09-30 2017-07-11 Intel Corporation Technologies for distributed detection of security anomalies
US9800561B2 (en) 2014-11-06 2017-10-24 Intel Corporation Secure sharing of user annotated subscription media with trusted devices
KR102281782B1 (ko) 2014-11-14 2021-07-27 삼성전자주식회사 무선 통신 시스템에서 단말의 어플리케이션을 원격으로 관리하는 방법 및 장치
US9722775B2 (en) * 2015-02-27 2017-08-01 Verizon Patent And Licensing Inc. Network services via trusted execution environment
US9870467B2 (en) * 2015-03-27 2018-01-16 Intel Corporation Apparatus and method for implementing a forked system call in a system with a protected region
EP3346637B1 (en) * 2015-08-31 2019-10-23 Samsung Electronics Co., Ltd. Method and device for downloading profile in communication system
EP3206148A1 (en) * 2016-02-12 2017-08-16 ABB Schweiz AG Secure code optimization method and system
US11025428B2 (en) * 2016-05-05 2021-06-01 Neustar, Inc. Systems and methods for enabling trusted communications between controllers

Also Published As

Publication number Publication date
US20190319949A1 (en) 2019-10-17
US11245694B2 (en) 2022-02-08
WO2018117617A1 (ko) 2018-06-28

Similar Documents

Publication Publication Date Title
TWI672648B (zh) 業務處理方法、裝置、資料共享系統及儲存介質
US10097350B2 (en) Privacy enhanced key management for a web service provider using a converged security engine
US10834075B2 (en) Declarative techniques for transaction-specific authentication
EP3916604B1 (en) Method and apparatus for processing privacy data of block chain, device, storage medium and computer program product
US10880292B2 (en) Seamless transition between WEB and API resource access
KR102459199B1 (ko) 멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처
WO2016202139A1 (zh) 跨平台的账号资源共享实现方法、装置及系统
US11283793B2 (en) Securing user sessions
US11868450B2 (en) Network and device security system, method, and apparatus
EP3915026B1 (en) Browser login sessions via non-extractable asymmetric keys
WO2017113119A1 (zh) 一种关联应用程序和生物特征的方法、装置以及移动终端
US11750590B2 (en) Single sign-on (SSO) user techniques using client side encryption and decryption
US20230186304A1 (en) Transaction Validation Service
KR20180071679A (ko) 사용자 단말 장치 및 그의 제어 방법
US20230171252A1 (en) Systems and Methods for WebAuthn Transport Via a WebAuthn Proxy
WO2023200904A1 (en) Devices, systems and methods for securing communication integrity
CN117692199A (zh) 鉴权方法、装置、电子设备、系统及芯片
CN117544328A (zh) 物联网接入方法、装置、终端及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal