KR20150007034A - 휴대형 전자장치의 어플리케이션 보안 방법 - Google Patents
휴대형 전자장치의 어플리케이션 보안 방법 Download PDFInfo
- Publication number
- KR20150007034A KR20150007034A KR20130080869A KR20130080869A KR20150007034A KR 20150007034 A KR20150007034 A KR 20150007034A KR 20130080869 A KR20130080869 A KR 20130080869A KR 20130080869 A KR20130080869 A KR 20130080869A KR 20150007034 A KR20150007034 A KR 20150007034A
- Authority
- KR
- South Korea
- Prior art keywords
- security
- application
- configuration
- password
- client application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000007789 sealing Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 35
- 238000013475 authorization Methods 0.000 claims description 16
- 238000005259 measurement Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000005236 sound signal Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000010295 mobile communication Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011900 installation process Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000005674 electromagnetic induction Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
Abstract
본 발명에 따른 휴대형 전자장치의 어플리케이션 보안 방법은 상기 휴대형 전자장치의 제 1보안 영역에 포함되는 제 1구성 및 제 1노멀 영역에 포함되는 제 2구성을 상기 제 1보안 영역 및 상기 제 1노멀 영역에 각각 상응하는 제 2 보안 영역 및 제 2노멀 영역을 포함하는 메인 메모리로 로딩(loading)하고, 상기 로딩되는 제 1구성 및 상기 제 2구성의 측정된 해시 값을 상기 제 1구성에 포함되는 mTPM(mobile Trusted Platform module)의 PCRs(Platform Configuration Registers)로 확장(extension)하는 부팅(booting) 과정; 보안 인증 서버로부터 어플리케이션을 다운로드하고, 상기 다운로드된 어플리케이션에 실링(sealing)된 패스워드를 부가함으로써 생성되는 클라이언트 어플리케이션을 설치하는 과정; 및 상기 설치된 클라이언트 어플리케이션을 보안 어플리케이션과 연결하기 위해 상기 클라이언트 어플리케이션을 인증(authentication) 또는 인가(authorization)하는 과정을 포함하는 것을 특징으로 한다.
Description
본 발명은 휴대형 전자장치의 어플리케이션 보안 방법에 관한 것으로, 특히 부팅 과정, 어플리케이션 설치 과정 및 어플리케이션 실행 과정에서 mTPM(mobile Trusted Platform Module)을 이용하여 안전하게 어플리케이션이 실행되도록 지원하는 방법에 관한 것이다.
최근 스마트 폰, 태블릿 PC와 같은 휴대형 전자장치가 대중화됨에 따라 휴대형 전자장치의 하드웨어 및 소프트웨어 또한 비약적으로 발전하여 휴대형 전자장치의 사용 환경은 PC와 유사해지고 있다. 또한, 인터넷, 앱 스토어 등으로부터 다양한 어플리케이션을 다운로드하여 사용자가 원하는 편리한 기능이 제공되고 있다.
반면, 다양한 어플리케이션이 다운로드됨에 따라 악성코드, 스파이웨어 등을 포함하는 악성 어플리케이션이 휴대형 전자장치로 유입되어 네트워크 트래픽, 시스템 성능 저하, 파일 삭제, 개인 정보 유출 등의 피해를 입히고 있다. 특히, 안드로이드 운영체제는 오픈 소프 플랫폼에 기반하여 대부분의 소스 코드가 개방되어 있기 때문에 악성 어플리케이션에 쉽게 노출되는 문제점이 있다.
이와 같은 문제점을 극복하기 위해 종래에는 백신을 포함한 보안기술이 소프트웨어적으로 구현되고 있지만, 소프트웨어적으로 구현되는 경우 해킹에 매우 취약한 문제가 있었다.
따라서, 본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서 본 발명의 목적은 휴대형 전자장치의 부팅 과정, 어플리케이션 설치 과정 및 어플리케이션 실행 과정에서 하드웨어 구성요소로서 mTPM(mobile Trusted Platform Module)을 이용하여 안전하게 어플리케이션이 실행되도록 지원하는 방법에 관한 것이다.
본 발명에 따른 휴대형 전자장치의 어플리케이션 보안 방법은 상기 휴대형 전자장치의 제 1보안 영역에 포함되는 제 1구성 및 제 1노멀 영역에 포함되는 제 2구성을 상기 제 1보안 영역 및 상기 제 1노멀 영역에 각각 상응하는 제 2 보안 영역 및 제 2노멀 영역을 포함하는 메인 메모리로 로딩(loading)하고, 상기 로딩되는 제 1구성 및 상기 제 2구성의 측정된 해시 값을 상기 제 1구성에 포함되는 mTPM(mobile Trusted Platform module)의 PCRs(Platform Configuration Registers)로 확장(extension)하는 부팅(booting) 과정; 보안 인증 서버로부터 어플리케이션을 다운로드하고, 상기 다운로드된 어플리케이션에 실링(sealing)된 패스워드를 부가함으로써 생성되는 클라이언트 어플리케이션을 설치하는 과정; 및 상기 설치된 클라이언트 어플리케이션을 보안 어플리케이션과 연결하기 위해 상기 클라이언트 어플리케이션을 인증(authentication) 또는 인가(authorization)하는 과정을 포함하는 것을 특징으로 한다.
본 발명에 따른 휴대형 전자장치는 제 1보안 영역에 포함되는 제 1구성 및 제 1노멀 영역에 포함되는 제 2구성을 포함하고, 상기 제 1구성은 상기 제 1구성 및 상기 제 2구성의 측정된 해시 값이 확장(extension)되는 mTPM(mobile Trusted Platform module)의 PCRs(Platform Configuration Registers)을 포함하는 저장부; 및 상기 제 1보안 영역 및 상기 제 1노멀 영역에 각각 상응하는 제 2 보안 영역 및 제 2노멀 영역으로 상기 제 1구성 및 상기 제 2구성이 로딩(loading)되는 메인 메모리 및 롬(ROM)을 포함하고, 보안 인증 서버로부터 어플리케이션을 다운로드하고, 다운로드된 어플리케이션에 실링(sealing)된 패스워드를 부가함으로써 생성되는 클라이언트 어플리케이션이 설치되도록 제어하며, 상기 설치된 클라이언트 어플리케이션을 보안 어플리케이션과 연결하기 위해 상기 클라이언트 어플리케이션의 인증(authentication) 또는 인가(authorization)를 제어하는 제어부를 포함하는 것을 특징으로 한다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따른 휴대형 전자장치의 어플리케이션 보안 방법은 mTPM(mobile Trusted Platform Module)을 이용하여 안전하게 어플리케이션을 실행할 수 있어 뛰어난 사용성을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 휴대형 전자장치의 블록 도면을 나타낸다.
도 2는 본 발명의 일 실시예에 따라 휴대형 전자장치의 보안 부팅 수행 과정을 나타내는 흐름도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 휴대형 전자장치의 기능적 아키텍처 설명을 위한 도면이다.
도 4는 본 발명의 일 실시예에 따라 어플리케이션 다운로드 과정 설명을 위한 흐름도를 나타낸다.
도 5는 본 발명의 일 실시예에 따라 어플리케이션 실행 과정 설명을 위한 흐름도를 나타낸다.
도 2는 본 발명의 일 실시예에 따라 휴대형 전자장치의 보안 부팅 수행 과정을 나타내는 흐름도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 휴대형 전자장치의 기능적 아키텍처 설명을 위한 도면이다.
도 4는 본 발명의 일 실시예에 따라 어플리케이션 다운로드 과정 설명을 위한 흐름도를 나타낸다.
도 5는 본 발명의 일 실시예에 따라 어플리케이션 실행 과정 설명을 위한 흐름도를 나타낸다.
여기서 본 발명의 일 실시예에 따른 휴대형 전자장치는 컴퓨팅 리소스를 가지는 장치로서 예를 들어, 스마트 폰 태블릿 PC, 디지털 카메라, 컴퓨터 모니터, PDA(Personal Digital Assistant), 전자수첩, 데스트탑 PC, PMP(Portable Multimedia Player), 미디어 플레이어(Media Player)(예를 들어, MP3 플레이어), 음향기기, 손목시계, 게임용 단말기, 가전기기(예를 들어, 냉장고, TV, 세탁기) 등을 포함할 수 있다.
본 발명의 일 실시예에 따른 휴대형 전자장치는 보안 영역(secure world) 및 노멀 영역(normal world)을 가질 수 있다. 하드웨어(예를 들어, 메모리, CPU, AP 등)는 물리적으로 또는 논리적으로 여러 개의 영역(area)들로 구분될 수 있는데, 이러한 영역들 중 하나가 보안 영역에 해당될 수 있다. 또한 보안 영역은 보안 기술이 적용된 운영체제와 이에 기반하여 동작하는 하드웨어 및 소프트웨어를 포함하여 구성될 수 있다, 이러한 보안 영역 내에서 메모리 덤프(memory dump), 변조 등과 같은 공격으로부터 안전할 수 있다. 노멀 영역은 하드웨어 영역들 중 어느 하나가 될 수 있다. 또한 노멀 영역은 일반적은 운영체제(예를 들어, 안드로이드, 리눅스, 윈도우 등)와 이에 기반 하에 동작하는 하드웨어 및 소프트웨어를 포함하여 구성될 수 있다. 본 발명의 일 실시예에 따른 휴대형 전자장치는 노멀 영역 및 보안 영역 사이에 보안 경계를 설정하고, 보안 모니터를 통해서만 노멀 영역 및 보안 영역 상호 간에 데이터를 전달함으로써 보안을 강화할 수 있다.
본 발명의 일 실시예에서 어플리케이션은 클라이언트 어플리케이션과 보안 어플리케이션으로 구분될 수 있다. 클라이언트 어플리케이션은 인증 및 인가를 요청하는 어플리케이션으로서 리눅스, 안드로이드, 윈도우 등과 같은 노멀(normal 또는 rich) 운영체제의 기반 하에 메모리에 로드되어 프로세스로써 동작하는 모든 어플리케이션을 포함한다. 클라이언트 어플리케이션은 노멀 영역(예를 들어, 노멀 영역의 하나의 구성)에 존재할 수 있다. 보안 어플리케이션은 과금, 결재, 디지털 권한 관리(DRM, Digital Right Management) 및 모바일 건강과 같이 보안이 필요한 프로세스에 있어서 보안 인증 및 인가를 위해 호출되는 어플리케이션이다. 이러한 보안 어플리케이션은 보안 영역(예를 들어, 보안 영역의 하나의 구성)에 존재할 수 있다. 특히, 본 발명의 일 실시예에 따른 휴대형 전자장치는 보안 어플리케이션으로서 mTPM 어플리케이션을 포함할 수 있다. mTPM 어플리케이션은 mTPM과 연계하여 사용자로부터 입력된 패스워드를 mTPM 내의 PCRs(Platform Configuration Registers)에 저장하여 실링(sealing)할 수 있다.
본 발명의 실시예를 설명하기에 앞서 '확장(extension)'은 무결성이 검증된 소프트웨어 또는 하드웨어 구성요소에 관한 측정값을 mTPM 내의 PCRs(Platform Configuration Register)에 저장하는 프로세스로 정의된다.
이하에서 본 발명의 일 실시예에 따른 휴대형 전자장치의 어플리케이션 보안 방법을 상세히 설명한다. 이하에서 사용되는 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다. 따라서, 아래 설명과 첨부된 도면은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있다. 또한, 첨부 도면에서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것은 아니다. 따라서, 본 발명은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. 본 발명과 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략된다.
도 1은 본 발명의 일 실시예에 따른 휴대형 전자장치의 블록 도면을 나타낸다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 휴대형 전자장치(100)는 표시부(110), 키입력부(120), 저장부(130), 무선통신부(150), 오디오 처리부(160) 및 제어부(170)를 포함할 수 있다.
표시부(110)는 제어부(170)의 제어 하에 데이터를 화면에 표시할 수 있다. 즉, 제어부(170)가 데이터를 처리(예를 들어, 디코딩(decoding))하여 버퍼에 저장하면 표시부(110)는 버퍼에 저장된 데이터를 아날로그 신호로 변환하여 화면에 표시할 수 있다. 표시부(110)에 전원이 공급되면 표시부(110)는 잠금 이미지를 화면에 표시할 수 있다. 잠금 이미지가 표시되고 있는 상태에서 잠금 해제 정보가 검출되면 제어부(170)는 잠금을 해제할 수 있다. 표시부(110)는 제어부(170)의 제어 하에 잠금 이미지 대신 예를 들어, 홈 이미지를 표시할 수 있다. 홈 이미지는 배경(background) 이미지(예를 들어, 사용자에 의해 설정된 사진)와 이 위에 표시되는 다수의 아이콘을 포함할 수 있다. 여기서 아이콘들은 각각 어플리케이션 또는 콘텐츠(예를 들어, 사진 파일, 비디오 파일, 녹음 파일, 문서, 메시지 등)을 지시할 수 있다. 아이콘들 중 하나 예를 들어, 메모 어플리케이션의 아이콘이 터치입력기구에 의해 터치되면 표시부(110)는 제어부(170)의 제어 하에 메모장을 표시할 수 있다.
본 발명의 일 실시예에 따른 표시부(110)는 제어부(170)의 제어 하에 보안 사용자 인터페이스(trusted user interface) API(Application Program Interface)를 통해 패스워드를 입력시키기 위한 보안 화면을 표시할 수 있다. 여기서, 보안 화면에는 어플리케이션 보안과 관련된 정보를 나타내는 보안 지시자란, 패스워드 입력 요청란, 패스워드 입력란, 확인 및 취소를 위한 버튼이 표시될 수 있다. 표시부(110)는 보안 화면을 표시함으로써 사용자의 입력 패스워드에 의한 어플리케이션 인가(authorization)가 수행되도록 할 수 있다. 이와 같은 표시부(110)는 액정 표시 장치(Liquid Crystal Display; LCD), AMOLED(Active Matrix Organic Light Emitted Diode), PMOLED(Passive Matrix Organic Light Emitted Diode), 플랙서블 디스플레이(Flexible display) 또는 투명 디스플레이로 이루어질 수 있다.
터치패널(111)은 표시부(110)의 화면에 설치된 터치스크린이다. 구체적으로 터치패널(111)은 표시부(110)의 화면에 위치하는 애드 온 타입(add-on type)이나 표시부(110) 내에 삽입되는 온 셀 타입(on-cell type) 또는 인 셀 타입(in-cell type)으로 구현될 수 있다. 터치패널(111)은 화면에 대한 사용자의 제스처에 응답하여 터치이벤트를 발생하고, 터치이벤트를 AD(Analog to Digital) 변환하여 제어부(170)로 전달할 수 있다. 이러한 터치패널(111)은 손 제스처를 감지하는 손 터치패널과 펜 제스처를 감지하는 펜 터치패널을 포함하여 구성된 복합 터치패널일 수 있다. 여기서 손 터치패널은 정전용량 방식(capacitive type)으로 구현될 수 있다. 물론 손 터치패널은 저항막 방식(resistive type), 적외선 방식 또는 초음파 방식으로도 구현될 수 있다. 또한, 손 패치패널은 손 제스처에 의해서만 터치이벤트를 발생하는 것은 아니며, 다른 물체 예를 들어, 정전용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 터치이벤트를 생성할 수 있다. 펜 터치패널은 전자 유도 방식(electromagnetic induction type)으로 구성될 수 있다. 이에 따라, 펜 터치패널은 자기장을 형성할 수 있도록 특수 제작된 터치용 펜에 의해 터치이벤트를 생성할 수 있다.
키입력부(120)는 사용자 설정 및 휴대형 전자장치(100)의 기능 제어와 관련한 키 이벤트를 생성하여 제어부(170)로 전달할 수 있다. 키 이벤트는 전원 온/오프 이벤트, 볼륨 조절 이벤트, 화면 온/오프 이벤트, 셔터 이벤트 등을 포함할 수 있다. 제어부(170)는 이러한 키 이벤트에 응답하여 상기한 구성들을 제어할 수 있다.
저장부(130)는 디스크, 램(RAM), 롬(ROM) 또는 플래시 메모리 등으로 구성될 수 있다. 특히, 저장부(130)는 제 1노멀 영역(132) 및 제 1보안 영역(131)으로 구성될 수 있다. 노멀 영역(132)은 휴대형 전자장치(100)의 메인 운영체제와 이에 기반 하여 동작하는 어플리케이션들이 설치된다는 개념에서 메인 영역으로 지칭될 수 있다. 제 1보안 영역(131)은 제 1노멀 영역(132)의 운영체제나 어플리케이션이 임의대로 접근할 수 없는 영역으로 활용될 수 있다.
본 발명의 일 실시예에 따른 휴대형 전자장치(100)의 보안 영역(131)은 mTPM(133), 보안 부트로더(134), 보안 프로그램(135) 및 보안 데이터(136)를 포함할 수 있다. mTPM(133)(mobile Trusted Platform Module)는 모바일 플랫폼에서 사용되는 목적으로 PC 환경에서의 TPM과 같은 기능을 수행하는 보안 칩이다. 이러한 mTPM(133)은 암호화된 키, 패스워드, 디지털 인증서 등을 저장하는 저장 공간, 해시 알고리즘 및 PCRs(Platform Configuration Register) 등을 포함할 수 있다. mTPM(133)은 암호화된 키로서 인증키(endorsement key)를 포함하고 있으며, 이러한 인증키는 제조사에 의해 mTPM(133) 고유번호를 암호화함으로써 mTPM(133)의 보안을 보장하고 있다. PCRs은 mTPM(133) 내부에 보호된 장소에 존재하며, 플랫폼의 측정치를 저장하기 위한 160bit로 구성된 다수의 레지스터들이다. 본 발명의 일 실시예에서 부팅과정에서 운영체제를 비롯한 프로그램 및 데이터가 메인 메모리(172)로 로딩되고 무결성 검증 후, 하드웨어적으로 구분되는 보안영역의 mTPM(133)의 PCRs로 확장됨으로써 시스템의 무결성 및 정확성을 강화할 수 있다. 또한, 본 발명의 다른 실시예에서 사용자로부터 입력된 패스워드와 PCRs의 특정 콘텐츠를 묶어 암호화 즉, 패스워드를 실링(sealing)하여 PCRs에 저장함으로써, 시스템 구성이 변경되더라도 패스워드의 보안이 보장되도록 할 수 있다. 보안 부트로더(134)는 보안 부팅 과정에서 노멀 부트로더(137)를 메인 메모리(172)로 로딩할 수 있는 구성이다. 구체적으로, 본 발명의 일 실시예에서는 보안 부팅 과정에서 보안 영역(131)에 저장된 mTPM(133), 보안 부트로더(134) 및 보안 프로그램(135) 등이 먼저 메인 메모리(172)에 로딩되고 무결성 검증된 후, 검증된 mTPM(133), 보안 부트로더(134) 및 보안 프로그램(135)에 대한 해시 값들이 PCRs으로 확장될 수 있다. 이때 보안 부트로더(134)는 보안영역(173) 및 노멀 영역(174)에서 시스템 초기화를 수행할 수 있다. 즉, 보안 부트로더(134)는 보안 모니터를 설치함으로써, 메인 메모리(172) 내에 제 2보안 영역(173)을 설정할 수 있다. 또한, 보안 부트로더(134)는 노멀 부트로더(137)를 메인 메모리(172)로 로딩함으로써 제 2노멀 영역(174)에 대한 부팅 과정이 진행되도록 할 수 있다.
보안 프로그램(135)은 보안 코어 및 보안 코어의 기반 하에 동작하는 하나 이상의 보안 어플리케이션, 보안 모니터 등을 포함할 수 있다. 보안 코어는 예를 들어, G&D(Gieseche & Devrient)사의 모비코어(Mobicore)가 적용될 수 있다. 모비코어는 휴대형 전자장치(100)에서 안전하게 인터넷 뱅킹, 전자 결제 등을 할 수 있도록 하는 보안 제품이다. 보안 어플리케이션들은 내재화 어플리케이션 및 서드파티 어플리케이션으로 분류될 수 있다. 보안 모니터는 제 2노멀 영역(174) 및 제 2보안 영역(173) 간의 인터페이스 역할을 할 수 있다. 예를 들어, ARM(Advance RISC Machine)사의 트러스트 존(TrustZone) 기술이 본 발명의 일 실시예에 따라 보안 모니터로 적용될 수 있다. 보안 데이터(136)는 보안 코어 및 보안 어플리케이션에 의해 생성되는 데이터, 보안 코어 및 보안 어플리케이션 실행에 필요한 데이터, 보안 코어 및 보안 어플리케이션에 의해 무선 통신부(150)를 통해 외부장치로부터 수신되는 데이터를 저장할 수 있다. 보안 데이터(136)는 보안 코어, 보안 어플리케이션 및 보안 모니터에서만 접근이 가능하며 제 2노멀 영역(174)에서는 접근할 수 없다. 즉, 제 2노멀 영역(174)의 노멀 운영체제나 클라이언트 어플리케이션(140)은 직접 보안 데이터(136)에 접근할 수 없으며, 보안 데이터(136)에 접근하기 위해서는 보안 데이터(136)를 통해서만 가능하다.
제 1노멀 영역(132)은 노멀 부트로더(137), 커널(138)(kernel), 노멀 OS(또는 rich OS)(139), 클라이언트 어플리케이션(140) 및 노멀 데이터(141) 등을 포함할 수 있다. 노멀 부트로더(137)는 보안 부트로더(134)에 의해 메인 메모리(172)에 로딩될 수 있으며, 노멀 운영체제가 시동되기 전에 커널(138)을 메인 메모리(172)로 로딩하는 기능을 수행할 수 있다. 또한, 노멀 부트로더(137)는 커널(138)의 무결성을 측정한 후, 측정된 해시 값을 미리 정의된 PCRs로 확장할 수 있다. 커널(138)은 노멀 운영체제의 핵심으로서 운영체제의 주소 공간 관리 및 메모리 관리자의 역할을 수행하는 구성이며, 본 발명의 일 실시예에서 커널(138)은 노멀 부트로더(137)에 의해 메인 메모리(172)로 로딩된 후, 노멀 os(139)를 메인 메모리(172)로 로딩할 수 있다. 또한, 노멀 OS(139)의 무결성을 측정한 후, 측정된 해시 값을 미리 정의된 PCRs로 확장할 수 있다. 노멀 OS(139)는 노멀 영역(174)의 전반적인 동작을 제어하는 구성이며, 본 발명의 일 실시예에서 노멀 OS(139)의 해시값이 미리 정의된 PCRs로 확장됨으로써 부팅 과정이 종료될 수 있다.
클라이언트 어플리케이션(140)은 노멀 운영체제의 기반 하에 동작하며 클라이언트 어플리케이션(140)은 내재화 어플리케이션(embedded application)과 서드파티 어플리케이션(3rd party application)으로 분류될 수 있다. 예를 들어, 내재화 어플리케이션은 웹 브라이저(web browser), 이메일(email) 프로그램, 인스턴트 메신저(instant messenger) 등이다. 노멀 데이터(141)는 노멀 운영체제 및 클라이언트 어플리케이션(140)에 의해 생성되는 데이터, 노멀 운영체제 및 클라이언트 어플리케이션(140)의 실행에 필요한 데이터 및 무선 통신부(150)를 통해 외부장치로부터 수신한 데이터를 저장할 수 있다.
무선통신부(150)는 제어부(170)의 제어 하에, 네트워크를 통해 외부장치와 음성 통화, 화상 통화 또는 데이터 통신을 수행할 수 있다. 무선통신부(150)는 송신되는 신호의 주파수를 상승변환 및 증폭하는 무선주파수 송신부와 수신되는 신호의 주파수를 저잡음 증폭 및 하강 변환하는 무선주파수 수신부를 포함할 수 있다. 또한, 무선통신부(150)는 이동 통신 모듈(예를 들어, 3세대(3-Generation) 이동통신모듈, 3.5세대(3.5-Generation) 이동통신모듈 또는 4세대(4-Generation) 이동통신모듈, 디지털 방송 모듈(예를 들어, DMB 모듈) 및 근거리 통신모듈(예를 들어, 와이파이(wi-fi 모듈, 블루투스(bluetooth) 모듈, NFC(Near Field Communication) 모듈)을 포함할 수 있다. 본 발명의 일 실시예에 따른 무선통신부(150)는 어플리케이션 제공서버로부터 클라이언트 어플리케이션을 다운로드할 수 있으며, 보안 인증 서버를 통해 공개 키를 수신함으로써 인증 과정을 수행할 수 있다.
오디오 처리부(160)는 스피커 및 마이크와 결합하여 음성 인식, 음성 녹음, 디지털 레코딩 및 통화를 위한 오디오 신호(예를 들어, 음성 데이터)의 입력 및 출력을 수행할 수 있다. 오디오 처리부(160)는 제어부(170)로부터 오디오 신호를 수신하고, 수신한 오디오 신호를 아날로그로 D/A 변환하고 증폭한 후 스피커로 출력할 수 있다. 오디오 처리부(160)는 마이크로부터 수신한 오디오 신호를 디지털로 A/D 변환한 후 제어부(170)로 제공한다. 스피커는 오디오 처리부(160)로부터 수신한 오디오 신호를 음파(sound wave)로 변환하여 출력할 수 있다. 마이크는 사람이나 기타 소리원(sound source)로 전달된 음파를 오디오 신호로 변환할 수 있다.
제어부(170)는 휴대형 전자장치(100)의 전반적인 동작 및 휴대형 전자장치(100) 내부 구성들 간의 신호 흐름을 제어하고 데이터를 처리하는 기능을 수행하고 배터리에서 상기 구성들로의 전원 공급을 제어할 수 있다.
제어부(170)는 하나 이상의 CPU(Central Processing Unit)로 구성될 수 있다. CPU는 자료의 연산 및 비교와 명령어 해석 및 실행 등을 수행하는 컴퓨터 시스템의 핵심적인 제어 유닛이다. 또한, CPU는 하나 이상의 독립 코어가 단일 집적 회로로 이루어진 하나의 패키지(package)로 통합될 수 있다.
본 발명의 일 실시예에서 제어부(170)는 롬(ROM) 및 메인 메모리(172)(main memory unit)을 포함할 수 있다. 롬(ROM)(171)은 초기 부팅과정을 수행할 수 있는 구성으로서 롬 부트로더 (ROM bootloader)(175), CRTM(Core Root Trust Measurement)(176) 및 보안 해시(177)를 포함할 수 있다. 롬 부트로더(175)는 휴대형 전자장치(100)의 파워 온 또는 리셋 시 시스템의 초기 구성을 형성하는 기능을 수행할 수 있다. 즉, 롬 부트로더(175)는 저장부(130)의 mTPM(133), 보안 부트로더(134)를 비롯하여 보안 프로그램(135) 및 보안 데이터(136)를 메인 메모리(172)로 로딩할 수 있다. CRTM(176)은 롬 부트로더(175)에 의해 메인 메모리(172)로 로딩된 mTPM(133), 보안 부트로더(134) 등의 구성들의 무결성을 측정하는 기능을 수행할 수 있다. 구체적으로, CRTM(176)은 mTPM(133), 보안 부트로더(134) 등의 구성들의 측정 해시 값을 ROM에 저장된 보안 해시(177)와 비교하여 부팅 진행 여부를 결정할 수 있다. 여기서 ROM에 저장된 보안 해시(177)는 변경할 수 없는 값으로서 보안 영역(131)의 구성들의 무결성을 검증하기 위한 비교 값으로서 사용될 수 있다.
메인 메모리(172)는 램(RAM)으로 구성될 수 있다. 제어부(170)의 CPU는 메인 메모리(172)에 접근하여 메인 메모리(172)에 로딩된 각종 프로그램 및 데이터를 읽을 수 있고, 읽어 온 프로그램의 명령을 해독할 수 있으며, 해독 결과에 따른 기능을 실행할 수 있다. 본 발명의 일 실시예에 따른 메인 메모리(172)는 저장부(130)와 대응되도록 제 2노멀 영역(174) 및 제 2보안 영역(173)으로 구성될 수 있다. 구체적으로, 제어부(170)의 보안 영역(173)으로 mTPM(133), 보안 부트로더(134)를 비롯하여 보안 코어와 보안 어플리케이션을 포함하는 보안 프로그램(135) 및 보안 데이터(136)가 로딩될 수 있다. 또한, 제어부(170)의 제 2노멀 영역(174)에는 부팅 과정에서 실행되는 노멀 부트로더(137)를 비롯하여 커널(138), 노멀 OS(Operating Systemt)(139), 클라이언트 어플리케이션(140) 및 노멀 데이터(141)가 로딩될 수 있다.
디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 휴대형 전자장치는 카메라, 가속도 센서, GPS(Global Positioning System) 모듈, 진동 모터, 액세서리, 이어 잭 등과 같이 상기에서 언급되지 않은 구성들을 더 포함할 수 있다. 여기서 액세서리는 휴대형 전자장치로부터 분리 가능한 휴대형 전자장치의 부속품으로써 예를 들어, 터치를 위한 펜이 될 수 있다.
도 2는 본 발명의 일 실시예에 따라 휴대형 전자장치의 보안 부팅 수행 과정을 나타내는 흐름도를 나타낸다.
도 1 및 도 2를 참조하면, 과정 201에서 휴대형 전자장치(100)가 파워 온 또는 리셋될 수 있다. 이에 따라, 휴대형 전자장치(100)의 부팅 과정이 시작될 수 있다. 본 발명의 일 실시예에 따른 휴대형 전자장치(100)의 mTPM(133)의 PCRs(Platform Configuration Registers)의 값들은 이때 리셋될 수 있다.
과정 203에서 저장부(130)의 보안 영역(131) 구성을 메인 메모리(172)로 로딩할 수 있다. 구체적으로, 롬(ROM)(171)에 저장된 롬 부트로더(175)는 과정 201에서 휴대형 전자장치(100)가 파워 온 또는 리셋되면 시스템의 초기 구성을 형성하는 기능을 수행하며, 저장부(130)에 저장된 mTPM(133), 보안 부트로더(134)를 비롯하여 보안 프로그램(135) 및 보안 데이터(136)를 메인 메모리(172)로 로딩할 수 있다.
과정 205에서 메인 메모리(172)로 로딩된 제 2보안 영역(173) 구성들의 무결성을 측정할 수 있다. 구체적으로, 롬(171)에 포함된 CRTM(Core Root Trust Measurement)(176)은 메인 메모리(172)로 로딩된 mTPM(133), 보안 부트로더(134)의 무결성을 측정할 수 있다. 무결성 측정은 해시 알고리즘에 의해 계산될 수 있다. 해시 알고리즘으로 SHA-1, MD5, SHA-256, RC4, AES, DES, 3DES, RSA 등과 같은 각종 암호 알고리즘이 이용될 수 있다.
과정 207에서는 측정된 제 2보안 영역(173) 구성들의 무결성을 검증할 수 있다. 구체적으로, CRTM(176)은 해시 알고리즘에 의해 측정된 제 2보안 영역(173) 구성들의 해시 값과 롬(ROM)(171)에 저장된 보안 해시(177)를 비교함으로써 상기 구성들의 무결성을 검증할 수 있다. 여기서 ROM(171)에 저장된 보안 해시(177)는 변경할 수 없는 값으로서 보안 영역(173)의 구성들의 무결성을 검증하기 위한 비교 값으로서 사용될 수 있다. CRTM(176) 에 의해 측정된 제 2보안 영역(173) 구성들의 해시 값과 롬(ROM)(171)에 저장된 보안 해시(177)를 비교한 결과 일치하지 않는 경우에는 과정 209에서 부팅 과정이 종료될 수 있다.
반면, 과정 207에서 CRTM(176)에 의해 측정된 보안 영역(173) 구성들의 해시 값과 롬(ROM)(171)에 저장된 보안 해시(177)가 일치하는 경우에는 과정 211에서 CRTM(176)은 측정된 보안 영역(173) 구성들의 해시 값을 미리 정의된 mTPM(133) 내의 PCRs로 확장될 수 있다. 또한 메인 메모리(172)로 로딩된 보안 부트로더는 제 2보안영역(173) 및 제 2노멀 영역(174)에서 시스템 초기화를 수행할 수 있다. 즉, 보안 부트로더(134)는 보안 모니터를 설치함으로써, 메인 메모리(172) 내에 제 2보안 영역(173)을 노멀 영역(174)과 분리하여 설정할 수 있다. 또한, 보안 부트로더(134)는 노멀 부트로더(137)를 메인 메모리(172)로 로딩함으로써 제 2노멀 영역(174)에 대한 부팅 과정이 진행되도록 할 수 있다. 또한, 보안 부트로더(134)는 노멀 부트로더(137)의 무결성을 측정하고, 측정된 해시 값을 PCRs로 확장할 수 있다.
과정 213에서는 제 1노멀 영역(132) 구성들을 메인 메모리(172)로 로딩하고 무결성을 측정하여 PCRs로 확장할 수 있다. 구체적으로, 보안 부트로더(134)에 의해 메인 메모리(172)에 로딩된 노멀 부트로더(137)는 노멀 운영체제가 시동되기 전 커널(138)을 메인 메모리(172)로 로딩하는 기능을 수행할 수 있다. 또한, 노멀 부트로더는 커널(138)의 무결성을 측정 후, 측정된 해시 값을 미리 정의된 PCRs로 확장할 수 있다. 커널(138)은 노멀 운영체제의 핵심으로서 운영체제의 주소공간 관리 및 메모리 관리자의 역할을 수행하는 구성이며, 본 발명의 일 실시예에서 커널(138)은 노멀 부트로더(137)에 의해 메인 메모리(172)로 로딩된 후, 노멀 OS(139)를 메인 메모리(172)로 로딩할 수 있다. 그리고, 커널(138)은 노멀 OS(139)의 무결성을 측정 후, 측정된 해시 값을 미리 정의된 PCRs로 확장할 수 있다.
이와 같이, 본 발명의 일 실시예에 따라 휴대형 전자장치(100)의 보안 부팅이 수행되는 과정은 CRTM(176)에 의해 변경될 수 없는 해시 값으로서 보안 해시(177)를 이용하여 저장부(130)로부터 메인 메모리(172)로 로딩되는 보안 영역(173) 각 구성들의 무결성이 검증된 경우에만 부팅이 계속적으로 수행되도록 함으로써 보안을 강화할 수 있다. 또한, 보안 영역(173)의 구성을 비롯하여 메인 메모리(172)로 로딩되는 제 2노멀 영역(174) 구성의 무결성 측정 및 측정된 값을 mTPM(133)의 미리 정의된 PCRs에 확장함으로써 부팅 과정이 종료될 수 있다. 여기서 이러한 부팅 과정이 완료된 상태를 베이스 상태(base state)로 정의할 수 있다. 베이스 상태에서는 새로운 소프트웨어가 커널 레벨에서 로딩되는 경우에만 변경될 수 있다. 이후 시스템의 상태는 시스템의 현재 상태의 PCRs이 아닌 베이스 상태의 PCRs로부터 직접 확장될 수 있다. 즉, 임의의 측정이 수행될 때 플랫폼의 상태가 변화함으로써 그 결과, 현재 어플리케이션과 관련되지 않은 어플리케이션이 PCRs을 확장하는 경우에는 시스템의 상태가 정확하지 않을 수 있다. 이에 따라, 본 발명의 일 실시예에서는 시스템의 정확성을 강화하기 위해 새로운 소프트웨어가 커널 레벨에서 로딩되는 경우를 제외하고, 베이스 상태로부터 PCRs을 확장할 수 있도록 할 수 있다.
도 3은 본 발명의 일 실시예에 따른 휴대형 전자장치의 기능적 아키텍처를 설명하기 위한 도면이다.
도 3을 참조하면, 노멀 영역(310)은 사용자 스페이스(320) 및 커널 스페이스(330)로 구분될 수 있다. 사용자 스페이스(320)에는 클라이언트 어플리케이션(321) 및 악성 어플리케이션이 저장될 수 있다.
사용자 스페이스(320)에 저장되는 클라이언트 어플리케이션(321)은 클라이언트 어플리케이션 실행 코드, 실링된 패스워드 및 기준 무결성 메트릭 (Reference Intergrity Metric; RIM) 인증을 포함할 수 있다. 본 발명의 일 실시예에서 실링(sealing)된 패스워드는 어플리케이션 제공 서버(340)에 저장된 어플리케이션(341)에는 없는 구성에 해당된다. 구체적으로, 어플리케이션 제공 서버(340)에 저장된 어플리케이션(341)이 다운로드 매니저(337)에 의해 다운로드된 후, 사용자에 의해 입력되는 패스워드는 실링(sealing)되어 어플리케이션(341)에 부가될 수 있다. 실링(sealing)은 사용자에 의해 입력되는 패스워드를 베이스 상태의 시스템 상태를 나타내는 PCRs(372) 값과 함께 암호화하는 동작을 의미한다. 또한, 실링된 패스워드는 PCRs(372)에 확장되고, 실링된 패스워드는 어플리케이션 제공 서버(340)로부터 다운로드된 어플리케이션(341)에 부가되어 보안 영역(360)의 사용자 스페이스(320)에 저장될 수 있다. 기준 무결성 메트릭 인증은 인증된 소프트웨어 또는 인증된 소프트웨어의 부품으로부터 해싱(hashing)된 적어도 하나의 기준 무결성 메트릭을 의미하며, 제조자에 의해 서명될 수 있다. 본 발명의 일 실시예에 따른 기준 무결성 메트릭은 어플리케이션 해시, 디지털 서명, 어플리케이션 ID를 포함할 수 있다. 기준 무결성 메트릭 인증에 저장된 어플리케이션 해시는 클라이언트 어플리케이션(321)의 무결성을 검증하기 위해 값이다. 구체적으로, 클라이언트 어플리케이션(321)의 무결성을 검증하기 위해 어플리케이션 해시를 측정 에이전트(335)에 의해 해싱된 클라이언트 어플리케이션 실행 코드 해시 값과 비교할 수 있다. 디지털 서명은 보안 인증 서버(380)로부터 제공되는 공개 키(381)와 결합하여 유효성을 증명함으로써, 클라이언트 보안 어플리케이션(373)의 인증을 위하여 이용될 수 있다. 그리고, 어플리케이션 ID는 클라이언트 어플리케이션(321)이 보안 어플리케이션(373)과 연결하기 위해 인증 또는 인가 중 어느 과정이 필요한 지를 확인할 수 있도록 하는 구성이다. 악성 어플리케이션(323)은 클라이언트 어플리케이션(321)을 변조, 위조하려는 논리 개체이다. 예를 들어, 악성 어플리케이션(323)은 바이러스, 웜 바이러스, 트로이목마 등과 같은 악성 코드와 스파이웨어일 수 있다.
커널 스페이스(330)는 보안 드라이버(333), 측정 에이전트(335), 다운로드 매니저(337)를 포함할 수 있다. 그리고, 커널(331)은 보안 드라이버(333), 측정 에이전트(335), 다운로드 매니저(337)를 포함할 수 있다. 보안 드라이버(333)는 커널 스페이스(330) 내의 구성과 보안 영역(360) 및 사용자 스페이스(320)의 구성 간 인터페이스 역할을 수행할 수 있다. 측정 에이전트(335)는 클라이언트 어플리케이션(321)이 보안 어플리케이션(373) 연결 요청을 하는 경우 클라이언트 어플리케이션(321)의 무결성 검증할 수 있다. 다운로드 매니저(337)는 어플리케이션 제공 서버(340)에 접근하여 휴대형 전자장치(100)로 어플리케이션(341)을 다운로드할 수 있다. 또한, 다운로드 매니저(337)는 보안 영역(360) 내에서 패스워드가 실링(sealing)되면 실링된 패스워드를 다운로드된 어플리케이션에 부가할 수 있다. 보안 모니터(350)는 노멀 영역(310) 및 보안 영역(360) 간 인터페이스 역할을 수행할 수 있다. 예를 들어, ARM(Advance RISC Machine)사의 트러스트 존(trust zone)이 보안 모니터(350)에 포함될 수 있다. 보안 연장(351)은 노멀 영역(310)과 보안 영역(360) 간 물리적으로 분리할 수 있으며, 보안 모니터(350)를 통해서만 노멀 영역(310) 및 보안 영역(360) 간 명령이 전달될 수 있도록 하기 위한 구성이다.
보안 영역(360)은 보안 코어(370), 보안 내부 API(Application Program Interface(378)), mTPM(371), 보안 어플리케이션(373), mTPM 어플리케이션(374), 보안 인증 에이전트(375), 보안 어플리케이션(373) 매니저(376) 및 보안 사용자 인터페이스 API(377)를 포함할 수 있다. 보안 코어(370)는 보안영역(360)의 메인 구성으로서 관리 기능을 수행하며, 보안 어플리케이션(373), mTPM(371), 보안 인증 에이전트(375) 및 보안 어플리케이션 매니저(376)와의 인터페이스 역할을 하는 보안 내부 API(378)를 포함할 수 있다. mTPM 어플리케이션(374)은 mTPM(371)과 연계하여 클라이언트 어플리케이션(321)에 대한 보안 기능 역할을 수행할 수 있다. 특히, mTPM 어플리케이션(374)은 보안 화면을 통해 사용자로부터 입력되는 패스워드를 실링하고, 실링된 패스워드를 mTPM의 PCRs(372)로 확장할 수 있다. 또한, mTPM 어플리케이션(374)은 사용자로부터 실링된 패스워드를 언실링(unsealing)하기 하기 위한 패스워드를 입력 받도록 제어할 수 있다. 보안 인증 에이전트(375) 및 보안 어플리케이션 매니저(376)는 권한이 부여된(privileged) 어플리케이션으로서, 보안 인증 에이전트(375)는 공개 키(381)를 포함하는 보안 인증 서버(380)로의 접근을 제어할 수 있으며, 보안 어플리케이션 매니저(376)는 보안 영역(360)에 저장된 보안 어플리케이션(373)으로의 접근을 제어할 수 있다. 그리고, 보안 사용자 인터페이스 API(377)는 보안 어플리케이션(373)으로부터 호출이 있는 경우 사용자로부터 패스워드가 입력되는 보안 화면을 표시할 수 있다. 이하에서는 어플리케이션 설치 과정 및 어플리케이션 실행과정에 관하여 설명한다.
도 4는 본 발명의 일 실시예에 따라 어플리케이션 다운로드 과정 설명을 위한 흐름도를 나타낸다.
도 3 및 도 4를 참조하면, 과정 401에서 어플리케이션 제공서버(340)로부터 어플리케이션(341)을 다운로드 할 수 있다. 구체적으로, 다운로드 매니저(337)에 의해 어플리케이션 제공서버(340)로부터 어플리케이션 제공서버(340)에 저장된 어플리케이션을 다운로드 할 수 있다. 여기서 다운로드되는 애플케이션(341)은 클라이언트 어플리케이션 실행 코드 및 기준 무결성 메트릭 (Reference Intergrity Metric; RIM) 인증을 포함할 수 있다. 기준 무결성 메트릭 인증은 어플리케이션 해시, 디지털 서명 및 어플리케이션 ID를 포함할 수 있다. 다운로드 매니저(337)는 어플리케이션(341)을 다운로드하는 도중 오류가 발생되는 경우 다운로드를 중지하고, 오류 발생 메시지를 생성할 수 있다.
과정 401에서 어플리케이션(341)의 다운로드가 완료되면, 과정 403에서 보안 어플리케이션 매니저(376)의 제어 하에 패스워드 실링을 위한 보안 화면을 표시할 수 있다. 구체적으로, 다운로드 매니저(337)는 보안 어플리케이션(373) 매니저(376)로 다운로드된 어플리케이션(341)의 기준 무결성 메트릭 인증에 포함된 어플리케이션 해시를 전달할 수 있다. 보안 어플리케이션(373) 매니저(376)는 보안 사용자 인터페이스 API(377)를 호출하여 패스워드 실링을 위한 보안 화면을 표시하도록 명령을 보안 코어(370)에 전달할 수 있다.
과정 405에서는 mTPM 어플리케이션(374)는 보안 화면을 통해 사용자로부터 입력되는 패스워드를 실링할 수 있다. 여기서, 실링(sealing)은 사용자에 의해 입력되는 패스워드를 베이스 상태의 PCRs(372) 값과 함께 암호화하는 동작을 의미한다. mTPM 어플리케이션(374)은 보안 화면을 통해 사용자로부터 입력되는 패스워드를 실링하고, 실링된 패스워드를 mTPM(371)의 PCRs(372)로 확장할 수 있다. 실링된 패스워드가 mTPM(371)의 PCRs(372)로 확장되면 시스템의 구성이 변경되는 경우에도 mTPM(371)의 PCRs(372)로 확장된 데이터는 변경되지 않으며, 이에 따라 다른 어느 시스템에서도 실링된 패스워드는 언실링 되지 않는다. 이와 같이, 본 발명의 일 실시예에서는 패스워드를 실링함으로써, 악성 어플리케이션(323)으로부터 클라이언트 어플리케이션(321) 데이터의 변조, 위조 등을 방지할 수 있다.
과정 407에서 실링된 패스워드를 다운로드된 애플케이션(341)에 부가할 수 있다. 구체적으로, 보안 어플리케이션 매니저(376)는 다운로드 매니저(337)로 실링된 패스워드를 전달할 수 있다. 전달된 실링된 패스워드는 다운로드 매니저(337)에 의해 어플리케이션 제공서버(340)로부터 다운로드된 어플리케이션(341)에 부가될 수 있다.
과정 407에서 다운로드 매니저(337)는 실링된 패스워드가 부가된 어플리케이션(341)을 사용자 스페이스(320)로 전달 및 설치할 수 있다.
도 5는 본 발명의 일 실시예에 따라 어플리케이션 실행 과정 설명을 위한 흐름도를 나타낸다. 구체적으로, 도 5는 클라이언트 어플리케이션(321)이 보안 어플리케이션(373)과 연결되기 위한 인증 또는 인가 과정을 나타낸다.
도 3 및 도 5를 참조하면, 과정 501에서 클라이언트 어플리케이션(321)이 필요한 보안 어플리케이션(373)을 요청할 수 있다. 구체적으로, 클라이언트 어플리케이션(321)이 보안 드라이버(333)로 필요한 보안 어플리케이션(373) 요청하고, 클라이언트 어플리케이션(321)은 보안 클라이언트 API(339)를 통해 보안 드라이버(333)로 클라이언트 어플리케이션(321)의 어플리케이션 실행 코드, 기준 무결성 메트릭 인증 및 실링된 패스워드를 전달할 수 있다.
과정 503에서 보안 드라이버(333)는 클라이언트 어플리케이션(321)이 무결한 지 확인할 수 있다. 구체적으로, 보안 드라이버(333)는 측정 에이전트(335)를 호출하여 클라이언트 어플리케이션(321)의 무결성을 확인할 수 있다. 즉, 측정 에이전트(335)는 클라이언트 어플리케이션(321)의 어플리케이션 실행 코드의 해시 값을 계산하고, 기준 무결성 메트릭 인증에 저장된 어플리케이션 해시 값과 비교할 수 있다. 과정 503에서 클라이언트 어플리케이션(321)의 무결성이 확인되지 않는 경우 즉, 계산된 어플리케이션 실행 코드의 해시 값과 기준 무결성 메트릭 인증에 저장된 어플리케이션 해시 값이 일치하지 않는 경우 과정 505에서 클라이언트 어플리케이션(321)의 보안 어플리케이션(373) 연결 요청은 종료될 수 있다.
과정 503에서 클라이언트 어플리케이션(321)의 무결성이 확인되면 과정 507에서 클라이언트 어플리케이션(321)이 보안 어플리케이션(373)을 위해 필요한 보안 기능이 인증 또는 인가 중 어느 과정인 지를 확인할 수 있다. 구체적으로, 클라이언트 어플리케이션(321)의 무결성이 확인되면, 보안 영역(360) 드라이버는 보안 모니터(350)를 호출할 수 있다. 호출된 보안 모니터(350)를 통해 인증 또는 인가를 위한 명령이 보안 코어(370)에 전달될 수 있다. 보안 코어(370)는 보안 어플리케이션 매니저(376)를 호출할 수 있다. 보안 어플리케이션 매니저(376)는 클라이언트 어플리케이션(321)의 기준 무결성 메트릭 인증에 포함된 클라이언트 ID를 확인할 수 있으며, 클라이언트 ID를 확인함으로써 클라이언트 어플리케이션(321)이 필요로 하는 보안 기능을 확인할 수 있다. 즉, 보안 어플리케이션매니저(376)는 인증(authentication), 인가(authorization) 또는 인증 및 인가 중에서 클라이언트 어플리케이션(321)이 필요로 하는 보안 기능을 확인할 수 있다.
과정 507에서 보안 어플리케이션 매니저(376)가 클라이언트 ID를 확인한 결과, 과정 509에서 클라이언트 어플리케이션(321)이 인증을 필요로 하는 경우, 과정 511에서 클라이언트 어플리케이션(321)에 포함된 전자서명이 유효한 지를 판단할 수 있다. 구체적으로, 과정 509에서 클라이언트 어플리케이션(321)이 인증이 필요한 것으로 확인되면, 보안 어플리케이션 매니저(376)는 보안 내부 API(378)를 통해 보안 인증 에이전트(375)와 세션을 연결하고, 보안 인증 에이전트(375)로 클라이언트 어플리케이션(321)에 포함된 전자서명의 유효성 판단을 요청할 수 있다. 보안 인증 에이전트(375)는 보안 인증 서버(380)와 연결되고, 연결된 보안 인증 서버(380)에 저장된 공개키(381)를 이용하여 클라이언트 어플리케이션(321)의 전자서명이 유효한 지 확인할 수 있다. 과정 511에서 어플리케이션의 전자서명이 유효하지 않은 것으로 판단되면 과정 513에서 클라이언트 어플리케이션(321)의 보안 어플리케이션(373) 연결 요청은 종료될 수 있다.
반면, 과정 511에서 클라이언트 어플리케이션(321)의 전자서명이 유효한 것으로 판단되면, 과정 515에서 보안 어플리케이션 매니저(376)는 클라이언트 어플리케이션(321)이 연결 요청한 보안 어플리케이션(373)과 세션을 연결할 수 있다. 클라이언트 어플리케이션(321)은 연결된 세션을 통해 보안 어플리케이션(373)을 실행할 수 있다.
한편, 과정 509에서 클라이언트 어플리케이션(321)이 인증을 필요로 하지 않는 경우, 과정 517에서는 클라이언트 어플리케이션(321)이 보안 어플리케이션(373)과 연결되기 위해 인가를 필요로 하는 것으로 판단할 수 있다. 과정 519에서는 클라이언트 어플리케이션(321) 인가를 위해 mTPM 어플리케이션(374)에 의해 실링된 패스워드를 언실링할 수 있다. 구체적으로, 보안 어플리케이션 매니저(376)는 보안 내부 API(378)를 통해 mTPM 어플리케이션(374)과 세션을 연결할 수 있다. 그리고, 보안 어플리케이션(373) 매니저(376)는 mTPM 어플리케이션(374)으로 클라이언트 어플리케이션(321) 설치 과정에서 실링된 패스워드를 언실링하도록 요청할 수 있다. 언실링 요청을 받은 mTPM 어플리케이션(374)은 PCRs(372)에 확장된 실링된 패스워드를 언실링할 수 있다.
과정 521에서는 사용자에 의해 입력되는 패스워드와 언실링된 패스워드를 비교하여 클라이언트 어플리케이션(321)을 인가할 수 있다. 구체적으로, mTPM 어플리케이션(374)은 패스워드 입력을 위해 보안 사용자 인터페이스 API(377)를 호출할 수 있다. 호출된 보안 사용자 인터페이스 API(377)에 의해 보안 화면이 표시되면 사용자는 보안 화면으로 패스워드를 입력할 수 있다. 사용자에 의해 입력된 패스워드가 mTPM 어플리케이션(374)에 의해 언실링된 패스워드와 일치하는 지 판단하고, 일치하지 않는 것으로 판단되면 클라이언트 어플리케이션(321)의 보안 어플리케이션(373) 연결 요청은 종료될 수 있다.
반면, 과정 521에서 사용자에 의해 입력된 패스워드가 mTPM 어플리케이션(374)에 의해 언실링된 패스워드와 일치하면, 과정 515에서 보안 어플리케이션 매니저(376)는 클라이언트 어플리케이션(321)이 연결 요청한 보안 어플리케이션(373)과 세션을 연결할 수 있다. 클라이언트 어플리케이션(321)은 연결된 세션을 통해 보안 어플리케이션(373)을 실행할 수 있다.
한편, 도 5에서 클라이언트 어플리케이션(321)에 따라 인증 및 인가가 모두 필요한 경우를 설명하고 있지 않지만, 도 5를 통해 클라이언트 어플리케이션(321)의 인증 후 인가 또는 인가 후 인증 또한 수행될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명할 것이다.
이와 같이, 본 발명의 일 실시예에 따른 휴대형 전자장치는 부팅 과정, 어플리케이션 설치 과정 및 어플리케이션 실행 과정에서 하드웨어 구성요소로서 mTPM(mobile Trusted Platform Module)을 이용하여 안전하게 어플리케이션이 실행되도록 지원할 수 있다.
한편, 본 명세서와 도면을 통해 본 발명의 바람직한 실시 예들에 대하여 설명하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것일 뿐, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100 : 휴대형 전자장치 110 : 표시부
120 : 키입력부 130 : 저장부
131: 제 1보안영역 132 : 제 1노멀영역
140 : 클라이언트 어플리케이션 150 : 무선 통신부
160 : 오디오 처리부 170 : 제어부
120 : 키입력부 130 : 저장부
131: 제 1보안영역 132 : 제 1노멀영역
140 : 클라이언트 어플리케이션 150 : 무선 통신부
160 : 오디오 처리부 170 : 제어부
Claims (18)
- 휴대형 전자장치의 어플리케이션 보안 방법에 있어서.
상기 휴대형 전자장치의 제 1보안 영역에 포함되는 제 1구성 및 제 1노멀 영역에 포함되는 제 2구성을 상기 제 1보안 영역 및 상기 제 1노멀 영역에 각각 상응하는 제 2 보안 영역 및 제 2노멀 영역을 포함하는 메인 메모리로 로딩(loading)하고, 상기 로딩되는 제 1구성 및 상기 제 2구성의 측정된 해시 값을 상기 제 1구성에 포함되는 mTPM(mobile Trusted Platform module)의 PCRs(Platform Configuration Registers)로 확장(extension)하는 부팅(booting) 과정;
보안 인증 서버로부터 어플리케이션을 다운로드하고, 상기 다운로드된 어플리케이션에 실링(sealing)된 패스워드를 부가함으로써 생성되는 클라이언트 어플리케이션을 설치하는 과정; 및
상기 설치된 클라이언트 어플리케이션을 보안 어플리케이션과 연결하기 위해 상기 클라이언트 어플리케이션을 인증(authentication) 또는 인가(authorization)하는 과정을 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 1항에 있어서,
상기 부팅 과정은 상기 메인 메모리로 로딩되는 제 1구성의 해시 값을 측정하고, 상기 측정된 상기 제 1구성의 해시 값과 롬(ROM)에 포함된 보안 해시 값을 비교하는 과정을 더 포함하고,
상기 측정된 제 1구성의 해시 값과 상기 롬(ROM)에 포함된 보안 해시 값이 일치하면, 상기 측정된 제 1구성의 해시 값을 상기 mTPM의 PCRs(Platform Configuration Registers)로 확장하는 과정을 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 2항에 있어서,
상기 측정된 제 1구성의 해시 값이 상기 mTPM의 PCRs(Platform Configuration Registers)로 확장된 후, 상기 로딩된 제 1구성에 포함되는 보안 부트로더(secure bootloader)에 의해 상기 메인 메모리의 영역이 제 2보안 영역 및 제 2노멀 영역으로 구분되는 과정을 더 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 1항에 있어서,
상기 클라이언트 어플리케이션을 설치하는 과정은,
패스워드가 입력되기 위한 보안 화면을 표시하는 과정; 및
상기 입력되는 패스워드 및 베이스 상태(base state)로 확장된 상기 PCRs의 값을 암호화하는 패스워드 실링(sealing) 과정을 더 포함하고,
상기 베이스 상태는 상기 부팅 과정이 완료된 상태인 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 4항에 있어서,
상기 실링된 패스워드가 상기 PCRs로 확장되는 과정을 더 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 1항에 있어서,
상기 클라이언트 어플리케이션을 인증 또는 인가하는 과정은,
상기 클라이언트 어플리케이션의 기준 무결성 메트릭(Reference Intergrity Metric) 인증에 포함된 해시 값을 이용하여 상기 클라이언트 어플리케이션의 무결성을 판단하는 과정을 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 6항에 있어서,
상기 클라이언트 어플리케이션을 상기 보안 어플리케이션과 연결하기 위해 상기 기준 무결성 메트릭 인증에 포함된 어플리케이션ID를 통해 인증 또는 인가 중 어느 것이 필요한 지 판단하는 과정를 더 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 1항에 있어서,
상기 클라이언트 어플리케이션을 인증하는 과정은,
상기 기준 무결성 메트릭(Reference Intergrity Metric) 인증에 포함되는 전자 서명이 유효한 지 판단하는 과정을 포함하고,
상기 전자 서명이 유효한 지 판단하기 위해 보안 인증 서버에 저장된 공개 키를 이용하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 6항에 있어서,
상기 클라이언트 어플리케이션을 인가하는 과정은,
패스워드가 입력되기 위한 보안 화면을 표시하는 과정;
상기 실링된 패스워드를 언실링(unsealing)하는 과정; 및
상기 언실링된 패스워드 및 상기 보안 화면을 통해 입력되는 패스워드를 비교함으로써, 인가를 판단하는 과정을 포함하는 것을 특징으로 하는 휴대형 전자장치의 어플리케이션 보안 방법. - 제 1보안 영역에 포함되는 제 1구성 및 제 1노멀 영역에 포함되는 제 2구성을 포함하고, 상기 제 1구성은 상기 제 1구성 및 상기 제 2구성의 측정된 해시 값이 확장(extension)되는 mTPM(mobile Trusted Platform module)의 PCRs(Platform Configuration Registers)을 포함하는 저장부; 및
상기 제 1보안 영역 및 상기 제 1노멀 영역에 각각 상응하는 제 2 보안 영역 및 제 2노멀 영역으로 상기 제 1구성 및 상기 제 2구성이 로딩(loading)되는 메인 메모리 및 롬(ROM)을 포함하고, 보안 인증 서버로부터 어플리케이션을 다운로드하고, 다운로드된 어플리케이션에 실링(sealing)된 패스워드를 부가함으로써 생성되는 클라이언트 어플리케이션이 설치되도록 제어하며, 상기 설치된 클라이언트 어플리케이션을 보안 어플리케이션과 연결하기 위해 상기 클라이언트 어플리케이션의 인증(authentication) 또는 인가(authorization)를 제어하는 제어부를 포함하는 것을 특징으로 하는 휴대형 전자장치. - 제 10항에 있어서,
상기 롬(ROM)은,
상기 메인 메모리로 로딩되는 제 1구성의 해시 값을 측정하여 상기 측정된 상기 제 1구성의 해시 값과 롬(ROM)에 포함된 보안 해시 값을 비교하고, 상기 측정된 제 1구성의 해시 값과 상기 롬(ROM)에 포함된 보안 해시 값이 일치하면 상기 측정된 제 1구성의 해시 값을 상기 mTPM의 PCRs로 확장하는 CRTM(Core Root Trust Measurement)를 포함하는 것을 특징으로 하는 휴대형 전자장치. - 제 11항에 있어서,
상기 롬(ROM)은 상기 측정된 제 1구성의 해시 값이 상기 mTPM의 PCRs(Platform Configuration Registers)로 확장된 후, 상기 메인 메모리의 상기 제 2보안 영역 및 상기 제 2노멀 영역을 구분하는 보안 부트로더(secure bootloader)를 포함하는 것을 특징으로 하는 휴대형 전자장치. - 제 10항에 있어서,
패스워드가 입력되기 위한 보안 화면을 표시하는 표시부; 및
상기 입력되는 패스워드 및 베이스 상태(base state)로 확장된 상기 PCRs의 값을 암호화하도록 실링(sealing)하는 mTPM 어플리케이션을 더 포함하고,
상기 베이스 상태는 상기 부팅 과정이 완료된 상태인 것을 특징으로 하는 휴대형 전자장치. - 제 13항에 있어서,
상기 실링된 패스워드는 상기 PCRs로 확장되는 것을 특징으로 하는 휴대형 전자장치 - 제 10항에 있어서,
상기 클라이언트 어플리케이션을 인증 또는 인가하기 위해 상기 제어부는 상기 클라이언트 어플리케이션의 기준 무결성 메트릭(Reference Intergrity Metric) 인증에 포함된 해시 값을 이용하여 상기 클라이언트 어플리케이션의 무결성을 판단하는 것을 특징으로 하는 휴대형 전자장치. - 제 15항에 있어서,
상기 제어부는 상기 클라이언트 어플리케이션을 상기 보안 어플리케이션과 연결하기 위해 상기 기준 무결성 메트릭 인증에 포함된 어플리케이션ID를 통해 인증 또는 인가 중 어느 것이 필요한 지 판단하는 것을 특징으로 하는 휴대형 전자장치. - 제 10항에 있어서,
상기 제어부는 보안 인증 서버에 저장된 공개 키를 이용하여 상기 기준 무결성 메트릭(Reference Intergrity Metric) 인증에 포함되는 전자 서명이 유효한 지 판단하는 것을 특징으로 하는 휴대형 전자장치. - 제 15항에 있어서,
패스워드가 입력되기 위한 보안 화면을 표시하는 표시부; 및
상기 실링된 패스워드를 언실링(unsealing)하는 mTPM 어플리케이션을 더 포함하고,
상기 제어부는 상기 언실링된 패스워드 및 상기 보안 화면을 통해 입력되는 패스워드를 비교함으로써, 인가를 판단하는 것을 특징으로 하는 휴대형 전자장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130080869A KR20150007034A (ko) | 2013-07-10 | 2013-07-10 | 휴대형 전자장치의 어플리케이션 보안 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130080869A KR20150007034A (ko) | 2013-07-10 | 2013-07-10 | 휴대형 전자장치의 어플리케이션 보안 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150007034A true KR20150007034A (ko) | 2015-01-20 |
Family
ID=52570127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130080869A KR20150007034A (ko) | 2013-07-10 | 2013-07-10 | 휴대형 전자장치의 어플리케이션 보안 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20150007034A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160140159A (ko) * | 2015-05-29 | 2016-12-07 | 삼성전자주식회사 | 전자 장치 및 커널 데이터 접근 방법 |
KR20180001878A (ko) * | 2016-06-28 | 2018-01-05 | 삼성전자주식회사 | 어플리케이션 코드의 위변조 여부 탐지 방법 및 이를 지원하는 전자 장치 |
US10180842B2 (en) | 2015-03-20 | 2019-01-15 | Electronics And Telecommunications Research Institute | User device and integrity verification method of the same |
CN113704714A (zh) * | 2020-05-20 | 2021-11-26 | Oppo广东移动通信有限公司 | 密码验证方法、装置、终端及存储介质 |
-
2013
- 2013-07-10 KR KR20130080869A patent/KR20150007034A/ko not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10180842B2 (en) | 2015-03-20 | 2019-01-15 | Electronics And Telecommunications Research Institute | User device and integrity verification method of the same |
KR20160140159A (ko) * | 2015-05-29 | 2016-12-07 | 삼성전자주식회사 | 전자 장치 및 커널 데이터 접근 방법 |
KR20180001878A (ko) * | 2016-06-28 | 2018-01-05 | 삼성전자주식회사 | 어플리케이션 코드의 위변조 여부 탐지 방법 및 이를 지원하는 전자 장치 |
CN113704714A (zh) * | 2020-05-20 | 2021-11-26 | Oppo广东移动通信有限公司 | 密码验证方法、装置、终端及存储介质 |
CN113704714B (zh) * | 2020-05-20 | 2024-06-11 | Oppo广东移动通信有限公司 | 密码验证方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10931451B2 (en) | Securely recovering a computing device | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
US8826405B2 (en) | Trusting an unverified code image in a computing device | |
CN107533609B (zh) | 用于对系统中的多个可信执行环境进行控制的系统、设备和方法 | |
US8254568B2 (en) | Secure booting a computing device | |
Garriss et al. | Trustworthy and personalized computing on public kiosks | |
KR101662618B1 (ko) | 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정 | |
US8789037B2 (en) | Compatible trust in a computing device | |
KR102327782B1 (ko) | 전자 장치 및 커널 데이터 접근 방법 | |
US20130031631A1 (en) | Detection of unauthorized device access or modifications | |
CN109614798B (zh) | 安全启动方法、装置及终端设备 | |
WO2019010863A1 (zh) | 控制可信应用访问的方法和终端 | |
US20140258734A1 (en) | Data security method and electronic device implementing the same | |
US20220006637A1 (en) | File system supporting remote attestation-based secrets | |
KR20150007034A (ko) | 휴대형 전자장치의 어플리케이션 보안 방법 | |
EP3338214B1 (en) | Secure computation environment | |
KR20140111466A (ko) | 프로세스 인증 방법 및 이를 구현하는 전자 장치 | |
Ugus et al. | A smartphone security architecture for app verification and process authentication | |
Vasudevan et al. | Desired Security Features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |