KR20140114263A - 어플리케이션 인증 방법 및 이를 구현하는 전자 장치 - Google Patents

어플리케이션 인증 방법 및 이를 구현하는 전자 장치 Download PDF

Info

Publication number
KR20140114263A
KR20140114263A KR1020130157463A KR20130157463A KR20140114263A KR 20140114263 A KR20140114263 A KR 20140114263A KR 1020130157463 A KR1020130157463 A KR 1020130157463A KR 20130157463 A KR20130157463 A KR 20130157463A KR 20140114263 A KR20140114263 A KR 20140114263A
Authority
KR
South Korea
Prior art keywords
mode
ntee
memory
software program
data
Prior art date
Application number
KR1020130157463A
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 US14/209,017 priority Critical patent/US9280655B2/en
Publication of KR20140114263A publication Critical patent/KR20140114263A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

본 개시의 다양한 실시예는 트러스티드 어플리케이션(TA: trusted application)이 신뢰한 TEE 요소들을 사용하여, 트러스티드 어플리케이션의 동작을 요청하는 NTEE(non-trusted execution environment) 클라이언트를 인증하는 매커니즘을 제안한다. 이를 위해 본 개시의 일 실시예에 따른 전자 장치를 운영하는 방법은 상기 전자 장치의 프로세서에 의하여, 제 1 모드(예, TEE) 또는 제 2 모드(예, NTEE) 중 제 1 모드를 수행하는 동작으로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 동작, 상기 프로세서에 의하여, 상기 제 1 모드에서, 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하는 동작 및 상기 프로세서에 의하여, 상기 제 1 모드에서, 상기 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하는 동작을 포함할 수 있다. 다른 실시예들이 가능하다.

Description

어플리케이션 인증 방법 및 이를 구현하는 전자 장치{APPLICATION AUTHENTICATION METHOD AND ELECTRONIC DEVICE IMPLEMENTING THE SAME}
본 개시는 어떠한 동작(operation)을 요청하는, 실행되고 있는(on run time) 어플리케이션을 인증하는 방법 및 이를 구현하는 전자 장치에 관한 것이다.
현재, 스마트 폰이나 태블릿 PC 등과 같은 전자 장치는 논트러스티드 실행 환경(non-trusted execution environment; NTEE)과 트러스티드 실행 환경(trusted execution environment; TEE)을 포함할 수 있다. NTEE는 일반적인 운영체제(operating system; OS), 드라이버들, 미들웨어, 어플리케이션들을 포함한다. 이러한 시스템의 예는 안드로이드이다. 안드로이드는 리눅스커널, 장치 드라이버들, 안드로이드 실행 환경, 안드로이드 미들웨어 및 어플리케이션들을 포함한다. TEE는 보안 요소들(security critical components)을 포함한다. 보안 요소들은 실행 중인(on run time) NTEE 요소들에 의해 접근된다. 이러한 접근에 의해 특정 보안 관련 동작들(specific security related operations)이 실행된다. 일반적으로 TEE는 보안 OS, 보안 드라이버들, 보안 미들웨어 및 트러스티드 어플리케이션(TA: trusted application)들을 포함한다. 또한 TEE는 특별한 모듈을 포함한다. 이러한 특별한 모듈(예, 모니터)은 NTEE와 TEE 간의 통신을 핸들링한다. TEE의 무결성(integrity)을 지키기(preserve) 위해, TEE의 모든 요소들은 보안 부트의 지배를 받는다(governed by secure boot). 따라서, TEE의 무결성은 시스템의 부팅 중에(on system boot time) 검사될 수 있다.
NTEE 요소는 보안 동작(security critical operation)을 실행하도록 TEE에게 요청할 수 있다. 이러한 NTEE 요소는 NTEE 클라이언트라고 지칭될 수 있다. NTEE 클라이언트들의 예는 NTEE 네이티브 어플리케이션들 및 안드로이드 어플리케이션들이다. 일반적으로 NTEE 미들웨어는 NTEE 클라이언트들로부터 보안 동작의 요청을 수신한다. NTEE 미들웨어는 TEE 드라이버로 보안 동작의 요청을 전달한다. TEE 드라이버는 TEE 와 통신을 수행한다. NTEE 클라이언트는 TEE 드라이버와 직접, 통신할 수도 있다.
TEE 드라이버는 TEE 동작을 위한 요청을 모니터로 전달한다. 그러면, 모니터는 NTEE에서 TEE로 전환(swiching)하고, 상기 요청을 보안 OS의 핸들러(Request handler)로 전달한다. 보안 OS는 요청을 핸들링할트러스티드 어플리케이션을 식별한다. 보안 OS는 식별된 트러스티드 어플리케이션에 요청을 전달한다. 이에 따라 해당 트러스티드 어플리케이션은 특정 동작을 실행한다. 보안 OS는 요청을 직접, 트러스티드 어플리케이션에 전달하거나, 보안 미들웨어를 통해 트러스티드 어플리케이션에게 전달할 수도 있다.
대안적으로, 요청은 트러스티드 어플리케이션에 의해 처리될 데이터를 포함할 수 있다. 요청은 처리되어야 하는, NTEE 메모리 내의 데이터에 대한 레퍼런스를 포함할 수도 있다. 요청은 NTEE 메모리(이곳에 TEE 동작의 결과가 저장될 것임)에 대한 레퍼런스를 포함할 수도 있다. NTEE 메모리는 읽기 동작 및 쓰기 동작을 위해 TEE 보안 OS가 접근할 수 있는 것이다. 그러나, TEE 메모리는 NTEE 요소들의 접근으로부터 차단(block) 된다.
트러스티드 어플리케이션이 단지 특정 NTEE 요소(specific NTEE component)를 위해 보안 동작(security critical operation)을 실행할 수 있기 때문에, 트러스티드 어플리케이션이 그 동작(보안 동작)의 실행을 요청한 NTEE 클라이언트의 무결성을 검사하는 것은 중요하다.
현존하는 솔루션 예컨대, TrustZone Client API specification 3.0 또는 Global Platform Client API Specification 1.0은 NTEE 클라이언트 무결성 검사를 위한 매커니즘을 제공한다. 즉, 두 설명서(specification) 모두, NTEE 클라이언트에 대한 특정 정보를 수집하도록 NTEE 환경에게 명령한다. 그리고 두 설명서(specification) 모두, 수집된 정보(일명, log-in information)를, TEE 드라이버를 통해 TEE의 트러스티드 어플리케이션에 게 전달한다. 예컨대, NTEE 환경은 NTEE 실행 파일의 해시(hash)를 계산함으로써 NTEE 클라이언트의 무결성을 검사할 수 있다. 다른 예는 공급된 데이터를 "TEE의 트러스티드 어플리케이션을 위한 인증 토큰(authentication token)"으로써, NTEE 클라이언트에 공급하는 것이다.
이러한무결성 방식은 "NTEE 클라이언트 인증에 관여된 모든 NTEE 요소들이 TEE의 트러스티드 어플리케이션에 의해 신뢰되어야 함"을 요구한다. 즉, TEE의 트러스티드 어플리케이션은 NTEE OS, TEE 드라이버, NTEE 미들웨어에 대해 신뢰할 것이다. 그러나, 현실적인 NTEE의 실현(implementation)은 자주, "NTEE 요소들 중 어떤 것은 자유롭게 변경될 수 있음"을 가정한다. 따라서, TEE는 NTEE의 요소들을 기꺼이 신뢰할 수 없다.
예컨대, NTEE 미들웨어는 악의적인 소프트웨어(malicious software)에 의해 변경될 수 있다. 따라서, 유효한 NTEE 클라이언트 실행 파일(valid NTEE client executable file)의 해시는 악의적인 NTEE 클라어인트 실행 파일의 해시로 대체될 수 있다.TEE 드라이버는 다른 것으로 대체되어, 클라이언트 식별 데이터(client identification data)를 가로채서 악의적인 NTEE 클라이언트로 전달할 수 있다.
NTEE 요소들은 악의적인 소프트웨어에 의해 변경될 수 있다. 이러한 조건 하에서, NTEE 요소들을 사용하여 NTEE 클라이언트를 인증 기반 솔루션은 보안의 높은 레벨을 제공할 수 없다. 따라서, TEE의 트러스티드 어플리케이션은 NTEE 요소들로부터 공급받은 NTEE 클라이언트 인증 데이터를 완전히 신뢰할 수 없다.
본 개시는트러스티드 어플리케이션이 신뢰한 TEE 요소들을 사용하여, 트러스티드 어플리케이션의 동작의 실행을 요청하는 NTEE 클라이언트를 인증하는 매커니즘을 제안한다. 즉, 본 개시는 실행되고 있는(on run time)NTEE 클라이언트를 신뢰성 있게 인증하는방법 및 이를 구현하는 전자 장치를 제공함을 목적으로 한다.
본 개시의 일 실시예에 따른 전자 장치를 운영하는 방법은, 상기 전자 장치의 프로세서에 의하여, 제 1 모드 또는 제 2 모드 중 제 1 모드를 수행하는 동작으로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 동작, 상기 프로세서에 의하여, 상기 제 1 모드에서, 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하는 동작 및 상기 프로세서에 의하여, 상기 제 1 모드에서, 상기 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하는 동작을 포함할 수 있다.
본 개시의 일 실시예에 따른 전자 장치는, 제 1 영역 및 제 2 영역을 포함하도록 구성된 메모리 및 제 1 모드 및 제 2 모드를 수행하도록 구성된 프로세서로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 프로세서를 포함하며 상기 프로세서는, 상기 제 1 모드에서, 상기 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하고, 상기 제 1 모드에서, 상기 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하도록 구성될 수 있다.
본 개시의 다양한 실시예는 실행되고 있는(on run time)NTEE 클라이언트를 신뢰성 있게 인증하는 방법 및 이를 구현하는 전자 장치를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 블록 구성도이다.
도 2는 본 개시의 일 실시예에 따른 프로그래밍 모듈(200)의 블록도를 도시한다.
도 3은 본 개시의 일 실시예에 따른 메모리의 블록도를 도시한다.
도 4는 본 개시의 일 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면들을 참조하여 다양한 실시예들을 상세히 설명한다. 이때, 첨부된 도면들에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 개시의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 하기의 설명에서는 본 개시의 다양한 실시 예들에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 개시의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 개시에서 전자 장치는 NTEE와 TEE를 포함한 장치일 수 있다. 예를 들면, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 카메라(camera), 웨어러블 장치(wearable device), 전자 시계(electronic clock), 손목 시계(wrist watch), 가전 제품(home appliance)(예: 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기 등), 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 전자 사전, 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(electronic equipment for ship, 예를 들면, 선박용 항법 장치, 자이로콤파스 등), 항공 전자기기(avionics), 보안 기기, 전자 의복, 전자 키, 캠코더(camcorder), 게임 콘솔(game consoles), HMD(head-mounted display), 평판표시장치(flat panel display device), 전자 액자, 전자 앨범, 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device) 또는 프로젝터(projector) 등의 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 본 개시에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.이하에서 본 개시에 따른 전자 장치 및 이에 의해 구현되는 어플리케이션 인증 방법에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 블록 구성도이다.
도 1을 참조하면, 본 개시의 일 실시예에 따른 전자 장치(100)는표시부(110), 키입력부(120), 메모리(130), 무선통신부(140), 오디오처리부(150), 스피커(SPK), 마이크(MIC), 카메라(160), 센서부(170) 및 제어부(180)를 포함할 수 있다.
표시부(110)는 제어부(180)의 제어 하에 데이터를 화면에 표시한다. 즉 제어부(180)가 데이터를 처리(예컨대, 디코딩(decoding), 리사이징(resizing))하여 메모리(예, 표시부(110)의 내부 메모리 또는 메모리(130))에 저장하면, 표시부(110)는 메모리에 저장된 데이터를 아날로그 신호로 변환하여 화면에 표시한다.표시부(110)는 패널 또는 홀로그램을 포함할 수 있다. 패널은 예컨대, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 패널은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 패널은 터치 패널(111)과 하나의 모듈로 구성될 수도 있다.홀로그램은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 표시부(110)는 패널 또는 홀로그램을 제어하기 위한 제어회로를 더 포함할 수 있다.
터치패널(111)은 표시부(110)의 화면에 설치된다. 구체적으로 터치패널(111)은 표시부(110)의 화면에 위치하는 애드 온 타입(add-on type)이나 표시부(110) 내에 삽입되는 온 셀 타입(on-cell type) 또는 인 셀 타입(in-cell type)으로 구현된다.
터치패널(111)은 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 사용자 입력을 감지하고, 사용자 입력에 대응되는 이벤트를 생성하여 제어부(180)로 전달할 수 있다. 또한, 터치 패널(111)은 컨트롤러(미도시)를 더 포함할 수도 있다. 컨트롤러는 예를 들어, 인식된 터치 입력에서 터치 좌표들 중대표를 결정하고, 결정된 터치 좌표를 제어부(180)로 전달한다. 물론, 이러한 컨트롤은 제어부(180)에서 수행될 수도 있다.
키입력부(120)는 적어도 하나의 터치 키를 포함하여 이루어질 수 있다. 이러한 터치 키는 일반적으로 인체 및 사물의 터치 또는 접근을 인식할 수 있는 모든 종류의 입력 수단을 의미한다. 키 입력부(120)는사용자 입력(예, 공유 재생 명령)에 응답하여 이벤트를 생성하고, 이를 제어부(180)로 전달할 수 있다. 키입력부(120)는 터치 방식 외에 다른 방식의 키를 더 포함하여 이루어질 수 있다. 예컨대, 키입력부(120)는 적어도 하나의 돔(dome) 키를 포함하여 이루어질 수 있다.
메모리(130)는 제어부(180)의 제어 하에, 전자 장치(100)에서 생성되거나 무선통신부(140)를 통해 외부장치(예, 서버, 데스크탑 PC, 태블릿 PC 등)로부터 수신한 데이터를 저장한다. 또한 메모리(130)는 부팅 프로그램, 적어도 하나 이상의 운영체제 및 어플리케이션들을 저장한다. 또한 메모리(130)는 전자장치(100)의 사용 환경을 설정하기 위한 다양한 설정 정보들을 저장할 수 있다. 이에 따라 제어부(180)는 설정 정보를 참조하여 전자장치(100)를 운영할 수 있다.
메모리(130)는 메인 메모리(main memory)와 보조 메모리(secondary memory)를 포함할 수 있다. 메인 메모리는 예컨대, 램(RAM) 등으로 구현될 수 있다. 보조 메모리는 디스크, 램(RAM), 롬(ROM) 또는 플래시 메모리 등으로 구현될 수 있다. 메인메모리는 보조 메모리로부터 로딩된 각종 프로그램들 예컨대, 부팅 프로그램, 운영체제 및 어플리케이션들을 저장할 수 있다. 제어부(180)로 배터리의 전원이 공급되면 먼저 부팅 프로그램이 메인메모리로 로딩(loading)될 수 있다. 이러한 부팅 프로그램은 운영체제를 메인메모리로 로딩할 수 있다. 운영체제는 어플리케이션을 메인메모리로 로딩할 수 있다. 제어부(180)(예컨대, 어플리케이션 프로세서)는 메인메모리에 접근하여 프로그램의 명령어(루틴)를 해독하고, 해독 결과에 따른 기능(function)을 실행(execute)할 수 있다. 즉 각종 프로그램들은 메인메모리로 로드되어, 프로세서(예, 어플리케이션 프로세서)가 해당 동작(operation)을실행하도록 설정될 수 있다.메모리(130)는 외장 메모리를 더 포함할 수도 있다. 예컨대, 메모리(130)는 외장 메모리로써, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 MemoryStick 등을 포함할 수 있다.
무선통신부(140)는 제어부(180)의 제어 하에, 네트워크를 통해 외부장치와 음성 통화, 화상 통화 또는 데이터 통신을 수행한다. 무선통신부(140)는 송신되는 신호의 주파수를 상승변환 및 증폭하는 무선주파수 송신부와, 수신되는 신호의 주파수를 저잡음 증폭 및 하강 변환하는 무선주파수 수신부를 포함한다. 또한 무선 통신부(140)는 이동 통신 모듈(예컨대, 3세대(3-Generation) 이동통신모듈, 3.5세대(3.5-Generation) 이동통신모듈 또는 4세대(4-Generation) 이동통신모듈 등), 디지털 방송 모듈(예컨대, DMB 모듈) 및 근거리 통신 모듈(예, 와이파이(Wi-Fi) 모듈, 블루투스(bluetooth) 모듈, NFC(Near Field Communication) 모듈)을 포함한다.
오디오처리부(150)는 스피커(SPK) 및 마이크(MIC)와 결합하여 음성 인식, 음성 녹음, 디지털 레코딩(recording) 및 통화를 위한 오디오 신호(예, 음성 데이터)의 입력 및 출력을 수행한다. 오디오 처리부(150)는 제어부(180)로부터 오디오 신호를 수신하고, 수신한 오디오 신호를 아날로그로 D/A 변환하고 증폭한 후 스피커(SPK)로 출력한다. 오디오 처리부(150)는 마이크(MIC)으로부터 수신한 오디오 신호를 디지털로 A/D 변환한 후 제어부(180)로 제공한다. 스피커(SPK)는 오디오 처리부(150)로부터 수신한 오디오 신호를 음파(sound wave)로 변환하여 출력한다. 마이크(MIC)는 사람이나 기타 소리원(sound source)들로부터 전달된 음파를 오디오 신호로 변환한다.
카메라(160)는 화상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 렌즈 또는 후면 렌즈), ISP(image signal processor, 미도시) 또는 플래쉬 LED(flash LED, 미도시)를 포함할 수 있다.
센서부(170)는 물리량(예, 가속도, 압력, 광량 등)이나 그 변화를 감지하고, 감지 정보(예, 전압 변화량(Δv))를 생성하여 제어부(180)로 전달할 수 있다. 또한 센서부(170)는 전자 장치(100)의 동작 상태(예, 움직임)을 감지하고, 그 감지 정보를 생성하여 제어부(180)로 전달할 수 있다.센서부(170)는, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, RGB(red, green, blue) 센서, 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수 있다. 나아가, 센서부(170)는 예를 들면, 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogram sensor, 미도시) 또는 지문 센서 등을 더 포함할 수도 있다. 센서부(170)는 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어회로를 더 포함할 수 있다. 또한 센서부(170)에 속한 센서들은 하나의 칩에 일체화되거나 각각 별도의 칩들로 구현될 수 있다.
제어부(180)는 전자 장치(100)의 전반적인 동작 및 전자 장치(100)의 내부 구성들 간의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행하고, 배터리에서 상기 구성들로의 전원 공급을 제어한다. 제어부(180)는 하나 이상의 프로세서를 포함할 수 있다. 예컨대, 제어부(180)는 하나 이상의 어플리케이션 프로세서(AP: Application processor)(181) 또는 하나 이상의 커뮤니케이션 프로세서(CP: communication processor)(182)을 포함할 수 있다. AP(181)와 CP(182)는 단일 집적 회로로 이루어진 하나의 패키지(package)로 통합될 수 있다. 물론, AP(181)와CP(182)는 서로 다른 패키지들 내에 각각 포함될 수도 있다.
AP(181)는 운영체제 또는 어플리케이션을 실행하여 AP(181)에 연결된 다수의 하드웨어 또는 소프트웨어들을 제어하고, 각종 데이터 처리 및 연산을 수행할 수 있다. AP(181)는, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시예에 따르면, 제어부(180)는 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.
CP(182)는 전자 장치(100)와 네트워크로 연결된 다른 외부 장치들 간의 통신에서 데이터 링크를 관리하고 통신 프로토콜을 변환하는 기능을 수행할 수 있다. CP(182)는 예를 들면, SoC로 구현될 수 있다. 한 실시예에 따르면, CP(182)는 멀티미디어 제어 기능의 적어도 일부를 수행할 수 있다. CP(182)는, 예를 들면, 가입자 식별 모듈(예: SIM 카드)을 이용하여 통신 네트워크 내에서 단말의 구별 및 인증을 수행할 수 있다. 또한, CP(182)는 사용자에게 음성 통화, 영상 통화, 문자 메시지 또는 패킷 데이터(packet data) 등의 서비스들을 제공할 수 있다.또한, CP(182)는무선통신부(140)의 데이터 송수신을 제어할 수 있다.
한 실시예에 따르면, AP(181) 또는 CP(182)는 각각에 연결된 비휘발성 메모리 또는 전자장치(100)의 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, AP(181)또는 CP(182)는 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비휘발성 메모리에 저장할 수 있다.
한편, 전자 장치(100)은 이어잭, GPS(Global Positioning System) 모듈, 진동 모터, 액세서리 등과 같이 상기에서 언급되지 않은 구성들을 더 포함할 수 있다. 여기서 액세서리는 전자 장치(100)로부터 분리가 가능한 전자 장치(100)의 부속품으로써 예컨대, 터치를 위한 펜이 될 수 있다.
본 개시에 사용된 용어"모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은 예를 들어, 부(unit), 로직(logic), 논리 블록(logical block), 부품(component) 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, 본 개시에 따른 "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 실행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
도 2는 본 개시의 일 실시예에 따른 프로그래밍 모듈(200)의 블록도를 도시한다.
프로그래밍 모듈(200)은 도 1에 도시된 전자 장치(100)의 메모리(130; 메인 메모리)에 포함(예, 저장)될 수 있다. 프로그래밍 모듈(200)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다. 프로그래밍 모듈(200)은 NTEE 모듈(210),TEE 모듈(220) 및 모니터(230)를 포함할 수 있다.
NTEE 모듈(210)은 커널(211), NTEE 미들웨어(212) 및 NTEE 어플리케이션들(213, 214)을 포함할 수 있다. 커널(211)은 나머지 다른 프로그래밍 모듈들, 예를 들면, NTEE 미들웨어(212), NTEE 어플리케이션 프로그래밍 인터페이스(API: application programming interface)(미도시) 또는 어플리케이션들(213, 214)에 구현된 동작 또는 기능을 실행하는데 사용되는 시스템 리소스들(예: 버스(Bus), 프로세서 또는 메모리 등)을 제어 또는 관리할 수 있다.또한, 커널(211)은 NTEE 미들웨어(212), NTEE API 또는 NTEE 어플리케이션들(213, 214)에서 전자 장치(100)의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다. 또한, 커널(211)은 시스템 리소스 매니저와 드라이버를 포함할 수 있다. 시스템 리소스 매니저는 시스템 리소스의 제어, 할당 또는 회수 등을 수행할 수 있다. 드라이버는 커널(211)의 명령에 응답하여 자신이 담당하는 모듈의 입력 및 출력을 제어한다. 예컨대, 드라이버는 디스플레이 드라이버, 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버 등을 포함할 수 있다. 특히, 드라이버는 TEE 드라이버(211a)를 포함할 수 있다.
NTEE미들웨어(212)는 NTEE API 또는 NTEE어플리케이션(213 또는 214)이커널(211)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(212)는 NTEE어플리케이션들(213, 214)로부터 수신된 작업 요청들과 관련하여, 예를 들면, NTEE어플리케이션들(213, 214) 중 적어도 하나에 전자 장치(100)의 시스템 리소스를 사용할 수 있는 우선순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 로드 밸런싱을 수행할 수 있다.
NTEE API는NTEE어플리케이션들(213, 214)이커널(211) 또는 NTEE 미들웨어(212)에서 제공하는 기능을 제어할 수 있는 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수를 포함할 수 있다.
NTEE어플리케이션들(213, 214)은, 예를 들면, 프리로드 어플리케이션(preloaded Application), 네이티브 어플리케이션(native application) 또는 서드파티 어플리케이션(third party application)을 포함할 수 있다.
TEE 모듈(220)은 보안 OS(221), 보안 미들웨어(222), NTEE 클라이언트의 인증에 책임이 있는 클라이언트 인증 블록(client authentication block; 223) 및 트러스티드 어플리케이션(224)를 포함할 수 있다. 보안 OS(221)는 보안 미들웨어(222), 클라이언트 인증 블록(223), TEE API(미도시) 및 트러스티드 어플리케이션(224)에 구현된 동작 또는 기능을 실행하는데 있어 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 또한, 보안 OS(221)는 보안 미들웨어(222), TEE API 또는 트러스티드어플리케이션(224)에서 전자 장치(100)의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.또한, 보안 OS(221)는 실행 중인 NTEE 모듈(210)의 접근(예, 읽기 동작 또는 쓰기 동작 등)을 제어(예컨대, 차단 또는 승인 등)할 수 있다. 또한 보안 OS(221)은 요청 핸들러(221a)를 포함할 수 있다. 요청 핸들러(221a)는 NTEE 모듈(210)로부터 TEE 동작의 요청을 수신하고, 이러한 요청을 처리할 수 있다. 여기서 TEE 동작의 요청에는 해당 NTEE 클라이언트(예, NTEE 어플리케이션)의 식별 정보를 포함할 수 있다.
보안 미들웨어(222)는 TEE API 또는 트러스티드 어플리케이션(224)이보안 OS(221)dhk 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 보안미들웨어(222)는 트러스티드 어플리케이션(224)로부터 수신된 작업 요청들과 관련하여, 예를 들면, 트러스티드 어플리케이션들 중 적어도 하나에 전자 장치(100)의 시스템 리소스를 사용할 수 있는 우선순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 로드 밸런싱을 수행할 수 있다.
클라이언트 인증 블록(223)은 TEE 동작의 실행을 요청한NTEE 클라이언트(예, NTEE 어플리케이션)를 인증하는 작업을 수행한다. 즉, 클라이언트 인증 블록(223)은 트러스티드 어플리케이션(224)로부터 NTEE 클라이언트의 인증 요청을 수신하고, 이에 응답하여 해당 NTEE 클라이언트의 인증 여부를 결정하고, 결정 결과를 트러스티드 어플리케이션(224)에 전달한다. 트러스티드 어플리케이션(224)은 이러한 결정 결과에 따라, NTEE 클라이언트가 요청한 동작을 실행하거나 부정(deny)할 수 있다.클라이언트 인증 블록(223)은 메모리 설정 데이터(223a)를 포함(예, NTEE 메모리에 액세스하여 저장)할 수 있다. 또한 클라이언트 인증 블록(223)은 메모리(예, NTEE 메모리)의 분석을 위한 메모리 파서(223b)를 포함할 수 있다.
트러스티드 어플리케이션(224)은 예를 들면, 프리로드 어플리케이션(preloaded Application), 네이티브 어플리케이션(native application) 또는 서드파티 어플리케이션(third party application)을 포함할 수 있다. 특히, 트러스티드 어플리케이션(224)은 NTEE 클라이언트의 인증 여부를 결정하기 위한 파라미터 예컨대, NTEE 클라이언트의 식별 정보, NTEE 클라이언트 RIMD(Reference Integrity Measurement Data) 및 RIM(Reference Integrity Metric) 검증(verification) 키를 클라이언트 인증 블록(223)에 제공할 수 있다.
모니터(230)는 NTEE 모듈(210)과 TEE 모듈(220) 간의 통신을 핸들링할 수 있다. NTEE 모듈(210)은 TEE 모듈(220)에 직접 접근할 수 없고, 모니터(230)를 통해서만 TEE 모듈(220)에 접근할 수 있게 설정될 수 있다. 이를 위해, 모니터(230)는 예컨대, ARM(Advance RISC Machine)사의 TrustZone 기술이 적용될 수 있다.
도 3은 본 개시의 일 실시예에 따른 메모리의 블록도를 도시한다.
도 3을 참조하면, 본 개시에 따른 메모리 예, 메모리(130)는 NTEE 메모리(131)와 TEE 메모리(132)를 포함할 수 있다. NTEE 메모리(131)와 TEE 메모리(132)는 물리적으로 하나 또는 그 이상의 메모리일 수 있으며 이종의 메모리 조합일 수도 있다. NTEE 메모리(131)는 TEE요소 예컨대, 보안 OS(221)가 읽기 및 쓰기 동작을 위해 접근이 가능하도록 설정될 수 있다. TEE 메모리(132)는 인증되지 않은 NTEE 요소들의 접근으로부터 차단되도록 설정될 수 있다. 메모리 파서(223b)는 리딩(reading) 및 파싱(parsing)을 위해, NTEE 메모리(131)를 액세스할 수 있다. 메모리 파서(223b)는NTEE 메모리(131)에 접근하기 위해 보안 OS(221)의 기능을 이용(utilize)할 수 있다. 메모리 파서(223b)는 메모리 설정 데이터(223a) 및 트러스티드 어플리케이션(예컨대, 트러스티드 어플리케이션(220))로부터의 인증 요청에 따라, 동작할 수 있다.메모리 설정 데이터(223a)는, 커널(예컨대, 커널(221))에서 다양한 어플리케이션 관련 제어 구조의 NTEE 메모리 위치(location)들에 대한 정보를 포함할 수 있다. 즉, NTEE 클라이언트의 제어 데이터 구조는 적어도, NTEE 클라이언트의 식별 정보와 NTEE 클라이언트에 대한 메모리 관리 정보(memory management information)를 포함할 수 있다.도 4는 본 개시의 일 실시예에 따른 어플리케이션 인증 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 단계 411에서 NTEE 모듈(210)의 적어도 일부(예, NTEE 어플리케이션(213))는 NTEE 미들웨어(212)에게 TEE 동작의 실행을 요청할 수 있다. 단계 412에서 NTEE 미들웨어(212)는 NTEE 어플리케이션(213)의 식별 정보를 커널(211)로부터 획득할 수 있다. 그리고 나서 단계 413에서 NTEE 미들웨어(212)는, TEE 동작의 실행을 요청하고 NTEE 어플리케이션(213)의 식별 정보를 TEE 동작 요청(TEE operation request)에 포함하도록, TEE 드라이버(211a)에 지시할 수 있다. 대안적으로(alternatively), NTEE 클라이언트 예컨대, NTEE 어플리케이션(214)은 TEE 드라이버(211a)에 직접 연결할 수 있다(도 2 참조). 즉, NTEE 어플리케이션(214)이 TEE 드라이버(211a)에게 직접, TEE 동작의 실행을 요청하고 NTEE 어플리케이션(214)의 식별 정보를 TEE 동작 요청에 포함하도록, 지시할 수도 있다. 그러면, TEE 드라이버(211a)는 NTEE 어플리케이션(214)의 식별 정보를 커널(211)로부터 획득하고, 획득된 식별 정보를 TEE 동작 요청에 포함시킬 수 있다.
NTEE 미들웨어(212) 또는 NTEE 어플리케이션(214)의 상기 지시에 응답하여, 단계 414에서 TEE 드라이버(211a)는 TEE로 전환하도록 모니터(230)를 작동(invoke)시킬 수 있다. 그리고 나서, 단계 415에서 TEE 드라이버(211a)는 모니터(230)를 통해 TEE모듈(220)에게 NTEE 클라이언트의 식별 정보와 함께 TEE 동작 요청을 제공할 수 있다. 요청 핸들러(221a)는 상기 요청을 처리할 수 있다. 구체적으로, 단계 416에서 요청 핸들러(221a)는 요청 받은 동작을 실행할 트러스티드 어플리케이션을식별할 수 있다. 단계 417에서 요청 핸들러(221a)는동작 요청과 함께 NTEE 클라이언트의 식별 정보를, 식별된 트러스티드 어플리케이션(예, 트러스티드 어플리케이션(224))에게 전달할 수 있다.
트러스티드 어플리케이션(224)는 동작 요청 및 NTEE 클라이언트의 식별 정보를 수신한다. 그러면, 단계 418에서트러스티드 어플리케이션(224)는 NTEE 클라이언트의 인증을 클라이언트 인증 블록(2230)에 요청할 수 있다. 구체적으로, 단계 418에서 트러스티드 어플리케이션(224)는 클라이언트 인증 블록(223)에게 식별 요청(identification)을 발행(issue)한다. 이를 위해, 트러스티드 어플리케이션(224)는 동작 요청과 관련된 파라미터들로써, NTEE 클라이언트의 식별 정보, NTEE Client RIMD 및 RIM (Reference Integrity Metric)검증(verification) 키를 클라이언트 인증 블록(223)에게 제공할 수 있다.
트러스티드 어플리케이션(224)의 인증 요청에 응답하여, 단계 419에서 클라이언트 인증 블록(223)은 NTEE클라이언트의 인증 여부를 결정할 수 있다. 단계 419의 구체적인 과정은 다음과 같을 수 있다.
클라이언트 인증 블록(223)은 먼저, 메모리 설정 데이터(223a)를 액세스할 수 있다. 다음으로, 클라이언트 인증 블록(223)은 NTEE 클라이언트의 식별 정보(트러스티드 어플리케이션(224)로부터 전달받은 정보임)를 포함한 데이터 구조(data structure)를NTEE 메모리(131)의 커널 메모리에서 찾는다. 그 다음에, 클라이언트 인증 블록(223)은찾은 데이터 구조를, 메모리 설정 데이터(223a)를 이용하여, 분석할 수 있다. 여기서 분석은 NTEE 클라이언트에 관련된 메모리 관리 정보(도 3 참조)를 찾기 위함이다.
메모리 관리 정보는 적어도, NTEE클라이언트의 코드와 메모리 영역들(memory regions) 간의 관련성(correspondence), 데이터 및 다른 어플리케이션 관련 정보를 포함할 수 있다. 따라서, 클라이언트 인증 블록(223)의 메모리 파서(223b)는 적어도, NTEE 클라이언트(예, TEE의 동작의 실행을 요청한 NTEE 어플리케이션(213))의 코드를 포함한 메모리 영역을 분석할 수 있다. 메모리 파서(223b)는 다른 메모리 영역을 분석할 수도 있다. 여기서 분석은 NTEE어플리케이션의 인증에 적합한 메모리 영역의 어드레스들의 리스트를 생성하기 위함이다.
메모리 파서(223b)는 NTEE 클라이언트의 식별 정보를 이용하여 NTEE 클라이언트에 대응되는 값을 산출하고, 산출된 값을 분석하여 NTEE 클라이언트에 대해 인증 여부를 결정할 수 있다. 일례로, 메모리 파서(223b)는적어도, 상기 리스트의 메모리 영역에 대해 미리 정의된 해시 함수(hash function)를 이용하여 해시 값(예컨대, NTEE 어플리케이션(21)의 코드)를 산출(calculate)할 수 있다.클라이언트 인증 블록(223)은 RIM 검증 키를 이용하여, NTEE 클라이언트 RIMD로부터 디지털 서명(digital signature)을 해독(decrypt)하여 참조 해시 값(reference hash value)을 획득할 수 있다. 클라이언트 인증 블록(223)은 참조 해시 값을, 메모리 파서 블록(223b)에 의해 산출된 해시 값과 비교한다.
단계 420에서 클라이언트 인증 블록(223b)은 NTEE 클라이언트에 대한 인증의 결과를 생성한다. 예컨대, 참조 해시 값과 산출된 해시 값이 매치(match)(예컨대, 두 값이 동일)되면, 클라이언트 인증 블록(223b)은 "NTEE 클라이언트가 성공적으로 인증되었음을 나타내는 결과 값"을 생성할 수 있다. 그렇지 않다면, 클라이언트 인증 블록(223b)는 "NTEE 클라이언트의 인증이 실패되었음을 나타내는 결과 값"을 생성할 수 있다.
단계 421에서 클라이언트 인증 블록(223)은 생성된 결과 값을 트러스티드 어플리케이션(224)로 전달할 수 있다. 단계 422에서 클라이언트 인증 블록(223)은 수신한 결과 값을 분석하여 NTEE 클라이언트의 인증 여부를 판단한다. NTEE 클라이언트가 인증된 경우, 단계 423에서트러스티드 어플리케이션(224)는 요청받은 동작을 실행할 수 있다. 그렇지 않다면, 단계 424에서 트러스티드 어플리케이션(224)은 요청받은 동작의 실행을 부정(deny)할 수 있다. 또는, 트러스티드 어플리케이션(224)은 요청 받은 동작 중 일부를 제한하여 실행할 수도 있다. 또는, 트러스트디드 어플리케이션(224)는 사용자에게 인증 결과 또는 인증 실패 결과를 제공할 수 있다. 상기 제공에 추가적으로, 인증 결과에 따른 동작(예를 들어, 부정, 제한 실행, 계속 실행)을 사용자에게 요청 할 수 있다.
본 개시의 다른 실시예에 따르면, 메모리 설정 데이터는 추가적인 데이터를 포함할 수 있다. 추가적인 데이터는 NTEE 메모리의 특정 메모리 영역들에 대한 것이다. 그 결과(추가적인 데이터가 메모리 설정 데이터에 포함된 경우), TEE의 트러스티드 어플리케이션(224)은, 특정 NTEE 클라이언트에 부여된 메모리에 한정되지 않고, NTEE의 다른 메모리 영역을 인증할 수 있다.
본 개시의 또 다른 실시예에 따르면, NTEE 커널의 코드 및 정적(static) 데이터는 TEE의 트러스티드 어플리케이션(224)에 의해 인증될 수 있다. 그러기 위해서는, 클라이언트 인증 블록은 메모리 설정 데이터에 따라, "NTEE 커널의 코드 및 정적 데이터"의(즉, 이들이 저장된) 메모리에 액세스할 수 있어야 한다. 그 결과, 클라이언트 인증 블록은 "NTEE 커널의 코드 및 정적 데이터"의 해시 값을 계산하고, 이것을 대응되는 참조 해시 값과 비교할 수 있다. 여기서 비교 방법은 NTEE 클라이언트를 위한 방법과 동일할 수 있다.
본 개시의 또 다른 실시예에 따르면, NTEE 커널에 적재 가능 모듈들(NTEE OS Kernel loadable modules )은 TEE의 트러스티드 어플리케이션(224)에 의해 인증될 수 있다. 그러기 위해서는, 클라이언트 인증 블록은 메모리 설정 데이터에 따라, "적재 가능 모듈의 코드"의 메모리 영역에 액세스할 수 있어야 한다. 그 결과, 클라이언트 인증 블록은 "적재 가능 모듈의 코드"의 해시 값을 계산하고, 이것을 참조 해시 값과 비교할 수 있다. 여기서 비교 방법은 NTEE 클라이언트를 위한 방법과 동일할 수 있다.
상기 실시예의 NTEE 클라이언트들(예를 들어, NTEE 네이티브 어플리케이션들 및 안드로이드 어플리케이션들), 미들웨어, 커널, 커널에 적재 가능 모듈들, 어플리케이션 프로그래밍 인터페이스 및 클라이언트 인증 블록(223)은 소프트웨어 프로그램의 한 종류이다.
본 개시의 어느 한 실시예는 보안 저장 시스템(예, 전자 장치(100))에 적용될 수 있다. 보안 저장 시스템에서, NTEE 클라이언트(예컨대, NTEE 어플리케이션)는 어떤 데이터를 안전하게 저장하도록 TEE의 보안 저장 트러스티드 어플리케이션(secure storage TA)에 요청할 수 있다. 보안 저장 트러스티드 어플리케이션은 NTEE 메모리에 저장된 NTEE 어플리케이션의 코드의 해시 값으로, NTEE 어플리케이션을 식별한다. 그리고 보안 저장 트러스티드 어플리케이션은 해시 값과 함께, 데이터를 안전하게 저장한다. 다음 번에, NTEE 어플리케이션은 안전하게 저장된 데이터를 보안 저장 트러스티드 어플리케이션에 요청한다. 그러면, 보안 저장 트러스티드 어플리케이션은, NTEE 메모리 코드에 대한 해시 값을 계산하고 이를 이미 저장된 해시 값과 비교함으로써, NTEE 어플리케이션의 인증 여부를 결정한다. 두 해시 값이 매치되면, 보안 저장 트러스티드 어플리케이션은 저장된 데이터를 해독하여 해당 NTEE 어플리케이션에게 제공한다. 그렇지 않다면, 보안 저장 트러스티드 어플리케이션은 해당 NTEE 어플리케이션이 인증되지 않은 것으로 간주하여, 해독된 데이터를 제공하지 않는다.
본 개시의 어느 한 실시예에 따른 어플리케이션은 NTEE 무결성 상태(NTEE integrity status)의 보안 런타임 모니터링 시스템일 수 있다. TEE의 트러스티드 어플리케이션(224)은NTEE 어플리케이션들의 리스트를 가질 수 있다. NTEE 어플리케이션들은 NTEE로부터의 요청에 따라(또는 주기적으로) 무결성을 검사받을 수 있다.TEE의 트러스티드 어플리케이션(224)은 특정 NTEE 어플리케이션들의 무결성 상태를 검사하도록 클라이언트 인증 블록에 요청할 수 있다. 무결성 검사의 결과에 기반하여, TEE는 특정 NTEE 어플리케이션들의 행동(behavior)을 수정할 수 있다. 대안적으로, NTEE 어플리케이션들의 무결성 검사 외에, TEE의 트러스티드 어플리케이션(224)은 NTEE 커널 및 그것에 적재 가능한 오브젝트들(예, 드라이버들)의 무결성을 검사할 수 있다. NTEE의 무결성이 실패하면, TEE의 트러스티드 어플리케이션(224)은 특별한 행동(action)들을 취할 수 있다. 특별한 행동들은, 다른 트러스티드 어플리케이션(224)에게 NTEE 환경의 무결성 검사 결과에 대해 알려주는(inform) 행동, 검사받은 대상의 동작에 대해 제한하도록 TEE에게 요구하는 행동 등을 포함할 수 있다. 또는 트러스티드 어플리케이션(224)은 사용자에게 무결성 검사 결과 또는 무결성 실패 결과를 제공할 수 있다. 추가적으로, 사용자에게 결과에 따른 대응 동작을 요청할 수도 있다.
상기 다양한 실시예에 따른, 트러스티드 어플리케이션(224)에 의해 인증될 수 있는 메모리 또는 일부 메모리 영역은 전자장치(100)와 유무선으로 연결 가능한 다른 기기의 메모리 또는 일부 메모리 영역일 수 있다.
상술한 바와 같은 본 개시에 따른 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 개시의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시 예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.
100: 전자 장치
110: 표시부 111: 터치패널
120: 키입력부 130: 메모리
140: 무선통신부 150: 오디오 처리부
160: 카메라 170: 센서부
180: 제어부

Claims (20)

  1. 전자 장치를 동작하는 방법에 있어서,
    전자 장치의 프로세서에 의하여, 제 1 모드 또는 제 2 모드 중 제 1 모드를 수행하는 동작으로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 동작
    상기 프로세서에 의하여, 상기 제 1 모드에서, 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하는 동작 및
    상기 프로세서에 의하여, 상기 제 1 모드에서, 상기 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하는 동작을 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 프로세서에 의하여, 제 1 모드에서는, 상기 메모리의 제 1 영역 또는 제 2 영역 중 하나 이상에 접속이 가능하며.
    상기 프로세서에 의하여, 제 2 모드에서는, 상기 메모리의 제 1 영역에만 접속이 가능한 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 제 1 모드는 보안 모드를 포함하고, 상기 제 2 모드는 비보안 모드를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서
    제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하는 동작은,
    제 1 소프트웨어 프로그램의 적어도 일부의 식별 정보를 이용하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 인증하는 동작은,
    상기 수신된 데이터 또는 정보의 적어도 일부에 기초한 값과 미리 저장된 값과 비교하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 수신된 데이터 또는 정보의 적어도 일부에 기초한 값은,
    상기 제 1 소프트웨어 프로그램의 적어도 일부에 대한 메모리 주소 정보를 나타내는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 제 1 소프트웨어 프로그램의 적어도 일부는,
    커널의 적어도 일부, 미들웨어의 적어도 일부, 어플리케이션 프로그래밍 인터페이스의 적어도 일부 및 어플리케이션의 적어도 일부 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서
    인증 결과에 대응하여, 제 1 소프트웨어 프로그램으로부터 데이터를 받아 저장하거나 저장된 데이터를 제 1 소프트웨어 프로그램에게 제공하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서,
    상기 인증 결과에 대응하여 제 1 모드의 동작을 결정하거나 사용자에게 인증 결과를 제공하는 것을 특징으로 하는 방법.
  10. 전자 장치에 있어서,
    제 1 영역 및 제 2 영역을 포함하도록 구성된 메모리 및
    제 1 모드 및 제 2 모드를 수행하도록 구성된 프로세서로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 프로세서를 포함하며,
    상기 프로세서는,
    상기 제 1 모드에서, 상기 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하고,
    상기 제 1 모드에서, 상기 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하도록 구성된 것을 특징으로 하는 장치.
  11. 제 10 항에 있어서,
    상기 프로세서는, 제 1 모드에서는, 상기 메모리의 제 1 영역 또는 제 2 영역 중 하나 이상에 접속이 가능하며.
    제 2 모드에서는, 상기 메모리의 제 1 영역에만 접속이 가능한 것을 특징으로 하는 장치.
  12. 제 10 항에 있어서, 상기 제 1 모드는 보안 모드를 포함하고, 상기 제 2 모드는 비보안 모드를 포함하는 것을 특징으로 하는 장치.
  13. 제 10 항에 있어서,
    제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하는 동작은,
    제 1 소프트웨어 프로그램의 적어도 일부의 식별 정보를 이용하는 것을 특징으로 하는 장치.
  14. 제 10 항에 있어서,
    상기 인증하는 동작은,
    상기 수신된 데이터 또는 정보의 적어도 일부에 기초한 값과 미리 저장된 값과 비교하는 것을 특징으로 하는 장치.
  15. 제 14 항에 있어서,
    상기 수신된 데이터 또는 정보의 적어도 일부에 기초한 값은,
    상기 제 1 소프트웨어 프로그램의 적어도 일부에 대한 메모리 주소 정보를 나타내는 것을 특징으로 하는 장치.
  16. 제 10 항에 있어서,
    상기 제 1 소프트웨어 프로그램의 적어도 일부는,
    커널의 적어도 일부, 미들웨어의 적어도 일부, 어플리케이션 프로그래밍 인터페이스의 적어도 일부 및 어플리케이션의 적어도 일부 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  17. 제 10 항에 있어서
    인증 결과에 대응하여, 제 1 소프트웨어 프로그램으로부터 데이터를 받아 저장하거나 저장된 데이터를 제 1 소프트웨어 프로그램에게 제공하는 것을 특징으로 하는 장치.
  18. 제 10 항에 있어서,
    상기 인증 결과에 대응하여 제 1 모드의 동작을 결정하거나 사용자에게 인증 결과를 제공하는 것을 특징으로 하는 장치.
  19. 전자 시스템에 있어서,
    제 1 영역 및 제 2 영역을 포함하도록 구성된 하나 또는 그 이상의 메모리 및
    제 1 모드 및 제 2 모드를 수행하도록 구성된 프로세서로서, 상기 제 1 모드는 상기 제 2 모드보다 보안이 강화된 프로세서를 포함하며,
    상기 프로세서는,
    상기 제 1 모드에서, 상기 하나 또는 그 이상의 메모리의 제 1 영역에 저장된 제 1 소프트웨어 프로그램에 연관된 데이터 또는 정보를 수신하고,
    상기 제 1 모드에서, 상기 하나 또는 그 이상의 메모리의 제 2 영역에 저장된 제 2 소프트웨어 프로그램을 이용하여, 상기 데이터 또는 정보의 적어도 일부를 인증하도록 구성된 것을 특징으로 하는 시스템.
  20. 제 19 항에 있어서,
    상기 하나 또는 그 이상의 메모리 중 적어도 일부는 다른 일부와 물리적으로 분리되며, 상기 제 1 영역은 상기 일부 내에 포함되고, 상기 제 2 영역은 다른 일부에 포함되는 것을 특징으로 하는 시스템.
KR1020130157463A 2013-03-13 2013-12-17 어플리케이션 인증 방법 및 이를 구현하는 전자 장치 KR20140114263A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/209,017 US9280655B2 (en) 2013-03-13 2014-03-13 Application authentication method and electronic device supporting the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361779239P 2013-03-13 2013-03-13
US61/779,239 2013-03-13

Publications (1)

Publication Number Publication Date
KR20140114263A true KR20140114263A (ko) 2014-09-26

Family

ID=51787175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130157463A KR20140114263A (ko) 2013-03-13 2013-12-17 어플리케이션 인증 방법 및 이를 구현하는 전자 장치

Country Status (1)

Country Link
KR (1) KR20140114263A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160105292A (ko) * 2015-02-27 2016-09-06 삼성전자주식회사 전자 결제 기능을 제공하는 전자 장치 및 그의 동작 방법
KR20160146967A (ko) * 2014-06-25 2016-12-21 인텔 코포레이션 하드웨어 구성 보고 시스템
WO2017138797A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 시큐어 시스템 온 칩
WO2017138799A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 하드웨어 디바이스 및 그 인증 방법
US11089016B2 (en) 2016-02-12 2021-08-10 Industry-University Cooperation Foundation Hanyang University Secure system on chip
US11367054B2 (en) 2015-11-23 2022-06-21 Xiaomi Inc. Biological recognition technology-based mobile payment device, method and apparatus, and storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160146967A (ko) * 2014-06-25 2016-12-21 인텔 코포레이션 하드웨어 구성 보고 시스템
US9870475B2 (en) 2014-06-25 2018-01-16 Intel Corporation Hardware configuration reporting systems
KR20160105292A (ko) * 2015-02-27 2016-09-06 삼성전자주식회사 전자 결제 기능을 제공하는 전자 장치 및 그의 동작 방법
US11367054B2 (en) 2015-11-23 2022-06-21 Xiaomi Inc. Biological recognition technology-based mobile payment device, method and apparatus, and storage medium
WO2017138797A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 시큐어 시스템 온 칩
WO2017138799A1 (ko) * 2016-02-12 2017-08-17 한양대학교 산학협력단 하드웨어 디바이스 및 그 인증 방법
US11089016B2 (en) 2016-02-12 2021-08-10 Industry-University Cooperation Foundation Hanyang University Secure system on chip

Similar Documents

Publication Publication Date Title
US9280655B2 (en) Application authentication method and electronic device supporting the same
US9967100B2 (en) Method of controlling power supply for fingerprint sensor, fingerprint processing device, and electronic device performing the same
KR102204247B1 (ko) 전자 장치의 생체 정보 처리 방법 및 장치
US10237269B2 (en) Method of providing information security and electronic device thereof
US10257177B2 (en) Electronic device and method for managing re-enrollment
US10021103B2 (en) Service authorization methods and apparatuses
KR102213448B1 (ko) 전자 장치의 인증 상태를 제어하는 방법 및 이를 이용한 전자 장치
US10200201B2 (en) Method for application installation, electronic device, and certificate system
US10242167B2 (en) Method for user authentication and electronic device implementing the same
US20170269725A1 (en) Electronic device for touch and finger scan sensor input and control method thereof
KR102469569B1 (ko) 전자 장치 및 그의 동작 방법
US10887109B2 (en) Electronic device for including signature in electronic document and method of controlling the same
KR102291719B1 (ko) 애플리케이션 보호 방법 및 장치
KR20140114263A (ko) 어플리케이션 인증 방법 및 이를 구현하는 전자 장치
KR20160140159A (ko) 전자 장치 및 커널 데이터 접근 방법
US20230161911A1 (en) Security architecture system, security management method, and computing device
KR102180529B1 (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
US10664578B2 (en) Security information inputting/outputting method and electronic device adapted to the method
US20170078269A1 (en) Method for managing application and electronic device supporting the same
KR20180046149A (ko) 인증을 수행하기 위한 전자 장치 및 방법
US20150121474A1 (en) Processor security authentication area
KR102208696B1 (ko) 센서 데이터 획득 방법 및 그 장치
KR102241831B1 (ko) 전자 장치 및 이의 운영 방법
US10114542B2 (en) Method for controlling function and electronic device thereof
US20150220720A1 (en) Electronic device and method for controlling access to given area thereof

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid