KR20130053179A - 단말기의 어플리케이션 실행 시스템 및 방법 - Google Patents

단말기의 어플리케이션 실행 시스템 및 방법 Download PDF

Info

Publication number
KR20130053179A
KR20130053179A KR1020110118792A KR20110118792A KR20130053179A KR 20130053179 A KR20130053179 A KR 20130053179A KR 1020110118792 A KR1020110118792 A KR 1020110118792A KR 20110118792 A KR20110118792 A KR 20110118792A KR 20130053179 A KR20130053179 A KR 20130053179A
Authority
KR
South Korea
Prior art keywords
application
application package
subsystem
package
checker
Prior art date
Application number
KR1020110118792A
Other languages
English (en)
Other versions
KR101880912B1 (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 KR1020110118792A priority Critical patent/KR101880912B1/ko
Priority to US13/661,383 priority patent/US8874927B2/en
Publication of KR20130053179A publication Critical patent/KR20130053179A/ko
Application granted granted Critical
Publication of KR101880912B1 publication Critical patent/KR101880912B1/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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

어플리케이션 생성기가, 다수의 바이너리 코드들과 콘텐트 파일들로 구성되는 어플리케이션 패키지를 생성하며, 인에이블러가 어플리케이션 패키지의 메인 바이너리의 정보를 암호화하여 첵섬 파일을 생성한 후, 어플리케이션 패키지에 추가하는 어플리케이션을 생성한다. 그리고 단말기가 어플리케이션 패키지를 저장하며, 어플리케이션 패키지 실행 요구시 어플리케이션 패키지의 유효성을 검증하여 어플리케이션을 실행한다. 이때 단말기는 어플리케이션 실행 요구시 요청된 서브시스템의 오픈함수를 호출하고, 서브시스템이 오픈함수에 추가된 상기 체커를 구동하여 어플리케이션 패키지의 메인 바이너리를 암호화하며, 암호화한 값과 어플리케이션 패키지의 첵섬파일을 비교하여 일치하면 어플리케이션에서 사용 요청한 서브시스템을 사용하도록 제어한다. 여기서 인에이블러 및 체커의 암호키는 동일한 암호키를 사용한다.

Description

단말기의 어플리케이션 실행 시스템 및 방법{SYSTEM AND METHOD FOR EXECUTING AN APPLICATION OF TERMINAL}
본 발명은 휴대단말기의 어플리케이션 실행 시스템 및 방법에 관한 것으로, 특히 어플리케이션 패키지를 이용하는 단말기에서 어플리케이션 패키지에 보안을 확인하여 어플리케이션을 실행할 수 있는 시스템 및 방법에 관한 것이다.
일반적으로 단말기의 어플리케이션의 경우, 실행바이너리(windows의 경우 exe/dll, 안드로이드의 경우 bin)의 마지막에 인증(certification)에 대한 정보를 삽입하고, 해당 어플리케이션을 실행할 때 OS시스템에서 이를 확인하여 신뢰여부를 결정한다. 그러나 상기와 같은 방법은 windows 시스템 같은 경우 Certification은 한가지만 적용할 수 있을 뿐더러, 이 Certification을 OEM이나 3rd party에서 제어할 수 없는 문제가 있었다. 이런 경우, OEM이나 3rd party에서 추가적인 기능을 제공하는 driver나 service 모듈에 대한 접근 제한을 두고 싶어도 이에 대한 해결방법이 없었다.
본 발명은 어플리케이션 패키지 생성시 어플리케이션 패키지에 첵섬(checksum) 파일을 포함시키고, 단말기에서 상기 어플리케이션 실행시 상기 패키지에 포함된 첵섬 파일을 확인하여 어플리케이션을 실행하는 방법을 제안한다. 이런 경우 OEM 및 3rd party에서 플랫폼에 추가한 어플리케이션을 단말기의 서브시스템에서 원활한 제어할 수 있게 된다.
본 발명의 실시예에 따른 단말기의 어플리케이션 실행 시스템은, 인에이블러를 구비하며, 다수의 바이너리 코드들과 콘텐트 파일들로 구성되는 어플리케이션 패키지를 생성하며, 상기 인에이블러가 상기 어플리케이션 패키지의 메인 바이너리의 정보를 암호화하여 첵섬 파일을 생성하여 상기 어플리케이션 패키지에 추가하는 어플리케이션 생성기와, 상기 어플리케이션 패키지를 저장하며, 상기 어플리케이션 패키지 실행 요구시 상기 어플리케이션 패키지의 유효성을 검증하여 어플리케이션을 실행하는 단말기로 구성되며, 상기 단말기는 어플리케이션 실행 요구시 요청된 서브시스템의 오픈함수를 호출하며, 권한확인 결과에 따라 상기 어플리케이션에서 사용 요청한 서브시스템의 사용 여부를 제어하는 운영 시스템과, 체커를 구비하며, 상기 오픈함수 호출시 오픈함수에 추가된 상기 체커를 구동하여 상기 어플리케이션 패키지의 메인 바이너리를 암호화하며, 상기 암호화한 값과 상기 어플리케이션 패키지의 첵섬 파일을 비교하여 일치하면 상기 운영시스템에 성공의 권한확인결과를 상기 운영시스템에 통보하는 서브시스템으로 구성되며, 상기 인에이블러 및 체커는 동일한 암호키를 사용하는 것을 특징으로 한다.
그리고 본 발명의 실시예에 따른 어플리케이션 실행 방법은, 다수의 바이너리 코드들과 콘텐트 파일들로 구성되는 어플리케이션 패키지를 생성하며, 인에이블러가 상기 어플리케이션 패키지의 메인 바이너리의 정보를 암호화하여 첵섬 파일을 생성하여 상기 어플리케이션 패키지에 추가하는 어플리케이션 생성과정과, 상기 어플리케이션 패키지를 저장하며, 상기 어플리케이션 패키지 실행 요구시 상기 어플리케이션 패키지의 유효성을 검증하여 어플리케이션을 실행하는 과정으로 이루어지며, 상기 어플리케이션을 실행하는 과정은, 어플리케이션 실행 요구시 운영시스템이 요청된 서브시스템의 오픈함수를 호출하는 과정과, 상기 오픈함수 호출시 상기 서브시스템이 오픈함수에 추가된 상기 체커를 구동하여 상기 어플리케이션 패키지의 메인 바이너리를 암호화하며, 상기 암호화한 값과 상기 어플리케이션 패키지의 첵섬 파일을 비교하여 일치하면 상기 운영시스템에 권한확인결과를 상기 운영시스템에 통보하는 과정과, 상기 운영시스템이 상기 권한확인 결과가 성공이면 따라 상기 어플리케이션에서 사용 요청한 서브시스템의 사용이 가능하도록 제어하는 과정으로 이루어지며, 상기 인에이블러 및 체커의 암호키는 동일한 암호키를 사용하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, OEM이나 3rd party에서 어플리케이션 패키지에 추가적인 첵섬 파일을 추가하고, 상기 어플리케이션 패키지 실행시 단말기가 상기 OEM/3rd party에서 정의한 서브시스템에 접근하여 해당 어플리케이션의 정보를 확인한 후, 해당 패키지의 유효성을 검증한 후, 유효성이 검증되면 어플리케이션이 해당 서브시스템을 사용할 수 있도록 한다. 따라서 상기 OEM이나 3rd party에서 단말기에 추가 기능을 제공할 수 있는 어플리케이션을 생성할 수 있으며, 이 어플리케이션이 드라이버나 서비스 모듈에 대한 접근 권한을 가질 수 있도록 할 수 있다. 이로인해 본 발명의 실시예에 따른 어플리케이션 실행방법은 OEM 및 3rd party가 추가하는 서브시스템의 보안 및 권한 관리기능 강화할 수 있는 이점이 있다.
도 1은 본 발명의 실시예에 따른 어플리케이션 생성기 및 패키지의 구조를 도시하는 도면
도 2는 본 발명의 실시예에 따른 단말기에서 어플리케이션 패키지를 실행하는 구조를 도시하는 도면
도 3은 본 발명의 실시예에 따른 단말기의 구조를 도시하는 도면
도 4는 본 발명의 실시예에 따른 단말기에서 어플리케이션의 실행 절차를 제어하는 흐름도
이하, 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다.
또한, 하기 설명에서는 어플리케이션 등과 같은 구체적인 특정 사항들이 나타내고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 상세한 설명을 생략한다.
휴대단말기의 경우 프로그램 업데이트 및 기능 추가 등이 빈번하게 이루어지게 된다. 이런 경우 갱신되는 어플리케이션을 휴대단말기에 탑재하여야 하며, 휴대단말기는 탑재되는 어플리케이션을 이용하여 휴대단말기의 기능을 수행하게 된다. 본 발명의 실시예는 어플리케이션이 바이너리타입(exe나 실행바이너리)이 아닌 패키지(xap,jar 주로 sandbox나 중간언어를 사용하는 java/.net 모델)에 추가적인 첵섬 파일을 추가하고, 단말기에서 해당 어플리케이션을 실행할 때 첵섬 파일을 확인하여 시스템 자원에 대한 권한을 제어할 수 있는 방법을 제안한다.
먼저 본 발명의 실시예에 따른 어플리케이션 패키지의 생성 방법을 살펴본다. 단말기 제조사, OEM 및/또는 3rd party(이하 어플리케이션 생성기라 칭한다)는 단말기에서 사용할 어플리케이션을 생성할 때, 어플리케이션을 실행하기 위한 바이너리코드를 파일단위로 생성한다. 그리고 상기 어플리케이션 생성기는 생성된 파일들과 콘텐츠를 어플리케이션 패키지로 생성한다. 이때 상기 어플리케이션 패키지 생성시, 어플리케이션 생성기의 인에이블러(enabler)는 어플리케이션의 메인 바이너리(예를들면 어플리케이션 실행파일)를 이용하여 첵섬 파일을 생성하며, 이를 어플리케이션 패키지에 포함시킨다. 여기서 상기 첵섬 파일은 메인 바이너리의 이름, 파일크기, 프로그램 ID 등을 암호화한 값으로써, 암호키는 해쉬 함수를 이용할 수 있다.
두 번째로 본 발명의 실시예에 따른 어플리케이션 실행 방법을 살펴본다. 단말기는 상기와 생성된 어플리케이션 패키지를 다운로드 등에 의해 단말기의 메모리에 저장하고 이를 실행시킬 수 있다. 이때 상기 단말기는 어플리케이션 실행시 해당 어플리케이션의 바이너리 코드를 체커(checker)를 통해 암호화하고, 상기 암호화된 값을 상기 어플리케이션 패키지에 포함된 첵섬 파일과 비교하며, 비교결과 동일한 값을 가지면 해당 어플리케이션을 실행한다.
따라서 제3자(단말기 제조사, OEM 및/또는 3rd party)가 생성한 어플리케이션을 단말기에서 수신하여 실행시킬 수 있게 된다. 즉, OEM 및 3rd party에서 플랫폼에 추가한 어플리케이션을 단말기의 서브시스템에서 원활한 제어할 수 있게 된다. 여기서 상기 서브시스템은 단말기의 드라이버(driver) 및 서비스(service)가 될 수 있다. 상기 드라이버는 카메라 구동부 및 표시구동부 등이 될 수 있고, 서비스는 GPS를 이용하는 위치조회 서비스 등이 될 수 있다.
여기서 상기 첵섬 파일(checksum file)은 어플리케이션 패키지에 해당 어플리케이션 패키지의 실행 모듈의 프로파일을 확인해서 그 값을 이용한 첵섬 값이 저장된 파일을 의미한다. 그리고 상기 인에이블러(Enabler)는 어플리케이션 패키지에 포함된 첵섬을 생성하고, 이를 패키지에 포함시키는 프로그램이다. 또한 상기 체커(checker)는 단말기의 서브시스템에서 서브시스템을 이용하는 어플리케이션 패키지에 첵섬 파일이 포함되어 있는지 확인하고, 포함되어 있는 경우 첵섬 파일의 값이 정확한지 확인하는 모듈이다.
따라서 본 발명의 실시예에 따른 단말기는 어플리케이션 패키지가 실행되면, 상기 OEM/3rd party가 정의한 서브시스템에 접근한다. 이후 상기 접근시 서브시스템은 해당 어플리케이션의 정보를 확인한 뒤 해당 패키지의 유효성을 검증하고, 유효성이 검증되면(즉, 어플리케이션 패키지에 포함된 첵섬 파일과 일치하면), 단말기는 해당 어플리케이션에서 서브시스템 사용을 허가한다.
도 1은 본 발명의 실시예에 따른 어플리케이션 패키지 생성기의 구조를 도시하는 도면이다.
상기 도 1을 참조하면, 어플리케이션 패키지의 구조는 다수의 바이너리 코드110-11N 및 해당 어플리케이션을 실행하는데 필요한 이미지 등으로 이루어진 컨텐트 파일(content file)120 등으로 구성된다. 이때 상기 어플리케이션 패키지 생성기100은 인에이블러(enabler)140을 구비하며, 상기 인에이블러140은 어플리케이션 패키지에 포함된 메인 바이너리를 이용하여 첵섬 파일130을 생성하고, 이를 어플리케이션 패키지에 포함시킨다. 상기 인에이블러140은 메인 바이너리의 이름, 파일크기 및 ID 등을 암호화하여 첵섬 파일을 생성하며, 이때 암호키는 단말기의 체커에서 사용하는 암호키와 동일한 암호키를 사용한다.
상기 첵섬 파일을 포함하는 상기 도 1과 같은 어플리케이션 패키지가 생성되면, 단말기의 사용자는 이를 다운로드 등을 통해 단말기의 메모리에 저장할 수 있다.
도 2는 본 발명의 실시예에 따른 단말기에서 어플리케이션 패키지를 실행하는 구조를 도시하는 도면이다.
상기 도 2를 참조하면, 사용자가 어플리케이션210을 실행하면, 운영시스템(operating system)200은 상기 어플리케이션210을 실행하기 위한 서브시스템220을 호출한다. 이때 상기 서브시스템220은 오픈(open) 함수를 호출한다. 상기 서브시스템220은 어플리케이션 실행의 오픈(open) 함수, 어플리케이션의 실행을 종료하는 클로즈(close) 함수, 어플리케이션의 기능을 실행하는 리드(read) 함수 및 라이트(write) 함수 등을 구비한다. 본 발명의 실시예에서는 상기 오픈 함수에 해당 어플리케이션을 실행 여부를 검증하기 위한 검사모듈인 체커(checker)225를 추가한다. 이때 상기 체커225는 상기 어플리케이션210의 메인 바이너리를 탐색하고, 상기 탐색된 메인 바이너리의 이름, 파일크기, ID등을 암호화하여 첵섬 파일을 생성한다. 이때 상기 체커225의 암호키는 상기 도 1의 어플리케이션 생성기100의 인에이블러 140과 동일한 암호키를 사용한다.
이후 상기 서브시스템220은 상기 체커225의 출력과 상기 어플리케이션 패키지의 첵섬 파일을 비교하여 그 결과를 운영시스템200에 알려준다. 그러면 상기 운영시스템200은 두 값이 일치하는 경우에 상기 어플리케이션210은 서브시스템220에서 사용할 수 있도록 제어하며, 두 값이 일치하지 않으면 상기 어플리케이션210이 서브시스템220을 사용하지 못하도록 제어한다. 여기서 상기 서브시스템220은 상기한 바와 같이 어플리케이션210을 실행하기 위한 드라이버 또는 서비스 모듈이 될 수 있다.
도 3은 본 발명의 실시예에 따른 단말기의 구조를 도시하는 도면이다.
상기 도 3을 참조하면, 사용자가 특정 어플리케이션을 실행을 요구하면, 운영시스템은 어플리케이션210의 메인 바이너리를 구동시킨다. 그러면 어플리케이션210은 운영시스템200에 서브시스템220의 사용을 요청하며, 운영시스템200은 이에 따라 서브시스템의 오픈함수를 호출한다. 이때 상기 오픈함수는 체커225를 포함하고 있으며, 이로인해 체커225가 구동되어 어플리케이션210의 메인 바이너리를 확인하고, 메인 바이너리의 정보(이름, 파일크기, ID 등)를 암호화한다. 이때 상기 어플리케이션 패키지의 메인 바이너리는 어플리케이션 패키지의 이름과 동일한 이름을 가지는 실행파일로 결정할 수 있으며, 또한 상기 어플리케이션 패키지 내에 포함된 정보에 메인 바이너리 이름을 포함시킬 수도 있다.
그러면 상기 체커225는 서브시스템에서 서브시스템을 이용하는 어플리케이션패키지에 첵섬(checksum file)이 포함되어있는지 확인하고, 포함되어 있으면 상기 생성한 암호 값과 상기 어플리케이션 패키지에 포함된 첵섬 파일 값을 비교하여 일치 여부를 검사한다. 그리고 체커225는 그 비교 결과를 서브시스템220으로 전달하며, 서브시스템220은 이에 따라 운영시스템200에 권한 확인 결과의 성공 또는 실패를 알려준다. 그리고 상기 운영시스템200은 이에 따라 상기 어플리케이션210에 서브시스템220의 사용 가능하게 하거나 또는 사용할 수 없도록 한다.
도 4는 본 발명의 실시예에 따른 단말기에서 어플리케이션의 실행 절차를 제어하는 흐름도이다.
상기 도 4를 참조하면, 어플리케이션A 210은 도 1과 같은 구조의 어플리케이션패키지로 구성될 수 있으며, 상기 어플리케이션 패키지는 인에이블러를 통해 생성되는 첵섬 파일을 포함한다. 그리고 상기 인에이블러는 체커225와 같은 암호키를 첵섬 파일을 생성한다. 상기 어플리케이션 패키지는 상기한 바와 같이 제3자에 의해 생성될 수 있으며, 단말기에서 상기 어플리케이션 패키지를 다운로드하여 저장할 수 있다. 즉, 상기 단말기는 추가적인 기능을 제공하기 위해 OEM이나 제3자에 의해 생성된 어플리케이션을 다운로드 등을 통해 수신 및 저장할 수 있다.
이때 411단계에서 사용자가 상기 어플리케이션 A210의 실행을 요청하면, 상기 운영 시스템200은 이를 감지하고 412단계에서 어플리케이션 A의 실행을 위해 어플리케이션 A의 메인 바이너리를 구동시킨다. 그러면 상기 어플리케이션A 210은 413단계에서 프로그램을 실행하기 위한 서브시스템 사용을 운영시스템220에 요청한다. 여기서 서브시스템은 드라이버B 220이라고 가정한다.
그러면 상기 운영시스템200은 414단계에서 상기 드라이버B 220에 드라이버B의 오픈 함수를 호출한다. 이때 상기 오픈함수는 해당 기능을 사용하려는 어플리케이션A에 대한 검사모듈인 체커 225가 추가되어 있다. 따라서 상기 드라이버B 220은 415단계에서 체커 225에 드라이버B 220의 사용을 요청한 어플리케이션A 210의 권한 확인 요청을 한다. 그러면 상기 체커 225는 416단계에서 상기 운영시스템 200에 어플리케이션A210의 정보를 요청하고, 어플리케이션A 210의 메인바이너리의 이름, 크기 및 ID를 이용하여 암호화한다. 이때 상기 암호키는 상기 어플리케이션A 210에 포함된 첵섬 파일 생성시 사용한 암호키와 동일한 값을 사용한다. 이후 상기 체커225는 417단계에서 상기 어플리케이션A 210의 첵섬 파일 값과 상기 체커 225에서 생성한 권한 확인을 위한 값을 비교하여 권한 확인을 하고, 418단계에서 권한 확인결과를 상기 드라이버B 220에 전달한다. 그러면 상기 드라이버B 220은 권한확인 결과에 따라 419단계 또는 421단계에서 성공 또는 실패를 상기 운영시스템200에 통보하며, 상기 운영시스템 200은 그 결과에 따라 성공이면 420단계에서 상기 어플리케이션A 210이 드라이버B 220을 사용할 수 있도록 제어하고, 실패이면 422단계에서 상기 어플리케이션A 210이 드라이버B 220을 사용할 수 없도록 제어한다. 이때 상기 어플리케이션A 210이 422단계에서 드라이버B 220을 사용할 수 없는 경우, 423단계에서 어플리케이션A의 종료 또는 사용자에게 드라이버B 220을 사용할 수 없음을 표시할 수 있다.
상기한 바와 같이 본 발명의 실시예에 따르면, OEM이나 3rd 파티에서 어플리케이션 패키지에 추가적인 첵섬 파일을 추가하고, 상기 어플리케이션 패키지 실행시 단말기가 상기 OEM/3rd party에서 정의한 서브시스템에 접근하여 해당 어플리케이션의 정보를 확인한 후, 해당 패키지의 유효성을 검증한 후, 유효성이 검증되면 어플리케이션이 해당 서브시스템을 사용할 수 있도록 한다. 따라서 상기 OEM이나 3rd party에서 단말기에 추가 기능을 제공할 수 있는 어플리케이션을 생성할 수 있으며, 이 어플리케이션이 드라이버나 서비스 모듈에 대한 접근 권한을 가질 수 있도록 할 수 있다.
본 명세서와 도면에 개시 된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (7)

  1. 단말기의 어플리케이션 실행 시스템에 있어서,
    인에이블러를 구비하며, 다수의 바이너리 코드들과 콘텐트 파일들로 구성되는 어플리케이션 패키지를 생성하며, 상기 인에이블러가 상기 어플리케이션 패키지의 메인 바이너리의 정보를 암호화하여 첵섬 파일을 생성하여 상기 어플리케이션 패키지에 추가하는 어플리케이션 생성기와,
    상기 어플리케이션 패키지를 저장하며, 상기 어플리케이션 패키지 실행 요구시 상기 어플리케이션 패키지의 유효성을 검증하여 어플리케이션을 실행하는 단말기로 구성되며,
    상기 단말기는 어플리케이션 실행 요구시 요청된 서브시스템의 오픈함수를 호출하며, 권한확인 결과에 따라 상기 어플리케이션에서 사용 요청한 서브시스템의 사용 여부를 제어하는 운영 시스템과,
    체커를 구비하며, 상기 오픈함수 호출시 오픈함수에 추가된 상기 체커를 구동하여 상기 어플리케이션 패키지의 메인 바이너리를 암호화하며, 상기 암호화한 값과 상기 어플리케이션 패키지의 첵섬 파일을 비교하여 일치하면 상기 운영시스템에 성공의 권한 확인결과를 상기 운영시스템에 통보하는 서브시스템으로 구성되며,
    상기 인에이블 및 체커는 동일한 암호키를 사용하는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서, 상기 인에이블 및 체커는 상기 메인 바이너리의 이름, 파일크기 및 프로그램 ID를 암호화하는 것을 특징으로 하는 시스템.
  3. 제2항에 있어서, 상기 서브시스템은 상기 어플리케이션이 사용 요청한 드라이버 또는 서비스인 것을 특징으로 하는 시스템.
  4. 어플리케이션 실행 방법에 있어서,
    다수의 바이너리 코드들과 콘텐트 파일들로 구성되는 어플리케이션 패키지를 생성하며, 인에이블러가 상기 어플리케이션 패키지의 메인 바이너리의 정보를 암호화하여 첵섬 파일을 생성하여 상기 어플리케이션 패키지에 추가하는 어플리케이션 생성과정과,
    상기 어플리케이션 패키지를 저장하며, 상기 어플리케이션 패키지 실행 요구시 상기 어플리케이션 패키지의 유효성을 검증하여 어플리케이션을 실행하는 과정으로 이루어지며,
    상기 어플리케이션을 실행하는 과정은,
    어플리케이션 실행 요구시 운영시스템이 요청된 서브시스템의 오픈함수를 호출하는 과정과,
    상기 오픈함수 호출시 상기 서브시스템이 오픈함수에 추가된 상기 체커를 구동하여 상기 어플리케이션 패키지의 메인 바이너리를 암호화하며, 상기 암호화한 값과 상기 어플리케이션 패키지의 첵섬파일을 비교하여 일치하면 상기 운영시스템에 권한 확인결과를 상기 운영시스템에 통보하는 과정과,
    상기 운영시스템이 상기 권한확인 결과가 성공이면 따라 상기 어플리케이션에서 사용 요청한 서브시스템의 사용이 가능하도록 제어하는 과정으로 이루어지며,
    상기 인에이블러 및 체커의 암호키는 동일한 암호키를 사용하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 인에이블 및 체커는 상기 메인 바이너리의 이름, 파일크기 및 프로그램 ID를 암호화하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 서브시스템은 상기 어플리케이션이 사용 요청한 드라이버 또는 서비스인 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 운영시스템이 상기 권한확인결과가 실패이면 상기 어플리케이션에서 사용 요청한 서브시스템의 사용의 사용이 불가능하도록 제어하는 과정을 더 구비하는 것을 특징으로 하는 방법.
KR1020110118792A 2011-11-15 2011-11-15 단말기의 어플리케이션 실행 시스템 및 방법 KR101880912B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110118792A KR101880912B1 (ko) 2011-11-15 2011-11-15 단말기의 어플리케이션 실행 시스템 및 방법
US13/661,383 US8874927B2 (en) 2011-11-15 2012-10-26 Application execution system and method of terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110118792A KR101880912B1 (ko) 2011-11-15 2011-11-15 단말기의 어플리케이션 실행 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20130053179A true KR20130053179A (ko) 2013-05-23
KR101880912B1 KR101880912B1 (ko) 2018-07-25

Family

ID=48281810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110118792A KR101880912B1 (ko) 2011-11-15 2011-11-15 단말기의 어플리케이션 실행 시스템 및 방법

Country Status (2)

Country Link
US (1) US8874927B2 (ko)
KR (1) KR101880912B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482700B1 (ko) * 2013-09-27 2015-01-14 (주)잉카엔트웍스 해시를 이용한 프로그램의 무결성 검증 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6070423B2 (ja) * 2013-06-03 2017-02-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
EP3388944A1 (de) * 2017-04-13 2018-10-17 TTTech Computertechnik AG Verfahren zur fehlererkennung in einem betriebssystem
EP3388939A1 (de) * 2017-04-13 2018-10-17 TTTech Computertechnik AG Verfahren zur reduzierung der antwortzeit in einem zeitgesteuerten betriebssystem
US20220012673A1 (en) * 2020-07-13 2022-01-13 ZenDesk, Inc. Maintaining status information for customer-support agents across multiple channels
US11586493B2 (en) 2021-03-29 2023-02-21 Red Hat, Inc. Efficient checksum computation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288904A1 (en) * 2006-05-16 2007-12-13 International Business Machines Corporation Method, system and program product for validating a runtime environment
US20080127167A1 (en) * 2006-08-15 2008-05-29 Elliott Ian A Package compatibility

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US9430155B2 (en) * 2010-03-25 2016-08-30 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288904A1 (en) * 2006-05-16 2007-12-13 International Business Machines Corporation Method, system and program product for validating a runtime environment
US20080127167A1 (en) * 2006-08-15 2008-05-29 Elliott Ian A Package compatibility

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482700B1 (ko) * 2013-09-27 2015-01-14 (주)잉카엔트웍스 해시를 이용한 프로그램의 무결성 검증 방법
WO2015046775A1 (ko) * 2013-09-27 2015-04-02 (주)잉카엔트웍스 해시를 이용한 프로그램의 무결성 검증 방법
US9842018B2 (en) 2013-09-27 2017-12-12 Inka Entworks, Inc. Method of verifying integrity of program using hash

Also Published As

Publication number Publication date
US20130124871A1 (en) 2013-05-16
KR101880912B1 (ko) 2018-07-25
US8874927B2 (en) 2014-10-28

Similar Documents

Publication Publication Date Title
US20170270319A1 (en) Method and device for providing verifying application integrity
US20170262656A1 (en) Method and device for providing verifying application integrity
US20170262657A1 (en) Method and device for providing verifying application integrity
US9697359B2 (en) Secure software authentication and verification
CN112699419B (zh) 安全执行可延伸固件应用程序的方法及计算器设备
KR20130053179A (ko) 단말기의 어플리케이션 실행 시스템 및 방법
US20170262658A1 (en) Method and device for providing verifying application integrity
CN103577206A (zh) 一种应用软件的安装方法和装置
CN106133739B (zh) 数据到安全元件的非易失性存储器中的加载的安全保护
JP2014505318A (ja) 安全なソフトウェアの更新のためのシステム及び方法
CN101657792A (zh) 可信部件更新系统和方法
CN116361747A (zh) 按照参考平台清单和数据封装的安全操作系统启动
CN112685338B (zh) 包括安全可修补rom的半导体装置及其修补方法
US20100011225A1 (en) Information terminal, security device, data protection method, and data protection program
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
US20140068276A1 (en) Information processing apparatus
WO2017045627A1 (zh) 一种控制单板安全启动的方法、软件包升级的方法及装置
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
KR20140114446A (ko) 외부 코드 인증을 통한 웹 브라우징 오버헤드들의 감소
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
JP6343928B2 (ja) 携帯端末、認証システム、認証方法、および、認証プログラム
CN116257839A (zh) 升级签名固件的方法、电子设备和存储介质

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