KR102095114B1 - 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법 - Google Patents

기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법 Download PDF

Info

Publication number
KR102095114B1
KR102095114B1 KR1020180082124A KR20180082124A KR102095114B1 KR 102095114 B1 KR102095114 B1 KR 102095114B1 KR 1020180082124 A KR1020180082124 A KR 1020180082124A KR 20180082124 A KR20180082124 A KR 20180082124A KR 102095114 B1 KR102095114 B1 KR 102095114B1
Authority
KR
South Korea
Prior art keywords
security device
sgx
authentication
execution environment
providing
Prior art date
Application number
KR1020180082124A
Other languages
English (en)
Other versions
KR20190128534A (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 한국과학기술원
Publication of KR20190128534A publication Critical patent/KR20190128534A/ko
Application granted granted Critical
Publication of KR102095114B1 publication Critical patent/KR102095114B1/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/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
    • 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
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • 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
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따른 시스템에서 수행되는 신뢰실행환경을 제공하는 방법은, 적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서, 상기 사용자의 식별 정보에 대한 인증을 통하여 적어도 하나 이상의 보안 장치를 등록하는 단계; 상기 사용자의 인증 요청에 따라 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계; 및 상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치U2F 디바이스가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 단계를 포함할 수 있다.

Description

기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 FIDO U2F 활용 방법{METHOD FOR COMBINING TRUSTED EXECUTION ENVIRONMENTS FOR FUNCTIONAL EXTENSION AND METHOD FOR APPLYING FIDO U2F FOR SUPPORTING BUSINESS PROCESS}
아래의 설명은 신뢰실행환경을 확장하는 기술에 관한 것이다.
도 1은 Intel SGX을 설명하기 위한 도면이다. Intel SGX(Software Guard Extension)는 Intel 아키텍처의 6세대 모델 스카이레이크부터 지원되는 소프트웨어 보호 기능으로, 추가적인 CPU 명령어들로 구성되어 있다. 개념적으로는 CPU가 SGX 모드로 변경되면 도 1과 같이 운영체제 등의 높은 권한을 가진 시스템에 의해서도 접근 불가능한 메모리 영역(Trusted Part of App 또는 Enclave라고 함)에서 프로그램이 실행된다. 다시 말해서, SGX 모드에서만 접근 가능한 실행 코드(code) 및 데이터(data) 공간을 제공함으로 소프트웨어를 보호한다. 예를 들면, SGX 신뢰실행환경에서 암호화 키를 생성하면 SGX 모드가 아닌 상태에서는 키에 접근할 수 없게 된다. 이렇게 CPU에서 제공하는 하드웨어에 기반하여 소프트웨어를 개발하면 더욱 안전한 소프트웨어를 개발할 수 있다.
도 2 및 도 3은 보안 장치의 개념 및 보안 장치의 플로우를 설명하기 위한 도면이다. 2FA(2nd Factor Authentication)는 OTP, SMS OTP와 같이 사용자가 특정 장치를 가지고 있는지의 여부를 통해 인증을 강화하는 수단이다. 보안 장치의 예를 들면, FIDO는 2FA 중 하나로 최첨단의 2FA로 평가받는 솔루션이다. 보안 장치는 USB 형태의 FIDO 장치 외에도 여러 형태의 FIDO 장치가 존재할 수 있다. FIDO에서 U2F 라는 세부 규격은 PC에서 인증을 위한 규격을 정의하고 있다. 도 2와 같이 사용자가 보안 장치(예를 들면, U2F 장치)를 전자 기기(예를 들면, 컴퓨터)에 연결(여기서는 USB로 연결)하여 중간을 터치하도록 하여 사용자가 인증을 하는 것(User presence)을 보장할 수 있다. 도 3을 참고하면, 브라우저를 통하여 사용자의 이름 및 패스워드를 포함하는 식별 정보가 입력됨에 따라 서버에서 인증을 수행할 수 있다. 서버에서 사용자의 식별 정보가 인증됨에 따라 챌린지를 생성하여 브라우저로 전달하고, 브라우저에서 보안 장치로 챌린지가 전달될 수 있다. 보안 장치는 사용자의 터치 버튼에 의하여 응답을 수행할 수 있고, 상기 응답이 서버로 전달되어 확인될 수 있다. 보안 장치는 상기 프로세스를 통하여 RSA 공개키와 비밀키를 생성하고 서명하는 기능을 제공할 수 있다.
도 4은 신뢰실행환경을 설명하기 위한 도면이다. Intel SGX는 CPU에서 제공하는 보안 기능으로 실행 코드의 무결성(Integrity, 변조 안 됨)과 기밀성(Confidentiality, 알 수 없음)을 보장하지만 Trust I/O가 없다. 다시 말하면, 실행은 안전하다고 할 수 있으나 외부의 입력에 대해서 이것이 신뢰할 수 있는 입력인지 아닌지 알 수 없다. 이에 따라 Intel SGX는 암호키에 대한 직접적인 접근을 막거나 중요 프로그램 로직의 제어 흐름을 변조 못하기 위한 정도로 사용된다. 이러한 문제점을 보안하기 위해서 비특허문헌 1("Using Innovative Instructions to Create Trustworthy Software Solutions"( 2013 HASP@ ISCA))에 따르면, Trust I/O를 Intel SGX에 제공하는 방식으로 Intel PAVP를 언급하기는 하였으나 구체적인 자료가 없으며, 해당 방식의 경우 Intel 기반의 특수한 하드웨어 셋팅이 필수적인데 이는 범용적으로 활용되는데 한계가 있다. 또한, 비특허문헌 2("SGXIO: Generic Trusted I/O Path for Intel SGX")에 따르면, Trust I/O를 제공한다고 하였으나 전제 조건으로 하이퍼바이저(Hyper Visor)를 필요로 한다. 이는 Intel SGX 기능을 제공하는 어플리케이션을 사용하기 위해서 일반 사용자에게 운영체제를 재설치해야 하는 것을 뜻하며, 이는 현실적으로 많은 제약이 있어 실용적이지 않다.
한편, 신뢰실행환경(TEE)가 아닌 별도 분리된 기능의 디바이스를 통한 경우에도 문제점이 있다. 콜드월렛(예를 들면, 레저 나노, KeepKey 등)과 같이 별도의 디바이스를 통해서 USB 프로토콜만으로 기능을 수행하는 경우, 해커가 해당 디바이스까지 장악하기 어렵기 때문에 보안성이 향상된다. 하지만 이러한 디바이스의 펌웨어가 변조되었을 때, 펌웨어의 변조 여부를 알 수 없다. 둘째, 디바이스를 물리적으로 탈취한 경우(예를 들면, 비밀번호를 어깨 너머로 훔쳐 보고 기억할 경우), 디바이스 탈취만으로 모든 암호화폐를 탈취해 갈 수 있다. 셋째, 별도의 장비를 통한 안전성 향상은 사용자의 비용 부담을 수반한다. 마지막으로, 별도의 장비로 구현된 경우 펌웨어(firmware), 운영체제(OS) 및 어플레케이션(application)까지 많은 코드가 포함되는데 보안적인 관점에서 볼 때 코드량이 많아질수록 취약점이 생길 가능성이 높다.
SGX와 보안 장치의 결합을 통하여 새로운 신뢰실행환경을 제공하는 방법 및 시스템을 제공할 수 있다.
신뢰실행환경 시스템에서 수행되는 신뢰실행환경을 제공하는 방법은, 적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서, 상기 사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 단계; 상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계; 및 상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 단계를 포함할 수 있다.
상기 신뢰실행환경(TEE+)을 제공하는 단계는, 상기 신뢰실행환경을 제공함에 따라 상기 SGX 어플리케이션과 상기 적어도 하나 이상의 보안 장치 사이에 트러스트 인풋(Trust Input) 및 트러스트 아웃풋(Trust Output)을 지원하는 단계를 포함할 수 있다.
상기 각각의 보안 장치를 등록하는 단계는, 상기 SGX 어플리케이션의 다운로드가 수행됨에 따라 상기 SGX 어플리케이션에서 상기 보안 장치를 등록하는 과정에 저장된 공개키가 SGX 엔클레이브(Enclave)에 삽입되는 단계를 포함할 수 있다.
상기 사용자의 식별 정보가 인증됨에 따라 각각의 보안 장치를 등록하는 단계는, 상기 SGX 어플리케이션의 다운로드가 완료됨에 따라 SGX를 지원하는 SGX와 연관된 Remote Attestation Service를 통해서 상기 SGX의 이용 여부가 확인되고, 상기 SGX 엔클레이브와 상기 서비스 제공자와의 통신 세션을 연결하는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 상기 SGX 엔클레이브로 로직 실행이 요청됨에 따라 상기 SGX 엔클레이브에서 상기 SGX 엔클레이브로 요청된 파라미터 정보를 상기 사용자의 전자 기기로 피드백하기 위하여 상기 파라미터 정보에 대한 해시 값을 계산하고, 상기 계산된 해시 값을 검증을 위한 명령어 데이터의 일부 필드에 기입하여 리모트 에테스테이션(Remote Attestation)의 결과로 전송하는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 서비스 제공자에 의하여 상기 SGX와 연관된 외부 서버로부터 전달받은 상기 검증을 위한 명령어 데이터의 값이 상기 SGX를 제공하는 플랫폼에서 생성된 것인지 여부가 확인되는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 상기 검증을 위한 명령어 데이터의 값이 상기 SGX를 제공하는 플랫폼에서 생성된 것으로 판단됨에 따라 상기 SGX 엔클레이브로 요청된 파라미터 정보에 대하여 생성된 해시 값이 상기 명령어 데이터의 일부 필드에 기입된 값과 일치하는지 확인되는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 상기 SGX 엔클레이브로 요청된 파라미터 정보에 대하여 생성된 해시 값이 상기 명령어 데이터의 일부 필드에 기입된 값과 일치하는지 확인한 확인 결과가 상기 보안 장치와 연결된 전자 기기를 통하여 제공되는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 상기 보안 장치에 설정된 이벤트로서 터치가 입력됨에 따라 상기 SGX 엔클레이브에 저장된 공개키를 이용하여 상기 보안 장치의 개인키로 서명된 것인지 판별하는 단계를 포함할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는, 상기 서비스 제공자로에서 상기 적어도 하나 이상의 보안 장치에 대한 각각의 공개키를 가지고 빌드됨에 따라 상기 적어도 하나 이상의 보안 장치가 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트가 순차적으로 입력됨을 수신하여 로직이 실행되도록 컴파일되는 단계를 포함할 수 있다.
신뢰실행환경 시스템은, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서, 상기 사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 과정; 상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정; 및 상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 과정을 처리할 수 있다.
상기 각각의 보안 장치를 등록하는 과정은, 상기 SGX 어플리케이션의 다운로드가 수행됨에 따라 상기 SGX 어플리케이션에서 상기 보안 장치를 등록하는 과정에 저장된 공개키가 SGX 엔클레이브(Enclave)에 삽입되고, 상기 SGX 어플리케이션의 다운로드가 완료됨에 따라 SGX를 지원하는 SGX와 연관된 Remote Attestation Service를 통해서 상기 SGX의 이용 여부가 확인되고, 상기 SGX 엔클레이브와 상기 서비스 제공자와의 통신 세션을 연결할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은, 상기 SGX 엔클레이브로 로직 실행이 요청됨에 따라 상기 SGX 엔클레이브에서 상기 SGX 엔클레이브로 요청된 파라미터 정보를 상기 사용자의 전자 기기로 피드백하기 위하여 상기 파라미터 정보에 대한 해시 값을 계산하고, 상기 계산된 해시 값을 검증을 위한 명령어 데이터의 일부 필드에 기입하여 리모트 에테스테이션(Remote Attestation)의 결과로 전송할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은, 상기 보안 장치에 설정된 이벤트로서 터치가 입력됨에 따라 상기 SGX 엔클레이브에 저장된 공개키를 이용하여 상기 보안 장치의 개인키로 서명된 것인지 판별할 수 있다.
상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은, 상기 서비스 제공자로에서 상기 적어도 하나 이상의 보안 장치에 대한 각각의 공개키를 가지고 빌드됨에 따라 상기 적어도 하나 이상의 보안 장치가 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트가 순차적으로 입력됨을 수신하여 로직이 실행되도록 컴파일될 수 있다.
일 실시예에 따른 신뢰실행환경 시스템은 SGX와 보안 장치를 결합하여 Trust Input을 제공하고 또한 Intel SGX의 특성을 이용하여 Trust Output의 효과를 도출할 수 있다.
일 실시예에 따른 신뢰실행환경 시스템은 SGX 어플리케이션과 보안 장치(U2F 디바이스)의 기능이 결합된 신뢰실행환경을 보다 저렴한 가격으로 제공할 수 있다.
일 실시예에 따른 신뢰실행환경 시스템은 remote attestation 기능을 이용하여 프로그램의 변조 여부를 확인할 수 있다.
일 실시예에 따른 신뢰실행환경 시스템은 SGX가 탐재된 전자 기기와 보안 장치들을 분산하여 데이터를 저장함에 따라 디바이스를 물리적으로 탈취하는 것을 어렵게 한다.
일 실시예에 따른 신뢰실행환경 시스템은 중요한 부분만 경량하게 신뢰실행환경 내부에서 실행되도록 함으로써 보안적으로 더욱 안전하다.
도 1은 Intel SGX을 설명하기 위한 도면이다.
도 2 및 도 3은 보안 장치의 개념 및 보안 장치의 플로우를 설명하기 위한 도면이다.
도 4은 신뢰실행환경을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 신뢰실행환경 시스템의 동작을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 신뢰실행환경 시스템에서 Trust I/O를 제공하는 것을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 적어도 하나 이상의 보안 장치를 포함하는 신뢰실행환경 시스템의 동작을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 서버와 클라이언트간 동작을 통하여 신뢰실행환경을 제공하는 것을 설명하기 위한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
실시예에서는 기존에 존재하는 신뢰실행환경(TEE: Trusted Execution Evironment)의 기능을 확장할 수 있도록 복수 개의 신뢰실행환경을 결합하는 방법을 제시하고 보안 장치를 비지니스 프로세스에 활용하는 방법을 설명하기로 한다.
도 5는 일 실시예에 따른 신뢰실행환경 시스템의 동작을 설명하기 위한 도면이다.
서비스 제공자(서버)(500)와 신뢰실행환경 시스템(502)간의 동작을 통하여 신뢰실행환경을 제공하는 것을 설명하기로 한다. 이때, 서비스 제공자(500)와 신뢰실행환경 시스템(502)는 브라우저(501)를 통하여 정보를 송수신할 수 있다. 신뢰실행환경 시스템(520)는 보안 장치(200), 신뢰실행환경인 엔클레이브(Enclave)와 엔클레이브를 감싸고 있는 SGX 어플리케이션(Application)(503)으로 구성될 수 있다. 신뢰실행환경 시스템(520)는 SGX 어플리케이션 (503) 및 보안 장치(200)가 결합된 형태로 구성될 수 있다. SGX 어플리케이션(Application)(503)은 특정 환경에서 연동되는 앱(App)을 의미할 수 있다. 예를 들면, SGX 어플리케이션(Application)(503)은 크롬 익스텐션(extension)으로 연동되는 앱으로서, 사용자가 SGX 어플리케이션(Application)(503)을 다운로드 받을 때, SGX 엔클레이브(Enclave)(504) 내부에 보안 장치(200)의 등록 과정에서 저장되었던 공개키를 삽입할 수 있다. 이때, SGX 엔클레이브(504) 내부에 보안 장치에 입력된 이벤트(예를 들면, 터치)인지 아닌지 확인하기 위하여 공개키를 삽입할 수 있다.
이러한 보안 장치(200), SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션(530)으로 구성된 환경에서, 사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자(500)에게 보안 장치(200)를 등록할 수 있다(510). 일례로, 사용자가 서비스 제공자(500)에게 아이디 및 패스워드를 포함하는 사용자 식별 정보의 인증을 수행한 후, 보안 장치(200)를 등록할 수 있다. 보안 장치(200)가 등록됨에 따라 공개키가 전송될 수 있고, 서비스 제공자(500)는 보안 장치(200)에서 생성된 공개키를 저장할 수 있다. 이후, 사용자의 인증, 예를 들면, 보안 장치를 등록한 이후의 로그인부터는 사용자가 서비스 제공자(500)에게 접속할 때, 아이디 및 패스워드를 포함하는 사용자 인증 이후에, 보안 장치(200)를 통하여 보안 장치에 설정된 이벤트(예를 들면, 터치)를 수행하여야 인증에 성공할 수 있다.
보안 장치(200)는 OTP, SMS OTP와 같이 인증을 강화하기 위한 것이다. 보안 장치(200)는 전자 기기에 연결되어 보안 장치(200)가 터치됨으로써 사용자가 인증하는 것을 보장할 수 있다. 예를 들면, 보안 장치(200)는 신속한 온라인 인증(Fast Identity Online)을 수행할 수 있고, 온라인 환경에서 식별 정보(예를 들면, ID, 패스워드 등)없이 생체인식 기술을 활용하여 개인 인증을 수행할 수 있다. 이때, 보안 장치(200)는UAF(Universal Authentication Framework) 프로토콜 또는 U2F(Universal 2nd Factor) 프로토콜로 중 어느 하나의 프로토콜에 기초하여 동작될 수 있다. UAF(Universal Authentication Framework)은 전자 기기에서 제공하는 인증방법을 온라인 서비스와 연동해 인증하는 프로토콜이고, U2F(Universal 2nd Factor)은 사용자의 식별 정보(예를 들면, 아이디와 비밀번호) 기반의 온라인 웹 서비스에서 추가로 인증을 받고자 할 때, 사용자 로그인 시에 추가할 수 있는 프로토콜이다. 실시예에서는 U2F 프로토콜에 기반한 신뢰실행환경이 제공될 수 있다.
일례로, 보안 장치(200)가 USB와 유사한 또는 동일한 형태로 구성된 경우, 전자 기기의 포트에 꽂아 부팅시킬 수 있다. 이때, 전자 기기는 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있고, 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 해당될 수 있다. 이와 같이, 보안 장치(200)가 부팅됨에 따라 전자 기기에 브라우저 환경이 실행될 수 있다. 이때, 전자 기기에 컴퓨팅 환경인 SGX가 구동될 수 있다. 예를 들면, 전자 기기에 Intel SGX가 실행될 수 있다.
사용자는 전자 기기에 SGX 어플레케이션(503)을 다운로드하여 SGX 어플리케이션을 설치할 수 있다(520). SGX 어플리케이션의 다운로드가 수행됨에 따라 SGX 어플리케이션에서 보안 장치를 등록하는 과정에서 저장된 공개키가 SGX 엔클레이브(504)에 삽입될 수 있다. 이때, SGX 엔클레이브(504)에서 보안 장치(200)에 입력된 이벤트인지 확인하기 위하여 공개키를 삽입할 수 있다.
SGX 어플리케이션(503)의 다운로드가 완료됨에 따라 SGX를 지원하는 SGX와 연관된 Remote Attestation Service를 통하여 SGX의 이용 여부가 확인될 수 있다. SGX 이용 여부가 확인됨에 따라 SGX 엔클레이브(504)와 서비스 제공자(500) 간 통신 세션을 연결할 수 있다. 예를 들면, SGX가 인텔 SGX일 경우, 인텔(Intel)에서 제공하는 Remote Attestation Service가 실시될 수 있다. 이를 통하여 사용자와 관련된 정보를 SGX 엔클레이브(504)에 안전하게 보관할 수 있다.
이에 따라 SGX 어플리케이션(503) 및 보안 장치(200)가 결합되어 구성된 신뢰실행환경(TEE+)을 제공할 수 있다.
도 6은 일 실시예에 따른 신뢰실행환경 시스템에서 Trust I/O를 제공하는 것을 설명하기 위한 도면이다.
신뢰실행환경 시스템(502)은 신뢰실행환경을 제공함에 따라 SGX 어플리케이션(503)과 보안 장치(200) 사이에 트러스트 인풋(Trust Input)(640) 및 트러스트 아웃풋(Trust Output)(630)을 지원할 수 있다.
SGX 엔클레이브(504)로 중요 로직의 실행(610)을 요청할 때, SGX 엔클레이브(504)는 파라미터로 요청된 정보를 사용자에게 피드백하기 위하여 파라미터 정보에 대한 해시 값을 계산할 수 있다. SGX 엔클레이브(504)는 계산된 해시 값을 검증을 위한 명령어 데이터(예를 들면, QUOTE)의 일부 필드(예를 들면, Custom data field)에 기입하여 리모트 에테스테이션(Remote Attestation)의 결과로 전송할 수 있다.
서비스 제공자(500)에 의하여 SGX와 연관된 외부 서버로부터 전달받은 검증을 위한 명령어 데이터의 값이 SGX를 제공하는 플랫폼에서 생성된 것인지 여부가 확인될 수 있다. 또는, 서비스 제공자(500)로부터 검증을 위한 명령어 데이터의 값을 외부 서버로 전달하고, 외부 서버에서 서비스 제공자(500)로부터 전달받은 검증을 위한 명령어 데이터 값이 SGX를 제공하는 플랫폼에서 생성된 것인지 여부가 확인됨에 따라 생성된 결과를 수신할 수 있다. 검증을 위한 명령어 값이 SGX를 제공하는 플랫폼에서 생성된 것으로 판단됨에 따라 SGX 엔클레이브9504)로 요청된 파라미터 정보에 대하여 생성된 해시 값이 명령어 데이터의 일부 필드에 기입된 값과 일치하는지 확인될 수 있다. 이러한 일치 여부가 확인된 결과를 전자 기기에서 특정 서비스(예를 들면, SMS나 이메일 등)으로 확인함에 따라 해커가 사용자의 전자 기기에 동시에 장악할 확률이 적기 때문에 트러스트 아웃풋(630)의 효과를 볼 수 있다.
사용자가 입력된 값을 확인함에 따라 보안 장치(200)에 보안 장치에 설정된 이벤트로서 터치가 입력될 수 있다. SGX 엔클레이브(504)는 SGX 엔클레이브(504)에 저장된 공개키를 가지고 있으므로, 보안 장치(200)의 터치를 통하여 보안 장치(200)의 개인키로 서명된 데이터인지 아닌지 판별할 수 있다. 이를 통해, SGX는 트러스트 인풋(640) 기능을 가지게 된다.
도 7은 일 실시예에 따른 적어도 하나 이상의 보안 장치를 포함하는 신뢰실행환경 시스템의 동작을 설명하기 위한 도면이다.
도 5에서 설명한 바와 같이, 서비스 제공자(서버)(500)와 신뢰실행환경 시스템(502)간의 동작을 통하여 신뢰실행환경을 제공할 수 있다. 이때, 서비스 제공자(500)와 신뢰실행환경 시스템(502)는 브라우저(501)를 통하여 정보를 송수신할 수 있다. 신뢰실행환경 시스템(520)는 보안 장치(200), 신뢰실행환경인 엔클레이브(Enclave)와 엔클레이브를 감싸고 있는 SGX 어플리케이션(Application)(503)으로 구성될 수 있다. 신뢰실행환경 시스템(520)는 SGX 어플리케이션(503) 및 적어도 하나 이상의 보안 장치(700)가 결합된 형태로 구성될 수 있다.
도 7에서는 보안 장치의 개수가 적어도 하나 이상의 보안 장치(700), 즉 복수 개의 보안 장치일 경우에 대하여 설명하기로 한다. 적어도 하나 이상의 보안 장치(700)를 등록할 수 있다. 도 7에서는 3개의 보안 장치를 등록하는 것을 설명하기로 한다. 일례로, 3개의 보안 장치 중 보안 장치 1은 사원의 보안 장치, 보안 장치2는 팀장의 보안 장치, 보안 장치 3은 사장의 보안 장치라고 가정할 수 있다. 이러한 3개의 보안 장치를 등록할 수 있다(710). 도 5에서 설명한 바와 같이, 서비스 제공자(500)는 3개의 보안 장치들에서 생성된 공개키를 저장할 수 있다.
SGX 어플리케이션(Application)(503)은 특정 환경에서 연동되는 앱(App)을 의미할 수 있다. 예를 들면, SGX 어플리케이션(Application)(503)은 크롬 익스텐션(extension)으로 연동되는 앱으로서, 사용자가 SGX 어플리케이션(Application)(503)을 다운로드 받을 때, SGX 엔클레이브(Enclave)(504) 내부에 적어도 하나 이상의 보안 장치(700)의 등록 과정에서 저장되었던 공개키를 삽입할 수 있다. 이때, SGX 엔클레이브(504) 내부에 보안 장치에 입력된 이벤트(예를 들면, 터치)인지 아닌지 확인하기 위하여 공개키를 삽입할 수 있다.
이러한 보안 장치(200), SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션(530)으로 구성된 환경에서, 사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자(500)에게 적어도 하나 이상의 보안 장치(700) 각각을 등록할 수 있다(710). 일례로, 사용자가 서비스 제공자(500)에게 아이디 및 패스워드를 포함하는 사용자 식별 정보의 인증을 수행한 후, 각각의 보안 장치를 등록할 수 있다. 이때, 각각의 보안 장치에 설정된 순서에 따라 또는 보안 장치의 순서에 상관없이 차례로 등록 프로세스가 실행될 수 있다.
각각의 보안 장치가 등록됨에 따라 각각의 공개키가 전송될 수 있고, 서비스 제공자(500)는 각각의 보안 장치에서 생성된 각각의 공개키를 저장할 수 있다. 또한, 각각의 보안 장치들로 제어되도록, 저장된 각각의 공개키들을 가지고 빌드(Build)를 하며, 각각의 보안 장치가 순차적으로 터치되어야 중요한 로직이 실행되도록 컴파일(Compile)될 수 있다(720).
SGX 어플리케이션(503)의 SGX 엔클레이브(504) 내부에서 각각의 보안 장치들에 대한 각각의 공개키들을 보관하기 때문에, SGX 엔클레이브(504) 내부에서 각각의 보안 장치들이 순차적으로 각각의 보안 장치에 설정된 이벤트(예를 들면, 터치)가 되는지 여부를 확인하고 중요 로직을 실행할 수 있다.
단일의 어플리케이션의 경우 한 명이 실수나 부정 사용이 회사에 치명적인 결과를 초래할 수 있는 것과 달리, 이러한 기능은 B2B 용 솔루션에서 보안 장치들을 분리하여 보관하므로 큰 금액의 결제와 같이 중요한 로직을 수행할 때 위험을 절감시킬 수 있다.
도 8은 일 실시예에 따른 서버와 클라이언트간 동작을 통하여 신뢰실행환경을 제공하는 것을 설명하기 위한 도면이다.
서버 측(800)과 클라이언트 측(810) 간의 데이터 송수신을 통하여 SGX와 보안 장치의 장점을 결합한 보다 개선된 신뢰실행환경을 제공하는 동작을 설명하기로 한다.
우선, 클라리언트 측(810)의 동작을 설명하기로 한다. 예를 들면, 크롬 익스텐션을 이용하여 웹 앱과 엔클레이브 앱(503)에서 Native message로 연동될 수 있다. 보안 장치(200)는 크롬에서 지원되는 API를 통하여 메시지를 송수신할 수 있다. 엔클레이브(504)는 SGX 엔클레이브일 수 있으며, 주요 프로그램을 동작시키고, 사용자의 확인이 필요한 경우, 보안 장치(200)에게 보안 장치에 설정된 이벤트(예를 들면, 터치)를 입력하도록 요청할 수 있다. 엔클레이브(504)는 암호화된 키 저장소(Encrypted Key Storage)(811)에 기반한 실링(Sealing)을 통해 엔클레이브에서 생성된 중요 정보를 디스크에 암호화하여 저장할 수 있다.
서버 측(800)의 동작을 설명하기로 한다. 서비스 제공자(500)에서는 보안 장치(200)로부터 전달받은 공개키를 저장하고, 이러한 공개키를 이용하여 인증에 사용할 수 있다. 서비스 제공자(500)는 보안 장치 관리기(FIDO U2F Manager)(804), 데이터베이스(805), 엔클레이브 빌더(Enclave Builder)(806) 및 엔클레이브 앱 다운로더(Enclave App Downloader)(807)를 포함할 수 있다. 서비스 제공자(500)는 웹 서비스를 제공하는 웹 서버(803)와 연동될 수 있다. 사용자가 엔클레이브 앱(503)의 다운로드를 요청함에 따라 엔클레이브 빌더(806)는 보안 장치(200)에서 전달받은 공개키를 포함하는 엔클레이브(504)를 컴파일 및 빌드하여 사용자에게 엔클레이브 앱 다운로더(807)을 통하여 엔클레이브 앱(503)을 다운로드해줄 수 있다. 구체적으로, 사용자로부터 웹 서버(803)에서 제공되는 웹 서비스를 통하여 엔클레이브 앱(503)의 다운로드가 요청됨에 따라 보안 장치 관리기(804)가 엔클레이브 빌더(806)에게 엔클레이브(504)를 컴파일 및 빌드하도록 요청할 수 있다. 또한, 보안 장치 관리기(804)는 데이터베이스(805)에 보안 장치(200)로부터 전달받은 공개키를 저장해놓을 수 있다.
서비스 제공자는 엔클레이브(504)에서 파라미터로 입력된 값이 유효한 지 검증을 수행할 수 있다. 이때, SGX와 연관된 외부 서버와 연동될 수 있다. 예를 들면, 인텔에서 제공하는 IAS(Intel Attestation Service)(802)와 연동될 수 있다. IAS(802)에서 검증된 검증 결과가 이메일 또는 SMS 서비스(801)를 통해 전달하여 사용자의 전자 기기에서 확인할 수 있도록 한다. 이때, 사용자의 전자 기기 이외의 사용자와 관련된 다른 전자 기기에서 확인이 가능하다. 검증 결과를 판단하는 사용자는 보안 장치(200)를 터치하여 중요 프로그램의 로직을 수행하도록 허용할 수 있다. 이때, 사용자가 보안 장치(200)를 터치하지 않거나 기 설정된 시간 이내에 터치하지 않는 경우, 중요 프로그램의 로직을 수행하지 않고 프로그램을 중단할 수 있다.
이와 같이 서버 측(800)과 클라이언트 측(810)의 동작을 통하여 보다 성능이 뛰어난 신뢰실행환경을 제공할 수 있다. 표 1은 신뢰실행환경을 비교한 것을 나타낸 표이다.
Figure 112018069633257-pat00001
TrustZone은 ARM 계열의 CPU에서 제공하는 신뢰실행환경으로 참고용으로 비교하였다. 또한, Intel SGX와 FIDO U2F Device는 이미 설명하였다. 디바이스는 필요로 하는 디바이스 또는 모델명을 의미하고, Flexible Logic은 신뢰실행환경에서 개발자가 프로그램을 할 수 있는지를 의미한다. Trust I/O는 Trust I/O가 지원되는지, Development는 신뢰실행환경을 이용하여 개발하는 개발 주체가 누구인지를 의미하고, Deployment는 해당 신뢰실행환경이 적용된 영역을 의미한다.
실시예에서는 보다 Intel SGX와 FIDO U2F Device의 장점을 결합한 신뢰실행환경(TEE+)를 제안하였다. 다시 말해서, Intel SGX와 FIDO U2F를 통해 user presence가 보장되는 Trust Input을 제공하고 또한 Intel SGX의 특성을 이용하여 Trust Output의 효과를 도출할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (15)

  1. 신뢰실행환경 시스템에서 수행되는 신뢰실행환경을 제공하는 방법에 있어서,
    적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서,
    사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 단계;
    상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계; 및
    상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 단계
    를 포함하고,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    상기 SGX 엔클레이브로 로직 실행이 요청됨에 따라 상기 SGX 엔클레이브에서 상기 SGX 엔클레이브로 요청된 파라미터 정보를 상기 사용자의 전자 기기로 피드백하기 위하여 상기 파라미터 정보에 대한 해시 값을 계산하고, 상기 계산된 해시 값을 검증을 위한 명령어 데이터의 일부 필드에 기입하여 리모트 에테스테이션(Remote Attestation)의 결과로 전송하는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  2. 제1항에 있어서,
    상기 신뢰실행환경(TEE+)을 제공하는 단계는,
    상기 신뢰실행환경을 제공함에 따라 상기 SGX 어플리케이션과 상기 적어도 하나 이상의 보안 장치 사이에 트러스트 인풋(Trust Input) 및 트러스트 아웃풋(Trust Output)을 지원하는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  3. 제1항에 있어서,
    상기 각각의 보안 장치를 등록하는 단계는,
    상기 SGX 어플리케이션의 다운로드가 수행됨에 따라 상기 SGX 어플리케이션에서 상기 보안 장치를 등록하는 과정에 저장된 공개키가 SGX 엔클레이브(Enclave)에 삽입되는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  4. 제1항에 있어서,
    상기 사용자의 식별 정보가 인증됨에 따라 각각의 보안 장치를 등록하는 단계는,
    상기 SGX 어플리케이션의 다운로드가 완료됨에 따라 SGX를 지원하는 SGX와 연관된 Remote Attestation Service를 통해서 상기 SGX의 이용 여부가 확인되고, 상기 SGX 엔클레이브와 상기 서비스 제공자와의 통신 세션을 연결하는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    서비스 제공자에 의하여 상기 SGX와 연관된 외부 서버로부터 전달받은 상기 검증을 위한 명령어 데이터의 값이 상기 SGX를 제공하는 플랫폼에서 생성된 것인지 여부가 확인되는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  7. 제6항에 있어서,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    상기 검증을 위한 명령어 데이터의 값이 상기 SGX를 제공하는 플랫폼에서 생성된 것으로 판단됨에 따라 상기 SGX 엔클레이브로 요청된 파라미터 정보에 대하여 생성된 해시 값이 상기 명령어 데이터의 일부 필드에 기입된 값과 일치하는지 확인되는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  8. 제7항에 있어서,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    상기 SGX 엔클레이브로 요청된 파라미터 정보에 대하여 생성된 해시 값이 상기 명령어 데이터의 일부 필드에 기입된 값과 일치하는지 확인한 확인 결과가 상기 보안 장치와 연결된 전자 기기를 통하여 제공되는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  9. 제1항에 있어서,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    상기 보안 장치에 설정된 이벤트로서 터치가 입력됨에 따라 상기 SGX 엔클레이브에 저장된 공개키를 이용하여 상기 보안 장치의 개인키로 서명된 것인지 판별하는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  10. 신뢰실행환경 시스템에서 수행되는 신뢰실행환경을 제공하는 방법에 있어서,
    적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서,
    사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 단계;
    상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계; 및
    상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 단계
    를 포함하고,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 단계는,
    상기 서비스 제공자로에서 상기 적어도 하나 이상의 보안 장치에 대한 각각의 공개키를 가지고 빌드됨에 따라 상기 적어도 하나 이상의 보안 장치가 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트가 순차적으로 입력됨을 수신하여 로직이 실행되도록 컴파일되는 단계
    를 포함하는 신뢰실행환경 제공 방법.
  11. 신뢰실행환경 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서,
    사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 과정;
    상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정; 및
    상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 과정
    을 포함하고,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은,
    상기 SGX 엔클레이브로 로직 실행이 요청됨에 따라 상기 SGX 엔클레이브에서 상기 SGX 엔클레이브로 요청된 파라미터 정보를 상기 사용자의 전자 기기로 피드백하기 위하여 상기 파라미터 정보에 대한 해시 값을 계산하고, 상기 계산된 해시 값을 검증을 위한 명령어 데이터의 일부 필드에 기입하여 리모트 에테스테이션(Remote Attestation)의 결과로 전송하는
    신뢰실행환경 시스템.
  12. 제11항에 있어서,
    상기 각각의 보안 장치를 등록하는 과정은,
    상기 SGX 어플리케이션의 다운로드가 수행됨에 따라 상기 SGX 어플리케이션에서 상기 보안 장치를 등록하는 과정에 저장된 공개키가 SGX 엔클레이브(Enclave)에 삽입되고, 상기 SGX 어플리케이션의 다운로드가 완료됨에 따라 SGX를 지원하는 SGX와 연관된 Remote Attestation Service를 통해서 상기 SGX의 이용 여부가 확인되고, 상기 SGX 엔클레이브와 상기 서비스 제공자와의 통신 세션을 연결하는
    것을 특징으로 하는 신뢰실행환경 시스템.
  13. 삭제
  14. 제11항에 있어서,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은,
    상기 보안 장치에 설정된 이벤트로서 터치가 입력됨에 따라 상기 SGX 엔클레이브에 저장된 공개키를 이용하여 상기 보안 장치의 개인키로 서명된 것인지 판별하는
    것을 특징으로 하는 신뢰실행환경 시스템.
  15. 신뢰실행환경 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    적어도 하나 이상의 보안 장치, SGX 엔클레이브를 포함하고 있는 SGX 어플리케이션으로 구성된 환경에서,
    사용자의 식별 정보에 대한 인증을 통하여 서비스 제공자에게 적어도 하나 이상의 보안 장치를 등록하는 과정;
    상기 서비스 제공자의 상기 사용자의 인증 요청에 응답하여 상기 등록된 적어도 하나 이상의 보안 장치에 기반한 사용자의 식별 정보의 인증을 수행한 후, 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정; 및
    상기 인증을 완료함에 따라 상기 SGX 어플리케이션 및 상기 적어도 하나 이상의 보안 장치가 결합되어 구성된 신뢰실행환경(TEE+)을 제공하는 과정
    을 포함하고,
    상기 적어도 하나 이상의 보안 장치에 설정된 이벤트의 입력을 수신하여 인증을 완료하는 과정은,
    상기 서비스 제공자로에서 상기 적어도 하나 이상의 보안 장치에 대한 각각의 공개키를 가지고 빌드됨에 따라 상기 적어도 하나 이상의 보안 장치가 상기 적어도 하나 이상의 보안 장치에 설정된 이벤트가 순차적으로 입력됨을 수신하여 로직이 실행되도록 컴파일되는
    것을 특징으로 하는 신뢰실행환경 시스템.
KR1020180082124A 2018-05-08 2018-07-16 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법 KR102095114B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20180052434 2018-05-08
KR1020180052434 2018-05-08
KR20180052437 2018-05-08
KR1020180052437 2018-05-08

Publications (2)

Publication Number Publication Date
KR20190128534A KR20190128534A (ko) 2019-11-18
KR102095114B1 true KR102095114B1 (ko) 2020-03-30

Family

ID=68727847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180082124A KR102095114B1 (ko) 2018-05-08 2018-07-16 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법

Country Status (1)

Country Link
KR (1) KR102095114B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159018B (zh) * 2019-12-17 2021-06-22 浙江大学 基于软件防护扩展指令sgx的在线模糊测试系统和方法
CN114896603A (zh) * 2022-05-26 2022-08-12 支付宝(杭州)信息技术有限公司 一种业务处理方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100998658B1 (ko) 2008-04-22 2010-12-07 (주)네오위즈게임즈 이동식 장치를 이용하여 로그인하는 방법, 시스템 및 서버
JP2017520959A (ja) 2014-05-05 2017-07-27 マイクロソフト テクノロジー ライセンシング,エルエルシー 信頼実行環境を含むホストのアテステーション

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101637155B1 (ko) * 2014-02-13 2016-07-07 주식회사 디지캡 신뢰 서비스 장치를 이용한 신뢰된 아이덴티티 관리 서비스 제공 시스템 및 그 운영방법
US9621547B2 (en) * 2014-12-22 2017-04-11 Mcafee, Inc. Trust establishment between a trusted execution environment and peripheral devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100998658B1 (ko) 2008-04-22 2010-12-07 (주)네오위즈게임즈 이동식 장치를 이용하여 로그인하는 방법, 시스템 및 서버
JP2017520959A (ja) 2014-05-05 2017-07-27 マイクロソフト テクノロジー ライセンシング,エルエルシー 信頼実行環境を含むホストのアテステーション

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ben Toews, "iOS Security Key"(2016.08.)

Also Published As

Publication number Publication date
KR20190128534A (ko) 2019-11-18

Similar Documents

Publication Publication Date Title
EP3704613B1 (en) Provisioning trusted execution environment(s) based on chain of trust including platform
US9871821B2 (en) Securely operating a process using user-specific and device-specific security constraints
CN109075976B (zh) 取决于密钥认证的证书发布
KR102217941B1 (ko) 타깃이 되는 컴퓨팅 디바이스 상에서 수행될 동작을 인가하는 방법
US10250594B2 (en) Declarative techniques for transaction-specific authentication
KR102276873B1 (ko) 모바일 통신 디바이스 및 그 작동 방법
KR102233356B1 (ko) 모바일 통신 디바이스 및 그 작동 방법
JP6887421B2 (ja) コンテナ間における信頼性の確立
KR101704329B1 (ko) 프리빌리지 컴퓨팅 작동의 결과 보호
EP3704614B1 (en) Provisioning trusted execution environment based on chain of trust including platform
KR20170129866A (ko) 블록 체인을 사용하여 디바이스 무결성의 자동화된 입증
CN103828292A (zh) 带外远程认证
CN104798076A (zh) 使用聚合安全引擎针对网络服务提供商的隐私增强密钥管理
KR20190128532A (ko) 암호화폐 계좌 분석 및 Remote Attestation을 활용한 안전한 암호화폐 거래 방법
TW201944276A (zh) 電腦系統以及初始化電腦系統的方法
KR102095114B1 (ko) 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법
Zhang et al. Trusttokenf: A generic security framework for mobile two-factor authentication using trustzone
US10771249B2 (en) Apparatus and method for providing secure execution environment for mobile cloud
Imran et al. {SARA}: Secure android remote authorization
Ribeiro et al. DBStore: A TrustZone-backed Database Management System for Mobile Applications.
KR102393537B1 (ko) 신뢰실행환경에 기반한 소프트웨어 라이선스 관리 방법 및 시스템
Agarwal A Trusted-Hardware Backed Secure Payments Platform for Android
Feng et al. Using mobile phones to enhance computing platform trust
Ribeiro HCE Mobile Ticketing
Vossaert et al. Client-side biometric verification based on trusted computing

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