KR20140077186A - 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스 - Google Patents

보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스 Download PDF

Info

Publication number
KR20140077186A
KR20140077186A KR1020147011390A KR20147011390A KR20140077186A KR 20140077186 A KR20140077186 A KR 20140077186A KR 1020147011390 A KR1020147011390 A KR 1020147011390A KR 20147011390 A KR20147011390 A KR 20147011390A KR 20140077186 A KR20140077186 A KR 20140077186A
Authority
KR
South Korea
Prior art keywords
application
file
secured
configuration file
package
Prior art date
Application number
KR1020147011390A
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 탈레스
Publication of KR20140077186A publication Critical patent/KR20140077186A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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
    • 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

Abstract

보안화될 애플리케이션과 초기 구성 파일을 포함하는 초기 패키지 파일로부터, 상기 애플리케이션을 보안화하기 위한 적어도 하나의 패키지 파일을 생성하는 본 발명의 방법은 정보 처리 유닛과 메모리를 포함하는 컴퓨팅 디바이스에 의해 구현된다.
이러한 생성 방법은 그러한 메모리에 저장된 패키지 파일을 생성하기 위한 애플리케이션에 의해 구현되는 다음의 단계: 상기 초기 패키지 파일로부터, 보안화될 애플리케이션(34) 및 초기 구성 파일을 추출하는 단계(70), 초기 구성 파일로부터 제1 구성 파일을 만드는 단계(75), 보안 라이브러리의 로딩을 구현하고, 보안화될 그러한 애플리케이션과 관련된 함수 호출이나 함수 호출들로부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리의 대응하는 함수에 대한 호출로 대체하고, 그러한 대체 후 보안화될 애플리케이션을 론칭(launching)하는데 적절한, 보안화될 애플리케이션에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션을 만드는 단계(80), 및 제1 패키지 파일에서 보안화될 애플리케이션과 제1 구성 파일을 캡슐화하는 단계(85) - 수행 환경을 동적으로 만들기 위한 애플리케이션은 제2 구성 파일로 제1 패키지 파일에서나 제2 패키지 파일에서 캡슐화됨(80) - 를 포함한다.

Description

보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스{METHOD OF GENERATING, FROM AN INITIAL PACKAGE FILE COMPRISING AN APPLICATION TO BE SECURED AND AN INITIAL CONFIGURATION FILE, A PACKAGE FILE FOR SECURING THE APPLICATION, AND ASSOCIATED COMPUTER PROGRAM PRODUCT AND COMPUTING DEVICE}
본 발명은, 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 그러한 애플리케이션을 보안화하기 위한 적어도 하나의 패키지 파일을 생성하기 위한 방법에 관한 것이며, 그러한 생성 방법은 정보 처리 유닛과 메모리를 포함하는 컴퓨팅 디바이스에 의해 구현된다.
본 발명은 또한, 컴퓨팅 디바이스 내에 통합된 정보 처리 유닛에 의해 구현될 때, 그러한 패키지 파일 생성 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 또한, 정보 처리 유닛 및 이 정보 처리 유닛과 관련된 메모리를 포함하는 컴퓨팅 디바이스에 관한 것이다.
안드로이드 플랫폼 호스팅 애플리케이션에 의해 관리되는 휴대 단말과 같은 컴퓨팅 장치가 알려져 있다. 안드로이드 플랫폼은 리눅스 커넬(kernel), C 또는 C++ 언어로 된 함수 라이브러리 세트, 및 안드로이드 플랫폼에 의해 호스팅되는 애플리케이션을 수행할 수 있는 달빅 버추얼 머신(Dalvik virtual machine)을 포함한다.
민감한 애플리케이션의 동작은, 정보의 컴뱃 쓰렛(combat threats)과 그러한 애플리케이션에 의해 처리된 데이터를 휴대 단말의 손실이나 도난 또는 휴대 단말과 다른 컴퓨팅 장비 사이의 통신의 인터셉션(interception)의 결과로서 복구되는 것을 보호하기 위해 보안화되어야 한다. 하나의 데이터 보안화 솔루션은 이때 보안화될 애플리케이션 각각의 소스나 이진 코드를 변경하여 적절한 보안 함수를 포함한 특수 라이브러리를 호출하게 하는 것으로 구성된다.
공개공보 제 WO2012/109196A1호는 보안화될 애플리케이션 각각의 소스나 이진 코드를 변경한 후, 변경된 소스나 이진 코드를 리컴파일링하여, 그에 따라 변경된 애플리케이션이 적절한 보안 함수를 포함하는 특수 라이브러리를 호출하는 방법을 기재한다.
그러나 애플리케이션의 그러한 보안화는 애플리케이션 각각의 소스나 이진 코드를 변경하는 것을 필요로 하며, 이러한 변경은 특히 제한적이며, 더 나아가서는 코드의 변경이 제3자가 실행할 때 애플리케이션의 제공자에 의해 항상 허용되지는 않는다.
본 발명의 한 목적은 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일을 사용하여 패키지 파일을 생성하는 방법을 제안하는 것이며, 이러한 생성 방법으로 인해, 운영체계, 애플리케이션 환경 또는 보안화될 애플리케이션의 코드로 변경을 제한하면서 패키지를 수행하는 동안 애플리케이션을 보안화 할 수 있다.
이를 위해, 본 발명은 전술한 타입의 패키지 파일을 생성하는 방법에 관한 것으로서, 이 생성 방법은 패키지 파일을 생성하기 위해 애플리케이션 - 애플리케이션은 컴퓨팅 디바이스의 메모리에 저장됨 - 에 의해 실행되는 다음의 단계를 포함한다:
- 초기 패키지 파일로부터, 보안화될 애플리케이션 및 초기 구성 파일을 추출하는 단계,
- 초기 구성 파일로부터 제1 구성 파일을 만드는 단계,
- 보안화될 애플리케이션에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션을 만드는 단계 - 수행 환경을 동적으로 만들기 위한 애플리케이션은, 보안 라이브러리의 로딩을 구현하고, 보안화될 그러한 애플리케이션과 관련된 함수 호출이나 함수 호출들로부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리의 대응하는 함수에 대한 호출로 대체하고, 그러한 대체 후 보안화될 애플리케이션을 론칭(launching)하는데 적절함 - , 및
- 제1 패키지 파일에서 보안화될 애플리케이션과 제1 구성 파일을 캡슐화하는 단계 - 수행 환경을 동적으로 만들기 위한 애플리케이션은 제1 패키지 파일에서나 제2 패키지 파일에서 캡슐화되며, 제2 패키지 파일은 수행 환경을 동적으로 만들기 위한 그러한 애플리케이션과 제2 구성 파일을 포함함 - .
본 발명의 다른 유리한 양상에 따르면, 이 방법은, 단독으로 또는 어떤 기술적으로 가능한 조합에 따라 고려되는 다음의 특성 중 하나 이상을 포함한다:
- 제1 구성 파일을 만드는 단계 동안, 제1 구성 파일은 초기 구성 파일을 변경함으로써 만들어져, 수행 환경을 만들기 위한 애플리케이션은 대응하는 패키지 파일의 수행 동안 보안화될 애플리케이션 대신에 론칭된다;
- 제1 패키지 파일은 보안화될 애플리케이션과 제1 구성 파일을 포함하며, 제2 패키지 파일은 제2 구성 파일 및 수행 환경을 만들기 위한 애플리케이션을 포함하며, 수행 환경을 만들기 위한 애플리케이션과 보안화될 애플리케이션 중 각각의 애플리케이션은 적어도 하나의 구성요소를 포함하며, 각각의 구성 파일은 하나 이상의 구성요소 선언(component declaration)을 포함하며, 이 방법은 제2 구성 파일을 만드는 단계 - 제2 구성 파일은 초기 구성 파일과 동일한 구성요소 선언을 포함함 - 를 포함한다;
- 각각의 구성 파일에서의 적어도 하나의 선언된 구성요소는 콘텐츠 제공자이며, 콘텐츠 제공자는, 제1 구성 파일에서 선언된 콘텐츠 제공자의 우선순위보다 더 높은 우선순위의 제2 구성 파일에서 선언되어, 수행 환경을 만들기 위한 애플리케이션의 콘텐츠 제공자는 보안화될 애플리케이션의 콘텐츠 제공자 전에 론칭된다;
- 제1 패키지 파일은 보안화될 애플리케이션과 제1 구성 파일을 포함하며, 제2 패키지 파일은 제2 구성 파일 및 수행 환경을 만들기 위한 애플리케이션을 포함하며, 초기 구성 파일은 활동 선언(activity declaration) 및 활동 선언과 관련된 메시지 필터를 포함하며, 제1 구성 파일을 만드는 단계 동안, 초기 구성 파일에서 선언된 활동에 대한 메시지 필터는 제1 구성 파일에서 삭제된다;
- 제1 패키지 파일은 제1 구성 파일, 보안화될 애플리케이션 및 수행 환경을 만들기 위한 애플리케이션을 포함하며, 제1 패키지 파일은, 수행 환경을 만들기 위한 애플리케이션이 보안화될 애플리케이션 전에 론칭되도록 구성된다;
- 만드는 단계 동안 만들어진, 수행 환경을 동적으로 만들기 위한 애플리케이션은, 보안화될 애플리케이션과 다른 보안화되지 않은 애플리케이션 사이의 상호작용이나 보안화될 애플리케이션과 운영체계 사이의 상호작용을, 수행 환경을 동적으로 만들기 위한 애플리케이션에서의 미리 한정된 필터링 규칙에 따라 필터링하도록 더 적응된다;
- 이 방법은 상기 또는 각각의 생성된 패키지 파일을 적어도 하나의 보호 키로 암호화 보호하는 단계를 더 포함한다;
- 제1 패키지 파일은 제1 구성 파일과 보안화될 애플리케이션을 포함하며, 제2 패키지 파일은 제2 구성 파일과 수행 환경을 만들기 위한 애플리케이션을 포함하며, 암호화 보호하는 단계 동안, 제1 패키지 파일의 암호화 보호와 제2 패키지 파일의 암호화 보호는 동일한 보호 키로 실행된다.
본 발명은 또한, 컴퓨터 디바이스에 통합된 정보 처리 유닛에 의해 구현될 때, 앞서 한정된 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 또한, 정보 처리 유닛 및 정보 처리 유닛과 관련된 메모리를 포함하는 컴퓨팅 디바이스에 관한 것이며, 여기서 메모리는 보안화될 애플리케이션과 초기 구성 파일을 포함하는 초기 패키지 파일로부터 그러한 애플리케이션을 보안화하기 위한 적어도 하나의 패키지 파일을 생성하기 위한 애플리케이션을 포함하며,
패키지 파일(들)을 생성하기 위한 애플리케이션은 다음을 포함한다:
+ 초기 패키지 파일로부터 보안화될 애플리케이션과 초기 구성 파일을 추출하기 위한 수단,
+ 초기 구성 파일로부터 제1 구성 파일을 만들기 위한 수단,
+ 보안화될 애플리케이션에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션을 만들기 위한 수단 - 수행 환경을 동적으로 만들기 위한 애플리케이션은, 보안 라이브러리의 로딩을 구현하고, 보안화될 애플리케이션과 관련된 하나 이상의 함수 호출(들)로부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리의 대응하는 함수에 대한 호출로 대체하고(substituting), 그러한 대체 단계 후 보안화될 애플리케이션을 론칭하는데 적절함 - , 및
+ 제1 패키지 파일에서 보안화될 애플리케이션과 제1 구성 파일을 캡슐화하기 위한 수단 - 수행 환경을 동적으로 만들기 위한 애플리케이션은 제1 패키지 파일이나 제2 패키지 파일에서 캡슐화되며, 그 후 제2 패키지 파일은 수행 환경을 동적으로 만들기 위한 그러한 애플리케이션과 제2 구성 파일을 포함함 - .
본 발명의 이들 특성 및 장점은, 예로서만 제공되며 수반하는 도면을 참조하여 이뤄진 다음의 상세한 설명을 읽음으로써 드러나게 될 것이다.
도 1은, 본 발명에 따른 컴퓨팅 디바이스로서, 휴대 단말과 같은 컴퓨팅 장치에 의해 수행되도록 설계된 적어도 하나의 패키지 파일을 생성할 수 있는 컴퓨팅 장치의 개략도이다.
도 2는 도 1의 컴퓨팅 장치의 메모리의 개략도이다.
도 3은 본 발명의 일 실시예에 따른 패키지 파일(들)을 생성하기 위한 방법의 흐름도이다.
도 4는 보안화될 애플리케이션을 수행하기 위한 환경을 준비하기 위한 방법의 흐름도이다.
도 5는, 보안화될 애플리케이션에 대한 수행 환경의 준비 및 그러한 애플리케이션의 수행을 개략적으로 예시한 도면이다.
도 6은 본 발명의 제2 실시예에 따른 도 3의 흐름도와 유사한 흐름도이다.
도 1에서, 휴대 단말과 같은 컴퓨팅 장치(10)는 정보 처리 유닛(12), 정보 처리 유닛과 관련된 제1 메모리(14), 및 스크린(15)을 포함한다.
도 1의 예시적인 실시예에서, 컴퓨팅 장치(10)는 휴대 전화이며, 무선 안테나(16)와, 제1 정보 처리 유닛에 연결된 무선 트랜시버(17)를 더 포함한다.
컴퓨팅 디바이스(18)는 제2 정보 처리 유닛(19A) 및 제2 정보 처리 유닛(19A)과 관련된 제2 메모리(19B)를 포함한다.
제1 정보 처리 유닛(12)은 예컨대 데이터 프로세서를 포함한다.
제1 메모리(14)는 운영체계(20) 및 비-민감성 패키지 파일로도 불리는 복수의 패키지 파일(21), 그리고 민감성 패키지 파일로도 불리는 패키지 파일(22A 및 22B), 즉 제1 패키지 파일(22A) 및 제2 패키지 파일(22B)을 포함한다.
또한, 제1 메모리(14)는 제2 패키지 파일(23)을 포함한다.
제1 메모리(14)는 또한 예컨대 다른 컴퓨팅 장치와의 데이터 교환 및/또는 데이터 저장을 보안화할 수 있는 보안 라이브러리(24)를 포함한다.
무선 트랜시버(17)는 무선 안테나(16)를 통해 무선 신호를 송신 및 수신하기 위한 수단을 포함한다. 무선 트랜시버(17)는 GPRS(General Packet Radio Service: 일반 패킷 라디오 서비스) 통신 표준이나 UMTS(Universal Mobile Telecommunication System) 표준에 따른다.
무선 안테나(16)와 무선 트랜시버(17)는 컴퓨팅 장치(10)와, 동일한 통신 표준을 사용하는 무선 안테나 및 트랜시버를 포함하는 다른 컴퓨팅 장치 사이의 무선 링크의 구축을 허용할 수 있다.
제2 정보 처리 유닛(19A)은 예컨대 데이터 프로세서를 포함한다.
제2 메모리(19B)는 미도시된 초기 패키지 파일로부터 적어도 하나의 민감성 패키지 파일(22A 및 22B)을 생성하기 위한 애플리케이션(25)을 포함한다.
운영체계(20)는 커넬(26), 함수 라이브러리 세트(27), 버추얼 머신(28) 및 애플리케이션 프레임워크(30)를 포함한다.
각각의 비-민감성 패키지 파일(21)은 이진 파일 형태의 비-민감성 애플리케이션(31) 및 관련된 구성 파일(32)을 포함하며, 비-민감성 애플리케이션(31)은 보안화될 필요는 없다.
제1 민감성 패키지 파일(22A)은 이진 파일 형태로 보안화될 애플리케이션(34)과 제1 구성 파일(33)을 포함한다. 제2 민감성 패키지 파일(22B)은 보안화될 애플리케이션에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션(36)과 제2 구성 파일(35)을 포함하며, 수행 환경을 만들기 위한 애플리케이션(36)은 이진 파일 형태이다.
또한, 제2 패키지 파일(23)은 사용자를 인증하며 보안 라이브러리를 언로킹하기 위한 키를 복구하기 위한 미도시된 애플리케이션을 포함한다. 제2 패키지 파일(23)은 사용자를 인증하며 언로킹 키를 복구하기 위한 애플리케이션과 관련된 미도시된 제3 구성 파일을 포함한다. 사용자의 인증은 예컨대 장치(10)에 포함된 칩 카드나 NFC 카드로도 불리는 장치 외부의 근거리 통신 카드를 사용하여 실행된다. 그러한 애플리케이션은 또한 제3 자 애플리케이션과 관련된 허락을 검증할 수 있어서 그 제3 자 애플리케이션에 대한 사용자의 액세스를 제어할 수 있다.
보안 라이브러리(24)는 도 2에 도시된 바와 같이 데이터 저장을 보안화하기 위한 함수(37A), 다른 컴퓨팅 장치와의 데이터 교환을 보안화하기 위한 함수(37B), 및 디버깅 이벤트를 제거하기 위한 함수(37C)를 포함한다.
도 1 및 도 2의 예에서, 보안 라이브러리(24)는 운영체계(20)에 포함된 고유한 라이브러리와는 별도의 특정한 라이브러리이다.
택일적으로, 도 2에서 점선으로 예시한 바와 같이, 보안 라이브러리(24)는 운영체계의 제공자에 의해 전달된 운영체계의 라이브러리 세트(27)에 포함된 고유한 라이브러리이다.
패키지 파일을 생성하기 위한 애플리케이션(25)은 초기 패키지 파일로부터 미도시된 초기 구성 파일과 보안화될 애플리케이션(34)을 추출하기 위한 수단(40)과, 초기 구성 파일로부터 각각 제1 구성 파일(33) 및 제2 구성 파일(35)을 만들기 위한 수단(42)을 포함한다.
패키지 파일을 생성하기 위한 애플리케이션(25)은 수행 환경을 동작으로 만들기 위한 애플리케이션(36)을 만들기 위한 수단(44)을 포함하며, 수행 환경을 동작으로 만들기 위한 애플리케이션(36)은 보안 라이브러리(24)의 로딩을 구현하고; 보안화될 그러한 애플리케이션(34)과 관련된 하나 이상의 함수 중에서부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리(24)로부터 대응하는 함수(37A, 37B 및 37C)에 대한 호출로 대체하고; 및 그러한 대체 후 보안화될 애플리케이션(34)을 론칭하도록 적응된다.
패키지 파일을 생성하기 위한 애플리케이션(25)은 한편으론 제1 패키지 파일(22A)에서 보안화될 애플리케이션(34)과 제1 구성 파일(33)에 대한 캡슐화 수단(46)과, 다른 한편으론 제2 패키지 파일(22B)에서 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 포함한다.
또한, 패키지 파일을 생성하기 위한 애플리케이션(25)은 이전에 생성된 제1 및 제2 패키지 파일의 암호화 보호를 위한 수단(47)을 포함한다.
그 자체로 알려져 있는 바와 같이, 커넬(26)은, 특히 제1 정보 처리 유닛(12), 제1 메모리(14) 및 무선 트랜시버(17)를 포함하는 하드웨어와 다른 한편으론 운영체계(20)의 나머지, 특히 라이브러리 세트(27) 사이의 앱스트랙션 층(layer of abstraction)을 형성한다. 커넬(26)은 운영체계의 보안, 메모리 관리 또는 처리 관리와 같은 핵심 서비스를 관리하는데 적절하다.
라이브러리 세트(27)는 보안화되지 않은 함수 라이브러리(48)를 포함한다.
버추얼 머신(28)은 그 자체가 알려져 있으며, 각각의 패키지 파일(21, 22 및 23)에 포함된 각각의 이진 파일을 실행할 수 있다.
애플리케이션 호스트 구조(30)는 활동 관리 서비스(49A)와, 애플리케이션과 관련된 패키지 파일에 대한 관리 서비스(49B)와 같은 애플리케이션(31, 34 및 36)에 이용 가능한 서비스(49A 및 49B)를 포함한다.
각각의 애플리케이션(31, 34 및 36)은, 버추얼 머신(28)에 의해 수행되도록 설계되며 또한 바이트코드로도 지칭되는 이진 코드를 포함하는 이진 파일의 형태이다. 버추얼 머신(28)에 의한 애플리케이션(31, 34 및 36)의 수행은 애플리케이션의 바이트코드의 해석이다.
각각의 애플리케이션(31, 34 및 36)은 도 4에 도시된 바와 같은 하나 이상의 구성요소 A, B, #A, #B를 포함하며, 구성요소들은 활동, 서비스, 콘텐츠 제공자, 또는 방송 수신자와 같은 상이한 타입을 갖는다. 각각의 구성요소 A, B, #A, #B는 애플리케이션의 거동에서 상이한 역할을 하며, 심지어 다른 애플리케이션에 의해서도 개별적으로 활성화될 수 있다.
기재된 실시예에서, 운영체계(20)는 구글의 안드로이드® 애플리케이션 시스템이다. 커넬(26)은 이때 리눅스 커넬, 더 상세하게는 리눅스 커넬의 버전 2.6을 기반으로 한다. 라이브러리 세트(27)는 C/C++ 컴퓨터 언어로 기록된다. 버추얼 머신(28)은 달빅 버추얼 머신이다. 애플리케이션(31, 34 및 36)은 자바 언어로 기록되며, 달빅 버추얼 머신(28)에 의해 수행 가능한 이진 코드 형태이다.
택일적으로, 본 발명은 안드로이드® 운영체계와 동일한 타입의 임의의 운영체계에 적용된다. 특히, 본 발명은, 커넬, 애플리케이션을 실행하도록 설계된 버추얼 머신, 및 커넬과 버추얼 머신에 의해 액세스 가능한 함수 라이브러리 세트를 포함하는 운영체계에 적용된다.
각각의 구성 파일(32, 33 및 35)은, 애플리케이션 버전을 명명하고 지시하기 위한 정보, 애플리케이션의 구성요소 각각의 선언, 애플리케이션이 미리 한정된 방식으로 운영체계(20) 또는 다른 애플리케이션으로부터 수신된 것들 중 특정한 메시지를 식별하게 하는 메시지 필터, 및 잠재적으로는 메타데이터를 포함한다.
안드로이드®인 경우에, 각각의 구성 파일(32, 33 및 35)은 또한 매니페스트(Manifest) 파일로 불린다. 구성요소 선언은 이때, 구성요소가 활동, 서비스, 콘텐츠 제공자, 또는 방송 수신자 타입인지에 따라, 다음의 표현: <활동>, <서비스>, <제공자> 또는 <수신자>를 사용하여 참조된다. 메시지 필터는 메시지 선언으로도 불리며, 인텐트(Intent) 필터로도 불린다. 메타데이터는 구성요소의 추가 기재를 제공할 수 있다.
비-민감성 구성 파일(32)은 그 자체가 알려져 있다.
제1 구성 파일(33)은 보안화될 애플리케이션(34)의 버전을 명명하고 지시하기 위한 정보를 포함하고, 보안화될 애플리케이션(34)의 구성요소의 선언을 포함한다. 제1 구성 파일(33)은 초기 구성 파일로부터 만들어져, 그 초기 구성 파일을 변경함으로써, 수행 환경을 만들기 위한 애플리케이션(36)은 제1 및 제2 패키지 파일(22A 및 22B)의 수행 동안 보안화될 애플리케이션(34) 대신에 론칭된다. 초기 구성 파일로부터 제1 구성 파일(33)을 만드는 방식을 도 3의 패키지 파일을 생성하기 위한 방법에 대한 흐름도를 사용하여 이후에 더 상세하게 기재할 것이다.
보안화될 애플리케이션(34)은 그 수행 동안 보안화되지 않은 함수 라이브러리(48)의 적어도 하나의 함수를 호출하도록 설계된다.
제2 구성 파일(35)은 수행 환경을 만들기 위한 애플리케이션(36)의 버전을 명명하고 지시하기 위한 정보를 포함하고, 수행 환경을 만들기 위한 애플리케이션(36)의 구성요소의 선언을 포함한다. 제2 구성 파일(35)을 만드는 방식은 도 3의 패키지 파일을 생성하기 위한 방법에 대한 흐름도를 사용하여 이후에 더 상세하게 기재될 것이다.
환경을 동적으로 만들기 위한 애플리케이션(36)은 보안 라이브러리를 로딩하기 위한 수단(50), 보안화될 애플리케이션(34)과 관련된 함수 호출(들) 중 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리(24)로부터 대응하는 함수에 대한 호출로 대체하기 위한 수단(52)을 포함한다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은 컴퓨팅 장치의 사용자를 인증하고 보안 라이브러리에 대한 언로킹된 키를 복구하기 위한 수단(54), 및 보안화될 애플리케이션(34)에 의해 송수신되는 메시지를 인터셉트하여 필터링하기 위한 수단(56)을 포함한다.
수행 환경을 만들기 위한 애플리케이션(36)은 보안 함수에 대한 호출에 의한 보안화되지 않은 함수에 대한 호출의 대체 이후에 보안화될 애플리케이션을 론칭하기 위한 수단(58)을 포함한다.
수행 환경을 만들기 위한 애플리케이션(36)은 보안화될 애플리케이션(들)(34) 전용의 애플리케이션이며, 운영체계(20)와 차별화된다.
데이터 저장을 보안화하기 위한 함수(37A)는 예컨대 저장된 데이터의 암호화 보호를 통해 제1 메모리(14)의 메모리 영역에 저장된 민감성 데이터를 보호할 수 있다. 보호는 승인되지 않은 사람에 의한 그 데이터 액세스를 금지하기 위한 비밀성(confidentiality) 보호이며, 또한 그 데이터의 콘텐츠의 임의의 변경을 방지하기 위한 완전성 보호이다.
데이터 교환을 보안화하기 위한 함수(37B)는 보안화될 애플리케이션(34)과 미도시된 다른 컴퓨팅 장치 사이의 데이터 교환을 보호할 수 있다.
디버깅 이벤트를 삭제하기 위한 함수(37C)는 디버깅 이벤트가 제1 메모리(14)에 레코딩되기 전에 이들을 삭제할 수 있으며, 디버깅 이벤트는 보안화될 애플리케이션(34)의 코드에 포함된 태그의 수행 동안 생성된다. 이들 디버깅 이벤트는, 애플리케이션의 코드가 마무리되기 전 이러한 코드를 결정하는데 사용되며, 종종 애플리케이션 코드에 보관되며, 그 후 보안 브리치(security breach)를 초래할 수 있다.
보안화되지 않은 함수 라이브러리(48)는 그 자체가 알려져 있다. 안드로이드® 운영체계인 경우에, 보안화되지 않은 함수 라이브러리(48)는 C/C++ 컴퓨터 언어로 기록된 함수(들)의 라이브러리이다.
도 1의 예시적인 실시예에서, 인증 및 복구 수단(54)은, 사용자에 대한 인증 애플리케이션을 호출하며, 제2 패키지 파일(23)에 캡슐화된 언로킹 키를 복구하기 위한 수단이다. 다시 말해, 인증 및 복구 수단(54)은 사용자를 인증하며 키를 복구하기 위한 그러한 애플리케이션을 향한 단 하나의 진입점을 포함한다.
택일적으로, 제1 메모리(14)는 제2 패키지 파일을 포함하지 않으며, 수행 환경을 만들기 위한 각각의 애플리케이션의 인증 및 복구 수단(54)은 사용자 인증 및 언로킹 키 복구 애플리케이션의 기능을 포함하며, 컴퓨팅 장치(10)의 사용자를 인증할 수 있으며, 이때, 성공적인 인증인 경우에, 보안 라이브러리(24)로부터 언로킹 키를 복구할 수 있다.
본 발명에 따른 패키지 파일을 생성하기 위한 방법은 이제 도 3의 흐름도를 사용하여 기재될 것이다.
초기 단계(70) 동안, 보안화될 애플리케이션(34)과 초기 구성 파일은 초기 패키지 파일로부터 추출된다.
그에 따라 추출된 초기 구성 파일은 그 다음에 다음의 단계(75) 동안 사용되어, 한편으론 제1 구성 파일(33)을 만들며, 다른 한편으론 제2 구성 파일(35)을 만든다.
제1 구성 파일(33)은 초기 구성 파일을 변경함으로써 만들어져, 수행 환경을 만들기 위한 애플리케이션(36)은 패키지 파일(22A 및 22B)의 수행 동안 보안화될 애플리케이션(34) 대신에 론칭된다.
초기 구성 파일에서 선언된 활동에 대한, 인텐트 필터로도 불리는 메시지 필터는 예컨대 제1 구성 파일(33)에서 삭제된다.
택일적으로, 제1 구성 파일(33)에서 선언된 프로세스의 이름은 미리 결정된 이름이며, 그 프로세스 이름은 보안화될 애플리케이션(34)과 수행 환경을 만들기 위한 애플리케이션(36)이 동일한 프로세스에서 수행될 것임을 보증하기 위해 제2 구성 파일(35)에서와 동일할 것이다.
단계(75) 동안, 제2 구성 파일(35)은 또한 초기 구성 파일로부터 만든다. 제2 구성 파일(35)은 예컨대 초기 구성 파일에 포함된 것과 동일한 구성요소 선언을 포함한다. 제2 구성 파일(35)에 선언된 구성요소는 예컨대 대응하는 구성요소에 대한 초기 구성 파일에 명시된 것과 동일한 메시지 필터를 반복한다.
또한, 제1 구성 파일(33) 및 제2 구성 파일(35)에서 선언된 적어도 하나의 구성요소는 콘텐츠 제공자이며, 콘텐츠 제공자는 제1 구성 파일(33)에서 선언된 콘텐츠 제공자의 우선순위보다 더 높은 우선순위의 제2 구성 파일(35)에서 선언된다. 제1 구성 파일(33)에서의 대응하는 것보다 제2 구성 파일(35)에서의 콘텐츠 제공자의 선언의 더 높은 우선순위 순서로 인해, 수행 환경을 만들기 위한 애플리케이션(36)의 콘텐츠 제공자는 보안화될 애플리케이션(34)에 대한 콘텐츠 제공자 전에 론칭될 수 있다.
또한, 제1 구성 파일(33)에 대해 이전에 지시한 바와 같이, 제2 구성 파일(35)에 선언한 프로세스의 이름은 미리 결정된 이름이며, 보안화될 애플리케이션(34)과 수행 환경을 만들기 위한 애플리케이션(36)이 동일한 프로세스에서 수행될 것임을 보증하기 위해, 제1 구성 파일(33)에서 선언된 프로세스의 이름과 동일하다.
제1 및 제2 구성 파일(33 및 35)을 만들기가 종료하면, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)에 대한 이진 파일을 그 다음 단계(80) 동안 만든다. 만들어진 이진 파일은, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)이 보안 라이브러리(24)의 로딩을 구현하고, 보안화될 애플리케이션(34)과 관련된 하나 이상의 호출 함수(들) 중, 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리(24)로부터 대응하는 함수에 대한 호출로 대체하며, 그러한 대체 후 보안화될 애플리케이션(34)을 론칭하는데 적절하다.
또한, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)은 이전에 로딩된 보안 라이브러리(24)와 실행된 호출 함수 대체(들)를 로킹하도록 적응된다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은 컴퓨팅 장치(10)의 사용자의 인증을 요청하도록 적응되며, 성공적인 인증인 경우에, 키를 복구하여 보안 라이브러리(24)를 언로킹하도록 적응된다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은 운영체계와 보안화될 애플리케이션(34) 사이에서 교환되는 메시지를 인터셉트 및 처리하는데 적절하며, 그러한 메시지는 보안 라이브러리(24)에 의해 처리된다. 인터셉트된 메시지는 특히 대기, 보안화될 애플리케이션(34)의 웨이킹 업(waking up), 제1 메모리(14)에서의 데이터 저장 및 다른 컴퓨팅 장치와의 데이터 교환에 관한 것이다.
이 단계(80) 동안, 그에 따라 만들어진 수행 환경을 동적으로 만들기 위한 애플리케이션(36)의 이진 파일은 그 다음에, 제2 패키지 파일(22B)에서 단계(75) 동안 이전에 만들어진 제2 구성 파일(35)로 캡슐화된다.
단계(85) 동안, 제1 구성 파일(33)과 보안화될 애플리케이션(34)의 이진 파일은 제1 패키지 파일(22A)에서 캡슐화된다. 당업자는, 생성 방법을 사용하여 패키지 파일(22A 및 22B)을 생성하는 동안 보안화될 애플리케이션(34)의 이진 파일이 변경되지 않음을 관찰할 것이다.
또한, 패키지 파일을 생성하기 위한 애플리케이션(25)은 또한 보안 라이브러리(24)를 제2 패키지 파일(22B)에 추가한다.
또한, 부가적인 단계(90) 동안, 생성된 각각의 패키지 파일(22A 및 22B)은 하나 이상의 암호화 키와 암호화 보호 수단(47)을 사용하여 암호화 보호된다. 사용된 암호화 키(들)는 바람직하게는, 초기 패키지 파일을 보호하는데 사용되었을 수 있는 암호화 키와 상이하다.
제1 패키지 파일(22A)의 암호화 보호 및 제2 패키지 파일(22B)의 암호화 보호는 예컨대 동일한 암호화 키를 사용하여 실행되며, 이로 인해, 보안화되는 애플리케이션(34)으로서 자체를 위장하고자하는 임의의 다른 애플리케이션이 운영체계(20) 상에서 설치될 수 없음을 보장할 수 있다. 동일한 키로 암호화 보호되지 않았던 이 다른 애플리케이션은 수행 환경을 만들기 위한 애플리케이션(36)과 동일한 프로세스로 수행될 수 없다.
컴퓨팅 장치(10)의 동작은 이하에서 도 4 및 도 5를 사용하여 설명될 것이다.
제1 메모리(14)에 저장되기 전, 각각의 패키지 파일(22A 및 22B)은 앞서 기재된 바와 같이 패키지 파일을 생성하기 위한 애플리케이션(25)을 사용하여 만들어진다.
도 4는, 수행 환경을 만들기 위한 애플리케이션(36)에 의해 구현되는 보안화될 애플리케이션(34)을 실행하기 위한 환경을 동적으로 만들기 위한 방법을 예시한다.
초기 단계(100) 동안, 보안 라이브러리(24)가 로딩되어, 그러한 보안 라이브러리(24)에 포함된 보안 함수(37A, 37B 및 37C)가 보안화될 애플리케이션(34)의 후속한 론칭 동안 버추얼 머신(28)에 대해 이용 가능하다.
수행 환경을 만들기 위한 애플리케이션(36)은 그 다음에 단계(110) 동안 보안화될 그러한 애플리케이션(34)과 관련된 함수에 대한 호출(들) 중, 보안화되지 않은 함수에 대한 적어도 하나의 호출을 이전에 로딩된 보안 라이브러리(24)로부터의 대응하는 애플리케이션(37A, 37B 및 37C)에 대한 호출로 대체한다.
대체 단계(110)는 예컨대 보안화될 그러한 애플리케이션(34)과 보안화되지 않은 함수 사이의 동적인 링크의 삭제와, 보안화될 그러한 애플리케이션(34)과 보안 라이브러리(24)의 대응하는 함수(37A, 37B, 및 37C) 사이의 동적인 대체 링크의 만듦을 포함한다.
기재한 실시예에서, 보안화될 그러한 애플리케이션(34)과 관련된 함수 호출 중 데이터 저장 함수에 대한 호출 모두는 데이터 저장(37A)에 대한 보안 함수에 대한 호출로 대체된다.
보안화될 그러한 애플리케이션(34)과 관련된 함수 호출 중 다른 컴퓨팅 장치와의 데이터 교환 함수에 대한 호출 모두는 데이터 교환 보안 함수(37B)에 대한 호출로 대체된다.
보안화될 그러한 애플리케이션(34)과 관련된 함수 호출 중에서 디버깅 이벤트를 추가하는 함수에 대한 호출 모두는 디버깅 이벤트를 삭제하는 함수(37C)에 대한 호출로 대체된다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은, 그 다음에 단계(115) 동안, 단계(100) 동안 로딩된 보안 라이브러리(24)를 로킹하여, 이전 단계(110) 동안 실행된 함수 호출 대체(들)를 실행한다.
대체 단계(110)가 동적인 링크를 통해 대체 함수를 보안화될 애플리케이션 자체에나 버추얼 머신(28)에 도입함으로써 실행되며, 대체 함수는 수행 환경을 만들기 위한 애플리케이션(36)으로부터 유래될 때, 로킹 단계는 예컨대 대체 함수의 기준을 새로운 대체 함수에 대한 기준으로 교체하는 것으로 구성된다.
새로운 대체 함수 및 보안화 함수뿐만 아니라 단계(110 및 115)의 코드에 대응하는 코드가 보안 라이브러리(24)에 위치한다. 이 새로운 대체 함수는 대체 요청에 대한 필터링, 단계(110)에서 처리된 함수 호출의 대체에 대한 거부, 및 다른 함수 호출의 대체의 허용을 실행한다.
또한, 단계(120) 동안, 수행 환경을 만들기 위한 애플리케이션(36)은 그 다음에 컴퓨팅 장치(10)의 사용자의 인증을 요청하고, 성공적인 인증인 경우에, 보안 라이브러리(24)를 언로킹하기 위한 키를 복구한다.
또한, 단계(130) 동안, 수행 환경을 만들기 위한 애플리케이션(36)은 운영체계와 보안화될 애플리케이션 사이에 교환된 메시지를 인터셉트하여 처리하며, 그러한 메시지는 보안 라이브러리(24)에 의해 처리된다. 인터셉트된 메시지는 특히 대기 중 배치, 보안화될 애플리케이션(34)의 웨이킹 업, 제1 메모리(14)에서의 데이터 저장, 및 다른 컴퓨팅 장치와의 데이터 교환에 관한 것이다.
수행 환경을 만들기 위한 애플리케이션(36)은 마지막으로 단계(140) 동안 보안화될 애플리케이션(34)을 론칭한다.
보안화될 애플리케이션(34)이 론칭된 후, 이전에 실행된 호출 함수의 대체(들)를 통해, 보안화될 애플리케이션(34)에 의해 또는 부가적으로는 운영체계(20)를 통해 보안화될 애플리케이션에 대해 생성된 대응하는 호출(들)은 먼저 보안 라이브러리(24)에 전송되며, 라이브러리(24)가 호출을 승인한다면, 보안화되지 않은 라이브러리(48)를 필요로 했다.
보안화될 애플리케이션(34)을 실행하기 위한 환경의 만듦은 동적이며, 이는 그러한 애플리케이션이 수행될 때마다 그리고 그러한 애플리케이션을 실행하라는 명령의 운영체계(20)에 의한 수신에 이어 실행되기 때문이다.
도 5는 보안화될 애플리케이션(34)을 수행하기 위한 환경을 동적으로 만듦 및 그러한 애플리케이션의 수행을 예시한다.
제2 패키지 파일(22B)을 수행하라는 명령의 운영체계(20)에 의한 수신에 이어, 운영체계는, 제1 및 제2 구성 파일(33 및 35)에 포함된 정보에 따라, 활동 관리 서비스(49A(화살표(F1)))를 사용하여 수행 환경을 만들기 위한 애플리케이션(36)의 구성요소(#A)를 론칭함으로써 시작하여, 수행 환경을 만들기 위한 애플리케이션(36)은 보안화될 애플리케이션(34) 대신에 론칭된다.
수행 환경을 만들기 위한 애플리케이션(36)은 수행 환경을 만들기 위한 방법의 초기 단계(100)에 따라, 보안 라이브러리(24)(화살표(F2))를 다운로드한다. 그러한 보안 라이브러리에 포함된 보안 함수(37A, 37B 및 37C)는 그에 따라 버추얼 머신(28)의 후속한 동작에 이용 가능하다. 보안화될 애플리케이션(34)과 특정한 보안화되지 않은 함수 사이의 동적인 링크는 삭제되며, 대응하는 동적인 대체 링크가 이전에 기재된 단계(110)에 따라 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C)와 보안화될 애플리케이션(34) 사이에서 만들어진다(화살표(F3)).
구성요소(#A)는 그 다음에, 운영체계로부터, 보안화될 애플리케이션(34)의 대응하는 구성요소(A)의 론칭을 요청한다(화살표(F4)). 이러한 요청은 사용자의 인증을 요청하고, 그 후 성공적인 인증인 경우에 키를 복구하여 보안 라이브러리(24)를 언로킹하기 위해 보안 라이브러리(24)에 의해 인터셉트된다. 사용자의 성공적인 인증 이벤트에서, 요청은 운영체계의 활동 관리 서비스(49A)로 송신된다(화살표(F5)).
운영체계(20)는 그 후, 이전에 기재한 단계(140)에 따라 활동 관리 시스템(49A)을 사용하여 보안화될 애플리케이션(34)의 구성요소(A)를 론칭한다(화살표(F6)). 론칭은, 제1 구성 파일(33)에 포함된 정보에 따라 수행 환경을 만들기 위한 애플리케이션(36)의 프로세스와 동일한 프로세스로 실행된다.
보안화될 애플리케이션(34)의 수행 동안, 애플리케이션(A)은 운영체계(20)로부터 구성요소(B)의 론칭을 요청하며, 버추얼 머신(28)은 그러면, 동적 링크를 대체하기 위해 이전 단계를 통해 그러한 요청을 보안 라이브러리(24)에 보낸다(화살표(F7)). 요청은 그 후 보안 라이브러리(24)에 의해 변경되어, 운영체계(20)는 보안화될 애플리케이션(34)의 구성요소(B) 대신 구성요소(#B)를 론칭하며, 그 후 활동 관리 서비스(49A)에 전송된다(화살표(F8)). 운영체계(20)는 그 후 구성요소(#B)를 론칭한다(화살표(F9)).
구성요소(#B)는 그 후 운영체계로부터 보안화될 애플리케이션(34)의 대응하는 구성요소(B)의 론칭을 요청한다(화살표(F10)). 이러한 요청은 대응하는 보안 처리를 실행하기 위해 보안 라이브러리(24)에 의해 인터셉트되어, 운영체계의 활동 관리 서비스(49A)에 전송된다(화살표(F11)).
운영체계(20)는 그 후 활동 관리 서비스(49A)를 사용하여 보안화될 애플리케이션(34)의 구성요소(B)를 론칭한다(화살표(F12)). 다음으로, 데이터 파일을 저장하기 원하는 구성요소(B)는 그러한 목적을 위해 저장 함수를 호출한다(화살표(F13)). 이전의 동적 링크 대체 단계를 통해, 보안 라이브러리의 데이터 저장(37A)에 대한 보안 함수는 그 후 자동으로 호출되어, 데이터 파일은 제1 메모리(14)에 저장되기 전 그러한 보안 함수(37A)에 의해 암호화된다(화살표(F14)).
당업자는, 구성요소가 다른 컴퓨팅 장치와 데이터를 교환하기 원했었고, 그러한 목적을 위해 데이터 교환 함수를 호출했었다면, 데이터 교환 보안 함수(37B)가 유사하게 동적 링크를 대체하기 위한 이전 단계를 통해 자동으로 호출되었을 것임을 이해할 것이다.
당업자는, 구성요소가 디버깅 이벤트를 추가하기를 원했었고, 그러한 목적을 위해 디버깅 이벤트를 추가하기 위한 함수를 호출했었다면, 디버깅 이벤트를 삭제하기 위한 함수(37C)가 유사하게 동적 링크를 대체하기 위한 이전 단계를 통해 자동으로 호출되었을 것임을 또한 이해할 것이다.
도 5의 예시적인 실시예에서, 기재된 상이한 요청은 관리자 모드에서 실행되며, 그 후 커넬(26)을 통과한다. 당업자는, 특정한 요청이 택일적으로 커넬(26)을 통과하지 않고도 사용자 모드에서 이뤄질 수 도 있음을 이해할 것이다.
컴퓨팅 장치(10)는, 수행 환경을 만들기 위한 애플리케이션(36)을 사용하여 보안화될 애플리케이션(34)을 수행하기 위한 환경을 동적으로 만들기 위한 방법의 구현을 통해, 그에 따라 특히 구성요소의 론칭, 데이터의 저장 또는 다른 컴퓨팅 장치와의 데이터 교환에 관해, 애플리케이션(34)의 동작을 보안화 할 수 있으며, 데이터 교환은 보안 라이브러리(24)의 적절한 함수를 통해 자동으로 암호화된다.
이러한 애플리케이션(34)의 보안화는 단지 애플리케이션의 구성 파일(안드로이드®인 경우에 매니페스트 파일로 불림)을 재기록하는 것, 수행 환경을 만들기 위한 애플리케이션(36)을 추가하는 것 - 이것은, 제2 실시예에서 후술될 바와 같이 제2 패키지 파일(22B)에서나 택일적으로는 제1 패키지 파일(22A)에서 애플리케이션(34)으로 캡슐화됨 - , 및 보안 라이브러리(24)를, 라이브러리 세트(27)가 아직 그러한 라이브러리를 포함하지 않는다면, 추가하는 것을 필요로 한다.
당업자는, 이러한 보안화가 보안화될 애플리케이션(34)의 소스나 이진 코드의 임의의 변경이나 운영체계(20)의 임의의 변경을 필요로 하지 않음을 주목할 것이다.
도 6은, 이미 기재한 제1 실시예와 유사한 요소가 동일한 참조번호로 식별되며 다시 기재하지 않는 본 발명의 제2 실시예를 예시한다.
제2 실시예에 따르면, 적어도 하나의 소위 민감성 패키지 파일은 단일 패키지 파일, 즉 제1 패키지 파일(22A) 형태이다. 제1 패키지 파일(22A)은 이때 제1 구성 파일(33), 보안화될 애플리케이션(34) 및 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 포함한다. 제1 실시예와 유사하게, 보안화될 애플리케이션(34)과 수행 환경을 동적으로 만들기 위한 애플리케이션(36)은 예컨대 이진 파일의 형태이다.
제2 실시예에 따른 패키지 파일(22A)만을 생성하기 위한 방법은 이제 도 6에서 흐름도를 사용하여 기재될 것이다.
초기 단계(170) 동안, 보안화될 애플리케이션(34)과 초기 구성 파일은 추출 수단(40)을 사용하여 초기 패키지 파일로부터 추출된다.
그에 따라 추출된 초기 구성 파일은 다음으로 그 다음 단계(175) 동안 사용되어 제1 구성 파일(33)을 만든다.
제1 구성 파일(33)은 초기 구성 파일을 변경함으로써 만들어져, 수행 환경을 만들기 위한 애플리케이션(36)이 패키지 파일(22A)의 수행 동안 보안화될 애플리케이션(34) 대신에 론칭된다.
제1 구성 파일(33)은 예컨대 초기 구성 파일에 포함된 것과 동일한 구성요소 선언을 포함한다. 제1 구성 파일(33)에서 선언된 구성요소는 예컨대 대응하는 구성요소에 대한 초기 구성 파일에 명시된 것과 동일한 메시지 필터를 반복한다.
초기 구성 파일에서 선언된 활동을 위한, 인텐트 필터로도 불리는 메시지 필터는 예컨대 제1 구성 파일(33)에서 개명되어, 다른 애플리케이션이 그들 메시지 필터를 변경할 수 있는 것을 방지한다.
또한, 구성요소는 수출할 수 없는 것으로 제1 구성 파일(33)에서 선언된다.
또한, 제1 구성 파일(33)에서 선언된 프로세스의 이름은, 컴퓨팅 장치(10)가 프로세스를 식별하는 방법을 제어하기 위해, 미리 결정된 이름이 된다.
제1 구성 파일(33)을 만들기가 종료하면, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)의 이진 파일이 다음 단계(180) 동안 만들어진다. 만들어진 이진 파일은, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)이 보안 라이브러리(24)의 로딩을 구현하고, 보안화될 애플리케이션(34)과 관련된 하나 이상의 함수 호출 중에서부터, 적어도 하나의 보안화되지 않은 함수 호출을 보안 라이브러리(24)에 대한 대응하는 함수 호출로 대체하며, 그러한 대체 후, 보안화될 애플리케이션(34)을 론칭하는데 적절하도록 이뤄진다.
또한, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)은 이전에 로딩된 보안 라이브러리(24)와 실행된 함수 호출 대체(들)를 로킹하는데 적절하다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은 컴퓨팅 장치(10)의 사용자의 인증을 요청하며, 그 후 성공적인 인증인 경우에, 키를 복구하여 보안 라이브러리(24)를 언로킹하는데 적절하다.
또한, 수행 환경을 만들기 위한 애플리케이션(36)은 운영체계와 보안화될 애플리케이션(34) 사이에서 교환되는 메시지를 인터셉트 및 처리하는데 적절하며, 그러한 메시지는 보안 라이브러리(24)에 의해 처리된다. 인터셉트된 메시지는 특히 대기, 보안화될 애플리케이션(34)의 웨이킹 업, 제1 메모리(14)로의 데이터 저장 및 다른 컴퓨팅 장치와의 데이터 교환에 관한 것이다.
다음의 단계(185) 동안, 그에 따라 만들어진 수행 환경을 동적으로 만들기 위한 애플리케이션(36)의 이진 파일은 그 다음에 단계(175) 동안 이전에 만들어진 제1 구성 파일(33)로 캡슐화되며, 제1 패키지 파일(22A)에서 보안화될 애플리케이션(34)의 이진 파일로 캡슐화된다. 당업자는, 보안화될 애플리케이션(34)의 이진 파일이 생성 방법을 사용하여 패키지 파일(22A)의 생성 동안 변경되지 않음을 관찰할 것이다.
캡슐화 단계(185) 동안, 수행 환경을 동적으로 만들기 위한 애플리케이션(36)의 이진 파일은 패키지 파일에서의 이진 파일을 위해 제공된 디폴트 위치에 저장된다. 보안화될 애플리케이션(34)의 이진 파일은 제2 위치에 저장되며, 이로 인해 또한 수행 환경을 만들기 위한 애플리케이션(36)은 패키지 파일(22A)의 수행 동안 보안화될 애플리케이션(34) 대신에 론칭될 수 있다.
또한, 패키지 파일(들)을 생성하기 위한 애플리케이션(25)은 또한 보안 라이브러리(24)를 패키지 파일(22A)에 추가한다.
또한, 부가적인 단계(190) 동안, 생성된 패키지 파일(22A)은 보호 키와 암호화 수단(47)을 사용하여 암호화 보호된다.
이 제2 실시예에 따른 컴퓨팅 장치(10)의 동작은 도 4 및 도 5에 비추어서 제1 실시예에 대해 기재된 것과 동일하다.
제2 실시예의 장점은 이미 기재된 제1 실시예에 대한 것과 유사하며, 다시 기재하지 않는다. 이 제2 실시예에 따른 생성 방법은 보안화될 그러한 애플리케이션(34)을 보안화하기 위해 단일 패키지 파일(22A)을 생성하는 장점을 더 갖는다. 이로 인해, 이때 운영체계(20)에서 설치 절차를 간략화할 수 있으며, 더 일반적으로는, 보안화될 애플리케이션(34)에 대한 이러한 보안화 솔루션의 배치를 간략화할 수 있다.
본 발명에 따른 생성 방법으로 인해, 운영체계의 코드, 애플리케이션 환경 및 보안화될 애플리케이션(34)의 변경을 제한하면서, 패키지 파일의 수행 동안 애플리케이션(34)을 보안화 할 수 있음을 알 수 있다.
컴퓨팅 디바이스 및 컴퓨팅 장치뿐만 아니라 패키지 파일을 생성하기 위한 방법과 보안화될 애플리케이션의 수행 환경을 동적으로 만들기 위한 방법을 애플리케이션을 수행할 수 있는 버추얼 머신을 포함한 운영체계에 관해 기재하였을지라도, 당업자는, 본 발명이 또한 버추얼 머신을 포함하지 않는 운영체계에 적용되며, 애플리케이션은 이때 정보 처리 유닛의 프로세서에 의해서 직접 수행됨을 이해할 것이다.
다른 양상에 따르면, 본 발명은 그러한 애플리케이션(34)을 보안화하기 위해 보안화될 애플리케이션(34)을 위한 수행 환경을 동적으로 만들기 위한 방법에 관한 것이며, 이 방법은 정보 처리 유닛(12)과 메모리(14)를 포함하는 컴퓨팅 장치(10)에 의해 구현되며, 메모리(14)는 정보 처리 유닛(12)과 관련되며 운영체계(20), 보안화될 애플리케이션(34) 및 적어도 하나의 보안 함수(37A, 37B, 및 37C)를 포함하는 보안 라이브러리(24)를 포함하며, 운영체계(20)는 보안화되지 않은 함수 라이브러리(48)를 포함하는 함수 라이브러리 세트(27)를 포함하며, 보안화될 애플리케이션(34)은 그 수행 동안 보안화되지 않은 함수 라이브러리(48)의 함수를 호출하도록 설계된다.
수행 환경을 동적으로 만들기 위한 방법은, 메모리(14)에 저장된 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 통해 구현되는 다음의 단계를 포함한다:
- 보안 라이브러리(24)를 로딩하는 단계(100),
- 보안화될 애플리케이션(34)과 관련된 함수 호출(들) 중 보안화되지 않은 함수에 대한 적어도 하나의 호출을, 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C)에 대한 호출로 대체하는 단계(110), 및
- 대체 단계(110) 후 보안화될 애플리케이션(34)을 론칭하는 단계(140).
또한 및 부가적으로, 대체 단계(110)는 보안화될 그러한 애플리케이션(34)과 보안화되지 않은 함수 사이의 동적 링크의 삭제, 보안화될 그러한 애플리케이션(34)과 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C) 사이의 동적인 대체 링크의 만듦을 포함한다.
또한 및 부가적으로, 보안화될 그러한 애플리케이션(34)과 관련된 함수 호출(들) 중, 데이터 저장 함수에 대한 호출 모두는 데이터 저장을 보안화하기 위한 함수(37A)에 대한 호출로 대체된다.
또한 및 부가적으로, 보안화될 그러한 애플리케이션(34)과 관련된 함수 호출(들) 중, 다른 컴퓨팅 장치와의 데이터 교환 함수에 대한 호출 모두는 다른 컴퓨팅 장치와의 데이터 교환을 보안화하는 함수(37B)에 대한 호출로 대체된다.
또한 및 부가적으로, 보안화될 그러한 애플리케이션(34)과 관련된 함수 호출(들) 중, 디버깅 이벤트 추가 함수에 대한 호출 모두는 디버깅 이벤트를 삭제하기 위한 함수(37C)에 대한 호출로 대체된다.
또한 및 부가적으로, 수행 환경을 동적으로 만들기 위한 방법은, 애플리케이션(140)을 론칭하기 위한 단계에 대해, 로딩 단계(100) 동안 로딩된 보안 라이브러리(24)와 대체 단계(110) 동안 실행된 함수 호출 대체(들)를 로킹하기 위한 단계(115)를 더 포함한다.
또한 및 부가적으로, 수행 환경을 동적으로 만들기 위한 방법은, 애플리케이션을 론칭하는 단계(140)에 대해, 컴퓨팅 장치(10)의 사용자를 인증하고 키를 복구하여 보안 라이브러리(24)를 언로킹하는 단계(120)를 더 포함한다.
또한 및 부가적으로, 수행 환경을 동적으로 만들기 위한 방법은, 애플리케이션을 론칭하는 단계(140)에 대해, 운영체계(20)와 보안화될 애플리케이션(34) 사이의 메시지 교환을 인터셉트하여, 보안 라이브러리(24)의 대응하는 함수를 사용하여 그러한 메시지를 처리하는 단계(130)를 더 포함한다.
수행 환경을 만들기 위한 애플리케이션(36)은 바람직하게는 보안화될 애플리케이션(들)(34) 전용인 애플리케이션이며, 운영체계(20)와 차별화된다.
이 다른 양상에 따르면, 본 발명은 또한, 컴퓨팅 장치(10)에 통합된 정보 처리 유닛(12)에 의해 구현될 때, 앞서 한정된 바와 같은 수행 환경을 동적으로 만들기 위한 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
이 다른 양상에 따르면, 본 발명은 또한, 정보 처리 유닛(12)과, 운영 체계(20), 보안화될 적어도 하나의 애플리케이션(34) 및 적어도 하나의 보안 함수(37A, 37B 및 37C)를 포함하는 보안 라이브러리(24)를 포함하는 메모리(14)를 포함하는 컴퓨팅 장치(10)에 관한 것이며, 메모리(14)는 정보 처리 유닛(12)과 관련된다.
운영체계(20)는 보안화되지 않은 함수 라이브러리(48)를 포함하는 함수 라이브러리 세트(27)를 포함하며, 보안화될 애플리케이션(34)은 보안화되지 않은 함수 라이브러리(48)의 함수를 호출하도록 설계된다.
메모리(14)는 보안화될 애플리케이션(34)을 위한 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 더 포함하며, 수행 환경을 만들기 위한 애플리케이션(36)은 보안 라이브러리(24)를 로딩하기 위한 수단(50), 보안화될 애플리케이션(34)과 관련된 함수 호출(들) 중, 보안화되지 않은 함수에 대한 적어도 하나의 호출을 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C)에 대한 호출로 대체하기 위한 수단(52), 및 보안 함수(37A, 37B 및 37C)에 대한 호출에 의한 보안화되지 않은 함수 호출의 대체 후 보안화될 애플리케이션(34)을 론칭하기 위한 수단(58)을 포함한다.

Claims (11)

  1. 보안화될 애플리케이션(34)과 초기 구성 파일을 포함하는 초기 패키지 파일로부터, 상기 애플리케이션(34)을 보안화하기 위한 적어도 하나의 패키지 파일(22A 및 22B)을 생성하는 방법 - 상기 생성 방법은 정보 처리 유닛(19A)과 메모리(19B)를 포함하는 컴퓨팅 디바이스(18)에 의해 구현됨 - 으로서,
    패키지 파일(22A 및 22B)을 생성하기 위한 애플리케이션(25) - 상기 애플리케이션(25)은 상기 컴퓨팅 디바이스(18)의 메모리(19B)에 저장됨 - 에 의해 실행되는 다음의 단계:
    - 상기 초기 패키지 파일로부터, 보안화될 상기 애플리케이션(34) 및 상기 초기 구성 파일을 추출하는 단계(70; 170),
    - 상기 초기 구성 파일로부터 제1 구성 파일(33)을 만드는 단계(75; 175),
    - 보안화될 상기 애플리케이션(34)에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 만드는 단계(80; 180) - 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)은, 보안 라이브러리(24)의 로딩(100)을 구현하고, 보안화될 상기 애플리케이션(34)과 관련된 함수 호출이나 함수 호출들로부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C)에 대한 호출로 대체하고(110), 상기 대체(110) 후 보안화될 상기 애플리케이션(34)을 론칭(launching)하는데(140) 적절함 - , 및
    - 제1 패키지 파일(22A)에서 보안화될 상기 애플리케이션(34)과 상기 제1 구성 파일(33)을 캡슐화하는 단계(85; 185) - 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)은 상기 제1 패키지 파일(22A)에서 캡슐화되거나(185) 제2 패키지 파일(22B)에서 캡슐화되며(80), 상기 제2 패키지 파일(22B)은 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)과 제2 구성 파일(35)을 포함함 -
    를 포함하는 것을 특징으로 하는 생성 방법.
  2. 청구항 1에 있어서, 상기 제1 구성 파일을 만드는 단계(75; 175) 동안, 상기 제1 구성 파일(33)은 상기 초기 구성 파일을 변경함으로써 만들어져, 수행 환경을 만들기 위한 상기 애플리케이션(36)은 대응하는 패키지 파일(22A 및 22B)의 수행 동안 보안화될 상기 애플리케이션(34) 대신에 론칭되는, 생성 방법.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 제1 패키지 파일(22A)은 상기 제1 구성 파일(33)과 보안화될 상기 애플리케이션(34)을 포함하며, 상기 제2 패키지 파일(22B)은 상기 제2 구성 파일(35)과 수행 환경을 만들기 위한 상기 애플리케이션(36)을 포함하며,
    보안화될 상기 애플리케이션(34)과 수행 환경을 만들기 위한 상기 애플리케이션(36) 중 각각의 애플리케이션은 적어도 하나의 구성요소를 포함하며, 각각의 구성 파일(33 및 35)은 하나 이상의 구성요소 선언(declaration)을 포함하며,
    상기 방법은 상기 제2 구성 파일(35)을 만드는 단계(75)를 포함하며, 상기 제2 구성 파일(35)은 상기 초기 구성 파일과 동일한 구성요소 선언을 포함하는, 생성 방법.
  4. 청구항 3에 있어서, 각각의 구성 파일(33 및 35)에서의 적어도 하나의 선언된 구성요소는 콘텐츠 제공자이며, 상기 콘텐츠 제공자는, 상기 제1 구성 파일(33)에서 선언된 콘텐츠 제공자의 우선순위보다 더 높은 우선순위로 상기 제2 구성 파일(35)에서 선언되어, 수행 환경을 만들기 위한 상기 애플리케이션(36)의 콘텐츠 제공자가 보안화될 상기 애플리케이션(34)의 콘텐츠 제공자 전에 론칭되는, 생성 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 상기 제1 패키지 파일(22A)은 상기 제1 구성 파일(33)과 보안화될 상기 애플리케이션(34)을 포함하며, 상기 제2 패키지 파일(22B)은 상기 제2 구성 파일(35)과 수행 환경을 만들기 위한 상기 애플리케이션(36)을 포함하고,
    상기 초기 구성 파일은 활동 선언과, 선언된 활동과 관련된 메시지 필터를 포함하며,
    상기 제1 구성 파일을 만드는 단계(75) 동안, 상기 초기 구성 파일에서 선언된 활동에 대한 메시지 필터는 상기 제1 구성 파일(33)에서 삭제되는, 생성 방법.
  6. 청구항 1 또는 청구항 2에 있어서, 상기 제1 패키지 파일(22A)은 상기 제1 구성 파일(33), 보안화될 상기 애플리케이션(34) 및 수행 환경을 만들기 위한 상기 애플리케이션(36)을 포함하며, 상기 제1 패키지 파일(22A)은, 수행 환경을 만들기 위한 상기 애플리케이션(36)이 보안화될 상기 애플리케이션(34) 전에 론칭되도록 구성되는, 생성 방법.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서, 상기 만드는 단계(80; 180) 동안 만들어진, 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)은, 보안화될 상기 애플리케이션(34)과 다른 보안화되지 않은 애플리케이션 사이의 상호작용이나 보안화될 상기 애플리케이션(34)과 운영체계(20) 사이의 상호작용을, 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)의 미리 한정된 필터링 규칙에 따라 필터링하도록 더 적응되는, 생성 방법.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 생성된 상기 또는 각각의 패키지 파일(22A 및 22B)을 적어도 하나의 보호 키로 암호화 보호하는 단계(90; 190)를 더 포함하는 생성 방법.
  9. 청구항 8에 있어서, 상기 제1 패키지 파일(22A)은 상기 제1 구성 파일(33)과 보안화될 상기 애플리케이션(34)을 포함하며, 상기 제2 패키지 파일(22B)은 상기 제2 구성 파일(35)과 수행 환경을 만들기 위한 상기 애플리케이션(36)을 포함하며,
    상기 암호화 보호 단계(90) 동안, 상기 제1 패키지 파일(22A)의 암호화 보호 및 상기 제2 패키지 파일(22B)의 암호화 보호는 동일한 보호 키로 실행되는, 생성 방법.
  10. 컴퓨터 디바이스(18)에 통합되는 정보 처리 유닛(19A)에 의해 구현될 때, 청구항 1 내지 청구항 9 중 어느 한 항에 기재된 생성 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품.
  11. 정보 처리 유닛(19A) 및 상기 정보 처리 유닛(19A)과 관련된 메모리(19B)를 포함하는 컴퓨팅 디바이스(18)로서,
    상기 메모리(19B)는 보안화될 애플리케이션(34)과 초기 구성 파일을 포함하는 초기 패키지 파일로부터 상기 애플리케이션(34)을 보안화하기 위한 적어도 하나의 패키지 파일(22A 및 22B)을 생성하기 위한 애플리케이션(25)을 포함하며,
    패키지 파일(들)을 생성하기 위한 상기 애플리케이션(25)은:
    + 상기 초기 패키지 파일로부터 보안화될 상기 애플리케이션(34)과 상기 초기 구성 파일을 추출하기 위한 수단(40),
    + 상기 초기 구성 파일로부터 제1 구성 파일(33)을 만들기 위한 수단(42),
    + 보안화될 상기 애플리케이션(34)에 대한 수행 환경을 동적으로 만들기 위한 애플리케이션(36)을 만들기 위한 수단(44) - 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)은, 보안 라이브러리(24)의 로딩(100)을 구현하고, 보안화될 상기 애플리케이션(34)과 관련된 하나 이상의 함수 호출(들) 중에서부터 보안화되지 않은 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리(24)의 대응하는 함수(37A, 37B 및 37C)에 대한 호출로 대체하고(110), 대체 단계(110) 후 보안화될 상기 애플리케이션(34)을 론칭하는데(140) 적절함 - , 및
    + 제1 패키지 파일(22A)에서 보안화될 상기 애플리케이션(34)과 상기 제1 구성 파일(33)을 캡슐화하기 위한 수단(46) - 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)은 상기 제1 패키지 파일(22A)에서 캡슐화되거나(185) 제2 패키지 파일(22B)에서 캡슐화되며(80), 그 후 상기 제2 패키지 파일(22B)은 수행 환경을 동적으로 만들기 위한 상기 애플리케이션(36)과 제2 구성 파일(35)을 포함함 - 을 포함하는 것을 특징으로 하는, 컴퓨팅 디바이스.
KR1020147011390A 2011-10-06 2012-10-08 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스 KR20140077186A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR11/03046 2011-10-06
FR1103046A FR2981174B1 (fr) 2011-10-06 2011-10-06 Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes
PCT/EP2012/069876 WO2013050602A1 (fr) 2011-10-06 2012-10-08 Procede de generation, a partir d'un fichier initial de paquetage comportant une application a securiser et un fichier initial de configuration, d'un fichier de paquetage pour la securisation de l'application, produit programme d'ordinateur et dispositif informatique associes

Publications (1)

Publication Number Publication Date
KR20140077186A true KR20140077186A (ko) 2014-06-23

Family

ID=46980981

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147011782A KR20140077188A (ko) 2011-10-06 2012-10-08 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치
KR1020147011390A KR20140077186A (ko) 2011-10-06 2012-10-08 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147011782A KR20140077188A (ko) 2011-10-06 2012-10-08 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치

Country Status (6)

Country Link
US (2) US9405520B2 (ko)
EP (2) EP2764462B1 (ko)
KR (2) KR20140077188A (ko)
CN (2) CN103975338A (ko)
FR (1) FR2981174B1 (ko)
WO (2) WO2013050602A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160020294A (ko) * 2014-08-13 2016-02-23 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2981174B1 (fr) 2011-10-06 2013-12-20 Thales Sa Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
DE102013003204A1 (de) * 2013-02-26 2014-08-28 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zum Betreiben einer Ausführungsumgebung für Applikationen
CN104134034B (zh) * 2013-06-13 2015-10-21 腾讯科技(深圳)有限公司 控制应用运行的方法和装置
US20150113502A1 (en) * 2013-10-18 2015-04-23 Openpeak Inc. Method and system for encapsulation of application
US20150113506A1 (en) * 2013-10-18 2015-04-23 Openpeak Inc. Method and system for adaptive loading of application
JP6462114B2 (ja) 2014-08-20 2019-01-30 クワーン チー インテリジェント フォトニック テクノロジー リミテッド オペレーティングシステムにおけるハードウェア・デバイス制御方法及びモジュール
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
CN104504324B (zh) * 2014-12-03 2017-09-29 深信服科技股份有限公司 移动应用认证加固方法和系统
US9232078B1 (en) 2015-03-16 2016-01-05 Openpeak Inc. Method and system for data usage accounting across multiple communication networks
CN104915266B (zh) * 2015-06-15 2019-05-28 上海海漾软件技术有限公司 一种应用程序保护方法及装置
FR3043474B1 (fr) * 2015-11-09 2017-12-22 Thales Sa Procede et systeme d'aide a la precision d'un pilote pour le pilotage d'un aeronef et produit programme d'ordinateur associe
CN106203085B (zh) * 2016-07-08 2019-03-01 东软集团股份有限公司 一种编译方法及装置
US10042620B1 (en) * 2016-11-03 2018-08-07 Palantir Technologies Inc. Approaches for amalgamating disparate software tools
DE102017204218A1 (de) * 2017-03-14 2018-09-20 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern eines Gerätes
CN107480513B (zh) * 2017-08-17 2020-09-11 深信服科技股份有限公司 一种认证实现方法及装置、计算机装置、可读存储介质
DE102017214591A1 (de) * 2017-08-22 2019-02-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schützen eines Gerätes
CN110147227B (zh) * 2018-07-06 2023-07-18 杭州涂鸦信息技术有限公司 一种用于技能配置的程序安装包生成方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US7398532B1 (en) * 2000-03-02 2008-07-08 Hewlett-Packard Development Company, L.P. System and method for establishing a secure execution environment for a software process
US6836888B1 (en) * 2000-03-17 2004-12-28 Lucent Technologies Inc. System for reverse sandboxing
US20020065776A1 (en) * 2000-11-29 2002-05-30 Brad Calder Method and process for virtualizing file system interfaces
US20020066021A1 (en) * 2000-11-29 2002-05-30 Chien Andrew A. Method and process for securing an application program to execute in a remote environment
US7260820B1 (en) * 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US7475408B2 (en) * 2003-02-27 2009-01-06 Microsoft Corporation Hosting an application in one of a plurality of execution environments
US8266700B2 (en) * 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
US7725737B2 (en) * 2005-10-14 2010-05-25 Check Point Software Technologies, Inc. System and methodology providing secure workspace environment
US7693838B2 (en) * 2005-11-12 2010-04-06 Intel Corporation Method and apparatus for securely accessing data
US7725922B2 (en) * 2006-03-21 2010-05-25 Novell, Inc. System and method for using sandboxes in a managed shell
CN101593257B (zh) * 2008-05-27 2011-02-16 北京飞天诚信科技有限公司 基于.Net虚拟机的软件保护系统和方法
US20110289294A1 (en) * 2009-12-14 2011-11-24 Manabu Maeda Information processing apparatus
US9684785B2 (en) * 2009-12-17 2017-06-20 Red Hat, Inc. Providing multiple isolated execution environments for securely accessing untrusted content
US20120159567A1 (en) * 2010-12-21 2012-06-21 Enterproid Hk Ltd Contextual role awareness
EP2469743B1 (en) * 2010-12-23 2019-02-20 Nagravision S.A. A system to identify a user of television services by using biometrics
US8549656B2 (en) 2011-02-11 2013-10-01 Mocana Corporation Securing and managing apps on a device
FR2981174B1 (fr) 2011-10-06 2013-12-20 Thales Sa Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160020294A (ko) * 2014-08-13 2016-02-23 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템

Also Published As

Publication number Publication date
EP2764462B1 (fr) 2019-03-13
US20140223545A1 (en) 2014-08-07
WO2013050602A1 (fr) 2013-04-11
CN103988206A (zh) 2014-08-13
CN103975338A (zh) 2014-08-06
EP2764463A1 (fr) 2014-08-13
FR2981174B1 (fr) 2013-12-20
US9405520B2 (en) 2016-08-02
FR2981174A1 (fr) 2013-04-12
EP2764462A1 (fr) 2014-08-13
US20140223426A1 (en) 2014-08-07
WO2013050600A1 (fr) 2013-04-11
KR20140077188A (ko) 2014-06-23

Similar Documents

Publication Publication Date Title
KR20140077186A (ko) 보안화될 애플리케이션과 초기 구성 파일을 포함한 초기 패키지 파일로부터, 애플리케이션을 보안화하기 위한 패키지 파일을 생성하는 방법, 및 관련 컴퓨터 프로그램 제품과 컴퓨팅 디바이스
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
CN107220083A (zh) 一种安卓系统中免安装运行应用程序的方法和系统
US8955142B2 (en) Secure execution of unsecured apps on a device
US8549656B2 (en) Securing and managing apps on a device
US8812868B2 (en) Secure execution of unsecured apps on a device
Li et al. Android malware forensics: Reconstruction of malicious events
US9697382B2 (en) Method and system for providing security policy for Linux-based security operating system
US20120304310A1 (en) Secure execution of unsecured apps on a device
US10114932B2 (en) Adapting a mobile application to a partitioned environment
Zdziarski Hacking and securing iOS applications: stealing data, hijacking software, and how to prevent it
US9344406B2 (en) Information processing device, information processing method, and computer program product
US9672353B2 (en) Securing and managing apps on a device using policy gates
Choi et al. Large-scale analysis of remote code injection attacks in android apps
CN106446682A (zh) 安全防护方法及装置
CN116050537A (zh) 联邦学习方法、装置、可读存储介质及电子设备
Nazar et al. Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service
Aron et al. Overview of security on mobile devices
US20230058046A1 (en) Apparatus and Method for Protecting Shared Objects
Lei et al. MeadDroid: Detecting monetary theft attacks in Android by DVM monitoring
CN115080983A (zh) 内核函数隐藏方法、装置、终端设备及存储介质
Schwendemann ERNW NEWSLETTER 55/SEPTEMBER 2016
Zamani et al. Android Basic Architecture including Operating System using their Application
Fledel BEN-GURION UNIV FACUL DEPARTMENT OF

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid