KR101320739B1 - 휴대용 단말의 메모리 보안 시스템 - Google Patents

휴대용 단말의 메모리 보안 시스템 Download PDF

Info

Publication number
KR101320739B1
KR101320739B1 KR1020120018027A KR20120018027A KR101320739B1 KR 101320739 B1 KR101320739 B1 KR 101320739B1 KR 1020120018027 A KR1020120018027 A KR 1020120018027A KR 20120018027 A KR20120018027 A KR 20120018027A KR 101320739 B1 KR101320739 B1 KR 101320739B1
Authority
KR
South Korea
Prior art keywords
memory
security
area
portable terminal
address
Prior art date
Application number
KR1020120018027A
Other languages
English (en)
Other versions
KR20130101646A (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 KR1020120018027A priority Critical patent/KR101320739B1/ko
Publication of KR20130101646A publication Critical patent/KR20130101646A/ko
Application granted granted Critical
Publication of KR101320739B1 publication Critical patent/KR101320739B1/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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • G06F3/0622Securing storage systems in relation to access

Landscapes

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

Abstract

휴대용 단말의 메모리 보안 시스템을 개시한다.
휴대용 단말의 메모리 보안 방법은, 메모리의 보안이 요구되는 응용프로그램이 실행되면 보안모드를 활성화하는 단계와, 상기 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 단계와, 상기 보안모드가 활성화된 상태에서 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계 및 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 메모리에서 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록하고 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 단계를 포함한다.

Description

휴대용 단말의 메모리 보안 시스템{SYSTEM FOR SECURING OF MEMORY OF THE PORTABLE TERMINAL}
본 발명은 휴대용 단말 및 휴대용 단말의 메모리 보안 방법에 관한 것으로서, 추가적인 장치 없이 메모리의 보안을 유지할 수 있는 휴대용 단말 및 메모리 보안 시스템에 관한 것이다.
휴대용 단말의 보안과 관련된 종래 기술은 휴대용 단말기를 이용하여 전자상거래의 결재를 수행하는 방법이 있다.
종래기술은 무선으로 접속된 공인인증기관으로부터 공인인증서 정보를 다운로드하고, 사용자로부터 비밀번호를 입력 받아 전자결재를 수행한다.
즉, 종래기술은 사용자가 공인인증서를 선택하는 과정과, 사용자가 비밀번호를 입력하는 과정 및 비밀 번호 및 공인인증서를 이용하여 인증을 수행하는 과정을 포함한다.
종래기술에 따르면, 사용자가 입력한 비밀번호를 메모리에 저장하거나 인증을 수행하는 과정에서 중요한 정보가 메모리에 남아 있게 된다. 따라서, 악의 적인 프로그램에 의해 메모리가 해킹되는 경우 개인의 중요한 정보가 유출될 수 있다.
종래기술에 따르면, 개인 정보 유출을 방지하기 위해 추가 적인 하드웨어 장치가 요구되어 휴대용 단말의 제조 비용이 증가할 수 있고, 하드웨어 설계의 복잡도가 증가할 수 있다.
본 발명은 휴대용 단말에서 메모리에 저장되는 데이터를 보호하기 위한 방법 및 장치를 제공 한다.
또한, 본 발명은 추가적인 하드웨어 장치 없이, 휴대용 단말에서 메모리에 저장되는 데이터를 보호하기 위한 방법 및 장치를 제공 한다.
또한, 본 발명은 모바일 환경에서 사용자의 중요한 정보가 유출되는 것을 방지할 수 있는 방법 및 장치를 제공한다.
또한, 본 발명은 휴대용 단말에서 응용프로그램이 실행되는 과정에서 정보가 유출되는 것을 방지할 수 있는 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따른 휴대용 단말의 메모리 보안 방법은, 메모리의 보안이 요구되는 응용프로그램이 실행되면 보안모드를 활성화하는 단계와, 상기 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 단계와, 상기 보안모드가 활성화된 상태에서 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계 및 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 단계를 포함한다.
본 발명의 다른 일 실시예에 따른 휴대용 단말의 메모리 보안 방법은, 메모리의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 단계와, 현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계와, 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환하는 단계 및 상기 변환된 명령어의 실행에 따라 상기 가상 보안 영역에 접근(access)하는 단계를 포함한다.
본 발명의 일 실시예에 따른 휴대용 단말의 메모리 보안 장치는, 휴대용 단말에 설치된 응용프로그램을 실행하는 응용프로그램 실행부와, 상기 응용프로그램이 메모리의 보안이 요구되는 응용프로그램이면 보안모드를 활성화시키는 시스템 제어부 및 상기 보안모드에서 상기 메모리의 접근을 처리하는 보안 제어부를 포함한다.
이때, 보안 제어부는, 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 제1 동작, 상기 응용프로그램 실행부로부터 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 제2 동작, 및 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 제3 동작을 수행한다.
본 발명의 다른 일 실시예에 따른 휴대용 단말의 메모리 보안 장치는, 메모리와, 상기 메모리의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 시스템 제어부 및 현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하고, 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환하는 보안 제어부를 포함한다.
본 발명의 실시예들에 따르면, 추가적인 하드웨어 장치 없이 휴대용 단말에서 메모리에 저장되는 데이터를 보호할 수 있다.
또한, 본 발명의 실시예들에 따르면, 모바일 환경에서 사용자의 중요한 정보가 유출되는 것을 방지할 수 있다.
또한, 본 발명의 실시예들에 따르면, 응용프로그램이 실행되는 과정에서 정보가 유출되는 것을 방지할 수 있다.
도 1은 관련기술에 따른 휴대용 단말에서 메모리의 접근 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 휴대용 단말의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 다른 일 실시예에 따른 휴대용 단말의 구성을 설명하기 위한 도면이다.
도 4는 도 3의 보안 제어부의 구성 예를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 메모리의 접근 동작을 설명하기 위한 도면이다.
도 6은 store 명령에 대한 코드 변환부의 동작을 설명하기 위한 예시도이다.
도 7은 도 6에서 주소 변환 과정의 예를 설명하기 위한 도면이다.
도 8은 load 명령에 대한 코드 변환부의 동작을 설명하기 위한 예시도이다.
도 9는 load 동작을 위한 주소 변환 과정의 예를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 휴대용 단말의 메모리 보안 방법을 설명하기 위한 도면이다.
도 11은 도 10에서 데이터를 가상 보안 영역에 로드하는 단계의 예시적인 동작을 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 데이터를 시스템 제어부로 제공하는 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 다른 일 실시예에 따른 휴대용 단말의 메모리 보안 방법을 설명하기 위한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 관련기술에 따른 휴대용 단말에서 메모리의 접근 동작을 설명하기 위한 도면이다.
도 1을 참조하면, (a)는 유휴 상태에서 메모리의 구조를 나타내고, (b)는 응용프로그램이 실행되어 메모리가 사용되는 상태를 나타낸다.
메모리는 크게 Binary 영역, Kernel 영역 및 사용자 영역으로 구분할 수 있다.
이때, 사용자 영역은 사용자의 데이터가 저장될 수 있는 일반적인 memory 영역으로서, RAM(Random Access memory), Heap 등을 포함한다. 휴대용 단말의 프로세서는 응용프로그램의 실행 과정에서 필요한 데이터나 연산 과정에서 생성되는 각종 데이터들을 사용자 영역에 저장할 수 있다.
도 1의 (a)를 참조하면, 메모리는 file system 영역을 더 포함할 수 있다. 물론, file system 영역은 별도의 저장 공간에 구비될 수 도 있다. file system 영역은 예를 들어 EFS(Embedded File System)와 같이, file 형태의 데이터가 저장된 영역일 수 도 있다. 도 1에서, file system 영역에 저장된 데이터(110)는 사용자를 인증하기 위한 '인증서'라 가정한다. 물론, 데이터(110)는 인증서 이외에 사용자의 password, 연락처, 암호화된 메시지 등 다양한 형태의 사용자 정보일 수 있다.
도 1의 (b)에 도시된 바와 같이, 휴대용 단말에 설치된 응용프로그램이 실행되면 실행된 응용프로그램에 메모리의 특정 영역들(120, 130)이 할당될 수 있다.
예를 들어, 현재 실행된 응용프로그램이 휴대용 단말기를 이용한 전자결제를 수행하는 것으로 가정하면, 사용자의 인증 과정에서 인증서(110)가 제1 영역(120)에 로드(load)될 수 있다.
사용자의 인증 과정은 사용자의 비밀 번호를 입력 받고, 입력된 비밀번호를 사용하여 각종 연산을 수행하는 절차를 포함할 수 있다. 이때, 인증서의 암호화 및 복호화를 위한 대칭키, 비밀키 알고리즘은 연산 과정에서 암호화된 데이터들을 생성한다. 데이터의 혼란화(confusion) 및 확산화(diffusion)는 순열, 치환(substitution) 및 전치(transposition)를 여러 번 반복하며, 반복 과정에서 생기는 계산 결과들은 메모리에 저장될 수 있다.
인증서 즉, 데이터의 암호화 및 복호화 과정에서 생성되는 중간 계산 값들은 제2 영역(130)에 저장될 수 있다. 따라서, 사용자 영역의 제1 영역(120) 또는 제2 영역(130)에 저장된 값들이 유출되면, 사용자의 중용한 정보가 유출될 수 도 있다.
도 2는 본 발명의 일 실시예에 따른 휴대용 단말의 구성을 설명하기 위한 도면이다.
도 2를 참조하면, 휴대용 단말(200)은 User Interface부(210), 시스템(220) 및 메모리부(230)를 포함한다.
User Interface부(210)는 사용자의 입력을 수신하기 위한 입력장치를 포함할 수 있다. 예를 들어, User Interface부(210)는 터치 패널, 키패드, 디스플레이 및 음성 입력 장치를 포함할 수 있다. User Interface부(210)는 휴대용 단말(200)을 조작(manipulation)하기 위한 입력을 수신하고, 사용자에게 시각적 또는 오디오적인 피드백을 제공할 수 있다.
시스템(220)은 User Interface부(210)를 통해 입력되는 사용자 입력을 처리하고, 응용프로그램을 실행하며, 각종 명령어를 처리한다. 또한, 시스템(220)은 휴대용 단말의 다양한 기능을 수행할 수 있다. 예들 들어, 시스템(220)은 전형적인 무선 통신 기능을 수행하거나, 멀티미디어 컨텐츠의 재생을 수행하거나, 공인인증서의 인증 등을 수행할 수 있다. 또한, 시스템(220)은 응용프로그램의 실행에 필요한 메모리의 할당을 제어할 수 있다.
시스템(220)은 시스템 제어부(221) 및 보안 제어부(223)를 포함할 수 있다.
시스템 제어부(221)는 휴대용 단말의 일반적인 동작을 제어할 수 있다. 예를 들어, 시스템 제어부(221)는 응용프로그램을 실행하거나 응용프로그램의 실행 과정에서 발생되는 명령어들을 처리할 수 있다. 만일, 응용프로그램이 메모리의 보안이 요구되는 응용프로그램이면, 시스템 제어부(221)는 보안 모드를 활성화시킬 수 있다. 한편, 응용프로그램의 실행 중에 발생되는 명령어들은 보안 제어부(223)를 통해 시스템 제어부(221)로 전달 될 수 도 있다.
보안 제어부(223)는 보안 모드가 비활성화 상태이면, 명령어들을 단순히 시스템 제어부(221)로 전달한다. 보안 제어부(223)는 보안 모드가 활성화되면, 메모리부(230)에 접근하는 명령어들을 변환하고 변환된 명령어를 시스템 제어부(221)로 제공할 수 있다. 또한, 보안 제어부(223)는 보안 모드가 활성화되면, 상기 명령어의 수행이 메모리부(230)의 접근과 관련된 것이면, 상기 메모리부(230)에서 상기 응용프로그램에 할당된 사용자 영역(233)에 랜덤 값(random value)을 기록하고 상기 명령어의 수행에 필요한 데이터를 사용자의 접근이 제한된 가상 보안 영역(231)에 로드(load)할 수 있다.
메모리부(230)는 사용자의 접근이 제한되는 가상 보안 영역(231) 및 응용프로그램에 할당된 사용자 영역(233)을 포함한다.
가상 보안 영역(231)은 특정 권한, 예를 들어 루트 권한을 가지고 있는 응용프로그램만이 접근할 수 있거나, 휴대용 단말의 운영 시스템(Operating System)만이 접근 가능한 영역이다. 즉, 가상 보안 영역(231)은 운영 시스템이 아닌 다른 프로그램들은 기본적으로 접근이 제한되며, 다른 프로그램은 가상 보안 영역(231)에 접근하기 위해서 운영 시스템에 접근 요청을 하여야 한다.
가상 보안 영역(231)은 사용자의 접근이 불가능하거나, 접근이 제한된 영역으로서, 예를 들어 커널 영역일 수 있다.
또한, 가상 보안 영역(231)은 시스템(220) 특정 키 값을 통해서만 접근이 가능한 보안 메모리 영역일 수 있다.
또한, 가상 보안 영역(231)은 모뎀 프로세서의 메모리 내에 특정 영역일 수 있다. 이때, 모뎀 프로세서의 메모리는 IPS(inter-process communication, 프로세스간 통신)을 통해 접근될 수 있다.
또한, 가상 보안 영역(231)은 휴대용 단말에 구비된 IC(Integrated Circuit) 칩의 메모리일 수 있다. 이때, 휴대용 단말에 구비된 IC 칩은 특정 기능을 수행하기 위한 것으로서, 별도의 메모리를 구비하는 다양한 종류의 칩일 수 있다.
도 3은 본 발명의 다른 일 실시예에 따른 휴대용 단말의 구성을 설명하기 위한 도면이다.
도 3을 참조하면, 휴대용 단말(300)은 응용프로그램 실행부(310), 보안 제어부(320), 메모리(330) 및 시스템 제어부(340)를 포함한다.
도 3을 참조하여 본 발명의 실시예에 따른 휴대용 단말의 동작을 설명하면 다음과 같다. 이때, 응용프로그램은 메모리의 보안이 요구되는 응용프로그램이라 가정한다. 예를 들어, 응용프로그램은 실행 과정에서 전자 결재, 사용자의 비밀번호 입력이 필요한 것일 수 있다.
응용프로그램이 실행되면 보안 모드가 활성화되고, 보안 제어부(320)의 동작을 위한 리소스가 할당될 수 있다. 이때, 할당된 리소스는 메모리의 일정 영역을 포함하고, 할당된 메모리의 주소는 보안 제어부(320)에 저장될 수 있다.
응용프로그램 실행부(310)는 휴대용 단말에 설치된 응용프로그램을 실행한다. 응용프로그램 실행부(310)는 응용프로그램을 실행시키기 위한 명령어를 수행하고, 응용프로그램의 조작을 위한 GUI(graphical user interface)를 디스플레이할 수 있다. 응용프로그램 실행부(310)는 휴대용 단말의 사용자 인터페이스를 통해 사용자의 입력을 수신하고, 사용자의 입력에 대응하는 명령어를 보안 제어부(320) 또는 시스템 제어부(340)로 전달할 수 있다.
보안 제어부(320)는 보안 모드에서 메모리(330)의 접근을 처리한다. 또한, 보안 제어부(320)는 도 2의 보안 제어부(223)가 수행하는 모든 기능을 수행할 수 도 있다.
보안 제어부(320)는 메모리(330)에서 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 제1 동작을 수행할 수 있다. 또한, 보안 제어부(320)는 응용프로그램 실행부(310)로부터 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리(330)로의 접근과 관련된 것인지를 판단하는 제2 동작을 수행할 수 있다. 또한, 보안 제어부(320)는 상기 명령어의 수행이 상기 메모리(330)의 접근과 관련된 것이면, 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 제3 동작을 수행할 수 있다.
이때, 제3 동작은, "암호화 키를 이용하여 상기 명령어의 수행에 필요한 데이터를 변환하는 것", "상기 데이터에 할당된 상기 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 것" 및 "상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 것"을 포함할 수 있다. 이때, "암호화 키를 이용하여 상기 명령어의 수행에 필요한 데이터를 변환하는 것"은 예를 들어, 암호화 키와 데이터를 exclusive OR 연산하는 것일 수 있다.
한편, 보안 제어부(320)는 응용프로그램에 할당된 사용자 영역에 랜덤 값을 기록하는 제4 동작을 더 수행할 수 있다. 즉, 보안 제어부(320)는 사용자의 중요 정보 및 연산 과정에서 생성되는 데이터들을 가상 보안 영역에 저장하고, 사용자 영역에 사용자의 중요 정보와는 관련 없는 랜덤 값을 기록할 수 있다.
사용자 영역에 사용자의 중요 정보와는 관련 없는 랜덤 값이 기록되기 때문에, 응용프로그램의 실행 중 또는 응용프로그램의 실행 완료 후 메모리(330)의 사용자 영역이 해킹되더라도 중요한 데이터들은 보호될 수 있다. 또한, 랜덤 값의 기록을 통해 랜덤 값을 연산 과정에서 발생된 데이터로 꾸미는, 일종의 속임수가 가능하다.
보안 제어부(320)는 "상기 사용자 영역의 제1 주소에 대한 리드(read) 요청을 수신하는 동작", "메모리 주소 변환 테이블로부터 상기 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 동작" 및 "암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하고, 복호된 데이터를 상기 시스템 제어부(340)로 제공하는 동작"을 더 수행할 수 있다.
메모리(330)는 도 2의 메모리부(230)과 동일한 구조를 가질 수 있다. 메모리(330)의 구체적인 구조 및 기능에 대해서는 도 5를 통해 더욱 상세히 설명하기로 한다.
시스템 제어부(340)는 응용프로그램이 메모리의 보안이 요구되는 응용프로그램이면 보안모드를 활성화시킨다. 또한, 시스템 제어부(340)는 도 2의 시스템 제어부(221)가 수행하는 모든 기능을 수행할 수 도 있다.
시스템 제어부(340)는 메모리(330)의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당할 수 있다. 즉, 가상 보안 영역의 할당은 보안 제어부(320)에서 수행될 수 도 있고, 시스템 제어부(340)에서 수행될 수 도 있다.
일 실시예에서, 메모리(330)의 접근 및 메모리(330)의 접근을 제어하는 모든 동작은 보안 제어부(320)에서 수행될 수 있다. 다른 실시예에서 보안 제어부(320)는 메모리(330)의 접근에 대한 명령어를 변환하여 시스템 제어부(340)로 전달하고, 명령어의 실행은 시스템 제어부(340)에서 수행될 수 도 있다.
따라서, 보안 제어부(320)는 현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리(330)로의 접근과 관련된 것인지를 판단하고, 상기 명령어의 수행이 상기 메모리(330)의 접근과 관련된 것이면 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환할 수 있다.
보안 제어부(320)는 변환된 명령어를 시스템 제어부(340)로 전달한다.
이때, 시스템 제어부(340)는 상기 변환된 명령어의 실행에 따라 상기 가상 보안 영역에 접근(access)할 수 있다.
이때, 상기 변환된 명령어는, 암호화 키를 이용하여 데이터를 변환하는 제1 명령어, 상기 데이터에 할당된 상기 메모리 내에 위치하는 상기 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 제2 명령어, 및 상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 제3 명령어를 포함할 수 있다.
또한, 상기 변환된 명령어는, 메모리 주소 변환 테이블로부터 상기 사용자 영역의 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 제4 명령어, 및 암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하는 제5 명령어를 더 포함할 수 있다.
이때, 시스템 제어부(340)는 상기 변환된 명령어를 실행하고, 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록할 수 있다.
도 4는 도 3의 보안 제어부의 구성 예를 설명하기 위한 도면이다.
도 4를 참조하면, 보안 제어부(320)는 주제어부(421), 코드 변환부(423), 랜덤 값 생성부(425), key 생성부(427) 및 메모리 주소 변환 테이블(429)를 포함한다.
주제어부(421)는 응용프로그램으로부터 수신된 명령어에 대해 코드 변환이 필요한지 여부를 결정한다. 예를 들어, 보안 모드가 활성화되어 있는 경우, 주제어부(421)는 명령어의 코드 변환이 필요한 것으로 결정할 수 있다.
주제어부(421)는 명령어의 수신 시 참조되는 인에이블 비트(Enable bit)를 포함할 수 있다. 한편, 보안 모드의 활성화는 인에이블 비트(Enable bit)를 온(on)으로 설정하는 것을 포함할 수 있다. 인에이블 비트(Enable bit)가 온으로 설정되면, 보안 제어부(320)의 모든 컴포넌트들이 활성화 될 수 있다. 여기서, 보안 제어부(320)의 모든 컴포넌트들이란, 코드 변환부(423), 랜덤 값 생성부(425), key 생성부(427) 및 메모리 주소 변환 테이블(429)을 의미한다.
인에이블 비트(Enable bit)는 명령어의 처리 과정에서 항상 참조될 수 있다. 예를 들어, 보안 제어부(320)는 응용프로그램 실행부(310) 명령어를 수신하면, 인에이블 비트가 on인 경우 명령어를 분석하고, 인에이블 비트가 off인 경우에는 명령어의 분석 없이 명령어를 시스템 제어부(340)로 전달할 수 있다.
코드 변환부(423)는 메모리 주소 변환 테이블(429)을 참조하여 사용자 영역의 메모리 주소를 가상 보안 영역의 메모리 주소로 변환할 수 있다. 또한, 코드 변환부(423)는 명령어를 상기 가상 보안 영역에 접근하도록 변환할 수 있다.
랜덤 값 생성부(425)는 주제어부(421)의 제어에 따라 랜덤 값을 생성한다. 랜덤 값은 사용자 영역에 기록될 수 있다.
key 생성부(427)는 보안 모드에서 데이터를 암호화 하기 위한 키 값을 생성한다. 인에이블 비트(Enable bit)가 리셋되면, key 생성부(427)는 새로운 키 값을 생성할 수 있다. 즉, 보안 모드에서 데이터를 암호화 하기 위한 키 값은 고정된 값이 아니고, 보안 모드의 활성화 시 마다 생성된 새로운 값 일 수 있다.
메모리 주소 변환 테이블(429)은 사용자 영역의 메모리 주소와 가상 보안 영역의 메모리 주소 간의 매칭 정보를 포함할 수 있다. 메모리 주소 변환 테이블(429)의 구체적인 구성 예는 도 7 및 도 9를 통해 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 메모리의 접근 동작을 설명하기 위한 도면이다.
도 5를 참조하면, (A)는 유휴 상태에서 메모리의 구조를 나타내고, (B)는 응용프로그램이 실행되어 메모리가 사용되는 상태를 나타낸다.
도 5를 참조하면, 메모리의 Binary 영역에 휴대용 단말의 보안 모드와 관련된 API(Application Programming Interface)(510)가 할당될 수 있다. 보안 모드는 응용프로그램에 포함된 API를 통해 활성화될 수 있다. 이때, 휴대용 단말의 보안 모드와 관련된 API는 신뢰할 수 있는 응용프로그램 개발자에게 사전에 제공될 수 있고, 응용프로그램 개발자는 휴대용 단말의 운영 체제로의 인터페이스가 허용된 API를 포함하도록 응용프로그램을 제작할 수 있다. 따라서, 보안 모드는 신뢰성 있는 응용프로그램에 의해서만 활성화 될 수 있다.
접근 제한 영역은 응용프로그램의 접근이 불가능한 영역이다. 보안 모드가활성화되면 접근이 제한된 영역 증 일부 영역(520)은 가상 보안 영역으로 할당될 수 있다. 이때, 접근 제한 영역은 커널(Kernel) 영역일 수 있다.
가상 보안 영역(520)은 보안 모드 API가 로드되는 영역(521) 및 데이터(531)가 로드 되는 영역(523)을 포함할 수 있다. 영역(523)은 데이터(531)뿐만 아니라, 시스템 제어부(340)가 연산을 수행하는 과정에서 생성되는 각종 연산 값을 저장할 수 있다.
사용자 영역은 데이터(531)가 로드된 것처럼 랜덤 값을 기록하는 영역(540) 및 시스템 제어부(340)가 연산을 수행하는 과정에서 생성되는 각종 연산 값이 기록되는 것처럼 랜덤 값을 기록하는 영역(550)을 포함할 수 있다. 이때, 연산을 수행하는 과정에서 생성되는 각종 연산 값은 사용자의 비밀 번호일 수 도 있다. 즉, 보안 모드에서 입력되는 사용자의 비밀 번호도 가상 보안 영역에 저장됨으로써, 메모리의 보안이 강화될 수 있다.
도 5의 (B)를 참조하면, 보안 모드에서 데이터(531)는 가상 보안 영역(520)에 로드되고, 데이터(531)와 관련 없는 랜덤 값은 사용자 영역에 기록된다. 접근 제한 영역은 물리적으로 해킹이 불가능한 영역이고, 사용자 영역은 해킹되더라도 중요한 데이터들이 보호될 수 있다.
도 5를 참조하면, 메모리는 file system 영역(530)을 더 포함할 수 있다. 물론, file system 영역(530)은 별도의 저장 공간에 구비될 수 도 있다. file system 영역(530)은 예를 들어 EFS(Embedded File System)와 같이, file 형태의 데이터가 저장된 영역일 수 도 있다. 도 5에서, file system 영역(530)에 저장된 데이터(531)는 사용자를 인증하기 위한 '인증서'라 가정한다. 물론, 데이터(531)는 인증서 이외에 사용자의 password, 연락처, 암호화된 메시지 등 다양한 형태의 사용자 정보일 수 있다.
도 6은 store 명령에 대한 코드 변환부(423)의 동작을 설명하기 위한 예시도이다.
도 6을 참조하면, store 명령어(610)는 응용프로그램실행부(310) 또는 시스템 제어부(340)로부터 수신될 수 있다. 또한, store 명령어(610)는 단순히 데이터를 저장하는 명령어뿐만 아니라, 데이터를 메모리에 기록하는 동작을 포함하는 명령어를 모두 포함할 수 있다. 예를 들어, store 명령어(610)는 사용자가 입력한 비밀 번호와 인증서를 결합하는 명령어와 같이, 인증서를 메모리에 로드하는 동작이 수반되는 명령어 일 수 있다.
이때, store 명령어(610)는 사용자 영역의 특정 메모리 주소를 포함할 수 있다. 즉, store 명령어(610)는 특정 데이터를 사용자 영역의 특정 메모리 주소에 기록하는 명령어일 수 있다.
코드 변환부(423)는 보안 모드에서 store 명령어(610)를 수신하면, 변환된 명령어(620)를 생성하고, 변환된 명령어(620)를 시스템 제어부(340)로 제공할 수 있다.
이때, 변환된 명령어(620)는 암호화 키를 이용하여 데이터를 변환하는 제1 명령어(621), 데이터에 할당된 상기 사용자 영역의 주소를 메모리 주소 변환 테이블(429)을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 제2 명령어(623) 및 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 제3 명령어(625)를 포함할 수 있다.
변환된 명령어(620)는 시스템 제어부(340)로 전달되며, 시스템 제어부(340)에 의해 실행 될 수 있다. 이때, 메모리에 저장을 필요로하는 데이터는 변환된 명령어(620)에 의해 암호화되며, 가상 보안 영역에 저장되기 때문에 안전하게 보호될 수 있다.
만일, 메모리의 접근 및 메모리의 접근을 제어하는 모든 동작을 보안 제어부(320)에서 수행하는 경우, 주제어부(421)가 제1 명령어 내지 제3 명령어를 수행할 수도 있다.
즉, 주제어부(421)는 암호화 키를 이용하여 데이터를 변환하고, 변환된 데이터를 가상 보안 영역의 메모리 주소에 저장할 수 있다.
도 7은 도 6에서 주소 변환 과정의 예를 설명하기 위한 도면이다.
도 7을 참조하면, 코드 변환부(423)는 명령어(610)에 할당된 사용자 영역의 메모리 주소(701)를 가상 보안 영역의 메모리 주소(703)로 변환할 수 있다.
도 7에서 710은 사용자 영역의 메모리 주소들을 나타내고, 720은 사용자 영역의 메모리 주소들 각각에 매칭된 가상 보안 영역의 메모리 주소들을 나타낸다. 예들 들어, 코드 변환부(423)는 사용자 영역의 메모리 주소 '사용자 영역 #1'을 가상 보안 영역의 메모리 주소 '가상 보안 영역 #5xx'로 변환할 수 있다.
도 8은 load 명령에 대한 코드 변환부의 동작을 설명하기 위한 예시도이다.
도 8을 참조하면, load 명령어(810)는 응용프로그램실행부(310) 또는 시스템 제어부(340)로부터 수신될 수 있다. 또한, load 명령어(810)는 단순히 데이터를 load하는 명령어뿐만 아니라, 메모리에 저장된 데이터를 시스템 제어부(340)로 제공하는 동작을 포함하는 명령어를 모두 포함할 수 있다. 예를 들어, load 명령어(810)는 연산을 위해 필요한 데이터를 시스템 제어부(340)로 제공하는 동작이 수반되는 명령어 일 수 있다.
코드 변환부(423)는 보안 모드에서 load 명령어(810)를 수신하면, 변환된 명령어(820)를 생성하고, 변환된 명령어(620)를 시스템 제어부(340)로 제공할 수 있다.
이때, 변환된 명령어(820)는 메모리 주소 변환 테이블로부터 상기 사용자 영역의 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 제4 명령어(821) 및 암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하는 제5 명령어(823)를 포함할 수 있다.
만일, 메모리의 접근 및 메모리의 접근을 제어하는 모든 동작을 보안 제어부(320)에서 수행하는 경우, 주제어부(421)가 제4 명령어 내지 제5 명령어를 수행할 수도 있다.
즉, 주제어부(421)는 사용자 영역의 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하고, 제2 주소에 저장된 데이터를 복호(decryption)하고, 복호된 데이터를 시스템 제어부(340) 또는 응용프로그램 실행부(310)로 제공할 수 있다.
도 9는 load 동작을 위한 주소 변환 과정의 예를 설명하기 위한 도면이다.
도 9를 참조하면, 코드 변환부(423)는 데이터가 저장된 가상 보안 영역의 메모리 주소(901)를 사용자 영역의 메모리 주소(903)로 변환할 수 있다.
도 9에서 910은 사용자 영역의 메모리 주소들을 나타내고, 920은 사용자 영역의 메모리 주소들 각각에 매칭된 가상 보안 영역의 메모리 주소들을 나타낸다.
예를 들어, 시스템 제어부(340)로부터 사용자 영역의 메모리 주소 '사용자 영역 #1'에 저장된 데이터의 로드를 요청 받은 경우, 보안 제어부(320)는 가상 보안 영역의 메모리 주소 '가상 보안 영역 #5xx'에 저장된 데이터를 복호하고, 복호된 데이터를 시스템 제어부(340)로 제공할 수 도 있다.
도 10은 본 발명의 일 실시예에 따른 휴대용 단말의 메모리 보안 방법을 설명하기 위한 도면이다.
도 10에 도시된 방법은 도 2 또는 도 3에 도시된 휴대용 단말에 의해 수행될 수 있다. 보다 구체적으로 도 10에 도시된 방법은 도 2의 보안 제어부(223) 또는 도 3의 보안 제어부(320)에 의해 수행될 수 있다. 또한, 도 10에 도시된 방법은 보안 제어부(320) 및 시스템 제어부(340)에 의해 수행될 수 도 있다. 이하, 설명의 편의를 위해 도 10의 방법은 보안 제어부(320)에 의해 수행되는 것으로 가정한다.
1010단계에서 보안 제어부(320)는, 메모리의 보안이 요구되는 응용프로그램이 실행되면 보안모드를 활성화한다. 메모리의 보안이 요구되는 응용프로그램은 예를 들어 전자 결재를 수반하는 것일 수 있다. 또한, 메모리의 보안이 요구되는 응용프로그램은 사용자의 비밀 번호를 입력하는 과정이 포함되는 것일 수 도 있다.
보안모드를 활성화하는 1010단계는, 상기 명령어의 수신 시 참조하는 인에이블 비트(Enable bit)를 온(on)으로 설정하는 것을 포함할 수 있다.
이때, 메모리의 보안이 요구되는 응용프로그램은 휴대용 단말의 운영 체제로의 인터페이스가 허용된 API(Application Programming Interface)를 포함하고, 상기 보안모드는 상기 응용프로그램에 포함된 API를 통해 활성화될 수 도 있다. 따라서, 응용프로그램이 휴대용 단말의 운영 체제로의 인터페이스가 허용된 API(Application Programming Interface)를 갖지 못하면, 보안 모드는 활성화되지 않을 수 있다. 만일, 보안 모드가 활성화되지 않으면 휴대용 단말은 해당 응용프로그램의 실행 자체를 거부할 수 도 있다.
이때, 보안 모드를 활성화하는 1010단계는 응용프로그램의 신뢰성을 검사하는 단계 및 상기 응용프로그램의 신뢰성이 인정되면 상기 보안모드를 활성화하는 단계를 포함할 수 있다. 이때, 응용프로그램의 신뢰성을 판단하는 방법은 응용프로그램의 실행 시 사용자확인을 받는 방법, 통신을 통해 응용프로그램의 배포자나 인증 기관 또는 휴대용 단말 제조사에서 해당 프로그램을 인증 받는 방법이 있을 수 있다.
1020단계에서 보안 제어부(320)는, 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당한다.
1030단계에서 보안 제어부(320)는 보안모드가 활성화된 상태에서 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단한다. 만일, 명령어의 수행이 상기 메모리로의 접근과 관련된 것이 아니면 명령어는 시스템 제어부(340)로 전달된다(1050).
1030단계에서 보안 제어부(320)는 응용프로그램을 통해 명령어가 수신되면 보안 제어부에 저장된 인에이블 비트(Enable bit)가 온(on)으로 설정되어 있는지를 판단할 수 있다.
보안 제어부(320)는 상기 인에이블 비트가 온으로 설정되어 있으면, 상기 명령어의 수행이 데이터의 로드(load) 또는 데이터의 저장(store)을 포함하는 지의 여부에 따라 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단할 수 있다.
즉, 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지 여부는, 상기 명령어의 수행이 상기 메모리에 데이터를 로드하거나, 상기 메모리에 데이터를 저장하는 동작(operation)을 포함하는 지에 따라 결정될 수 있다.
명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 1040단계에서 보안 제어부(320)는 메모리 내의 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록하고 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)한다.
도 11은 도 10에서 데이터를 가상 보안 영역에 로드하는 1040단계의 예시적인 동작을 설명하기 위한 도면이다.
1131단계에서 보안 제어부(320)는 암호화 키를 이용하여 상기 명령어의 수행에 필요한 데이터를 변환한다. 여기서, 데이터의 변환은 암호화 키와 데이터를 exclusive OR 연산하는 것일 수 있다.
1133단계에서 보안 제어부(320)는 데이터에 할당된 상기 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환한다. 이때, 메모리 주소 변환 테이블은 상기 사용자 영역의 메모리 주소와 상기 가상 보안 영역의 메모리 주소 간의 매칭 관계에 대한 정보를 포함한다.
1135단계에서 보안 제어부(320)는 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장한다.
도 12는 본 발명의 일 실시예에 따른 데이터를 시스템 제어부로 제공하는 방법을 설명하기 위한 도면이다.
1241단계에서 보안 제어부(320)는 휴대용 단말의 시스템 제어부로부터 상기 사용자 영역의 제1 주소에 대한 리드(read) 요청을 수신한다.
1243단계에서 보안 제어부(320)는 메모리 주소 변환 테이블로부터 상기 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득한다.
1245단계에서 보안 제어부(320)는 암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하고, 복호된 데이터를 상기 시스템 제어부로 제공할 수 있다.
도 13은 본 발명의 다른 일 실시예에 따른 휴대용 단말의 메모리 보안 방법을 설명하기 위한 도면이다.
도 13에 도시된 방법은 도 2 또는 도 3에 도시된 휴대용 단말에 의해 수행될 수 있다. 보다 구체적으로 도 13에 도시된 방법은 도 2의 보안 제어부(223) 또는 도 3의 보안 제어부(320)에 의해 수행될 수 있다. 또한, 도 13에 도시된 방법은 보안 제어부(320) 및 시스템 제어부(340)에 의해 수행될 수 도 있다. 이하, 설명의 편의를 위해 도 10의 방법은 보안 제어부(320)에 의해 수행되는 것으로 가정한다.
1310단계에서 보안 제어부(320)는, 메모리의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당한다.
1320단계에서 보안 제어부(320)는 현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단한다.
만일, 명령어의 수행이 상기 메모리로의 접근과 관련된 것이 아니면 명령어는 시스템 제어부(340)로 전달된다(1330).
상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 1340단계에서 보안 제어부(320)는 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환한다.
1340단계에서 보안 제어부(320) 또는 시스템 제어부(340)는 변환된 명령어의 실행에 따라 상기 가상 보안 영역에 접근(access)한다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (23)

  1. 메모리의 보안이 요구되는 응용프로그램이 실행되면 보안모드를 활성화하는 단계;
    상기 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 단계;
    상기 보안모드가 활성화된 상태에서 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계; 및
    상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 단계를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  2. 제1항에 있어서,
    상기 보안모드를 활성화하는 단계는,
    상기 보안모드에서 수신되는 명령어의 처리시 보안 제어부에 의해 참조되는 인에이블 비트(Enable bit)를 온(on)으로 설정하는 것을 포함하는,
    휴대용 단말의 메모리 보안 방법.
  3. 제1항에 있어서,
    상기 응용프로그램은 상기 휴대용 단말의 운영 체제로의 인터페이스가 허용된 API(Application Programming Interface)를 포함하고,
    상기 보안모드는 상기 응용프로그램에 포함된 API를 통해 활성화되는,
    휴대용 단말의 메모리 보안 방법.
  4. 제1항에 있어서,
    상기 보안모드를 활성화하는 단계는,
    상기 응용프로그램의 신뢰성을 검사하는 단계; 및
    상기 응용프로그램의 신뢰성이 인정되면 상기 보안모드를 활성화하는 단계를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  5. 제1항에 있어서,
    상기 메모리 내의 접근(access)이 제한된 영역은 커널(Kernel) 영역인,
    휴대용 단말의 메모리 보안 방법.
  6. 제1항에 있어서,
    상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계는,
    상기 응용프로그램을 통해 명령어가 수신되면 보안 제어부에 저장된 인에이블 비트(Enable bit)가 온(on)으로 설정되어 있는지를 판단하는 단계; 및
    상기 인에이블 비트가 온으로 설정되어 있으면, 상기 명령어의 수행이 데이터의 로드(load) 또는 데이터의 저장(store)을 포함하는 지의 여부에 따라 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  7. 제1항에 있어서,
    상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지 여부는,
    상기 명령어의 수행이 상기 메모리에 데이터를 로드하거나, 상기 메모리에 데이터를 저장하는 동작(operation)을 포함하는 지에 따라 결정되는,
    휴대용 단말의 메모리 보안 방법.
  8. 제1항에 있어서,
    상기 가상 보안 영역에 로드(load)하는 단계는,
    암호화 키를 이용하여 상기 명령어의 수행에 필요한 데이터를 변환하는 단계;
    상기 데이터에 할당된 상기 메모리 내의 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 단계; 및
    상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 단계를 포함하고,
    상기 메모리 주소 변환 테이블은 상기 사용자 영역의 메모리 주소와 상기 가상 보안 영역의 메모리 주소 간의 매칭 관계에 대한 정보를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  9. 제1항에 있어서,
    상기 휴대용 단말의 시스템 제어부로부터 상기 메모리에서 상기 응용 프로그램에 할당된 사용자 영역의 제1 주소에 대한 리드(read) 요청을 수신하는 단계;
    메모리 주소 변환 테이블로부터 상기 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 단계; 및
    암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하고, 복호된 데이터를 상기 시스템 제어부로 제공하는 단계를 더 포함하는,
    휴대용 단말의 메모리 보안 방법.
  10. 제1항에 있어서,
    상기 가상 보안 영역에 로드(load)하는 단계는,
    상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 메모리에서 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록하는,
    휴대용 단말의 메모리 보안 방법.
  11. 메모리의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 단계;
    현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 단계;
    상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환하는 단계; 및
    상기 변환된 명령어의 실행에 따라 상기 가상 보안 영역에 접근(access)하는 단계를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  12. 제11항에 있어서,
    상기 변환된 명령어는,
    암호화 키를 이용하여 데이터를 변환하는 제1 명령어,
    상기 데이터에 할당된 상기 메모리 내의 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 제2 명령어, 및
    상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 제3 명령어를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  13. 제11항에 있어서,
    상기 변환된 명령어는,
    메모리 주소 변환 테이블로부터 상기 메모리에서 상기 응용 프로그램에 할당된 사용자 영역의 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 제4 명령어, 및
    암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하는 제5 명령어를 포함하는,
    휴대용 단말의 메모리 보안 방법.
  14. 제11항에 있어서,
    상기 변환된 명령어의 실행에 따라, 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록하는 단계를 더 포함하는,
    휴대용 단말의 메모리 보안 방법.
  15. 휴대용 단말에 설치된 응용프로그램을 실행하는 응용프로그램 실행부;
    상기 응용프로그램이 메모리의 보안이 요구되는 응용프로그램이면 보안모드를 활성화시키는 시스템 제어부; 및
    상기 보안모드에서 상기 메모리의 접근을 처리하는 보안 제어부를 포함하고,
    상기 보안 제어부는,
    상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 제1 동작,
    상기 응용프로그램 실행부로부터 명령어(instruction)가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하는 제2 동작, 및
    상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면, 상기 명령어의 수행에 필요한 데이터를 상기 가상 보안 영역에 로드(load)하는 제3 동작을 수행하는,
    휴대용 단말의 메모리 보안 장치.
  16. 제15항에 있어서,
    상기 보안 제어부는,
    상기 응용프로그램에 할당된 사용자 영역에 랜덤 값을 기록하는 제4 동작을 더 수행하는,
    휴대용 단말의 메모리 보안 장치.
  17. 제15항에 있어서,
    상기 제3 동작은,
    암호화 키를 이용하여 상기 명령어의 수행에 필요한 데이터를 변환하는 것;
    상기 데이터에 할당된 상기 메모리 내에 위치하는 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 것; 및
    상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 것을 포함하는,
    휴대용 단말의 메모리 보안 장치.
  18. 제15항에 있어서,
    상기 보안 제어부는,
    상기 메모리 내에 위치하는 사용자 영역의 제1 주소에 대한 리드(read) 요청을 수신하는 동작;
    메모리 주소 변환 테이블로부터 상기 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 동작; 및
    암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하고, 복호된 데이터를 상기 시스템 제어부로 제공하는 동작을 더 수행하는,
    휴대용 단말의 메모리 보안 장치.
  19. 메모리;
    상기 메모리의 보안이 요구되는 보안모드가 활성화되면 상기 메모리 내의 접근(access)이 제한된 영역 중 일부를 가상 보안 영역으로 할당하는 시스템 제어부; 및
    현재 실행중인 응용프로그램에 대한 명령어가 수신되면, 상기 명령어의 수행이 상기 메모리로의 접근과 관련된 것인지를 판단하고, 상기 명령어의 수행이 상기 메모리의 접근과 관련된 것이면 상기 명령어를 상기 가상 보안 영역에 접근하도록 변환하는 보안 제어부를 포함하는,
    휴대용 단말의 메모리 보안 장치.
  20. 제19항에 있어서,
    상기 시스템 제어부는,
    상기 변환된 명령어의 실행에 따라 상기 가상 보안 영역에 접근(access)하는,
    휴대용 단말의 메모리 보안 장치.
  21. 제19항에 있어서,
    상기 변환된 명령어는,
    암호화 키를 이용하여 데이터를 변환하는 제1 명령어,
    상기 데이터에 할당된 상기 메모리 내에 위치하는 사용자 영역의 주소를 메모리 주소 변환 테이블을 이용하여 상기 가상 보안 영역의 메모리 주소로 변환하는 제2 명령어, 및
    상기 가상 보안 영역의 메모리 주소에 상기 변환된 데이터를 저장하는 제3 명령어를 포함하는,
    휴대용 단말의 메모리 보안 장치.
  22. 제19항에 있어서,
    상기 변환된 명령어는,
    메모리 주소 변환 테이블로부터 사용자 영역의 제1 주소에 대응하는 상기 가상 보안 영역의 제2 주소를 획득하는 제4 명령어, 및
    암호화 키를 이용하여 상기 제2 주소에 저장된 데이터를 복호(decryption)하는 제5 명령어를 더 포함하는,
    휴대용 단말의 메모리 보안 장치.
  23. 제19항에 있어서,
    상기 시스템 제어부는 상기 변환된 명령어를 실행하고, 상기 응용프로그램에 할당된 사용자 영역에 랜덤 값(random value)을 기록하는,
    휴대용 단말의 메모리 보안 장치.
KR1020120018027A 2012-02-22 2012-02-22 휴대용 단말의 메모리 보안 시스템 KR101320739B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120018027A KR101320739B1 (ko) 2012-02-22 2012-02-22 휴대용 단말의 메모리 보안 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120018027A KR101320739B1 (ko) 2012-02-22 2012-02-22 휴대용 단말의 메모리 보안 시스템

Publications (2)

Publication Number Publication Date
KR20130101646A KR20130101646A (ko) 2013-09-16
KR101320739B1 true KR101320739B1 (ko) 2013-10-21

Family

ID=49451679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120018027A KR101320739B1 (ko) 2012-02-22 2012-02-22 휴대용 단말의 메모리 보안 시스템

Country Status (1)

Country Link
KR (1) KR101320739B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442539B1 (ko) * 2013-12-31 2014-09-26 권용구 보안저장장치를 구비하는 저장 시스템 및 그 관리 방법
KR101886176B1 (ko) * 2016-10-25 2018-08-08 시큐리티플랫폼 주식회사 소유자만 기록 가능한 부트영역을 포함하는 저장장치
CN109840411B (zh) * 2018-02-27 2021-01-08 中国科学院计算技术研究所 一种应用的保护方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090048293A (ko) * 2008-06-17 2009-05-13 (주)노애드 컴퓨터의 시스템자원 및 프로세스의 보호 및 격리장치와 그방법
KR20090067569A (ko) * 2007-12-21 2009-06-25 (주) 세인트 시큐리티 가상화 기법을 이용한 윈도우 커널 보호 시스템
KR20110098889A (ko) * 2007-03-20 2011-09-02 이상규 클라이언트 및 서버의 보안방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110098889A (ko) * 2007-03-20 2011-09-02 이상규 클라이언트 및 서버의 보안방법
KR20090067569A (ko) * 2007-12-21 2009-06-25 (주) 세인트 시큐리티 가상화 기법을 이용한 윈도우 커널 보호 시스템
KR20090048293A (ko) * 2008-06-17 2009-05-13 (주)노애드 컴퓨터의 시스템자원 및 프로세스의 보호 및 격리장치와 그방법

Also Published As

Publication number Publication date
KR20130101646A (ko) 2013-09-16

Similar Documents

Publication Publication Date Title
US11416605B2 (en) Trusted execution environment instances licenses management
Cooijmans et al. Analysis of secure key storage solutions on android
US9270466B2 (en) System and method for temporary secure boot of an electronic device
US8572410B1 (en) Virtualized protected storage
KR101224322B1 (ko) 마이크로제어기 내의 데이터 보안 처리를 위한 방법, 장치 및 집적 회로
US9507964B2 (en) Regulating access using information regarding a host machine of a portable storage drive
US20130156195A1 (en) Method of obtaining a main key from a memory device, method of generating authentication information for a memory device, an external device and system icluding the external device
JP4551231B2 (ja) プログラム実行保護システム、プログラム実行保護方法
US20050182952A1 (en) Information processing apparatus and method and computer program
EP2947594A2 (en) Protecting critical data structures in an embedded hypervisor system
US20080082447A1 (en) Portable Mass Storage Device With Virtual Machine Activation
JP6591495B2 (ja) 内蔵型アクセス・コントロール機能を有するモバイル機器
US20110131418A1 (en) Method of password management and authentication suitable for trusted platform module
RU2631136C2 (ru) Способ защищенного доступа и устройство защищенного доступа прикладной программы
KR20150041095A (ko) 선택적 ram 스크램블링을 위한 방법 및 디바이스들
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
CN101071463A (zh) 虚拟个人办公环境的方法和设备
US20080126705A1 (en) Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
US20150089247A1 (en) Storage medium having security function and security method thereof
TW201839645A (zh) 儲存裝置及其存取權限控制方法
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
KR101320739B1 (ko) 휴대용 단말의 메모리 보안 시스템
KR20160019780A (ko) 시스템 온 칩, 시스템 온 칩을 포함하는 전자 장치 및 시스템 온 칩의 동작 방법
TW200846972A (en) Method for generating and using a key for encryption and decryption in a computer device
JP2006190050A (ja) マルチタスク実行システム及びマルチタスク実行方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191002

Year of fee payment: 7