KR20140045502A - 신뢰 레벨 활성화 기법 - Google Patents
신뢰 레벨 활성화 기법 Download PDFInfo
- Publication number
- KR20140045502A KR20140045502A KR1020147001337A KR20147001337A KR20140045502A KR 20140045502 A KR20140045502 A KR 20140045502A KR 1020147001337 A KR1020147001337 A KR 1020147001337A KR 20147001337 A KR20147001337 A KR 20147001337A KR 20140045502 A KR20140045502 A KR 20140045502A
- Authority
- KR
- South Korea
- Prior art keywords
- component
- trust
- application
- execution environment
- trust level
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Abstract
격리 실행 환경은 애플리케이션에게 애플리케이션을 실행하기 위한 제한된 자원을 제공한다. 애플리케이션은 격리 실행 환경의 외부에 위치한 특정 신뢰 레벨과 연관된 보안화된 자원에 대한 액세스를 필요로 할 수 있다. 신뢰 활성화 엔진은 자원에 대한 요청과 연관된 신뢰 레벨을 판정하고 신뢰 레벨에 기초하여 다르게 동작한다. 브로커 프로세스는 격리 실행 환경과 분리된 실행 환경에서 부분 신뢰 레벨을 가진 자원에 대한 액세스를 제공하는 컴포넌트를 실행하는 데 사용될 수 있다.
Description
네트워크 컴퓨팅의 확산은 사용자로 하여금 신뢰받는 시스템으로부터 알려지지 않은 소스에 이르는 다양한 소스로부터 코드를 획득하는 것을 가능하게 하였다. 코드는 문서에 포함되거나 이메일에 첨부되어 인터넷으로부터 다운로드될 수 있다. 코드는 버그 또는 취약점(vulnerability)을 포함할 수 있으며 이는 사용자로부터 보호되는 자원을 액세스할 수 있는 악성 코드에 의해 이용될 수 있다. 이러한 코드의 실행은 컴퓨터 시스템을 손상시킬 수 있고 및/또는 민감하고 사적인 사용자 데이터를 노출하는 결과를 초래할 수 있다.
격리 실행 환경(isolation execution environment)은 알지 못하거나 신뢰받지 못하는 소스로부터의 코드 획득으로 인한 보안 우려를 해결하려는 하나의 유형의 코드 보안 메커니즘이다. 격리 실행 환경은 코드가 격리 실행 환경 외부의 자원에 액세스하는 것을 금지하는 제한을 갖는 환경 내에서 코드를 실행한다. 이러한 방식으로, 코드는 호스트 시스템을 손상시키지 못하게 된다. 그러나 이와 같은 제한은 애플리케이션이 격리 실행 환경의 외부의 자원을 사용하는 것을 허가하는 데 있어 어떠한 유연성도 제공하지 못한다.
본 요약은 상세한 설명에서 이하에 추가로 설명되는 개념들 중 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된다. 본 요약은 청구된 발명의 대상의 핵심 특징이나 주요 특징을 식별시키려는 것이 아니며, 청구된 발명의 대상의 범주를 제한하는 데 사용하려는 것도 아니다.
격리 실행 환경은 애플리케이션이 의도치않게 또는 고의로 다른 실행 애플리케이션이나 자원에 영향을 미치는 것을 방지하고 민감한 데이터를 유출하는 것을 방지하도록 애플리케이션을 실행하는 데 사용될 수 있다. 격리 실행 환경에서 애플리케이션이 접속할 수 있는 자원을 제어함으로써 격리(isolation)가 용이해 진다. 애플리케이션 프로그램 인터페이스(API)와 같은 컴포넌트가 자원을 액세스하는 데 사용될 수 있고, 자원과 연관된 보안 레벨을 반영하는 신뢰 레벨과 연관된다.
신뢰 활성화 엔진은 저 권한 애플리케이션(low-privilege application)이 자원과 연관된 API를 실행할 수 있는지 여부 및 어떠한 조건하에서 실행하는지를 판정할 수 있다. 기본 신뢰 컴포넌트(base trust component)는 저 권한 애플리케이션의 격리 실행 환경에서 실행될 수 있다. 완전 신뢰 컴포넌트는 절대로 저 권한 애플리케이션에 의해 직접 실행될 수 없다. 부분 신뢰 컴포넌트에 대해, 신뢰 활성화 엔진은 격리 실행 환경과 별개로 브로커 프로세스(broker process)를 활성화하여 부분 신뢰 컴포넌트를 실행한다. 이러한 방식으로, 저 권한 애플리케이션은 자원을 액세스하는 데 사용되는 API의 메소드로부터 차단되지만 부분 신뢰 컴포넌트와 연관된 자원을 액세스하는 효과를 얻을 수 있다.
이러한 그리고 다른 특징 및 효과는 다음의 상세한 설명 및 관련 도면의 검토에 의해 분명히 이해될 수 있을 것이다. 전술한 포괄적인 설명 및 다음의 상세한 설명 모두는 단지 예시를 위한 것이며 본 발명의 청구되는 측면을 제한하는 것이 아님을 이해할 수 있을 것이다.
도 1은 신뢰 레벨 활성화를 위한 예시적인 제1 시스템에 대한 블록도를 도시한다.
도 2는 신뢰 레벨 활성화를 위한 예시적인 제2 시스템에 대한 블록도를 도시한다.
도 3은 신뢰 레벨 활성화를 위한 예시적인 제3 시스템에 대한 블록도를 도시한다.
도 4는 신뢰 레벨 활성화를 위한 예시적인 제1 방법에 대한 흐름도를 도시한다.
도 5는 신뢰 레벨 활성화를 위한 예시적인 제2 방법에 대한 흐름도를 도시한다.
도 6은 운영 환경을 도시하는 블록도이다.
도 7은 운영 환경에 사용되는 컴퓨팅 장치의 예시적인 컴포넌트를 나타내는 블록도이다.
도 2는 신뢰 레벨 활성화를 위한 예시적인 제2 시스템에 대한 블록도를 도시한다.
도 3은 신뢰 레벨 활성화를 위한 예시적인 제3 시스템에 대한 블록도를 도시한다.
도 4는 신뢰 레벨 활성화를 위한 예시적인 제1 방법에 대한 흐름도를 도시한다.
도 5는 신뢰 레벨 활성화를 위한 예시적인 제2 방법에 대한 흐름도를 도시한다.
도 6은 운영 환경을 도시하는 블록도이다.
도 7은 운영 환경에 사용되는 컴퓨팅 장치의 예시적인 컴포넌트를 나타내는 블록도이다.
다양한 실시예는 격리된 실행 환경에서 실행되는 애플리케이션 코드의 범위(reach)를 운영 체제 런타임 컴포넌트로 확장하는 기법에 관한 것이다. 격리 실행 환경은 애플리케이션이 의도치 않게 또는 고의적으로 다른 실행 애플리케이션 또는 자원에 영향을 미치거나 민감한 데이터가 누설되는 것을 방지하도록 애플리케이션을 실행하는 데 사용될 수 있다. 격리는 애플리케이션이 액세스할 수 있는 자원을 제어함으로써 용이하게 될 수 있다. 자원은 자원의 보안 레벨을 나타내는 신뢰 레벨에 따라 분류된다. 애플리케이션은 자원에 액세스하는 애플리케이션의 보안 레벨을 나타내는 권한 레벨(privilege level)에 따라 분류된다. 고 권한 애플리케이션은 모든 자원을 액세스할 수 있고 저 권한 애플리케이션은 변경되는 조건에서 소정의 신뢰 레벨 자원을 액세스할 수 있다. 본 명세서에 설명된 기법은 민감한 사용자 데이터 및 컴퓨팅 환경에 대한 위험을 최소화하는 방식으로 저 권한 애플리케이션이 소정의 운영 체제 런타임 컴포넌트에 액세스하는 것을 허용한다.
일 실시예에서, 애플리케이션은 서버(예, 애플리케이션 저장소)로부터 다운로드될 수 있다. 다운로드된 애플리케이션은 애플리케이션 코드와 적하목록 파일(manifest file)을 포함하는 패키지의 형태일 수 있다. 애플리케이션 코드는 임의의 유형의 컴퓨터 실행가능 명령어(예를 들면(제한이 아님), 프로그램 모듈, 애플리케이션 소프트웨어, 비디오 게임, 기업 소프트웨어, 소프트웨어 컴포넌트 등)일 수 있다. 적하목록 파일은 애플리케이션의 신원(예, 발행자, 애플리케이션의 이름, 애플리케이션의 버전), 애플리케이션에 대한 타깃 아키텍처(예, 프로세서 아키텍처, 운영 체제 버전 등), 종속성(예, 하드웨어 장치 및/또는 다른 애플리케이션), 가용범위(capability) 등을 포함할 수 있다. 가용범위 섹션은 애플리케이션이 동작하기 위해 필요한 자원을 식별한다. 가용범위의 일부는 격리된 실행 환경 내로부터 액세스 가능하지 않은 자원을 나타낼 수 있다.
자원은 사용자의 보안 또는 프라이버시에 대한 위험(risk)을 나타내는 장치 또는 기능(functionality)일 수 있고, 그 자체로서 운영 체제에 의해 제어된다. 장치는 사용자에 대한 보안 위험을 제거하는 사용자의 컴퓨팅 장치에 배치된 하드웨어 장치일 수 있다. 이러한 장치의 예는 웹캠, 내장형 셀룰러 칩, 마이크로폰, GPS 수신기 등일 수 있다. 기능의 예는 사용자의 사진 라이브러리로의 판독 또는 기입 액세스, 공공 장소의 인터넷 및 네트워크로의 아웃바운드 액세스, 사용자의 홈 네트워크로의 인바운드 액세스 등일 수 있다.
예를 들어, 애플리케이션은 사용자의 사진 라이브러리에 대한 액세스를 요구할 수 있다. 일반적으로, 사용자의 사진 라이브러리의 위치는 격리된 실행 환경에서 동작하는 애플리케이션이 액세스할 수 없다. 적하목록 파일의 가용범위 섹션은 애플리케이션이 사용자의 사진 라이브러리의 사용을 요구한다는 것을 나타낼 수 있다. 사용자가 적하목록 파일을 검토한 후에 애플리케이션의 패키지를 다운로드하는 경우에 사용자는 사용자의 사진 라이브러리에 대한 애플리케이션의 액세스에 은연중에 동의한다. 그러나, 애플리케이션이 격리 실행 환경에서 동작하는 경우에, 애플리케이션은 사용자의 사진 라이브러리에 대한 액세스를 필요로 하지 않을 것이다.
하나 이상의 실시예에서, 자원은 애플리케이션 프로그래밍 인터페이스(API)와 같은 소프트웨어 컴포넌트를 통해 액세스될 수 있다. 예를 들어, 자원은 파일 시스템, 디스크 I/O, 네트워크 I/O 등일 수 있다. 애플리케이션은 API 콜(call)을 통해 자원에 대한 액세스를 요청한다. 예를 들어, API 콜은 판독 동작이 데이터베이스에서 수행되는 것을 가능하게 할 수 있고, 파일 시스템에 대한 액세스를 가능하게 할 수 있으며, 네트워크 액세스 등을 가능하게 할 수 있다. API 콜의 처리는 API와 연관된 신뢰 레벨에 기초하여 달라진다.
하나 이상의 실시예에서, 각각의 애플리케이션은 두 개의 권한 레벨 중 하나로 분류될 수 있다(즉, 고 권한 애플리케이션 또는 저 권한 애플리케이션). 고 권한 애플리케이션은 모든 운영 체제 런타임 컴포넌트에 대한 액세스를 가지고 저 권한 애플리케이션은 단지 소정의 운영 체제 런타임 컴포넌트에 대해서만 직접적인 액세스를 가진다. 컴포넌트는 세 개의 신뢰 레벨(즉, 기본 신뢰, 부분 신뢰 및 완전 신뢰)로 분류될 수 있다. 기본 신뢰 컴포넌트는 임의의 권한 레벨과 연관된 애플리케이션이 액세스할 수 있다. 완전 신뢰 컴포넌트는 고 권한 애플리케이션만이 직접적으로 액세스할 수 있다. 부분 신뢰 컴포넌트는 저 권한 애플리케이션이 브로커 프로세스(broker process)를 통해서 액세스할 수 있다.
브로커 프로세스는 격리 실행 환경으로부터 분리된 실행 환경에서 동작하고, 부분 신뢰 컴포넌트에 대한, 저 권한 애플리케이션으로부터 요청된 API 콜을 실행하도록 구성된다. 부분 신뢰 컴포넌트는 기본 신뢰 컴포넌트보다 높은 레벨의 코드 보안을 요구하며, 완전 신뢰 컴포넌트보다 낮은 코드 보안 레벨을 가진다. 브로커 프로세스를 애플리케이션과 운영 체제 사이의 중계자(intermediary)로 사용함으로써, 자원의 완전성(integrity)이 애플리케이션에 존재할 수 있는 악성 코드로 인한 손상으로부터 보호된다. 이제, 신뢰 레벨 컴포넌트를 활성화하도록 격리 실행 환경을 확장하는 기법을 구현하는 시스템의 실시예에 대한 추가적인 상세한 설명을 시작한다.
도 1을 참조하면, 저 권한 애플리케이션(102)이 격리 실행 환경(104) 내에서 기본 신뢰 컴포넌트에 액세스하는 것을 가능하게 하도록 구성되는 예시적인 시스템(100)이 도시된다. 시스템(100)은 임의의 유형의 컴퓨팅 장치(예, 핸드헬드, 포터블, 서버, 컴퓨터, 휴대폰, PDA 등) 상에서 수행될 수 있다.
시스템(100)은 격리 실행 환경(104) 및 신뢰 활성화 엔진(106)을 포함한다. 격리 실행 환경(104)은 사용자 프로세스(108)에서 저 권한 애플리케이션(102)을 실행하도록 구성될 수 있다. 사용자 프로세스(108)는 사용자 프로세스(108)에서 실행되는 애플리케이션(102)을 식별하는 토큰(110) 및, 애플리케이션(102)이 액세스하도록 승인되었다는 허가(permissions) 또는 가용범위와 연관될 수 있다. 토큰(110)은 사용자 보안 식별자(SID), 패키지 SID 및 애플리케이션의 가용범위를 포함할 수 있다. 사용자 SID는 사용자 프로세스를 식별하고, 패키지 SID는 애플리케이션을 식별한다. 가용범위는 애플리케이션(102)이 필요로 하는 자원에 대한 사용자-허가 액세스일 수 있다.
처음에, 애플리케이션(102)이 시스템(100)에 설치되면, 애플리케이션(102)은 운영 체제에 등록된다. 사용자 프로세스(108)가 애플리케이션(102)을 위해 생성될 수 있고, 토큰(110)이 사용자 프로세스(108)와 연관될 수 있다. 애플리케이션(102)이 실행됨에 따라, 애플리케이션(102)은 기본 신뢰 컴포넌트의 활성화를 요청할 수 있다(블록 112). 하나 이상의 실시예에서, 기본 신뢰 컴포넌트에 대한 액세스는 API 콜을 통해 용이하게 된다.
API는 동적 링크 라이브러리(DLL)를 통해 또는 실행 파일을 통해 구현될 수 있다. DLL은 동시에 복수의 프로세스에 의해 사용될 수 있는 코드 및 데이터를 포함하는 공유 라이브러리이다. 객체 지향 프로그래밍 언어에서, API는 한 세트의 클래스 정의를 포함할 수 있다. 클래스의 인스턴스는 객체로 지칭되며, 객체는 API를 호출하거나 활성화하는데 사용된다. 객체는 API를 구현하는 데이터 및 메소드로 구성되는 데이터 구조로서 표현될 수 있다. 데이터는 API를 불러오기 하기 위해 프로세스에 의해 사용되는 변수를 포함할 수 있다.
신뢰 활성화 엔진(106)은 API 콜을 처리하고 API 데이터베이스(114)에서 API와 연관된 신뢰 레벨을 검색한다. API 데이터베이스(114)는 저 권한 애플리케이션에 의해 몰래 변경되지 않게 보호된다. 컴포넌트가 기본 신뢰 레벨과 연관되는 경우에, 신뢰 활성화 엔진(106)은 API 데이터베이스(114) 내에 저장된 실행가능한 코드를 사용하여 API 객체를 생성한다. 기본 신뢰 객체(120) 또는 API 객체는 이후에 사용자 프로세스(108)로 전달되고 그 안에 저장된다(블록 118). API 콜의 불러오기(invocation)는 이후에 격리 실행 환경(104)으로부터 진행된다.
도 2는 저 권한 애플리케이션(102)이 격리 실행 환경(104) 외부에 있는 브로커 프로세스 내의 부분 신뢰 컴포넌트에 액세스하는 것을 가능하게 하도록 구성되는 예시적인 시스템(130)을 도시한다. 시스템(130)은 사용자 프로세스(108)에서 애플리케이션(102)을 실행하도록 구성되는 격리 실행 환경(104)을 가진다. 사용자 프로세스(108)는 사용자 프로세스(108)에서 실행되는 애플리케이션(102)을 식별하는 토큰(110) 및 애플리케이션(102)에 액세스가 허가되는 허가 또는 가용범위와 연관될 수 있다. 토큰(110)은 전술한 바와 같은 사용자 보안 식별자(SID), 패키지 SID 및 애플리케이션의 가용범위를 포함할 수 있다.
전술한 것과 같이, 사용자 프로세스(108)가 애플리케이션(102)을 위해 생성되고 토큰(110)은 사용자 프로세스(108)와 연관된다. 애플리케이션(102)이 실행됨에 따라, 애플리케이션(102)은 API 콜을 통해 이용가능하게 되는 부분 신뢰 컴포넌트의 활성화를 요청할 수 있다(블록 132). 신뢰 활성화 엔진(106)은 API 콜을 처리하고 API 데이터베이스(114)에 저장된 데이터로부터 API와 연관된 신뢰 레벨을 검색한다. 컴포넌트가 부분 신뢰 레벨과 연관되는 경우에, 신뢰 활성화 엔진(106)은 브로커 프로세스(134)를 생성한다. 브로커 프로세스(134)는 브로커 프로세스(134)에 저장된 API 객체를 생성한다. 브로커 프로세스(134)는 사용자 프로세스(108)로 데이터를 다시 전달하여(블록 136), 부분 신뢰 컴포넌트에 대응하는 API를 호출하기 위해 브로커 프로세스(132)와 통신 중인 애플리케이션이 사용하도록 한다(블록 140). 브로커는 브로커 프로세스(134) 내의 API 메소드의 실행을 시작한다.
도 3은 저 권한 애플리케이션(102)이 완전 신뢰 컴포넌트를 직접 액세스하기는 것을 가능하게 하도록 구성되는 예시적인 시스템(150)을 도시한다. 시스템(150)은 사용자 프로세스(108)에서 저 권한 애플리케이션(102)을 실행하도록 구성되는 격리 실행 환경(104)을 갖는다. 사용자 프로세스(108)는 사용자 프로세스(108)에서 실행되는 애플리케이션을 식별하는 토큰(110) 및 애플리케이션(102)의 액세스가 허가되는 허가 또는 가용범위와 연관될 수 있다. 토큰(110)은 전술한 바와 같이 사용자 보안 식별자(SID), 패키지 SID 및 애플리케이션의 가용범위를 포함할 수 있다.
신뢰 활성화 엔진(106)은 애플리케이션으로부터의 완전 신뢰 컴포넌트를 활성화하기 위한 요청을 처리한다(블록 152). 요청은 API 콜을 통해 이루어지고, 신뢰 활성화 엔진(106)은 API 데이터베이스(114)에서 API와 연관된 신뢰 레벨을 검색한다. 신뢰 활성화 엔진(106)이 컴포넌트가 완전 신뢰 레벨과 연관된다고 판정하는 경우에, 신뢰 활성화 엔진(106)은 API를 활성화하지 않고 대신에 에러 메시지를 애플리케이션으로 반환한다(블록 154).
도 1 내지 도 3에 도시된 시스템은 소정의 구성 내에 제한된 수의 구성요소(elements)를 가지나, 이러한 시스템은 의도된 구현예에 갈음하는 구성에서 더 많거나 적은 구성요소를 포함할 수 있다. 예를 들어, 애플리케이션 코드는 다른 형태의 애플리케이션(예를 들면, HTML로 쓰인 Windows® 웹 애플리케이션, CSS(Cascading Style Sheets) 또는, 관리 코드(managed code)나 네이티브 코드(native code)로 쓰인 자바스크립트 및 모던 클라이언트 애플리케이션(Modern Client Application))을 포함할 수 있다.
또한, 도 1 내지 도 3에 도시된 시스템 각각은 복수의 컴포넌트, 프로그램, 절차, 모듈을 구비한 컴퓨터로 구현되는 시스템을 포함할 수 있다. 본 명세서에 사용된 이와 같은 용어는 컴퓨터 관련 엔티티(하드웨어, 하드웨어와 소프트웨어의 조합 또는 소프트웨어를 포함함)를 나타내려는 것이다. 예를 들어, 도 1 내지 도 3에 도시된 구성요소가 프로세서, 하드 디스크 드라이브, (광학 및/또는 자기 저장 매체의) 복수의 저장 드라이브에서 실행되는 프로세스, 객체, 실행가능한 실행 스레드, 프로그램, 및/또는 컴퓨터로서 구현될 수 있다. 하나 이상의 구성요소가 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 구성요소는 하나의 컴퓨터에 배치되거나 주어진 구현예에 대해 바람직한 둘 이상의 컴퓨터 간에 분산될 수 있다. 실시예가 이러한 방식에 한정되는 것은 아니다.
이제 다양한 예시적인 방법을 참조하여 실시예의 동작에 대한 보다 상세한 설명을 시작한다. 달리 언급되지 않는 한, 대표적인 방법은 반드시 제시된 순서 또는 임의의 특정한 순서로 실행되어야 할 필요가 없다는 것을 이해할 수 있을 것이다. 또한, 방법에 관하여 설명된 다양한 동작이 순차 또는 병렬 방식으로, 또는 순차 및 병렬 동작의 임의의 조합으로 실행될 수 있다. 방법은 지정된 세트의 설계 및 성능 제한에 관해 바람직한 설명된 실시예 또는 이에 갈음하는 실시예의 하나 이상의 하드웨어 구성요소 및/또는 소프트웨어 구성요소를 사용하여 구현될 수 있다. 예를 들어, 방법은 로직 장치(예, 범용 또는 전용 컴퓨터)에 의한 실행을 위한 로직(에, 컴퓨터 프로그램 명령어)으로서 구현될 수 있다.
도 4는 신뢰 레벨 활성화 동작을 나타내는 흐름도이다. 처음에, 애플리케이션(102)이 임의의 자원으로부터 컴퓨팅 장치로 다운로드될 수 있다(블록 160). 일 실시예에서, 다운로드된 애플리케이션은 애플리케이션 코드 및 적하목록 파일을 포함하는 패키지의 형태일 수 있다. 패키지는 컴퓨팅 장치에 상주하는 운영 체제에 등록될 수 있다(블록 162). 일 실시예에서, Windows® 기반 운영 체제가 사용될 수 있고, 패키지가 운영 체제의 레지스트리에 등록될 수 있다. 등록되면, 운영 체제는 애플리케이션(102)을 위한 격리 실행 환경(104)을 생성할 수 있고, 애플리케이션(102)의 활성화 시에, 애플리케이션(102)을 실행하기 위한 사용자 프로세스(108)를 생성한다(블록 164). 예를 들어, 격리 실행 환경(104)은 자신에 대한 애플리케이션 레지스트리 세팅을 설정하고, 애플리케이션에 대해 경계가 정해진(bounded) 어드레스 공간을 할당하며, 분리된 프로세스(이 프로세스 내에서 애플리케이션이 실행됨)를 관리하는 분리된 소프트웨어 모듈에 의해 용이해질 수 있다. 애플리케이션(102)의 실행 중에, 애플리케이션(102)은 운영 체제 시스템 런타임 컴포넌트를 요청할 수 있다(블록 166).
도 5를 참조하면, 프로세스가 신뢰 레벨 컴포넌트로의 액세스를 요청하는 애플리케이션과 연관된 권한 레벨을 판정한다(블록 170). 신뢰 활성화 엔진(106)은 요청을 하는 사용자 프로세스(108)로부터 API 콜을 수신하고 사용자 프로세스(108)의 신원(identity)을 판정한다. 신뢰 활성화 엔진(106)은 API 콜에서 전달되는 토큰(110)으로부터 사용자 프로세스(108)의 신원을 판정할 수 있다. 토큰(110) 내의 패키지 SID가 격리 실행 환경(104) 내에서 실행되는 프로세스를 위한 운영 체제 레지스트리 내의 엔트리와 일치하면, 신뢰 활성화 엔진(106)은 호출 애플리케이션이 저 권한 레벨을 가진다고 판정한다. 일치하지 않으면, 신뢰 활성화 엔진(106)은 호출 애플리케이션이 고 권한 레벨을 가진다고 판정한다.
저 권한 애플리케이션이 신뢰 레벨 컴포넌트로의 액세스를 요청하고 있는 경우에(블록 170의 "예"), 프로세스는 컴포넌트의 신뢰 레벨을 판정한다(블록 172). 요청하지 않으면(블록 170의 "아니오"), 고 레벨 애플리케이션은 모든 신뢰 레벨 컴포넌트에 대한 액세스를 가지며, 그렇게 고 레벨 애플리케이션은 자신의 실행 환경으로부터 신뢰 레벨 컴포넌트를 불러오기 할 수 있다(블록 171).
저 권한 애플리케이션의 경우에, 신뢰 활성화 엔진(106)은 API 콜에서 요청된 신뢰 레벨 컴포넌트의 유형을 판정한다(블록 172). 신뢰 활성화 엔진(105)은 각각의 컴포넌트와 연관된 신뢰 레벨을 포함하는 API 데이터베이스(114) 내에서 요청된 컴포넌트를 매칭한다. 요청된 컴포넌트가 기본 신뢰 레벨과 연관되면(블록 174의 "예"), 신뢰 활성화 엔진은 API 객체(블록 176)를 생성한다. API 객체는 이후에 격리 실행 환경(104) 내의 사용자 프로세스의 어드레스 공간으로 전달된다(블록 176). API 콜과 연관된 메소드의 실행은 격리 실행 환경(104)으로부터 진행된다(블록 176).
요청된 컴포넌트가 기본 신뢰 레벨과 연관되지 않는 경우에(블록 174의 "아니오"), 요청된 컴포넌트가 부분 신뢰 레벨과 연관되면(블록 178의 "예"), 브로커 프로세스(134)가 API 콜을 실행하기 위해 생성될 수 있다(블록 180). 신뢰 활성화 엔진(106)은 브로커 프로세스(134)를 생성하여 브로커 프로세스(134)에서 부분 신뢰 컴포넌트(138)를 활성화한다(블록 180). 브로커 프로세스(134)는 부분 신뢰 컴포넌트(138)와 연관된 API 콜을 불러오기 함으로써 부분 신뢰 컴포넌트(138)를 활성화한다(블록 180). 브로커 프로세스(134)는 API 객체(블록 180)를 생성한다. 객체에 포함되는 데이터는 이후에 애플리케이션(102)으로부터의 API 콜의 불러오기 시에 사용될 수 있는 격리 실행 환경(104) 내의 사용자의 프로세스(108)로 전달될 수 있다(블록 180). API 콜과 연관된 메소드의 실행은 브로커 프로세스(134)에서 실행된다(블록 180).
요청된 컴포넌트가 완전 신뢰 레벨과 연관되는 경우에(블록 182의 "예"), 신뢰 활성화 엔진(106)은 완전 신뢰 컴포넌트에 대한 액세스를 거절하고 실패 응답을 사용자의 프로세스로 반환한다(블록 184). 이제, 본 명세서에 설명된 실시예를 이용하는 운영 환경에 대한 설명을 시작한다.
지금부터 도 6을 참조하면, 예시적인 운영 환경(250)에 대한 개략적인 블록도가 도시된다. 운영 환경(250)은 하나 이상의 서버(들)(258)와 통신 프레임워크(256)를 통해 통신하는 하나 이상의 클라이언트(들)(254)를 포함할 수 있다. 일 실시예에서, 클라이언트(254)는 시스템(100, 130, 150)을 구현하는 컴퓨팅 장치로서 구체화될 수 있다. 서버(258)는 애플리케이션 저장소, 서버, 이메일 서버, 웹 서버 등일 수 있는 클라이언트(254)로 제공되는 애플리케이션 코드의 소스로서 구현될 수 있다. 각각의 클라이언트(들)(254)는 클라이언트(254)에 로컬인 정보를 저장하는 하나 이상의 클라이언트 데이터 저장소(들)(260)에 연결된다. 각각의 서버(들)(258)는 서버(258)에 로컬인 정보를 저장하는 하나 이상의 서버 데이터 저장소(들)(262)에 연결된다.
클라이언트(254)는 하드웨어 장치, 소프트웨어 모듈 또는 이들의 조합으로서 구현될 수 있다. 이러한 하드웨어 장치의 예는 컴퓨터(예, 서버, 퍼스널 컴퓨터, 랩톱 등), 휴대폰, PDA 또는 임의의 유형의 컴퓨팅 장치 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 또한, 클라이언트(254)는 단일 실행 경로, 복수의 동시 실행 경로(예, 스레드, 프로세스 등), 또는 임의의 다른 방식으로 실행되는 명령어를 포함하는 소프트웨어 모듈로서 구현될 수 있다.
서버(258)는 하드웨어 장치, 소프트웨어 모듈 또는 이들의 조합으로서 구현될 수 있다. 이러한 하드웨어 장치의 예는 컴퓨터(예, 서버, 퍼스널 컴퓨터, 랩톱 등), 휴대폰, PDA 또는 임의의 유형의 컴퓨팅 장치 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 또한, 서버(258)는 단일 실행 경로, 복수의 동시 실행 경로(예, 스레드, 프로세스 등), 또는 임의의 다른 방식으로 실행되는 명령어를 포함하는 소프트웨어 모듈로서 구현될 수 있다.
통신 프레임워크(256)는 클라이언트(254)와 서버(258) 사이의 통신을 용이하게 한다. 일 실시예에서, 통신 프레임워크(256)는 통신 네트워크(예, 인터넷, LAN, WAN 또는 이들의 조합)로 구현될 수 있다. 통신 프레임워크(256)는 임의의 통신 프로토콜을 사용하는 유선 또는 무선 네트워크와 같은 임의의 유형의 통신 매체를 구현할 수 있다.
도 7을 참조하면, 클라이언트(254)가 네트워크 인터페이스(270), 프로세서(272) 및 메모리(274)를 포함할 수 있다. 프로세서(272)는 임의의 상용 프로세서일 수 있고, 듀얼 마이크로프로세서와 멀티 프로세서 아키텍처를 포함할 수 있다. 네트워크 인터페이스(720)는 클라이언트(254)와 통신 프레임워크(256) 사이의 유선 또는 무선 통신을 용이하게 하여 클라이언트(254)와 서버(258) 사이의 통신 경로를 제공한다.
메모리(274)는 임의의 컴퓨터 판독가능 저장 매체 또는 프로세서 실행가능 명령어, 절차, 애플리케이션 및 데이터를 저장할 수 있는 컴퓨터 판독가능 매체일 수 있다. 컴퓨터 판독가능 매체는 반송파를 통해 전송되는 변조된 데이터 신호와 같은 전파형 신호와 관련되는 것은 아니다. 컴퓨터 판독가능 매체는 임의의 유형의 메모리 장치(예, RAM, ROM 등), 자기 저장장치, 휘발성 저장장치, 비휘발성 저장장치, 광학 저장장치, DVD, CD, 플로피 드라이브, 디스크 드라이브, 플래시 메모리 등일 수 있다. 또한, 메모리(274)는 하나 이상의 외부 저장 장치 또는 원거리에 배치된 저장 장치를 포함할 수 있다. 메모리(274)는 명령어 및 데이터를 포함할 수 있고, 명령어 및 데이터는 예를 들면, 운영 체제(276), 레지스트리(278), 격리 실행 환경(104)(사용자 프로세스(108), 애플리케이션(102), 토큰(110) 및 기본 신뢰 객체(120)를 포함함), 신뢰 활성화 엔진(106), API 데이터베이스(114), 부분 신뢰 객체(138)를 포함하는 브로커 프로세스(134), 애플리케이션(282)과 적하목록 파일(284)을 포함하는 패키지(280), 및 다양한 다른 애플리케이션 및 데이터(286))이다.
본 발명의 대상이 구조적 특징 및/또는 방법론적 단계에 특정된 언어로 기술되었으나, 첨부된 청구범위에 정의된 본 발명의 대상은 전술한 특정된 특징이나 단계에 한정될 필요는 없다는 것을 이해할 수 있을 것이다. 오히려, 전술한 특정된 특징이나 단계는 청구범위를 구현하는 예시적인 형식으로서 기술된다.
예를 들어, 시스템의 다양한 실시예는 하드웨어 구성요소, 소프트웨어 구성요소 또는 양자의 조합을 이용하여 구현될 수 있다. 하드웨어 구성요소의 예는 장치, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 소자, 집적 회로, 애플리케이션 특정 집적 회로, 프로그램 가능한 로직 장치, 디지털 신호 프로세서, 필드 프로그램 가능한 게이트 어레이, 메모리 유닛, 로직 게이트 등을 포함할 수 있다. 소프트웨어 구성요소의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 절차, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스, 명령어 세트, 컴퓨팅 코드, 코드 세그먼트 및 이들의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 구성요소 및/또는 소프트웨어 구성요소를 사용하여 구현되는지 여부를 결정하는 것은 바람직한 컴퓨팅 레이트, 전력 레벨, 대역폭, 컴퓨팅 시간, 부하 균형, 메모리 자원, 데이터 버스 속도 및 주어진 구현에 필요한 다른 설계 또는 성능 제약에 따라 달라질 수 있다.
일부 실시예는 명령어 또는 로직을 저장하는 저장 매체를 포함할 수 있다. 저장 매체의 예는 전자 데이터를 저장할 수 있는 하나 이상의 유형의 컴퓨터 판독가능 저장 매체(휘발성 메모리 또는 비휘발성 메모리, 제거가능 또는 제거가능하지 않은 메모리, 소거가능 또는 소거가능하지 않은 메모리, 기입형 또는 재 기입형 메모리 등을 포함함)를 포함할 수 있다. 로직의 예는 다양한 소프트웨어 컴포넌트(예, 프로그램, 절차, 모듈, 애플리케이션, 코드 세그먼트, 프로그램 스택, 미들웨어, 펌웨어, 메소드, 루틴 등)를 포함할 수 있다. 일 실시예에서, 예를 들면, 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행되는 경우에 프로세서로 하여금 전술한 실시예에 따른 방법 및/또는 동작을 수행하게 하는 실행가능 컴퓨터 프로그램 명령어를 저장할 수 있다. 실행가능 컴퓨터 프로그램 명령어는 소정의 함수를 수행하라고 컴퓨터에 지시하는 사전 정의된 컴퓨터 언어, 방식 또는 구문에 따라 구현될 수 있다. 명령어는 임의의 적합한 하이 레벨, 로우 레벨, 객체 지향, 비주얼, 컴파일 및/또는 해석 프로그램 언어를 사용하여 구현될 수 있다.
Claims (10)
- 프로세서 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체로서,
상기 명령어는
애플리케이션을 실행하는 격리 실행 환경(isolation execution environment)을 생성하는 명령어와,
상기 애플리케이션에 의해 요청되는 컴포넌트를 실행하기 위한 브로커 프로세스를 생성하는 명령어 - 상기 컴포넌트는 운영 체제에 의해 제어되는 자원에 액세스하는 데 사용됨- 와,
상기 컴포넌트가 부분 신뢰 레벨과 연관되는 경우에 브로커 프로세스에서 상기 컴포넌트를 실행하는 명령어
를 포함하는 컴퓨터 판독가능 저장 매체.
- 제1항에 있어서,
컴포넌트와 연관된 복수의 신뢰 레벨을 인식하는 명령어를 더 포함하는
컴퓨터 판독가능 저장 매체.
- 제1항에 있어서,
상기 컴포넌트가 완전 신뢰 레벨과 연관되는 경우에 상기 격리 실행 환경에서의 상기 컴포넌트의 실행을 거절하는 명령어를 더 포함하는
컴퓨터 판독가능 저장 매체.
- 제1항에 있어서,
상기 컴포넌트가 부분 신뢰 레벨과 연관되는 경우에 상기 브로커 프로세스에서 실행되는 상기 컴포넌트와 연관된 API 객체를 생성하는 명령어를 더 포함하는
컴퓨터 판독가능 저장 매체.
- 제1항에 있어서,
상기 컴포넌트가 기본 신뢰 레벨과 연관되는 경우에 상기 격리 실행 환경에서 실행되는 상기 컴포넌트와 연관된 API 객체를 생성하는 명령어를 더 포함하는
컴퓨터 판독가능 저장 매체.
- 프로세서와,
상기 프로세서에 연결된 메모리를 포함하되,
상기 메모리는 신뢰 활성화 모듈을 포함하고,
상기 신뢰 활성화 모듈은, 상기 프로세서 상에서 실행되는 경우에 선택 권한 레벨(select privilege level)과 연관된 애플리케이션이 선택 신뢰 레벨을 가지는 컴포넌트에 액세스할 수 있는지 여부를 판정하는 명령어를 포함하고,
상기 애플리케이션은 상기 신뢰 활성화 모듈과 분리된 실행 환경에서 실행되며,
상기 컴포넌트는 운영 체제에 의해 제어되는 자원에 액세스하는 데 사용되는
장치.
- 제6항에 있어서,
상기 신뢰 활성화 모듈은, 상기 프로세서 상에서 실행되는 경우에 저 권한 애플리케이션이 완전 신뢰 레벨을 가지는 컴포넌트를 실행하는 것을 금지하는 명령어를 더 포함하는
장치.
- 제6항에 있어서,
상기 신뢰 활성화 모듈은, 상기 프로세서 상에서 실행되는 경우에 고 권한 애플리케이션이 임의의 신뢰 레벨 컴포넌트를 실행하는 것을 가능하게 하는 명령어를 더 포함하는
장치.
- 제6항에 있어서,
상기 신뢰 활성화 모듈은, 상기 프로세서 상에서 실행되는 경우에 저 권한 애플리케이션에게 상기 컴포넌트가 기본 신뢰 레벨을 가지는 경우에 격리 실행 환경에서 실행되도록 구성되는 실행가능 코드를 제공하는 명령어를 더 포함하는
장치.
- 제6항에 있어서,
상기 신뢰 활성화 모듈은, 상기 프로세서 상에서 실행되는 경우에 격리 실행 환경에서 저 권한 애플리케이션을 실행하고 상기 격리 실행 환경과 구분된 실행 환경에서 부분 신뢰 레벨을 가진 컴포넌트를 실행하도록 브로커 프로세스를 구성하는 명령어를 더 포함하는
장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/186,474 US8973158B2 (en) | 2011-07-20 | 2011-07-20 | Trust level activation |
US13/186,474 | 2011-07-20 | ||
PCT/US2012/045998 WO2013012592A1 (en) | 2011-07-20 | 2012-07-10 | Trust level activation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140045502A true KR20140045502A (ko) | 2014-04-16 |
KR101970744B1 KR101970744B1 (ko) | 2019-04-22 |
Family
ID=47556777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147001337A KR101970744B1 (ko) | 2011-07-20 | 2012-07-10 | 신뢰 레벨 활성화 기법 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8973158B2 (ko) |
EP (1) | EP2734949B1 (ko) |
JP (2) | JP5985631B2 (ko) |
KR (1) | KR101970744B1 (ko) |
CN (1) | CN103649963B (ko) |
WO (1) | WO2013012592A1 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061316A1 (en) * | 2011-09-06 | 2013-03-07 | Microsoft Corporation | Capability Access Management for Processes |
US8990561B2 (en) | 2011-09-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Pervasive package identifiers |
US9773102B2 (en) | 2011-09-09 | 2017-09-26 | Microsoft Technology Licensing, Llc | Selective file access for applications |
US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
US9524477B2 (en) * | 2012-05-15 | 2016-12-20 | Apple Inc. | Utilizing a secondary application to render invitational content in a separate window above an allocated space of primary content |
US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
US9515832B2 (en) | 2013-06-24 | 2016-12-06 | Microsoft Technology Licensing, Llc | Process authentication and resource permissions |
US9282100B2 (en) * | 2013-12-02 | 2016-03-08 | Cisco Technology, Inc. | Privilege separation |
US9483636B2 (en) | 2014-01-17 | 2016-11-01 | Microsoft Technology Licensing, Llc | Runtime application integrity protection |
CN105404819A (zh) * | 2014-09-10 | 2016-03-16 | 华为技术有限公司 | 一种数据访问控制方法、装置以及终端 |
US9600682B2 (en) * | 2015-06-08 | 2017-03-21 | Accenture Global Services Limited | Mapping process changes |
US9785783B2 (en) * | 2015-07-23 | 2017-10-10 | Ca, Inc. | Executing privileged code in a process |
US20170149828A1 (en) | 2015-11-24 | 2017-05-25 | International Business Machines Corporation | Trust level modifier |
US10747873B2 (en) | 2016-01-26 | 2020-08-18 | Hewlett-Packard Development Company, L.P. | System management mode privilege architecture |
US10360135B2 (en) * | 2016-03-31 | 2019-07-23 | Microsoft Technology Licensing, Llc | Privilege test and monitoring |
JP6779758B2 (ja) * | 2016-11-21 | 2020-11-04 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
KR20180071679A (ko) | 2016-12-20 | 2018-06-28 | 삼성전자주식회사 | 사용자 단말 장치 및 그의 제어 방법 |
US10503908B1 (en) | 2017-04-04 | 2019-12-10 | Kenna Security, Inc. | Vulnerability assessment based on machine inference |
US10728500B2 (en) | 2018-06-13 | 2020-07-28 | At&T Intellectual Property I, L.P. | Object-managed secured multicast system |
US10762244B2 (en) * | 2018-06-29 | 2020-09-01 | Intel Corporation | Securely exposing an accelerator to privileged system components |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
JP2020135555A (ja) * | 2019-02-21 | 2020-08-31 | Necソリューションイノベータ株式会社 | 処理実行方法 |
US20200364354A1 (en) * | 2019-05-17 | 2020-11-19 | Microsoft Technology Licensing, Llc | Mitigation of ransomware in integrated, isolated applications |
US11895105B2 (en) * | 2020-06-19 | 2024-02-06 | Apple, Inc. | Authenticated interface element interactions |
US11880719B2 (en) * | 2022-01-20 | 2024-01-23 | Dell Products L.P. | Trust-aware and adaptive system to aid virtual/human intervention using an API-based mechanism |
US20240037220A1 (en) * | 2022-07-31 | 2024-02-01 | Microsoft Technology Licensing, Llc | Securely brokering access tokens to partially trusted code |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149726A1 (en) * | 2003-10-21 | 2005-07-07 | Amit Joshi | Systems and methods for secure client applications |
US20060047922A1 (en) * | 2004-08-25 | 2006-03-02 | Microsoft Corporation | Reclaiming application isolated storage |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167522A (en) | 1997-04-01 | 2000-12-26 | Sun Microsystems, Inc. | Method and apparatus for providing security for servers executing application programs received via a network |
US6275938B1 (en) | 1997-08-28 | 2001-08-14 | Microsoft Corporation | Security enhancement for untrusted executable code |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6691230B1 (en) | 1998-10-15 | 2004-02-10 | International Business Machines Corporation | Method and system for extending Java applets sand box with public client storage |
AU7996200A (en) * | 1999-10-05 | 2001-05-10 | Ejasent Inc. | Virtual port multiplexing |
US7284124B1 (en) * | 2000-06-05 | 2007-10-16 | Microsoft Corporation | Trust level based platform access regulation application |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7216369B2 (en) | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
JP2004252584A (ja) * | 2003-02-18 | 2004-09-09 | Nec Corp | データアクセス制御装置 |
US7490353B2 (en) * | 2005-02-22 | 2009-02-10 | Kidaro, Inc. | Data transfer security |
US20070260577A1 (en) | 2006-03-30 | 2007-11-08 | Microsoft Corporation | Providing COM access to an isolated system |
JP2008102838A (ja) * | 2006-10-20 | 2008-05-01 | Canon Inc | 情報処理方法およびプログラム |
JP2010282242A (ja) * | 2007-08-20 | 2010-12-16 | Nec Corp | アクセス制御システム、アクセス制御方法およびアクセス制御用プログラム |
US9218200B2 (en) * | 2008-08-21 | 2015-12-22 | Vmware, Inc. | Selective class hiding in open API component architecture system |
US8745361B2 (en) | 2008-12-02 | 2014-06-03 | Microsoft Corporation | Sandboxed execution of plug-ins |
US20100199357A1 (en) | 2009-02-02 | 2010-08-05 | Microsoft Corporation | Secure hosting for untrusted code |
JP4787341B2 (ja) * | 2009-02-18 | 2011-10-05 | 株式会社エヌ・ティ・ティ・ドコモ | データ処理装置、データ処理方法、データ処理プログラム |
CN102428471B (zh) * | 2009-05-18 | 2016-05-25 | 惠普开发有限公司 | 从系统管理模式确定信任级别的系统和方法 |
US8627451B2 (en) | 2009-08-21 | 2014-01-07 | Red Hat, Inc. | Systems and methods for providing an isolated execution environment for accessing untrusted content |
-
2011
- 2011-07-20 US US13/186,474 patent/US8973158B2/en active Active
-
2012
- 2012-07-10 WO PCT/US2012/045998 patent/WO2013012592A1/en active Application Filing
- 2012-07-10 JP JP2014521651A patent/JP5985631B2/ja active Active
- 2012-07-10 KR KR1020147001337A patent/KR101970744B1/ko active IP Right Grant
- 2012-07-10 EP EP12814655.2A patent/EP2734949B1/en active Active
- 2012-07-10 CN CN201280035888.1A patent/CN103649963B/zh active Active
-
2014
- 2014-11-30 US US14/556,221 patent/US9465948B2/en active Active
-
2016
- 2016-08-03 JP JP2016153045A patent/JP6248153B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149726A1 (en) * | 2003-10-21 | 2005-07-07 | Amit Joshi | Systems and methods for secure client applications |
US20060047922A1 (en) * | 2004-08-25 | 2006-03-02 | Microsoft Corporation | Reclaiming application isolated storage |
Also Published As
Publication number | Publication date |
---|---|
EP2734949A4 (en) | 2015-05-13 |
WO2013012592A1 (en) | 2013-01-24 |
KR101970744B1 (ko) | 2019-04-22 |
JP2017016669A (ja) | 2017-01-19 |
US9465948B2 (en) | 2016-10-11 |
US20150106915A1 (en) | 2015-04-16 |
US8973158B2 (en) | 2015-03-03 |
EP2734949B1 (en) | 2020-11-04 |
EP2734949A1 (en) | 2014-05-28 |
JP5985631B2 (ja) | 2016-09-06 |
CN103649963A (zh) | 2014-03-19 |
CN103649963B (zh) | 2016-02-03 |
JP2014521184A (ja) | 2014-08-25 |
JP6248153B2 (ja) | 2017-12-13 |
US20130024929A1 (en) | 2013-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101970744B1 (ko) | 신뢰 레벨 활성화 기법 | |
US8429741B2 (en) | Altered token sandboxing | |
US8893268B2 (en) | Permission re-delegation prevention | |
US10171502B2 (en) | Managed applications | |
KR101665894B1 (ko) | 가상 머신 내의 강제적 보호 제어 | |
US20230074455A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
US10628611B2 (en) | Exclusive execution environment within a system-on-a-chip computing system | |
Athanasopoulos et al. | Nacldroid: Native code isolation for android applications | |
US8732811B2 (en) | Systems and methods for implementing security services | |
US9411979B2 (en) | Embedding secret data in code | |
US10719456B2 (en) | Method and apparatus for accessing private data in physical memory of electronic device | |
US9398019B2 (en) | Verifying caller authorization using secret data embedded in code | |
US20160342802A1 (en) | Creating multiple workspaces in a device | |
CN115495343A (zh) | 一种安全维护方法、装置、存储介质及电子设备 | |
Zhang et al. | React: A resource-centric access control system for web-app interactions on android | |
EP2581853B1 (en) | Method and apparatus for secure web widget runtime system | |
Zhang et al. | Achieving resource-centric access control for web-app interactions on android | |
Yason | Diving Into IE 10’s Enhanced Protected Mode Sandbox | |
EP4145318A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
Peck et al. | Android security analysis final report | |
CN116861410A (zh) | 隔离多开进程的方法和终端设备 | |
CN117390617A (zh) | 权限控制方法、装置、电子设备及计算机可读存储介质 | |
Peck et al. | Android Security Analysis | |
Smith et al. | Exe-Guard Project | |
Gadyatskaya et al. | Emerging Mobile Platforms: Firefox OS and Tizen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |