KR20140066718A - 애플리케이션용 선택적 파일 액세스 기법 - Google Patents

애플리케이션용 선택적 파일 액세스 기법 Download PDF

Info

Publication number
KR20140066718A
KR20140066718A KR1020147006133A KR20147006133A KR20140066718A KR 20140066718 A KR20140066718 A KR 20140066718A KR 1020147006133 A KR1020147006133 A KR 1020147006133A KR 20147006133 A KR20147006133 A KR 20147006133A KR 20140066718 A KR20140066718 A KR 20140066718A
Authority
KR
South Korea
Prior art keywords
application
file
data
access
broker service
Prior art date
Application number
KR1020147006133A
Other languages
English (en)
Other versions
KR101928127B1 (ko
Inventor
스코트 그라함
카비사 라다크리쉬난
서메트 이스킨
카트리나 엠 블랜치
스티븐 볼
존 하젠
테일러 키엔 빔
알렌 킴
구일러모 엔리퀘 루다 퀸터로
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20140066718A publication Critical patent/KR20140066718A/ko
Application granted granted Critical
Publication of KR101928127B1 publication Critical patent/KR101928127B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

애플리케이션에 의한 선택적 파일 시스템 액세스를 가능하게 하는 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다. 애플리케이션은 컴퓨팅 장치 내에 설치된다. 애플리케이션과 연관된 애플리케이션 매니페스트가 수신된다. 애플리케이션 매니페스트는 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시한다. 표시된 파일 타입(들)은 브로커 서비스에 의해 액세스가능한 위치에 등록된다. 애플리케이션은 애플리케이션 프로세스로서 런칭된다. 애플리케이션 프로세스는 애플리케이션 컨테이너 내에 격리된다. 애플리케이션 컨테이너는 파일 시스템 데이터로의 애플리케이션 프로세스에 의한 직접 액세스를 차단한다. 파일 시스템 데이터의 제1 데이터와 관련된 액세스 요청은 애플리케이션 프로세스로부터 브로커 서비스에 수신된다. 브로커 서비스는 제1 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되는지를 결정할 때, 제1 데이터로의 애플리케이션 프로세스에 의한 액세스가 가능하다.

Description

애플리케이션용 선택적 파일 액세스 기법{SELECTIVE FILE ACCESS FOR APPLICATIONS}
애플리케이션은 하나 이상의 작업을 수행하기 위해 구현되고 컴퓨터 시스템 내에서 구동되는 실행가능 프로그램 코드를 포함한다. 애플리케이션에 대한 프로그램 코드를 형성하기 위해 사용될 수 있는 매우 다양한 타입의 프로그래밍 언어가 존재한다. 오피스 스위트 애플리케이션(office suite application), 데스크탑 애플리케이션, 모바일 애플리케이션, 웹 애플리케이션, 등을 포함하는 다양한 타입의 애플리케이션이 다양한 기능을 수행하기 위해 존재한다. 일부 애플리케이션은 이들의 기능을 수행할 때 사용될 이들의 호스트 컴퓨터 또는 다른 컴퓨터의 파일 시스템 내에 저장된 데이터를 액세스할 수 있다. 예를 들어, 워드 프로세싱 애플리케이션은 편집을 위해 텍스트 파일 또는 문서 파일을 액세스할 수 있다. 미디어 플레이어 애플리케이션은 재생을 위해 오디오 파일 및/또는 비디오 파일을 액세스할 수 있다. 데이터베이스 애플리케이션은 다양한 용도로 데이터베이스의 데이터베이스 파일 내의 데이터를 액세스할 수 있다.
그러나, 애플리케이션은 일반적으로 그 애플리케이션과 관련되지 않은 파일 시스템 데이터를 포함하는 파일 시스템 데이터로의 액세스를 갖기 때문에, 매우 다양한 파일 시스템 데이터를 손상시키는 악성 프로그램 코드를 포함하는 애플리케이션에게 기회가 존재한다.
본 요약은 이하의 상세한 설명에서 추가로 기재되는 본 발명의 개념의 선택사항을 단순화된 형태로 소개하고자 제시된 것이다. 이 요약은 청구 대상의 주요 특징 또는 근본 특징을 식별하도록 의도된 것이 아니며, 청구 대상의 범주를 제한하기 위해 사용하도록 의도된 것도 아니다.
애플리케이션에 의해 선택적 파일 시스템 액세스를 가능하게 하는 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다. 애플리케이션에 의한 파일 시스템 데이터의 액세스는 브로커 서비스에 의해 처리된다. 애플리케이션은 이와는 다르게 파일 시스템 데이터(그 자체 파일을 제외하고 그 자체 리소스의 다른 것)를 액세스하는 것이 차단된다. 브로커 서비스는 애플리케이션으로부터 파일 시스템 데이터를 액세스하기 위한 요청을 수신하고, 액세스될 요청된 데이터가 애플리케이션이 액세스되도록 허용되는 파일 타입으로 구성되는 경우, 브로커 서비스는 애플리케이션이 데이터를 액세스할 수 있도록 한다. 이와는 다르게, 애플리케이션은 데이터로의 액세스가 거부 또는 차단된다.
일 방법 구현에 따라서, 애플리케이션은 컴퓨팅 장치 내에 설치된다. 애플리케이션과 연계된 애플리케이션 매니페스트가 수신된다. 애플리케이션 매니페스트는 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시한다. 표시된 파일 타입(들)은 브로커 서비스에 의해 액세스가능한 위치에 등록된다.
게다가, 애플리케이션은 애플리케이션 프로세스로서 런칭될 수 있다. 애플리케이션 프로세스는 사용자 계정과 유사한 애플리케이션 컨테이너 내에 격리된다(사용자 계정을 갖는 사용자는 다른 사용자의 파일을 액세스할 수 없음). 애플리케이션 컨테이너는 파일 시스템 데이터로의 애플리케이션 프로세스에 의한 직접 액세스를 차단한다. 파일 시스템 데이터의 제1 데이터와 관련된 액세스 요청은 애플리케이션 프로세스로부터 브로커 서비스에 수신된다. 브로커 서비스는 제1 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되는지를 결정할 때, 제1 데이터로의 애플리케이션 프로세스에 의한 액세스가 가능하다.
시스템 구현에 따라서, 컴퓨팅 장치가 제공된다. 컴퓨팅 장치는 저장부 및 프로세싱 로직을 포함한다. 저장부는 컴퓨팅 장치 내에 설치된 애플리케이션 및 애플리케이션과 연계된 애플리케이션 매니페스트를 저장한다. 애플리케이션 매니페스트는 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시한다. 프로세싱 로직은 브로커 서비스를 포함하고, 브로커 서비스에 의해(애플리케이션에 의해서가 아님) 액세스가능한 위치에 파일 타입(들)을 등록한다. 브로커 서비스는 등록된 파일 타입(들)의 파일로의 애플리케이션에 의한 액세스를 제한하도록 구성된다.
프로세싱 로직은 애플리케이션이 런칭될 때 애플리케이션 프로세스를 시작할 수 있고, 애플리케이션 컨테이너 내에 애플리케이션 프로세스를 포함할 수 있다. 애플리케이션 컨테이너는 파일 시스템 데이터로의 애플리케이션 프로세스에 의한 직접 액세스를 차단한다. 브로커 서비스는 애플리케이션 프로세스로부터 파일 시스템 데이터의 제1 데이터에 대한 액세스 요청을 수신한다. 프로세싱 로직은 브로커 서비스가 제1 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되는지를 결정할 때 제1 데이터로의 애플리케이션 프로세스에 의한 액세스를 가능하게 한다.
추가로, 애플리케이션에 의해 파일 시스템 데이터로의 선택적 액세스를 가능하게 하는 것을 포함하는 다양한 실시 형태, 및 추가 실시 형태를 가능하게 하기 위해 프로그램 코드/로직을 저장하는 컴퓨터-판독가능 저장 매체가 본 명세서에 기재된다.
본 발명의 여러 실시 형태의 구조 및 동작뿐만 아니라 본 발명의 다른 특징 및 이점은 첨부된 도면을 참조하여 하기에서 상세하게 설명되어 있다. 본 발명은 본 명세서에 기재된 특정 실시 형태로 한정되지 않는다는 것을 주지하라. 이러한 실시 형태는 단지 예시를 목적으로 본 명세서에 제시되어 있다. 당업자라면 본 명세서에 포함된 교시에 기초한 추가적인 실시 형태가 명확할 것이다.
본 명세서에 포함되어 있고 본 명세서의 일부분을 형성하는 첨부된 도면은 본 발명을 설명하기 위한 것이고, 또한 그 상세한 설명과 함께 본 발명의 원리를 설명하고, 당업자들이 본 발명을 구성하고 사용할 수 있도록 하기 위해 제공되었다.
도 1은 예시적 실시 형태에 따라서 애플리케이션에 의해 파일 시스템 데이터로의 액세스를 조절하도록 구성된 컴퓨팅 장치의 블록 다이어그램을 도시한다.
도 2는 예시적 실시 형태에 따라서 브로커 서비스가 오퍼레이팅 시스템 내에 포함되는 컴퓨팅 장치의 블록 다이어그램을 도시한다.
도 3은 예시적 실시 형태에 따라서 애플리케이션에 의해 파일 시스템 데이터로의 액세스를 조절하기 위한 프로세스를 제공하는 흐름도를 도시한다.
도 4는 예시적 실시 형태에 따라서 파일 시스템 데이터로의 제어된 액세스를 위해 애플리케이션을 구성하고 설치하기 위한 프로세스를 제공하는 흐름도를 도시한다.
도 5는 예시적 실시 형태에 따라서 애플리케이션이 파일 시스템 데이터로의 제어된 액세스를 위해 구성되고 설치되는 컴퓨팅 장치의 블록 다이어그램을 도시한다.
도 6은 예시적 실시 형태에 따라서 애플리케이션 매니페스트의 블록 다이어그램을 도시한다.
도 7은 예시적 실시 형태에 따라서 애플리케이션 컨테이너 내에서 애플리케이션을 런칭하기 위한 프로세스를 제공하는 흐름도를 도시한다.
도 8은 예시적 실시 형태에 따라서 애플리케이션이 애플리케이션 컨테이너 내에서 런칭되는 컴퓨팅 장치의 블록 다이어그램을 도시한다.
도 9는 예시적 실시 형태에 따라서 애플리케이션 프로세스에 의해 파일 시스템 데이터로의 액세스를 제어하기 위하여 브로커 서비스를 사용하는 프로세스를 제공하는 흐름도를 도시한다.
도 10은 예시적 실시 형태에 따라서 브로커 서비스가 애플리케이션 프로세스에 의해 파일 시스템 데이터로의 액세스를 제어하는 컴퓨팅 장치의 블록 다이어그램을 도시한다.
도 11은 예시적 실시 형태에 따라서 애플리케이션 프로세스에 의해 파일 시스템 데이터로의 액세스를 제어하기 위하여 브로커 서비스를 사용하는 프로세스를 제공하는 흐름도를 도시한다.
도 12는 본 발명의 실시 형태를 구현하기 위하여 사용될 수 있는 예시적 컴퓨터의 블록 다이어그램을 도시한다.
본 발명의 특징 및 이점은 그 전체에 걸쳐 동일한 도면 부호가 대응하는 구성 요소를 식별하는 도면과 함께 이하에 제시된 상세한 설명을 숙지함으로써 더 명확해질 것이다. 도면에서, 동일한 도면 부호는 일반적으로 동일한, 기능적으로 유사한 및/또는 구조적으로 유사한 구성 요소를 나타낸다. 소정의 구성 요소가 첫 번째로 나타나는 도면은 대응하는 도면 부호 내에 가장 좌측 숫자로 표시되어 있다.
I. 도입
본 명세서에는 본 발명의 특징들을 통합하는 하나 이상의 실시 형태가 개시된다. 개시된 실시 형태(들)는 단지 본 발명을 예시한다. 본 발명의 범위는 개시된 실시 형태(들)에 제한되지 않는다. 본 발명은 이에 첨부된 청구범위에 의해 정해진다.
기재된 실시 형태가 특정 특징, 구조, 또는 특성을 포함할 수 있지만 모든 실시 형태가 특정 특징, 구조, 또는 특성을 필수적으로 포함하지 않을 수 있는 것을 나타내는 "일 실시 형태", "실시 형태", "예시적 실시 형태" 등이 본 명세서에서 참조된다. 게다가, 이러한 어구는 동일한 실시 형태를 필수적으로 지칭하지 않는다. 추가로, 특정 특징, 구조, 또는 특성이 실시 형태에 관하여 기재될 때, 이는 명시적으로 기재되든지 다른 실시 형태에 관하여 이러한 특징, 구조, 또는 특성을 구현하는 당업자의 지식 내에 있는 것으로 제안된다.
본 발명의 다수의 예시적인 실시 형태가 다음과 같이 기재된다. 본 명세서에서 제공된 임의의 섹션/서브섹션도 제한을 의도하는 것이 아님을 알아야 한다. 실시 형태는 이 문헌 전체에 걸쳐서 기재되며, 임의의 유형의 실시 형태가 임의의 섹션/서브섹션 내에 포함될 수 있다.
II. 예시적 실시 형태
실시 형태는 파일 시스템 데이터로의 애플리케이션에 의한 액세스를 조절/제한/제어하기 위한 기술에 관한 것이다. 애플리케이션은 이들의 기능을 수행하기 위하여 이들의 호스트 컴퓨터 시스템(및/또는 다른 컴퓨터 시스템)의 파일 시스템 내에 저장된 데이터를 액세스할 수 있다. 예를 들어, 워드 프로세싱 애플리케이션(word processing application)은 편집을 위해 텍스트 파일 또는 문서 파일을 액세스할 수 있다. 미디어 플레이어 애플리케이션은 재생을 위해 오디오 파일 및/또는 비디오 파일을 액세스할 수 있다. 데이터베이스 애플리케이션은 다양한 사용을 위해 데이터베이스 내에 저장된 데이터를 액세스할 수 있다. 그러나, 애플리케이션이 애플리케이션과 관련이 없는 파일 시스템 데이터를 포함할 수 있는 파일 시스템 데이터를 액세스할 수 있기 때문에, 악성 프로그램 코드를 포함하는 애플리케이션이 파일 시스템 데이터를 훔치거나, 매우 다양한 파일 시스템 데이터를 손상시키거나, 또는 다른 바람직하지 못한 행위를 할 기회가 존재한다.
실시 형태는 애플리케이션이 상호작용하도록 구성되는 타입의 파일 시스템 데이터에 대해 애플리케이션에 의한 파일 시스템 데이터로의 액세스를 제한하는 이점을 제공한다. 예를 들어, 개발자 또는 다른 개인이 애플리케이션이 액세스가능하고/상호작용할 수 있는(예를 들어, 판독, 기록, 수정, 이름변경, 복사, 이동, 등) 하나 이상의 파일 타입의 표시(indication)을 제공할 수 있다. 파일 타입(들)(예를 들어, MP3 파일, 마이크로소프트(Microsoft)® 워드 파일(Word file), 등)은 애플리케이션이 컴퓨터 시스템에 설치될 때 등록될 수 있다. 애플리케이션이 실행되고 컴퓨터 시스템의 파일 시스템 데이터의 액세스를 시도할 때, 애플리케이션은 파일 시스템 데이터가 등록된 파일 타입(들)의 파일 타입을 갖는 경우 파일 시스템 데이터를 액세스할 수 있게 된다. 액세스되는 파일 시스템 데이터가 등록된 파일 타입(들)이 아닌 경우, 파일 시스템 데이터의 액세스는 거부 또는 차단될 수 있다. 애플리케이션은 예컨대, 그 자체의 파일 및 그 자체의 리소스의 다른 것들, 애플리케이션에 대한 임시 작업 디렉토리, 및 애플리케이션에 대한 셋팅 디렉토리와 같은 필수 애플리케이션 정보를 액세스할 수 있게 되지만, 이와는 달리 본 명세서에서 기재된 바와 같이 민감형 파일 시스템 데이터로의 액세스는 거부될 수 있다.
실시 형태들이 다양한 환경에서 구현될 수 있다. 예를 들어, 도 1에는 예시적 실시 형태에 따른 컴퓨팅 장치(computing device, 102)의 블록 다이어그램이 도시된다. 도 1에 도시된 바와 같이, 컴퓨팅 장치(102)는 애플리케이션 프로세스(application process, 104), 브로커 서버(broker service, 106), 저장부(storage, 108), 및 애플리케이션(120)을 포함한다. 게다가, 저장부(108)는 복수의 폴더(110a- 11On)를 포함한다. 각각의 폴더(110a- 11On)는 하나 이상의 파일을 포함할 수 있다. 예를 들어, 폴더(110a)는 파일(112a-112n)을 포함하는 것으로 도시된다. 폴더(110a-11On)와 파일(112a-112n)은 컴퓨팅 장치(102)의 파일 시스템의 파일 시스템 데이터(118) 내에 포함된다. 컴퓨팅 장치(102)는 하기와 같이 추가로 기재된다.
컴퓨팅 장치(102)는 데스크탑 컴퓨터(예를 들어, 퍼스널 컴퓨터, 등), 모바일 컴퓨터 또는 컴퓨팅 장치(예를 들어, 팜(Palm)® 장치, 림 블랙베리(RIM Blackberry)® 장치, PDA(personal digital assistant), 랩탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터(예를 들어, 애플 아이패드(Apple iPad)™), 넷북, 등), 모바일 폰(예를 들어, 휴대폰, 스마트폰(예컨대, 애플 아이폰(Apple iPhone), 구글 안드로이드(Google Android)™ 폰, 마이크로소프트 윈도우즈(Microsoft Windows)® 폰, 등), 또는 다른 타입의 모바일 장치를 포함하는 고정식 또는 이동식 컴퓨팅 장치의 임의의 타입일 수 있다.
전술된 바와 같이, 컴퓨팅 장치(102)는 저장부(108)를 포함한다. 저장부(108)에는 자기 디스크(예를 들어, 하드 디스크 드라이브 내에), 광학 디스크(예를 들어, 광학 디스크 드라이브 내에), 자기 테이프(예를 들어, 테이프 드라이브 내에), 메모리 장치(예컨대, RAM 장치, ROM 장치, 등) 및/또는 임의의 다른 적합한 타입의 저장 매체를 포함하는, 폴더 및 파일을 저장하기 위한 하나 이상의 임의의 타입의 저장 기구가 포함될 수 있다. 저장부(108)는 도 1에 도시된 바와 같이 전적으로 로컬 저장부일 수 있거나, 또는 "클라우드(cloud)" 저장부 및 미디어 서버에서 이용가능한 저장부와 같이 네트워크에 걸쳐 액세스가능한 저장부를 포함하는, 컴퓨팅 장치(102)로부터 원격의 저장부를 선택적으로 포함할 수 있다. 게다가, 저장부(108)는 탈착가능 저장 장치를 포함할 수 있다. 도 1에 도시된 바와 같이, 파일 시스템 데이터(118)는 저장부(108) 내에 저장된다. 폴더(110a-110n)는 당업자에게 공지된 바와 같이 파일 시스템 데이터(118) 내에 포함된 가상 폴더이다. 폴더(110a-110n)는 계층으로(in a hierarchy) 및/또는 임의의 다른 배열로 조직화될 수 있다. 수십, 수백, 수천, 및 심지어 더 많은 개수의 폴더를 포함하는, 임의의 개수의 폴더(110)가 존재할 수 있고, 각각의 폴더(110)는 임의의 개수의 파일을 포함할 수 있다. 파일(112a-112n)은 당업자에게 공지된 바와 같이 데이터를 포함하는 컴퓨터 파일이다. 수십, 수백, 수천, 및 심지어 더 많은 개수의 파일의 포함하는, 임의의 개수의 파일(112)이 존재할 수 있다.
브로커 서비스(106)는 컴퓨팅 장치(102) 내에서 실행될 수 있는(예를 들어, 하나 이상의 프로세서에 의해) 하나 이상의 프로세스(예를 들어, "브로커 프로세스")를 포함한다. 브로커 서비스(106)는 애플리케이션이 액세스하도록 허용되는 파일 시스템 데이터(118)의 데이터로의 애플리케이션에 의한 액세스를 제한하도록 구성된다. 브로커 서비스(106)의 프로그램 코드는 독립형 프로그램 코드일 수 있거나 또는 컴퓨터 장치(102)의 다른 프로그램 코드 내에 포함될 수 있다. 예를 들어, 도 2에는 예시적 실시 형태에 따른 컴퓨팅 장치(102)의 블록 다이어그램이 도시된다. 도 2에 도시된 바와 같이, 브로커 서비스(106)는 컴퓨팅 장치(102)의 오퍼레이팅 시스템(202) 내에 포함될 수 있다. 선택적으로, 브로커 서비스(106)는 하드웨어 및/또는 컴퓨팅 장치(102)의 다른 리소스로의 애플리케이션에 의한 액세스를 제한하는 것을 포함하는 컴퓨팅 장치(102)용 추가 서비스를 제공할 수 있다.
애플리케이션(120)은 컴퓨팅 장치(102) 내에서 실행하고/동작하는 소프트웨어 애플리케이션이고, 컴퓨팅 장치(102)의 저장부(예를 들어, 저장부(108)) 내에 저장될 수 있다. 예를 들어, 애플리케이션(120)은 오피스 스위트 애플리케이션, 데스크탑 애플리케이션, 모바일 애플리케이션, 웹 애플리케이션, 등일 수 있다. 오피스 스위트 애플리케이션에는 예컨대, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 프레젠테이션 애플리케이션, 등과 같은 다양한 타입의 생산성 향상 애플리케이션이 포함된다. 데스크탑 애플리케이션에는 일부 오피스 스위트 애플리케이션, 데스크탑 위젯 또는 가젯(예컨대, 뉴스 스트리밍, 현재의 날씨를 제공하고 현재의 주식 시세를 나타내며, 등과 같이 전형적으로 단일 목적의 서비스를 제공하는 상호작용 도구(interactive tool)), 웹 브라우저, 등을 포함하는, (예를 들어, 데스크탑 컴퓨터의) 컴퓨터 데스크탑 내에서 동작하도록 구성되는 다양한 타입의 애플리케이션이 포함된다. 모바일 애플리케이션에는 예컨대, 스마트 폰, 태블릿 컴퓨터, PMP(portable media player), PDA(personal digital assistant), 등과 같은 모바일 핸드헬드 장치 내에서 동작하는 다양한 타입의 애플리케이션(예를 들어, "앱(App)")이 포함된다. 웹 애플리케이션(또한, "웹 앱" 또는 "웹앱"으로 알려짐)은 예컨대, 인터넷 또는 인트라넷과 같은 네트워크에 걸쳐서 액세스가능한 애플리케이션이며, 애플리케이션을 랜더링하는 웹 브라우저 내에서 호스팅될 수 있다. 예시 애플리케이션에는 소셜 네트워킹 애플리케이션, 탐색 지원 애플리케이션(예를 들어, 맵핑 애플리케이션, 레스토랑-위치찾기 애플리케이션, 교통 애플리케이션, 등), 게이밍 애플리케이션, 재무설계 애플리케이션, 등이 포함된다.
애플리케이션(120)은 예컨대, 애플리케이션 프로세스(104)와 같이 하나 이상의 애플리케이션 인스턴스 또는 "프로세스"를 스포닝하도록(spawn) 실행될 수 있다. 애플리케이션 프로세스(104)에는 애플리케이션(120)의 프로그램 코드(명령) 및 이의 현재 활동(current activity)이 포함된다. 애플리케이션 프로세스(104)는 컴퓨팅 장치(102)의 하나 이상의 프로세서 내에서 실행된다. 애플리케이션 프로세스(104)는 하나 이상의 실행 스레드(execution thread)를 포함할 수 있다. 다수의 실행 스레드가 존재 시에, 스레드는 프로그램 코드를 동시에 실행할 수 있다.
애플리케이션 프로세스(104)가 실행 중에, 애플리케이션 프로세스(104)는 예컨대, 파일(112a)과 같이 파일 시스템 데이터(118)의 데이터를 액세스하는 시도를 할 수 있다. 통상적인 시스템에 따라서 애플리케이션 프로세스(104)는 일부 제한을 갖는 파일(112a)을 액세스할 수 있다. 그러나, 애플리케이션 프로세스(104)는 악성 프로그램 코드(예를 들어, 애플리케이션(120)의 원래의 설계에 의해, 애플리케이션(120)에 침투된 바이러스 코드에 의해, 등)를 포함할 수 있거나, 또는 애플리케이션(120)의 사용자가 예상하지 못한 방식으로 파일(112a)을 액세스할 수 있다. 어느 경우에나, 애플리케이션 프로세스(104)는 파일(112a)을 액세스가능함으로써 손상이 야기될 수 있다.
실시 형태는 파일 시스템 데이터로의 액세스를 제한함으로써 악성 애플리케이션 코드에 의해 야기되는 손상의 감소를 돕는다. 실시 형태에 따라서, 애플리케이션 프로세스(104)는, 현재의 예시가 파일(112a)인, 액세스되도록 요구되는 파일 시스템 데이터(118)의 데이터를 표시하는 데이터 액세스(114)를 생성할 수 있다. 도 1에 도시된 바와 같이, 데이터 액세스(114)는 브로커 서비스(106)에 의해 수신된다. 브로커 서비스(106)는 파일(112a)이 애플리케이션(120)이 액세스하도록 허용되는 파일 타입으로 형성되는지를 결정하도록 구성된다. 브로커 서비스(106)는 파일(112a)이 애플리케이션(120)이 액세스하도록 허용되는 파일 타입으로 형성되는 경우, 애플리케이션 프로세스(104)가 파일(112a)을 액세스할 수 있도록 한다. 이와 같은 경우 도 1에 도시된 바와 같이, 데이터 액세스(114)에서 요청된 데이터는 응답 데이터(116)와 같이 브로커 서비스(106)를 통하여 저장부(108)로부터 애플리케이션 프로세스(104)로 제공될 수 있거나, 또는 응답 데이터(116)는 애플리케이션 프로세스(104)가 데이터를 액세스할 수 있는 방식으로 표시될 수 있다. 예를 들어, 파일 또는 폴더에 대한 핸들(handle)은 애플리케이션(104)이 파일 또는 폴더를 액세스하도록 허용되는 응답 데이터(116) 내에서 애플리케이션 프로세스(104)로 보내질 수 있다. 이와는 달리, 브로커 서비스(106)는, 파일(112a)이 애플리케이션(120)이 액세스하도록 허용되지 않는 파일 타입을 갖는 경우, 파일(112a)로의 액세스를 거부할 수 있다. 브로커 서비스(106)는 액세스가 허용되지 않을 때, 파일의 판독, 폴더의 컨텐츠의 판독, 파일 또는 폴더의 기록, 파일 또는 폴더의 이름변경, 파일 또는 폴더의 이동, 또는 제1 데이터의 파일 또는 폴더에 걸친 복사를 위해 애플리케이션 프로세스(104)에 의한 액세스의 거부를 포함하는, 애플리케이션 프로세스(104)에 의한 파일 및 폴더와의 다양한 상호작용을 거부할 수 있다.
컴퓨팅 장치(102)는 이의 기능을 수행하도록 다양한 방식으로 동작할 수 있다. 예를 들어, 도 3에는 예시적 실시 형태에 따라 애플리케이션에 의해 파일 시스템 데이터로의 액세스를 조절하기 위한 프로세스를 제공하는 흐름도(300)가 도시된다. 흐름도(300)는 도 1에 관해 하기와 같이 기재된다. 추가 구조적 및 작동상 실시 형태가 흐름도(300)에 대한 하기 논의를 기초로 당업자(들)에게 자명할 것이다.
흐름도(300)는 단계(302)로부터 시작된다. 단계(302)에서, 애플리케이션에 대한 액세스가능 파일 타입이 등록된다. 예를 들어, 실시 형태에서, 애플리케이션(120)의 애플리케이션 프로세스가 액세스하도록 허용되는 하나 이상의 파일 타입이 컴퓨팅 장치(102)의 데이터 구조물(예를 들어, 레지스트리) 내에 등록된다. 데이터 구조물은 저장부(108) 또는 컴퓨팅 장치(102)와 연계된 다른 저장부에 저장될 수 있다.
단계(304)에서, 애플리케이션의 프로세스에 의한 액세스는 등록된 액세스가능 파일 타입으로 제한된다. 예를 들어, 실시 형태에서, 브로커 서비스(106)는 애플리케이션(120)에 대해 등록된 액세스가능 파일 타입을 포함하는 데이터 구조물을 액세스할 수 있다. 브로커 서비스(106)가 애플리케이션 프로세스(104)와 같이 애플리케이션(120)의 애플리케이션 프로세스로부터 데이터에 대한 요청을 수신할 때, 브로커 서비스(106)는 요청된 데이터가 애플리케이션 프로세스가 액세스하도록 허용되는 파일 타입을 갖는지 여부를 결정하기 위해 데이터 구조물을 액세스할 수 있다. 브로커 서비스(106)는 데이터가 허용가능 파일 타입인 경우 애플리케이션 프로세스가 데이터를 액세스하도록 허용할 수 있거나, 또는 데이터가 허용가능 파일 타입이 아닌 경우 요청에 대한 액세스를 거부할 수 있다. 애플리케이션(120)으로부터 형성되는 임의의 개수의 애플리케이션 프로세스는 심지어 동시에 이 방식으로 제한된 이들의 파일 시스템 데이터 액세스를 가질 수 있다.
브로커 서비스(106)를 포함하는 컴퓨팅 장치(102)는 실시 형태에서 다양한 방식으로 그의 기능을 수행할 수 있다. 컴퓨팅 장치(102), 브로커 서비스(106), 및 흐름도(300)에 대한 다수의 예시적인 실시 형태가 하기 서브섹션에서 기재된다. 예를 들어, 다음의 서브섹션에는 파일 시스템 데이터로의 제어된 액세스를 위해 구성된 애플리케이션을 설치하는 예시적 실시 형태가 기재된다. 다음의 서브섹션에는 제어된 파일 시스템 데이터 액세스를 갖는 애플리케이션을 런칭하고, 뒤이어 런칭된 애플리케이션에 대해 파일 시스템 데이터로의 제한된 액세스를 제공하기 위한 예시적 실시 형태를 기재하는 섹션을 수반하는 예시적 실시 형태가 기재된다.
A. 제어된 파일 시스템 데이터 액세스에 대해 애플리케이션을 설치하기 위한 예시적 실시 형태
예시적 실시 형태에 따라서, 애플리케이션은 파일 시스템 데이터로의 제어된 액세스를 갖도록 컴퓨팅 장치 내에 설치될 수 있다. 실시 형태에서, 설치의 일부로서, 개발자 또는 다른 사용자는 하나 이상의 안전 위치에서 그들의 애플리케이션에 대한 액세스가능 파일 타입을 등록가능하게 한다. 안전 위치(들)는 그 후에 애플리케이션에 의한 파일 시스템 데이터로의 액세스가 가능하도록 브로커 서비스에 의해 액세스될 수 있다. 그러나, 안전 위치(들)는 애플리케이션에 의해 액세스되지 않을 수 있다. 이 방식으로, 애플리케이션에 대한 액세스가능 파일 타입은 애플리케이션이 파일 시스템에 대한 손상을 야기할 수 있도록 템퍼링되지(tampered) 않을 수 있다.
예를 들어, 도 4에는 예시적 실시 형태에 따라서 파일 시스템 데이터로의 제어된 액세스를 위해 애플리케이션을 설치 및 구성하기 위한 프로세스를 제공하는 흐름도(400)가 도시된다. 흐름도(400)는 도 3에서 흐름도(300)의 단계(302)의 예시 구현을 제공한다. 흐름도(400)는 실시 형태에서 도 1의 컴퓨팅 장치(102)에 의해 수행될 수 있다. 흐름도(400)는 도 5에 따라 다음과 같이 기재된다. 도 5에는 애플리케이션이 예시적 실시 형태에 따라 파일 시스템 데이터로의 제어된 액세스를 위해 설치 및 구성되는 컴퓨팅 장치(102)의 블록 다이어그램이 도시된다. 도 5에 도시된 바와 같이, 컴퓨팅 장치(102)를 프로세싱 로직(processing logic, 502) 및 저장부(108)를 포함한다. 프로세싱 로직(502)은 애플리케이션 인스톨러(506), 파일 시스템 등록 모듈(508), 및 식별자 생성기(identifier generator, 520)를 포함한다. 추가 구조적 및 작동상 실시 형태가 도 5의 컴퓨팅 장치(102) 및 흐름도(400)에 관한 하기 논의를 기초로 당업자(들)에게 자명할 것이다.
흐름도(400)는 단계(402)로부터 시작된다. 단계(402)에서, 애플리케이션이 컴퓨팅 장치에 설치된다. 예를 들어, 도 1에 도시된 바와 같이 애플리케이션 정보(512)가 컴퓨팅 장치(102)에서 수신될 수 있다. 애플리케이션 정보(512)는 예컨대, 도 1의 애플리케이션(120)과 같이 애플리케이션을 형성하는 모든 파일 및/또는 데이터를 포함한다. 애플리케이션 정보(512)는 컴퓨팅 장치(102)와 연계된 (예를 들어, 디스크 드라이브 내에 삽입된, 커넥터 내에 플러깅된, 등) 컴퓨터-판독가능 저장 매체(예를 들어, CDROM(compact disc read only memory) 장치, 플로피 디스크, 메모리 스틱(예를 들어, USB(universal serial bus) 저장 장치), 등), 예컨대, LAN(근거리 네트워크), WAN(광대역 네트워크), 또는 인터넷과 같은 네트워크들의 조합(예를 들어, "클라우드"-기반 서비스)과 같은 네트워크에 걸친 원격 서비스, 및/또는 다른 소스를 포함하는 다양한 소스로부터 수신될 수 있다.
도 5에 도시된 바와 같이, 애플리케이션 인스톨러(506)는 애플리케이션 정보(512)를 수신한다. 애플리케이션 인스톨러(506)는 애플리케이션을 설치하기 위해 컴퓨팅 장치(102)의 저장부(108) 내에 애플리케이션 정보(512)를 설치하도록 구성된다. 애플리케이션 인스톨러(506)는 본 명세서에 기재된 바와 같이 애플리케이션을 설치하도록 구성되고 당업자(들)에게 공지된 애플리케이션 설치 프로그램을 포함하는 독점적 또는 상용입수가능한 애플리케이션 설치 프로그램일 수 있다.
도 5에 도시된 바와 같이, 애플리케이션 인스톨러(506)는 저장부(108) 내의 애플리케이션 패키지(510)로서 애플리케이션을 설치하기 위하여 애플리케이션 정보(512)를 처리한다. 애플리케이션 패키지(510)는 애플리케이션 프로그램 코드(514)를 포함한다. 애플리케이션 프로그램 코드(514)는 설치된 애플리케이션의 기능을 형성하는 실행가능 코드(하나 이상의 프로세서에 의해)이다. 애플리케이션 프로그램 코드(514)는 하나 이상의 파일의 형태 및/또는 다른 형태를 가질 수 있다. 애플리케이션 인스톨러(506)는 컴퓨팅 장치(102) 내에 애플리케이션 프로그램 코드(514)를 설치하도록 구성된다.
재차 도 4를 참조하면, 단계(404)에서 애플리케이션과 연계된 애플리케이션 매니페스트가 수신되고, 애플리케이션 매니페스트는 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시한다. 예를 들어, 도 5에 도시된 바와 같이, 애플리케이션 패키지(510)는 애플리케이션 매니페스트(516)를 포함한다. 애플리케이션 매니페스트(516)는 객체(예를 들어, 하나 이상의 파일)이다. 애플리케이션 인스톨러(506)는 컴퓨팅 장치(102)의 저장부(108) 내에 애플리케이션 매니페스트(516)를 저장하도록 구성된다.
애플리케이션 매니페스트(516)는 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입의 표시를 포함한다. 게다가, 애플리케이션 매니페스트(516)는 애플리케이션과 연계된 추가 정보를 선택적으로 포함할 수 있다. 예를 들어, 도 6에는 예시적 실시 형태에 따른 애플리케이션 매니페스트(516)의 블록 다이어그램이 도시된다. 도 6에 도시된 바와 같이, 애플리케이션 매니페스트(516)는 액세스가능 파일 타입 정보(602), 식별 정보(604), 및 능력 정보(606)를 포함한다. 다른 실시 형태에서, 애플리케이션 매니페스트(516)는 도 6에 도시된 것 이외에 추가 및/또는 대안의 정보를 포함할 수 있다.
액세스가능 파일 타입 정보(602)는 연계된 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입의 표시를 포함한다. "파일 타입"은 예컨대, 파일 확장자, 파일 종류 및/또는 다른 파일 속성 또는 메타데이터에 의해 파일의 클래스들을 형성하고 이들 간을 구별한다. 이와 같이, 파일 타입 정보(602)는 애플리케이션에 의해 액세스가능한 데이터(예를 들어, 파일, 폴더, 등)를 형성하기 위해 사용될 수 있는 하나 이상의 파일 타입(파일 확장자, 파일 종류, 및/또는 다른 파일 속성 또는 메타데이터에 의해)을 표시할 수 있다. 파일 타입은 다양한 방식으로 액세스가능 파일 타입 정보(602)로 표시될 수 있다. 예를 들어, 파일 타입은 파일 타입 패밀리 및/또는 파일 타입 클래스와 같이 파일 타입의 그룹으로 및/또는 개별 파일 타입으로서 액세스가능 파일 타입 정보(602)로 표시될 수 있다. 파일 타입은 전형적으로 파일 이름에서 마지막 점(last period) 이후의 몇몇 영숫자 문자인 파일 확장자에 의해 액세스가능 파일 타입 정보(602)로 표시될 수 있다. 예를 들어, 개별 파일 타입에 관하여, 텍스트 파일에 대한 파일 타입 확장자는 ".txt"일 수 있고, MPEG(moving pictures experts group) 비디오 파일에 대한 파일 타입 확장자는 ".mpg"일 수 있고, 파형 오디오 파일 포맷 오디오 파일에 대한 파일 타입 확장자는 ".wav", 등일 수 있다. 파일 타입 패밀리는 통상 제품에 대한 파일 타입(예를 들어, 제품의 상이한 버전과 연계된 상이한 파일 타입)의 그룹과 같이 패밀리로 관련되는 다수의 파일 타입(예를 들어, 해당 파일 확장자에 의해)을 포함한다. 예를 들어, 마이크로소프트® 워드(워드 프로세싱 애플리케이션) 파일 타입 패밀리는 파일 타입 확장자 ".doc" 및 ".docx"를 포함할 수 있고, 이는 이전의 마이크로소프트® 워드 2007 버전과 마이크로소프트® 워드 2007 및 후속 버전에 각각 관련된다. 파일 타입 클래스는 예컨대, 오디오 클래스, 비디오 클래스, 워드 프로세싱 클래스, 데이터베이스 클래스, 등과 같은 제품 클래스에 의해 관련되는 다수의 파일 타입을 포함한다. 예를 들어, 음악 또는 오디오 클래스 파일 타입은 예컨대, ".wav", ".mp3", ".aiff ', 등과 같은 음악 및/또는 음성과 연계된 다수의 파일 확장자를 포함할 수 있다.
식별 정보(604)는 애플리케이션에 대한 식별 정보를 포함한다. 예를 들어, 식별 정보(604)는 애플리케이션 및/또는 애플리케이션 패키지의 하나 이상의 이름, 애플리케이션의 퍼블리셔, 애플리케이션의 아키텍처, 리소스 타입(예를 들어, en-us, 등과 같은 언어 타입), 애플리케이션의 버전 및/또는 다른 식별 정보를 포함할 수 있다.
능력 정보(606)는 애플리케이션 프로그램 코드(514)의 실행을 통하여 형성된 애플리케이션 프로세스가 액세스하도록 허용되고 및/또는 허용되지 않는 컴퓨팅 장치(102)의 능력을 표시한다. 이와 같이 표시된 능력의 예시에는 컴퓨팅 장치(102)의 저장 장치가 액세스가능한지를 표시하는 것(예를 들어, 내부 및/또는 외부 저장 장치), 크레덴셜(credential)이 액세스가능한지를 표시하는 것, 소프트웨어 및/또는 하드웨어 인증이 액세스가능한지를 표시하는 것, 입력/출력 장치(예를 들어, 마이크로폰, 웹캠 등)가 액세스가능한지를 표시하는 것, 컴퓨팅 장치(102)로부터의 원격의 엔티티와의 통신이 수행될 수 있는지를 표시하는 것, 등이 포함된다. 능력 정보(606)는 선택적으로 존재하며, 애플리케이션이 데이터를 액세스할 수 있는 예시적 방법이다. 예를 들어, 표시된 능력은 브로커 서비스(106)가 액세스할 수 있는 특정 위치(예를 들어, 픽쳐 라이브러리)에 대한 모든 파일 타입을 나타낼 수 있다.
재차 도 4를 참조하면, 단계(406)에서 애플리케이션 매니페스트에 의해 표시된 하나 이상의 파일 타입이 브로커 서비스에 의해 액세스가능한 위치에 등록된다. 예를 들어, 실시 형태에서, 도 5에 도시된 바와 같이, 파일 타입 등록 모듈(508)은 애플리케이션이 액세스하도록 허용되는(예를 들어, 액세스가능 파일 타입 정보(602)에 표시된 바와 같이) 하나 이상의 파일 타입을 결정하기 위하여 애플리케이션 매니페스트(516)를 판독할 수 있다. 파일 타입 등록 모듈(508)은 파일 타입(들)(518)과 같이 안전 저장 위치(504)에 하나 이상의 파일 타입의 표시를 저장함으로써 하나 이상의 파일 타입을 등록하도록 구성된다. 도 5에 도시된 바와 같이, 안전 저장 위치(504)는 저장부(108)의 저장 위치(예를 들어, 저장부의 영역)일 수 있거나, 또는 대안으로 개별 저장부 내에 있을 수 있다. 안전 저장 위치(504)는 안전한(예를 들어, 특권이 있는) 것으로 여겨지며, 이는 애플리케이션의 애플리케이션 프로세스가 이 내에 저장된 데이터를 액세스할 수 없기 때문이다. 이와 같이, 악성 애플리케이션은 파일 타입(들)(518)으로 형성된 것들 이외의 파일 타입을 액세스할 수 있도록 파일 타입(들)(518)을 변조하지 않을 수 있고, 이에 따라 악성 애플리케이션이 파일 시스템 데이터에 대한 손상을 야기하는 가능성이 줄어든다.
게다가, 도 6에 도시된 바와 같이 식별자 생성기(520)는 애플리케이션 매니페스트(516)로부터 정보를 수신하고, 보안 식별자(security identifier, 522)를 생성할 수 있다. 보안 식별자(522)는 컴퓨팅 장치(102) 내에서, 애플리케이션에 대해 실행되는 애플리케이션 프로세스를 포함한, 애플리케이션 패키지(510)와 연계된 애플리케이션을 식별하기 위하여 사용될 수 있는 고유 식별자이다. 보안 식별자(522)는 제2 사용자의 액세스 파일로부터 제1 사용자 계정을 갖는 제1 사용자에 의해 액세스를 제한하는, 사용자 계정에 대한 사용자 식별자와 유사하다. 보안 식별자(522)는 애플리케이션 패키지와 일련의 파일 타입 및/또는 능력을 연계하고, 애플리케이션이 디폴트에 의해 파일 시스템의 데이터로의 액세스를 갖지 않도록 보장하기 위하여 사용될 수 있다. 예를 들어, 보안 식별자(522)는 ACL(access control list)를 포함하는 컴퓨팅 장치(102) 내에서 보안 동작에 관하여 애플리케이션 프로세스를 식별하기 위해 사용될 수 있다. 보안 식별자(522)를 포함하는 컴퓨팅 장치(102)의 ACL은 연계된 애플리케이션이 액세스할 수 있는 컴퓨팅 장치(102)의 리소스를 식별할 수 있다. 보안 식별자(522)가 ACL 내에 포함되지 않는 경우, 애플리케이션은 보안이 ACL에 의해 처리되는 임의의 리소스로의 액세스를 갖지 않는다.
보안 식별자(SID)(522)는 상용입수가능한 기술 및/또는 독점 기술을 비롯한 임의의 방식으로 애플리케이션에 대해 생성될 수 있다. 예를 들어, 보안 식별자(522)는 애플리케이션 패키지(510)의 패키지 식별자(패키지 식별자 SID)를 기초로 생성될 수 있다. 패키지 식별자를 기초로 보안 식별자(522)의 생성은 애플리케이션 패키지(510)의 패키지 식별자의 모든 요소를 기초로 또는 단지 요소의 서브세트(예를 들어, 패키지의 패밀리 식별자 - 패키지 식별자로부터의 이름 및 퍼블리셔)를 기초로 보안 식별자를 생성하는 것을 포함할 수 있다. 또 다른 실시 형태에서, 보안 식별자(522)는 식별 정보(604)로부터 정보의 해시(hash)로서 생성될 수 있다. 예를 들어, 보안 식별자(522)는 애플리케이션 및/또는 애플리케이션 패키지(510)의 이름, 애플리케이션의 퍼블리셔, 애플리케이션의 아키텍처, 애플리케이션의 버전, 등 중 하나 이상의 해시로서 생성될 수 있다.
B. 제어된 파일 시스템 데이터 액세스를 갖는 애플리케이션을 런칭하기 위한 예시적 실시 형태
예시적 실시 형태에 따라서, 애플리케이션 프로세스는 컴퓨팅 장치(102)에 등록되고 형성된 허용가능 파일 타입을 갖는 애플리케이션에 대해 런칭될 수 있다. 실시 형태에서, 애플리케이션 프로세스는 파일 시스템 데이터로의 애플리케이션 프로세스에 의한 액세스를 차단하는 애플리케이션 컨테이너 내에 포함될 수 있다.
예를 들어, 도 7에는 예시적 실시 형태에 따라 파일 시스템 데이터로의 제어된 액세스를 갖는 애플리케이션을 런칭하기 위한 프로세스를 제공하는 흐름도(700)가 도시된다. 흐름도(700)는 실시 형태에서 도 1의 컴퓨팅 장치(102)에 의해 수행될 수 있다. 흐름도(700)는 도 8에 따라 다음과 같이 기재된다. 도 8에는 설치된 애플리케이션이 런칭되고 생성된 애플리케이션 프로세스가 예시적 실시 형태에 따라 파일 시스템 데이터로의 제어된 액세스를 갖는, 컴퓨팅 장치(102)의 블록 다이어그램이 도시된다. 도 8에 도시된 바와 같이, 컴퓨팅 장치(102)는 프로세싱 로직(502), 저장부(108), 및 메모리(810)를 포함한다. 프로세싱 로직(502)은 애플리케이션 런처(application launcher, 802)를 포함하고, 애플리케이션 런처(802)는 토큰 생성기(token generator, 804)를 포함한다. 추가 구조적 및 작동상 실시 형태가 도 8의 컴퓨팅 장치(102) 및 흐름도(700)에 관한 하기 논의를 기초로 당업자(들)에게 자명할 것이다.
흐름도(700)는 단계(702)로부터 시작된다. 단계(702)에서, 애플리케이션은 애플리케이션 프로세스로서 런칭된다. 예를 들어, 도 8에 도시된 바와 같이 애플리케이션 런처(802)는 애플리케이션 프로세스(104)를 형성하기 위하여 도 1의 애플리케이션(120)과 같이 애플리케이션을 런칭하도록 구성될 수 있다. 애플리케이션 런처(802)는 당업자(들)에게 공지된 통상적인 기술에 따라 또는 독점 기술을 비롯한 다양한 방식으로 애플리케이션 프로세스(104)를 형성하기 위하여 애플리케이션(120)을 런칭하도록 구성될 수 있다. 도 8에 도시된 바와 같이, 애플리케이션 프로세스(104)는 메모리(810)에 로딩될 수 있다. 이 방식으로, 애플리케이션 프로세스(104)의 프로그램 코드는 애플리케이션 프로세스(104)를 실행하는 컴퓨팅 장치(102)의 하나 이상의 프로세스에 의해 용이하게 액세스될 수 있다.
단계(704)에서, 애플리케이션 프로세스는 애플리케이션 컨테이너 내에 포함된다. 예를 들어, 도 8에 도시된 바와 같이, 애플리케이션 프로세스(104)는 애플리케이션 컨테이너(806)에 포함된다. 애플리케이션 컨테이너(806)는 파일 시스템 데이터로의 애플리케이션 프로세스(104)에 의한 직접 액세스를 차단하는 애플리케이션 프로세스(104)에 대한 가상 컨테이너이다. 애플리케이션에 대한 애플리케이션 컨테이너(806)는 사용자 계정이 다른 사용자의 정보로의 사용자에 의한 액세스를 제한하기 위해 사용되는 사용자에 대한 사용자 계정과 유사하다. 유사한 방식으로, 애플리케이션 컨테이너(806)는 다른 정보로의 애플리케이션에 의한 액세스를 제한한다. 애플리케이션 프로세스(104)는 예컨대, 디폴트를 통하여 파일 시스템의 민감형 부분으로의 애플리케이션 프로세스(104)에 의한 액세스를 제한하는 애플리케이션 프로세스(104)에 대한 토큰에 적용된 애플리케이션 컨테이너(806)와 연계된 보안 식별자를 가짐으로써 다양한 방식으로 애플리케이션 컨테이너(806) 내에 "포함"될 수 있다. 이러한 민감형 파일 시스템 부분은 예컨대, 애플리케이션 패키지(510)의 리소스, 작업 디렉토리, 및 설정 디렉토리와 같이 애플리케이션 프로세스(104) 자체에 대한 필수 파일/폴더를 포함하지 않는다. ACL은 애플리케이션 프로세스(104)가 이들 필수 아이템을 액세스할 수 있도록 적절히 설정될 수 있다.
예를 들어, 실시 형태에서, 애플리케이션(120)에 대해 생성된 보안 식별자(522)(예를 들어, 전술된 바와 같이)는 애플리케이션 컨테이너(806)에 대한 액세스 제한을 형성하기 위하여 사용될 수 있고 애플리케이션 컨테이너(806)와 연계될 수 있다. 보안 식별자(522)에 대해 형성된 액세스가능 리소스(예를 들어, 하나 이상의 ACL 내에서)는 애플리케이션 컨테이너(806), 이에 따라 애플리케이션 컨테이너(806) 내의 애플리케이션 프로세스(104)에 적용될 수 있다. 예를 들어, 실시 형태에서, 보안 식별자(522)는 파일 시스템 데이터와 연계된 임의의 ACL 내에 포함되지 않을 수 있다. 이와 같이, 애플리케이션 컨테이너(806), 이에 따라 애플리케이션 프로세스(104)는 파일 시스템 데이터로의 직접 액세스를 갖는 것이 불가능할 수 있다. 이 방식으로, 애플리케이션 컨테이너(806)는 파일 시스템 데이터로부터 애플리케이션 프로세스(104)를 격리시킨다. 대신에, 애플리케이션 프로세스(104)는 본 명세서에 기재된 실시 형태에 따라서 브로커 서비스(106)를 통하여 파일 시스템 데이터의 액세스로 제한된다. 추가로 상세하게 본 명세서에서 어디든 다른 곳에 기재된 바와 같이, 브로커 서비스(106)는 애플리케이션 프로세스(104)가 액세스할 수 있는 파일 시스템 데이터의 타입을 제어한다.
도 8에 도시된 바와 같이, 토큰 생성기(804)는 애플리케이션 컨테이너(806)와 연계된 보안 식별자(522)를 수신할 수 있고, 애플리케이션 프로세스(104)에 대한 프로세스 토큰(812)을 생성할 수 있다. 프로세스 토큰(812)은 컴퓨팅 장치(102) 내에서 애플리케이션 프로세스(104)를 고유하게 식별하기 위하여 사용될 수 있다. 예를 들어, 프로세스 토큰(812)은 애플리케이션 프로세스의 다른 타입뿐만 아니라 동일한 애플리케이션(120)에 대해 생성된 애플리케이션 프로세스(104)의 추가 인스턴스로부터 애플리케이션 프로세스(104)를 구별할 수 있다.
토큰 생성기(804)는 애플리케이션 매니페스트(516)와 연계된 추가 정보를 포함할 수 있고, 프로세스 토큰(812)을 생성하여 애플리케이션 컨테이너(806)를 식별하는 보안 식별자(522)를 포함하도록 구성될 수 있다. 예를 들어, 프로세스 토큰(812)은 능력 정보(606), 등을 기초로 생성된 하나 이상의 보안 식별자를 포함하는, 애플리케이션(120)에 대한 애플리케이션 매니페스트(516)의 정보로부터 생성되는 추가 보안 식별자를 선택적으로 포함할 수 있다.
실시 형태에서, 프로세스 토큰(812)이 애플리케이션 프로세스(104)에 의해 변조되지 않을 수 있는 것을 주지하라. 예를 들어, 프로세스 토큰(812)은 메모리(810) 내의 안전 위치, 안전 저장 위치(504), 또는 다른 안전 저장 위치에 저장될 수 있다. 이 방식으로, 애플리케이션 프로세스(104)는 이와는 달리 액세스불가 파일 시스템 데이터를 액세스하도록 허용되는 프로세스 토큰(812)의 보안 식별자를 변조할 수 없으며, 이에 따라 파일 시스템에 대해 손상이 야기되는 것이 차단된다. 메모리(810)는 임의의 개수의 메모리 장치, 예컨대 RAM(random access memory) 장치를 포함할 수 있고, 저장부(108) 내에 또는 이와 떨어져서 포함될 수 있다.
C. 런칭된 애플리케이션에 대해 파일 시스템 데이터로의 대한 액세스를 제공하기 위한 예시적 실시 형태
예시적 실시 형태에 따라서, 애플리케이션 프로세스는 파일 시스템 데이터로의 액세스가 제공될 수 있다. 실시 형태에서, 애플리케이션 프로세스는 이의 연계된 보안 식별자로 인해 제한된 파일 시스템 액세스를 가지며, 애플리케이션 컨테이너 내에 포함되기 때문에 파일 시스템 데이터를 직접 액세스할 수 없다. 대신에, 애플리케이션 프로세스는 중간 - 브로커 서비스를 통하여 파일 시스템 데이터를 액세스함으로써 파일 시스템 데이터를 간접적으로 액세스하도록 허용될 수 있다.
예를 들어, 도 9에는 예시적 실시 형태에 따라서 애플리케이션 프로세스에 대해 파일 시스템 데이터로의 제어된 액세스를 제공하기 위한 프로세스를 제공하는 흐름도(900)가 도시된다. 흐름도(900)는 실시 형태에서 도 1의 컴퓨팅 장치(102)에 의해 수행될 수 있다. 흐름도(900)는 도 10에 따라 다음과 같이 기재된다. 도 10에는 설치된 애플리케이션이 미리 런칭되고 생성된 애플리케이션 프로세스가 예시적 실시 형태에 따라서 파일 시스템 데이터로의 제어된 액세스가 제공되는 컴퓨팅 장치(102)의 블록 다이어그램이 도시된다. 도 10에 도시된 바와 같이, 컴퓨팅 장치(102)는 프로세싱 로직(502) 및 저장부(108)를 포함한다. 프로세싱 로직(502)은 브로커 서비스(106)를 포함하고, 브로커 서비스(106)는 상태 매칭 로직(1002)을 포함한다. 추가 구조적 및 작동상 실시 형태가 도 10의 컴퓨팅 장치(102) 및 흐름도(900)에 관한 하기 논의를 기초로 당업자(들)에게 자명할 것이다.
흐름도(900)가 단계(902)로부터 시작된다. 단계(902)에서, 액세스 요청이 파일 시스템 데이터의 제1 데이터에 대해 애플리케이션 프로세스로부터 브로커 서비스에서 수신된다. 예를 들어, 도 10에 도시된 바와 같이, 애플리케이션 프로세스(104)는 액세스되는 것이 요구되는 파일 시스템 데이터(118)의 데이터를 표시하는 데이터 액세스(114)를 생성한다. 실시 형태에서, 데이터 액세스(114)는 판독되거나, 기록되거나, 또는 변조될 데이터를 표시할 수 있다. 예를 들어, 본 예시에서, 데이터 액세스(114)는 파일(112a)이 판독될 것을 표시할 수 있다. 데이터 액세스(114)는 또한 애플리케이션 프로세스(104)에 의해 생성되는 바와 같이 데이터 액세스(114)를 식별하도록 프로세스 토큰(812)을 포함할 수 있다. 도 10에 도시된 바와 같이, 데이터 액세스(114)는 브로커 서비스(106)에 의해 수신된다.
단계(904)에서, 제1 데이터로의 애플리케이션 프로세스에 의한 액세스는 브로커 서비스가 제1 데이터의 파일 타입이 등록된 하나 이상의 파일 타입에 포함되는 것을 결정할 때 허용될 수 있다. 브로커 서비스(106)는 파일(112a)이 애플리케이션 프로세스(104)기 액세스하도록 허용되는 파일 타입으로 형성되는지를 결정하도록 구성된다. 예를 들어, 브로커 서비스(106)는 파일(112a)이 애플리케이션 프로세스(104)가 액세스하도록 허용되는 파일 타입을 갖는 경우에 애플리케이션 프로세스(104)가 파일(112a)을 액세스하도록 허용할 수 있다. 게다가, 브로커 서비스(106)는 파일(112a)이 애플리케이션 프로세스(104)가 액세스하도록 허용되지 않는 파일 타입을 갖는 경우 파일(112a)로의 애플리케이션 프로세스(104)에 의한 액세스를 거부할 수 있다.
실시 형태에서, 브로커 서비스(106)는 도 11에 따라 흐름도(900)를 수행할 수 있다. 도 11에는 애플리케이션 프로세스에 의해 파일 시스템 데이터로의 액세스를 제어하도록 브로커 서비스를 사용하기 위해 프로세스를 제공하는 흐름도(1100)가 도시된다. 추가 구조적 및 작동상 실시 형태가 흐름도(1100)에 관한 하기 논의를 기초로 당업자(들)에게 자명할 것이다.
흐름도(1100)는 단계(1102)로부터 시작된다. 단계(1102)에서, 액세스 요청에서 요청된 제1 데이터의 표시 및 토큰이 수신된다. 예를 들어, 전술된 바와 같이, 브로커 서비스(106)는 애플리케이션 프로세스(104)를 식별하기 위한 프로세스 토큰(812)을 포함하고, 액세스되도록 요구되는 파일 시스템 데이터(118)의 데이터를 표시하는 데이터 액세스(114)를 수신할 수 있다. 동작은 단계(1102)로부터 단계(1104)로 진행된다.
단계(1104)에서, 제1 데이터의 파일 타입이 결정된다. 예를 들어, 데이터 액세스(114)에서 표시된 데이터 요청을 기초로, 브로커 서비스(106)는 요청된 데이터의 파일 타입을 결정할 수 있다. 브로커 서비스(106)는 데이터 액세스(114)에 포함된 요청된 데이터의 파일 확장자(예를 들어, .txt, .wav, .mpeg, 등과 같은 확장자)에 의해, 요청된 데이터의 파일 확장자를 결정하기 위해 저장부(108)에서 요청된 데이터의 액세스에 의해, 및/또는 다른 기술에 의해 요청된 데이터의 파일 타입을 결정할 수 있다. 동작은 단계(1104)로부터 단계(1106)로 진행된다.
단계(1106)에서, 애플리케이션에 대해 등록된 파일 타입(들)이 안전 위치에서 액세스된다. 예를 들어, 실시 형태에서, 브로커 서비스(106)는 데이터 액세스(114) 내에 포함된 애플리케이션 프로세스(104)의 보안 식별자(522)를 결정할 수 있다. 브로커 서비스(106)는 결정된 보안 식별자(522)와의 이들의 연계에 의해 안전 저장 위치(504)에 저장된 애플리케이션 프로세스(104)에 대한 파일 타입(들)(518)을 식별할 수 있다. 브로커 서비스(106)는 안전 저장 위치(504)로부터 식별된 파일 타입(들)(518)을 검색할 수 있다. 동작은 단계(1106)로부터 단계(1108)로 진행된다.
단계(1108)에서, 제1 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되는지가 결정된다. 예를 들어, 실시 형태에서, 브로커 서비스(106)의 상태 매칭 로직(1002)은 요청된 데이터의 결정된 파일 타입(단계(1104)에서 결정됨)이 파일 타입(들)(518)에 관한 상태(단계(1006)에서 액세스됨)를 매칭하는지를 결정하도록 구성된다. 예를 들어, 상태 매칭 로직(1002)은 요청된 데이터의 결정된 파일 타입이 파일 타입(들)(518)에 포함된 파일 타입과 동일한지를 결정할 수 있다. 요청된 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되지 않는 경우, 동작은 단계(1108)로부터 단계(1110)로 진행된다. 요청된 데이터의 파일 타입이 등록된 파일 타입(들)에 포함되는 경우, 동작은 단계(1108)로부터 단계(1112)로 진행된다.
단계(1110)에서, 제1 데이터로의 애플리케이션 프로세스에 의한 액세스가 거부되다. 요청된 데이터의 파일 타입이 파일 타입(들)(518)들 중 하나의 파일 타입과 동일하지 않는 것으로 결정될 때, 요청된 데이터로의 애플리케이션 프로세스(104)에 의한 액세스가 브로커 서비스(106)에 의해 거부될 수 있다. 예를 들어, 애플리케이션 프로세스(104)가 특정 데이터(예를 들어, 특정 파일, 등)를 요청하는 경우, 애플리케이션 프로세스(104)는 특정 데이터로의 액세스를 차단할 수 있고, 데이터 액세스(114)의 거부는 애플리케이션 프로세스(104)에 대해 브로커 서비스(106)에 의해 표시될 수 있다. 또 다른 예시에서, 애플리케이션 프로세스(104)가 특정 폴더의 컨텐츠의 표시를 요청하는 경우, 액세스불가 파일 타입을 갖는 폴더의 파일은 브로커 서비스(106)에 의해 애플리케이션 프로세스(104)에 대해 보이도록 구성되지 않을 수 있다. 흐름도(1100)의 동작은 단계(1110)가 수행된 후에 완료된다.
단계(1112)에서, 애플리케이션은 제1 데이터를 액세스하도록 허용될 수 있다. 요청된 데이터의 파일 타입이 파일 타입(들)(518)들 중 하나의 파일 타입과 동일한 것으로 결정될 때, 요청된 데이터로의 애플리케이션 프로세스(104)에 의한 액세스는 브로커 서비스(106)에 의해 획득될 수 있고, 요청된 데이터는 응답 데이터(116) 내에서 브로커 서비스(106)에 의해 애플리케이션 프로세스(104)에 제공될 수 있다. 실시 형태에서, 애플리케이션 프로세스(104)는 저장부(108)로부터 직접 응답 데이터(116)를 수신하도록 허용되는 것보다 브로커 서비스(106)에 의해 응답 데이터(116)가 제공될 수 있는 것으로 주지된다. 이 방식으로, 애플리케이션 프로세스(104)의 보안/특권 레벨은 애플리케이션 프로세스(104)가 응답 데이터(116)를 수신하기 위하여 높아질 필요는 없다. 흐름도(1100)의 동작은 단계(1112)가 수행된 후에 완료된다.
예를 들어, 도식적 목적으로 제공되는 일 예시에서, 애플리케이션 프로세스(104)는 c:/home/user/userfile.doc의 파일이름/경로를 갖는 파일을 요청하기 위해 데이터 액세스(114)를 전송할 수 있다. 브로커 서비스(106)는 애플리케이션 컨테이너(806)/애플리케이션 프로세스(104)에 대한 보안 식별자(522) 및 파일이름/경로를 포함하는 데이터 액세스(114)를 수신할 수 있다. 브로커 서비스(106)는 이 파일이름/경로의 파일 타입이 ".doc"이도록 결정할 수 있다. 브로커 서비스(106)는 애플리케이션 컨테이너(806)/애플리케이션 프로세스(104)에 대한 보안 식별자(522)와 연계된 파일 타입(들)(518)을 액세스할 수 있다. 이 예시에서, 파일 타입(들)(518)은 ".doc", ".docx", ".txt", 및 ".wpd"의 파일 확장자를 포함할 수 있다. 상태 매칭 로직(1002)은 요청된 데이터에 대한 ".doc"의 파일 타입이 파일 타입(들)(518)의 파일 확장자와 동일하도록 결정할 수 있다. 이와 같이, 브로커 서비스(106)는 응답 데이터(116) 내의 애플리케이션 프로세스(104)로 c:/home/user/userfile.doc의 파일이름/경로를 갖는 파일을 제공할 수 있다.
따라서, 다양한 특징과 이점이 실시 형태에 의해 제공된다. 예를 들어, 브로커 서비스(106)는 애플리케이션 컨테이너 내에 포함되는 애플리케이션 프로세스에 대해 파일 시스템 앱스트랙션(file system abstraction)을 제공한다. 브로커 서비스(106)는 애플리케이션 프로세스에 의해 데이터 액세스를 제한하기 위하여 정적으로 공인된 파일 타입을 사용한다. 공인된 파일 타입이 설치 시에 이는 브로커 서비스(106)로 등록된다. 격리된 애플리케이션 프로세스(애플리케이션 컨테이너 내에서)는 애플리케이션 프로세스가 파일 시스템의 개별 부분(예를 들어, 문서, 라이브러리, 탈착가능 저장부, 등)에 대한 액세스를 갖는 브로커 서비스(106)와 통신하기 위하여 보안 식별자를 이용한다. 이 방식으로, 애플리케이션에 대해 파일 시스템 데이터로의 필터링된 액세스가 제공된다. 브로커 서비스(106)의 인스턴스는 컴퓨팅 장치(102)에서 각각의 사용자에 대해 제공될 수 있거나(다수의 브로커 서비스(106)가 존재할 수 있도록), 또는 단일 브로커 서비스(106)가 모든 사용자를 처리할 수 있는 것으로 주지된다. 브로커 서비스(106)는 다수의 애플리케이션을 동시에 처리하거나 또는 단일의 애플리케이션을 처리하도록 구성될 수 있다.
III 예시적 컴퓨팅 장치 실시 형태
브로커 서비스(106), 프로세싱 로직(502), 애플리케이션 인스톨러(506), 파일 타입 등록 모듈(508), 식별자 생성기(520), 애플리케이션 런처(802), 토큰 생성기(804), 조건 매칭 로직(1002), 흐름도(300), 흐름도(400), 흐름도(700), 흐름도(900), 및 흐름도(1100)는 하드웨어, 소프트웨어, 펌웨어, 또는 이의 임의의 조합으로 구현될 수 있다. 예를 들어, 브로커 서비스(106), 프로세싱 로직(502), 애플리케이션 인스톨러(506), 파일 타입 등록 모듈(508), 식별자 생성기(520), 애플리케이션 런처(802), 토큰 생성기(804), 조건 매칭 로직(1002), 흐름도(300), 흐름도(400), 흐름도(700), 흐름도(900), 및/또는 흐름도(1100)는 하나 이상의 프로세서 내에서 실행되도록 구성되는 컴퓨터 프로그램 코드로서 구현될 수 있다. 대안으로, 브로커 서비스(106), 프로세싱 로직(502), 애플리케이션 인스톨러(506), 파일 타입 등록 모듈(508), 식별자 생성기(520), 애플리케이션 런처(802), 토큰 생성기(804), 조건 매칭 로직(1002), 흐름도(300), 흐름도(400), 흐름도(700), 흐름도(900), 및/또는 흐름도(1100)는 하드웨어 로직/전기 회로로서 구현될 수 있다. 예를 들어, 실시 형태에서, 하나 이상의 브로커 서비스(106), 프로세싱 로직(502), 애플리케이션 인스톨러(506), 파일 타입 등록 모듈(508), 식별자 생성기(520), 애플리케이션 런처(802), 토큰 생성기(804), 조건 매칭 로직(1002), 흐름도(300), 흐름도(400), 흐름도(700), 흐름도(900), 및/또는 흐름도(1100)는 SoC(system-on-chip)에서 구현될 수 있다. SoC는 하나 이상의 프로세서(예를 들어, 마이크로컨트롤러, 마이크로프로세서, DSP(digital signal processor), 등), 메모리, 하나 이상의 통신 인터페이스, 및/또는 추가 회로 및/또는 이의 기능을 수행하기 위한 임베디드 펌웨어를 포함하는 집적 회로 칩을 포함할 수 있다.
도 12는 본 발명의 실시 형태가 구현될 수 있는 컴퓨터(1200)의 예시적인 구현을 도시한다. 예를 들어, 컴퓨팅 장치(102)는 컴퓨터(1200)의 하나 이상의 특징부 및/또는 대안의 특징부를 포함하는 컴퓨터(1200)와 유사한 컴퓨터 시스템 내에서 구현될 수 있다. 컴퓨터(1200)는 예를 들어, 통상적인 퍼스널 컴퓨터, 모바일 컴퓨터, 서버, 또는 워크스테이션(workstation)의 형태를 갖는 범용 컴퓨팅 장치일 수 있거나, 또는 컴퓨터(1200)는 전용 컴퓨팅 장치일 수 있다. 본 명세서에 제공된 컴퓨터(1200)에 관한 설명은 설명을 목적으로 제공된 것이고, 제한하려는 의도가 아니다. 본 발명의 실시 형태는 당업자(들)에게 공지된 바와 같이 추가 타입의 컴퓨터 시스템에서 구현될 수 있다.
도 12에 도시된 바와 같이, 컴퓨터(1200)는 하나 이상의 프로세서(1202), 시스템 메모리(1204) 및 시스템 메모리(1204)를 포함하는 다양한 시스템 구성요소를 프로세서(1202)에 결합하는 버스(bus, 1206)를 포함한다. 버스(1206)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트(accelerated graphics port) 및 프로세서 또는 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하는 몇몇 타입의 버스 구조 중 임의의 하나 이상의 것을 표시한다. 시스템 메모리(1204)는 ROM(read only memory)(1208) 및 RAM(random access memory)(1210)을 포함한다. 기본 입/출력 시스템(1212)(BIOS)은 ROM(1208) 내에 저장된다.
컴퓨터(1200)는 또한 하드 디스크로부터 판독 및 이에 기록하는 하드 디스크 드라이브(1214), 탈착가능 자기 디스크(1218)로부터 판독 또는 이에 기록하는 자기 디스크 드라이브(1216) 및 예컨대, CD ROM, DVD ROM, 또는 다른 광학 매체와 같은 탈착가능 광학 디스크(1222)로부터 판독 또는 이에 기록하는 광학 디스크 드라이브(1220) 중 하나 이상의 드라이브를 갖는다. 하드 디스크 드라이브(1214), 자기 디스크 드라이브(1216), 및 광학 디스크 드라이브(1220)는 각각 하드 디스크 드라이브 인터페이스(1224), 자기 디스크 드라이브 인터페이스(1226), 및 광학 드라이브 인터페이스(1228)에 의해 버스(1206)에 접속된다. 드라이브 및 그의 연계된 컴퓨터-판독가능 매체는 컴퓨터-판독가능 명령, 데이터 구조, 프로그램 모듈, 및 컴퓨터를 위한 다른 데이터의 비휘발성 저장부를 제공한다. 하드 디스크, 탈착가능 자기 디스크 및 탈착가능 광학 디스크가 기재되어 있으나, 예컨대, 플래시 메모리 카드, 디지털 비디오 디스크, RAM(random access memory), ROM(read only memory), 등과 같은 다른 타입의 컴퓨터-판독가능 저장 매체가 데이터를 저장하기 위해 사용될 수 있다.
다수의 프로그램 모듈은 하드 디스크, 자기 디스크, 광학 디스크, ROM, 또는 RAM에 저장될 수 있다. 이들 프로그램은 오퍼레이팅 시스템(1230), 하나 이상의 애플리케이션 프로그램(1232), 다른 프로그램 모듈(1234) 및 프로그램 데이터(1236)를 포함한다. 애플리케이션 프로그램(1232) 또는 프로그램 모듈(1234)은 예를 들어, 브로커 서비스(106)를 구현하기 위한 컴퓨터 프로그램 로직(예를 들어, 컴퓨터 프로그램 코드), 프로세싱 로직(502), 애플리케이션 인스톨러(506), 파일 타입 등록 모듈(508), 식별자 생성기(520), 애플리케이션 런처(802), 토큰 생성기(804), 조건 매칭 로직(1002), 흐름도(300), 흐름도(400), 흐름도(700), 흐름도(900), 및/또는 흐름도(1100)(흐름도(300, 400, 700, 900, 1100)의 임의의 단계를 포함함), 및/또는 본 명세서에 기재된 추가 실시 형태를 포함할 수 있다.
사용자는 예컨대, 키보드(1238) 및 포인팅 장치(1240)과 같은 입력 장치를 통해 컴퓨터(1200)에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 등을 포함할 수 있다. 이들 및 다른 입력 장치는 대개 버스(1206)에 결합된 직렬 포트 인터페이스(1242)를 통해 프로세서(1202)에 접속되지만, 병렬 포트, 게임 포트, 또는 USB(universal serial bus)와 같은 다른 인터페이스에 의해 접속될 수도 있다.
디스플레이 장치(1244)는 또한 비디오 어댑터(1246)와 같은 인터페이스를 통해 버스(1206)에 접속된다. 모니터에 추가하여, 컴퓨터(1200)는 스피커 및 프린터와 같은 다른 주변 출력 장치(도시하지 않음)를 포함할 수 있다.
컴퓨터(1200)는 어댑터 또는 네트워크 어댑터(1250), 모뎀(1252), 또는 네트워크에 걸쳐 통신을 형성하는 다른 수단을 통해 네트워크(1248)(예를 들어, 인터넷)에 접속된다. 내장형이거나 또는 외장형일 수 있는 모뎀(1252)은 직렬 포트 인터페이스(1242)를 통해 버스(1206)에 접속된다.
본 명세서에 사용된 바와 같이, "컴퓨터 프로그램 매체" 및 "컴퓨터-판독가능 매체" 및 "컴퓨터-판독가능 저장 매체"라는 용어는 일반적으로 예컨대, 하드 디스크 드라이브(1214)와 연계된 하드 디스크, 탈착가능 자기 디스크(1218), 탈착가능 광학 디스크(1222)와 같은 매체뿐만 아니라 플래시 메모리 카드, 디지털 비디오 디스크, RAM(random access memory), ROM(read only memory) 등과 같은 다른 매체를 지칭하는 데 사용된다. 이러한 컴퓨터-판독가능 저장 매체는 통신 매체와 구별되며 겹치지 않는다(통신 매체를 포함하지 않는다). 통신 매체는 전형적으로 컴퓨터-판독가능 명령, 데이터 구조물, 프로그램 모듈 또는 반송파와 같이 변조 데이터 신호 내의 다른 데이터를 포함한다. "변조 데이터 신호"라는 용어는 신호 내의 정보를 인코팅하는 방식으로 셋팅 또는 변경되는 하나 이상의 이의 특성을 갖는 신호를 의미한다. 제한되지 않은 예시로서, 통신 매체에는 예컨대, 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체가 포함된다. 실시 형태는 또한 이러한 통신 매체에 관한 것이다.
전술된 바와 같이, 컴퓨터 프로그램 및 모듈(애플리케이션 프로그램(1232) 및 다른 프로그램 모듈(1234)을 포함함)은 하드 디스크, 자기 디스크, 광학 디스크, ROM 또는 RAM에 저장될 수 있다. 이러한 컴퓨터 프로그램은 또한 네트워크 인터페이스(1250) 또는 직렬 포트 인터페이스(1242)를 통해 수신될 수 있다. 이러한 컴퓨터 프로그램은, 애플리케이션에 의해 실행 또는 로딩될 때, 컴퓨터(1200)가 본 명세서에 기재된 본 발명의 실시 형태의 특징을 구현할 수 있게 한다. 따라서 이러한 컴퓨터 프로그램은 컴퓨터(1200)의 컨트롤러를 나타낸다.
본 발명은 또한 임의의 컴퓨터 사용가능 매체에 저장된 소프트웨어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 이러한 소프트웨어는, 하나 이상의 데이터 프로세싱 장치에서 실행될 때, 데이터 프로세싱 장치(들)가 본 명세서에 기재된 바와 동작하도록 한다. 본 발명의 실시 형태는 현재 또는 미래에 공지되는 임의의 컴퓨터 사용가능 또는 컴퓨터-판독가능 매체를 이용한다. 컴퓨터-판독가능 매체의 예에는 예컨대, RAM, 하드 드라이브, 플로피 디스크, CD ROM, DVD ROM, 집 디스크, 테이프, 자기 저장 장치, 광학 저장 장치, MEM, 나노기술-기반 저장 장치, 등과 같은 저장 장치가 포함하지만 이에 제한되지 않는다.
VI. 결론
본 발명의 다양한 실시 형태가 전술되어 있으나, 이것은 오로지 예시를 목적으로 제시된 것이고, 제한하기 위한 것이 아닌 것으로 이해되어야 것이다. 당업자라면 첨부된 청구항에서 정의된 본 발명의 정신 및 범주를 벗어나지 않으면서 그에 대한 형태 및 세부 사항에서의 다양한 변형이 이루어질 수 있다는 것을 이해할 것이다. 따라서 본 발명의 범위 및 범주는 전술된 예시적인 실시 형태 중 어느 것으로도 한정되지 않지만, 오로지 이하의 청구항 및 그 균등물에 따라서만 정의되어야 한다.

Claims (10)

  1. 컴퓨팅 장치 내에서의 방법으로서,
    컴퓨팅 장치 내에 애플리케이션을 설치하는 단계와,
    상기 애플리케이션과 연관된 애플리케이션 매니페스트를 수신하는 단계 - 상기 애플리케이션 매니페스트는 상기 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시함 - 와,
    브로커 서비스에 의해 액세스가능한 위치에 상기 하나 이상의 파일 타입을 등록하는 단계 - 상기 브로커 서비스는 상기 등록된 하나 이상의 파일 타입의 파일로의 상기 애플리케이션에 의한 액세스를 제한하도록 구성됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    애플리케이션 프로세스로서 상기 애플리케이션을 런칭하는 단계와,
    애플리케이션 컨테이너 내로 상기 애플리케이션 프로세스를 로딩하는 단계 - 상기 애플리케이션 컨테이너는 파일 시스템 데이터로의 상기 애플리케이션 프로세스에 의한 직접 액세스를 거부함 - 와,
    상기 애플리케이션 프로세스로부터 상기 브로커 서비스에서 상기 파일 시스템 데이터의 제1 데이터와 연관된 액세스 요청을 수신하는 단계와,
    상기 브로커 서비스가 상기 제1 데이터의 파일 타입이 상기 등록된 하나 이상의 파일 타입에 포함되는지를 결정할 때 상기 제1 데이터로의 상기 애플리케이션 프로세스에 의한 액세스를 가능하게 하는 단계
    를 추가로 포함하는 방법.
  3. 제2항에 있어서,
    상기 하나 이상의 파일 타입은 하나 이상의 파일 확장자, 파일 종류, 또는 다른 파일 속성 또는 메타데이터를 포함하고,
    상기 등록하는 단계는, 상기 브로커 서비스에 의해 액세스가능하고 상기 애플리케이션 프로세스에 의해 액세스불가한 안전 위치에서 상기 애플리케이션에 대해 애플리케이션 매니페스트 내에 표시된 하나 이상의 파일 확장자, 파일 종류, 또는 다른 파일 속성 또는 메타데이터의 표시를 저장하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    애플리케이션 컨테이너 내로 상기 애플리케이션 프로세스를 로딩하는 상기 단계는, 상기 애플리케이션 컨테이너에 대한 식별자를 포함하는 상기 애플리케이션 프로세스를 위한 토큰을 생성하는 단계 - 상기 토큰은 상기 애플리케이션 프로세스에 의해 변조되지 않음 - 를 포함하는
    방법.
  5. 제4항에 있어서,
    액세스 요청을 수신하는 상기 단계는, 브로커 서비스에서 상기 액세스 요청에서 요청된 상기 제1 데이터의 표시 및 상기 토큰을 수신하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 애플리케이션 프로세스에 의한 액세스를 가능하게 하는 상기 단계는,
    상기 브로커 서비스에 의해, 상기 액세스 요청에서 요청된 제1 데이터의 표시를 기초로 상기 제1 데이터의 파일 타입을 결정하는 단계와,
    상기 브로커 서비스에 의해, 상기 안전 위치에서 애플리케이션에 대하여 상기 등록된 하나 이상의 파일 타입을 액세스하는 단계와,
    상기 브로커 서비스에 의해, 상기 제1 데이터의 파일 타입이 상기 등록된 하나 이상의 파일 타입에 포함되는지를 판정하는 단계와,
    상기 제1 데이터의 파일 타입이 상기 등록된 하나 이상의 파일 타입에 포함되는 것으로 판정될 경우, 상기 브로커 서비스에 의해 상기 애플리케이션 프로세스가 제1 데이터를 액세스가능하게 하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 애플리케이션 프로세스에 의한 액세스를 가능하게 하는 상기 단계는, 상기 제1 데이터의 파일 타입이 상기 등록된 하나 이상의 파일 타입에 포함되지 않는 것으로 판정될 경우, 상기 브로커 서비스에 의해 상기 제1 데이터로의 상기 애플리케이션 프로세스에 의한 액세스를 거부하는 단계를 포함하는
    방법.
  8. 제7항에 있어서,
    상기 거부하는 단계는, 상기 제1 데이터의 파일을 판독하거나, 상기 제1 데이터의 폴더의 컨텐츠를 판독하거나, 상기 제1 데이터의 파일 또는 폴더 중 하나 이상에 기록하거나, 상기 제1 데이터의 파일 또는 폴더의 이름을 변경하거나, 상기 제1 데이터의 파일 또는 폴더를 이동시키거나, 또는 상기 제1 데이터의 파일 또는 폴더에 걸쳐 복사하기 위한 액세스를 상기 애플리케이션 프로세스에 의해 거부하는 단계를 포함하는
    방법.
  9. 컴퓨팅 장치로서,
    상기 컴퓨팅 장치 내에 설치된 애플리케이션 및 상기 애플리케이션과 연관된 애플리케이션 매니페스트를 저장하는 저장부 - 상기 애플리케이션 매니페스트는 상기 애플리케이션이 액세스하도록 허용되는 하나 이상의 파일 타입을 표시함 - 와,
    브로커 서비스를 포함하며, 상기 브로커 서비스에 의해 액세스가능한 위치에서 상기 애플리케이션 매니페스트에 의해 표시된 상기 하나 이상의 파일 타입을 등록하는 프로세스 로직 - 상기 브로커 서비스는 등록된 하나 이상의 파일 타입의 파일로의 애플리케이션에 의한 액세스를 제한하도록 구성됨 -
    을 포함하는 컴퓨팅 장치.
  10. 컴퓨터-판독가능 매체 상에 기록된 컴퓨터 프로그램 로직을 갖는 컴퓨터-판독가능 매체를 포함한 컴퓨터 프로그램 제품으로서,
    프로세서가 제1항 내지 제8항 중 어느 한 항을 수행할 수 있도록 하는 컴퓨터 프로그램 로직 수단을 포함하는 컴퓨터 프로그램 제품.
KR1020147006133A 2011-09-09 2012-09-04 애플리케이션용 선택적 파일 액세스 기법 KR101928127B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/229,367 US9773102B2 (en) 2011-09-09 2011-09-09 Selective file access for applications
US13/229,367 2011-09-09
PCT/US2012/053623 WO2013036472A1 (en) 2011-09-09 2012-09-04 Selective file access for applications

Publications (2)

Publication Number Publication Date
KR20140066718A true KR20140066718A (ko) 2014-06-02
KR101928127B1 KR101928127B1 (ko) 2019-02-26

Family

ID=47696935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147006133A KR101928127B1 (ko) 2011-09-09 2012-09-04 애플리케이션용 선택적 파일 액세스 기법

Country Status (6)

Country Link
US (1) US9773102B2 (ko)
EP (1) EP2754083A4 (ko)
JP (1) JP6151256B2 (ko)
KR (1) KR101928127B1 (ko)
CN (1) CN102938039B (ko)
WO (1) WO2013036472A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US8855681B1 (en) * 2012-04-20 2014-10-07 Amazon Technologies, Inc. Using multiple applications to provide location information
JP6091144B2 (ja) * 2012-10-10 2017-03-08 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9292280B2 (en) 2013-03-15 2016-03-22 Google Inc. Systems and methods for multi-tiered format registration for applications
US9489430B2 (en) 2013-05-14 2016-11-08 Google Inc. System and method for identifying applicable third-party applications to associate with a file
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US9547607B2 (en) 2013-06-27 2017-01-17 Microsoft Technology Licensing, Llc Brokering application access for peripheral devices
US9317686B1 (en) * 2013-07-16 2016-04-19 Trend Micro Inc. File backup to combat ransomware
JP6258001B2 (ja) * 2013-10-31 2018-01-10 株式会社東芝 電子機器および方法
CN104935560B (zh) * 2014-03-21 2019-06-07 新华三技术有限公司 一种数据保护方法及其装置
US9378384B2 (en) 2014-04-16 2016-06-28 Bank Of America Corporation Secure endpoint file export in a business environment
US9432369B2 (en) * 2014-04-16 2016-08-30 Bank Of America Corporation Secure data containers
EP3117303B1 (de) * 2014-05-19 2023-10-04 Siemens Healthcare GmbH Container mit einheitlichem look and feel mehrerer applikationen
CN105404819A (zh) * 2014-09-10 2016-03-16 华为技术有限公司 一种数据访问控制方法、装置以及终端
CN104281491B (zh) * 2014-09-26 2018-01-09 北京音之邦文化科技有限公司 一种数据处理方法及装置
CN104484285B (zh) * 2014-12-09 2017-11-17 杭州华为数字技术有限公司 一种存储管理方法和装置
CN105184153B (zh) * 2015-08-26 2018-10-02 北京元心科技有限公司 智能终端及其基于多级容器的应用程序运行方法
US9747438B2 (en) 2015-11-02 2017-08-29 Red Hat, Inc. Enabling resource access for secure application containers
CN113110848B (zh) * 2016-01-15 2024-06-18 谷歌有限责任公司 跨应用实例的标识符
US9817648B2 (en) 2016-01-15 2017-11-14 Google Inc. Application containers with dynamic sub-package loading
US20180046330A1 (en) * 2016-08-12 2018-02-15 Microsoft Technology Licensing, Llc Interface menu presenting non-installed content sharing applications
US10416979B2 (en) * 2017-05-16 2019-09-17 Red Hat, Inc. Package installation on a host file system using a container
CN107292173A (zh) * 2017-06-06 2017-10-24 北京奇虎科技有限公司 文档安全防护方法、装置以及设备
US11074056B2 (en) * 2017-06-29 2021-07-27 Hewlett-Packard Development Company, L.P. Computing device monitorings via agent applications
CN107358118B (zh) * 2017-07-03 2020-06-09 中兴通讯股份有限公司 Sfs访问控制方法及系统、sfs及终端设备
US20190362066A1 (en) * 2018-05-25 2019-11-28 Microsoft Technology Licensing, Llc Accessing secure system resources by low privilege processes
US11238172B2 (en) * 2019-06-24 2022-02-01 International Business Machines Corporation Managing user access to data of a social media account
US11582238B2 (en) * 2019-08-13 2023-02-14 Dell Products L.P. Securing a server from untrusted client applications
CN110532764B (zh) * 2019-08-19 2022-03-11 维沃移动通信有限公司 一种权限处理的方法、移动终端及可读存储介质
US12072849B2 (en) * 2021-03-23 2024-08-27 Microsoft Technology Licensing, Llc Flexible virtualization of application data for specified system locations
US12001402B2 (en) * 2021-08-02 2024-06-04 Dell Products L.P. Dynamically selecting an application to open a file
US20230350941A1 (en) * 2022-04-29 2023-11-02 Apple Inc. Contextual text lookup for images
GB2627941A (en) * 2023-03-08 2024-09-11 Platinum High Integrity Tech Limted File-system protection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378071B1 (en) * 1997-02-28 2002-04-23 Fujitsu Limited File access system for efficiently accessing a file having encrypted data within a storage device
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050256859A1 (en) * 2004-05-13 2005-11-17 Internation Business Machines Corporation System, application and method of providing application programs continued access to frozen file systems
US20100153671A1 (en) * 2005-12-01 2010-06-17 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium

Family Cites Families (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956715A (en) 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
US5721824A (en) 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6052120A (en) 1996-10-01 2000-04-18 Diamond Multimedia Systems, Inc. Method of operating a portable interactive graphics display tablet and communications systems
US5974549A (en) 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6117187A (en) 1997-09-30 2000-09-12 Hewlett-Packard Company Automatic generation of a software installation package
US6101607A (en) 1998-04-24 2000-08-08 International Business Machines Corporation Limit access to program function
US6279111B1 (en) 1998-06-12 2001-08-21 Microsoft Corporation Security model using restricted tokens
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6697569B1 (en) 1998-09-11 2004-02-24 Telefonaktiebolaget Lm Ericsson (Publ) Automated conversion of a visual presentation into digital data format
US6412070B1 (en) 1998-09-21 2002-06-25 Microsoft Corporation Extensible security system and method for controlling access to objects in a computing environment
US6694434B1 (en) 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US7151832B1 (en) 1999-11-18 2006-12-19 International Business Machines Corporation Dynamic encryption and decryption of a stream of data
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
US6725452B1 (en) 2000-06-01 2004-04-20 Aduoa, Inc. Method for resolving dependency conflicts among multiple operative entities within a computing environment
US7213266B1 (en) 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
US20040030926A1 (en) 2000-06-20 2004-02-12 Clark James R. Multi-session secured digital transmission process
US7669238B2 (en) 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
WO2002005184A2 (en) 2000-07-10 2002-01-17 Critical Devices, Inc. Method and system for software inventory management using a global central repository
US20030084134A1 (en) * 2000-09-01 2003-05-01 Pace Charles P. System and method for bridging assets to network nodes on multi-tiered networks
JP3776705B2 (ja) 2000-09-28 2006-05-17 株式会社東芝 通信システム、移動端末装置、ゲートウェイ装置及び通信制御方法
US6604209B1 (en) 2000-09-29 2003-08-05 Sun Microsystems, Inc. Distributed component testing in an enterprise computer system
JP2003044297A (ja) 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
US20020071565A1 (en) 2000-12-11 2002-06-13 Kurn David Michael Software process pre-authorization scheme for applications on a computer system
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6748380B2 (en) 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
JP2003015993A (ja) 2001-06-28 2003-01-17 Sony Corp 情報処理装置および情報処理方法、記録媒体、並びにプログラム
US7069330B1 (en) 2001-07-05 2006-06-27 Mcafee, Inc. Control of interaction between client computer applications and network resources
US6917951B2 (en) * 2001-07-26 2005-07-12 Microsoft Corporation System and method for replicating data in resource sets
US7401235B2 (en) 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
WO2003096669A2 (en) 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US20150135206A1 (en) 2002-05-10 2015-05-14 Convergent Media Solutions Llc Method and apparatus for browsing using alternative linkbases
US20150135214A1 (en) 2002-05-10 2015-05-14 Convergent Media Solutions Llc Method and apparatus for browsing using alternative linkbases
GB0212314D0 (en) 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
US6865659B2 (en) 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
US7542988B1 (en) 2006-01-03 2009-06-02 Symantec Corporation File type associative application layered system
US7152243B2 (en) 2002-06-27 2006-12-19 Microsoft Corporation Providing a secure hardware identifier (HWID) for use in connection with digital rights management (DRM) system
US7401352B2 (en) * 2002-08-30 2008-07-15 International Business Machines Corporation Secure system and method for enforcement of privacy policy and protection of confidentiality
US7512810B1 (en) 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
JP4400059B2 (ja) 2002-10-17 2010-01-20 株式会社日立製作所 ポリシー設定支援ツール
EP1420323A1 (en) 2002-11-18 2004-05-19 Koninklijke KPN N.V. Method and system for distribution of software components
US7337442B2 (en) 2002-12-03 2008-02-26 Microsoft Corporation Methods and systems for cooperative scheduling of hardware resource elements
US20040199787A1 (en) 2003-04-02 2004-10-07 Sun Microsystems, Inc., A Delaware Corporation Card device resource access control
US7478094B2 (en) 2003-06-11 2009-01-13 International Business Machines Corporation High run-time performance method for setting ACL rule for content management security
US7814551B2 (en) 2003-09-09 2010-10-12 Microsoft Corporation System and method for manifest generation
US7392383B2 (en) 2003-09-25 2008-06-24 International Business Machines Corporation Method and apparatus for providing process-based access controls on computer resources
US20050091535A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US8590032B2 (en) 2003-12-10 2013-11-19 Aventail Llc Rule-based routing to resources through a network
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7480655B2 (en) 2004-01-09 2009-01-20 Webroor Software, Inc. System and method for protecting files on a computer from access by unauthorized applications
US7698393B2 (en) 2004-03-23 2010-04-13 Microsoft Corporation Method and system for shadowing information between computing devices
US20050246762A1 (en) 2004-04-29 2005-11-03 International Business Machines Corporation Changing access permission based on usage of a computer resource
US7650627B1 (en) 2004-05-28 2010-01-19 Sap Ag Abstract configuration files for efficient implementation of security services
US7509497B2 (en) 2004-06-23 2009-03-24 Microsoft Corporation System and method for providing security to an application
CN100580611C (zh) 2004-06-30 2010-01-13 松下电器产业株式会社 程序执行设备及该程序执行方法
US20100081375A1 (en) 2008-09-30 2010-04-01 Apple Inc. System and method for simplified control of electronic devices
US7676835B2 (en) 2004-08-31 2010-03-09 International Business Machines Corporation System and method for regulating access to objects in a content repository
US7703090B2 (en) 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US8499337B1 (en) 2004-10-06 2013-07-30 Mcafee, Inc. Systems and methods for delegation and notification of administration of internet access
US7516477B2 (en) 2004-10-21 2009-04-07 Microsoft Corporation Method and system for ensuring that computer programs are trustworthy
US9203788B2 (en) * 2004-11-18 2015-12-01 Adobe Systems Incorporated System and method for communicating instant message information between an instant messaging node and one or more programs
US20060179430A1 (en) * 2004-11-18 2006-08-10 Besbris David G Service grouping
US7475396B2 (en) 2004-12-03 2009-01-06 International Business Machines Corporation Method and apparatus for defining, building and deploying pluggable and independently configurable install components
CN100490387C (zh) 2004-12-28 2009-05-20 北京邮电大学 用于应用服务器的基于令牌的细粒度访问控制系统及方法
US7472377B2 (en) 2005-01-18 2008-12-30 International Business Machines Corporation Systems and methods for determining software package identity during a system build
US7802294B2 (en) 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
US7650501B1 (en) 2005-02-15 2010-01-19 Sun Microsystems, Inc. System and methods for construction, fusion, prosecution, and maintenance of minimized operating environments
US20060193467A1 (en) 2005-02-16 2006-08-31 Joseph Levin Access control in a computer system
US7877091B2 (en) 2005-04-18 2011-01-25 Research In Motion Limited Method and system for executing a container managed application on a processing device
US7707620B2 (en) 2005-05-06 2010-04-27 Cisco Technology, Inc. Method to control and secure setuid/gid executables and processes
US20060259980A1 (en) 2005-05-16 2006-11-16 Microsoft Corporation Method and system for limiting rights of services
US7716734B2 (en) 2005-05-19 2010-05-11 Microsoft Corporation Systems and methods for pattern matching on principal names to control access to computing resources
US20070005734A1 (en) 2005-06-30 2007-01-04 Microsoft Corporation Generically extensible client application
US7580933B2 (en) 2005-07-28 2009-08-25 Microsoft Corporation Resource handling for taking permissions
US8073442B2 (en) 2005-10-05 2011-12-06 Microsoft Corporation Binding a device to a provider
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
CN1959631B (zh) 2005-11-04 2016-09-21 上海启明软件股份有限公司 一种基于itron的应用软件自主装配系统及方法
US7664924B2 (en) * 2005-12-01 2010-02-16 Drive Sentry, Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US7779265B2 (en) 2005-12-13 2010-08-17 Microsoft Corporation Access control list inheritance thru object(s)
US8621549B2 (en) 2005-12-29 2013-12-31 Nextlabs, Inc. Enforcing control policies in an information management system
US8209747B2 (en) 2006-01-03 2012-06-26 Cisco Technology, Inc. Methods and systems for correlating rules with corresponding event log entries
US20070192500A1 (en) 2006-02-16 2007-08-16 Infoexpress, Inc. Network access control including dynamic policy enforcement point
US20070208857A1 (en) 2006-02-21 2007-09-06 Netiq Corporation System, method, and computer-readable medium for granting time-based permissions
EP1998269A4 (en) 2006-02-21 2012-02-29 Nec Corp PROGRAM EXECUTION MONITORING SYSTEM, EXECUTION MONITORING METHOD, COMPUTER CONTROL PROGRAM
EP1833222A1 (en) 2006-03-10 2007-09-12 Abb Research Ltd. Access control protocol for embedded devices
US20070234412A1 (en) 2006-03-29 2007-10-04 Smith Ned M Using a proxy for endpoint access control
US8001528B2 (en) 2006-03-30 2011-08-16 Microsoft Corporation Organization of application state and configuration settings
US9489109B2 (en) 2006-03-30 2016-11-08 Sony Ericsson Mobile Communication Ab Data communication in an electronic device
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8166472B2 (en) * 2006-10-12 2012-04-24 Apple Inc. Installation utility system and method
US20080120707A1 (en) 2006-11-22 2008-05-22 Alexander Ramia Systems and methods for authenticating a device by a centralized data server
US7934087B2 (en) 2006-11-29 2011-04-26 Novell, Inc. Techniques for secure event recording and processing
US7925875B2 (en) 2006-12-31 2011-04-12 Sandisk Corporation Systems and methods for identifying and booting a computer architecture
CN100483352C (zh) 2007-02-13 2009-04-29 华为技术有限公司 Idl调用装置及调用方法
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
CN101616719A (zh) 2007-02-23 2009-12-30 高通股份有限公司 用以基于接近度创建或加入游戏会话的方法和设备
US20080220878A1 (en) 2007-02-23 2008-09-11 Oliver Michaelis Method and Apparatus to Create or Join Gaming Sessions Based on Proximity
US7797743B2 (en) 2007-02-26 2010-09-14 Microsoft Corporation File conversion in restricted process
US20080244723A1 (en) 2007-03-27 2008-10-02 Microsoft Corporation Firewall Restriction Using Manifest
US8239954B2 (en) 2007-05-07 2012-08-07 Microsoft Corporation Access control based on program properties
CN101131725A (zh) 2007-05-16 2008-02-27 何鸿君 一种文件访问控制方法
CN102006334B (zh) 2007-06-11 2013-01-02 华为技术有限公司 安装软件组件的方法、系统及装置
US8185889B2 (en) 2007-06-19 2012-05-22 Red Hat, Inc. Methods and systems for porting software packages from one format to another
US8191012B2 (en) 2007-08-30 2012-05-29 Daylife, Inc. Method and system for creating theme, topic, and story-based cover pages
GB2455059A (en) 2007-10-09 2009-06-03 Symbian Software Ltd Transmitting device pairing information over multiple available out of band channels/interfaces
US8978028B2 (en) 2007-10-10 2015-03-10 Microsoft Technology Licensing, Llc Transactional multi-package installation
KR101474561B1 (ko) 2007-11-27 2014-12-19 삼성전자주식회사 이동통신 단말기에서의 어플리케이션 실행방법 및 장치
US8107879B2 (en) 2007-12-31 2012-01-31 Intel Corporation Device, system, and method of establishing multiple wireless connections
US20090193507A1 (en) 2008-01-28 2009-07-30 Wael Ibrahim Authentication messaging service
EP2086206A1 (en) 2008-01-31 2009-08-05 Alcatel Lucent System for operating a peer-to-peer network taking into account access network subscriber information
WO2009095413A2 (en) 2008-01-31 2009-08-06 International Business Machines Corporation Method and system for encrypted file access
JP4613969B2 (ja) 2008-03-03 2011-01-19 ソニー株式会社 通信装置、及び通信方法
EP2107458A1 (en) 2008-03-31 2009-10-07 Jatho Investments Modelling software appliance
US7930760B2 (en) 2008-04-01 2011-04-19 Microsoft Corporation Centralized enforcement of name-based computer system security rules
US20090319673A1 (en) 2008-04-24 2009-12-24 International Business Machines Corporation Automated Wireless Device Pairing
US8458363B2 (en) 2008-06-08 2013-06-04 Apple Inc. System and method for simplified data transfer
US8407693B2 (en) 2008-06-09 2013-03-26 International Business Machines Corporation Managing package dependencies
US20090327900A1 (en) 2008-06-26 2009-12-31 Microsoft Corporation Indicating resources to which there are access rights
US8204969B2 (en) * 2008-08-05 2012-06-19 Canon Kabushiki Kaisha Method for retrieving updates via the internet
US20100058320A1 (en) 2008-09-04 2010-03-04 Microsoft Corporation Managing Distributed System Software On A Gaming System
KR100997802B1 (ko) 2008-10-20 2010-12-01 한국전자통신연구원 정보 단말기의 보안 관리 장치 및 방법
US9043919B2 (en) * 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8146134B2 (en) 2008-10-28 2012-03-27 Yahoo! Inc. Scalable firewall policy management platform
US20100174599A1 (en) 2009-01-05 2010-07-08 Apple Inc. System and method for providing content associated with a product or service
US9288210B2 (en) 2009-01-26 2016-03-15 Microsoft Technology Licensing, Llc Revocable object access
JP4803263B2 (ja) 2009-01-28 2011-10-26 ブラザー工業株式会社 ソフトウェアのインストール方法及びプログラム及び情報処理装置
US8752153B2 (en) * 2009-02-05 2014-06-10 Wwpass Corporation Accessing data based on authenticated user, provider and system
US8131214B2 (en) 2009-03-02 2012-03-06 Motorola Mobility, Inc. Method for selecting content for transfer or synchronization between devices
US8375377B2 (en) * 2009-03-06 2013-02-12 International Business Machines Corporation Controlling java virtual machine component behavior on a per-classloader basis
US8468608B1 (en) 2009-03-30 2013-06-18 Symantec Corporation Enforcing digital rights management in a heterogeneous environment
US20100278345A1 (en) 2009-05-04 2010-11-04 Thomas Matthieu Alsina Method and apparatus for proximity based pairing of mobile devices
US20100287513A1 (en) 2009-05-05 2010-11-11 Microsoft Corporation Multi-device gesture interactivity
KR101590188B1 (ko) 2009-05-08 2016-01-29 삼성전자주식회사 휴대단말기에서 소프트웨어 패키지의 무결성을 검증하는 방법
US9270683B2 (en) * 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication
US8826269B2 (en) 2009-06-15 2014-09-02 Microsoft Corporation Annotating virtual application processes
JP5424735B2 (ja) 2009-06-17 2014-02-26 キヤノン株式会社 通信装置及びその制御方法、プログラム
US8340577B2 (en) 2009-09-24 2012-12-25 Research In Motion Limited Communications device using electromagnet and activated communications circuit
US20110070827A1 (en) 2009-09-24 2011-03-24 Research In Motion Limited Communications device and method for initiating communications at a communications device
US20110098030A1 (en) 2009-10-27 2011-04-28 Nokia Corporation Method and apparatus for activating services
US8838644B2 (en) 2009-11-25 2014-09-16 International Business Machines Corporation Extensible access control list framework
CN102129364B (zh) 2010-01-14 2013-09-25 中国电信股份有限公司 应用程序中嵌入微件工具栏的方法和快速访问微件的方法
US8745239B2 (en) * 2010-04-07 2014-06-03 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8782106B2 (en) * 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
US20120194534A1 (en) * 2011-02-02 2012-08-02 Alcatel-Lucent Usa Inc. System and Method for Managing Cache Storage in Adaptive Video Streaming System
US20120297288A1 (en) 2011-05-16 2012-11-22 Edward Mansouri Method and System for Enhancing Web Content
US9319406B2 (en) * 2011-07-12 2016-04-19 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US8973158B2 (en) 2011-07-20 2015-03-03 Microsoft Technology Licensing Llc Trust level activation
US20130054734A1 (en) * 2011-08-23 2013-02-28 Microsoft Corporation Migration of cloud applications between a local computing device and cloud
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US20130061316A1 (en) 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
CN103765427B (zh) * 2011-09-07 2017-02-15 英特尔公司 检验设备的固件完整性
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US20130067459A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Order-Independent Deployment Collections with Dependency Package Identifiers
US9800688B2 (en) * 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9152784B2 (en) 2012-04-18 2015-10-06 Mcafee, Inc. Detection and prevention of installation of malicious mobile applications
US10356204B2 (en) * 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378071B1 (en) * 1997-02-28 2002-04-23 Fujitsu Limited File access system for efficiently accessing a file having encrypted data within a storage device
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050256859A1 (en) * 2004-05-13 2005-11-17 Internation Business Machines Corporation System, application and method of providing application programs continued access to frozen file systems
US20100153671A1 (en) * 2005-12-01 2010-06-17 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium

Also Published As

Publication number Publication date
JP2014530399A (ja) 2014-11-17
CN102938039A (zh) 2013-02-20
JP6151256B2 (ja) 2017-06-21
EP2754083A1 (en) 2014-07-16
US9773102B2 (en) 2017-09-26
CN102938039B (zh) 2016-03-16
US20130067600A1 (en) 2013-03-14
WO2013036472A1 (en) 2013-03-14
EP2754083A4 (en) 2015-04-22
KR101928127B1 (ko) 2019-02-26

Similar Documents

Publication Publication Date Title
KR101928127B1 (ko) 애플리케이션용 선택적 파일 액세스 기법
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
US10157268B2 (en) Return flow guard using control stack identified by processor register
JP4931255B2 (ja) 仮想化されたファイル・システム
US8484641B2 (en) Implementing a versioned virtualized application runtime environment
US8417969B2 (en) Storage volume protection supporting legacy systems
KR101748000B1 (ko) 다른 운영 체제로의 부팅의 동적 리디렉션
CN107203715B (zh) 执行系统调用的方法及装置
CN112805708B (zh) 保护计算机系统上的选定磁盘
US10289397B2 (en) Silent installation of software with dependencies
US10908948B2 (en) Multiple application instances in operating systems that utilize a single process for application execution
CN113826072B (zh) 系统管理模式中的代码更新
EP3785149B1 (en) Memory assignment for guest operating systems
US8359635B2 (en) System and method for dynamic creation of privileges to secure system services
US9535713B2 (en) Manipulating rules for adding new devices
US8578368B2 (en) Injecting a file from the bios into an operating system
WO2009018366A1 (en) Method and apparatus for lifecycle integrity verification of virtual machines
EP2827246A1 (en) Apparatus for configuring operating system and method therefor
WO2023016151A1 (zh) Linux系统安全应用的软件框架及创建方法
US8972708B2 (en) Plurality of interface files usable for access to BIOS
US10121001B1 (en) System and method for monolithic scheduling in a portable computing device using a hypervisor
KR20140127124A (ko) 시스템 자원에 대한 접근을 관리하는 전자 장치
US11822663B2 (en) Supervisor-based firmware hardening
Hon Running programs software

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant