针对应用的选择性文件访问的制作方法

文档序号:6376583阅读:237来源:国知局
专利名称:针对应用的选择性文件访问的制作方法
针对应用的选择性文件访问背景技术
应用包含运行在计算机系统中的可执行程序代码,并且被实施来施行一项或更多项任务。存在多种类型的编程语言可以被用来形成用于应用的程序代码。存在多种类型的应用以用来施行各种功能,其中包括办公室套装应用、桌面应用、移动应用、web应用等等。 一些应用可以访问存储在其寄主计算机或其他计算机的文件系统中的数据以便在施行其功能时使用。举例来说,字处理应用可以访问文本文件或文档文件以进行编辑。媒体播放器应用可以访问音频文件和/或视频文件以进行播放。数据库应用可以访问数据库的数据库文件中的数据以用于各种用途。
但是由于应用通常可以访问文件系统数据(其中包括与所述应用无关的文件系统数据),因此包含恶意程序代码的应用有机会损害多种文件系统数据。发明内容
提供本概要是为了以简化形式介绍将在下面的详细描述部分中进一步描述的概念的选择。本概要不意图标识出所要求保护的主题内容的关键特征或本质特征,也不意图被使用来限制所要求保护的主题内容的范围。
提供了用于使得应用能够进行选择性文件系统访问的方法、系统和计算机程序产品。应用对于文件系统数据的访问由代理程序服务应对。否则就阻止所述应用对(除了其自身的文件和其自身资源的其他文件之外的)文件系统数据进行访问。代理程序服务从应用接收针对访问文件系统数据的请求,并且如果所请求访问的数据属于所述应用被允许访问的文件类型,则代理程序服务允许所述应用访问所述数据。否则就拒绝或阻止应用对数据的访问。
根据一种方法实现方式,将应用安装在计算设备上。接收与应用相关联的应用清单。应用清单表明所述应用被允许访问的一种或更多种文件类型。所表明的(多种)文件类型被登记在可由代理程序服务访问的位置中。
此外,可以将应用作为应用处理来启动。应用处理被隔离在类似于用户帐户的应用容器中(其中具有用户帐户的用户无法访问其他用户的文件)。应用容器防止应用处理对文件系统数据的直接访问。在代理程序服务处从应用处理接收到与文件系统数据当中的第一数据相关的访问请求。当代理程序服务确定第一数据的文件类型被包括在所登记的(多种)文件类型当中时,允许应用处理对第一数据的访问。
根据一种系统实现方式,提供一种计算设备。所述计算设备包括存储装置和处理逻辑。所述存储装置存储安装在计算设备中的应用以及与应用相关联的应用清单。应用清单表明应用被允许访问的一种或更多种文件类型。处理逻辑包括代理程序服务并且把所述 (多种)文件类型登记在可由代理程序服务(并且不可由应用)访问的位置中。代理程序服务被配置成把应用的访问限制到属于所登记的(多种)文件类型的文件。
所述处理逻辑可以在启用应用时发起应用处理,并且可以将所述应用处理包括到应用容器中。应用容器防止应用处理对文件系统数据的直接访问。代理程序服务从应用处理接收针对文件系统数据当中的第一数据的访问请求。当代理程序服务确定第一数据的文件类型被包括在所登记的(多种)文件类型当中时,处理逻辑允许应用处理对第一数据的访问。
此外,这里还描述了存储用于实现各个实施例(其中包括实现应用对于文件系统数据的选择性访问)和其他实施例的程序代码/逻辑的计算机可读存储介质。
下面参照附图详细描述了本发明的其他特征和优点以及本发明的各个实施例的结构和操作。应当提到的是,本发明不限于这里所描述的具体实施例。这样的实施例仅仅是出于说明性目的而在这里给出的。基于这里所包含的教导,附加的实施例对于相关领域技术人员来说将变得显而易见。


被合并在此并且构成说明书的一部分的

本发明,并且还与描述部分一起用来解释本发明的原理,从而允许相关领域的技术人员制造及使用本发明。
图I示出了根据一个示例性实施例的被配置成管理应用对于文件系统数据的访问的计算设备的方框图。
图2示出了根据一个示例性实施例的计算设备的方框图,其中代理程序服务被包括在fe作系统中。
图3示出了根据一个示例性实施例的提供用于管理应用对文件系统数据的访问的处理的流程图。
图4示出了根据一个示例性实施例的提供用于安装及配置应用以便对文件系统数据进行受控访问的处理的流程图。
图5示出了根据一个示例性实施例的计算设备的方框图,其中应用被安装及配置成对文件系统数据进行受控访问。
图6示出了根据一个示例性实施例的应用清单的方框图。
图7示出了根据一个示例性实施例的用于在应用容器中启动应用的处理的流程图。
图8示出了根据一个示例性实施例的计算设备的方框图,其中在应用容器中启动应用。
图9示出了根据一个示例性实施例的提供用于使用代理程序服务来控制应用处理对文件系统数据的访问的处理的流程图。
图10示出了根据一个示例性实施例的计算设备的方框图,其中代理程序服务控制应用处理对文件系统数据的访问。
图11示出了根据一个示例性实施例的提供用于使用代理程序服务来控制应用处理对文件系统数据的访问的处理的流程图。
图12示出了可以被用来实施本发明的实施例的示例性计算机的方框图。
通过下面结合附图做出的详细描述,本发明的特征和优点将变得更加显而易见, 其中相同的附图标记始终标识相应的元件。在附图中,相同的附图标记通常标示完全相同的、功能上类似的和/或结构上类似的元件。其中元件第一次出现的附图在相应的附图标记中由最左边的(多位)数字标示。
具体实施方式
I、介绍本说明书公开了合并有本发明的特征的一个或更多实施例。所公开的(多个)实施例仅仅例示本发明。本发明的范围不限于所公开的(多个)实施例。本发明由所附权利要求书限定。
在说明书中提到“一个实施例”、“某一实施例”、“一个示例性实施例”等时表明所描述的实施例可以包括特定的特征、结构或特性,但是可能不一定每一个实施例都包括所述特定的特征、结构或特性。此外,这样的措辞不一定指代相同的实施例。此外,当结合一个实施例描述特定的特征、结构或特性时,认为本领域技术人员能够结合其他实施例实施这样的特征、结构或特性而不管是否做出了明确描述。
下面将描述本发明的各个示例性实施例。应当提到的是,在这里所提供的任何章节/子章节标题不意图进行限制。在本文献中通篇描述了各个实施例,并且任何类型的实施例都可以被包括在任何章节/子章节中。
II、示例性实施例各个实施例涉及用于管理/限制/控制应用对文件系统数据的访问的技术。应用可以访问存储在其寄主计算机系统(和/或其他计算机系统)的文件系统中的数据以便施行其功能。举例来说,字处理应用可以访问文本文件或文档文件以进行编辑。媒体播放器应用可以访问音频文件和/或视频文件以进行播放。数据库应用可以访问存储在数据库中的数据以用于各种用途。但是由于应用可以访问文件系统数据(其中可能包括与所述应用无关的文件系统数据),因此包含恶意程序代码的应用有机会盗窃文件系统数据、损害多种文件系统数据或者实施其他不合期望的动作。
各个实施例提供了将应用对文件系统数据的访问限制到所述应用被配置成与之交互的文件系统数据类型的益处。举例来说,开发者或其他人员可以提供关于应用可以访问/与之交互(例如读取、写入、修改、重命名、拷贝、移动等等)的一种或更多种文件类型的指示。可以在把应用安装在计算机系统中时登记(多种)文件类型(例如MP3文件、 Microsoft Word文件等等)。当执行应用并且尝试访问计算机系统的文件系统数据时,如果所述文件系统数据具有所登记的(多种)文件类型当中的某一种文件类型,则允许应用访问所述文件系统数据。如果所访问的文件系统数据不属于所登记的(多种)文件类型,则可以拒绝或阻止对所述文件系统数据的访问。可以允许应用访问基本的应用信息(比如其自身的文件以及其自身资源的其他文件)、对应于所述应用的临时工作目录以及对应于所述应用的设定目录,但可以另外可以拒绝对于敏感文件系统数据的访问,正如这里所描述的那样。
可以在多种环境中实施各个实施例。举例来说,图I示出了根据一个示例性实施例的计算设备102的方框图。如图I中所示,计算设备102包括应用处理104、代理程序服务106、存储装置108和应用120。此外,存储装置108包括多个文件夹IlOa — IlOn0每一个文件夹IlOa - IlOn可以包括一个或更多文件。举例来说,文件夹IIOa被显示为包括文件112a - 112η。文件夹IlOa — IlOn和文件112a — 112η被包括在计算设备102的文件系统的文件系统数据118中。下面进一步描述了计算设备102。
计算设备102可以是任意类型的静止或移动计算设备,其中包括台式计算机(例如个人计算机等等)、移动计算机或计算设备(例如Palm 设备、RIM Blackberry 设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机(例如Apple iPad )、上网本等等)、移动电话(例如蜂窝电话、智能电话,比如Apple iPhone、Google Android 电话、 Microsoft Windows 电话等等)或者其他类型的移动设备。
如前所述,计算设备102包括存储装置108。存储装置108可以包括一种或更多种任意类型的存储机制以便存储文件夹和文件,其中包括磁盘(例如硬盘驱动器中)、光盘(例如光盘驱动器中)、磁带(例如带驱动器中)、诸如RAM设备、ROM设备等的存储器设备以及/ 或者任何其他适当类型的存储介质。存储装置108可以是完全本地的存储装置(如图I中所示),或者可以可选地包括远离计算设备102的存储装置,其中包括可以通过网络访问的存储装置,比如“云”存储装置以及在媒体服务器处可用的存储装置。此外,存储装置108可以包括可移除存储设备。如图I中所示,文件系统数据118被存储在存储装置108中。文件夹IlOa — IlOn是包括在文件系统数据118中的虚拟文件夹,正如相关领域技术人员所熟知的那样。文件夹IlOa — IlOn可以被组织在分层结构和/或任何其他设置中。可以存在任意数目的文件夹110,其中包括数十个、数百个、数千个甚至更多数目的文件夹,并且每一个文件夹110可以包括任意数目的文件。文件112a — 112η是包含数据的计算机文件, 正如相关领域技术人员所熟知的那样。可以存在任意数目的文件112,其中包括数十个、数百个、数千个甚至更多数目的文件。
代理程序服务106包括一个或更多处理(“例如代理程序处理”),所述处理可以在计算设备102中执行(例如由一个或更多处理器执行)。代理程序服务106被配置成把应用的访问限制到所述应用被允许访问的文件系统数据118当中的数据。代理程序服务106的程序代码可以是独立的程序代码,或者可以被包括在计算设备102的其他程序代码中。举例来说,图2示出了根据一个示例性实施例的计算设备102的方框图。如图2中所示,代理程序服务106可以被包括在计算设备102的操作系统202中。可选的是,代理程序服务106 可以为计算设备102提供另外的服务,其中包括限制应用对计算设备102的硬件和/或其他资源的访问。
应用120是在计算设备102中执行/操作的软件应用,并且可以被存储在计算设备102的存储装置(例如存储装置108)中。举例来说,应用120可以是办公室套装应用、桌面应用、移动应用、web应用等等。办公室套装应用包括各种类型的生产力增强应用,比如字处理应用、电子表格应用、演示应用等等。桌面应用包括被配置成操作在(例如台式计算机的)计算机桌面中的各种类型的应用,其中包括一些办公室套装应用、桌面小装置或小工具(通常提供单一目的服务的交互式工具,比如新闻流送、提供当前的天气、显示当前股票报价等等)、web浏览器等等。移动应用包括操作在移动手持式设备中的各种类型的应用(例如“Apps”),所述移动手持式设备比如有智能电话、平板计算机、便携式媒体播放器、个人数字助理(PDA)等等。web应用(其也被称作“web apps”或“webapps”)是可以通过诸如因特网或内联网之类的网络访问的应用,并且可以被寄放在呈现所述应用的web浏览器中。示例性的应用包括社交联网应用、导航辅助应用(例如地图绘制应用、餐馆定位应用、交通应用等等)、游戏应用、财务规划应用等等。
应用120可以被执行来产生一个或更多应用事例或“处理”,比如应用处理104。应用处理104包括应用120的程序代码(指令)及其当前活动。应用处理104在计算设备102 的一个或更多处理器中执行。应用处理104可以包括一个或更多执行线程。当存在多个执行线程时,各个线程可以同时执行程序代码。
在应用处理104的执行期间,应用处理104可能会尝试访问文件系统数据118当中的数据,比如文件112a。根据传统的系统,可能会在几乎没有限制的情况下允许应用处理 104访问文件112a。但是应用处理104可能包括恶意程序代码(例如通过应用120的原始设计、通过被插入到应用120中的病毒代码等等),或者可能按照应用120的用户没有预期到的方式访问文件112a。在任一种情况下,应用处理104都可能由于被允许访问文件112a 而造成损害。
各个实施例有助于通过限制对于文件系统数据的访问而减少由恶意应用代码造成的损害。根据一个实施例,应用处理104可以生成表明所期望访问的文件系统数据118 当中的数据的数据访问114,所述数据在本例中是文件112a。如图I中所示,数据访问114 被代理程序服务106接收到。代理程序服务106被配置成确定文件112a是否属于应用120 被允许访问的文件类型。如果文件112a属于应用120被允许访问的文件类型,则代理程序服务106可以允许应用处理104访问文件112a。在这种情况下,如图I中所示,可以通过代理程序服务106把数据访问114中所请求的数据从存储装置108提供到应用处理104以作为响应数据116,或者响应数据116可以表明应用处理104能够访问所述数据的方式。举例来说,可以在响应数据116中把针对文件或文件夹的句柄传递到应用处理104,以便允许应用处理104访问所述文件或文件夹。否则,如果文件112a属于应用120不被允许访问的文件类型,则代理程序服务106可以拒绝对于文件112a的访问。当不被允许访问时,代理程序服务106可以拒绝应用处理104与文件和文件夹的各种交互,其中包括拒绝应用处理104 针对以下操作的访问读取文件、读取文件夹的内容、写入到文件或文件夹、重命名文件或文件夹、移动文件或文件夹、或者拷贝到第一数据的文件或文件夹之上。
计算设备102可以在多种方式下进行操作以施行其功能。举例来说,图3示出了根据一个示例性实施例的提供用于管理应用对文件系统数据的访问的处理的流程图300。 下面将参照图I描述流程图300。基于下面关于流程图300的讨论,另外的结构和操作实施例对于相关领域技术人员来说将变得显而易见。
流程图300开始于步骤302。在步骤302中,登记对应于应用的可访问文件类型。 举例来说,在一个实施例中,在计算设备102的数据结构(例如注册表)中登记应用120的应用处理被允许访问的一种或更多种文件类型。所述数据结构可以被存储在存储装置108或与计算设备102相关联的其他存储装置中。
在步骤304中,把所述应用的处理的访问限制到所登记的可访问文件类型。举例来说,在一个实施例中,代理程序服务106可以访问包含对应于应用120的所登记的可访问文件类型的数据结构。当代理程序服务106从应用120的应用处理(比如应用处理104)接收到针对数据的请求时,代理程序服务106可以访问所述数据结构以便确定所请求的数据是否属于所述应用处理被允许访问的文件类型。代理程序服务106可以在所述数据属于可允许文件类型的情况下允许应用处理访问所述数据,或者可以在所述数据不属于可允许文件类型的情况下拒绝访问请求。可以按照这种方式限制从应用120形成的任意数目的应用处理的文件系统数据访问,甚至是同时限制。
在各个实施例中,包括代理程序服务106的计算设备102可以按照多种方式施行其功能。在下面的各个子章节中描述了对应于计算设备102、代理程序服务106和流程图 300的多个示例性实施例。举例来说,下一个子章节描述了用于安装被配置成对文件系统数据进行受控访问的应用的示例性实施例。后面的子章节描述了用于启动具有受控文件系统数据访问的应用的示例性实施例,其后一个章节描述了用于为所启动的应用提供对于文件系统数据的受限制访问的示例性实施例。
A、用于安装针对受控文件系统数据访问的应用的示例性实施例根据一个示例性实施例,可以将应用安装在计算设备中,以便具有对于文件系统数据的受控访问。在一个实施例中,作为安装的一部分,允许开发者或其他用户在一个或更多安全位置处登记对应于其应用的可访问文件类型。随后可以由代理程序服务访问所述(多个) 安全位置,以便允许应用访问文件系统数据。但是所述(多个)安全位置无法由应用访问。 按照这种方式,对应于应用的可访问文件类型无法被篡改从而允许应用对文件系统造成损害。
举例来说,图4示出了根据一个示例性实施例的提供用于安装和配置应用以便对文件系统数据进行受控访问的处理的流程图400。流程图400提供了图3中的流程图300 的步骤302的一种示例性实现方式。在一个实施例中,流程图400可以由图I的计算设备 102施行。下面将参照图5描述流程图400。图5示出了根据一个示例性实施例的计算设备102的方框图,其中安装并配置应用以便对文件系统数据进行受控访问。如图5中所示, 计算设备102包括处理逻辑502和存储装置108。处理逻辑502包括应用安装器506、文件系统登记模块508和标识符发生器520。基于下面关于流程图400和图5的计算设备102 的讨论,其他的结构和操作实施例对于相关领域技术人员来说将变得显而易见。
流程图400开始于步骤402。在步骤402中,将应用安装在计算设备中。举例来说, 如图I中所示,可以在计算设备102处接收应用信息512。应用信息512包括定义一项应用 (比如图I的应用120)的所有文件和/或数据。可以从多种来源接收应用信息512,其中包括从与计算设备102相关联的计算机可读存储介质(例如紧致盘只读存储器(CDROM)设备、 软盘、记忆棒(例如通用串行总线(USB)存储设备)等等)接收,通过诸如LAN (局域网)、WAN (广域网)或者诸如因特网(例如基于“云”的服务)的网络组合之类的网络从远程服务接收, 以及/或者从其他来源接收。
如图5中所示,应用安装器506接收应用信息512。应用安装器506被配置成把应用信息512安装在计算设备102的存储装置108中以便安装应用。应用安装器506可以是专有的或者可以买到的应用安装程序,其中包括相关领域技术人员所熟知的被配置成按照这里所描述的那样安装应用的应用安装程序。
如图5中所示,应用安装器506对应用信息512进行处理,以便将应用安装为存储装置108中的应用包510。应用包510包括应用程序代码514。应用程序代码514是定义所安装的应用的功能的可执行代码(可由一个或更多处理器执行)。应用程序代码514可以具有一个或更多文件的形式以及/或者其他形式。应用安装器506被配置成把应用程序代码514安装在计算设备102中。
回到图4,在步骤404中,接收与应用相关联的应用清单,所述应用清单表明所述应用被允许访问的一种或更多种文件类型。举例来说,如图5中所示,应用包510还包括应用清单516。应用清单516是一个对象(例如一个或更多文件)。应用安装器506被配置成把应用清单516存储在计算设备102的存储装置108中。
应用清单516包括关于应用被允许访问的一种或更多种文件类型的指示。此外, 应用清单516还可以可选地包括与应用相关联的其他信息。举例来说,图6示出了根据一个示例性实施例的应用清单516的方框图。如图6中所示,应用清单516包括可访问文件类型信息602、标识信息604以及能力信息606。在其他实施例中,应用清单516可以包括与图6中所示的信息相比的附加和/或替换信息。
可访问文件类型信息602包括关于相关联的应用被允许访问的一种或更多种文件类型的指示。“文件类型”定义并且在各个文件分类之间进行区分,比如通过文件扩展、 文件种类以及/或者其他文件属性或元数据来进行区分。因此,文件类型信息602可以表明能够被用来定义可由应用访问的数据(例如文件、文件夹等等)的一种或更多种文件类型 (通过文件扩展、文件种类以及/或者其他文件属性或元数据来表明)。可以按照多种方式在可访问文件类型信息602中表明文件类型。举例来说,可以在可访问文件类型信息602 中将文件类型表示为单独的文件类型和/或文件类型分组,比如文件类型家族和/或文件类型分类。可以在可访问文件类型信息602中通过文件扩展来表明文件类型,所述文件扩展通常是跟随在文件名中的最后一个句点之后的几个字母数字字符。举例来说,关于各种单独的文件类型,对应于文本文件的文件类型扩展可以是txt”,对应于MPEG (移动画面专家组)视频文件的文件类型扩展可以是mpg”,对应于波形音频文件格式的音频文件的文件类型扩展可以是“.wav”等等。文件类型家族包括(例如通过相应的文件扩展)在一个家族中有关的多种文件类型,比如对应于共同产品的文件类型分组(例如与所述产品的不同版本相关联的不同文件类型)。举例来说,Microsoft Word (字处理应用)文件类型家族可以包括分别与Microsoft Word 2007之前的版本以及与Microsoft Word 2007和后续版本有关的文件类型扩展doc”和docx”。文件类型分类包括通过产品分类有关的多种文件类型,比如音频分类、视频分类、字处理分类、数据库分类等等。举例来说,音乐或音频分类文件类型可以包括与音乐和/或音频相关联的多个文件扩展,比如wav”、“. mp3”、“ · _p_p,,坐坐 .Cl 丄丄丄ο
标识信息604包括对应于应用的标识信息。举例来说,标识信息604可以包括以下各项当中的一项或更多项应用和/或应用包的名称,应用的发布者,应用的体系结构, 资源类型(例如en-us之类的语言类型等等),应用的版本,以及/或者其他标识信息。
能力信息606表明了通过执行应用程序代码514而形成的应用处理被允许和/或不被允许访问的计算设备102的能力。这样的所表明的能力的例子包括表明是否可以访问计算设备102的存储设备(例如内部和/或外部存储设备),表明是否可以访问凭证,表明是否可以访问软件和/或硬件证书,表明是否可以访问输入/输出设备(例如麦克风、web摄像头等等),表明是否可以施行与远离计算设备102的实体的通信等等。能力信息606可选地存在,并且是应用能够访问数据的一种示例性方式。举例来说,一项所表明的能力可以代表对应于代理程序服务106所能允许访问的特定位置(例如图片库)的所有文件类型。
回到图4,在步骤406中,由应用清单表明的一种或更多种文件类型被登记在可由代理程序服务访问的位置中。举例来说,在一个实施例中,如图5中所示,文件类型登记模块508可以读取应用清单516,以便确定应用被允许访问的一种或更多种文件类型(例如在可访问文件类型信息602中所表明)。文件类型登记模块508被配置成通过把关于所述一种或更多种文件类型的指示作为(多种)文件类型518存储在安全存储位置504处来登记所述一种或更多种文件类型。如图5中所示,安全存储位置504可以是存储装置108的存储位置(例如存储区段),或者可替换地,可以处于单独的存储装置中。安全存储位置504被认为是安全的(例如有特权的)是因为所述应用的应用处理无法访问存储在其中的数据。因此,恶意应用无法修改(多种)文件类型518从而允许访问除了在(多种)文件类型518中定义的之外的其他文件类型,从而降低了恶意应用对文件系统数据造成损害的可能性。
此外,如图6中所示,标识符发生器520从应用清单516接收信息,并且可以生成安全性标识符522。安全性标识符522是可以被用来在计算设备102中标识与应用包510 (其中包括为所述应用执行的应用处理)相关联的应用的唯一标识符。安全性标识符522类似于对应于用户帐户的用户标识符,所述用户标识符限制具有第一用户帐户的第一用户访问第二用户的文件。安全性标识符522可以被用来默认地确保应用无法访问文件系统的数据,以及把文件类型和/或能力的集合与应用包相关联。举例来说,安全性标识符522可以被用来关于包括访问控制列表(ACL)的计算设备102中的安全性操作标识应用处理。包括安全性标识符522的计算设备102的ACL可以标识相关联的应用可以访问的计算设备102 的资源。如果安全性标识符522没有被包括在ACL中,则应用无法访问由所述ACL应对其安全性的任何资源。
可以按照任何方式为应用生成安全性标识符(SID)522,其中包括根据专有技术和 /或能够买到的技术来生成。举例来说,可以基于应用包510的包标识符(包标识符SID)来生成安全性标识符522。基于包标识符生成安全性标识符522可以包括基于应用包510的包标识符的所有元素生成安全性标识符,或者仅仅基于所述元素的一个子集(例如包的家族标识符——来自包标识符的名称和发布者)生成安全性标识符。在另一个实施例中,可以作为来自标识信息604的信息的杂散生成安全性标识符522。举例来说,可以作为以下各项当中的一项或更多项的杂散生成安全性标识符522 :发布者和/或应用包510的名称,应用的发布者,应用的体系结构,应用的版本等等。
B、用于启动具有受控文件系统数据访问的应用的示例性实施例根据一个示例性实施例,可以针对在计算设备102处定义并登记了可允许文件类型的应用启动应用处理。在一个实施例中,所述应用处理可以被包括在防止该应用处理访问文件系统数据的应用容器中。
举例来说,图7示出了根据一个示例性实施例的提供用于启动对文件系统数据具有受控访问的应用的处理的流程图700。在一个实施例中,流程图700可以由图I的计算设备102施行。如下参照图8描述流程图700。图8示出了根据一个示例性实施例的计算设备102的方框图,其中启动所安装的应用,并且所得到的应用处理具有对于文件系统数据的受控访问。如图8中所示,计算设备102包括处理逻辑502、存储装置108和存储器810。 处理逻辑502包括应用启动器802,并且应用启动器802包括令牌发生器804。基于下面关于流程图700和图8的计算设备102的讨论,另外的结构和操作实施例对于相关领域技术人员来说将变得显而易见。
流程图700开始于步骤702。在步骤702中,将应用作为应用处理启动。举例来说,如图8中所示,应用启动器802可以被配置成启动应用(比如图I的应用120),从而形成应用处理104。应用启动器802可以被配置成通过多种方式启动应用120从而形成应用处理104,其中包括根据专有技术或者根据相关领域技术人员所知的传统技术来实现。如图8 中所示,应用处理104可以被加载到存储器810中。这样,应用处理104的程序代码可以很容易被执行应用处理104的计算设备102的一个或更多处理器访问。
在步骤704中,应用处理被包括在应用容器中。举例来说,如图8中所示,应用处理104被包括在应用容器806中。应用容器806是用于应用处理104的虚拟容器,其防止应用处理104直接访问文件系统数据。对应于应用的应用容器806类似于对应于用户的用户帐户,其中用户帐户被用来限制用户访问其他用户的信息。按照类似的方式,应用容器806 限制应用访问其他信息。应用处理104可以通过多种方式被“包括”在应用容器806中,比如通过把与应用容器806相关联的安全性标识符应用到对应于应用处理104的令牌,其默认地限制应用处理104对于文件系统的敏感部分的访问。这样的敏感文件系统部分不包括对应于应用处理104自身的基本文件/文件夹,比如应用包510的资源、工作目录以及设定目录。可以适当地设定ACL,从而使得应用处理104可以访问这些基本项目。
举例来说,在一个实施例中,(例如如前所述地)为应用120生成的安全性标识符 522可以与应用容器806相关联,并且被用来定义对应于应用容器806的访问限制。(例如在一个或更多ACL中)对于安全性标识符522定义的可访问资源适用于应用容器806,并因此适用于应用容器806中的应用处理104。举例来说,在一个实施例中,安全性标识符522 无法被包括在与文件系统数据相关联的任何ACL中。这样,应用容器806从而还有应用处理104就不能直接访问文件系统数据。按照这种方式,应用容器806将应用处理104与文件系统数据隔离。相反,根据这里所描述的实施例,通过代理程序服务106限制应用处理104 访问文件系统数据。正如本文中其他地方更加详细地描述的那样,代理程序服务106控制应用处理104可以访问哪些类型的文件系统数据。
如图8中所示,令牌发生器804可以接收与应用容器806相关联的安全性标识符 522,并且可以生成对应于应用处理104的处理令牌812。处理令牌812可以被用来在计算设备102中唯一地标识应用处理104。举例来说,处理令牌812能够将应用处理104与其他类型的应用处理进行区分,以及与对于相同的应用120生成的应用处理104的附加事例进行区分。
令牌发生器804可以被配置成生成处理令牌812以便包括标识应用容器806的安全性标识符522,并且可以包括与应用清单516相关联的其他信息。举例来说,处理令牌812 可以可选地包括从对应于应用120的应用清单516的信息生成的其他安全性标识符,其中包括基于能力信息606生成的一个或更多安全性标识符等等。
应当提到的是,在一个实施例中,处理令牌812不可由应用处理104修改。举例来说,处理令牌812可以被存储在存储器810的安全位置中,存储在安全存储位置504或其他安全存储位置中。这样,应用处理104就无法修改处理令牌812的安全性标识符以便被允许访问本来不可访问的文件系统数据,并从而被防止允许对文件系统造成损害。存储器810 可以包括任意数目的存储器设备(比如随机存取存储器(RAM)设备),并且可以被包括在存储装置108中或者与之分开。
C、用于为所启动的应用提供对于文件系统数据的访问的示例性实施例根据一个示例性实施例,可以为应用处理提供对于文件系统数据的访问。在一个实施例中,应用处理由于被包括在应用容器中而无法直接访问文件系统数据,所述应用容器由于其相关联的安全性标识符而具有受到限制的文件系统访问。相反,通过经由中介(即代理程序服务)访问文件系统数据,允许应用处理间接地访问文件系统数据。
举例来说,图9示出了根据一个示例性实施例的提供用于为应用处理提供对于文件系统数据的受控访问的处理的流程图900。在一个实施例中,流程图900可以由图I的计算设备102施行。如下参照图10来描述流程图900。图10示出了根据一个示例性实施例的计算设备102的方框图,其中所安装的应用先前被启动,并且为所得到的应用处理提供对于文件系统数据的受控访问。如图10中所示,计算设备102包括处理逻辑502和存储装置108。处理逻辑502包括代理程序服务106,代理程序服务106包括条件匹配逻辑1002。 基于下面关于流程图900和图10的计算设备102的讨论,另外的结构和操作实施例对于相关领域技术人员来说将变得显而易见。
流程图900开始于步骤902。在步骤902中,在代理程序服务处从应用处理接收到针对文件系统数据当中的第一数据的访问请求。举例来说,如图10中所示,应用处理104 生成数据访问114,其表明文件系统数据118当中的所期望访问的数据。在一些实施例中, 数据访问114可以表明将要读取、写入或修改的数据。举例来说,在本例中,数据访问114 可以表明将要读取文件112a。数据访问114还可以包括处理令牌812,以便将数据访问114 标识为由应用处理104生成。如图10中所示,数据访问114被代理程序服务106接收到。
在步骤904中,当代理程序服务确定第一数据的文件类型被包括在所登记的一种或更多种文件类型当中时,允许应用处理访问第一数据。代理程序服务106被配置成确定文件112a是否属于应用处理104被允许访问的文件类型。举例来说,如果文件112a具有应用处理104被允许访问的文件类型,则代理程序服务106可以允许应用处理104访问文件112a。否则,如果文件112a具有应用处理104不被允许访问的文件类型,则代理程序服务106可以拒绝应用处理104对文件112a的访问。
在一个实施例中,代理程序服务106可以根据图11施行流程图900。图11示出了提供利用代理程序服务来控制应用处理对文件系统数据的访问的处理的流程图1100。基于下面关于流程图1100的讨论,另外的结构和操作实施例对于相关领域技术人员来说将变得显而易见。
流程图1100开始于步骤1102。在步骤1102中,接收令牌和关于在访问请求中请求的第一数据的指示。举例来说,如前所述,代理程序服务106可以接收数据访问114,其表明文件系统数据118当中的所期望访问的数据并且包括用以标识应用处理104的处理令牌 812。操作从步骤1102继续到步骤1104。
在步骤1104中,确定第一数据的文件类型。举例来说,基于在数据访问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中,确定第一数据的文件类型是否被包括在所登记的(多种)文件类型当中。举例来说,在一个实施例中,代理程序服务106的条件匹配逻辑1002被配置成确定所请求的数据的所确定的文件类型(在步骤1104中确定)是否关于(多种)文件类型518 (在步骤1106中访问)满足条件。举例来说,条件匹配逻辑1002可以确定所请求的数据的所确定的文件类型是否等于包括在(多种)文件类型518当中的文件类型。如果所请求的数据的文件类型没有被包括在所登记的(多种)文件类型当中,则操作从步骤1108继续到步骤 1110。如果所请求的数据的文件类型被包括在所登记的(多种)文件类型当中,则操作从步骤1108继续到步骤1112。
在步骤1110中,拒绝应用处理对第一数据的访问。当确定所请求的数据的文件类型不等于(多种)文件类型518的其中之一时,可以由代理程序服务106拒绝应用处理104 对所请求的数据的访问。举例来说,如果应用处理104正在请求特定数据(例如特定文件等等),则可以阻止应用处理104访问所述特定数据,并且可以由代理程序服务106向应用处理104表明对于数据访问114的拒绝。在另一个实例中,如果应用处理104正在请求关于特定文件夹的内容的指示,则可以通过代理程序服务106使得具有不可访问文件类型的文件夹的文件对于应用处理104不可见。流程图1100的操作在施行了步骤1110之后结束。
在步骤1112中,允许应用访问第一数据。当确定所请求的数据的文件类型等于 (多种)文件类型518的其中之一时,可以通过代理程序服务106准许应用处理104访问所请求的数据,并且可以由代理程序服务106在响应数据116中把所请求的数据提供到应用处理104。应当提到的是,在一个实施例中,可以通过代理程序服务106向应用处理104提供响应数据116,而不是允许应用处理104直接从存储装置108接收响应数据116。这样, 不需要提高应用处理104的安全性/特权级别以使得应用处理104接收响应数据116。流程图1100的操作在施行了步骤1112之后完成。
举例来说,在出于说明性目的提供的一个实例中,应用处理104可以发送数据访问114以便请求文件名/路径为c:/home/user/userfile. doc的文件。代理程序服务106 可以接收数据访问114,所述数据访问114包括所述文件名/路径和对应于应用容器806/ 应用处理104的安全性标识符522。代理程序服务106可以确定该文件名/路径的文件类型是doc”。代理程序服务106可以访问与对应于应用容器806/应用处理104的安全性标识符522相关联的(多种)文件类型518。在该例中,(多种)文件类型518可以包括doc”、docX”、“. txt”和wpd”的文件扩展。条件匹配逻辑1002可以确定对应于所请求的数据的文件类型doc”等于(多种)文件类型518当中的文件扩展。因此,代理程序服务106 可以在响应数据116中向应用处理104提供文件名/路径为c:/home/user/userfile. doc 的文件。
相应地,各个实施例提供了各项特征和益处。举例来说,代理程序服务106为包括在应用容器中的应用处理提供了文件系统抽象。代理程序服务106使用静态声明的文件类型来限制应用处理的数据访问。在安装时,对于代理程序服务106登记所声明的文件类型。(在应用容器中)隔离的应用处理使用安全性标识符来向代理程序服务106传达所述应用处理可以访问文件系统的一些分立部分(例如文档库、可移除存储装置等等)。这样就为应用提供了对于文件系统数据的经过过滤的访问。应当提到的是,可以为计算设备102的每一个用户提供代理程序服务106的事例(从而可以存在多个代理程序服务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)中。所述SoC可以包括集成电路芯片,所述集成电路芯片包括以下各项当中的一项或更多项处理器(例如微控制器、微处理器、数字信号处理器(DSP)等等),存储器,一个或更多通信接口,以及/或者用以施行其功能的其他电路和/或嵌入式固件。
图12描绘出可以在其中实施本发明的实施例的计算机1200的一种示例性实现方式。举例来说,计算设备102可以被实施在与计算机1200类似的计算机系统中,其中包括计算机1200的一项或更多项特征以及/或者替换的特征。计算机1200可以是例如具有传统个人计算机、移动计算机、服务器或工作站形式的通用计算设备,或者计算机1200可以是专用计算设备。这里给出的关于计算机1200的描述是出于说明的目的而提供的,而不意图进行限制。本发明的实施例可以被实施在相关领域技术人员所知的未来类型的计算机系统中。
如图12中所示,计算机1200包括一个或更多处理器1202、系统存储器1204以及将包括系统存储器1204在内的各个系统组件耦合到处理器1202的总线1206。总线1206 代表几种类型的总线结构当中的任意类型中的一种或更多种,其中包括存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或利用多种总线体系结构当中的任一种的局域总线。系统存储器1204包括只读存储器(R0M)1208和随机存取存储器(RAM)1210。基本输入/输出系统1212 (BIOS)被存储在ROM 1208中。
计算机1200还具有以下驱动器当中的一项或更多项用于对硬盘进行读取和写入的硬盘驱动器1214,用于对可移除磁盘1218进行读取或写入的磁盘驱动器1216,以及用于对诸如CD ROM,DVD ROM之类的可移除光盘1222或其他光学介质进行读取或写入的光盘驱动器1220。硬盘驱动器1214、磁盘驱动器1216和光盘驱动器1220分别通过硬盘驱动器接口 1224、磁盘驱动器接口 1226和光学驱动器接口 1228连接到总线1206。各个驱动器及其相关联的计算机可读介质提供对于计算机可读指令、数据结构、程序模块以及用于计算机的其他数据的非易失性存储。虽然描述了硬盘、可移除磁盘和可移除光盘,但是还可以使用其他类型的计算机可读存储介质来存储数据,比如闪存卡、数字视频盘、随机存取存储器 (RAM)、只读存储器(ROM)等等。
可以在硬盘、磁盘、光盘、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和1000的任意步骤)以及/ 或者这里所描述的其他实施例。
用户可以通过键盘1238和指示设备1240之类的输入设备将命令和信息输入到计算机1200中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、碟形卫星信号收发天线、扫描仪等等。这些和其他输入设备常常通过耦合到总线1206的串行端口接口 1242 连接到处理器1202,但是也可以通过其他接口连接,比如并行端口、游戏端口或通用串行总线(USB)连接到处理器1202。
显示设备1244也通过视频适配器1246之类的接口连接到总线1206。除了监视器之外,计算机1200还可以包括其他外围输出设备(未示出),比如扬声器和打印机。
计算机1200通过适配器或网络接口 1250、调制解调器1252或者用于通过网络建立通信的其他装置连接到网络1248 (例如因特网)。调制解调器1252可以是内部的或外部的,其通过串行端口接口 1242连接到总线1206。
这里所使用的术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”被用来广泛地指代以下介质比如与硬盘驱动器1214相关联的硬盘,可移除磁盘1218, 可移除光盘1222,以及诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM) 之类的其他介质等等。这样的计算机可读存储介质与通信介质区分开并且不发生重叠(不包括通信介质)。通信介质通常在诸如载波之类的已调数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。术语“已调数据信号”指的是其一项或更多项特性被设定或改变的信号,所述特性被设定或改变的方式使得将信息编码在所述信号中。作为举例而非限制,通信介质包括诸如声学、RF、红外之类的无线介质和其他无线介质。各个实施例也针对这样的通信介质。
如前所述,计算机程序和模块(其中包括应用程序1232和其他程序模块1234)可以被存储在硬盘、磁盘、光盘、ROM或RAM上。还可以通过网络接口 1250或串行端口接口 1242接收这样的计算机程序。当由应用执行或加载时,所述计算机程序允许计算机1200实施这里所讨论的本发明的实施例的特征。相应地,这样的计算机程序代表计算机1200的控制器。
本发明还涉及包括存储在任何计算机可用介质上的软件的计算机程序产品。当在一个或更多数据处理设备中执行时,这样的软件使得(多个)数据处理设备如这里所描述的那样进行操作。本发明的实施例采用现在或者未来所知的任何计算机可用或计算机可读介质。计算机可读介质的实例包括(但不限于)诸如RAM、硬盘驱动器、软盘、⑶R0M、DVD ROM、 极碟、各种带、磁性存储设备,光学存储设备,MEM,基于纳米技术的存储设备等等之类的各种存储设备。
VI、结论虽然前面描述了本发明的各个实施例,但是应当理解的是,所述实施例仅仅是作为举例给出的而不是进行限制。相关领域技术人员将认识到,在不背离如所附权利要求书所限定的本发明的精神和范围的情况下,可以在其中做出各种形式和细节上的改变。相应地,本发明的广度和范围不应当受到任何前述示例性实施例的限制,而应当只由所附权利要求书及其等效表述限定。
权利要求
1.一种计算设备中的方法(400),其包括将应用安装(402)在计算设备中;接收(404)与应用相关联的应用清单,所述应用清单表明所述应用被允许访问的一种或更多种文件类型;以及把所述一种或更多种文件类型登记(406)在可以由代理程序服务访问的位置中,所述代理程序服务被配置成把所述应用的访问限制到属于所登记的一种或更多种文件类型的文件。
2.权利要求I的方法,其还包括将应用作为应用处理来启动;把应用处理加载到应用容器中,所述应用容器拒绝应用处理直接访问文件系统数据; 在代理程序服务处从应用处理接收与文件系统数据当中的第一数据有关的访问请求;以及当代理程序服务确定第一数据的文件类型被包括在所登记的一种或更多种文件类型当中时,允许应用处理访问第一数据。
3.权利要求2的方法,其中,所述一种或更多种文件类型包括一种或更多种文件扩展、 文件种类或者其他文件属性或元数据,其中所述登记包括在可由代理程序服务访问但是不可由应用处理访问的安全位置处,存储关于用于应用的在应用清单中表明的一种或更多种文件扩展、文件种类或者其他文件属性或元数据的指/Jn ο
4.权利要求3的方法,其中,将应用处理加载到应用容器中的所述步骤包括为应用处理生成包括对应于应用容器的标识符的令牌,所述令牌不可由应用处理修改。
5.权利要求4的方法,其中,接收访问请求的所述步骤包括在代理程序服务处接收所述令牌以及关于在访问请求中请求的第一数据的指示。
6.权利要求5的方法,其中,允许应用处理进行访问的所述步骤包括由代理程序服务根据关于在访问请求中请求的第一数据的指示确定第一数据的文件类型;由代理程序服务在所述安全位置处访问对应于应用的所登记的一种或更多种文件类型;由代理程序服务确定第一数据的文件类型是否被包括在所登记的一种或更多种文件类型当中;以及当确定第一数据的文件类型被包括在所登记的一种或更多种文件类型当中时,由代理程序服务允许应用处理访问第一数据。
7.权利要求6的方法,其中,允许应用处理进行访问的所述步骤包括当确定第一数据的文件类型没有被包括在所登记的一种或更多种文件类型当中时,由代理程序服务拒绝应用处理对第一数据的访问。
8.权利要求7的方法,其中,所述拒绝步骤包括拒绝应用处理针对以下操作的访问读取第一数据的文件、读取第一数据的文件夹的内容、写入到第一数据的文件或文件夹的至少其中之一、重命名第一数据的文件或文件夹、移动第一数据的文件或文件夹、或者拷贝到第一数据的文件或文件夹之上。
9.一种计算设备(102),其包括存储装置(108),其存储安装在计算设备(102)中的应用(120)以及与应用(120)相关联的应用清单(516),所述应用清单(516)表明应用(120)被允许访问的一种或更多种文件类型;以及处理逻辑(502),其包括代理程序服务(106)并且把应用清单(516)所表明的一种或更多种文件类型登记在可由代理程序服务(106)访问的位置(504)中,所述代理程序服务 (106)被配置成把应用(120)的访问限制到属于所登记的一种或更多种文件类型的文件。
10.一种包括其上记录有计算机程序逻辑的计算机可读介质的计算机程序产品,其包括用于使得处理器能够施行权利要求1-8当中的任一条的计算机程序逻辑装置(1234)。
全文摘要
本发明提供了用于允许应用进行选择性文件系统访问的方法、系统和计算机程序产品。将应用安装在计算设备中。接收与应用相关联的应用清单。所述应用清单表明所述应用被允许访问的一种或更多种文件类型。把所表明的(多种)文件类型登记在可以由代理程序服务访问的位置中。将应用作为应用处理来启动。把应用处理隔离在应用容器中。所述应用容器阻止应用处理直接访问文件系统数据。在代理程序服务处从应用处理接收与文件系统数据当中的第一数据有关的访问请求。当代理程序服务确定第一数据的文件类型被包括在所登记的(多种)文件类型当中时,允许应用处理访问第一数据。
文档编号G06F21/56GK102938039SQ20121033118
公开日2013年2月20日 申请日期2012年9月10日 优先权日2011年9月9日
发明者S.格雷厄姆, K.拉哈克里斯南, S.伊斯金, K.M.布兰奇, S.鲍尔, J.黑曾, T.K.比姆, A.金, G.E.R.奎因特罗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1