KR20170136406A - 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법 - Google Patents

어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20170136406A
KR20170136406A KR1020160130056A KR20160130056A KR20170136406A KR 20170136406 A KR20170136406 A KR 20170136406A KR 1020160130056 A KR1020160130056 A KR 1020160130056A KR 20160130056 A KR20160130056 A KR 20160130056A KR 20170136406 A KR20170136406 A KR 20170136406A
Authority
KR
South Korea
Prior art keywords
application
digital fingerprint
authentication agent
authentication
trusted
Prior art date
Application number
KR1020160130056A
Other languages
English (en)
Other versions
KR102582266B1 (ko
Inventor
전상훈
김형섭
이원재
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US15/608,592 priority Critical patent/US10705894B2/en
Publication of KR20170136406A publication Critical patent/KR20170136406A/ko
Application granted granted Critical
Publication of KR102582266B1 publication Critical patent/KR102582266B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 전자 장치의 동작 방법은, 인증 에이전트에서 어플리케이션의 디지털 지문을 생성하는 단계, 상기 생성된 디지털 지문을 TEE(trusted execution environment) 상의 트러스티드 어플리케이션으로 전송하는 단계, 상기 트러스티드 어플리케이션에서 상기 디지털 지문을 검증하는 단계, 및 상기 검증이 성공할 때, 상기 어플리케이션의 보안 스토리지에 대한 접근을 허용하는 단계를 포함할 수 있다.

Description

어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법{ELECTRONIC DEVICE FOR AUTHENTICATING APPLICATION AND OPERATING METHOD THEREOF}
본 발명은 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법에 관한 것이다.
IoT(internet of things) 기기들의 보급이 증가하면서 각 기기에 사용자들의 데이터를 안전하게 저장하고자 하는 요구가 늘어나고 있다. IoT 기기가 만약 악의적인 사용자의 기기와 연결되어 보안 데이터를 획득할 경우, 심각한 보안사고로 이어질 수 있다. 이런 위협을 방지하기 위해서 악성 사용자가 IoT 기기에서 데이터를 확인하지 못하도록 암/복호화하는 기술이 필요하지만, IoT 기기들은 암/복호화 키를 안전하게 보호할 수 없다는 문제점이 존재한다.
이러한 문제점을 해결하기 위해 기존의 기술은 트러스트존(TrustZone)을 이용하여 키(key)를 TEE(trusted execution environment)에 안전하게 저장한 후 데이터를 저장하고 있다. 하지만, 해당 기술 또한 멀웨어(malware)를 이용한 위장 공격에 취약한 문제점을 가지고 있다.
본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 본 발명의 목적은 암호화를 위한 키를 TEE에 안전하게 관리하고, 어플리케이션의 지문 정보를 이용한 인증 기법을 통해 IoT 기기의 보안성 및 가용성을 향상시키는 보안 스토리지의 사용을 위한 전자 장치 및 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 전자 장치의 동작 방법은, 인증 에이전트에서 어플리케이션의 디지털 지문을 생성하는 단계, 상기 생성된 디지털 지문을 TEE(trusted execution environment) 상의 트러스티드 어플리케이션으로 전송하는 단계, 상기 트러스티드 어플리케이션에서 상기 디지털 지문을 검증하는 단계, 및 상기 검증이 성공할 때, 상기 어플리케이션의 보안 스토리지에 대한 접근을 허용하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 전자 장치의 동작 방법은, 어플리케이션에서 보안 스토리지에 대한 접근 요청을 인증 에이전트에 전송하는 단계, 상기 인증 에이전트에서 상기 어플리케이션의 디지털 지문을 생성하는 단계, 상기 인증 에이전트에서 상기 어플리케이션의 디지털 지문을 트러스티드 어플리케이션으로 전송하는 단계, 상기 트러스티드 어플리케이션에서 상기 인증 에이전트의 무결성을 체크하는 단계, 상기 인증 에이전트의 무결성이 보장되면, 상기 어플리케이션의 디지털 지문을 검증하는 단계, 및 상기 어플리케이션의 디지털 지문에 대한 검증이 성공하면, 상기 접근 요청에 따라 상기 보안 스토리지를 접근하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 프로세서, 및 보안 스토리지를 포함하고, 상기 프로세서는, REE(rich execution environment) 상의 어플리케이션의 런-타임 디지털 지문을 생성하는 인증 에이전트, TEE(trusted execution environment) 상의 상기 인증 에이전트의 무결성을 체크하고, 상기 런-타임 디지털 지문을 런-타임 검증하는 트러스티드 어플리케이션, 및 상기 TEE 상의 상기 런-타임 검증이 성공할 때, 상기 어플리케이션의 요청에 따라 상기 보안 스토리지에 대한 접근을 수행하는 보안 커널을 포함할 수 있다.
본 발명의 다른 실시 예에 따른 전자 장치의 동작 방법은, 어플리케이션으로부터 보안 스토리지에 대한 접근 요청을 수신하는 단계, 상기 어플리케이션의 런-타임 디지털 지문을 생성하는 단계, TEE(trusted execution environment) 상의 상기 런-타임 디지털 지문을 런-타임 검증하는 단계, 및 상기 런-타임 검증이 성공할 때, 상기 접근 요청을 허용하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 장치 및 그것의 동작 방법은, 보안 스토리지의 사용을 위한 인증 방법은 데이터의 위/변조가 어려운 어플리케이션의 지문 정보를 이용하여 안전하게 해당 어플리케이션을 인증함으로써 보안 스토리지의 사용에 따른 보안을 강화할 수 있다.
도 1은 본 발명의 개념을 설명하는 전자 장치를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 전자 장치에서 어플리케이션의 디지털 지문 생성 방법을 예시적으로 보여주는 흐름도이다.
도 3은 본 발명의 실시 예에 따른 인증 에이전트에서 MAC chaining 방식에 따른 MAC 키를 생성하는 과정을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 전자 장치에서 어플리케이션의 디지털 지문 등록/검증하는 방법을 예시적으로 보여주는 흐름도이다.
도 5는 본 발명의 실시 예에 따른 트러스티드 어플리케이션에서 MAC chaining 방식에 따른 MAC 키를 생성하는 과정을 예시적으로 보여주는 도면이다.
도 6은 본 발명에 따른 인증 에이전트의 무결성 체크 동작을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 전자 장치에서 어플리케이션 인증 방법을 예시적으로 보여주는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 전자 장치에서 어플리케이션의 등록 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 9는 본 발명에 따른 전자 장치에서 어플리케이션의 인증을 위한 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 10은 본 발명의 다른 실시 예에 따른 전자 장치를 예시적으로 보여주는 도면이다.
도 11은 도 10에 도시된 전자 장치에서 보안 부팅을 수행하는 과정을 예시적으로 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 전자 장치의 인증 방법을 예시적으로 보여주는 흐름도이다.
도 13은 본 발명의 실시 예 따른 모바일 장치를 예시적으로 보여주는 도면이다.
도 14는 본 발명의 실시 예에 따른 IoT 기기를 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 IoT 시스템을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
도 1은 본 발명의 개념을 설명하는 전자 장치(10)를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 전자 장치(10)는, 프로세서(100) 및 보안 스토리지(200)를 포함할 수 있다.
전자 장치(10)는, 예를 들어, 스마트폰(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을 다시 참조하면, 프로세서(100)는 전자 장치(10)의 적어도 하나의 내부 구성들을 제어하거나 통신에 관한 연산/데이터를 처리를 실행하도록 구현될 수 있다. 실시 예에 있어서, 프로세서(100)는 CPU(central processing unit), GPU(graphic processing unit), AP(application processor), CP(communication processor) 중 적어도 하나를 포함할 수 있다. 도 1에 도시된 바와 같이, 프로세서(100)는, REE(rich execution environment, 110) 및 TEE(trusted execution environment, 120)을 포함할 수 있다.
REE(110)는, 하드웨어, 소프트웨어, 혹은 펌웨어적으로 구현되고, 일반적인 실행 환경을 제공하는 플랫폼이다. REE(110)는 적어도 하나의 어플리케이션(application, 112), 인증 에이전트(인증 에이전트(114), 114), 및 노멀 커널(normal kernel, 116)을 포함할 수 있다.
어플리케이션(112)은 사용자에게 서비스를 제공하기 위해 REE(110)에서 구동될 수 있다. 어플리케이션(112)은, 파일을 TEE(140)의 가상 파일 시스템(virtual file system, 128)을 통하여 안전하게 관리하고자 하는 경우, 인증 에이전트(114)에 파일 처리 요청을 전달할 수 있다. 예를 들어, 어플리케이션(112)은 인증 에이전트(114)를 통하여 보안 스토리지(200)에 접근(예, 파일에 대한 쓰기/읽기)할 수 있다.
인증 에이전트(114)는, TEE(120)의 가상 파일 시스템(138)을 통해 파일을 암호화하여 저장/로딩/삭제하기 위한 인터페이스로써, 트러스티드 어플리케이션(trusted application, TA, 122)을 호출할 수 있다. 인증 에이전트(114)의 요청은 TEE(120)의 트러스티드 어플리케이션(122)에서 수신될 수 있다. 트러스티드 어플리케이션(122)은 가상 파일 시스템(128)의 기능 중 인증 에이전트(114)의 요청에 대응하는 기능을 호출하여 처리할 수 있다.
또한, 인증 에이전트(114)는 TEE(120)에서 어플리케이션(112)에 대한 인증 동작을 보조하도록 구현될 수 있다. 어플리케이션 에이전트(114)는 어플리케이션(112)의 디지털 지문(digital fingerprint)을 생성하고, 생성된 디지털 지문을 트러스티드 어플리케이션(122)에 전송할 수 있다. 실시 예에 있어서, 디지털 지문은 어플리케이션의 고유한 값, 예를 들어, 코드 영역의 코드 값을 이용하여 생성될 수 있다. 실시 예에 있어서, 디지털 지문은, 다양한 방법들(예를 들어, 해쉬, 대칭키, 비대칭키 방식 등)으로 코드 값을 암호화시킨 값일 수 있다.
실시 예에 있어서, 인증 에이전트(114)는 디지털 지문을 주기적으로 생성할 수 있다. 다른 실시 예에 있어서, 인증 에이전트(114)는 디지털 지문을 비주기적으로 생성할 수 있다. 예를 들어, 인증 에이전트(114)는 난수에 대응하여 디지털 지문을 생성할 수 있다.
노멀 커널(116)은 REE(110)에서 사용자에게 서비스를 제공하는 적어도 하나의 어플리케이션(112)을 실행하는 커널이다. 예를 들어, 노멀 커널(116)은, OS(operating system)일 수 있다. 실시 예에 있어서, OS는, 유닉스, 리눅스, 안드로이드(Android), 안드로이드웨어(Android Wear), 심비안(Symbian) OS, 윈도우(Windows) OS 계열, 타이젠(Tizen) 등 일 수 있다. 실시 예에 있어서, 노멀 커널(116)은 전자 장치를 제조한 후에 써드 파티(third party)로부터 다운로드 될 수 있다.
실시 예에 있어서, 노멀 커널(116)은 복수의 운영 체제들(operating systems)을 지원할 수 있다. 예를 들어, 노멀 커널(116)은 복수의 운영 체제들을 동시에 구동할 수 있는 가상 플랫폼(예, hypervisor)을 포함할 수 있다.
또한, 노멀 커널(116)은 트러스트존 드라이버(TZ Dev, 117)를 포함할 수 있다. TZ Dev(117))는 노멀 커널(116)에 로딩되는 커널 모듈로써, REE(110)의 어플리케이션(112)과 TEE(120), 그리고 REE(110)의 인증 에이전트(114) 사이의 통신을 중계할 수 있다. 예를 들어, TEE(120)의 가상 파일 시스템(128)은 REE(117)의 파일시스템에 파일을 저장하기 위한 인터페이스를 제공할 수 있다.
실시 예에 있어서, 트러스트존 드라이버(117)는 TEE(120)에서 인증 에이전트(114)에 대한 인증을 도울 수 있다. 즉, 트러스트존 드라이버(117)는 무결성(integrity)을 보장하기 위하여 인증 에이전트(114)의 위/변조를 판별할 수 있다.
한편, 도 1에서는 인증 에이전트(114)의 무결성을 체크하기 위하여 트러스트존 드라이버(117)이 사용되었다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 예를 들어, 인증 에이전트(114)의 무결성을 체크하기 위하여 글로벌 플랫폼 클라어언트 API(application programming interface)가 이용될 수 있다.
TEE(120)는, 하드웨어, 소프트웨어, 혹은 펌웨어로 구성되고, REE(110)에서 생성되는 소프트웨어 공격으로부터 보호 수준을 제공하는 보안 플랫폼이다. TEE(120)는 REE(110)로부터 격리될 필요가 있는 민감한 어플리케이션, 즉, 적어도 하나의 트러스티드 어플리케이션(122)의 접근/실행을 제어할 수 있다.
또한, TEE(120)는 적어도 하나의 트러스티드 어플리케이션(122), 및 보안 커널(secure kernel, 126)을 포함할 수 있다.
트러스티드 어플리케이션(122)은 TEE(120)에서 구동되는 보안을 필요로 하는 보안 어플리케이션(DRM(digital right management), bank, payment, corporate 등) 일 수 있다. 예를 들어, 트러스티드 어플리케이션(122)은, 프리로드 어플리케이션(preloaded application), 네이티브 어플리케이션(native application), 혹은 서드파티 어플리케이션(third party application)을 포함할 수 있다.
특히, 트러스티드 어플리케이션(122)은, REE 클라이언트의 인증 여부를 결정할 수 있다. 실시 예에 있어서, 트러스티드 어플리케이션(122)은 REE(110)의 인증 에이전트(114)의 요청에 응답하여 어플리케이션의 인증을 위한 디지털 지문을 등록/검증할 수 있다.
보안 커널(126)은 TEE(120)에서 트러스티드 어플리케이션(122)을 구동할 수 있다. 보안 커널(126)은 악의적인 사용자로부터 물리적/소프트웨어적으로 보호된 상태에서 구동되므로, 키 관리와 같이 보안성이 요구되는 작업 등에 사용된다. 보안 커널(126)은 가상 파일 시스템(127)을 포함할 수 있다.
트러스티드 어플리케이션(122)에서 가상 파일 시스템(127)의 파일 기능을 호출하는 경우, 가상 파일 시스템(127)은 내부적으로 암/복호화 등의 작업을 수행한 뒤, REE(110)의 파일시스템에 안전하게 저장/로딩/삭제할 수 있다.
한편, 도 1에 도시된 보안 커널(126)은 REE(110)의 파일 시스템 내에 구현되는 가상 파일 시스템(127)을 포함하였다. 하지만, 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 보안 커널(126)은 REE(110)의 파일 시스템과 분리된 독립적인 파일 시스템으로 구현될 수 있다고 이해되어야 할 것이다.
또한, 보안 스토리지(200)는 보안 데이터(secure data)를 저장하거나, 암복호화된 데이터를 저장하도록 구현될 수 있다. 실시 예에 있어서, 보안 스토리지(200)는 휘발성 메모리 장치 혹은 비휘발성 메모리 장치의 전체 혹은 일부에 의해 구현될 수 있다. 실시 예에 있어서, 보안 스토리지(200)는 TEE(120)을 통해서만 접근 가능하도록 구현될 수 있다.
한편, 보안 스토리지(200)는, 사전에 정의된 어플리케이션(들)만 사용하도록 하는 클로즈드(closed) 환경과 모든 어플리케이션들에서 사용 가능하도록 하는 오픈 환경에서 사용될 수 있다. 각 환경에 따라 어플리케이션을 보안 스토리지(200)에 등록하는 시점이 달라질 수 있다. 어플리케이션 등록 이후에 인증 과정은 동일하다. 실시 예에 있어서, 클로즈드 환경에서 트러스티드 어플리케이션을 생성하는 시점에 사용 가능한 어플리케이션의 코드 해쉬(code hash) 값이 등록될 수 있다. 실시 예에 있어서, 오픈 환경에서, 런-타임(run-time)으로 어플리케이션이 보안 스토리지(200)에 등록 요청을 하면, REE(110)의 인증 에이전트(114)는 어플리케이션의 해쉬의 해쉬 값 생성 및 등록할 수 있다.
본 발명의 실시 예에 따른 전자 장치(10)는 어플리케이션(112)에 대한 인증 동작을 수행할 수 있다. REE(110)의 인증 에이전트(114)는 어플리케이션(112)의 프로세스 식별자(process identifier, PID)를 이용하여 어플리케이션 코드 영역의 역의 코드 값(예를 들어, PID)을 암호화시킴으로써 디지털 지문을 생성하고, 생성된 디지털 지문을 TEE(120)의 트러스티드 어플리케이션(122)에 전달할 수 있다. 이후, 트러스티드 어플리케이션(122)은 전달된 디지털 지문과 등록된 디지털 지문을 비교함으로써, 어플리케이션(122)의 인증을 수행할 수 있다.
본 발명의 실시 예에 따른 전자 장치(10)는 어플리케이션(112)의 디지털 지문 정보를 이용하여 보안 스토리지(200)에 접근 권한을 관리하는 인증 에이전트(114)를 구비함으로써, 보안성(security)과 가용성(usability) 향상을 기대할 수 있다.
도 2는 본 발명의 실시 예에 따른 전자 장치(10)에서 어플리케이션의 디지털 지문 생성 방법을 예시적으로 보여주는 흐름도이다. 도 2를 참조하면, 어플리케이션 디지털 지문 생성 과정은 다음과 같이 진행될 수 있다.
인증 에이전트(114)는 어플리케이션(112)에서 전달받은 프로세스 식별자(PID)를 이용하여 코드 영역의 데이터를 읽고, 읽혀진 데이터를 해쉬 알고리즘을 통하여 해쉬시킴으로써, 어플리케이션(APP)의 해쉬 데이터를 생성할 수 있다(S110). 생성된 해쉬 데이터에 타임스탬프(timestamp) 정보가 추가될 수 있다(S120).
인증 에이전트(114)는 시간 정보가 추가된 해쉬 데이터를 암호 알고리즘(대칭키, 비대칭키, 등)에 의거하여 암호화시킬 수 있다(S130). 실시 예에 있어서, 인증 에이전트(114)는 시간 정보가 추가된 해쉬 데이터를 트러스티드 어플리케이션(122)에서 사전에 전달받은 공개키를 이용하여 암호화 시킬 수 있다. 다른 실시 예에 있어서, 인증 에이전트(114)는 시간 정보가 추가된 해쉬 데이터를 트러스티드 어플리케이션(122)과 공유하는 비밀키를 이용하여 암호화 시킬 수 있다.
인증 에이전트(114)는 디지털 지문 등록 전송의 무결성을 위한 MAC(message authentication code, "메시지 인증 코드") 키를 생성할 수 있다(S140). 실시 예에 있어서, MAC 키는 MAC Chaining 방식으로 생성 될 수 있다.
이후, 인증 에이전트(114)는 암호화된 해쉬 데이터 및 MAC 키로 구성된 어플리케이션의 디지털 지문을 생성할 수 있다(S150).
실시 예에 있어서, 인증 에이전트(114)가 어플리케이션(112)의 디지털 지문을 생성하는 과정은, 어플리케이션(112)을 등록하는 시점과, 보안 스토리지(200)를 사용하는 시점 모두에서 수행될 수 있다.
본 발명의 실시 예에 따른 인증 에이전트(114)는 시간 정보를 추가함으로써 실시간(runtime) 디지털 지문을 생성할 수 있다. 한편, 본 발명이 여기에 제한되지 않으며, 본 발명의 디지털 지문은 시간 정보를 포함하지 않을 수도 있다고 이해되어야 할 것이다.
도 3은 본 발명의 실시 예에 따른 인증 에이전트(114)에서 MAC chaining 방식에 따른 MAC 키를 생성하는 과정을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 초기 MAC 키는 LSB(least significant bits)와 MSB(most significant bits)로 구성될 수 있다. 여기서 LSB는 제 1 코드 값(HMAC code 1)이고, MSB는 제 2 코드 값(HMAC code 2)이다.
초기 MAC 키가 생성되면, 제 2 코드 값(HMAC code 2)은 제 1 코드 값(HMAC code 1)으로 업데이트 될 수 있다. 이후, 인증 에이전트(1140는 도 2에서 암호화된 해쉬 데이터를 이용하여 HMAC(hash-based message authentication code) 값을 생성할 수 있다. 즉, HMAC 값은 암호화된 해쉬 데이터를 해쉬 알고리즘에 의해 해쉬시킨 값이다. 이후, 생성된 HMAC 값은 제 2 코드 값(HMAC code 2)로 업데이트 될 수 있다. 상술 된 과정을 통하여, 인증 에이전트(114)는 MAC 키를 생성할 수 있다. 동시에, 트러스티드 어플리케이션(122)은 동일한 방식으로 MAC 키를 검증하기 위하여 MAC 키를 생성할 수 있다.
실시 예에 있어서, 제 1 코드 값(HMAC code 1)과 제 2 코드 값(HMAC code 2)은 보안 스토리지(102)의 일부에 저장/관리될 수 있다.
도 4는 본 발명의 실시 예에 따른 전자 장치(10)에서 어플리케이션의 디지털 지문 등록/검증하는 방법을 예시적으로 보여주는 흐름도이다. 도 4를 참조하면, 어플리케이션의 디지털 지문 등록/검증 방법은 다음과 같이 진행될 수 있다.
트러스티드 어플리케이션(122)은 인증 에이전트(114)로부터 어플리케이션의 디지털 지문을 수신할 수 있다(S210). 여기서 수신된 디지털 지문은 암호화된 해쉬 데이터 및 MAC 키를 포함할 수 있다.
트러스티드 어플리케이션(122)은 수신된 디지털 지문에 대한 무결성 체크를 위하여 MAC 키 생성할 수 있다(S220). 실시 예에 있어서, MAC 키는 MAC Chaining 기법에 의해 생성될 수 있다. 이후, 트러스티드 어플리케이션(122)은 생성된 MAC 키와 디지털 지문의 MAC 키를 비교함으로써, 디지털 지문의 MAC 키를 검증할 수 있다(S230). 만일, 생성된 MAC 키와 디지털 지문의 MAC 키가 동일하다면, 인증 에이전트(114)로부터 수신된 디지털 지문은 무결하다고 판별될 수 있다.
이후, 트러스티드 어플리케이션(122)은 암호 알고리즘에 의거하여 디지털 지문의 암호화된 해쉬 데이터를 복호화시킬 수 있다(S240). 실시 예에 있어서, 트러스티드 어플리케이션(122)은 트러스티드 어플리케이션(122)의 개인키를 이용하여 디지털 지문에 포함된 암호화된 해쉬 데이터를 복호화 시킬 수 있다. 다른 실시 예에 있어서, 트러스티드 어플리케이션(122)은 인증 에이전트(114)와 공유하는 비밀키를 이용하여 디지털 지문에 포함된 암호화된 해쉬 데이터를 암호화 시킬 수 있다.
이후, 트러스티드 어플리케이션(122)은 복호화된 해쉬 데이터에 포함된 시간 정보를 검증할 수 있다(S250). 만일, 시간 정보가 사전에 결정된 시간 범위 내에 존재한다면, 복호화된 해쉬 데이터가 무결하다고 판별될 수 있다.
이후, 트러스티드 어플리케이션(122)은 복호화된 해쉬 데이터에서 어플리케이션의 해쉬 데이터를 보안 스토리지에 등록 시킬 수 있다. 또한, 트러스티드 어플리케이션(122)은 보안 스토리지에 저장된 해쉬 데이터와 복호화된 해쉬 데이터가 동일한지 비교함으로써, 어플리케이션의 디지털 지문을 인증할 수 있다(S260).
도 5는 본 발명의 실시 예에 따른 트러스티드 어플리케이션(122)에서 MAC chaining 방식에 따른 MAC 키를 생성하는 과정을 예시적으로 보여주는 도면이다. 도 5를 참조하면, MAC 키를 생성하는 과정은, 도 3에 도시된 그것과 유사하다.
다만, HMAC 값은 수신된 디지털 지문 내에 포함된 암호화된 해쉬 데이터를 이용하여 생성될 수 있다. 또한, 제 1 코드 값(HMAC Code 1)과 제 2 코드 값(HMAC Code 2)의 업데이트 동작들은, 도 4의 S260 (디지털 지문 등록/검증) 이후에 수행될 수 있다.
한편, 본 발명은 인증 에이전트(114)의 무결성 체크 동작을 추가로 진행할 수 있다.
도 6은 본 발명에 따른 인증 에이전트(114)의 무결성 체크 동작을 예시적으로 보여주는 도면이다. 도 6을 참조하면, 노멀 커널(116)의 트러스트존 드라이버(TZ Dev, 117)는 인증 에이전트(114)의 무결성 체크 동작을 다음과 같이 수행할 수 있다. 우선적으로, 인증 에이전트(114)의 디지털 지문은 보안 스토리지(102)에 등록되어 있다고 가정하겠다.
트러스트존 드라이버(117)는 인증 에이전트(114)의 해쉬 데이터를 생성할 수 있다(S310). 여기서 트러스트존 드라이버(117)의 무결성은 보안 커널(126)에서 보장해 준다. 트러스트존 드라이버(117)에서 위/변조가 생성하면, 트러스트존 드라이버(117)는 정상적으로 수행되지 않는다. 인증 에이전트(114)의 해쉬 데이터 생성 과정은, 상술된 어플리케이션의 해쉬 데이터 생성 과정과 유사할 수 있다.
생성된 해쉬 데이터에 타임스탬프 정보가 추가될 수 있다(S320). 트러스트존 드라이버(117)는 해쉬 데이터와 타임스탬프 정보를 트러스티드 어플리케이션(122)으로부터 사전에 전달받은 공개키를 이용하여 RSA(Rivest Shamir Adelman) 암호화를 수행할 수 있다(S330).
트러스티드 어플리케이션(122)과 동일하게 약속한 마스터 키를 이용하여 암호화된 해쉬 데이터(RSA_Enc[Hash + Time])의 HMAC 값이 생성될 수 있다(S340).
트러스트존 드라이버(117)는, 최종적으로 암호화된 해쉬 데이터(RSA_Enc[Hash + Time])와 HMAC 값으로 구성된 인증 에이전트(114)의 디지털 지문을 생성할 수 있다(S350). 생성된 디지털 지문은 트러스티드 어플리케이션(122)로 전송될 수 있다.
트러스티드 어플리케이션(122)은 트러스트존 드라이버(117)로부터 수신된 디지털 지문 중 MAC 검증을 위해 트러스트존 드라이버(117)와 동일하게 약속한 마스터키로 암호화된 해쉬 데이터(RSA_Enc[Hash + Time])의 MAC 값을 생성할 수 있다. 생성한 MAC 값과 트러스트존 드라이버(117)로부터 수신된 MAC 값이 동일한지가 판별될 수 있다(S360).
만일, 생성한 MAC 값과 트러스트존 드라이버(117)로부터 수신된 MAC 값이 동일하다면, 암호화된 해쉬 데이터(RSA_Enc[Hash + Time])을 트러스티드 어플리케이션(122)의 개인키를 이용하여 RSA 복호화 시킬 수 있다(S370).
복호화된 해쉬 데이터에서 타임스탬프 정보가 검증될 수 있다(S380). 시간 검증이 성공하면, 복호화된 해쉬 데이터와 보안 스토리지(200)에 저장/등록된 해쉬 데이터가 비교될 수 있다(S390). 복호화된 해쉬 데이터와 등록된 해쉬 데이터가 일치하면, 인증 에이전트(114)는 무결하다고 판별될 수 있다.
도 7은 본 발명의 실시 예에 따른 전자 장치(10)에서 어플리케이션 인증 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 7을 참조하면, 어플리케이션 인증 방법은 다음과 같이 진행될 수 있다.
인증 에이전트(114)는, 도 2에 설명된 바와 같이 어플리케이션의 디지털 지문을 생성할 수 있다(S410). 트러스티드 어플리케이션(122)은, 도 4에 설명된 바와 같이 디지털 지문을 검증할 수 있다(S420). 트러스트존 드라이버(117)는, 도 6에 설명된 바와 같이 인증 에이전트(114)의 무결성을 체크할 수 있다(S430).
도 8은 본 발명의 실시 예에 따른 전자 장치(10)에서 어플리케이션의 등록 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 8을 참조하면, 어플리케이션의 등록은 과정은 다음과 같이 진행될 수 있다.
어플리케이션(112)은 보안 스토리지(200)를 사용하기 위한 등록 요청을 인증 에이전트(114)에 전송할 수 있다. 인증 에이전트(114)는 실시간으로 어플리케이션의 디지털 지문을 생성하고, 생성된 디지털 지문을 트러스티드 어플리케이션(122)에 전송할 수 있다.
트러스티드 어플리케이션(122)은 인증 에이전트(114)의 무결성을 위한 체크 요청을 트러스트존 드라이버(117)에 전송할 수 있다. 트러스트존 드라이버(117)는 무결성 체크 요청에 응답하여 인증 에이전트(114)의 디지털 지문을 생성하고 생성된 인증 에이전트(114)의 디지털 지문을 트러스티드 어플리케이션(122)에 전송할 수 있다.
트러스티드 어플리케이션(122)은 보안 스토리지(200)에 등록된 인증 에이전트(114)의 디지털 지문과 트러스트 드라이버(117)로부터 전송된 디지털 지문을 비교함으로써, 인증 에이전트(114)의 무결성을 판별할 수 있다. 인증 에이전트(114)의 무결성이 보장되면, 트러스티드 어플리케이션(122)은 어플리케이션의 디지털 지문을 보안 스토리지(200)에 등록할 수 있다.
실시 예에 있어서, 인증 에이전트(114)의 무결성 체크 동작시 이용되는 MAC 값과 어플리케이션의 무결성 체크 동작시 이용되는 MAC 값은 서로 다를 수 있다.
다른 실시 예에 있어서, 인증 에이전트(114)의 무결성 체크 동작시 이용되는 MAC 값과 어플리케이션의 무결성 체크 동작시 이용되는 MAC 값은 동일할 수 있다.
도 9는 본 발명에 따른 전자 장치(10)에서 어플리케이션의 인증을 위한 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 1 내지 도 9를 참조하면, 어플리케이션의 인증 과정은 다음과 같이 진행될 수 있다.
어플리케이션(112)은 보안 스토리지(200)를 사용하기 위한 요청을 인증 에이전트(114)에 전송할 수 있다. 인증 에이전트(114)는 실시간으로 어플리케이션의 디지털 지문을 생성하고, 생성된 디지털 지문을 트러스티드 어플리케이션(122)에 전송할 수 있다.
트러스티드 어플리케이션(122)은 인증 에이전트(114)의 무결성을 위한 체크 요청을 트러스트존 드라이버(117)에 전송할 수 있다. 트러스트존 드라이버(117)는 무결성 체크 요청에 응답하여 인증 에이전트(114)의 디지털 지문을 생성하고 생성된 인증 에이전트(114)의 디지털 지문을 트러스티드 어플리케이션(122)에 전송할 수 있다.
트러스티드 어플리케이션(122)은 보안 스토리지(200)에 등록된 인증 에이전트(114)의 디지털 지문과 트러스트 드라이버(117)로부터 전송된 디지털 지문을 비교함으로써, 인증 에이전트(114)의 무결성을 판별할 수 있다. 인증 에이전트(114)의 무결성이 보장되면, 트러스티드 어플리케이션(122)은 보안 스토리지(200)에 등록된 어플리케이션(114)의 디지털 지문과 인증 에이전트(114)로부터 전송된 디지털 지문을 비교함으로써, 어플리케이션(112)의 무결성을 판별할 수 있다. 어플리케이션(112)의 무결성이 보장되면, 어플리케이션(112)는 TEE(120)을 통하여 보안 스토리지(200)에 접근할 수 있다. 즉, 어플리케이션(112)는 보안 스토리지(200)에 데이터를 로드하거나 저장하거나 삭제할 수 있다.
한편, 도 1 내지 도 9에서는 어플리케이션의 인증 방법에 대하여 설명하였다. 하지만 본 발명은 어플리케이션의 인증 방법에만 제한되지 않는다고 이해되어야 할 것이다. 본 발명의 인증 방법은 보안 부팅(secure booting)에도 적용 가능하다.
도 10은 본 발명의 다른 실시 예에 따른 전자 장치(20)를 예시적으로 보여주는 도면이다. 도 10을 참조하면, 전자 장치(20)는 REE(110a), TEE(120a), 및 보안 스토리지(200a)를 포함할 수 있다.
인증 에이전트(114a)는 도 1 내지 도 9에서 설명된 바와 같이 보안 부팅 프로그램(112a)의 디지털 지문을 실시간으로 등록/인증할 수 있다.
보안 스토리지(200a)는 부트 코드를 저장하도록 구현될 수 있다. 부트 코드에 대한 접근은 보안 부팅 프로그램(112a)의 인증이 성공할 때만 허용될 수 있다.
도 11은 도 10에 도시된 전자 장치(20)에서 보안 부팅을 수행하는 과정을 예시적으로 보여주는 흐름도이다. 도 10 및 도 11을 참조하면, 보안 부팅은 다음과 같이 진행될 수 있다. 우선 보안 부팅 프로그램의 디지털 지문은 보안 스토리지(200a)에 등록되어 있다고 가정하겠다.
인증 에이전트(114a)는 보안 부팅 프로그램(112a)의 디지털 지문을 생성하고, 생성된 디지털 지문을 TEE(120a)의 TA(212a)에 전송할 수 있다(S510). TEE(120a)의 TA(212a)는 전송된 보안 부팅 프로그램(112a)의 디지털 지문과 등록된 디지털 지문을 비교함으로써 실시간으로 인증을 판별할 수 있다(S520). 보안 부팅 프로그램(112a)의 인증이 성공할 때, 보안 부팅 프로그램(112a)의 보안 스토리지(200a)에 대한 접근이 허용될 수 있다. 보안 부팅 프로그램(112a)은 디지털 지문 인증 후에 TEE(120a)를 통하여 보안 스토리지(200a)에 저장된 부트 코드를 읽어 올 수 있다(S530). 이후, 보안 부팅 프로그램(112a)은 REE(110a)에서 읽혀진 부트 코드를 이용하여 부팅을 수행할 수 있다(S540).
한편, 본 발명은 REE에서 구동되는 어플리케이션/프로그램에 대한 TEE에서 실시간(real time, 혹은 run-time) 인증으로 해석할 수 있다.
도 12는 본 발명의 실시 예에 따른 전자 장치의 인증 방법을 예시적으로 보여주는 흐름도이다. 도 12를 참조하면, 전자 장치의 인증 방법은 다음과 같다.
REE에서 어플리케이션/프로그램의 디지털 지문이 실시간으로 생성될 수 있다(S610). 생성된 디지털 지문은 TEE에서 전송되고, TEE는 전송된 디지털 지문을 실시간으로 검증할 수 있다(S620).
한편, 본 발명의 컴퓨팅 시스템은 모바일 장치에 적용 가능하다.
도 13은 본 발명의 실시 예 따른 모바일 장치(1000)를 예시적으로 보여주는 도면이다. 도 13을 참조하면, 모바일 장치(1000)는 프로세서(AP/ModAP, 1100), 버퍼 메모리(1200), 디스플레이/터치 모듈(1300) 및 저장 장치(1400)를 포함할 수 있다.
프로세서(1100)는 모바일 장치(1000)의 전반적인 동작 및 외부와의 유선/무선 통신을 제어하도록 구현될 수 있다. 예를 들어, 프로세서(1100)는 어플리케이션 프로세서(AP, application processor), 통합 모뎀 어플리케이션 프로세서(ModAP) 등 일 수 있다.
프로세서(1100)는 인증 에이전트(1114), TEE(1120), 및 보안 칩(1130)을 포함할 수 있다. 인증 에이전트(1114)는 도 1 내지 도 12에 설명된 바와 같이, 어플리케이션/프로그램의 실시간 디지털 지문을 생성/인증하도록 구현될 수 있다.
보안 칩(1130)은, 소프트웨어 및/혹 변조 방지 하드웨어(tamper resistant hardware)로 구성되고, 높은 수준의 보안을 허용하고, 프로세서(1100)의 TEE(1120)에 협력하여 작업할 수 있다. 예를 들어, 보안 칩(1130)은 TEE(1120)에서 수행되는 암복호 동작, MAC 키 생성/검증 등을 수행할 수 있다.
보안 칩(1130)은 운영 체제인 Native OS(operation system), 내부의 데이터 저장소인 보안 저장 장치, 보안 칩(1130)에 접근권을 제어하는 접근 제어 블록, 오너십 관리(ownership management), 키 관리(key management), 디지털 서명(digital signature), 암호/복호 등을 수행하는 보안 기능 블록과 보안 칩의 펌웨어를 업데이트하기 위한 펌웨어 업데이트 블록을 포함할 수 있다. 보안 칩(1130)은, 예를 들어, UICC(universal IC card, 예, USIM, CSIM, ISIM), SIM(subscriber identity module) 카드, eSE(embedded secure elements), MicroSD, Stickers 등 일 수 있다.
버퍼 메모리(1200)는 모바일 장치(1000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 실시 예에 있어서, 버퍼 메모리(1200)는 DRAM, SDRAM, MRAM 등으로 구현될 수 있다. 버퍼 메모리(1200)는 비암호화 데이터 영역과 암호화 데이터 영역을 포함할 수 있다. 여기서 암호화 데이터 영역은 보안 칩(1130)에 의해 암호화된 데이터를 저장할 수 있다.
디스플레이/터치 모듈(1300)은 프로세서(1100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 수 있다.
저장 장치(1400)는 사용자의 데이터를 저장하도록 구현될 수 있다. 저장 장치(2400)는 eMMC(embedded multimedia card), SSD(solid state drive), UFS(universal flash storage) 등 일 수 있다. 저장 장치(1400)는 도 1 내지 도 12에서 설명된 보안 스토리지(200, 220a)를 포함할 수 있다.
저장 장치(1400)는 적어도 하나의 비휘발성 메모리 장치를 포함할 수 있다. 비휘발성 메모리 장치는, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.
또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착 됨을 의미한다.
본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리 장치(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
본 발명의 실시 예에 따른 모바일 장치(1000)는 고유한 디지털 지문을 이용하여 어플리케이션/프로그램에 대한 실시간 인증을 수행함으로써, 전체적인 성능을 유지하면서, 보안 기능을 크게 향상시킬 수 있다.
도 14는 본 발명의 실시 예에 따른 IoT 기기(2000)를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, IoT 장치(2000)는 IoT 장치 어플리케이션(2100), 인증 에이전트(2150), 및 통신 모듈(2200)을 포함할 수 있다.
IoT 장치 어플리케이션(2100)은 소프트웨어 컴포넌트로서 통신 모듈(2200)을 제어할 수 있고 IoT 장치의 CPU에 의해 실행될 수 있다.
인증 에이전트(2150)는 도 1 내지 도 13에서 설명된 바와 같이 어플리케이션(2100)의 디지털 지문을 생성/등록/검증하도록 구현될 수 있다.
통신 모듈(2200)은 LAN, Wi-Fi와 같은 WLAN, 블루투스 같은 WPAN, 무선 USB, 지그비(Zigbee), NFC, RFID, 혹은 이동 통신망과 접속되거나 데이터를 주고받을 수 있는 무선 통신 컴포넌트를 의미할 수 있다. 또한, 통신 모듈(2200)은 펌웨어(2220), 무선 베이스 밴드 칩 셋(2240), 및 보안 모듈(2260)을 포함할 수 있다.
펌웨어(2220)는 IoT 장치 어플리케이션(2100)과 API(Application Programming Interface)를 제공하고, IoT 장치 어플리케이션(2100)의 제어에 따라 무선 베이스 밴드 칩셋(2240)을 제어할 수 있다. 무선 베이스 밴드 칩셋(2240)은 무선 통신 네트워크에 접속(connectivity)을 제공할 수 있다. 보안 모듈(2260)은 프로세서(2262)와 보안 요소(2264)를 포함할 수 있다. 보안 모듈(2260)은 무선 통신 네트워크에 접속하기 위해 IoT 장치를 인증하고 무선 네트워크 서비스에 대한 액세스를 위해 IoT 장치를 인증할 수 있다.
도 15는 본 발명의 실시 예에 따른 IoT 시스템을 예시적으로 보여주는 도면이다. 도 15를 참조하면, IoT 네트워크 시스템(3000)은 IoT 네트워크 시스템에 포함되는 다양한 구성 요소들을 포함할 수 있다.
사물 인터넷(IoT, Internet of Things)은 유/무선 통신을 이용하는 사물 상호 간의 네트워크를 의미할 수 있다. 따라서 본 문서에서 언급될 사물 인터넷(IoT)은 IoT 네트워크 시스템, USN(Ubiquitous Sensor Network) 통신 시스템, MTC(Machine Type Communications) 통신 시스템, MOC(Machine Oriented Communication) 통신 시스템, M2M(Machine to Machine) 통신 시스템 또는 D2D(Device to Device) 통신 시스템 등의 다양한 용어로 사용될 수 있다. 본 문서에서 언급될 IoT 네트워크 시스템은 IoT 기기, 액세스 포인트(AP), 게이트웨이, 통신망, 서버 등으로 구성될 수 있다.
하지만 이러한 구성요소들은 IoT 네트워크 시스템을 설명하기 위하여 분류된 것이며, IoT 네트워크 시스템의 범위를 제한하기 위한 것은 아니다. 또한 IoT 네트워크 시스템은 IoT 네트워크 시스템 내의 2개 이상의 구성 요소 간의 정보 교환(통신)을 위해 UDP(User Datagram Protocol), TCP(Transmission Control Protocol) 등의 전송 프로토콜, 6LoWPAN (IPv6 Low-power Wireless Personal Area Networks) 프로토콜, IPv6 인터넷 라우팅 프로토콜, 그리고 CoAP(constrained application protocol), HTTP(hypertext transfer protocol), MQTT(message queue telemetry transport), MQTT-S(MQTT for sensors networks) 등의 애플리케이션 프로토콜을 이용할 수 있다.
무선 센서 네트워크(wireless sensor network(WSN))에서 복수의 IoT 기기들(3110, 3112, 3114 및 3116) 각각은 싱크 노드 또는 센서 노드로 사용될 수 있다. 여기서 IoT 기기들(3110, 3112, 3114 및 3116) 각각은 도 1 내지 도 14에서 설명된 어플리케이션/프로그램을 디지털 지문을 통하여 인증할 수 있도록 구현될 수 있다. 싱크 노드는 기지국(base station)이라고도 불리며, WSN과 외부 네트워크(예컨대, 인터넷)를 연결하는 게이트웨이의 역할을 하고, 각 센서 노드로 태스크(task)를 부여하고 각 센서 노드에 의해 감지된 이벤트(event)를 수집할 수 있다. 센서 노드는 감각 정보 (sensory information)의 처리와 수집(gathering)을 수행할 수 있는 WSN 내의 노드이고, 센서 노드는 WSN 내에서 서로 접속된 노드들 사이에서 통신을 수행할 수 있는 노드일 수 있다.
복수의 IoT 기기들(3110, 3112, 3114 및 3116)은 자체 전력을 사용하여 동작하는 능동 IoT 기기와 외부에서 무선으로 가해진 전력에 의하여 동작하는 수동 IoT 기기를 포함할 수 있다. 능동 IoT 기기는 냉장고, 에이컨, 전화기, 자동차 등을 포함할 수 있다. 수동 IoT 기기는 RFID(Radio Frequency Identification) tag나 NFC tag를 포함할 수 있다.
다른 측면에서, IoT 기기들(3110, 3112, 3114 및 3116)은 QR 코드, RFID 태그, NFC 태그 등과 같은 수동 통신 인터페이스를 포함할 수 있고, 또는 모뎀(modem), 송수신기(transceiver) 등과 같은 능동 통신 인터페이스를 포함할 수 있다.
IoT 기기들(3110, 3112, 3114, 및 3116)은 센서를 이용하여 데이터를 수집하거나 수집된 데이터를 유/무선 통신 인터페이스를 통하여 외부로 전송할 수 있다. 또한, 유/무선 통신인터페이스를 통하여 제어정보 및/또는 데이터를 송신 및/또는 수신할 수 있다. 유선 또는 무선 통신인터페이스는 접근 가능한 인터페이스 중 하나일 수 있다.
IoT 네트워크 시스템(3000)은 엑세스 포인트(Access Point, 3120)를 포함할 수 있다. 복수의 IoT 기기들(3110, 3112 및 3114)은 엑세스 포인트(3120)를 통하여 통신망에 연결되거나 다른 IoT 기기에 연결될 수 있다. 엑세스 포인트(3120)는 하나의 IoT 기기에 내장될 수 있다. 예를 들면, 엑세스 포인트(3120)는 텔레비전에 내장될 수 있다. 이때, 사용자는 텔레비전을 디스플레이를 통하여 엑세스 포인트(3120)에 연결된 적어도 하나의 IoT 기기를 모니터링(monitoring)하거나 제어할 수 있다. 또한, 엑세스 포인트(3120)는 IoT 기기 중 하나에 포함될 수 있다. 예를 들면, 휴대폰은 IoT 기기이면서 동시에 다른 IoT 기기에 연결되는 엑세스 포인트(3120)일 수 있다. 이때, 휴대폰은 이동 통신망 또는 근거리 무선 네트워크를 통하여 통신망에 연결될 수 있다.
IoT 네트워크 시스템(3000)은 게이트웨이(2125)를 포함할 수 있다. 게이트웨이(3125)는 엑세스 포인트(3120)를 외부 통신망(예를 들면, 인터넷망이나 공중 통신망)에 접속하도록 프로토콜을 변경할 수 있다. IoT 기기들(3110, 3112 및 3114)은 게이트웨이(3125)를 통하여 외부 통신망에 연결될 수 있다. 경우에 따라서는 게이트웨이(3125)는 엑세스 포인트(3120)에 통합되어 구성될 수 있다. 다른 경우에는, 엑세스 포인트(3120)가 제1게이트웨이의 기능을 수행하고 게이트웨이(3125)는 제2 게이트웨이의 기능을 수행할 수도 있다.
게이트웨이(3125)는 IoT 기기들 중 하나에 포함될 수 있다. 예를 들면, 휴대폰은 IoT 기기이면서 동시에 다른 IoT 기기에 연결되는 게이트웨이(3125)일 수 있다. 이때, 휴대폰은 이동 통신망에 연결될 수 있다.
IoT 네트워크 시스템(3000)은 적어도 하나의 통신망(3130)을 포함할 수 있다. 통신망(3130)은 인터넷 및/또는 공중 통신망(Public communication network)을 포함할 수 있다. 공중 통신망은 이동통신망(mobile cellular network)을 포함할 수 있다. 통신망(3130)은 IoT 기기들(3100, 3112, 3114 및 3116)에서 수집된 정보가 전송되는 채널일 수 있다.
IoT 네트워크 시스템(3000)은 통신망(3130)에 연결된 서버(3140)를 포함할 수 있다. 통신망(3130)은 IoT 기기들(3110, 3112, 3114 및 3116)에서 센싱된 데이터들을 서버(3140)에 전송할 수 있다. 서버(3140)는 전송된 데이터를 저장하거나 분석할 수 있다. 또한, 서버(3140)는 분석된 결과를 통신망(3130)을 통하여 전송할 수 있다. 서버(3140)는 IoT 기기들(3110, 3112, 3114 및 3116) 중 적어도 하나와 연관된 정보를 저장할 수 있고, 서버(3140)는 저장된 정보를 기준으로 관련 IoT 기기에서 전송된 데이터를 분석할 수 있다. 또한, 서버(3140)는 분석결과를 관련 IoT 기기나 사용자 기기에게 통신망을 통하여 송신할 수 있다. 예를 들면, 사용자의 혈당을 실시간으로 측정하는 IoT 기기의 경우, 서버(3140)는 사용자가 미리 설정한 혈당 한계치를 미리 저장하고 측정된 혈당을 통신망을 통하여 전송 받을 수 있다. 이때, 서버(3140)는 혈당 한계치와 전송된 혈당치를 비교하여 위험여부를 알리는 정보를 사용자 기기 및/또는 관련 IoT 기기에 전송할 수 있다.
각 IoT 기기들(3110, 3112, 3114 및 3116)은 각 IoT 기기의 특성에 따라 그룹을 형성할 수 있다. 예를 들면, IoT 기기들은 홈가젯 그룹(3110), 가전제품/가구 그룹(3112), 엔터테인먼트 그룹(3114), 또는 이동수단 그룹(Vehicle; 3116) 등으로 그룹핑 될 수 있다. 또한, 실내 온도를 제어하는 온도제어 그룹, 전력을 많이 소모하는 정도에 따라 나누어진 대형가전 그룹 또는 소형가전 그룹, 실내 청결 (예를 들면, 공기청정 및 바닥청소)을 제어하는 청결그룹, 실내 조명을 제어하는 조명그룹, 엔터테인먼트 향 기기(예를 들면, TV 및 오디오기기 등)를 제어하는 엔터테인먼트 그룹(114) 등을 형성할 수 있다. 온도제어 그룹은 에어컨, 전동창문, 전동커튼(curtain) 등을 포함할 수 있다. 예를 들면, 홈가젯 그룹(110)은 심박수 센서 패치(patch), 혈당측정용 의료기기, 조명기구, 습도계, 감시카메라, 스마트워치(Smart Watch), 보안키패드, 온도조절장치, 방향장치, 창문 블라인드(window blind) 등을 포함할 수 있다. 가전제품/가구 그룹(3112)은 로봇청소기, 세탁기, 냉장고, 에어컨(air conditioner), 텔레비전과 같은 가전제품 및 센서를 포함한 침대와 같은 가구를 포함할 수 있다. 엔터테인먼트 그룹(3114)은 텔레비전, 스마트폰 등 멀티미디어 영상장치 및 통신장치를 포함할 수 있다.
각 IoT 기기들은 복수의 그룹에 속할 수 있다. 예를 들면, 에어컨은 대형가전제품/가구 그룹(3112) 및 온도제어 그룹에 속할 수 있고, 텔레비전은 가전제품/가구 그룹(3112) 및 엔터테인먼트 그룹(3114)에 속할 수 있다. 또한, 스마트폰은 홈가젯 그룹(3110) 및 엔터테인먼트 그룹(3114)에 속할 수 있다.
IoT 네트워크 시스템(3000)은 분산 서버 시스템(3150)을 포함할 수 있다. 분산 서버 시스템(3150)은 통신망(3130)으로부터 전송된 데이터를 저장하거나 분석할 수 있다. 또는, 분산 서버 시스템(3150)은 통신망(3130)을 통해, 저장 또는 분석된 데이터를 IoT 네트워크 시스템(3000)의 다른 구성 요소들로 전송할 수 있다.
실시 예로서, 분산 서버 시스템(3150)은 분산 파일 시스템(Distributed File System; DFS)에 기초하여 구동되는 분산 컴퓨팅 시스템을 포함할 수 있다. 예로서, 분산 서버 시스템(3150)은 HDFS(Hadoop DFS), GFS(Google File System), 클라우드 스토어(Cloud Store), Coda, NFS(Network File System), GPFS(General Parallel File System) 등과 같은 다양한 DFS들 중 하나 이상에 기초하여 구동될 수 있으나, 본 발명은 위 예에 의해 제한되지 않는다.
실시 예로서, 분산 서버 시스템(3150)은 마스터 장치(3151), 복수의 슬레이브 장치(3152-1 내지 3152-3), 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3355)를 포함할 수 있다.
복수의 슬레이브 장치(352-1 내지 352-3) 각각은 데이터 블록을 저장할 수 있다. 예로서, 통신망(3130)을 통해 전송된 데이터는 마스터 장치(3151)에 의해 복수의 데이터 블록으로 분할될 수 있다. 분할된 데이터 블록들은 복수의 슬레이브 장치(3152-1 내지 3152-3)에 분산하여 저장될 수 있다. 예로서, 분산 서버 시스템(3150)이 HDFS에 기초하여 구동되는 경우, 복수의 슬레이브 장치(3152-1 내지 3152-3) 각각은 데이터 노드(Data Node)로서, 데이터 블록을 저장하기 위해 태스크 트래커(Task Tracker)를 실행할 수 있다.
마스터 장치(3151)는 통신망(3130)을 통해 전송된 데이터를 복수의 데이터 블록으로 분할할 수 있다. 마스터 장치(3151)는 분할된 데이터 블록들 각각을 복수의 슬레이브 장치(3152-1 내지 3152-3) 중 적어도 하나로 제공할 수 있다. 예로서, 분산 서버 시스템(3150)이 HDFS에 기초하여 구동되는 경우, 마스터 장치(3151)는 네임 노드(Name Node)로서, 분할된 데이터 블록들의 분산을 스케줄링하기 위해 잡 트래커(Job Tracker)를 실행할 수 있다. 마스터 장치(3151)는 분할된 데이터 블록들 각각의 저장 위치를 나타내는 분산 저장 정보를 관리할 수 있다. 마스터 장치(3151)는 분산 저장 정보를 참조하여, 통신망(3130)을 통한 데이터 저장 요청 및 데이터 읽기 요청을 처리할 수 있다.
시스템 관리 장치(3153)는 분산 서버 시스템(3150)의 전반적인 동작들을 제어하고 관리할 수 있다. 자원 관리 장치(3154)는 분산 서버 시스템(3150)에 포함되는 구성 요소들의 자원 사용량을 관리할 수 있다. 정책 관리 장치(3155)는 통신망(3130)을 통한 IoT 기기들(3110, 3112, 3114 및 3116)의 접근에 관한 정책을 관리할 수 있다. 예로서, 정책 관리 장치(3155)는 IoT 기기들(3110, 3112, 314 및 3116)의 접근이 허용될 수 있는지 여부를 판별하고, 과금 정책을 관리할 수 있다.
마스터 장치(3151), 복수의 슬레이브 장치(3152-1 내지 3152-3), 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3155) 각각은 개인용 컴퓨터와 같은 범용 컴퓨터, 및/또는 워크스테이션과 같은 전용 컴퓨터를 포함할 수 있다. 마스터 장치(3151), 복수의 슬레이브 장치(3152-1 내지 3152-3), 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3155) 각각은 고유의 기능을 실현하기 위한 하드웨어 모듈들을 포함할 수 있다. 또는, 마스터 장치(3151), 복수의 슬레이브 장치(3152-1 내지 3152-3), 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3155) 각각은 프로세서 코어 상에서 소프트웨어 또는 펌웨어를 실행함으로써 고유의 기능을 실현할 수 있다.
도 15에 나타낸 것과 같이, 마스터 장치(3151) 및 복수의 슬레이브 장치(3152-1 내지 3152-3)는 IoT 기기들(3110, 312, 314 및 316)과 함께 통신망(3130)을 공유하고, 통신망(3130)을 통해 데이터(또는, 데이터 블록)를 교환할 수 있다. 또는, 마스터 장치(3151)가 IoT 기기들(3110, 3112, 3114 및 3116)과 함께 통신망(3130)을 공유하고, 복수의 슬레이브 장치(3152-1 내지 3152-3)는 마스터 장치(3151)와 통신할 수 있다. 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3155)는 마스터 장치(3151)와 통신할 수 있다. 반면, 다른 몇몇 실시 예에서, 시스템 관리 장치(3153), 자원 관리 장치(3154), 및 정책 관리 장치(3155)는 IoT 기기들(3110, 3112, 3114 및 3116)과 함께 통신망(3130)을 공유하고, 통신망(3130)을 통해 마스터 장치(3151)와 통신할 수 있다. 본 발명의 실시 예는 다양하게 변경 또는 수정될 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 데이터의 위/변조가 어려운 어플리케이션의 지문 정보를 이용하여 안전하게 해당 어플리케이션을 인증할 수 있다. 인증된 어플리케이션은 TEE의 보안 스토리지에 안전하게 데이터를 생성/저장/삭제할 수 있다. 또한, 보안이 취약한 특정 장치에 인증 기법을 적용한 보안 스토리지를 적용하여 보안 강화를 기대할 수 있다. 또한, 본 발명의 인증 기법은 Secure OS에도 적용 가능하다.
본 발명에서는 암호화를 위한 키를 Trusted Execution Environment(TEE)에 안전하게 관리(하드웨어적으로 전압 차, 레이저 등을 통한 정보 취득 등의 Lab Attack을 막기 위해서 Secure Element를 이용할 수도 있음)하고, 어플리케이션의 지문정보를 이용한 Authentication 기법을 통해 IoT Device의 Security와 Usability을 향상시킬 수 있다.
한편, 본 발명은 보안 스토리지의 접근과 관련된 인증에 제한되지 않는다고 이해되어야 할 것이다. 본 발명은 어떠한 종류의 장치의 접근에 대한 인증에도 적용될 수 있다.
본 발명에 개시된 인증 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10, 20: 전자 장치
100: 프로세서
200: 보안 스토리지
110: REE
120: TEE
112: 어플리케이션
114: 인증 에이전트
116: 노멀 커널
122: 트러스티드 어플리케이션
126: 보안 커널
117: 트러스트존 드라이버

