KR101731920B1 - 이동 단말기 및 그것의 제어방법 - Google Patents

이동 단말기 및 그것의 제어방법

Info

Publication number
KR101731920B1
KR101731920B1 KR1020160113422A KR20160113422A KR101731920B1 KR 101731920 B1 KR101731920 B1 KR 101731920B1 KR 1020160113422 A KR1020160113422 A KR 1020160113422A KR 20160113422 A KR20160113422 A KR 20160113422A KR 101731920 B1 KR101731920 B1 KR 101731920B1
Authority
KR
South Korea
Prior art keywords
application
program
shared
database
shared data
Prior art date
Application number
KR1020160113422A
Other languages
English (en)
Inventor
강태인
이상훈
권미영
김훈규
이성기
이규호
Original Assignee
국방과학연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국방과학연구소 filed Critical 국방과학연구소
Priority to KR1020160113422A priority Critical patent/KR101731920B1/ko
Priority to US15/424,177 priority patent/US20180069859A1/en
Application granted granted Critical
Publication of KR101731920B1 publication Critical patent/KR101731920B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72519
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 복수의 계층들로 이루어진 운영체제를 구비하는 이동 단말기 및 그것의 제어방법에 관한 것이다. 상기 이동 단말기는, 서로 다른 애플리케이션에서 생성된 복수의 공유 데이터를 관리하도록 이루어지는 공유 데이터베이스; 어느 애플리케이션으로부터 적어도 하나의 공유 데이터에 대한 공유 요청이 수신되는 경우, 상기 공유 요청된 공유 데이터를 상기 공유 데이터베이스를 이용하여 상기 어느 애플리케이션에 공유하도록 이루어지는 데이터 서비스 프로그램; 및 상기 어느 애플리케이션으로부터 상기 공유 요청이 발생하는 경우, 상기 어느 애플리케이션에 부여된 권한에 근거하여, 상기 공유 요청을 차단하거나 상기 공유 요청을 상기 데이터 서비스 프로그램에 전달하도록 이루어지는 보안 프레임워크를 포함한다.

Description

이동 단말기 및 그것의 제어방법{MOBILE TERMINAL AND CONTROL METHOD THEREOF}
본 발명은 복수의 계층들로 이루어진 운영체제를 구비하는 이동 단말기 및 그것의 제어방법에 관한 것이다.
이동 단말기에 설치되는 애플리케이션(application)은 애플리케이션 별로 설치 경로 및/또는 저장 경로를 할당 받으며, 할당된 경로에 데이터를 저장한다. 애플리케이션은 할당된 경로에 데이터를 저장하기 때문에, 애플리케이션들은 상호 간의 데이터를 공유할 수 없다.
하지만, 연락처 목록, 통화 목록, 메시지, 캘린더 등 여러 애플리케이션에서 공통으로 접근할 수 있는 데이터(이하, '공유 데이터'로 호칭)의 경우, 다양한 애플리케이션들이 프레임워크에서 데이터 서비스 프로그램을 통해 상기 공유 데이터에 접근할 수 있도록 하고 있다. 이에 따라, 악성 애플리케이션 등에 의해 상기 공유 데이터에 포함된 개인 정보가 유출될 가능성이 발생하게 된다. 또한, 루팅, RCS(remote control system) 등의 악의적인 공격에 의해서 상기 공유 데이터가 아무런 제약 없이 유출될 수 있기 때문에, 사회적으로 큰 문제가 되고 있다.
운영체제의 커널 레벨에서 상기 공유 데이터로의 접근을 통제하는 기술은 존재하지만, 이러한 기술은 프로그램 단위로만 구분하고 제어할 수 있을 뿐이다. 데이터 서비스 프로그램을 통해서 공유 데이터에 접근하는 애플리케이션들을 선택적으로 통제하고 제어하는 기술에 대한 필요성이 대두하고 있다. .
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다.
또 다른 목적은, 서로 다른 애플리케이션에 공유되는 공유 데이터에 대한 접근을 통제할 수 있는 이동 단말기 및 그것의 제어방법을 제공하는 것이다.
또 다른 목적은, 이동 단말기에 설치된 운영체제에서 커널 레벨과 프레임워크 레벨에서 접근 통제를 구현하여, 공유 데이터에 대한 접근 통제를 효율적으로 구현 할 수 있는 이동 단말기 및 그것의 제어방법을 제공하는 것이다.
본 발명은 복수의 계층들로 이루어진 운영체제를 구비하는 이동 단말기 및 그것의 제어방법에 관한 것이다. 상기 이동 단말기는, 서로 다른 애플리케이션에서 생성된 복수의 공유 데이터를 관리하도록 이루어지는 공유 데이터베이스; 어느 애플리케이션으로부터 적어도 하나의 공유 데이터에 대한 공유 요청이 수신되는 경우, 상기 공유 요청된 공유 데이터를 상기 공유 데이터베이스를 이용하여 상기 어느 애플리케이션에 공유하도록 이루어지는 데이터 서비스 프로그램; 및 상기 어느 애플리케이션으로부터 상기 공유 요청이 발생하는 경우, 상기 어느 애플리케이션에 부여된 권한에 근거하여, 상기 공유 요청을 차단하거나 상기 공유 요청을 상기 데이터 서비스 프로그램에 전달하도록 이루어지는 보안 프레임워크를 포함한다.
일 실시 예에 있어서, 상기 이동 단말기는, 상기 공유 데이터베이스를 이용할 수 있는 애플리케이션 목록을 저장하는 보안 프레임워크 데이터베이스를 더 포함하고, 상기 보안 프레임워크는 상기 보안 프레임워크 데이터베이스를 이용하여 상기 어느 애플리케이션에 부여된 권한을 확인할 수 있다.
일 실시 예에 있어서, 상기 애플리케이션 목록에 포함된 각 애플리케이션 항목은 특정 애플리케이션에 대응하는 애플리케이션 식별자, 및 상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션을 포함할 수 있다.
일 실시 예에 있어서, 상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션은 새로운 공유 데이터의 생성, 그리고 기 저장된 공유 데이터에 대한 조회, 삭제 및 수정 중 적어도 하나를 포함할 수 있다.
일 실시 예에 있어서, 각 애플리케이션이 요청할 수 있는 오퍼레이션은 애플리케이션마다 다를 수 있다.
일 실시 예에 있어서, 상기 이동 단말기는, 관리자 권한을 부여받은 어느 프로그램으로부터 상기 공유 데이터베이스에 대한 접근이 발생하는 경우, 상기 어느 프로그램에 부여된 권한에 근거하여, 상기 접근을 차단하거나 허용하도록 이루어지는 보안 커널을 더 포함할 수 있다.
일 실시 예에 있어서, 상기 이동 단말기는, 상기 공유 데이터베이스를 이용할 수 있는 프로그램 목록을 저장하는 보안 커널 데이터베이스를 더 포함하고, 상기 보안 커널은 상기 보안 커널 데이터베이스를 이용하여 상기 어느 프로그램에 부여된 권한을 확인할 수 있다.
일 실시 예에 있어서, 상기 프로그램 목록에 포함된 각 프로그램 항목은 특정 프로그램에 대응하는 프로그램 식별자, 상기 특정 프로그램이 요청할 수 있는 공유 데이터의 종류 및 상기 특정 프로그램이 요청할 수 있는 오퍼레이션을 포함할 수 있다.
일 실시 예에 있어서, 각 프로그램이 요청할 수 있는 오퍼레이션은 프로그램마다 다를 수 있다.
일 실시 예에 있어서, 각 프로그램은 각 공유 데이터에 대하여 서로 다른 접근 권한을 가질 수 있다.
일 실시 예에 있어서, 프레임워크 레벨 및 커널 레벨을 포함하는 운영체제에서, 상기 보안 프레임워크는 상기 프레임워크 레벨에 위치하고, 상기 보안 커널은 상기 커널 레벨에 위치할 수 있다.
일 실시 예에 있어서, 상기 보안 프레임워크 데이터베이스 및 상기 보안 커널 데이터베이스 중 적어도 하나에 대한 수정을 수행하도록 이루어지는 보안 관리 프로그램을 더 포함할 수 있다.
한편, 본 발명에 따른 이동 단말기의 제어방법은, 이동 단말기에 설치된 어느 애플리케이션이 적어도 하나의 공유 데이터에 대한 공유 요청을 수행하는 단계; 보안 프레임워크가 상기 어느 애플리케이션에 부여된 권한에 근거하여, 상기 공유 요청을 차단하거나 상기 공유 요청을 데이터 서비스 프로그램에 전달하는 단계; 및 상기 공유 요청이 수신되는 경우, 상기 데이터 서비스 프로그램이 상기 공유 요청된 공유 데이터를 공유 데이터베이스를 이용하여 상기 어느 애플리케이션에 공유하며, 상기 공유 데이터베이스는 서로 다른 애플리케이션에서 생성된 복수의 공유 데이터를 관리하도록 이루어진다.
일 실시 예에 있어서, 상기 공유 요청을 차단하거나 상기 공유 요청을 전달하는 단계는, 상기 보안 프레임워크가 보안 프레임워크 데이터베이스를 이용하여 상기 어느 애플리케이션에 부여된 권한을 확인하는 단계; 및 확인 결과에 따라, 상기 보안 프레임워크가 상기 공유 요청을 차단하거나 상기 공유 요청을 상기 데이터 서비스 프로그램에 전달하는 단계를 포함하며, 상기 보안 프레임워크 데이터베이스는 상기 공유 데이터베이스를 이용할 수 있는 애플리케이션 목록을 저장할 수 있다.
일 실시 예에 있어서, 각 애플리케이션이 요청할 수 있는 상기 공유 요청의 오퍼레이션은 애플리케이션마다 다를 수 있다.
일 실시 예에 있어서, 상기 제어방법은, 관리자 권한을 부여받은 어느 프로그램으로부터 상기 공유 데이터베이스에 대한 접근이 발생하는 단계; 및 보안 커널이 상기 어느 프로그램에 부여된 권한에 근거하여, 상기 접근을 차단하거나 허용하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 상기 접근을 차단하거나 허용하는 단계는, 상기 보안 커널이 보안 커널 데이터베이스를 이용하여 상기 어느 프로그램에 부여된 권한을 확인하는 단계; 및 확인 결과에 따라, 상기 보안 커널이 상기 접근을 차단하거나 상기 접근을 허용하는 단계를 포함하며, 상기 보안 커널 데이터베이스는 상기 공유 데이터베이스를 이용할 수 있는 프로그램 목록을 저장할 수 있다.
일 실시 예에 있어서, 각 프로그램이 요청할 수 있는 오퍼레이션은 프로그램마다 다르며, 각 프로그램은 각 공유 데이터에 대하여 서로 다른 접근 권한을 가질 수 있다.
일 실시 예에 있어서, 프레임워크 레벨 및 커널 레벨을 포함하는 운영체제에서, 상기 보안 프레임워크는 상기 프레임워크 레벨에 위치하고, 상기 보안 커널은 상기 커널 레벨에 위치할 수 있다.
일 실시 예에 있어서, 상기 제어방법은, 보안 관리 프로그램이 상기 보안 프레임워크 데이터베이스 및 상기 보안 커널 데이터베이스 중 적어도 하나에 대한 수정을 수행하는 단계를 더 포함할 수 있다.
본 발명에 따른 이동 단말기는, 이동 단말기에 설치된 운영체제의 커널 레벨에서는 커널 레벨로의 접근을 통제함으로써 루팅 등 악의적인 공격으로부터 공유 데이터에 대한 접근을 차단하면서도 정상적인 데이터 서비스 프로그램의 접근을 허용할 수 있다.
나아가, 프레임워크 레벨에서는 악성 애플리케이션으로부터의 데이터 서비스 프로그램 접근을 차단하고, 정상적으로 허용된 애플리케이션으로부터의 데이터 서비스 프로그램 접근만을 허용한다.
이로써, 이동 단말기는 악성 애플리케이션과 루팅 프로그램 등이 공유 데이터에 접근하는 것을 효율적으로 통제할 수 있으며, 정상적으로 허가된 애플리케이션은 데이터 서비스 프로그램을 통해 공유 데이터를 계속해서 이용할 수 있다.
도 1은 이동 단말기에 설치된 운영체제의 아키텍처를 설명하기 위한 블록도이다.
도 2는 이동 단말기에서 공유 데이터에 접근하는 방법을 설명하기 위한 개념도이다.
도 3은 악의적인 애플리케이션이나 프로그램에 의하여 공유 데이터가 유출되는 과정을 설명하기 위한 개념도이다.
도 4는 보안 프레임워크 및 보안 커널을 통해 공유 데이터에 대한 접근을 통제하는 과정을 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시 예에 따른 이동 단말기의 제어방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 보안 프레임워크 데이터베이스의 구조를 설명하기 위한 예시도이다.
도 7은 본 발명의 일 실시 예에 따른 보안 커널 데이터베이스의 구조를 설명하기 위한 예시도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 해 의한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서 설명되는 이동 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등이 포함될 수 있다.
본 명세서에서 설명되는 이동 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등이 포함될 수 있다.
그러나, 본 명세서에 기재된 실시 예에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.
도 1은 이동 단말기에 설치된 운영체제의 아키텍처를 설명하기 위한 블록도이다.
이동 단말기는 맨 아래층인 집적 회로 칩(IC chip) 수준의 하드웨어층, 그 다음 층인 펌웨어(firmware)와 운영체제(OS)층, 맨 위층인 응용 프로그램층으로 구성되는 계층화된 장치이다.
상기 운영체제는 다시 복수의 레벨들(또는, 계층들)로 이루어지며, 상기 운영체제의 레벨들을 플랫폼 또는 아키텍쳐로 호칭할 수 있다. 나아가, 상기 운영체제는 응용 프로그램층(또는, 애플리케이션 레벨)을 포함할 수 있으며, 하드웨어와 응용 프래그램을 연결하는 중계자 역할을 수행한다.
운영체제는 모든 하드웨어와 모든 소프트웨어를 관리하는 컴퓨터시스템의 한 부분인 “실행 관리자”라고 정의할 수 있다. 운영체제는 누가 시스템을 사용할 수 있고, 어떻게 사용할 수 있는지를 관리하므로, 즉 운영체제는 컴퓨터시스템을 관리하는 보스(boss)라고 할 수 있다.
운영체제는 일련의 작업 순서를 정하고 중앙처리장치(CPU)·주기억장치·주변장치 등의 여러 하드웨어 시스템에 이를 할당하는 일련의 매우 복잡한 명령으로서, 프로그램 실행은 물론 파일 접근, 응용 프로그램 구동, 모니터 및 메모리 저장장치 제어, 글자판 명령 해석과 같은 특별한 임무를 수행하도록 CPU에 지시한다. 또한 여러 사용자가 동시에 작업을 수행할 때에는 이른바 시분할(time-sharing) 방식으로 작업의 우선순위를 정해 시간과 자원을 효율적으로 배분하며, 네트워크상에서는 다른 컴퓨터와 상호 작용하는 일을 제어하기도 한다.
요약하자면, 운영체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하며, 컴퓨터 사용을 편리하게 해주고 응용 프로그램들의 수행을 도와주며, 사용자와 하드웨어 사이의 매개체 역할을 하는 소프트웨어라고 말할 수 있다.
도 1을 참조하면, 이동 단말기(100)의 운영체제는 커널 레벨(KERNEL, 110), 라이브러리 레벨(LIBRARIES, 130), 프레임워크 레벨(FRAMEWORK, 150), 그리고 애플리케이션 레벨(APPLICATIONS, 170)으로 이루어진다. 상기 커널 레벨(110)을 기준으로 라이브러리 레벨(130), 프레임워크 레벨(150) 그리고 애플리케이션 레벨(170)이 순차적으로 적층되어 위치하게 된다.
가장 아랫단에는 커널 레벨(110)이 위치한다.
상기 커널 레벨(110)은 커널을 포함하며, 운영체제의 가장 중요한 핵심으로써 운영체제의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다.
일반적으로 커널 레벨(110)에는 종료된 입출력연산 등 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세서들에게 이동 단말기의 사용권을 부여하는 수퍼바이저(supervisor) 등이 포함되어 있다.
또한, 커널 레벨(110)은 메모리나 저장장치 내에서 운영체제의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널 레벨(110)의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리 관리자를 가지고 있다. 커널 레벨(110)의 서비스는 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다.
이 밖에도, 커널 레벨(110)에는 이동 단말기에 최적화된 전력 관리 기능이나 프로세서간 커뮤니케이션을 관장하는 기능이 포함될 수 있다.
커널 레벨(110) 위에는 라이브러리 레벨(130)이 위치한다.
상기 라이브러리 레벨(130)은 이동 단말기(100) 이용의 효율화를 꾀하기 위해서 이용자가 필요에 따라서 사용하는 표준화된 프로그램 및 서브루틴의 모임이 포힘된다. 3차원 그래픽을 위한, OPEN GL, 로컬 데이터베이스를 제공하는 SQLLite 데이터 베이스, 웹 브라우징을 위한 WebKit, 멀티미디어 재생을 위한 Media Frameworks 등이 상기 라이브러리 레벨(130)에 포함될 수 있다.
라이브러리 레벨(130) 위에는 프레임워크 레벨(150)이 위치한다. 상기 프레임워크 레벨(150)은 "애플리케이션 프레임워크 레벨"로 호칭될 수도 있다.
프레임워크 레벨(150)은 소프트웨어, 애플리케이션, 또는 솔루션과 같은 프로그램을 개발자가 손쉽게 개발할 수 있도록 하기 위하여, 상기 프로그램에서 구현될 구체적 기능들의 설계와 구현을 가능하게 하는 소프트웨어 환경을 의미한다. 상기 프레임워크 레벨(150)에서는 상기 프로그램에서 구현될 구체적인 기능들이 다양한 형태로 조합되어 재사용될 수 있도록 하는 사용자 인터페이스가 제공된다.
상기 프레임워크 레벨(150)에서는 프레임워크가 포함된다. 컴퓨터 프로그래밍에서 프레임워크는 구조적으로 고정된 기능을 재사용할 수 있도록 하고, 고정되어 있지 않은 새로운 기능을 사용자가 작성한 코드에 의하여 선택적으로 구현 가능하도록 하는 플랫폼을 의미할 수 있다. 즉, 소프트웨어의 개발에 필수적이고 표준적인 부분에 해당하는 설계와 구현을 재사용 가능하도록, 일련의 협업화된 형태의 클래스들로 제공하는 반제품 소프트웨어 모듈이라고 볼 수 있다. 소프트웨어 프레임워크는 지원 프로그램, 컴파일러, 코드 라이브러리, 도구 세트, API(application programming interface) 등과 같이 프로젝트나 솔루션 개발을 가능하게 하는 여러 가지 서로 다른 컴포넌트들을 포함한다.
개발자가 프레임워크를 이용하여 개발을 수행하는 경우, 프레임워크 레벨(150)에서 제공하는 구조를 그대로 재사용하고 제공되지 않는 기능을 추가적으로 구현하면 되기 때문에, 애플리케이션을 빠르게 구축할 수 있다. 또한, 동일 프레임워크를 사용하는 애플리케이션들은 비슷한 뼈대 구조를 가지기 때문에 관리 및 테스트가 용이하다.
프레임워크는 명확하게 정의된 API(application programming interface)를 가지고 코드를 재사용 가능한 형태로 구조화한다는 점에서 라이브러리와 비슷하다. 그러나 라이브러리에서는 호출 측이 전체 프로그램의 제어 구조를 지정할 수 없지만, 프레임워크에서는 이러한 제어의 반전(inversion of control)이 가능하다. 또한, 라이브러리와 달리 프레임워크는 사용자가 선택적 오버라이딩(overriding, 상속받은 함수를 재정의 하는 것)이나 특정 기능을 수행하는 사용자 코드로 특수화하여 코드를 확장 재사용할 수 있다.
프레임워크는 프로그래머들이 애플리케이션에 세부적인 사항을 제외한 공통 부분들의 개발에 드는 시간을 줄이고 세부 요구사항 구현에 집중할 수 있도록 하는 것을 목표로 한다.
프레임워크 레벨(150)은 패키지 매니저, 윈도우 매니저, 뷰 매니저, 리소스 매니저, 액티비티 매니저, 콘텐츠 제공자, 위치 매니저, 노티 매니저 등을 포함할 수 있다.
패키지 매니저(Package manager)는 이동 단말기(100)에 설치되어 있는 애플리케이션들을 관리한다.
윈도우 매니저(Windows manager)는 윈도우 화면을 관리한다. 여기서, 윈도우란 이동 단말기(100)의 디스플레이에 표시되는 정보를 구분하는 영역을 의미한다.
뷰 매니저(View manager)는 기본적인 그래픽 컴포넌트를 관리한다.
리소스 매니저(Resource manager)는 컴파일이 되지 않는 리소스를 관리한다. 예를 들어, 애플리케이션에 같이 패키징된 이미지 파일 등을 관리한다.
액티비티 매니저(Activity manager)는 운영체제의 액티버티를 관리한다. 이 액티버티는 애플리케이션에 의하여 생성되는 하나의 화면에 해당하는 것으로, 이 액티버터의 생성 및 소멸까지의 라이프 싸이클을 관리한다.
콘텐츠 제공자(Contents provider)는 데이타 저장소에 대한 추상화된 계층으로, 콘텐츠 제공자를 통하여 데이터를 저장하거나, 콘텐츠 제공자가 관리하는 저장소를 애플리케이션들에게 공유하고, 상기 저장소를 이용하여 애플리케이션 간에 데이터를 공유할 수도 있다.
위치 매니저(Location manager)는 위치 관련 서비스 기능을 제공한다.
노티 매니저(Notification manager)는 발생된 이벤트를 관리하고, 사용자에게 통지하는 기능을 제공한다.
한편, 프레임워크 레벨(150) 위에 애플리케이션 레벨(170)이 위치한다.
연락처, 메신져, 브라우저, 카메라 등의 애플리케이션이 상기 애플리케이션 레벨(170)에 위치할 수 있다. 여기서, 애플리케이션은 특정한 기능을 수행하기 위해 고안된 일련의 프로그램 집합을 말하며, 응용 프로그램이라고 호칭될 수 있다. 애플리케이션 레벨은 응용 프로그램층으로 호칭될 수도 있다.
이상에서는 이동 단말기에 설치된 운영체제의 아키텍쳐에 대하여 주로 설명하였으나, 이하에서는 상기 운영체제의 아키텍쳐에서 애플리케이션 및/또는 프로그램이 공유 데이터에 접근하는 방법과 상기 공유 데이터가 유출되는 과정에 대하여 구체적으로 살펴본다.
도 2는 이동 단말기에서 공유 데이터에 접근하는 방법을 설명하기 위한 개념도이다.
도 2를 참조하면, 애플리케이션 레벨(170)에 위치한 하나 또는 그 이상의 애플리케이션들은 공유 데이터를 이용하기 위하여 공유 데이터에 대한 접근을 요청한다. 구체적으로, 적어도 하나의 애플리케이션은 프레임워크 레벨(150)에서 제공하는 API(Application Programming Interface)를 통해 데이터 서비스 프로그램에 공유 데이터를 요청한다. 이러한 접근 요청(또는, 공유 요청)은 인텐트(intent)를 통해 이루어질 수 있다.
공유 데이터에 대한 공유 요청이 수신되면, 데이터 서비스 프로그램은 커널 레벨(110)에서 제공하는 인터페이스를 통해 공유 데이터에 대한 접근을 요청하고, 커널은 공유 데이터를 읽어 데이터 서비스 프로그램에 전달한다. 데이터 서비스 프로그램은 수신된 공유 데이터를 API를 통해 공유 요청을 한 애플리케이션에게 전달한다.
여기서 공유 데이터는, 애플리케이션 레벨(170)에 위치하는 다양한 애플리케이션들이 공통으로 접근할 수 있는 데이터를 의미한다. 예를 들어, 주소록에 저장된 연락처, 통화 기록, 송수시된 메시지 및 메일, 달력과 연계된 일정, 사진, 오디오, 비디오 등이 공유 데이터에 포함될 수 있다.
공유 데이터는 기 설정된 데이터베이스(이하, '공유 데이터베이스'로 호칭)에 저장되어 있으며, 어느 애플리케이션이 공유 데이터에 접근 하기 위해서는 프레임워크 레벨(150)에서 제공하는 데이터 서비스 프로그램을 반드시 이용해야 한다.
데이터 서비스 프로그램은 애플리케이션이 공유 데이터를 획득하기 위하여 이용하는 인터페이스를 의미한다. 데이터 서비스 프로그램은 프레임워크 레벨(150)에 위치하며, 데이터베이스에 저장되어 있는 공유 데이터에 접근할 수 있는 권한을 가진다.
애플리케이션은 공유 데이터에 직접 접근할 수 없으며, 오직 데이터 서비스 프로그램을 이용해서만 공유 데이터를 획득할 수 있다.
일 예로, 안드로이드에서 상기 데이터 서비스 프로그램은 컨텐트 프로바이더(content provider)에 해당한다.
콘텐트 프로바이더는 안드로이드에서 제공하는 하는 4대 컴포넌트 중 하나이며, 애플리케이션이 공유 데이터에 접근할 수 있게 약속된 인터페이스를 제공한다.
콘텐트 프로바이더는 한 애플리케이션 내의 데이터베이스를 다른 애플리케이션이 사용할 수 있도록 "통로"를 제공해주며, 다른 애플리케이션이 데이터베이스에 접근할 수 있는 범위를 정해줄 수 있어, 특정 항목만 공유하는 것이 가능하다.
콘텐트 프로바이더에 의하여 공유 데이터를 추가(insert), 쿼리(query), 수정(update), 삭제(delete)하는 인터페이스가 제공되며, 애플리케이션은 콘텐트 프로바이더를 통해 공유 데이터에 자유롭게 접근할 수 있게 된다. 즉, 공유 데이터에 대한 접근이란, 새로운 공유 데이터 생성, 기존 공유 데이터에 대한 조회, 수정 및 삭제를 포함하는 개념이다.
공유 데이터 하나하나는 레코드로 호칭되며, 데이터베이스에 저장되어 관리되게 된다. 각 공유 데이터는 통합 자원 식별자(uniform resource identifier, URI)에 의하여 관리될 수 있다.
한편, 공유 데이터의 종류에 따라 데이터 서비스 프로그램의 종류가 달라질 수 있다. 예를 들어, 안드로이드에서 이미지, 비디오 및 오디오의 경우, 콘텐트 프로바이더에 포함된 미디어스토어(mediastore)에 의하여 접근이 이루어질 수 있다. 다른 예를 들어, 안드로이드에서 달력에 연계된 일정의 경우, 콘텐트 프로바이더에 포함된 캘린더 컨트랙트(calendar contract)에 의하여 접근이 이루어질 수 있다. 즉, 이동 단말기의 운영체제에서 다양한 데이터 서비스 프로그램이 제공되며, 공유할 데이터의 종류에 따라 애플리케이션이 이용할 데이터 서비스 프로그램도 달라지게 된다.
도 3은 악의적인 애플리케이션이나 프로그램에 의하여 공유 데이터가 유출되는 과정을 설명하기 위한 개념도이다.
일 예로, 악성 애플리케이션에 의하여 공유 데이터가 유출될 수 있다.
이동 단말기에 악성 애플리케이션이 설치되어 있는 경우, 상기 악성 애플리케이션은 데이터 서비스 프로그램을 통해 공유 데이터를 획득할 수 있다. 구체적으로, 상기 악성 애플리케이션은 일반적인 애플리케이션처럼 데이터 서비스 프로그램에 공유 데이터를 요청한다. 데이터 서비스 프로그램은 상기 악성 애플리케이션의 요청에 응답하여 공유 데이터를 사익 악성 애플리케이션에 전달한다.
이로써, 상기 악성 애플리케이션은 공유 데이터를 획득할 수 있을뿐만 아니라, 악의적인 수정/삭제/업데이트 등을 할 수 있게 된다. 또한, 악성 애플리케이션은 데이터 서비스 프로그램을 통해 획득한 공유 데이터를 이동 단말기의 무선 통신부를 통해 외부로 유출시킬 수도 있다.
다른 예로, 관리자 권한까지 획득한 악성 프로그램에 의하여 공유 데이터가 유출될 수 있다.
상기 악성 프로그램은 루팅 프로그램일 수 있다. 루팅(rooting)은 안드로이드를 탑재한 이동 단말기에서 관리자 권한을 획득하는 것을 의미한다. 안드로이드 운영체제의 기반이 된 리눅스 환경에서는 모든 파일과 프로그램에 접근할 수 있는 권한을 가진 사람을 슈퍼유저(superuser)라고 하는데, 이 슈퍼유저는 루트(root)라는 계정을 사용한다. 이는 윈도우 운영체제의 관리자(administrator) 계정과 비슷한 것으로, 시스템의 전권을 가진 최고 권한의 계정이다. 우리가 흔히 말하는 루팅은 이 루트 계정을 획득하는 것을 뜻한다.
악성 프로그램의 경우 해킹으로 이동 단말기 내의 거의 모든 권한을 가질 수 있으므로, 커널이나 공유 데이터베이스에 요청하여 공유 데이터를 아무런 제약 없이 접근할 수 있는 문제가 있다.
악성 애플리케이션은 데이터 서비스 프로그램을 통해 공유 데이터를 획득하고, 악성 프로그램은 획득된 권한을 바탕으로 공유 데이터를 획득하는 문제가 있다.
공유 데이터가 아무런 제약 없이 외부로 유출되는 것이 방지되도록, 본 발명은 이동 단말기의 운영체제에 보안 프레임워크 및 보안 커널 중 적어도 하나를 이식하는 방법을 제안한다. 이하 도 4 내지 도 7을 참조하며, 본 발명에 따른 이동 단말기 및 그 제어방법에 대하여 보다 구체적으로 설명한다.
도 4는 보안 프레임워크(410) 및 보안 커널(430)을 통해 공유 데이터에 대한 접근을 통제하는 과정을 설명하기 위한 개념도이다.
애플리케이션 레벨(170)과 프레임워크 레벨(150) 사이에 보안 프레임워크(410)가 위치한다. 상기 보안 프레임워크(410)는 애플리케이션에 의한 공유 데이터의 공유 요청을 선택적으로 허용하거나 차단한다. 공유 요청이 허용되는 경우, 상기 공유 요청은 상기 보안 프레임워크(410)를 통해 데이터 서비스 프로그램에 전달된다.
공유 요청의 허용 여부를 판단하기 위한 기준으로, 보안 프레임워크 데이터베이스(412)가 구비된다. 보안 프레임워크(410)는 보안 프레임워크 데이터베이스(412)에 근거하여 애플리케이션에 의한 공유 요청을 허용하거나 차단한다.
커널 레벨(110)에는 보안 커널(430)이 위치한다. 상기 보안 커널(430)은 관리자 권한을 가진 프로그램이 공유 데이터 및/또는 공유 데이터베이스에 접근하는 것을 선택적으로 허용하거나 차단한다.
접근의 허용 여부를 판단하기 위한 기준으로, 보안 커널 데이터베이스(432)가 구비된다. 보안 커널(430)은 보안 커널 데이터베이스(432)에 근거하여 프로그램에 의한 접근을 허용하거나 차단한다.
한편, 이동 단말기(100)에는 보안 관리 프로그램(450)이 구비될 수 있다. 상기 보안 관리 프로그램(450)은 상기 보안 프레임워크 데이터베이스(412) 및 상기 보안 커널 데이터베이스(432) 중 적어도 하나에 대한 수정을 수행하도록 이루어진다.
구체적으로, 보안 관리 프로그램(450)은 보호 대상에 해당하는 공유 데이터를 관리할 수 있다.
보안 관리 프로그램(450)은, 보안 프레임워크 데이터베이스(412)와 관련하여, 각 공유 데이터에 접근하는 데이터 서비스 프로그램, 각 데이터 서비스 프로그램에 접근할 수 있는 애플리케이션, 각 애플리케이션이 요청할 수 있는 오퍼레이션을 새로이 생성하거나, 수정 및/또는 삭제를 수행할 수 있다.
나아가, 보안 관리 프로그램(450)은, 보안 커널 데이터베이스(432)와 관련하여, 보호 할 공유 데이터, 각 공유 데이터에 접근할 수 있는 프로그램, 각 프로그램이 요청할 수 있는 오퍼레이션을 새로이 생성하거나, 수정 및/또는 삭제를 수행할 수 있다.
전자서명 인증 등과 같이 강력한 인증을 통과한 시스템 운영자만이 상기 보안 관리 프로그램(450)을 이용하여 보안 권한을 생성, 수정, 관리할 수 있다.
보안 프레임워크 데이터베이스(432) 및 보안 커널 데이터베이스(432) 중 적어도 하나는 보안 커널(430)이 통제하고 있는 안전한 저장 공간에 저장되며, 루트(root) 계정으로도 접근할 수 없는 물리적으로 분리된 곳에 위치할 수 있다. 일 예로, 일반적인 파일이나 데이터베이스처럼 특정 디렉토리 아래에 저장되되, 그 디렉토리 위치는 사용자가 알 수 없도록(즉, 검색이 되지 않도록) 숨겨질 수 있다(shielding). 다른 예로, 하드웨어적으로 독립된 장소(예, ARM 칩의 trust zone)에 저장될 수도 있다.
도 5는 본 발명의 일 실시 예에 따른 이동 단말기의 제어방법을 설명하기 위한 흐름도이다. 도 6은 보안 프레임워크 데이터베이스의 구조를 설명하기 위한 예시도이고, 도 7은 보안 커널 데이터베이스의 구조를 설명하기 위한 예시도이다.
먼저, 공유 데이터에 대한 접근 통제를 시작한다.
접근 통제를 위하여, 이동 단말기의 운영체제에 보안 프레임워크(410) 및 보안 커널(430) 중 적어도 하나를 이식한다. 보안 프레임워크(410)는 프레임워크 레벨(150)에 설치되고, 보안 커널(430)은 커널 레벨(110)에 설치된다. 즉, 프레임워크 레벨(150) 및 커널 레벨(110)을 포함하는 운영체제에서, 상기 보안 프레임워크(410)는 상기 프레임워크 레벨(150)에 위치하고, 상기 보안 커널(450)은 상기 커널 레벨(110)에 위치할 수 있다.
다음으로, 공유 데이터에 대한 접근 요청이 수신될 수 있다.
예를 들어, 이동 단말기에 설치된 어느 애플리케이션이 적어도 하나의 공유 데이터에 대한 공유 요청을 수행하거나, 관리자 권한을 부여받은 어느 프로그램이 공유 데이터에 대한 접근을 수행할 수 있다.
어느 애플리케이션이 공유 요청을 하는 경우, 상기 공유 요청은 API를 통해 이루어질 수 있으며, 보안 프레임워크(410)에 의하여 원천적으로 차단된다.
보안 프레임워크(410)는 상기 공유 요청을 한 애플리케이션에 부여된 권한에 근거하여 상기 공유 요청을 차단하거나, 상기 공유 요청을 데이터 서비스 프로그램에 전달한다.
상기 공유 요청이 데이터 서비스 프로그램에 전달되는 경우, 상기 데이터 서비스 프로그램은 공유 요청된 공유 데이터를 공유 데이터베이스를 이용하여 상기 어느 애플리케이션에 공유하게 된다. 여기서, 공유 데이터베이스는 서로 다른 애플리케이션에서 생성된 공유 데이터를 관리하는 공유 데이터의 집합을 의미한다.
보안 프레임워크(410)가 애플리케이션에 부여된 권한을 확인할 수 있도록, 보안 프레임워크 데이터베이스(412)가 구비된다. 보안 프레임워크(410)는 상기 보안 프레임워크 데이터베이스(412)를 이용하여 상기 공유 요청을 한 애플리케이션에 부여된 권한을 확인하게 된다.
도 6을 참조하면, 상기 보안 프레임워크 데이터베이스(412)는 상기 공유 데이터베이스를 이용할 수 있는 애플리케이션 목록을 저장하고 관리한다.
상기 애플리케이션 목록에 포함된 각 애플리케이션 항목은 특정 애플리케이션에 대응하는 애플리케이션 식별자, 및 상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션을 포함할 수 있다.
상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션은 새로운 공유 데이터의 생성, 그리고 기 저장된 공유 데이터에 대한 조회, 삭제 및 수정 중 적어도 하나를 포함할 수 있다. 애플리케이션마다 서로 다른 권한, 즉 요청할 수 있는 오퍼레이션이 개별적으로 부여되기 때문에, 각 애플리케이션이 요청할 수 있는 오퍼레이션은 애플리케이션마다 달라지게 된다.
예를 들어, 애플리케이션 1은 데이터 서비스 프로그램 1을 이용하여 조회, 생성, 수정, 삭제를 수행할 수 있지만, 애플리케이션 2는 데이터 서비스 프로그램 1을 이용하여 조회만 수행할 수 있다. 다른 예를 들어, 데이터 서비스 프로그램 2에 대하여 애플리케이션 1은 권한을 가지고 있지 않기 때문에, 애플리케이션 1의 공유 요청이 데이터 서비스 프로그램 2를 이용하는 경우, 해당 공유 요청은 차단되게 된다.
다시 도 5를 참조하면, 보안 프레임워크(410)는 공유 요청이 보안 프레임워크 데이터베이스에 등록되고 인가된 애플리케이션에 의한 요청인지를 확인하고, 인가된 오퍼레이션 요청인지를 확인한다. 인가되지 않은 애플리케이션에 의한 요청이거나, 인가되지 않은 오퍼레이션인 경우, 데이터 서비스 프로그램에 대한 접근이 거부된다.
다시 말해, 애플리케이션이 데이터 서비스 프로그램에 보내는 공유 요청은 보안 프레임워크(410)에 의하여 통제된다. 데이터 서비스 프로그램에 대한 공유 요청은 기본적으로 모두 차단되고, 등록되고 인가된 애플리케이션에서만 데이터 서비스 프로그램에 공유 요청을 보낼 수 있다. 보안 프레임워크(410)는 보안 프레임워크 데이터베이스(412)에 의해 등록되고 인가된 애플리케이션 여부와 요청할 수 있는 오퍼레이션을 확인하여 통제한다.
다음으로, 어느 프로그램이 공유 데이터에 대한 접근하는 경우, 상기 접근은 보안 커널(430)에 의하여 원천적으로 차단된다. 구체적으로, 보안 커널(430)은 관리자 권한을 부여받은 어느 프로그램으로부터 상기 공유 데이터베이스에 대한 접근이 발생하는 경우, 상기 어느 프로그램에 부여된 권한에 근거하여, 상기 접근을 차단하거나 허용한다.
구체적으로, 이동 단말기에는 상기 공유 데이터베이스를 이용할 수 있는 프로그램 목록을 저장하는 보안 커널 데이터베이스(432)가 구비되며, 상기 보안 커널(430)은 상기 보안 커널 데이터베이스를 이용하여 상기 공유 데이터베이스에 접근하는 프로그램에 부여된 권한을 확인한다.
도 7을 참조하면, 상기 보안 커널 데이터베이스(432)는 상기 공유 데이터베이스를 이용할 수 있는 프로그램 목록을 저장하고 관리한다.
상기 프로그램 목록에 포함된 각 프로그램 항목은 특정 프로그램에 대응하는 프로그램 식별자, 상기 특정 프로그램이 요청할 수 있는 공유 데이터의 종류 및 상기 특정 프로그램이 요청할 수 있는 오퍼레이션을 포함할 수 있다.
각 프로그램이 요청할 수 있는 오퍼레이션은 프로그램마다 다르게 설정될 수 있으며, 각 프로그램은 각 공유 데이터에 대하여 서로 다른 접근 권한을 가질 수 있다.
예를 들어, 공유 데이터 1에 대해서는 프로그램 1 및 프로그램 2만 권한을 가지고 있으나, 프로그램 1은 조회, 수정 또는 삭제를 할 수 있고, 프로그램 2는 조회/수정만 할 수 있다. 즉, 프로그램 2는 공유 데이터 2를 삭제할 수 없다. 다른 예를 들어, 공유 데이터 3에 대해서는 프로그램 3만 권한을 가지고 있고, 프로그램 3은 공유 데이터 2를 조회/수정만 할 수 있다.
공유 데이터마다 접근 권한이 다르게 설정될 수 있기 때문에, 공유 데이터를 보안 등급에 따라 다르게 관리할 수 있다.
프로그램들이 중요 공유 데이터에 접근하는 것을 통제한다. 모든 프로그램의 중요 공유 데이터에 대한 접근은 기본적으로 차단되고, 등록되고 인가된 프로그램만이 중요 공유 데이터에 접근할 수 있고 보안커널은 보안커널 통제 정책 DB에 의해 등록된 프로그램 여부와 접근할 수 있는 오퍼레이션을 확인하여 통제한다.
다시 도 5를 참조하면, 프로그램에 의한 공유 데이터베이스 접근이 발생하는 경우, 보안 커널(430)은 공유 요청이 보안 커널 데이터베이스에 등록되고 인가된 프로그램에 의한 요청인지를 확인하고, 인가된 오퍼레이션 요청인지를 확인한다. 인가되지 않은 프로그램에 의한 요청이거나, 인가되지 않은 오퍼레이션인 경우, 공유 데이터베이스에 대한 접근이 거부된다.
다시 말해, 적어도 하나의 프로그램에서 공유 데이터에 접근하는 것이 보안 커널(430)에 의하여 통제된다. 모든 프로그램의 공유 데이터에 대한 접근은 기본적으로 차단되고, 등록되고 인가된 프로그램만이 공유 데이터에 접근할 수 있다. 보안 커널(430)은 보안 커널 데이터베이스에 의해 등록된 프로그램인지 여부와 접근할 수 있는 오퍼레이션인지 여부를 확인하여 통제한다.
본 발명에 따르면, 이동 단말기에서 필수적으로 필요한 공유 데이터에 대한 접근 통제를 효율적으로 구현하기 때문에, 공유 데이터에 대한 보안성과 효율성을 높일 수 있다.
특히, 본 발명은 이동 단말기에 안드로이드 운영체제가 적용된 경우로서, 안드로이드의 프레임워크, 그 하단의 커널 그리고 고수준의 해킹 및 정보보호 기술에 대한 포괄적인 이해를 통하여 도출한 발명이다. 안드로이드 시스템만이 가지고 있는 특성(공유 데이터에 접근하려는 주체가 직접 접근할 수 있는 것이 아니라, 운영체제가 제공하는 데이터 서비스 프로그램이라는 고유의 프로세스를 이용해야 한다는 점)을 이해하고, 이러한 특성으로 인해서 발생할 수 있는 취약점(애플리케이션을 통한 해킹, 고수준의 루팅 공격 등을 통한 해킹)을 안드로이드 프레임워크 레벨과 커널 레벨에서 모두 방어할 수 있는 방법을 제시한다.
본 발명에 따른 이동 단말기를 군에서 활용하는 경우, 작전 정보 및 기밀 정보를 공유 데이터로 활용하면서도 접근에 대한 통제를 효율적으로 구현해낼 수 있다. 이에 따라, 공유 데이터의 보호 및 작전 운용과 관련된 병력을 최소화하는 장점이 있다.
한편, 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 이동 단말기를 포함할 수도 있다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (20)

  1. 서로 다른 애플리케이션에서 생성된 복수의 공유 데이터를 관리하도록 이루어지는 공유 데이터베이스;
    어느 애플리케이션으로부터 적어도 하나의 공유 데이터에 대한 공유 요청이 수신되는 경우, 상기 공유 요청된 공유 데이터를 상기 공유 데이터베이스를 이용하여 상기 어느 애플리케이션에 공유하도록 이루어지는 데이터 서비스 프로그램; 및
    상기 어느 애플리케이션으로부터 상기 공유 요청이 발생하는 경우, 상기 어느 애플리케이션에 부여된 권한에 근거하여, 상기 공유 요청을 차단하거나 상기 공유 요청을 상기 데이터 서비스 프로그램에 전달하도록 이루어지는 보안 프레임워크를 포함하며,
    상기 데이터 서비스 프로그램은 복수 개로 이루어지고,
    상기 어느 애플리케이션이 상기 공유 요청을 전송해야 할 데이터 서비스 프로그램은 상기 복수 개 중 어느 하나이며, 상기 어느 하나는 상기 공유 데이터의 종류에 따라 달라지며,
    상기 어느 애플리케이션의 권한이 각 데이터 서비스 프로그램마다 다르게 설정되는 경우, 상기 어느 애플리케이션의 권한에 따라 특정 종류의 공유 데이터가 상기 어느 애플리케이션에 공유되는 것이 차단되며,
    상기 공유 데이터의 종류는, 이미지, 비디오, 오디오, 일정, 연락처, 통화 기록, 메시지 중 적어도 하나를 포함하는 것을 특징으로 하는 이동 단말기.
  2. 제1항에 있어서,
    상기 공유 데이터베이스를 이용할 수 있는 애플리케이션 목록을 저장하는 보안 프레임워크 데이터베이스를 더 포함하고,
    상기 보안 프레임워크는 상기 보안 프레임워크 데이터베이스를 이용하여 상기 어느 애플리케이션에 부여된 권한을 확인하는 것을 특징으로 하는 이동 단말기.
  3. 제2항에 있어서,
    상기 애플리케이션 목록에 포함된 각 애플리케이션 항목은 특정 애플리케이션에 대응하는 애플리케이션 식별자, 및 상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션을 포함하는 것을 특징으로 하는 이동 단말기.
  4. 제3항에 있어서,
    상기 특정 애플리케이션이 요청할 수 있는 오퍼레이션은 새로운 공유 데이터의 생성, 그리고 기 저장된 공유 데이터에 대한 조회, 삭제 및 수정 중 적어도 하나를 포함하는 것을 특징으로 하는 이동 단말기.
  5. 제4항에 있어서,
    각 애플리케이션이 요청할 수 있는 오퍼레이션은 애플리케이션마다 다른 것을 특징으로 하는 이동 단말기.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    관리자 권한을 부여받은 어느 프로그램으로부터 상기 공유 데이터베이스에 대한 접근이 발생하는 경우, 상기 어느 프로그램에 부여된 권한에 근거하여, 상기 접근을 차단하거나 허용하도록 이루어지는 보안 커널을 더 포함하는 것을 특징으로 하는 이동 단말기.
  7. 제6항에 있어서,
    상기 공유 데이터베이스를 이용할 수 있는 프로그램 목록을 저장하는 보안 커널 데이터베이스를 더 포함하고,
    상기 보안 커널은 상기 보안 커널 데이터베이스를 이용하여 상기 어느 프로그램에 부여된 권한을 확인하는 것을 특징으로 하는 이동 단말기.
  8. 제7항에 있어서,
    상기 프로그램 목록에 포함된 각 프로그램 항목은 특정 프로그램에 대응하는 프로그램 식별자, 상기 특정 프로그램이 요청할 수 있는 공유 데이터의 종류 및 상기 특정 프로그램이 요청할 수 있는 오퍼레이션을 포함하는 것을 특징으로 하는 이동 단말기.
  9. 제8항에 있어서,
    각 프로그램이 요청할 수 있는 오퍼레이션은 프로그램마다 다른 것을 특징으로 하는 이동 단말기.
  10. 제8항에 있어서,
    각 프로그램은 각 공유 데이터에 대하여 서로 다른 접근 권한을 가지는 것을 특징으로 하는 이동 단말기.
  11. 제6항에 있어서,
    프레임워크 레벨 및 커널 레벨을 포함하는 운영체제에서, 상기 보안 프레임워크는 상기 프레임워크 레벨에 위치하고, 상기 보안 커널은 상기 커널 레벨에 위치하는 것을 특징으로 하는 이동 단말기.
  12. 제6항에 있어서,
    상기 보안 프레임워크 데이터베이스 및 상기 보안 커널 데이터베이스 중 적어도 하나에 대한 수정을 수행하도록 이루어지는 보안 관리 프로그램을 더 포함하는 것을 특징으로 하는 이동 단말기.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020160113422A 2016-09-02 2016-09-02 이동 단말기 및 그것의 제어방법 KR101731920B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160113422A KR101731920B1 (ko) 2016-09-02 2016-09-02 이동 단말기 및 그것의 제어방법
US15/424,177 US20180069859A1 (en) 2016-09-02 2017-02-03 Mobile terminal and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160113422A KR101731920B1 (ko) 2016-09-02 2016-09-02 이동 단말기 및 그것의 제어방법

Publications (1)

Publication Number Publication Date
KR101731920B1 true KR101731920B1 (ko) 2017-05-02

Family

ID=58742872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160113422A KR101731920B1 (ko) 2016-09-02 2016-09-02 이동 단말기 및 그것의 제어방법

Country Status (2)

Country Link
US (1) US20180069859A1 (ko)
KR (1) KR101731920B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078789A (zh) * 2019-11-25 2020-04-28 泰康保险集团股份有限公司 数据共享方法及装置、存储介质、电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990798B (zh) * 2019-12-02 2021-07-20 珠海格力电器股份有限公司 应用程序权限配置方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101580624B1 (ko) 2014-11-17 2015-12-28 국방과학연구소 벌점기반의 알려지지 않은 악성코드 탐지 및 대응 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838644B2 (en) * 2009-11-25 2014-09-16 International Business Machines Corporation Extensible access control list framework
US8646100B2 (en) * 2011-06-03 2014-02-04 Apple Inc. Method for executing an application in a restricted operating environment
US8844032B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
US8832847B2 (en) * 2012-07-10 2014-09-09 International Business Machines Corporation Coordinating data sharing among applications in mobile devices
US9117087B2 (en) * 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9916475B2 (en) * 2014-08-11 2018-03-13 North Carolina State University Programmable interface for extending security of application-based operating system
KR20160101826A (ko) * 2015-02-17 2016-08-26 삼성전자주식회사 멀티 유저 기반의 전자 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101580624B1 (ko) 2014-11-17 2015-12-28 국방과학연구소 벌점기반의 알려지지 않은 악성코드 탐지 및 대응 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078789A (zh) * 2019-11-25 2020-04-28 泰康保险集团股份有限公司 数据共享方法及装置、存储介质、电子设备
CN111078789B (zh) * 2019-11-25 2023-06-27 泰康保险集团股份有限公司 数据共享方法及装置、存储介质、电子设备

Also Published As

Publication number Publication date
US20180069859A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
EP3610403B1 (en) Isolated container event monitoring
US9147069B2 (en) System and method for protecting computer resources from unauthorized access using isolated environment
JP6397500B2 (ja) 仮想マシン・マネージャーによって支援される選択的コード完全性強制
US9680876B2 (en) Method and system for protecting data flow at a mobile device
US9087190B2 (en) Context-aware permission control of hybrid mobile applications
US8938811B2 (en) Information processing apparatus, method, program, and integrated circuit
KR101308351B1 (ko) 어플리케이션에 권한을 할당하는 단말기 및 상기 단말기의 권한 할당 방법
US20150082456A1 (en) Data exfiltration prevention from mobile platforms
US8843926B2 (en) Guest operating system using virtualized network communication
CN112805708B (zh) 保护计算机系统上的选定磁盘
US20070050369A1 (en) Accessing file under confinement
CN110383240B (zh) 用于容器化的安全计算资源的方法和装置
US10992713B2 (en) Method of and system for authorizing user to execute action in electronic service
Kern et al. Permission tracking in Android
CN114154144A (zh) 基于安全沙箱的应用安全加固系统
KR101731920B1 (ko) 이동 단말기 및 그것의 제어방법
KR101321479B1 (ko) 프로세스의 접근 제어를 이용한 응용 소프트웨어의 불법 복제 방지 방법 및 장치
EP3586234B1 (en) Methods and apparatus for controlling access to secure computing resources
US20090055840A1 (en) Access right checking system, access right checking method, and access right checking program
Rohrer et al. Android security analysis and protection in finance and healthcare
KR102090151B1 (ko) 데이터 보호 시스템 및 그 방법
KR20140127124A (ko) 시스템 자원에 대한 접근을 관리하는 전자 장치
CN117272287B (zh) 一种应用程序数据重定向方法及系统、存储介质
US11882123B2 (en) Kernel level application data protection
Sekar et al. Avoidance of security breach through selective permissions in android operating system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant