KR20140077188A - 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치 - Google Patents

어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치 Download PDF

Info

Publication number
KR20140077188A
KR20140077188A KR1020147011782A KR20147011782A KR20140077188A KR 20140077188 A KR20140077188 A KR 20140077188A KR 1020147011782 A KR1020147011782 A KR 1020147011782A KR 20147011782 A KR20147011782 A KR 20147011782A KR 20140077188 A KR20140077188 A KR 20140077188A
Authority
KR
South Korea
Prior art keywords
application
function
secured
call
library
Prior art date
Application number
KR1020147011782A
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 KR20140077188A publication Critical patent/KR20140077188A/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/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
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 운영 체계(20)에서 보안될 어플리케이션(34)에 대한 실행 환경의 동적 생성을 위한 방법에 관한 것으로서, 하나 이상의 비보안 함수(39)를 포함하는 라이브러리 세트(26)를 포함하며, 그 실행 동안, 보안될 어플리케이션(34)은 하나 이상의 비보안 함수를 포함하는 라이브러리(39)에 속하는 함수를 호출하려 한다. 이 방법은 적어도 하나의 보안 함수를 포함하는 보안 라이브러리(24)를 포함하는 컴퓨팅 장치(10)에 의해 수행되며, 상기 보안 라이브러리(24)를 로딩하는 단계; 상기 보안될 어플리케이션(34)과 관련된 함수 호출(들) 중에서 비보안 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리(24)로부터의 대응하는 함수에 대한 호출로 대체하는 단계를 포함한다.

Description

어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치{METHOD FOR THE DYNAMIC CREATION OF AN APPLICATION EXECUTION ENVIRONMENT FOR SECURING SAID APPLICATION, AND ASSOCIATED COMPUTER PROGRAM PRODUCT AND COMPUTING DEVICE}
본 발명은 어플리케이션을 보안하기 위하여 보안될 어플리케이션 실행을 위한 환경의 동적 생성을 위한 방법에 관한 것이며, 상기 방법은 정보 처리 유닛 및 메모리를 포함하는 컴퓨팅 장치로 구현되며, 상기 메모리는 정보 처리 유닛과 관련되며, 운영 체계를 포함하며, 보안될 어플리케이션 및 보안 라이브러리는 적어도 하나의 보안 기능을 포함하며, 운영 체계는 비보안 함수 라이브러리를 포함하는 함수 라이브러리 세트를 포함하며, 상기 보안될 어플리케이션은 실행 동안 상기 비보안 함수 라이브러리의 함수를 호출하도록 적응된다.
본 발명은 또한 컴퓨팅 장치에 일체화된 정보 처리 유닛에 의해 구현되는 경우 그러한 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 또한 컴퓨팅 장치에 관한 것으로:
- 정보 처리 유닛,
- 운영 체계, 적어도 하나의 보안될 어플리케이션 및 적어도 하나의 보안 함수를 포함하는 보안 라이브러리를 포함하는 메모리 - 상기 메모리는 상기 정보 처리 유닛과 관련됨 - , 를 포함하며,
상기 운영 체계는 비보안 함수 라이브러리를 포함하는 함수 라이브러리 세트를 포함하며, 상기 보안될 어플리케이션은 상기 비보안 함수 라이브러리의 함수를 호출하도록 디자인된다.
컴퓨팅 장치로는 전술한 유형의 이동 단말과 같은 것이 공지된다. 이동 단말은 안드로이드 플랫폼 호스팅 어플리케이션에 의해 관리된다. 안드로이드 플랫폼은 리눅스 커널, C 또는 C++ 언어의 함수 라이브러리 세트, 및 안드로이드 플랫폼에 의해 호스트되는 어플리케이션을 실행할 수 있는 달빅(Dalvik) 가상 머신을 포함한다.
민감 어플리케이션의 동작은 이들 어플리케이션에 의해 처리되는 데이터를 보고하고 이동 단말의 분실 또는 도난으로 인한 또는 이동 단말과 다른 컴퓨팅 장치 조각 사이의 통신의 인터셉션으로 인한 정보 복구의 위험에 맞서기 위하여 보안되어야 한다. 일 데이터 보안 해결책은 보안될 어플리케이션 각각의 소스 또는 이진 코드의 수정으로 구성되어, 이들이 적절한 보안 함수를 포함하는 특수화된 라이브러리를 호출하도록 한다.
그러나, 그러한 어플리케이션의 보안은 특히 제한적인 어플리케이션 각각의 소스 또는 이진 코드의 수정을 필요로 하며, 코드의 수정이 제3자에 의해 수행된 경우 어플리케이션의 제공자에 의해 항상 허용되는 것은 아니다.
그러므로, 본 발명의 일 목적은 보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 방법 및 운영 체계의 코드, 어플리케이션 환경 또는 보안될 어플리케이션에 대한 수정을 제한하면서 어플리케이션을 보안할 수 있도록 하는 관련 컴퓨팅 장치를 제안하는 것이다.
이 목적을 위하여, 본 발명은 전술한 유형의 실행 환경의 동적 생성을 위한 방법에 관한 것으로, 상기 방법은 상기 메모리 내에 저장된 실행 환경의 동적 생성을 위한 어플리케이션에 의해 구현되는 이하 단계들:
- 상기 보안 라이브러리를 로딩하는 단계,
- 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서 비보안 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리의 대응하는 함수에 대한 호출로 대체하는 단계, 및
- 상기 대체하는 단계 이후에 상기 보안될 어플리케이션을 런칭하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 유리한 측면에 따르면, 상기 방법은 단독의 또는 임의의 기술적으로 가능한 조합에 따른 하나 이상의 이하 특징을 포함한다:
- 상기 대체하는 단계는 상기 보안될 어플리케이션과 비보안 함수 사이의 동적 링크를 제거하는 단계 및 상기 보안될 어플리케이션과 상기 보안 라이브러리의 대응하는 함수 사이의 동적 대체 링크를 생성하는 단계를 포함하고;
- 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 데이터 저장 함수에 대한 호출 전체가 데이터 저장의 보안 함수에 대한 호출로 대체되고;
- 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 다른 컴퓨팅 장치와 데이터 교환하는 함수에 대한 호출 전체가 상기 다른 컴퓨팅 장치와의 데이터 교환을 보안하는 함수에 대한 호출로 대체되고;
- 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 디버깅 이벤트를 추가하기 위한 함수에 대한 호출 전체가 디버깅 이벤트를 삭제하기 위한 함수에 대한 호출로 대체되고;
- 상기 방법은 상기 어플리케이션을 런칭하는 단계 이전에, 상기 로딩하는 단계 동안 로딩된 상기 보안 라이브러리를 잠금하고 상기 대체 단계 동안 함수 호출 대체를 수행하기 위한 단계를 더 포함하고;
- 상기 방법은 상기 어플리케이션을 런칭하는 단계 이전에, 상기 컴퓨팅 장치의 사용자를 인증하고 상기 보안 라이브러리를 잠금해제하기 위한 키를 복구하기 위한 단계를 더 포함하고;
- 상기 방법은 상기 운영 체계와 상기 보안될 어플리케이션 사이의 메시지 교환을 인터셉트하고 상기 보안 라이브러리의 대응하는 함수를 이용하여 상기 메시지를 처리하기 위한 단계를 더 포함하고;
- 상기 실행 환경을 생성하기 위한 어플리케이션은 보안될 어플리케이션에 전용인 어플리케이션이고, 상기 운영 체계와는 구별되며;
- 상기 운영 체계는 상기 어플리케이션을 실행하도록 적응된 가상 머신을 포함하며;
- 상기 운영 체계는 안드로이드(Android)이고, 상기 가상 머신은 달빅 가상 머신이다.
본 발명은 또한 컴퓨팅 장치에 일체화된 정보 처리 유닛에 의해 구현되는 경우, 전술한 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 또한 전술한 유형의 컴퓨팅 장치에 관한 것으로, 상기 메모리는 보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 어플리케이션을 더 포함하며, 상기 실행 환경을 생성하기 위한 어플리케이션은 보안 라이브러리를 로딩하기 위한 수단, 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서 비보안 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리의 대응하는 함수에 대한 호출로 대체하기 위한 수단, 및 상기 비보안 함수에 대한 호출을 상기 보안 함수에 대한 호출로 대체한 이후의 상기 보안될 어플리케이션을 런칭하기 위한 수단을 포함한다.
본 발명의 이러한 특징 및 이점은 전적으로 예로서 제공된 이하의 상세한 설명을 읽고 첨부된 도면을 참조하면 분명할 것이다.
도 1은 본 발명에 따른 컴퓨팅 장치의 도식화된 도면.
도 2는 도 1의 컴퓨팅 장치의 메모리의 도식화된 도면.
도 3은 본 발명에 따른 보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 방법의 흐름도.
도 4는 보안될 어플리케이션에 대한 실행 환경의 동적 생성 및 상기 어플리케이션의 실행을 도시하는 도면.
도 1에서, 이동 단말과 같은 컴퓨팅 장치(10)는 정보 처리 유닛(12), 정보 처리 유닛과 관련된 메모리(14) 및 스크린(15)을 포함한다.
도 1의 실시예에서, 컴퓨팅 장치(10)는 휴대폰이며, 정보 처리 유닛에 연결되는 무선 안테나(16) 및 무선 송수신기(18)를 더 포함한다.
정보 처리 유닛(12)은 예를 들면 데이터 프로세서를 포함한다.
메모리(14)는 운영 체계(20) 및 복수개의 제1 패키지 파일(21) 및 제2 패키지 파일(22)을 포함한다.
추가로, 메모리(14)는 제3 패키지 파일(23)을 포함한다.
메모리(14)는 또한 다른 컴퓨팅 장치와의 데이터 저장 및/또는 데이터 교환을 보안할 수 있는 보안 라이브러리(24)를 포함한다.
무선 송수신기(18)는 무선 안테나(16)를 통해 무선 신호를 송신 및 수신하기 위한 수단을 포함한다. 무선 송수신기(18)는 GPRS(General Packet Radio Service) 통신 규격 또는 UMTS(Universal Mobile Telecommunication System)에 따른다.
무선 안테나(16) 및 무선 송수신기(18)는 컴퓨팅 장치(10)와 동일한 통신 규격에 따른 무선 안테나 및 송수신기를 포함하는 다른 컴퓨팅 장치 사이에 무선 링크를 설정하도록 할 수 있다.
운영 체계(20)는 커널(25), 함수 라이브러리 세트(26), 가상 머신(28) 및 어플리케이션 프레임워크(30)를 포함한다.
제1 패키지 파일(21) 각각은 제1 이진 파일 형태의 비-민감 어플리케이션(31) 및 제1 구성 파일(33)을 포함하며, 비-민감 어플리케이션(31)은 보안될 필요가 없다.
제2 패키지 파일(22) 각각은 제2 이진 파일 형태의 보안될 어플리케이션(34), 제2 구성 파일(35) 및 보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 어플리케이션(36)을 포함하며, 실행 환경 생성을 위한 어플리케이션(36)은 제3 이진 파일 형태이다.
또한, 제3 패키지 파일(23)은 사용자를 인증하고 보안 라이브러리를 잠금해제하기 위한 키를 복구하기 위한, 도시 없는, 어플리케이션을 포함한다. 제3 패키지 파일(23)은 사용자를 인증하고 잠금해제 키를 복구하기 위한 어플리케이션과 연관된, 도시 없는, 제3 구성 파일을 포함한다. 사용자의 인증은 예를 들면 장치(10)내에 포함된 칩 카드 또는 장치 외부의 근거리 무선 통신(near field communication) 카드, 소위 NFC 카드를 이용하여 수행된다. 상기 어플리케이션은 사용자에 의해 제3자 어플리케이션으로의 억세스를 제어하기 위하여 제3자 어플리케이션과 관련된 허용을 인증하도록 적응된다.
도 2에 도시된 것처럼, 보안 라이브러리(24)는 데이터 저장을 보안하기 위한 함수(37A), 다른 컴퓨팅 장치와의 데이터 교환을 보안하기 위한 함수(37B), 및 디버깅 이벤트를 제거하기 위한 함수(37C)를 포함한다.
도 1 및 도 2의 실시예에서, 보안 라이브러리(24)는 운영 체계(20)에 포함된 네이티브(native) 라이브러리로부터 분리된 특정 라이브러리이다.
다르게는, 도 2에 점선으로 도시된 것처럼, 보안 라이브러리(24)는 운영 체계 제공자에 의해 공급되는 운영 체계의 라이브러리 세트(26)내에 포함된 네이티브 라이브러리이다.
공지된 것처럼, 커널(25)은 한편으로는 특히 정보 처리 유닛(12), 메모리(14) 및 무선 송수신기(18)를 포함하는 하드웨어 파트와 다른 한편으로는, 운영 체계(20)의 나머지, 특히 라이브러리 세트(26) 사이의 추상적 층을 형성한다. 커널(25)은 운영 체계의 보안, 메모리 관리 또는 프로세스 관리와 같은 필수적 서비스를 관리하기에 적합하다.
라이브러리 세트(26)는 비보안 함수 라이브러리(39)를 포함한다.
가상 머신(28)은 자체가 공지되고, 각 패키지 파일(21, 22, 23)내에 포함된 각각의 이진 파일을 실행할 수 있다.
어플리케이션 호스트 구조(30)는 어플리케이션과 관련된 패키지 파일에 대한 활성 관리 서비스(38A), 관리 서비스(38B)와 같이 어플리케이션(31, 34, 36)에 유용한 서비스(38A, 38B)를 포함한다.
각각의 어플리케이션(31, 34, 36)은 가상 머신(28)에 의해 실행되도록 디자인된, 바이트코드로도 칭하는, 이진 코드를 포함하는 이진 파일의 형태이다. 가상 머신(28)에 의한 어플리케이션(31, 34, 36)의 실행은 어플리케이션의 바이트코드의 해석이다.
도 4에 도시된 것처럼, 각각의 어플리케이션(31, 34, 36)은 하나 이상의 컴포넌트(A, B, #A, #B)를 포함하며, 컴포넌트는 활동, 서비스, 콘텐츠 제공자 또는 분배 수신기와 같은 상이한 유형을 갖는다. 각각의 컴포넌트(A, B, #A, #B)는 어플리케이션의 양태에 있어 상이한 역할을 하며, 다른 어플리케이션에 의해서도 개별적으로 활성화될 수 있다.
상술한 실시예에서, 운영 체계(20)는 구글에 의한 안드로이드® 어플리케이션 시스템이다. 커널(25)은 리눅스 커널, 보다 구체적으로는 리눅스 커널 버전 2.6을 기초로 한다. 라이브러리 세트(26)는 C/C++ 컴퓨터 언어로 기록된다. 가상 머신(28)은 달빅 가상 머신이다. 어플리케이션(31, 34, 36)은 자바 언어로 기록되고, 달빅 가상 머신(28)에 의해 실행 가능한 이진 코드의 형태이다.
다르게는, 본 발명은 안드로이드® 운영 체계와 동일한 유형의 운영 체계에 적용된다. 특히, 본 발명은 커널, 어플리케이션을 실행하도록 설계된 가상 머신, 및 커널 및 가상 머신에 의해 억세스 가능한 함수 라이브러리 세트를 포함하는 운영 체계에 적용된다.
제1 구성 파일(33)은 공지되고 어플리케이션의 버전을 명명하고 표시하는 정보, 어플리케이션의 컴포넌트에 대한 정보, 및 어플리케이션이 운영 체계(20) 또는 다른 어플리케이션으로부터 수신된 것들 중에서 특정 메시지를 소정 방식으로 식별하도록 하는 메시지 필터를 포함한다. 안드로이드®의 경우, 제1 구성 파일(33)은 또한 매니페스트(Manifest) 파일이라 칭한다.
보안될 어플리케이션(34)은 그 실행 동안 비보안 함수 라이브러리(36) 중 적어도 하나의 함수를 호출하도록 설계된다.
제2 구성 파일(35)은 제1 구성 파일(33)과 동일한 유형의 정보를 포함하며, 실행 환경 생성을 위한 어플리케이션(36)이 가상 머신(28)에 의해 제2 패키지 파일(22)의 실행 동안 보안될 어플리케이션(34) 대신에 런치되도록 더욱 개조된다.
다르게는, 보안될 어플리케이션(34) 및 실행 환경 생성을 위한 어플리케이션(36)은 두개의 분리된 패키지 파일내에 캡슐화되고, 각 어플리케이션(34, 36)은 각 패키지 파일내의 고유 구성 파일로 캡슐화된다. 실행 환경을 동적으로 생성하기 위한 어플리케이션(36)이 보안될 어플리케이션 대신에 초기 실행되도록 및 실행 환경을 생성하기 위한 어플리케이션(36)에 의해 준비되는 기존의 공정에 보안될 어플리케이션(34)의 실행을 허용하도록 보안될 어플리케이션(34)과 관련된 구성 파일이 변경된다.
환경의 동적 생성을 위한 어플리케이션(36)은 보안 라이브러리를 로딩하는 수단(40) 및 보안될 어플리케이션(34)과 관련된 함수 호출(들) 중에서 적어도 하나의 비보안 함수 호출을 보안 라이브러리(24)로부터의 대응하는 함수 호출로 대체하기 위한 수단(42)을 포함한다.
또한, 실행 환경 생성을 위한 어플리케이션(36)은 컴퓨팅 장치의 사용자 인증 및 보안 라이브러리에 대한 잠금해제 키 복구를 위한 수단(44) 및 보안될 어플리케이션(34)을 대기 상태 또는 기상 상태로 두는 것과 관련된 메시지를 인터셉트(intercept)하고 처리하기 위한 수단(46)을 포함한다.
실행 환경 생성을 위한 어플리케이션(36)은 비보안 함수 호출을 보안 함수 호출로 대체한 이후에 보안될 어플리케이션을 런칭하기 위한 수단(48)을 포함한다.
실행 환경 생성을 위한 어플리케이션(36)은 보안될 어플리케이션(들)(34)에 전용인 어플리케이션이며, 연산 체제(20)와는 구별된다.
데이터 저장을 위한 함수(37A)는 예를 들면 저장된 데이터의 암호화를 통해 메모리(14)의 메모리 영역내에 저장된 민감 데이터를 보호할 수 있다. 보호란 미인증자에 의한 데이터 억세스를 금지하기 위한 비밀 보호(confidentiality protection)이고 또한 데이터의 콘텐츠의 개조를 방지하기 위한 무결성(integrity) 보호이다.
데이터 교환을 보호하기 위한 함수(37B)는 보안될 어플리케이션(34)과 도시 없는 다른 컴퓨팅 장치 사이의 데이터 교환을 보호할 수 있다.
디버깅 이벤트 삭제를 위한 함수(37C)는 디버깅 이벤트가 메모리(14)내에 저장되기 전에 삭제할 수 있으며, 디버깅 이벤트는 보안될 어플리케이션(34)의 코드내에 포함된 태그(tag)의 실행 동안 생성된다. 코드가 최종화되기 이전에 어플리케이션의 코드를 결정하는데 이용되는 이러한 디버깅 이벤트는 종종 어플리케이션 코드를 유지하고, 다음으로 보안 위반을 초래할 수 있다.
비보안 함수 라이브러리(39)는 공지된다. 안드로이드® 운영 체계의 경우에, 비보안 함수 라이브러리(39)는 C/C++ 컴퓨터 언어로 기록된 함수의 라이브러리이다.
도 1의 실시예에서, 인증 및 복구 수단(44)은 사용자를 위한 인증 어플리케이션을 호출하고 제3 패키지 파일(23)내에 캡슐화된 잠금해제 키를 복구하기 위한 수단이다. 다시 말하면, 인증 및 복구 수단(44)은 사용자를 인증하고 키를 복구하기 위한 상기 어플리케이션으로 향한 일 포인트만의 진입을 포함한다.
다르게는, 메모리(14)는 제3 패키지 파일을 포함하지 않고, 실행 환경 생성을 위한 각 어플리케이션의 인증 및 복구 수단(44)은 사용자를 인증하고 잠금해제 키를 복구하기 위한 어플리케이션의 기능을 포함하고, 장치(10)의 사용자 인증이 가능해서, 인증이 성공적인 경우, 보안 라이브러리(24)로부터 잠금해제 키를 복구한다.
본 발명에 따른 컴퓨팅 장치(10)의 동작이 도 3 및 도 4를 이용하여 설명된다.
메모리(14)에 저장하기 이전에, 각각의 제2 패키지 파일(22)은 패키지 파일을 생성하기 위한 어플리케이션을 이용하여 생성된다. 패키지 파일을 생성하기 위한 어플리케이션은 컴퓨팅 장치 외부의 제3자 어플리케이션이며, 보안될 어플리케이션(34) 및 제1 구성 파일(33)과 유사한 초기 구성 파일을 포함하는 보안될 어플리케이션(34)의 초기 패키지 파일로부터 보안될 어플리케이션을 위한 패키지 파일(22)을 생성할 수 있다.
패키지 파일을 생성하기 위한 제3자 어플리케이션은 초기 구성 파일을 개조함에 의해 제2 구성 파일(35)을 생성하여, 실행 환경을 생성하기 위한 어플리케이션(36)은 제2 패키지 파일(22)의 실행 동안 보안될 어플리케이션(34)을 대신해 런칭된다.
제3자 생성 어플리케이션은 다음으로 전술한 제2 구성 파일(35)에 보안될 어플리케이션에 대응하는 제2 이진 파일 및 실행 환경 생성을 위한 어플리케이션(36)에 대응하는 제3 이진 파일을 추가함에 의해 제2 패키지 파일(22)을 구축한다. 또한, 제3자 생성 어플리케이션은 또한 보안 라이브러리(24)를 제2 패키지 파일(22)에 추가한다.
제3자 생성 어플리케이션은 마지막으로 이전에 구축된 제2 패키지 파일(22)을 표시한다.
도 3은 실행 환경을 생성하기 위한 어플리케이션(36)에 의해 구현되는 보안될 어플리케이션(34)에 대한 실행 환경의 동적 생성을 위한 방법을 도시한다.
초기 단계(100) 동안, 상기 보안 라이브러리(24) 내에 포함된 보안 함수(37A, 37B, 37C)가 보안될 어플리케이션(34)의 뒤이은 런칭 동안 가상 머신(28)에 대해 유효하도록 보안 라이브러리(24)가 로딩된다.
단계 110 동안, 실행 환경 생성을 위한 어플리케이션(36)은 다음으로 보안될 어플리케이션(34)과 관련된 함수 호출(들) 중에서 적어도 하나의 비보안 함수 호출을 이전에 로딩된 보안 라이브러리(24)로부터의 대응하는 어플리케이션(37A, 37B, 37C) 호출로 대체한다.
대체 단계(110)는 예를 들면 상기 보안될 어플리케이션(34)과 비보안 함수 사이의 동적 링크의 삭제 및 상기 보안될 어플리케이션(34)과 보안 라이브러리(24)의 대응하는 함수(37A, 37B, 37C) 사이의 동적 대체 링크의 생성을 포함한다.
설명된 실시예에서, 보안될 어플리케이션(34)과 관련된 함수 호출들 중 데이터 저장 함수 호출 전체는 데이터 저장을 위한 보안 함수(37A) 호출과 대체된다.
상기 보안될 어플리케이션(34)과 관련된 함수 호출들 중의 다른 컴퓨팅 장치와의 데이터 교환 함수 호출 전체는 데이터 교환 보안 함수(37B) 호출과 대체된다.
상기 보안될 어플리케이션(34)과 관련된 함수 호출 중에서 디버깅 이벤트를 추가하기 위한 함수 호출 전체는 디버깅 이벤트를 삭제하기 위한 함수(37C) 호출과 대체된다.
추가적으로, 실행 환경 생성을 위한 어플리케이션(36)은 다음으로 단계(115) 동안 단계(100) 동안 로딩된 보안 라이브러리(24)를 잠금하고, 이전 단계(110) 동안 수행된 함수 호출 대체를 수행한다.
대체 함수를 보안될 어플리케이션 자체에 또는 동적 링크를 통한 가상 머신(28)에 도입함을 통해 대체 단계(110)가 수행되는 경우, 대체 함수는 실행 환경을 생성하기 위한 어플리케이션(36)으로부터 오고, 고정 단계는 예를 들면 대체 함수의 참조를 신규 대체 함수의 참조와 교체하는 단계로 구성된다.
신규 대체 함수 및 보안 함수 외에도, 단계 110 및 115에서의 코드에 대응하는 코드가 보안 라이브러리(24) 내에 위치된다. 이 신규 대체 함수는 대체 요청에 대한 필터링, 단계 110에서 처리된 함수 호출 대체 거절 및 다른 함수 호출의 대체 허용을 수행한다.
또한, 실행 환경 생성을 위한 어플리케이션(36)은 다음으로 단계 120 동안 컴퓨팅 장치(10)의 사용자의 인증을 요청하고, 다음으로 인증 성공의 경우에 보안 라이브러리(24) 잠금해제를 위한 키를 복구한다.
추가적으로, 단계 130 동안, 실행 환경 생성을 위한 어플리케이션(36)은 운영 체계와 보안될 어플리케이션(34) 사이에서 교환될 메시지를 인터셉트하고 처리하며, 상기 메시지는 보안 라이브러리(24)에 의해 처리된다. 인터셉트된 메시지는 특히 대기 상태, 기상 상태로 두는 것, 메모리(14)내에 데이터 저장 및 다른 컴퓨팅 장치와의 데이터 교환에 관련된다.
실행 환경 생성을 위한 어플리케이션(36)은 마지막으로 단계(140) 동안 보안될 어플리케이션(34)을 런칭한다.
보안될 어플리케이션(34)의 런칭 이후에 및 호출 함수의 이전 수행된 대체를 통해, 선택적으로는 운영 체계(20)를 통하여, 보안될 어플리케이션(34)에 의해 생성되는 또는 보안될 어플리케이션에 대해 의도된 대응하는 호출(들)이 먼저 보안 라이브러리(24)에 전송되고, 비보안 라이브러리(39)에 필요한 경우에는 이를 인증한다.
보안될 어플리케이션(34)에 대한 실행 환경의 생성은, 상기 어플리케이션의 각각의 실행 및 잇따른 운영 체계(20)에 의한 상기 어플리케이션을 실행 명령의 수신시 수행된다는 점을 고려하면 동적이다.
도 4는 보안될 어플리케이션(34)에 대한 실행 환경의 동적 생성 및 상기 어플리케이션의 실행을 도시한다.
제2 패키지 파일(22) 실행 명령의 운영 체계(20)에 의한 수신에 이어, 제2 수정된 구성 파일(35)내에 포함된 정보에 따라 활성 관리 서비스(38A)를 이용하여 실행 환경 생성을 위한 어플리케이션(36)의 컴포넌트(#A)를 런칭함에 의해 운영 체계는 시작하여(화살표 F1), 실행 환경 생성을 위한 어플리케이션(36)은 보안될 어플리케이션(34)을 대신하여 런칭된다.
실행 환경 생성을 위한 어플리케이션(36)은 실행 환경 생성을 위한 방법의 초기 단계(100)에 따라 보안 라이브러리(24)를 다운로드한다(화살표 F2). 상기 보안 라이브러리에 포함된 보안 함수(37A, 37B, 37C)는 따라서 가상 머신(28)의 후속 동작에 유효하다. 보안될 어플리케이션(34)과 특정 비보안 함수 사이의 동적 링크가 삭제되고, 전술한 단계(110)에 따라, 대응하는 동적 대체 링크가 보안될 어플리케이션(34)과 보안 라이브러리(24)의 대응하는 함수(37A, 37B, 37C) 사이에서 생성된다(화살표 F3).
컴포넌트(#A)는 다음으로 운영 체계로부터 보안될 어플리케이션(34)의 대응하는 컴포넌트(A)의 런칭을 요청한다(화살표 F4). 이 요청은 사용자의 인증 요청을 위하여 보안 라이브러리(24)에 의해 인터셉트되고, 다음으로 성공적 인증의 경우에, 보안 라이브러리(24)를 잠금해제하기 위한 키를 복구한다. 사용자의 성공적 인증의 경우, 요청은 운영 체계의 활동 관리 서비스(38A)로 전송된다(화살표 F5).
운영 체계(20)는 다음으로 전술한 단계 140에 따라 활동 관리 시스템(38A)을 이용하여 보안될 어플리케이션(34)의 컴포넌트(A)를 런칭한다(화살표 F6). 런칭은 제2 구성 파일(35)내에 포함된 정보에 따른 실행 환경 생성을 위한 어플리케이션(36)과 동일한 공정으로 수행된다.
보안될 어플리케이션(34)의 실행동안, 컴포넌트(A)는 운영 체계(20)로부터 컴포넌트(B)의 런칭을 요청하고, 그 요청은 다음으로 동적 링크를 대체하기 위한 이전 단계를 통해 가상 머신(28)에 의해 보안 라이브러리(24)로 향하게 된다(화살표 F7). 요청은 다음으로 보안 라이브러리(24)에 의해 수정되어 운영 체계(20)는 보안될 어플리케이션(34)의 컴포넌트(B) 대신 컴포넌트(#B)를 런칭하고, 다음으로 활동 관리 서비스(38A)로 전송된다(화살표 F8). 운영 체계(20)는 다음으로 컴포넌트(#B)를 런칭한다(화살표 F9).
컴포넌트(#B)는 다음으로 운영 체계로부터 보안될 어플리케이션(34)의 대응하는 컴포넌트(B)의 런칭을 요청한다(화살표 F10). 이 요청은 대응하는 보안 처리를 수행하기 위하여 보안 라이브러리(24)에 의해 인터셉트되고, 다음으로 운영 체계의 활동 관리 서비스(38A)로 전송된다(화살표 F11).
운영 체계(20)는 다음으로 활동 관리 서비스(38A)를 이용하여 보안될 어플리케이션(34)의 컴포넌트(B)를 런칭한다(화살표 F12). 컴포넌트(B)는 다음으로 데이터 파일 저장을 희망하여 이를 위해 저장 함수를 호출한다(화살표 F13). 동적 링크를 위한 이전의 대체 단계를 통해, 보안 라이브러리의 데이터 저장을 위한 보안 함수(37A)는 다음으로 자동으로 호출되고, 데이터 파일은 메모리(14) 내에 저장되기 이전에 상기 보안 함수(37A)에 의해 암호화된다(화살표 F14).
당해 분야의 숙련자라면 컴포넌트가 다른 컴퓨팅 장치와 데이터 교환을 희망하고 이를 위하여 데이터 교환 함수를 호출한 경우, 데이터 교환 보안 함수(37B)가 유사하게 동적 링크를 대체하기 위하여 이전 단계를 통하여 자동으로 호출되었을 것이라는 것을 이해할 것이다.
당해 분야의 숙련자라면 컴포넌트가 디버깅 이벤트를 추가하기를 희망하고 이를 위하여 디버깅 이벤트 추가를 위한 함수를 호출한 경우, 디버깅 이벤트 삭제를 위한 함수(37C)가 유사하게 동적 링크를 대체하기 위하여 이전 단계를 통해 자동으로 호출되었을 것이라는 것을 이해할 것이다.
도 4의 실시예에서, 설명된 상이한 요청이 관리자 모드에서 수행되고, 다음으로 커널(25)을 통과한다. 당업자라면 특정 요청이, 다르게는, 커널(25)을 통과하지 않고 사용자 모드로 되는 것이 가능함을 이해할 것이다.
그러므로 실행 환경 생성을 위한 어플리케이션(36)을 이용하여 보안될 어플리케이션(34)을 실행하기 위한 환경을 동적으로 생성하기 위한 방법의 구현을 통하여, 컴퓨팅 장치(10)는 어플리케이션(34)의 동작을 보안하는 것이 가능하고, 특히 컴포넌트의 런칭, 데이터의 저장 또는 다른 컴퓨팅 장치와의 데이터 교환과 관련하여 어플리케이션(34)의 동작을 보안하는 것을 가능하게 하며, 데이터는 보안 라이브러리(24)의 적절한 함수를 통해 자동으로 암호화된다.
이러한 어플리케이션(34)의 보안은 어플리케이션의 구성 파일(Android®의 경우에는 매니패스트 파일이라 칭함)을 재기록 및 실행 환경 생성을 위한 어플리케이션(36) 추가만을 요청하고, 후자는 보안될 어플리케이션(34)의 패키지 파일 내에 또는 다르게는 개별 패키지 파일내에 캡슐화되고, 라이브러리 세트(26)이 이미 그러한 라이브러리를 포함하지 않는다면, 보안 라이브러리(24)를 추가한다.
당업자라면 이러한 보안이 보안될 어플리케이션(34)의 소스 또는 이진 코드의 임의 수정 또는 운영 체계(20)의 임의 수정을 필요로 하지 않는다는 것을 주목할 것이다.
당업자라면 보안될 어플리케이션을 실행하기 위한 환경의 동적 생성을 위한 방법 및 컴퓨팅 장치(10)가 운영 체계, 어플리케이션 환경 또는 보안될 어플리케이션의 코드의 수정을 제한하면서 어플리케이션(34)을 보안하는 것을 가능하게 함을 이해할 것이다.
보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 방법 및 본 발명에 따른 컴퓨팅 장치가 어플리케이션을 실행할 수 있는 가상 머신을 포함하는 운영 체계와 관련하여 설명되었지만, 당업자라면 본 발명은 가상 머신을 포함하지 않는 운영 체계에도 적용될 수 있음을 이해할 것이고, 다음으로 어플리케이션은 정보 처리 유닛의 프로세서에 의해 직접 실행된다.

Claims (13)

  1. 보안될 어플리케이션(34)에 대한 실행 환경의 동적 생성을 위한 방법으로서, 상기 어플리케이션(34)을 보안하기 위하여, 상기 방법은 정보 처리 유닛(12) 및 메모리(14)를 포함하는 컴퓨팅 장치(10)에 의해 구현되고, 상기 메모리(14)는 상기 정보 처리 유닛(12)과 관련되고, 운영 체계(20), 상기 보안될 어플리케이션(34) 및 적어도 하나의 보안 함수(37A, 37B, 37C)를 포함하는 보안 라이브러리(24)를 포함하며, 상기 운영 체계(20)는 비보안 함수 라이브러리(39)를 포함하는 함수 라이브러리 세트(26)를 포함하며, 상기 보안될 어플리케이션(34)은 실행 동안 상기 비보안 함수 라이브러리(39)의 함수를 호출하도록 적응되며,
    상기 방법은 상기 메모리(14) 내에 저장된 실행 환경의 동적 생성을 위한 어플리케이션(36)에 의해 구현되는 이하 단계들:
    - 상기 보안 라이브러리(24)를 로딩하는 단계(100),
    - 상기 보안될 어플리케이션(34)과 관련된 함수 호출(들) 중에서 비보안 함수에 대한 적어도 하나의 호출을 상기 보안 라이브러리(24)의 대응하는 함수(37A, 37B, 37C)에 대한 호출로 대체하는 단계(110), 및
    - 상기 대체하는 단계(110) 이후에 상기 보안될 어플리케이션(34)을 런칭하는 단계(140)
    를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서, 상기 대체하는 단계(110)는 상기 보안될 어플리케이션(34)과 비보안 함수 사이의 동적 링크를 제거하는 단계 및 상기 보안될 어플리케이션(34)과 상기 보안 라이브러리(24)의 대응하는 함수(37A, 37B, 37C) 사이의 동적 대체 링크를 생성하는 단계를 포함하는, 방법.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 데이터 저장 함수에 대한 호출 전체가 데이터 저장의 보안 함수(37A)에 대한 호출로 대체되는, 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 다른 컴퓨팅 장치와 데이터 교환하는 함수에 대한 호출 전체가 상기 다른 컴퓨팅 장치와의 데이터 교환을 보안하는 함수(37B)에 대한 호출로 대체되는, 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 상기 보안될 어플리케이션과 관련된 함수 호출(들) 중에서, 디버깅 이벤트를 추가하기 위한 함수에 대한 호출 전체가 디버깅 이벤트를 삭제하기 위한 함수(37C)에 대한 호출로 대체되는, 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서, 상기 방법은 상기 어플리케이션을 런칭하는 단계(140) 이전에, 상기 로딩하는 단계(100) 동안 로딩된 상기 보안 라이브러리(24)를 잠금하고 상기 대체 단계(110) 동안 함수 호출 대체를 수행하기 위한 단계(115)를 더 포함하는, 방법.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서, 상기 방법은, 상기 어플리케이션을 런칭하는 단계(140) 이전에, 상기 컴퓨팅 장치(10)의 사용자를 인증하고 상기 보안 라이브러리(24)를 잠금해제하기 위한 키를 복구하기 위한 단계(120)를 더 포함하는, 방법.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 상기 방법은, 상기 어플리케이션을 런칭하는 단계(140) 이전에, 상기 운영 체계(20)와 상기 보안될 어플리케이션(34) 사이의 메시지 교환을 인터셉트하고 상기 보안 라이브러리(24)의 대응하는 함수를 이용하여 상기 메시지를 처리하기 위한 단계(130)를 더 포함하는, 방법.
  9. 청구항 1 내지 청구항 8 중 어느 한 항에 있어서, 상기 실행 환경을 생성하기 위한 어플리케이션(36)은 보안될 어플리케이션(들)(34)에 전용인 어플리케이션이고, 상기 운영 체계(20)와는 구별되는, 방법.
  10. 청구항 1 내지 청구항 9 중 어느 한 항에 있어서, 상기 운영 체계(20)는 상기 어플리케이션(34, 36)을 실행하도록 적응된 가상 머신(28)을 포함하는, 방법.
  11. 청구항 10에 있어서, 상기 운영 체계(20)는 안드로이드(Android)이고, 상기 가상 머신(28)은 달빅(Dalvik) 가상 머신인, 방법.
  12. 컴퓨팅 장치(10)에 일체화된 정보 처리 유닛(12)에 의해 구현되는 경우, 청구항 1 내지 청구항 11 중 어느 한 항에 기재된 방법을 구현하는 소프트웨어 명령을 포함하는 컴퓨터 프로그램 제품.
  13. 정보 처리 유닛(12),
    운영 체계(20), 적어도 하나의 보안될 어플리케이션(34) 및 적어도 하나의 보안 함수(37A, 37B, 37C)를 포함하는 보안 라이브러리(24)를 포함하는 메모리(14) - 상기 메모리(14)는 상기 정보 처리 유닛(12)과 관련됨 - ,를 포함하는 컴퓨팅 장치(10)로서,
    상기 운영 체계(20)는 비보안 함수 라이브러리(39)를 포함하는 함수 라이브러리 세트(26)를 포함하며, 상기 보안될 어플리케이션(34)은 상기 비보안 함수 라이브러리(39)의 함수를 호출하도록 디자인되며,
    상기 메모리(14)는 보안될 어플리케이션에 대한 실행 환경의 동적 생성을 위한 어플리케이션(36)을 더 포함하며, 실행 환경의 생성을 위한 상기 어플리케이션(36)은 상기 보안 라이브러리(24)를 로딩하기 위한 수단(40), 상기 보안될 어플리케이션(34)과 관련된 함수 호출(들) 중에서 비보안 함수(37A, 37B, 37C)에 대한 적어도 하나의 호출을 상기 보안 라이브러리(24)의 대응하는 함수에 대한 호출로 대체하기 위한 수단(42), 및 상기 비보안 함수에 대한 호출을 상기 보안 함수(37A, 37B, 37C)에 대한 호출로 대체한 이후에 상기 보안될 어플리케이션(34)을 런칭하기 위한 수단(48)을 포함하는 것을 특징으로 하는, 컴퓨팅 장치(10).
KR1020147011782A 2011-10-06 2012-10-08 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치 KR20140077188A (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/069874 WO2013050600A1 (fr) 2011-10-06 2012-10-08 Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés

Publications (1)

Publication Number Publication Date
KR20140077188A true KR20140077188A (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 After (1)

Application Number Title Priority Date Filing Date
KR1020147011390A KR20140077186A (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) WO2013050600A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170047284A (ko) * 2014-08-20 2017-05-04 쿠앙치 인텔리전트 포토닉 테크놀로지 리미티드 조작 시스템중에서 하드웨어 설비를 제어하는 방법과 모듈

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
KR101695639B1 (ko) 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
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
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
US20020065776A1 (en) * 2000-11-29 2002-05-30 Brad Calder Method and process for virtualizing file system interfaces
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虚拟机的软件保护系统和方法
EP2515239B1 (en) * 2009-12-14 2017-03-29 Panasonic Intellectual Property Management Co., Ltd. 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170047284A (ko) * 2014-08-20 2017-05-04 쿠앙치 인텔리전트 포토닉 테크놀로지 리미티드 조작 시스템중에서 하드웨어 설비를 제어하는 방법과 모듈
US10599493B2 (en) 2014-08-20 2020-03-24 Kuang-Chi Intelligent Photonic Technology Ltd. Method and module in operating system for controlling hardware device

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20140077188A (ko) 어플리케이션을 보안하기 위한 어플리케이션 실행 환경의 동적 생성 방법 및 관련 컴퓨터 프로그램 제품 및 컴퓨팅 장치
US10878083B2 (en) Mobile device having trusted execution environment
US8769305B2 (en) Secure execution of unsecured apps on a device
US8892876B1 (en) Secured application package files for mobile computing devices
US10114932B2 (en) Adapting a mobile application to a partitioned environment
Li et al. Android malware forensics: Reconstruction of malicious events
US11714895B2 (en) Secure runtime systems and methods
WO2014150339A2 (en) Method and system for enabling communications between unrelated applications
CN108595950A (zh) 一种结合远程认证的sgx安全增强方法
Suciu et al. Horizontal privilege escalation in trusted applications
JP5575950B2 (ja) 無線端末装置およびシステム保護方法
Umar et al. A Comparative Study of Modern Operating Systems in terms of Memory and Security: A Case Study of Windows, iOS, and Android
Park et al. SecureDom: secure mobile-sensitive information protection with domain separation
US20230058046A1 (en) Apparatus and Method for Protecting Shared Objects
Nazar et al. Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service
Aron et al. Overview of security on mobile devices
Angelakis Application development in the trusted execution environment
KR101552556B1 (ko) 휴대 단말기용 어플리케이션의 디컴파일 방지를 위한 방법 및 그 방법에 관한 호출매니저를 저장하는 프로그램 분배서버
LEE et al. SplitSecond: Flexible privilege separation of Android apps.(2019)

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