Claims (20)

  1. 전자 장치의 동작 방법에 있어서:
    인증 에이전트에서 어플리케이션의 디지털 지문을 생성하는 단계;
    상기 생성된 디지털 지문을 TEE(trusted execution environment) 상의 트러스티드 어플리케이션으로 전송하는 단계;
    상기 트러스티드 어플리케이션에서 상기 디지털 지문을 검증하는 단계; 및
    상기 검증이 성공할 때, 상기 어플리케이션의 보안 스토리지에 대한 접근을 허용하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 디지털 지문을 생성하는 단계는,
    상기 어플리케이션의 프로세스 식별자를 이용하여 코드 영역의 코드 데이터를 읽는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 코드 데이터를 해쉬 알고리즘에 의거하여 해쉬하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 해쉬된 코드 데이터에 타임스탬프를 추가하는 단계를 더 포함하는 방법.
  5. 제 2 항에 있어서,
    상기 코드 데이터를 암호 알고리즘에 의거하여 암호화시키는 단계를 더 포함하는 방법.
  6. 제 2 항에 있어서,
    상기 디지털 지문에 대응하는 메시지 인증 코드를 생성하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 메시지 인증 코드는 MAC chaining 방식에 따라 생성되는 방법.
  8. 제 1 항에 있어서,
    상기 트러스티드 어플리케이션에서 상기 디지털 지문을 수신하는 단계를 더 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 디지털 지문은 상기 어플리케이션에 대응하는 암호화된 코드 데이터 및 메시지 인증 코드를 포함하고,
    상기 트러스티드 어플리케이션에서 상기 디지털 지문에 포함된 상기 메시지 인증 코드를 검증하는 단계를 더 포함하는 방법.
  10. 제 8 항에 있어서,
    상기 디지털 지문은 상기 어플리케이션에 대응하는 암호화된 코드 데이터 및 메시지 인증 코드를 포함하고,
    상기 트러스티드 어플리케이션에서 상기 암호화된 코드 데이터를 암호 알고리즘을 의거하여 복호화시키는 단계를 더 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 복호화된 코드 데이터를 상기 보안 스토리지에 등록시키는 단계를 더 포함하는 방법.
  12. 제 10 항에 있어서,
    상기 복호화된 코드 데이터는 타임스탬프를 포함하고,
    상기 트러스티드 어플리케이션에서 상기 타임스탬프를 검증하는 단계를 더 포함하는 방법.
  13. 제 1 항에 있어서,
    트러스트존 드라이버에서 상기 인증 에이전트의 무결성을 체크하는 단계를 더 포함하는 방법.
  14. 전자 장치의 동작 방법에 있어서:
    어플리케이션에서 보안 스토리지에 대한 접근 요청을 인증 에이전트에 전송하는 단계;
    상기 인증 에이전트에서 상기 어플리케이션의 디지털 지문을 생성하는 단계;
    상기 인증 에이전트에서 상기 어플리케이션의 디지털 지문을 트러스티드 어플리케이션으로 전송하는 단계;
    상기 트러스티드 어플리케이션에서 상기 인증 에이전트의 무결성을 체크하는 단계;
    상기 인증 에이전트의 무결성이 보장되면, 상기 어플리케이션의 디지털 지문을 검증하는 단계; 및
    상기 어플리케이션의 디지털 지문에 대한 검증이 성공하면, 상기 접근 요청에 따라 상기 보안 스토리지를 접근하는 단계를 포함하는 방법.
  15. 제 14 항에 있어서,
    상기 어플리케이션의 디지털 지문을 등록하는 단계를 더 포함하고,
    상기 어플리케이션의 디지털 지문을 등록하는 단계는,
    상기 어플리케이션에서 상기 인증 에이전트로 상기 어플리케이션의 디지털 지문 등록을 요청하는 단계;
    상기 인증 에이전트에서 상기 어플리케이션의 디지털 지문 등록 요청에 응답하여 상기 어플리케이션의 지문을 생성하는 단계;
    상기 트러스티드 어플리케이션에서 상기 인증 에이전트의 무결성을 체크하는 단계; 및
    상기 인증 에이전트의 무결성이 보장되면, 상기 생성된 어플리케이션의 디지털 지문을 상기 보안 스토리지에 등록하는 단계를 포함하는 방법.
  16. 제 14 항에 있어서,
    상기 인증 에이전트의 무결성을 체크하는 단계는,
    상기 인증 에이전트에서 트러스트존 드라이버로 상기 인증 에이전트의 디지털 지문을 요청하는 단계;
    상기 트러스트존 드라이버에서 상기 인증 에이전트의 디지털 지문을 생성하는 단계;
    상기 생성된 인증 에이전트의 디지털 지문을 상기 트러스티드 어플리케이션에 전송하는 단계; 및
    상기 트러스트존 드라이버로부터 전송된 상기 인증 에이전트의 디지털 지문과 상기 보안 스토리지에 등록된 상기 인증 에이전트의 디지털 지문을 비교하는 단계를 포함하는 방법.
  17. 제 14 항에 있어서,
    상기 어플리케이션의 디지털 지문은, 상기 인증 에이전트에서 런-타임으로 생성되고, 상기 트러스티드 어플리케이션에서 런-타임으로 검증되는 방법.
  18. 프로세서; 및
    보안 스토리지를 포함하고,
    상기 프로세서는,
    REE(rich execution environment) 상의 어플리케이션의 런-타임 디지털 지문을 생성하는 인증 에이전트;
    TEE(trusted execution environment) 상의 상기 인증 에이전트의 무결성을 체크하고, 상기 런-타임 디지털 지문을 런-타임 검증하는 트러스티드 어플리케이션; 및
    상기 TEE 상의 상기 런-타임 검증이 성공할 때, 상기 어플리케이션의 요청에 따라 상기 보안 스토리지에 대한 접근을 수행하는 보안 커널을 포함하는 전자 장치.
  19. 제 18 항에 있어서,
    상기 인증 에이전트는,
    상기 어플리케이션의 해쉬 데이터를 생성하고;
    상기 생성된 해쉬 데이터에 타임스탬프를 추가하고;
    상기 추가된 해쉬 데이터를 상기 트러스티드 어플리케이션의 공개키로 암호화시키고;
    MAC chaining 방식에 따라 상기 해쉬 데이터에 대응하는 메시지 인증 코드를 생성하고; 및
    상기 암호화된 해쉬 데이터 및 상기 메시지 인증 코드로 구성된 상기 디지털 지문을 생성하는 전자 장치.
  20. 제 18 항에 있어서,
    상기 트러스티드 어플리케이션은,
    암호화된 해쉬 데이터 및 메시지 인증 코드를 갖는 상기 디지털 지문을 수신하고;
    상기 메시지 인증 코드의 무결성을 검증하고;
    상기 암호화된 해쉬 데이터를 상기 트러스티드 어플리케이션의 개인키로 복호화시키고;
    상기 복호화된 해쉬 데이터에 포함된 타임스탬프를 검증하고;
    상기 복호화된 해쉬 데이터를 등록하거나 검증하는 전자 장치.
KR1020160130056A 2016-05-30 2016-10-07 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법 KR102582266B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/608,592 US10705894B2 (en) 2016-05-30 2017-05-30 Electronic device for authenticating application and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160066480 2016-05-30
KR20160066480 2016-05-30

Publications (2)

Publication Number Publication Date
KR20170136406A true KR20170136406A (ko) 2017-12-11
KR102582266B1 KR102582266B1 (ko) 2023-09-27

Family

ID=60943402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160130056A KR102582266B1 (ko) 2016-05-30 2016-10-07 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102582266B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190140314A (ko) * 2018-06-11 2019-12-19 남서울대학교 산학협력단 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법
CN111859313A (zh) * 2019-04-29 2020-10-30 华为技术有限公司 验证方法及装置
KR20210062360A (ko) * 2019-11-21 2021-05-31 성균관대학교산학협력단 안드로이드 기반에서 캐시 변조 방지 방법 및 시스템
WO2022092869A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 전자 장치 및 이를 이용한 메모리 보호 방법
KR102524377B1 (ko) * 2022-11-25 2023-04-21 주식회사 유니온플레이스 비히클 관제를 위한 비히클 데이터의 통신 방법
US11934516B2 (en) 2021-09-06 2024-03-19 Axis Ab Method and system for enabling secure processing of data using untrusted processing application in a trusted execution environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US20120331563A1 (en) * 2011-06-24 2012-12-27 Motorola Mobility, Inc. Retrieval of Data Across Multiple Partitions of a Storage Device Using Digital Signatures
US20150278820A1 (en) * 2014-03-25 2015-10-01 Mark Stephen Meadows Systems and methods for executing cryptographically secure transactions using voice and natural language processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US20120331563A1 (en) * 2011-06-24 2012-12-27 Motorola Mobility, Inc. Retrieval of Data Across Multiple Partitions of a Storage Device Using Digital Signatures
US20150278820A1 (en) * 2014-03-25 2015-10-01 Mark Stephen Meadows Systems and methods for executing cryptographically secure transactions using voice and natural language processing

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190140314A (ko) * 2018-06-11 2019-12-19 남서울대학교 산학협력단 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법
CN111859313A (zh) * 2019-04-29 2020-10-30 华为技术有限公司 验证方法及装置
KR20210062360A (ko) * 2019-11-21 2021-05-31 성균관대학교산학협력단 안드로이드 기반에서 캐시 변조 방지 방법 및 시스템
WO2022092869A1 (ko) * 2020-10-29 2022-05-05 삼성전자 주식회사 전자 장치 및 이를 이용한 메모리 보호 방법
US11934516B2 (en) 2021-09-06 2024-03-19 Axis Ab Method and system for enabling secure processing of data using untrusted processing application in a trusted execution environment
KR102524377B1 (ko) * 2022-11-25 2023-04-21 주식회사 유니온플레이스 비히클 관제를 위한 비히클 데이터의 통신 방법

Also Published As

Publication number Publication date
KR102582266B1 (ko) 2023-09-27

Similar Documents

Publication Publication Date Title
US10705894B2 (en) Electronic device for authenticating application and operating method thereof
KR102582266B1 (ko) 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법
CN107533609B (zh) 用于对系统中的多个可信执行环境进行控制的系统、设备和方法
KR102323763B1 (ko) 호스트 시스템과 데이터 처리 가속기 사이의 보안 통신을 제공하기 위한 방법 및 시스템
US9560026B1 (en) Secure computer operations
TWI623853B (zh) 用以充當驗證器之裝置、用於遠端認證之方法及非暫時性機器可讀儲存媒體(二)
US8893295B2 (en) Secure and private location
CN112262546B (zh) 用于数据处理加速器的密钥分配和交换的方法和系统
TWI525448B (zh) 雲端運算環境中伺服器與客戶端的遠端信賴認證及地理位置
CN104303190A (zh) 提供对系统的地理保护
CN112262547A (zh) 具有安全单元以提供根信任服务的数据处理加速器
JP2007174633A (ja) トークンデバイス及びセキュアメモリデバイスのためのバインディング鍵をセキュアに取得するためのコンピュータ実施方法、および、トークンデバイスとセキュアメモリデバイスとをセキュアにバインドするシステム
CN112236972A (zh) 用于导出会话密钥以确保主机系统和数据处理加速器之间的信息交换信道的方法和系统
US20210021594A1 (en) Biometric security for edge platform management
US9609000B2 (en) Method and system for executing a secure application on an untrusted user equipment
CN112292678A (zh) 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
CN112334902A (zh) 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
CN113821821B (zh) 安全架构系统、安全架构系统的密码运算方法和计算设备
TWI587172B (zh) 用於建立安全工作空間的所有權之系統
CN112352220A (zh) 保护由数据处理加速器处理的数据的方法和系统
US11775692B2 (en) Method and system for encrypting data using a kernel
US11693970B2 (en) Method and system for managing memory of data processing accelerators
CN112262545A (zh) 主机系统与数据处理加速器之间的证明协议
US11811948B2 (en) Flexible security enclave for protecting data at rest and in motion
CN112352242A (zh) 具有本地时间单元以生成时间戳的数据处理加速器

Legal Events

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