KR101690845B1 - 하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스 - Google Patents

하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스 Download PDF

Info

Publication number
KR101690845B1
KR101690845B1 KR1020147019777A KR20147019777A KR101690845B1 KR 101690845 B1 KR101690845 B1 KR 101690845B1 KR 1020147019777 A KR1020147019777 A KR 1020147019777A KR 20147019777 A KR20147019777 A KR 20147019777A KR 101690845 B1 KR101690845 B1 KR 101690845B1
Authority
KR
South Korea
Prior art keywords
resource
application
access
bookmark
location identifier
Prior art date
Application number
KR1020147019777A
Other languages
English (en)
Other versions
KR20140105572A (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 KR20140105572A publication Critical patent/KR20140105572A/ko
Application granted granted Critical
Publication of KR101690845B1 publication Critical patent/KR101690845B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법, 시스템, 및 기계-판독가능 저장 매체가 기술되고, 이때 일 실시예에서, 북마크와 같은 식별자들은 샌드박싱된 환경에서 파일들 또는 폴더들에 대한 액세스를 허용하는데 사용된다. 하나 이상의 애플리케이션은, 예를 들어 오퍼레이팅 시스템의 신뢰된 소프트웨어 컴포넌트일 수 있는 액세스 제어 시스템에 의해 제한된다. 일 실시예에서, 북마크들 또는 다른 식별자들은 애플리케이션이 종료된 동안 파일이 사용자에 의해 재명명되거나 이동되더라도 애플리케이션이 파일에 대한 액세스를 갖게 한다. 일 실시예에서, 리소스 매니저, 또는 다른 신뢰된 액세스 제어 시스템은, 샌드박스 애플리케이션이 파일들에 대한 액세스를 제어하여 각 애플리케이션이 특정 파일 또는 폴더에 대한 액세스를 획득하도록 샌드박스 애플리케이션에 요청을 해야만 하는 환경에서 북마크의 사용을 허용하도록 애플리케이션과 상호작용할 수 있다.

Description

하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스{FILE SYSTEM ACCESS FOR ONE OR MORE SANDBOXED APPLICATIONS}
관련 출원들의 상호 참조
본 출원은 2012년 1월 17일에 출원된 미국 가출원 제61/632,101호의 이익을 주장하며, 이 가출원은 본 명세서에 참조로서 편입된다. 본 출원은 2011년 1월 14일에 출원된 미국 특허 출원 제13/007,472호, 2010년 5월 28일에 출원된 미국 특허 출원 제12/790,451호, 및 2011년 1월 14일에 출원된 미국 특허 출원 제13/007,480호에 관한 것이다.
모든 유형의 프로세서 기반 전자 디바이스들 및 특히 컴퓨팅 디바이스들에 대한 보안 문제가 중요해졌다. 바이러스, 웜, 멀웨어(malware) 및 기타 코드와 같은 악성 코드(malicious code)는, 스크린 상에 메시지를 디스플레이하는 것과 같은 상대적으로 양호한 것부터 디바이스를 제어하는 것, 프로세스를 실행하는 것, 파일들을 전송하고/거나, 삭제하는 것 등에 이르는 영향력을 가질 수 있다. 이러한 공격들 중 대부분은 워크스테이션, 서버, 데스크톱 컴퓨터, 노트북 및 핸드헬드 컴퓨터와 같은 컴퓨팅 디바이스들 및 다른 유사한 디바이스들을 겨냥한다. 이러한 컴퓨팅 디바이스들 중 대부분은 사용자가 원하는 기능들의 세트를 수행하기 위해 오퍼레이팅(operate)할 수 있는 하나 이상의 애플리케이션 프로그램을 실행할 수 있다.
악성 또는 결함 있는 코드의 공격 및 영향 둘 모두를 감소시키거나 제거하기 위한 시도에 다수의 방법론들이 사용되어 왔다. 일반적으로, 이러한 방법론들은 검출, 방지 및 완화를 포함하고, 악성 코드를 조사하고 식별하고 격리하기 위한 시도들을 포함할 수 있다. 또한, 일부 방법론들은 신뢰되지 않은 애플리케이션들에게 승인되는 액세스의 양을 제한함으로써 악성 코드가 수행할 수 있는 손상의 양을 제한하는 데 사용되어 왔다. 그러나, 종래의 방법론들은 제한된 환경(restricted environment)의 외부에서 리소스들에 액세스하는, 특히 만약 이러한 리소스들의 이름 또는 위치가 변경된다면, 일관성 있고 지속적인 방법을 제공하는 통일되고 체계적인 접근이 부족하다.
본 발명의 실시예들은 일반적으로 보안 컴퓨팅 분야에 관한 것이며, 더욱 상세하게는 프로그램에 의해 사용되는 리소스들을 제한하는 것에 관한 것이다. 본 발명의 일 양태에 따라, 식별자들(identifiers)은 하나 이상의 애플리케이션이 액세스 제어 시스템에 의해 샌드박싱되는(sandboxed) 샌드박싱된 환경에서 파일들 또는 폴더들에 대한 액세스를 허용하기 위해 제공된다. 이러한 액세스 제어 시스템은 오퍼레이팅 시스템의 신뢰된 소프트웨어 컴포넌트(trusted software component)와 같은 신뢰된 소프트웨어 컴포넌트의 일부일 수 있다. 식별자는 북마크(bookmark) 또는 일부 다른 식별자일 수 있고, 애플리케이션이 종료된 동안 사용자에 의해 파일이 재명명(renamed)되거나 이동되더라도 애플리케이션이 파일에 액세스하게 할 수 있다. 이전에, 만약 샌드박싱된 환경의 외부에서 파일 또는 폴더가 이동되거나 재명명된다면, 그 파일 또는 폴더를 사용하는 애플리케이션은 파일 또는 폴더의 재명명 또는 이동에 대해 아는 바가 없을 것이고 액세스를 획득할 수 없을 것이다.
그러나, 본 발명의 실시예들에 의하면, 리소스 매니저 또는 일부 다른 신뢰된 액세스 제어 시스템(trusted access control system)이 애플리케이션(또는 "앱")과 상호작용하게 하고, 그 환경에서 북마크의 사용을 가능하게 한다. 샌드박스(sandbox) 환경에서, 샌드박스 애플리케이션은, 각 애플리케이션이, 일 실시예에서, 특정 파일 또는 폴더에 대한 액세스를 획득하도록 샌드박스 애플리케이션에 요청해야만 하도록 하는 방식으로 파일에 대한 액세스를 제어한다. 특히, 본 발명의 실시예들은 악성 코드가 민감한 시스템 리소스들에 대한 부정한 액세스를 시도할 상황들을 방지하기 위해 이러한 파일 또는 폴더에 액세스하는 것이 사용자의 의도라는 표시 없이는 애플리케이션이 파일 또는 폴더에 액세스하게 하지 않을 것이다. 그러나, 사용자 의도가 파일의 선택에 의해 명시되면, 그러한 선택은, 일부 실시예에서, 애플리케이션 세션들(application sessions)에 걸쳐 지속할 수 있다.
발명의 내용은 본 발명의 모든 양태 전체를 망라하는 목록을 포함하지 않으므로, 본 발명은 위의 발명의 내용에 개시된 실시예들에 한정되지 않는다는 것에 유의해야 한다. 본 발명의 다른 특징들이 첨부 도면 및 이하의 발명을 실시하기 위한 구체적인 내용으로부터 명백하게 될 것이다. 또한, 본 발명은 위에서 설명되고 아래의 발명을 실시하기 위한 구체적인 내용에 개시된 다양한 양태들의 모든 적절한 조합으로부터 실시될 수 있는 모든 시스템 및 방법을 포함하는 것이 고려된다.
첨부된 도면의 도시를 통해 본 발명의 실시예를 제한적이지 않은 예로 설명할 것이며, 여기서 유사 참조번호는 유사 구성요소를 나타낸다.
<도 1a>
도 1a는 본 명세서에 기술된 하나 이상의 실시예를 포함할 수 있는 데이터 프로세싱 시스템의 예를 도시한다.
<도 1b>
도 1b는 본 발명의 일 실시예에 따른 제한된 오퍼레이팅 환경(restricted operating environment)에서 프로그램 또는 애플리케이션을 오퍼레이팅하기 위한 시스템을 도시하는 블록도이다.
<도 2a>
도 2a는 본 발명의 일 실시예에 따른 제한된 오퍼레이팅 환경에서 파일들에 대한 지속적인 액세스를 가능하게 하기 위해 앱 범위 북마크(app scoped bookmarking)를 수행하기 위한 일 실시예의 방법을 표시하는 흐름도이다.
<도 2b>
도 2b는 본 발명의 일 실시예에 따른 제한된 오퍼레이팅 환경에서 어떻게 재시작된 애플리케이션이 북마크 또는 다른 식별자를 통해 액세스를 획득할 수 있는지를 도시하는 흐름도이다.
<도 3a>
도 3a는 본 발명의 일 실시예에 따른 제한된 오퍼레이팅 환경에서의 사용을 위해 집합 범위 북마크(collection scoped bookmark)를 생성하는 방법을 도시하는 흐름도이다.
<도 3b>
도 3b는 본 발명의 일 실시예에 따른 제한된 오퍼레이팅 환경에서 집합 범위 북마크에 연관된 프로젝트를 통해 액세스를 허용하기 위한 방법을 도시하는 흐름도이다.
하나 이상의 샌드박싱된 애플리케이션에 대한 파일 액세스를 관리하기 위한 다양한 실시예들이 아래의 설명 및 도면에 기술된다. 다음의 설명 및 도면은 본 발명의 예시적인 것이고 본 발명을 제한하는 방식으로 해석되지 않는다. 다양한 구체적 사항들이 본 발명의 다양한 실시예들의 확실한 이해를 제공하기 위해 설명된다. 그러나, 특정 예에서, 본 발명의 실시예들의 간결한 설명을 제공하기 위해 잘 알려진 또는 종래의 상세한 내용들은 설명되지 않는다.
본 명세서에서 "하나의 실시예" 또는 "일 실시예"라는 말은 실시예와 함께 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 본 명세서의 다양한 부분에서 나오는 "일 실시예에서"라는 문구는 반드시 모두 동일한 실시예를 지시하지 않는다. 프로세스들이 아래에서 일부 순차적인 오퍼레이션들로 설명되지만, 설명된 일부의 오퍼레이션들은 상이한 순서로 수행될 수 있음을 인식해야 한다. 또한, 일부 오퍼레이션들은 순차적이 아닌 병행(in parallel) 수행될 수 있다.
제한된 오퍼레이팅 환경들은 악성 코드를 실행하는 프로그램들의 손상 가능성을 제한하기 위한 한 방법이다. 제한된 오퍼레이팅 환경은, 오퍼레이팅 시스템 상에서 실행하는, 오퍼레이팅 시스템이 애플리케이션 상에서 샌드박싱 메커니즘을 실시하는 그러한 환경들을 포함할 수 있다. 이들 샌드박싱 메커니즘은, 하드 드라이브와 같은 비휘발성 저장 디바이스, 또는 고체 상태 디스크(solid state disk, SSD)와 같은 플래시 메모리 디바이스에 저장된 파일들에 대한 액세스에 대한 제한들뿐만 아니라 DRAM 또는 컴퓨팅 디바이스의 다른 주 메모리와 같은, 애플리케이션이 액세스할 수 있는 메모리에 대한 제한들을 포함할 수 있다. 제한된 오퍼레이팅 환경들의 예는 2011년 1월 14일에 출원된 동시 계류중인 미국 특허 출원 제13/007,472호, 2010년 5월 28일에 출원된 미국 특허 출원 제12/790,451호, 및 2011년 1월 14일에 출원된 미국 특허 출원 제13/007,480호에 기술되어 있고, 이들 특허 출원들은 그 전문이 참조로서 본 명세서에 편입된다.
파일들에 대한 액세스를 제한하기 위해, 샌드박싱 애플리케이션은 오퍼레이팅 시스템의 신뢰된 요소에 의해 제공된 파일 열기 대화상자(open file dialog box) 또는 패널과 같은 신뢰된 시스템 리소스를 통한 파일의 사용자의 선택과 같은, 신뢰된 장비들(trusted facilities)을 통해 사용자 목적의 입증을 요구함으로써 그렇게 할 수 있다. 따라서, 애플리케이션이 실행되고 있을 때, 사용자는 열기 대화상자 또는 저장된 대화상자 또는 신뢰된 시스템 리소스에 의해 제공된 다른 대화상자 또는 패널을 통해 파일들을 선택함으로써 필요한 신뢰의 표시를 제공할 수 있다.
그러나, 소정 경우에는, 애플리케이션이 파일 또는 폴더에 대한 액세스를 구하는데 있어, 파일 또는 폴더의 신뢰성을 나타내는 사용자 상호작용없이 그렇게 한다. 예를 들어, 이메일 애플리케이션은 이메일에서 다운로드를 저장하도록 다운로드 폴더에 액세스하기를 바랄 수 있다. 이는 이메일 프로그램을 시작하면 발생될 수 있지만, 이메일 프로그램의 시작은 특정 다운로드 폴더의 사용자의 선택을 포함하지 않는다. 따라서, 이 경우에, 재시작된 후에는 이메일 애플리케이션은 폴더에 대한 액세스가 거부될 것이다. 애플리케이션이 제한된 환경에서 액세스가 거부될 다른 실시예는 애플리케이션이 "Final Cut Pro" 영화 편집 소프트웨어 애플리케이션에 사용되는 프로젝트 파일과 같은, 프로젝트 또는 집합 파일을 사용하는 경우이다. 프로젝트 또는 집합 파일은 디렉토리로 간주될 수 있고, 이는 다양한 영화들 및 다른 콘텐츠를 특정하는 메타데이터 및 경로명을 포함하며, 이들은 프리젠테이션을 제공하기 위해 함께 사용된다. 프로젝트 파일의 통상적인 사용 시에, 사용자는 열기 대화상자의 사용을 통해 애플리케이션 내로부터 프로젝트 파일을 연다. 이 경우에, 시스템은 사용자가 신뢰된 것으로 가정하고 파일을 선택하는 사용자 행동이 파일의 신뢰성을 나타내므로 파일의 신뢰성을 검증할 필요가 없다. 그러나, 애플리케이션은 프로젝트 또는 집합 내에서 해당(referred to) 파일들에 대한 액세스가 필요하거나 필요할 수도 있고, 그러한 파일들에 대한 액세스는 특정 파일에 대한 신뢰성 있는 사용자 표시를 요구하는 제한된 오퍼레이팅 환경에서 거부될 것이다.
본 명세서에서 기술된 방법들 중 임의의 하나는 범용 컴퓨터 시스템, 특수 목적 컴퓨터 시스템, 임베디드형 컴퓨터 시스템 등을 포함하지만 이에 한정되지 않는 다양한 상이한 데이터 프로세싱 디바이스들 상에서 구현될 수 있다. 예를 들어, 본 명세서에 기술된 방법들 중 임의의 하나의 방법을 사용할 수 있는 데이터 프로세싱 시스템은 데스크톱 컴퓨터 또는 랩톱 컴퓨터; 태블릿 컴퓨터, 스마트폰, 또는 셀룰러 폰과 같은 모바일 디바이스; PDA(personal digital assistant); 또는 어떤 다른 형태의 임베디드형 전자 디바이스 또는 소비자 전자 디바이스를 포함할 수 있다. 도 1a는 본 발명에서 사용될 수 있는 통상적인 데이터 프로세싱 시스템의 일 예를 도시한다. 도 1a는 컴퓨터 시스템과 같은 데이터 프로세싱 시스템의 다양한 컴포넌트들을 도시하지만, 이러한 상세항목들은 본 발명과 밀접히 관련된 것이 아니므로 컴포넌트들을 상호접속시키는 임의의 특정 아키텍처 또는 방식을 나타내도록 의도되지 않았다는 점에 유의해야 한다. 또한, 도 1a에 도시된 것보다 적은 컴포넌트들 또는 도시된 것보다 많은 컴포넌트들을 갖는 다른 유형들의 데이터 프로세싱 시스템들이 본 발명과 함께 사용될 수 있다는 점이 이해될 것이다. 도 1a의 데이터 프로세싱 시스템은 미국, 캘리포니아주, 쿠퍼티노에 있는 애플사(Apple Inc.)의 매킨토시(Macintosh) 컴퓨터일 수 있다.
도 1a에 도시된 바와 같이, 데이터 프로세싱 시스템(100)은 시스템의 다양한 컴포넌트들을 상호접속시키는 기능을 하는 하나 이상의 버스(125)를 포함한다. 하나 이상의 프로세서(115)는 본 기술분야에서 알려진 바와 같이 하나 이상의 버스(125)에 연결된다. 메모리(120)는 DRAM 또는 비휘발성 RAM일 수 있거나 플래시 메모리 또는 다른 유형들의 메모리일 수 있다. 이러한 메모리는 본 기술분야에서 알려진 기법들을 사용하여 하나 이상의 버스(125)에 연결된다. 데이터 프로세싱 시스템(100)은 또한 파워가 시스템으로부터 제거된 이후라도 데이터를 유지하는 하드 디스크 드라이브 또는 플래시 메모리 또는 자기 광학 드라이브 또는 자기 메모리 또는 광학 드라이브 또는 다른 유형들의 메모리 시스템일 수 있는 비휘발성 메모리(122)를 포함할 수 있다. 비휘발성 메모리(122) 및 메모리(120)는 알려진 인터페이스들 및 접속 기법들을 사용하여 하나 이상의 버스(125)에 둘 모두가 연결된다. 디스플레이 컨트롤러(130)는 본 명세서에 기술된 사용자 인터페이스 특징들 또는 실시예들 중 임의의 하나를 디스플레이할 수 있는 디스플레이 디바이스(132) 상에 디스플레이될 디스플레이 데이터를 수신하도록 하나 이상의 버스(125)에 연결된다. 디스플레이 디바이스(132)는 터치 스크린을 제공하는 일체형 터치 입력을 포함할 수 있다.
데이터 프로세싱 시스템(100)은 또한 하나 이상의 마우스, 터치 스크린, 터치 패드, 조이스틱 및 본 기술분야에서 알려진 것들을 포함하는 다른 입력 디바이스들 및 출력 디바이스들(예를 들어, 스피커)과 같은 하나 이상의 입/출력(I/O) 디바이스를 위한 인터페이스들을 제공하는 하나 이상의 I/O 컨트롤러(140)를 포함할 수 있다. 입/출력 디바이스들(142)은 본 기술분야에서 알려진 바와 같이 하나 이상의 I/O 컨트롤러(140)를 통해 연결된다. 도 1a는 비휘발성 메모리(122) 및 메모리(120)는 네트워크 인터페이스를 통해서라기 보다는 하나 이상의 버스에 직접 연결되는 것으로 도시하지만, 데이터 프로세싱 시스템은 모뎀 또는 이더넷 인터페이스 또는 무선 Wi-Fi 송수신기(145) 또는 무선 셀룰러 전화 송수신기 또는 이러한 송수신기들의 조합과 같은 무선 인터페이스 등과 같은 네트워크 인터페이스(135)를 통해 데이터 프로세싱 시스템에 연결된 네트워크 저장 디바이스와 같은 시스템으로부터 원격인 비휘발성 메모리를 이용할 수 있다는 점이 이해될 것이다.
본 기술분야에서 알려진 바와 같이, 하나 이상의 버스(125)는 다양한 버스들 사이에서 상호접속하는 하나 이상의 브리지 또는 컨트롤러 또는 어댑터를 포함할 수 있다. 일 실시예에서, I/O 컨트롤러(140)는 USB 주변 장치들을 제어하기 위한 USB 어댑터를 포함하고, 이더넷 포트 또는 무선 송수신기 또는 무선 송수신기들의 조합을 제어할 수 있다. 본 발명의 양태들은, 적어도 부분적으로, 소프트웨어로 구현될 수 있다는 점이 이 설명으로부터 명백하게 될 것이다. 즉, 본 기법들은, 데이터 프로세싱 시스템에서, 메모리(120) 또는 비휘발성 메모리(122) 또는 함께 비일시적 기계 판독가능 저장 매체를 구현할 수 있는 이러한 메모리들의 조합과 같은 메모리에 포함된 명령어들(instructions)의 시퀀스를 실행하는 그의 프로세서에 응답하여, 수행될 수 있다. 다양한 실시예들에서, 하드웨어 내장형 회로(hardwired circuitry)가 소프트웨어 명령어들과 조합하여 본 발명을 구현하는 데 이용될 수 있다. 따라서, 본 기법들은 하드웨어 회로와 소프트웨어 명령어들의 어떠한 특정 조합에도, 또는 데이터 프로세싱 시스템에 의해 실행되는 명령어들에 대한 어떠한 특정 소스에도 제한되지 않는다.
도 1b는 본 발명의 실시예에 따른, 도 1a와 마찬가지로 데이터 프로세싱 시스템을 포함할 수 있는 오퍼레이팅 환경을 도시한다. 오퍼레이팅 환경은 리소스 매니저 또는 다른 신뢰된 액세스 제어 시스템(161)을 이용하여, 샌드박싱된 앱 또는 애플리케이션에 북마크들을 제공함으로서, 애플리케이션이 종료되고 난 후 재시작된 후라도, 애플리케이션이 제한된 환경에서 액세스를 획득할 수 있도록 한다. 리소스 매니저(161)는 오퍼레이팅 시스템 내의 액세스 제어 시스템일 수 있고, 일부 실시예에서 리소스 매니저(161)의 실행가능 객체 코드는 그 신뢰성을 검증하도록 암호학적으로(cryptographically) 서명되거나 또는 인증될 수 있다. 저장 디바이스(155)는 리소스 매니저(161)를 통해 액세스된다. 일 실시예에서, 리소스 매니저는 파일 시스템을 통해 저장 디바이스(155)에 액세스한다. 앱(151)은 파일(159) 또는 폴더(157)와 같은 파일 또는 폴더를 리소스 매니저(161)를 통해 액세스하고, 이는 파일 시스템을 통해 저장 디바이스(155)에 액세스한다. 저장 디바이스(155)는 하드 드라이브 또는 플래시 드라이브 또는 본 기술분야에서 알려진 다른 비휘발성 저장 장치일 수 있다. 앱(151)은 샌드박스(153)에 의해 샌드박싱되어, 주 메모리 내의 메모리에 대한 사용이 샌드박스 애플리케이션에 의해 제한될 수 있고, 앱(151)은 리소스 매니저(161)를 통해 액세스를 요청해야만 그의 패키지 또는 컨테이너의 외부에서 파일들 또는 폴더들에 대해서 액세스를 얻을 수 있다. 리소스 매니저(161)는 사용자가 애플리케이션을 실행하고 신뢰된 시스템 소프트웨어 컴포넌트에 의해 제공된 열기 또는 저장 대화상자 또는 패널을 통해 파일을 요청할 때 파일에 대한 액세스를 허용할 수 있다. 예를 들어, 사용자가 사용하기 위해 특정 다운로드 폴더 또는 애플리케이션의 어떤 목적을 위해 사용하기 위해 일부 다른 폴더를 설정 패널(preferences panel)로부터 선택하면, 애플리케이션은 그의 현재 실행 동안 그 폴더를 사용할 수 있다. 그러나, 애플리케이션이 종료되거나 중지되고 이어서 재시작되는 경우, 애플리케이션은 사용자 상호작용 없이 그 폴더 또는 파일에 대한 액세스를 재사용하거나 얻을 수 없다.
도 2a 및 도 2b에 도시된 방법들은 애플리케이션의 종료후에도 어떻게 애플리케이션 또는 앱이 이전에 신뢰된 파일 또는 폴더에 대한 액세스가 허용될 수 있는지에 대한 예를 제공한다. 즉, 시스템은 보안 범위 북마크(security scoped bookmark) 또는 URL(Uniform Resource Locator)과 같은 다른 식별자의 사용을 통해 이전에 신뢰된 파일 또는 폴더에 대한 액세스를 제공할 수 있다. 도 2a 및 도 2b에 도시된 방법들은 사용자에 의해 이전에 선택된 파일 또는 폴더에 대한 액세스를 획득하기 위해 애플리케이션이 애플리케이션 범위 북마크들(application scoped bookmarks)을 사용하는 상황에 관련된다. 도 2a에 도시된 방법들은 앱이 실행되는 동안 파일 또는 폴더의 사용자의 선택을 수신하는 단계(201)에서 개시될 수 있다. 이어서, 이에 응답하여, 단계(203)에서, 앱은 리소스 매니저에게 애플리케이션 범위 북마크를 생성하도록 요청한다. 요청은 리소스 매니저(161)와 같은 신뢰된 리소스 컴포넌트에 대한 API 호출을 통해 수행될 수 있다. 요청은 폴더 또는 파일을 명시할 수 있고, 또한 요청하는 애플리케이션을 명시할 수 있다. 단계(205)에서, 이어서 리소스 매니저는 애플리케이션이 액세스를 가질 권한이 있는지의 여부를 확인하고; 일 실시예에서, 이는 애플리케이션으로부터 파일 디스크립터(file descriptor)를 수신함으로써 수행될 수 있고, 이어서 리소스 매니저는 상기 파일 디스크립터와 단계(201)에서 사용자에 의해 선택된 요청 파일에 대한 파일 디스크립터를 대조한다. 단계(205)에서, 애플리케이션이 액세스를 가질 권한이 있다고 결정되면, 리소스 매니저는 애플리케이션에 알려지지 않은 비밀 키, 및 앱의 서명된 키 또는 서명된 아이덴티티의 조합을 사용하여, 조합 키(combination key)를 생성한다. 이어서, 리소스 매니저는 단계(209)에서 요청된 파일 또는 폴더에 대한 북마크를 결정하거나 수신할 수 있으며, 조합 키는 단계(209)에서 북마크의 해시(hash) 또는 다이제스트(digest)인 암호화된 위치 식별자를 생성하기 위해 해시 함수와 함께 사용될 수 있다. 이어서, 단계(211)에서, 리소스 매니저는 앱에 북마크 및 북마크의 해시를 전송할 수 있고, 이는 이어서 단계(213)에서 북마크 및 북마크의 해시를 저장할 수 있다. 일 실시예에서, 북마크 및 북마크의 해시는 그의 샌드박스 내의 애플리케이션의 패키지 또는 컨테이너 내에서 인코딩될 수 있으므로, 리소스 매니저로부터 허가를 획득할 필요 없이 데이터에 대한 액세스를 갖게 한다. 이어서, 단계(215)에서, 애플리케이션이 종료될 수 있거나 시스템이 종료될 수 있다. 이 시점에서, 제한된 오퍼레이팅 환경이 파일 또는 폴더의 신뢰성을 나타내기 위해 추가의 사용자 상호작용을 요구하지 않고 이전에 선택된 파일 또는 폴더에 대한 액세스를 애플리케이션에게 허용하도록 애플리케이션 범위 북마크를 생성해 놓은 상태이다.
도 2b는 애플리케이션이 재시작될 때 애플리케이션 범위 북마크의 사용을 도시하며, 이때 애플리케이션은 단계(215)에서의 종료후에 다시 실행되고 있다. 단계(221)에서 재시작이 발생하고, 이어서 단계(223)에서, 앱은 그의 샌드박스 외부에서 파일 또는 폴더에 대한 액세스를 요청한다. 예를 들어, 이메일 프로그램은 이전에 사용자 선택된 다운로드 폴더에 다운로드를 저장할 것을 요청할 수 있다. 단계(225)에서, 앱은, API를 통해, 파일 또는 (다운로드 폴더와 같은) 폴더에 대한 액세스를 위해 리소스 매니저를 호출할 수 있고, 앱은 단계(213)에서 저장해 둔 북마크 및 북마크의 해시를 제공한다. 단계(227)에서, 리소스 매니저는 앱으로부터 북마크 및 북마크의 해시를 수신하고, 수신된 북마크 상에 조합 키를 사용하여 제2 키잉된 해시(keyed hash)로 URL을 재인코딩(re-encoding)하고, 앱으로부터 수신된 해시와 재생성된 해시를 비교함으로써 북마크의 해시를 암호학적으로 인증한다. 상기 비교에서 그들이 매칭하는 것으로 나타나면, 이어서 단계(229)에서 리소스 매니저는 요청을 인증하고 파일 또는 폴더에 대한 액세스를 허용한다. 그들이 매칭하지 않으면, 이어서 액세스는 거부된다.
도 3a 및 도 3b는 Final Cut Pro 영화 편집 프로젝트와 같은 집합 또는 프로젝트에서 특정된 파일들에 대한 지속적인 액세스를 허용하기 위한 일 실시예에 따른 방법의 예를 도시한다. 도 3a에 도시된 방법들은 사용자가 애플리케이션을 사용하여 집합 또는 프로젝트를 여는 단계(301)에서 시작할 수 있다. 열기 대화상자가 열기 대화상자를 제공하는 오퍼레이팅 시스템 소프트웨어와 같은 신뢰된 시스템 리소스에 의해 제공된다면, 사용자가 프로젝트를 열기 위해 애플리케이션 내의 열기 대화상자를 사용할 때, 사용자가 열었다는 사실은 프로젝트 또는 집합에 관하여 신뢰성의 표시를 나타낸다. 이어서, 단계(303)에서, 사용자는 프로젝트에 추가될 영화를 선택하거나 열 수 있다. 단계(305)에서 애플리케이션은 리소스 매니저(161)에 영화에 대한 북마크를 생성할 것을 요청하고, 이때 이러한 북마크는 프로젝트로 범위가 정해지며, 이는 프로젝트의 파일 경로명으로 특정될 수 있다. 일 실시예에서, 앱은 프로젝트를 파일명으로 특정하고 리소스 매니저에 파일명을 제공한다. 단계(307)에서, 리소스 매니저는 앱이 프로젝트에 대한 그리고 상기 특정된 영화에 대한 액세스를 가질 권한이 있다는 것을 검증하고, 이어서 단계(309)에서 앱이 권한이 있다면, 리소스 매니저는 프로젝트에 대한 키가 이미 존재하지 않으면 랜덤 키를 생성하고 프로젝트 파일에 키를 첨부할 것이다. 일 실시예에서, 키는 그것이 프로젝트 파일에 첨부되더라도 애플리케이션으로부터 숨겨진다. 이러한 실시예에서, 리소스 매니저는 나머지 파일 블록들로부터 별개의 블록에 랜덤 키를 저장할 것을 파일 시스템에 요구함으로써 또는 본 기술분야에서 알려진 다른 메커니즘을 사용함으로써 랜덤 키를 포함하는 파일의 부분에 대한 액세스를 제한할 수 있다. 단계(311)에서, 리소스 매니저(161)는 프로젝트 파일에 대해 단계(309)에서 생성된 랜덤 키를 사용하여 영화에 대한 북마크의 키잉된 해시 또는 다이제스트를 생성할 수 있다. 이어서, 단계(313)에서, 리소스 매니저는 영화에 대한 북마크를 앱에 반환(return)하고 또한 키잉된 해시/다이제스트를 반환한다. 일 실시예에서, 북마크는 키잉된 해시/다이제스트를 포함할 수 있다. 단계(315)에서, 앱은 재사용을 위해 프로젝트의 파일 또는 디렉토리 내에서 북마크 및 키잉된 해시/다이제스트를 저장하며, 이에 대해서 도 3b를 참조하여 후술한다. 단계(303 내지 315)는 각 영화, 또는 프로젝트 또는 집합에 포함될 다른 객체를 위해 반복된다. 집합 또는 프로젝트는 영화 프로젝트 또는 음악 프로젝트 또는 참조된 항목들이 애플리케이션에 의해 사용된 문서 라이브러리들을 나타내는 다른 애플리케이션들일 수 있다. 단계(315) 이후, 애플리케이션이 중지되거나 종료될 수 있거나 시스템이 종료될 수 있다.
도 3b에 도시된 방법은 도 3a에 도시된 방법에서 생성된 집합 범위 북마크의 사용을 도시한다. 단계(321)에서, 애플리케이션이 재시작되고, 이어서 단계(323)에서 사용자가 애플리케이션 내에서 프로젝트를 연다. 일 실시예에서, 시스템이 프로젝트의 사용자의 선택을 프로젝트 또는 파일 또는 문서들의 집합의 신뢰성의 표시로서 간주할 수 있으므로 프로젝트의 신뢰성을 확인할 필요가 없다. 이어서, 단계(325)에서, 애플리케이션은 프로젝트에 의해 참조된 하나 이상의 북마크를 전송하고, 또한 리소스 매니저(161)에 북마크의 키잉된 해시 및 프로젝트 파일 경로명을 전송한다. 이어서, 단계(327)에서, 리소스 매니저는 단계(309)에서 생성되었던 랜덤 키를 프로젝트 파일로부터 검색(retrieve)할 수 있다. 이어서, 단계(329)에서, 리소스 매니저는 단계(325)에 의해 애플리케이션으로부터 수신된 각 북마크 상에 키잉된 해시를 생성하기 위해 검색된 랜덤 키를 사용할 수 있다. 이어서, 리소스 매니저는 각 북마크의 재산출된 키잉된 해시들과 애플리케이션으로부터 수신된 북마크들의 각 키잉된 해시를 비교하여 매칭이 발생하면 액세스를 제공하고 그렇지 않으면 액세스를 거부할 수 있다. 이 문제에서, 문서들의 이들 집합을 참조하는 집합 또는 프로젝트에서 사용자 선택된 문서들(user-selected documents)에 대한 지속적인 액세스를 허용하는 것이 가능하다.
도 3a 및 도 3b에 도시된 방법들의 경우에, 지속적인 참조들은 문서 또는 문서들의 세트를 나타내는 집합 또는 프로젝트에 대해 특정되고(specific to), 애플리케이션의 구성의 일부는 아니지만 애플리케이션이 열 수 있는 특정 문서의 일부이다.
한편, 도 2a 및 도 2b에 도시된 방법들은 애플리케이션의 실행 동안 파일 또는 폴더의 사용자의 선택을 수신한 애플리케이션에 대해 특정된다. 리소스 매니저 또는 다른 신뢰된 액세스 제어 시스템은, URL일 수 있는 북마크가 조작되지 않았으며 동일한 애플리케이션이 사용자에 의해 선택되었던 이전에 액세스된 파일에 액세스하는 것을 시도하는 것을 검증할 수 있다. 따라서, 애플리케이션 범위 북마크 또는 식별자는 특정 애플리케이션을 위해 특정된다.
상기 명세서에서, 본 발명은 그의 특정 예시적인 실시예들을 참조하여 기술되었다. 다양한 수정들이 후속하는 특허청구범위에서 설명된 바와 같이 본 발명의 더 넓은 기술적 사상 및 범위를 벗어나지 않고 이에 대해 이루어질 수 있다는 점이 명백할 것이다. 명세서 및 도면들은, 그에 따라, 제한적 의미라기 보다는 예시적인 의미로 간주되어야 한다. 실시예들의 다양한 양태들, 실시예들, 구현들 또는 특징들은 개별적으로 또는 임의의 조합으로 사용될 수 있다.
기술된 실시예들은 또한 비일시적 컴퓨터 판독가능 매체 상에 컴퓨터 판독가능 코드로서 구현될 수 있다. 비일시적 컴퓨터 판독가능 매체는 일시적인 신호들을 전파하기 위하여 특정적으로 설계된 매체라기보다는 컴퓨터 시스템에 의해 이후에 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 비일시적 컴퓨터 판독가능 매체의 예들은 플로피 디스크, 플래시 메모리 디바이스, 광학 디스크, CD-ROM, 및 자기-광학 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 자기 또는 광학 카드, 또는 전자 명령어들을 저장하는데 적합한 임의의 유형의 매체를 포함한다. 다양한 실시예에서, 기계-판독가능 저장 매체 상에 저장된 소프트웨어-명령어들은 본 발명을 구현하기 위해 하드웨어 내장형 회로와 조합하여 사용될 수 있다. 따라서, 기법들은 하드웨어 회로 및 소프트웨어 명령어들의 임의의 특정 조합에, 또는 본 명세서에 기술된 하나 이상의 오퍼레이션들을 수행하기 위한 장치와 연관된 데이터 프로세싱 시스템에 의해 실행된 명령어들을 위한 임의의 특정 소스에 한정되지 않는다.

Claims (21)

  1. 하나 이상의 프로세서들에 의해 실행되는 컴퓨터 처리 방법으로서,
    제한된 오퍼레이팅 환경(restricted operating environment)에 의해 관리되는 리소스의 선택을 수신하는 단계;
    상기 하나 이상의 프로세서들을 이용하여, 상기 선택에 응답하여, 상기 리소스에 연관된 위치 식별자(location identifier)를 상기 제한된 오퍼레이팅 환경의 리소스 매니저로부터 요청하는 단계 - 상기 리소스 매니저는 신뢰된 액세스 제어 시스템임 -;
    상기 요청에 응답하여, 북마크(bookmark) 및 다이제스트(digest)를 수신하는 단계 - 상기 다이제스트는 상기 북마크의 암호화 해시(cryptographic hash)이고, 상기 북마크는 저장 디바이스 상의 상기 리소스의 검색(retrieval)을 인에이블하기 위한 것임 -; 및
    상기 제한된 오퍼레이팅 환경과 연관된 저장 디바이스의 부분에 상기 북마크 및 상기 다이제스트를 저장하여 상기 리소스의 신뢰(trust)를 표시하는 단계
    를 포함하는, 컴퓨터 처리 방법.
  2. 제1항에 있어서,
    상기 북마크는 URL이고, 상기 다이제스트는 상기 URL의 제1 키잉된 해시(keyed hash)인, 컴퓨터 처리 방법.
  3. 제2항에 있어서,
    상기 리소스는 파일, 폴더 또는 메모리의 적어도 부분을 포함하는, 컴퓨터 처리 방법.
  4. 제3항에 있어서,
    상기 리소스 매니저는 컴퓨터 오퍼레이팅 시스템의 컴포넌트이며, 상기 리소스는 애플리케이션이 실행되지 않는 동안 상기 리소스가 재명명되거나 이동되더라도 상기 애플리케이션에 의해 검색될 수 있는, 컴퓨터 처리 방법.
  5. 제4항에 있어서,
    선택된 리소스에 대한 액세스를 요청하는 단계;
    상기 북마크 및 상기 다이제스트를 제공하는 단계; 및
    상기 리소스에 액세스하는 단계
    를 더 포함하며,
    상기 리소스가 재명명되거나 이동되더라도 상기 리소스에 대한 액세스는 이용가능한, 컴퓨터 처리 방법.
  6. 제5항에 있어서,
    상기 리소스 매니저는 상기 북마크의 제2 암호화 해시를 생성하고 상기 제2 암호화 해시를 상기 다이제스트와 비교함으로써 상기 북마크를 인증하는, 컴퓨터 처리 방법.
  7. 전자 컴퓨터 시스템 상에서 리소스에 대한 액세스를 관리하기 위한 제한된 오퍼레이팅 환경을 제공하는 시스템으로서, 상기 시스템은,
    명령어들 및 리소스를 저장하는 메모리;
    상기 메모리에 결합된 저장 디바이스; 및
    상기 메모리 및 상기 저장 디바이스에 결합된 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    애플리케이션에 의한 상기 리소스로의 액세스를 관리하기 위한 상기 제한된 오퍼레이팅 환경을 생성하기 위해 상기 메모리에 저장된 명령어들을 실행하고 - 상기 리소스는 상기 제한된 오퍼레이팅 환경의 외부에 있고, 상기 제한된 오퍼레이팅 환경은 리소스 매니저와 결합하고, 상기 리소스 매니저는 상기 리소스에 액세스하는 위치 식별자에 대한 상기 애플리케이션으로부터의 요청을 수신하고, 상기 요청은 상기 리소스의 신뢰성(trustworthiness)을 표시하는 상호작용(interaction)과 연관됨 -,
    상기 리소스의 신뢰를 표시하기 위한 위치 식별자를 생성하고 - 상기 위치 식별자는 북마크 및 다이제스트를 포함함 -,
    상기 위치 식별자를 상기 애플리케이션으로 전송하고,
    상기 위치 식별자는 상기 애플리케이션이 상기 리소스를 검색하도록 인에이블하기 위한 것인, 시스템.
  8. 제7항에 있어서,
    상기 리소스는, 상기 전자 컴퓨터 시스템의 파일, 폴더 또는 메모리의 적어도 부분을 포함하는, 시스템.
  9. 제8항에 있어서,
    상기 리소스 매니저는, 신뢰된 액세스 제어 시스템이고 컴퓨터 오퍼레이팅 시스템의 암호학적으로 인증된 컴포넌트인, 시스템.
  10. 제9항에 있어서,
    상기 북마크는 URL을 포함하고, 상기 다이제스트는 상기 URL의 키잉된 해시인, 시스템.
  11. 제10항에 있어서,
    상기 URL을 제2 키잉된 해시로 재인코딩하고 상기 제2 키잉된 해시를 상기 URL의 키잉된 해시와 비교함으로써, 상기 키잉된 해시는 암호학적으로 생성되고 인증되는, 시스템.
  12. 제7항에 있어서,
    상기 하나 이상의 프로세서들은 또한, 상기 리소스와 연관된 위치에 비밀 키를 저장하고, 상기 리소스와 연관된 상기 위치는 상기 애플리케이션에 의해 액세스가능하지 않은, 시스템.
  13. 프로세싱 시스템(processing system)에 의해 실행될 때, 상기 프로세싱 시스템이 제한된 오퍼레이팅 환경에서 리소스로의 액세스를 관리하는 오퍼레이션들(operations)을 수행하게 하는 명령어들을 제공하는 비일시적 기계-판독가능 저장 매체로서, 상기 오퍼레이션들은,
    상기 리소스와 연관된 위치 식별자를 제공하라는 제1 요청을 수신하는 것 - 상기 리소스는 하나 이상의 선택된 파일들 및 폴더들의 집합을 나타냄 -;
    상기 제1 요청이 상기 리소스에 액세스할 권한이 있다는 것을 검증하는 것;
    랜덤 키(random key)를 생성하고 상기 랜덤 키를 상기 리소스에 첨부하는 것;
    상기 랜덤 키를 사용하여 제1 키잉된 해시를 생성하는 것; 및
    상기 리소스에 연관된 상기 위치 식별자를 반환(returning)하는 것을 포함하고,
    상기 위치 식별자는 URL 및 상기 제1 키잉된 해시를 포함하고,
    상기 위치 식별자는 상기 리소스에 의해 나타나는 선택된 파일들 및 폴더들의 집합으로의 지속적 액세스(persistent access)를 제공하는, 비일시적 기계-판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 리소스에 액세스하라는 제2 요청을 수신하는 것 - 상기 제2 요청은 상기 위치 식별자를 포함함 -;
    상기 리소스로부터 상기 랜덤 키를 검색하는 것;
    상기 랜덤 키를 사용하여 제2 키잉된 해시를 생성하는 것;
    상기 제2 키잉된 해시를 상기 제1 키잉된 해시와 비교하는 것; 및
    상기 비교에 기초하여, 상기 리소스 및 상기 리소스에 의해 나타나는 파일들의 집합으로의 액세스를 제공하는 것
    을 더 포함하는, 비일시적 기계-판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 랜덤 키는 상기 리소스에 대한 액세스를 갖는 애플리케이션에 의해 액세스가능하지 않은, 비일시적 기계-판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 제1 요청이 상기 리소스에 액세스할 권한이 있다는 것을 검증하는 것은, 요청하는 애플리케이션이 상기 리소스에 액세스할 수 있다는 것을 검증하는 것을 포함하는, 비일시적 기계-판독가능 저장 매체.
  17. 제15항에 있어서,
    상기 위치 식별자는, 특정 애플리케이션을 위해 특정되는, 비일시적 기계-판독가능 저장 매체.
  18. 제15항에 있어서,
    상기 제1 키잉된 해시는, 상기 URL 내에 포함되는, 비일시적 기계-판독가능 저장 매체.
  19. 제15항에 있어서,
    상기 위치 식별자는 애플리케이션 세션들(application sessions) 또는 시스템 파워 사이클들(system power cycles) 중 하나 또는 둘 모두에 걸쳐 일관성 있는(consistent) 액세스를 제공하는, 비일시적 기계-판독가능 저장 매체.
  20. 실행될 때, 데이터 프로세싱 시스템(data processing system)이 제1항 내지 제6항 중 어느 한 항에 기재된 방법을 수행하게 하는 명령어들을 제공하는, 비일시적 기계-판독가능 저장 매체.
  21. 삭제
KR1020147019777A 2012-01-17 2013-01-14 하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스 KR101690845B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261632101P 2012-01-17 2012-01-17
US61/632,101 2012-01-17
US13/631,715 US8943550B2 (en) 2010-05-28 2012-09-28 File system access for one or more sandboxed applications
US13/631,715 2012-09-28
PCT/US2013/021486 WO2013109508A1 (en) 2012-01-17 2013-01-14 File system access for one or more sandboxed applications

Publications (2)

Publication Number Publication Date
KR20140105572A KR20140105572A (ko) 2014-09-01
KR101690845B1 true KR101690845B1 (ko) 2016-12-28

Family

ID=48780927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147019777A KR101690845B1 (ko) 2012-01-17 2013-01-14 하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스

Country Status (9)

Country Link
US (2) US8943550B2 (ko)
EP (1) EP2783321B1 (ko)
JP (1) JP5900911B2 (ko)
KR (1) KR101690845B1 (ko)
CN (1) CN104054086B (ko)
AU (1) AU2013209946B2 (ko)
BR (1) BR112014016713B1 (ko)
MX (1) MX2014007792A (ko)
WO (1) WO2013109508A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9412123B2 (en) 2003-07-01 2016-08-09 The 41St Parameter, Inc. Keystroke analysis
US10999298B2 (en) 2004-03-02 2021-05-04 The 41St Parameter, Inc. Method and system for identifying users and detecting fraud by use of the internet
US11301585B2 (en) 2005-12-16 2022-04-12 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US8938671B2 (en) 2005-12-16 2015-01-20 The 41St Parameter, Inc. Methods and apparatus for securely displaying digital images
US8151327B2 (en) 2006-03-31 2012-04-03 The 41St Parameter, Inc. Systems and methods for detection of session tampering and fraud prevention
US9112850B1 (en) 2009-03-25 2015-08-18 The 41St Parameter, Inc. Systems and methods of sharing information through a tag-based consortium
WO2012054646A2 (en) 2010-10-19 2012-04-26 The 41St Parameter, Inc. Variable risk engine
GB2494098B (en) * 2011-04-11 2014-03-26 Bluecava Inc Thick client and thin client integration
US10754913B2 (en) 2011-11-15 2020-08-25 Tapad, Inc. System and method for analyzing user device information
US9633201B1 (en) 2012-03-01 2017-04-25 The 41St Parameter, Inc. Methods and systems for fraud containment
US9521551B2 (en) 2012-03-22 2016-12-13 The 41St Parameter, Inc. Methods and systems for persistent cross-application mobile device identification
US9575787B2 (en) * 2012-05-30 2017-02-21 Red Hat Israel, Ltd. Managing device access using an address hint
EP2880619A1 (en) 2012-08-02 2015-06-10 The 41st Parameter, Inc. Systems and methods for accessing records via derivative locators
WO2014078569A1 (en) 2012-11-14 2014-05-22 The 41St Parameter, Inc. Systems and methods of global identification
US9197446B2 (en) * 2012-12-12 2015-11-24 Google Inc. Address pinning
US9275245B2 (en) 2013-03-15 2016-03-01 Airwatch Llc Data access sharing
US9424421B2 (en) 2013-05-03 2016-08-23 Visa International Service Association Security engine for a secure operating environment
US9927995B2 (en) * 2013-06-19 2018-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and an integrated circuit for executing a trusted application within a trusted runtime environment
US10902327B1 (en) 2013-08-30 2021-01-26 The 41St Parameter, Inc. System and method for device identification and uniqueness
US9563488B2 (en) 2014-05-29 2017-02-07 Apple Inc. Sharing extension points to allow an application to share content via a sharing extension
US10091312B1 (en) 2014-10-14 2018-10-02 The 41St Parameter, Inc. Data structures for intelligently resolving deterministic and probabilistic device identifiers to device profiles and/or groups
US9575740B2 (en) * 2015-01-21 2017-02-21 Samsung Electronics Co., Ltd. Apparatus and method for running multiple instances of a same application in mobile devices
WO2016126668A1 (en) * 2015-02-02 2016-08-11 Indiana University Research And Technology Corporation External resource control of mobile devices
KR101723623B1 (ko) * 2015-09-24 2017-04-06 아주대학교산학협력단 악성 코드 탐지 시스템 및 방법
US10176331B2 (en) 2016-06-10 2019-01-08 Microsoft Technology Licensing, Llc Enhanced metadata to authentically report the provenance of a file
CN106815525B (zh) * 2016-12-13 2020-03-31 北京元心科技有限公司 数据传递方法及装置
KR20180084304A (ko) * 2017-01-16 2018-07-25 삼성전자주식회사 전자 장치 및 전자 장치의 웹 페이지의 바로가기 생성 방법
US11366789B2 (en) * 2017-06-29 2022-06-21 Microsoft Technology Licensing, Llc Content access
US11290466B2 (en) * 2017-08-16 2022-03-29 Cable Television Laboratories, Inc. Systems and methods for network access granting
US11144501B2 (en) * 2018-03-12 2021-10-12 Microsoft Technology Licensing, Llc Locating files using a durable and universal file identifier
US11151273B2 (en) * 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11164206B2 (en) * 2018-11-16 2021-11-02 Comenity Llc Automatically aggregating, evaluating, and providing a contextually relevant offer
CN112182831B (zh) * 2019-08-16 2021-08-17 北京天德科技有限公司 智能投顾产业测试和评估沙盒
CN111339529B (zh) * 2020-03-13 2022-09-30 杭州指令集智能科技有限公司 低代码的业务编排构件运行的管理系统、方法及计算设备
CN112511569B (zh) * 2021-02-07 2021-05-11 杭州筋斗腾云科技有限公司 网络资源访问请求的处理方法、系统及计算机设备
CN114817981A (zh) * 2022-02-14 2022-07-29 统信软件技术有限公司 一种文件访问方法、计算设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0940960A1 (en) 1998-03-02 1999-09-08 Hewlett-Packard Company Authentication between servers
US20050149726A1 (en) * 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications
US20070289006A1 (en) * 2001-03-22 2007-12-13 Novell, Inc. Cross domain authentication and security services using proxies for http access

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551038A (en) 1992-07-16 1996-08-27 International Business Machines Corporation Directory based computer environment
JPH11175512A (ja) * 1997-12-09 1999-07-02 Hitachi Ltd 文書の存在証明に関するプログラム
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
AU2112301A (en) 1999-09-24 2001-04-24 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6535867B1 (en) 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
US6466983B1 (en) 1999-09-30 2002-10-15 Steven Paul Strazza Systems and methods for controlling access to data maintained in a repository
US6836888B1 (en) 2000-03-17 2004-12-28 Lucent Technologies Inc. System for reverse sandboxing
US6691113B1 (en) 2000-09-28 2004-02-10 Curl Corporation Persistent data storage for client computer software programs
GB0025299D0 (en) * 2000-10-13 2000-11-29 Ibm Request tracking for analysis of website navigation
US20020066022A1 (en) 2000-11-29 2002-05-30 Brad Calder System and method for securing an application for execution on a computer
JP4154893B2 (ja) 2002-01-23 2008-09-24 株式会社日立製作所 ネットワークストレージ仮想化方法
US7594111B2 (en) 2002-12-19 2009-09-22 Massachusetts Institute Of Technology Secure execution of a computer program
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7818781B2 (en) 2004-10-01 2010-10-19 Microsoft Corporation Behavior blocking access control
US7725737B2 (en) 2005-10-14 2010-05-25 Check Point Software Technologies, Inc. System and methodology providing secure workspace environment
US7698269B2 (en) 2005-11-29 2010-04-13 Yahoo! Inc. URL shortening and authentication with reverse hash lookup
US20080005472A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
US8272048B2 (en) 2006-08-04 2012-09-18 Apple Inc. Restriction of program process capabilities
US7599920B1 (en) * 2006-10-12 2009-10-06 Google Inc. System and method for enabling website owners to manage crawl rate in a website indexing system
US8010991B2 (en) 2007-01-29 2011-08-30 Cisco Technology, Inc. Policy resolution in an entitlement management system
US20080263193A1 (en) * 2007-04-17 2008-10-23 Chalemin Glen E System and Method for Automatically Providing a Web Resource for a Broken Web Link
US8448255B2 (en) * 2008-07-14 2013-05-21 Apple Inc. Secure file processing
US8285949B2 (en) 2009-06-03 2012-10-09 Apple Inc. Secure software installation
US20100312749A1 (en) 2009-06-04 2010-12-09 Microsoft Corporation Scalable lookup service for distributed database
US20130074158A1 (en) * 2011-09-20 2013-03-21 Nokia Corporation Method and apparatus for domain-based data security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0940960A1 (en) 1998-03-02 1999-09-08 Hewlett-Packard Company Authentication between servers
US20070289006A1 (en) * 2001-03-22 2007-12-13 Novell, Inc. Cross domain authentication and security services using proxies for http access
US20050149726A1 (en) * 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications

Also Published As

Publication number Publication date
CN104054086A (zh) 2014-09-17
BR112014016713A8 (pt) 2017-07-04
US8943550B2 (en) 2015-01-27
JP5900911B2 (ja) 2016-04-06
JP2015503814A (ja) 2015-02-02
BR112014016713B1 (pt) 2022-07-12
MX2014007792A (es) 2014-07-30
US20130185764A1 (en) 2013-07-18
KR20140105572A (ko) 2014-09-01
BR112014016713A2 (pt) 2021-05-25
US9342689B2 (en) 2016-05-17
AU2013209946A1 (en) 2014-07-10
US20150199510A1 (en) 2015-07-16
EP2783321B1 (en) 2021-02-24
AU2013209946B2 (en) 2016-04-28
WO2013109508A1 (en) 2013-07-25
CN104054086B (zh) 2017-04-05
EP2783321A1 (en) 2014-10-01

Similar Documents

Publication Publication Date Title
KR101690845B1 (ko) 하나 이상의 샌드박싱된 애플리케이션에 대한 파일 시스템 액세스
US11902281B2 (en) On-demand security policy activation
US10037199B2 (en) Secure inter-process communication and virtual workspaces on a mobile device
US9836616B2 (en) Creating distinct user spaces through user identifiers
US10033743B2 (en) Methods and systems for a portable data locker
EP1946238B1 (en) Operating system independent data management
US9027084B2 (en) Methods and apparatuses for securely operating shared host devices with portable apparatuses
US8417969B2 (en) Storage volume protection supporting legacy systems
WO2013039649A1 (en) Securing data usage in computing devices
US20170255775A1 (en) Software verification systems with multiple verification paths
CN110555293A (zh) 用于保护数据的方法、装置、电子设备和计算机可读介质
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
KR20220085786A (ko) 랜섬웨어 방지
KR20090035920A (ko) Drm과 보안 usb 메모리를 연동한 비밀자료 유통기한관리방법 및 시스템
KR101844534B1 (ko) 전자 파일에 대한 보안 적용 방법
Hannay et al. Pocket SDV with SDGuardian: A Secure & Forensically Safe Portable Execution Environment
US9742752B1 (en) Data backup and self-service data restoration
KR20140033554A (ko) 저장된 파일을 보호하는 단말기 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant