KR101751227B1 - 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법 - Google Patents

휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR101751227B1
KR101751227B1 KR1020110038415A KR20110038415A KR101751227B1 KR 101751227 B1 KR101751227 B1 KR 101751227B1 KR 1020110038415 A KR1020110038415 A KR 1020110038415A KR 20110038415 A KR20110038415 A KR 20110038415A KR 101751227 B1 KR101751227 B1 KR 101751227B1
Authority
KR
South Korea
Prior art keywords
application
application package
executable file
package
encrypted
Prior art date
Application number
KR1020110038415A
Other languages
English (en)
Other versions
KR20120120686A (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 KR1020110038415A priority Critical patent/KR101751227B1/ko
Priority to US13/452,776 priority patent/US9330253B2/en
Publication of KR20120120686A publication Critical patent/KR20120120686A/ko
Application granted granted Critical
Publication of KR101751227B1 publication Critical patent/KR101751227B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • 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
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Abstract

본 발명은 시스템 최고 권한을 비정상적으로 획득한 사용자로부터 어플리케이션 패키지의 보안성을 향상시키기 위한 장치 및 방법에 관한 것으로, 상기 어플리케이션 패키지의 실행 파일을 암호화하여 패키지하기 위한 장치 및 방법에 관한 것으로, 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치는 어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하여 컴파일 과정을 수행하고, 상기 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화한 후, 상기 암호화된 실행 파일을 포함한 컴파일된 데이터를 패키지화하는 어플리케이션 관리부를 포함하는 것을 특징으로 한다.

Description

휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING APPLICATION PACKAGE IN PORTABLE TERMINAL}
본 발명은 시스템 최고 권한을 비정상적으로 획득한 사용자로부터 어플리케이션 패키지의 보안성을 향상시키기 위한 장치 및 방법에 관한 것으로, 상기 어플리케이션 패키지의 실행 파일을 암호화하여 패키지하기 위한 장치 및 방법에 관한 것이다.
최근 휴대용 단말기는 휴대의 편리성 때문에 사용이 급격히 확산되고 있는 추세이다. 이에 따라서, 서비스 제공자(단말기 제조자)들은 많은 사용자를 확보하기 위해 더욱 편리한 기능을 갖는 단말기를 경쟁적으로 개발하고 있다.
예를 들어, 상기 휴대용 단말기는 이동통신 단말기, 스마트 폰, 멀티미디어 플레이어, 포터블 게임기 등을 포함하는 것으로, 이동통신 단말기의 경우, 폰북(phone book), 게임(game), 스케쥴러(Scheduler), 단문 메시지 서비스(short message Service), 멀티미디어 메시지 서비스(Multimedia message service), 방송메시지서비스(Cell broadcasting service), 인터넷 서비스(internet Service), 이메일(e-mail), 모닝콜(morning call), MP 3(MPEG Layer 3), 디지털 카메라(Digital camera) 등의 기능을 제공하고 있다.
뿐만 아니라, 최근에는 어플리케이션 패키지를 제작한 공급자에 의해 등록된 어플리케이션을 다운받아 휴대용 단말기에 설치할 수 있도록 한다.
상기와 같은 어플리케이션 패키지는 휴대용 단말기의 특정 폴더에 설치되며, 사용자의 실행 요청에 따라 해당 패키지는 실행되게 된다.
상기와 같은 어플리케이션 패키지의 설치 및 실행 권한은 특정 권한(설치 폴더에 접근 권한, 쓰기 권한, 실행 권한 등)을 가진 사용자에게만 주어진다. 즉, 상기 어플리케이션 패키지를 다운로드(유료, 무료 다운로드)한 계정에 해당하는 사용자만 접근할 수 있는 것이다.
하지만, 최근에는 일부 해커들이 휴대용 단말기의 시스템 권한을 획득하고자 하는 불법적인 행위가 발생하고 있다. 상기와 같은 불법적인 행위는 해커들이 시스템의 최고 권한인 root 권한을 획득하여 휴대용 단말기의 어플리케이션 패키지 원본을 불법적으로 사용하고자 하는 것이다.
이로 인하여 상기 휴대용 단말기의 제조사는 해커들에 의한 시스템 권한 획득을 방지하고자 하나 현실적으로 해커들의 기술을 막지 못하고 있다.
이로 인하여 어플리케이션 패키지를 제작하는 업체들이 프로그램 개발을 꺼려하게 되는 문제점이 발생하게 될 것이다.
상기와 같은 문제점을 해결하기 위하여 시스템 최고 권한을 비정상적으로 획득한 사용자에 의해 어플리케이션 패키지가 불법적으로 사용되는 것을 방지하기 위한 장치 및 방법이 요구된다.
본 발명은 상술한 바와 같은 문제점을 해결하기 위하여 도출된 것으로서, 본 발명의 목적은 휴대용 단말기에서 어플리케이션 패키지의 보안성을 향상시키기 위한 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 휴대용 단말기에서 어플리케이션 패키지의 실행 파일을 암호화하기 위한 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 휴대용 단말기에서 어플리케이션 패키지 실행시 실행 파일의 암호화를 해제하기 위한 장치 및 방법을 제공함에 있다.
상술한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치는 어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하여 컴파일 과정을 수행하고, 상기 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화한 후, 상기 암호화된 실행 파일을 포함한 컴파일된 데이터를 패키지화하는 어플리케이션 관리부를 포함하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 방법은 어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하는 과정과, 상기 수집한 데이터에 대한 컴파일 과정을 수행하는 과정과, 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화하는 과정과, 상기 암호화된 실행 파일을 포함한 컴파일된 데이터를 패키지화하는 과정을 포함하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 3 견지에 따르면, 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치는 어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하여 컴파일 과정을 수행하는 패키지 생성부와, 상기 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화하는 암호화부를 포함하되, 상기 패키지 생성부는 상기 암호화된 실행 파일을 포함한 컴파일된 데이터를 패키지화하는 과정을 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명은 시스템 최고 권한을 비정상적으로 획득한 사용자에 의해 어플리케이션 패키지가 불법적으로 사용되는 것을 방지하기 위한 것으로, 상기 어플리케이션 패키지 생성시 실행 파일을 암호화하고, 상기 암호화된 패키지의 실행 파일은 허가된 사용자만 접근할 수 있도록 하여 타인에 의한 불법적 사용을 방지할 수 있다.
도 1은 본 발명에 따라 어플리케이션 패키지를 처리하는 휴대용 단말기의 구성을 도시한 블록도,
도 2는 본 발명의 바람직한 일 실시 예에 따른 어플리케이션 관리부의 구성을 도시한 블록도,
도 3은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 어플리케이션 패키지를 생성하는 과정을 도시한 흐름도,
도 4는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 어플리케이션 패키지를 실행하는 과정을 도시한 흐름도 및,
도 5는 본 발명의 바람직한 다른 실시 예에 따른 휴대용 단말기에서 어플리케이션 패키지를 처리하는 과정을 도시한 도면.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하 설명에서는 본 발명에 따른 휴대용 단말기에서 어플리케이션 패키지의 실행 파일을 암호화하여 어플리케이션 패키지의 보안성을 향상시키기 위한 장치 및 방법에 대하여 설명할 것이다. 상기 휴대용 단말기는 상기 어플리케이션 패키지를 생성하거나 실행할 수 있는 디바이스로 데스크 탑, 노트북, 이동통신 단말기, 멀티미디어 재생기 등이 포함될 수 있다.
도 1은 본 발명에 따라 어플리케이션 패키지를 처리하는 휴대용 단말기의 구성을 도시한 블록도이다.
상기 도 1을 참조하면, 상기 휴대용 단말기는 제어부(100), 어플리케이션 관리부(102), 메모리부(104), 입력부(106), 표시부(108) 및 통신부(110)를 포함하여 구성할 수 있다.
상기 휴대용 단말기의 제어부(100)는 상기 휴대용 단말기의 전반적인 동작을 제어한다. 예를 들어, 음성통화 및 데이터 통신을 위한 처리 및 제어를 수행하고, 통상적인 기능에 더하여 본 발명에 따라 상기 제어부(100)는 시스템 최고 권한을 비정상적으로 획득한 사용자에 의해 어플리케이션 패키지가 불법적으로 사용되는 것을 방지하기 위하여 상기 어플리케이션 패키지 생성시 실행 파일을 암호화하고, 상기 암호화된 패키지의 실행 파일은 허가된 사용자만 접근할 수 있도록 처리한다. 즉, 상기 제어부(100)는 상기 실행 파일에 DRM 기술을 적용하여 암호화하여 타인에 의해 접근을 방지한다.
상기 어플리케이션 관리부(102)는 어플리케이션 패키지 구동을 위한 데이터인 소스 코드, 리소스, 에셋, 매니페스트 등을 수집하여 컴파일한 후, 상기 컴파일된 데이터를 하나의 파일로 패키징하여 어플리케이션 패키지를 생성한다. 더하여, 상기 어플리케이션 관리부(102)는 본 발명의 바람직한 일 실시 예에 따라 어플리케이션 패키지의 실행을 위한 코드 파일을 암호화한다. 이는 시스템의 최고 권한을 비정상적으로 획득한 사용자에 의한 어플리케이션 패키지 접근을 방지하고자 하는 것이다.
또한, 상기 어플리케이션 관리부(102)는 실행하고자 하는 어플리케이션 패키지에 포함된 코드 파일(어플리케이션 패키지의 실행을 위한 코드 파일)을 로딩한 후, 상기 로딩한 코드 파일의 암호화를 해제한다. 즉, 상기 어플리케이션 관리부(102)는 상기 로딩한 코드 파일이 암호화되어 있지 않은 경우, 상기 어플리케이션 패키지가 구동되도록 처리한다.
하지만, 상기 로딩한 코드 파일이 암호화되어 있는 경우, 허가된 사용자에 한해서 암호화를 해제한 후, 상기 암호화가 해제된 코드 파일로 상기 어플리케이션 패키지가 구동되도록 처리한다. 더하여, 상기 어플리케이션 관리부(102)는 하기 도 2에서 상세히 설명할 것이다.
상기 메모리부(104)는 롬(ROM; Read Only Memory), 램(RAM; Random Access Memory), 플래쉬롬(flash ROM)으로 구성된다. 상기 롬은 상기 제어부(100) 및, 어플리케이션 관리부(102)의 처리 및 제어를 위한 프로그램의 마이크로코드와 각종 참조 데이터를 저장한다.
상기 램은 상기 제어부(100)의 워킹 메모리(working memory)로, 각종 프로그램 수행 중에 발생하는 일시적인 데이터를 저장한다. 또한, 상기 플래쉬롬은 전화번호부(phone book), 발신메시지 및 수신메시지와 같은 갱신 가능한 각종 보관용 데이터를 저장한다. 더하여, 상기 메모리부(104)는 본 발명에 따라 어플리케이션 패키지의 실행에 허가된 사용자를 판단하는데 사용하는 인증 정보를 저장한다.
상기 입력부(106)는 0 ~ 9의 숫자키 버튼들과, 메뉴버튼(menu), 취소버튼(지움), 확인버튼, 통화버튼(TALK), 종료버튼(END), 인터넷접속 버튼, 네비게이션 키(또는 방향키) 버튼들 및 문자 입력 키 등 다수의 기능키들을 구비하며, 사용자가 누르는 키에 대응하는 키 입력 데이터를 상기 제어부(100)로 제공한다.
상기 표시부(108)는 상기 휴대용 단말기의 동작 중에 발생하는 상태 정보, 문자들, 다량의 동영상 및 정지영상 등을 디스플레이한다. 상기 표시부(108)는 컬러 액정 디스플레이 장치(LCD; Liquid Crystal Display)를 사용할 수 있으며 상기 표시부(108)는 터치 입력 장치를 구비하여 터치 입력 방식의 휴대용 단말기에 적용할 경우 입력 장치로 사용할 수 있다. 더하여, 상기 표시부(108)는 본 발명에 따라 암호화가 해제된 실행 파일로 구동되는 어플리케이션의 정보를 출력한다.
상기 통신부(110)는 안테나(미도시)를 통해 입출력되는 데이터의 무선신호를 송수신 처리하는 기능을 수행한다. 예를 들어, 송신인 경우, 송신할 데이터를 채널 코딩(Channel coding) 및 확산(Spreading)한 후, RF처리하여 송신하는 기능을 수행하고, 수신인 경우, 수신된 RF신호를 기저대역신호로 변환하고 상기 기저대역신호를 역 확산(De-spreading) 및 채널 복호(Channel decoding)하여 데이터를 복원하는 기능을 수행한다.
상기 어플리케이션 관리부(102)의 역할은 상기 휴대용 단말기의 제어부(100)에 의해 수행할 수 있으나, 본 발명에서 이를 별도로 구성하여 도시한 것은 설명의 편의를 위한 예시적인 구성이지 결코 본 발명의 범위를 제한하자는 것이 아니며, 당업자라면 본 발명의 범위 내에서 다양한 변형 구성이 가능하다는 것을 알 수 있을 것이다. 예를 들어, 이들 모두를 상기 제어부(100)에서 처리하도록 구성할 수도 있다.
도 2는 본 발명의 바람직한 일 실시 예에 따른 어플리케이션 관리부의 구성을 도시한 블록도이다.
상기 도 2를 참조하면, 상기 어플리케이션 관리부(200)는 패키지 생성부(202), 암호화부(204), 패키지 분석부(206) 및 어플리케이션 구동부(208)를 포함하여 구성할 수 있다.
먼저, 상기 패키지 생성부(202)는 다수의 사용자에게 제공할 어플리케이션을 제작하는 동작을 수행한다.
일반적으로, 상기 패키지 생성부(202)는 어플리케이션 패키지 구동을 위한 데이터인 소스 코드, 리소스, 에셋, 매니페스트 등을 수집하여 컴파일 과정을 수행한다. 이후, 상기 패키지 생성부(202)는 상기 컴파일된 데이터를 하나의 파일로 패키징함으로써 어플리케이션 패키지를 생성한다.
상기와 같이 생성된 어플리케이션 패키지는 시스템 최고 권한을 비정상적으로 획득한 사용자에 의해 다른 단말기로 이동되는 것과 같이 상기 어플리케이션 패키지가 불법적으로 유통되게 되는 문제점이 발생한다.
상기와 같은 문제점을 해결하기 위하여 본 발명에 따른 패키지 생성부(202)는 상기 어플리케이션 패키지의 생성시 실행 파일을 암호화하여 어플리케이션 패키지에 대한 접근을 제한한다.
즉, 상기 어플리케이션 관리부(200)의 패키지 생성부(202)는 컴파일된 데이터 가운데 실행 파일에 해당하는 코드 파일을 암호화부(204)로 제공하고, 상기 암호화부(204)는 상기 코드 파일을 암호화하여 다시 상기 패키지 생성부(202)로 제공하여 허가된 사용자만 상기 어플리케이션 패키지로 접근할 수 있도록 제한한다.
이후, 상기 패키지 생성부(202)는 암호화된 코드 파일과 컴파일된 데이터를 하나의 패키지로 생성한다.
이에 따라, 상기 패키지 파일은 허가되지 않은 사용자 다시 말해서 비정상적으로 시스템 최고 권한을 획득한 사용자에 의해 접근되는 것이 방지된다.
만일, 상기 암호화된 코드 파일이 포함된 어플리케이션 패키지의 실행 요청을 감지할 경우, 상기 패키지 분석부(206)는 상기 암호화된 코드 파일을 로딩하여 상기 암호화부(204)로 제공하여 코드 파일의 암호화가 해제되도록 한다.
이후, 상기 패키지 분석부(206)는 암호화가 해제된 코드 파일을 상기 어플리케이션 구동부(208)로 제공하여 상기 어플리케이션 패키지가 구동되도록 처리한다. 여기에서, 상기 어플리케이션 구동부(208)는 상기 어플리케이션 패키지를 실행할 수 있는 가상 머신을 말한다.
한편, 암호화되지 않은 코드 파일이 포함된 어플리케이션 패키지의 실행 요청을 감지할 경우, 상기 패키지 분석부(206)는 상기 암호화되지 않은 코드 파일을 로딩하여 상기 어플리케이션 구동부(208)로 제공하는 기존의 방식을 처리한다.
도 3은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 어플리 케이션 패키지를 생성하는 과정을 도시한 흐름도이다.
상기 도 3을 참조하면, 상기 휴대용 단말기는 먼저 301단계에서 어플리케이션 패키지를 생성하는지 확인한다. 여기에서, 상기 휴대용 단말기는 다수의 사용자에게 제공할 어플리케이션을 제작하는 과정을 수행할 것인지 확인하는 것이다.
이후, 상기 휴대용 단말기는 303단계로 진행하여 패키지 생성을 위한 데이터를 수집한다. 여기에서, 상기 패키지 생성을 위한 데이터는 어플리케이션 패키지 구동을 위한 데이터로, 소스 코드, 리소스, 에셋, 매니페스트 등이 포함될 수 있다. 또한, 상기 어플리케이션 패키지는 상기 데이터들이 컴파일 과정을 통해 하나의 파일로 패키징된 것을 말하는 것이다.
이후, 상기 휴대용 단말기는 305단계로 진행하여 상기 수집한 데이터들에 대한 컴파일 과정을 수행한 후, 307단계로 진행하여 상기 컴파일 과정을 통해 어플리케이션의 코드 파일을 생성한다. 여기에서, 상기 코드 파일은 상기 생성하고자 하는 어플리케이션 패키지의 실행을 위한 코드 파일을 말한다.
이후, 상기 휴대용 단말기는 309단계로 진행하여 상기 생성한 코드 파일을 암호화하는 과정을 수행한다. 여기에서, 상기 암호화 과정은 상기 생성하고자 하는 어플리케이션이 허가되지 않은 디바이스에서 실행되는 것을 방지하기 위한 것이다. 일반적으로 어플리케이션이 구동되는 시스템의 최고 권한인 root 권한이 해커에게 넘어가는 경우, 상기 어플리케이션 패키지 원본이 유출되어 다른 시스템에서도 상기 코드 파일로 어플리케이션 패키지를 실행시킬 수 있다. 상기와 같은 문제점을 해결하기 위하여 본 발명에서는 어플리케이션 패키지 실행을 위한 코드 파일을 암호화하여 허가된 시스템에서만 구동되도록 하는 것이다. 더하여, 상기 휴대용 단말기는 상기 코드 파일을 암호하는 과정에서 암호화된 코드 파일에 대한 접근을 허가하는 인증 정보를 생성할 수 있다.
이후, 상기 휴대용 단말기는 311단계로 진행하여 컴파일된 데이터들을 하나의 패키지로 생성하는 과정을 수행한 후, 본 알고리즘을 종료한다.
도 4는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 어플리케이션 패키지를 실행하는 과정을 도시한 흐름도이다.
상기 도 4를 참조하면, 상기 휴대용 단말기는 먼저 401단계에서 어플리케이션을 실행할 것인지 확인한다.
만일, 상기 401단계에서 어플리케이션을 실행하고자 함을 확인할 경우, 상기 휴대용 단말기는 403단계로 진행하여 실행하고자 하는 어플리케이션의 패키지를 선택한 후, 405단계로 진행하여 선택된 패키지의 코드 파일을 로딩한다. 여기에서, 상기 코드 파일은 상기 선택된 어플리케이션 패키지를 실행하도록 하는 파일을 말한다.
이후, 상기 휴대용 단말기는 407단계로 진행하여 상기 로딩한 코드 파일이 암호화된 파일인지 확인한다.
만일, 상기 407단계에서 암호화되지 않은 코드 파일이 로딩됨을 확인할 경우, 상기 휴대용 단말기는 419단계로 진행하여 코드 파일을 어플리케이션 구동부로 제공함으로써 상기 선택된 어플리케이션이 실행되도록 한다. 이는 종래의 어플리케이션 패키지 실행 과정과 동일하다.
한편, 상기 407단계에서 암호화된 코드 파일이 로딩됨을 확인할 경우, 상기 휴대용 단말기는 409단계로 진행하여 상기 로딩된 암호화된 코드 파일의 복호화를 위한 인증 정보를 획득한다. 이는 상기 암호화된 코드 파일을 허가된 사용자만 복호화할 수 있도록 하기 위하여 허가된 사용자인지를 구분하는 것이다.
이후, 상기 휴대용 단말기는 411단계로 진행하여 상기 획득한 인증 정보가 복호화에 허가된 인증 정보인지 확인한다.
만일, 상기 411단계에서 복호화에 허가되지 않은 인증 정보가 획득됨을 확인할 경우, 상기 휴대용 단말기는 421단계로 진행하여 어플리케이션 패키지의 실행을 제한한다.
한편, 상기 411단계에서 복호화에 허가된 인증 정보가 획득됨을 확인할 경우, 상기 휴대용 단말기는 413단계로 진행하여 상기 405단계에서 로딩한 암호화된 코드 파일을 복호화하는 과정을 수행한다.
이후, 상기 휴대용 단말기는 415단계로 진행하여 복호화된 코드 파일을 어플리케이션 구동부로 제공함으로써 상기 선택된 어플리케이션이 실행되도록 한다.
이후, 상기 휴대용 단말기는 본 알고리즘을 종료한다.
도 5는 본 발명의 바람직한 다른 실시 예에 따른 휴대용 단말기에서 어플리케이션 패키지를 처리하는 과정을 도시한 도면이다.
상기 도 5를 참조하면, 상기 휴대용 단말기는 안드로이드 운영 체제를 사용하고 있으며, 상기 안드로이드 운영 체제에서 구동되는 어플리케이션 패키지를 생성할 수 있다. 더하여, 상기 휴대용 단말기는 상기와 같이 안드로이드 운영 체제에서 구동되도록 생성된 어플리케이션 패키지를 실행할 수 있다.
먼저, 상기 휴대용 단말기에서 패키지 생성부(501)를 통해 어플리케이션 패키지를 생성하는 과정은 다음과 같다.
상기 패키지 생성부(501)는 어플리케이션 패키지의 구동을 위한 소스 코드, 리소스, 에셋, 매니페스트 등을 수집한 후, 상기 수집한 데이터에 대한 컴파일 과정을 수행한다.
이후, 상기 휴대용 단말기는 상기 어플리케이션 패키지의 실행을 위한 코드 파일을 암호화한다. 일 예로, 상기 패키지 생성부(501)는 컴파일된 데이터 가운데 안드로이드 패키지의 실행 파일인 classes.dex를 암호화부(507)로 제공(503)하여 암호화시킨다. 즉, 상기 암호화부(507)는 상기 패키지 생성부(501)로부터 제공받은 안드로이드 패키지의 실행 파일인 classes.dex을 암호화하여 classes.eny로 변환시킨 후, 상기 암호화된 실행 파일을 상기 패키지 생성부(501)로 제공(505)한다.
이로 인하여 상기 패키지 생성부(501)는 상기 암호화된 실행 파일과 컴파일된 데이터들을 하나의 패키지로 생성하여 다수의 사용자에게 어플리케이션 패키지를 제공한다.
다음으로, 상기 휴대용 단말기에서 패키지 분석부(508)를 통해 암호화된 실행 파일이 포함된 어플리케이션 패키지를 실행하는 과정은 다음과 같다.
상기 휴대용 단말기는 어플리케이션 패키지를 실행하고자 하는 사용자의 입력을 감지할 경우, 상기 패키지 분석부(508)로 하여금 상기 실행하고자 하는 어플리케이션 패키지의 실행 파일이 암호화되어 있는지 확인한다.
이때, 상기 패키지 분석부(508)는 상기 어플리케이션 패키지에 포함된 실행 파일을 로딩한 후, 로딩된 실행 파일의 확장자가 eny인지 또는 .dex인지를 확인하여 암호화 여부를 파악할 수 있는 것으로, 상기 확장자가 eny인 실행 파일을 로딩한 경우, 상기 패키지 분석부(508)는 로딩된 실행 파일이 암호화되어 있다고 판단할 수 있다.
만일, 암호화되지 않은 실행 파일이 포함된 어플리케이션 패키지의 실행 요청을 감지할 경우, 상기 패키지 분석부(508)는 상기 로딩한 실행 파일(classes.dex)을 어플리케이션 구동부(515)로 제공(520)하고, 상기 어플리케이션 구동부(515)는 상기 어플리케이션을 구동시킬 수 있는 가상 머신으로 상기 제공받은 실행 파일을 실행시킨다.
한편, 암호화된 실행 파일이 포함된 어플리케이션 패키지의 실행 요청을 감지할 경우, 상기 패키지 분석부(508)는 암호화된 실행 파일(classes.eny)을 상기 암호화부(507)로 제공(509)한다. 상기 실행 파일을 제공받은 암호화부(507)는 상기 암호화된 실행 파일을 복호화하여 암호화가 해제된 실행 파일(classes.dex)로 변환한다. 이때, 상기 암호화부(507)는 실행 파일 복호화에 허가된 사용자의 인증 정보가 확인되는 경우에만 복호화 과정을 수행할 수 있다.
상기와 같이 암호화가 해제된 실행 파일로 변환한 암호화부(507)는 상기 암호화가 해제된 실행 파일을 상기 어플리케이션 구동부(515)로 제공한다. 이때, 상기 암호화부(507)는 상기 암호화가 해제된 실행 파일을 상기 패키지 분석부(509)를 통해 상기 어플리케이션 구동부(515)로 제공(510), (513)할 수도 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
200: 어플리케이션 관리부 202: 패키지 생성부 204: 암호화부
206: 패키지 분석부 208: 어플리케이션 구동부

Claims (15)

  1. 휴대용 단말기에 있어서,
    암호화된 실행 파일을 포함하는 적어도 하나의 암호화 어플리케이션 패키지 또는 암호화되지 않은 실행 파일을 포함하는 적어도 하나의 비암호화 어플리케이션 패키지 가운데 적어도 하나를 저장하는 메모리; 및
    상기 메모리에 저장된 어플리케이션을 선택하는 입력을 감지하는 것에 대응하여, 상기 선택된 어플리케이션 패키지의 실행 파일의 파일 확장자를 이용하여 암호화 어플리케이션 패키지가 선택되었는지 여부를 판단하도록 구성된 제어부를 포함하며,
    상기 제어부는,
    상기 비암호화 어플리케이션 패키지가 선택되면, 상기 선택된 어플리케이션에 포함된 실행 파일을 이용하여 상기 선택된 어플리케이션을 실행하고,
    상기 암호화 어플리케이션 패키지가 선택되면, 상기 선택된 어플리케이션에 포함된 실행 파일에 대하여 암호화를 해제하고 상기 암호화가 해제된 실행 파일을 이용하여 상기 선택된 어플리케이션을 실행하도록 구성된 휴대용 단말기.
  2. 제 1항에 있어서,
    상기 암호화된 실행 파일은,
    상기 어플리케이션 패키지 생성시 필요한 소스 코드, 리소스, 에셋, 매니페스트 가운데 적어도 하나를 포함하는 휴대용 단말기.
  3. 제 1항에 있어서,
    상기 제어부는,
    인증 정보를 이용하여 상기 선택된 어플리케이션에 포함된 암호화된 실행 파일에 대하여 암호화를 해제하도록 구성된 휴대용 단말기
  4. 제 1항에 있어서,
    상기 제어부는,
    어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하여 컴파일 과정을 수행하고, 상기 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화하고, 상기 암호화된 실행 파일의 파일 확장자를 변경하고, 상기 암호화된 실행 파일을 포함하는 어플리케이션 패키지를 생성하도록 구성된 휴대용 단말기.
  5. 제 4항에 있어서,
    상기 제어부는,
    상기 암호화된 실행 파일에 접근을 허용하는 인증 정보를 생성하도록 구성된 휴대용 단말기.
  6. 제 3항에 있어서,
    상기 제어부는,
    상기 인증 정보가 상기 어플리케이션 패키지에 접근이 불가능한 정보일 경우, 상기 어플리케이션 패키지의 실행을 제한하도록 구성된 휴대용 단말기.
  7. 휴대용 단말기의 동작 방법에 있어서,
    암호화된 실행 파일을 포함하는 적어도 하나의 암호화 어플리케이션 패키지 또는 암호화되지 않은 실행 파일을 포함하는 적어도 하나의 비암호화 어플리케이션 패키지 가운데 적어도 하나를 저장하는 동작;
    상기 저장된 어플리케이션을 선택하는 입력을 감지하는 것에 대응하여, 상기 선택된 어플리케이션 패키지의 실행 파일의 파일 확장자를 이용하여 암호화 어플리케이션 패키지가 선택되었는지 여부를 판단하는 동작;
    상기 비암호화 어플리케이션 패키지가 선택되면, 상기 선택된 어플리케이션에 포함된 실행 파일을 이용하여 상기 선택된 어플리케이션을 실행하는 동작; 및
    상기 암호화 어플리케이션 패키지가 선택되면, 상기 선택된 어플리케이션에 포함된 실행 파일에 대하여 암호화를 해제하고 상기 암호화가 해제된 실행 파일을 이용하여 상기 선택된 어플리케이션을 실행하는 동작을 포함하는 방법.
  8. 제 7항에 있어서,
    상기 암호화된 실행 파일은,
    상기 어플리케이션 패키지 생성시 필요한 소스 코드, 리소스, 에셋, 매니페스트 가운데 적어도 하나를 포함하는 방법.
  9. 제 7항에 있어서,
    상기 선택된 어플리케이션에 포함된 실행 파일에 대하여 암호화를 해제하는 동작은, 인증 정보를 이용하여 상기 선택된 어플리케이션에 포함된 암호화된 실행 파일에 대하여 암호화를 해제하는 동작을 포함하는 방법.
  10. 제 7항에 있어서,
    어플리케이션 패키지 생성시 패키지 생성을 위한 데이터를 수집하여 컴파일 과정을 수행하고, 상기 컴파일된 데이터 가운데 상기 어플리케이션 패키지의 실행 파일을 암호화하고, 상기 암호화된 실행 파일의 파일 확장자를 변경하고, 상기 암호화된 실행 파일을 포함하는 어플리케이션 패키지를 생성하는 동작을 포함하는 방법.
  11. 제 10항에 있어서,
    상기 암호화된 실행 파일에 접근을 허용하는 인증 정보를 생성하는 동작을 포함하는 방법.
  12. 제 9항에 있어서,
    상기 인증 정보가 상기 어플리케이션 패키지에 접근이 불가능한 정보일 경우, 상기 어플리케이션 패키지의 실행을 제한하는 동작을 포함하는 방법.

  13. 삭제
  14. 삭제
  15. 삭제
KR1020110038415A 2011-04-25 2011-04-25 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법 KR101751227B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110038415A KR101751227B1 (ko) 2011-04-25 2011-04-25 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법
US13/452,776 US9330253B2 (en) 2011-04-25 2012-04-20 Apparatus and method for processing application package in portable terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110038415A KR101751227B1 (ko) 2011-04-25 2011-04-25 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120120686A KR20120120686A (ko) 2012-11-02
KR101751227B1 true KR101751227B1 (ko) 2017-06-29

Family

ID=47022191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110038415A KR101751227B1 (ko) 2011-04-25 2011-04-25 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US9330253B2 (ko)
KR (1) KR101751227B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102385342B1 (ko) * 2020-12-24 2022-04-08 정한영 시간 동기화 암호체계

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101944010B1 (ko) * 2012-02-24 2019-01-30 삼성전자 주식회사 애플리케이션의 변조 감지 방법 및 장치
KR101284676B1 (ko) * 2012-02-28 2013-08-23 건국대학교 산학협력단 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
KR101415786B1 (ko) * 2013-01-18 2014-08-06 건국대학교 산학협력단 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법
KR101661817B1 (ko) * 2014-05-21 2016-09-30 단국대학교 산학협력단 서버 및 휴대용 단말의 에플리케이션 보호방법 및 장치
FR3022661B1 (fr) * 2014-06-20 2016-06-24 Bull Sas Procede et dispositif de codage de fichiers sources pour la livraison securisee de code source
US9740856B2 (en) * 2015-05-13 2017-08-22 SEWORKS, Inc. Apparatus and method for managing gaming engine file in a mobile platform
JP7131946B2 (ja) 2017-04-20 2022-09-06 Line株式会社 アプリケーションの保安性を評価する方法およびシステム
WO2018194196A1 (ko) * 2017-04-20 2018-10-25 라인 가부시키가이샤 Elf 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템
WO2018199366A1 (ko) * 2017-04-28 2018-11-01 라인 가부시키가이샤 덱스 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템
US10915609B2 (en) * 2017-08-01 2021-02-09 Lakeba Technology Pty Ltd Securing applications on mobile devices
KR101920597B1 (ko) * 2017-11-16 2018-11-21 숭실대학교산학협력단 동적 코드 추출 기반 자동 분석 방지 우회 및 코드 로직 해석 장치
CN109214184B (zh) * 2018-07-20 2021-08-20 北京大学 一种Android加固应用程序通用自动化脱壳方法和装置
KR102393412B1 (ko) * 2020-03-04 2022-05-02 김경철 번역 문서의 공유 플랫폼 운용 방법
US11886589B2 (en) * 2020-11-26 2024-01-30 Foundation Of Soongsil University-Industry Cooperation Process wrapping method for evading anti-analysis of native codes, recording medium and device for performing the method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278716A1 (en) * 2004-06-14 2005-12-15 Nokia Corporation Digital rights management (DRM) license manager

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020092003A1 (en) * 2000-11-29 2002-07-11 Brad Calder Method and process for the rewriting of binaries to intercept system calls in a secure execution environment
KR20060015797A (ko) 2004-08-16 2006-02-21 주식회사 코어트러스트 피디에이용 무선 콘텐츠의 디지털 저작권 관리 시스템
US7685596B1 (en) * 2004-09-01 2010-03-23 The Mathworks, Inc. Deploying and distributing of applications and software components
US20110179268A1 (en) * 2010-01-20 2011-07-21 Microsoft Corporation Protecting applications with key and usage policy

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278716A1 (en) * 2004-06-14 2005-12-15 Nokia Corporation Digital rights management (DRM) license manager

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102385342B1 (ko) * 2020-12-24 2022-04-08 정한영 시간 동기화 암호체계

Also Published As

Publication number Publication date
KR20120120686A (ko) 2012-11-02
US9330253B2 (en) 2016-05-03
US20120272072A1 (en) 2012-10-25

Similar Documents

Publication Publication Date Title
KR101751227B1 (ko) 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법
EP3387813B1 (en) Mobile device having trusted execution environment
US8892876B1 (en) Secured application package files for mobile computing devices
US8381307B2 (en) Method for protecting a converted applet (CAP) file including encrypting the CAP file
KR101881303B1 (ko) 애플리케이션 데이터 보호를 위한 휴대용 단말기의 장치 및 방법
Li et al. Android malware forensics: Reconstruction of malicious events
CN106372497B (zh) 一种应用编程接口api保护方法和保护装置
CN104298932A (zh) 一种so文件的调用方法及装置
CN107870793B (zh) 一种应用程序中加载so文件的方法及装置
US20150358321A1 (en) Storage device, information processing apparatus, and information processing method
KR101734663B1 (ko) 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치
JP5575950B2 (ja) 無線端末装置およびシステム保護方法
CN104751028A (zh) 应用程序加密、解密的方法及装置
CN113032753A (zh) 身份验证的方法及装置
CN115964681A (zh) 目标应用程序的证书文件的生成方法
JP2008257715A (ja) 無線端末装置およびシステム保護方法
KR101532763B1 (ko) 어플리케이션 불법복제 방지 시스템 및 방법
CN110457959B (zh) 一种基于Trust应用的信息传输方法及装置
US20160275271A1 (en) User Terminal And Method For Protecting Core Codes Using Peripheral Device of User Terminal
US20160239669A1 (en) User Terminal And Method For Protecting Core Codes Of Applications Using The Same
KR101552557B1 (ko) 휴대 단말기용 어플리케이션의 디컴파일 방지 서비스를 제공하는 관리서버 및 그 방지방법
CN115129361B (zh) 一种Java应用程序的安全加固方法及系统
US20050229259A1 (en) Device for protecting against unauthorized use of software
KR102326100B1 (ko) 안전한 안드로이드 앱 생성 및 안드로이드 플랫폼에서의 앱 설치/실행을 위한 시스템 및 방법
KR101271479B1 (ko) 모바일 콘텐츠 보호를 위한 탈착형 메모리를 이용한 보안 시스템 및 그 제어방법

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