CN1617099A - 软件产品的应用程序身份 - Google Patents

软件产品的应用程序身份 Download PDF

Info

Publication number
CN1617099A
CN1617099A CN200410088300.6A CN200410088300A CN1617099A CN 1617099 A CN1617099 A CN 1617099A CN 200410088300 A CN200410088300 A CN 200410088300A CN 1617099 A CN1617099 A CN 1617099A
Authority
CN
China
Prior art keywords
identity
application program
application
resource
operating system
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN200410088300.6A
Other languages
English (en)
Inventor
A·D·斯特里特泽尔
J·J·卡瓦兰
T·D·诺南
V·V·苏里克
D·B·普罗伯特
E·李
J·A·莱克托
D·C·杉伯丁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1617099A publication Critical patent/CN1617099A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • G06F21/6281Protecting 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 at program execution time, where the protection is within the operating system
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

通过与每一应用程序关联的应用程序身份由操作系统管理应用程序的安装、执行和移除。本发明的方法向每一应用程序分配应用程序身份,并向与每一应用程序关联的每一资源分配资源身份。该方法联系分配的应用程序身份和资源身份,以启用应用程序及其资源的操纵。

Description

软件产品的应用程序身份
相关申请的参照
本专利要求序号为60/513,941,于2003年10月24日提交的美国临时专利的优先权。与其同时提交的是题为“操作系统资源保护(Operating System ResourceProtection)”的美国非临时专利申请,其代理号为MS#306894.01(5103)(它也要求序号为60/513,941,于2003年10月24日提交的美国临时申请的优先权),其整体内容通过引用结合于此。
技术领域
本发明的实施例涉及计算设备的操作系统领域,尤其涉及由操作系统通过应用程序身份管理应用程序的安装,执行和移除。
背景技术
虽然当前的操作系统在改善其可用性和可靠性方面已经作出惊人的进步,还希望有进一步改进。尤其是关系到应用程序的安装,管理和移除(即卸载)的用户感受仍需要改善。例如,在安装期间应用程序可能不正确地配置系统设置或重写另一应用程序所需要的文件。用户也难以卸载如广告件(ad-ware),侦察件(spy-ware)那样的不希望的应用程序。许多系统的崩溃或停机也能归因于应用程序问题。例如,下列情况能导致应用程序和可能的底层操作系统失败:应用程序的不安全安装、在卸载应用程序时过份的删除和不适当地存储的文件。
在某些当前的操作系统中,新安装的应用程序能用新安装的应用程序低所需要的更老或更新的版本重写共享的动态链接库(DLL)文件。若更老或更新的文件与被重写的文件不兼容,则依赖于被重写的文件的当前安装的应用程序在试图访问被重写的文件时会崩溃。
当前的操作系统缺乏用于标识和关联与安装应用程序相关联的所有文件和系统设置的机制。当需要标识系统正在代表哪一应用程序行动时,操作系统要识别该应用程序。然而,应用程序本身能散布在多个运行时进程、助手实用程序或为该应用程序工作的系统进程中。因而操作系统难以准确地标识运行时对象如哪个应用程序那样工作。
此外,操作系统需要有措施来标识由操作系统本身创建了哪些资源,如文件或系统设置。因此,操作系统OS希望标识哪一运行时对象作为操作系统执行,而不是作为非操作系统执行。如果不标识OS运行时对象,系统难以限限只有OS运行时对象能访问诸如文件等系统对象。
因而,希望一种用于管理应用程序影响的系统和方法,来解决这些和其他缺点的一个或多个。
发明内容
本发明的实施例包括唯一地标识应用程序或其它软件产品及其相关联的对象(如文件),以允许操作系统识别和区分不同的应用程序。在一个实施例中,本发明包括一改善的操作系统,它为应用程序动态地确定和分配身份。每当执行该应用程序时,操作系统持久保存由该操作系统使用的分配的身份。本发明的实施例包括确定或分配应用程序身份的方法,如:(1)由开发者或应用程序开发者使用应用程序清单直接分配、(2)间接身份分配(如通过安装程序)、(3)基于对包括应用程序的文件的评估分配(如“足迹”)、和(4)基于另一应用程序对一个应用程序的扮演分配。
本发明的各种实施例确保应用程序从该系统干净的卸载、防止应用程序访问未授权的服务或执行未授权的行动、虚拟化系统资源以更好地相互隔离各应用程序、启用应用程序对系统的影响回退(如“撤消”文件类型关联)、以及实现文件和系统设置的基于应用程序的影响的跟踪。
本发明的实施例提出一种一般运行时对象管理策略,它允许系统和用户配置自定义解决方案,以在运行时对象的集合上行动,并根据共同的属性关联各实时运行的对象。一个这样的属性包括代表应用程序的运行时对象的集合。
本发明的某些实施例使操作系统能标识自身,并将操作系统身份与其自己的文件,系统设置和其他对象关联。此外,本发明的某些实施例使操作系统能识别哪一运行时对象作为操作系统执行。本发明的其他实施例根据应用程序身份而不是用户身份或除用户身份之外创建安全系统。
按本发明的一方面,一种方法管理计算系统上的多个应用。该方法包括向应用程序分配应用程序身份。分配的应用程序身份将应用程序与其他应用程序区别开来。该方法还包括向与应用程序关联的资源分配资源身份。该方法还包括联系分配的应用程序身份和分配的资源身份。
按本发明的另一方面,一种方法使操作系统能保护与其相关的资源免遭应用程序的修改。该方法包括向应用程序分配身份。该方法还包括接收来自应用程序的对操作系统资源的请求。响应于所接收的请求,该方法还根据身份确定对该应用程序是否存在操作系统资源的特定版本,并若对该应用程序存在该特定版本,则向应用程序提供此特定版本。否则,响应于此确定,该方法生成该特定版本,并向应用程序提供生成的特定版本。
按本发明的又一方面,一个或多个计算机可读介质具有用于管理计算系统上的多个应用的计算机可执行组件。这些组件包括为应用程序分配应用程序身份的创建器组件。分配的应用程序身份将应用程序与另一应用程序区别开来。该组件还包括向与应用程序关联的资源分配资源身份的修订组件,和联系分配的应用程序身份和分配的资源身份的分配组件。
按本发明的再一方面,一种系统通过与多个应用程序的每一个关联的应用程序身份管理多个应用程序。该系统包括具有与其相关联的操作系统资源的操作系统。该系统还包括存储应用程序和与其关联的应用程序身份的存储区。该系统还包括一处理器,它被编程来与操作系统及存储区进行通讯,以接收来自应用程序的对操作系统资源的请求,并响应于所接收的请求,根据应用程序身份将特定版本的操作系统资源提供给应用程序。
按本发明的另一方面,一种计算机可读介质存储代表与软件产品关联的身份上下文的数据结构。该数据结构包括存储标识软件产品的值的应用程序身份字段。该数据结构还包括存储与该软件产品所属的软件产品组关联的值的隔离身份字段。
可选地,本发明还包括各种其他方法和装置。
其他特征将是部分明确的,且部分在后文指出。
附图说明
图1所示是通过从不同源获得关于应用的元数据生成应用程序身份的示例性流程图。
图2所示是隔离身份的示例性框图。
图3所示是应用程序身份和隔离身份的生成的示例性流程图。
图4所示是从应用程序的元数据的组件生成对与应用程序关联的文件或其他资源的身份上下文的示例性框图。
图5所示是在创建新文件期间身份上下文的传播的示例性框图。
图6所示是在进程创建期间身份信息修订的示例性框图。
图7所示是身份信息的修订的示例性流程图。
图8所示是应用程序身份服务的体系结构的示例性框图。
图9所示是可实现本发明的合适计算系统环境的一个示例的框图。
对应的标号表明各图中对应部分。
具体实施方式
在一个实施例中,本发明包括向安装或拟安装在计算设备上的每一应用程序或其它软件产品分配唯一的身份。具体地,本发明包括向应用程序分配应用程序身份,以及向用应用程序创建或与其关联的每一资源分配资源身份。资源包括,但不限于,文件、文件夹、进程、线程、系统设置、命名对象、应用编程接口(API)、特定代码路径、可执行例程库、操作系统属性值和操作系统资源。例如,若干API和代码路径提供发邮件的能力,并且对这些API和代码路径的访问是受限制的。在另一示例中,重起系统的能力是受限制的。资源还包括系统的名字空间(如‘名字’本身),而不只是特定的命名对象。例如,在用名字创建对象之前保留或“霸占(squatting)”名字产生脆弱性和安全问题。
分配的应用程序身份将该应用程序与其它应用程序区别开来。本发明的实施例联系应用程序身份和资源身份,以启用安全操纵、可扩展性和应用程序及其资源与操作系统的集成。应用程序身份和资源身份提供唯一性、一致性和持久性(即不演变的身份)。一般地,应用程序身份和资源身份能由应用清单或其它元数据明确地确定,或能从应用的属性导出。在一个实施例中,应用程序身份与资源身份是相同的。
类似地,本发明标识属于操作系统的资源。操作系统的身份能被明确地保留,或在操作系统清单中或从元数据定义,或在OS安装或执行时导出。
通过标识应用程序及其资源可获得各种利益。例如,标识每一应用程序使用户能撤消对计算设备作出的任何改变,因为由每一应用程序作出的改变(如与计算设备和资源的交互)被持久保存并被记入日志中。此外,标识每一应用程序及其相关联的资源使用户能完全移除(如卸载)应用程序,并撤消由应用程序对计算设备资源作出的任何改变。
在另一示例中,标识在计算设备上安装或拟安装的每一应用程序使操作系统能保护重要资源免受应用安装程序的意外的或恶意的修改。应用程序身份和操作系统身份改善了底层操作系统的一致性和可靠性。本发明还能与诸如只读访问、隔离、虚拟化、变化跟踪,和砂盒(sandboxing)等其他保护策略相组合,以提供进一步的保护。
此处的描述,附图,和示例不限于任何特定操作系统。相反,本发明的实施例能应用到任何类型、型号和配置的操作系统。此外,本发明的实施例不限于此处对分配身份所描述的任何示例性方法。相反,本发明的实施例可应用于唯一地标识应用程序及其关联的资源,并标识操作系统及其关联的资源的任何方法或设计。
确定并储存应用程序身份
首先参考图1,示例性流程图示出对拟在计算设备上安装的应用程序生成应用程序身份的方法。图1示出的方法能由操作系统组件(如创建器组件)或与操作系统无关的组件来执行。例如,能使用身份驱动器提供图1所示的标识服务。驱动器能被配置成扫描二进制文件作为安装过程的一部分,以生成应用程序身份,并还标识哪一二进制文件属于彼此。
图1的流程图示出从各种源提取元数据,源包括,但不限于,在102处的预分配应用程序身份、在104处的与应用程序关联的清单、和在106处的用于安装应用程序的安装程序。在108,该方法提取元数据以确定应用程序身份。虽然图1以特定顺序示出源的分析,其他顺序也在本发明的范围中。
对于预分配应用程序身份的实施例,操作系统被配置成扫描应用程序的配置包(deployment package)。然后从此扫描(如通过使用散列)生成唯一的签名。该唯一的签名用于建立与预分配应用程序身份的链接。在一个实施例中,散列包括足够强的散列,反映出任意两个文件的散列创建同一签名是不太可能的。
在某些实施例中,应用程序身份由应用开发者创建并存储在应用程序清单中。在安装程序时,此清单伴随着应用程序。该方法通过查找并提取对应用程序特定的信息从清单(包括在软件分发包中)确定应用程序身份。本发明提取并储存元数据以确定拟安装的应用程序的应用程序身份。在一个示例中,通过散列名字和PKH字段从强名(strong name)生成应用程序身份。在该实施例中,清单是应用程序身份的声明性源。
若不存在来自这些源的元数据,本发明的实施例通过生成非声明性应用程序身份来标识应用程序。若应用程序不具有分配的应用程序身份(如应用程序没有清单或其它预定义机制),则在安装过程开始时,该方法在110生成应用程序身份信息(包括在112生成应用程序身份标签)。这能通过从安装包查找和提取有关应用程序的具体信息(如销售商、产品名称、产品版本和模块校验和)来实现。例如,具有若干不同应用程序的应用程序套件能从单个安装程序安装。安装程序能用应用到从单个程序安装的所有程序的单个应用程序身份来配置。在一个具体的示例中,商业产品套件可包括电子邮件程序和文字处理程序,但安装程序能被配置成向每一拟安装的应用程序应用同一应用程序身份,因为两个程序均来自同一应用程序套件。在另一实施例中,安装程序从软件产品足迹生成可比较的身份信息。例如,同一应用的不同版本具有不同的足迹,导致不同的应用程序身份。在又一示例中,设置文件(如setup.ini)可以是软件产品配置包的一部分。setup.ini文件包括要执行的安装引导程序组件(如setup.exe)的信息。在setup.ini的特定段(如,Startup)中的如App Name(应用程序名)的属性可包括产品名称。在另一示例中,文件版本信息资源可包括诸如CompanyName(公司名称)和ProductName(产品名称)等条目。这些条目的值用作产品销售商和产品名称属性值。用诸如GetFileVersionInfo()和VerQueryValue()等函数来提取信息。在应用程序身份数据结构存储16字节的示例中,前半结构存储从标识的销售商名称和产品名称生成的散列值。
在114,存储(如持久储存)确定并生成的身份信息,以供(如由底层操作系统)将来使用。
确定应用程序的组件
应用程序包括被设计成完成一个或多个特定任务或功能的计算机程序或软件片段。如用户所理解的应用程序实际上是各组件的集合,组件包括但不限于,可执行模块、动态库、资源和辅助文件,它们在逻辑上或功能上组合以完成一组特定任务。组件能明确或隐含地绑定在一起来形成应用程序。应用程序的某些组件能具有很牢固的相互依赖性。某些应用组件能与其它应用程序共享。应用程序能具有在称为“绑定”的进程期间从其它模块导入的例程。例如,在可移植的可执行文件格式中,导入段定义例程、模块、变量和其他符号,它们应当由加载程序定位和链接以创建应用程序。在另一示例中,对由应用程序使用的所有外部汇编码的引用在包括在汇编码动态链接库(DLL)或外部提供来服务多个DLL的清单中列出。
隐含的依赖性通常不由文件格式内的任何数据结构控制。一个模块能依赖于从其它模块输出的符号,但绑定发生在主模块动态加载其它模块的运行时。例如,主模块请求对象实例的创建,并请求对提供对该对象的实现的模块的引用。在另一实例中,组件能依赖于存储在诸如位图、图标、视频和声音等非可执行文件中的数据。
本发明的实施例包括用于标识明确和隐含的模块依赖性的方法,使能以各种方法标识应用程序。通常,形成应用程序的组件由应用程序销售商一起组合到一个配置包中。该方法包括使用配置包来跟踪安装过程中创建的文件和储存的系统设置,以标识属于特定的应用程序的文件。该方法向由该应用创建的每一文件分配身份。如图4中所示,该身份与应用程序的应用程序身份相关联。
隔离(isolation)身份
在某些实施例中,按照本发明,除了应用程序身份外,操作系统组件(如组合组件)向应用程序分配隔离身份。虽然隔离身份仅与此应用相关联,然而隔离身份也能与具有与其关联的另一应用程序身份的另一应用程序相关联。隔离身份可用于逻辑上组合具有不同应用程序身份的应用程序。一般而言,应用程序能具有共同的上下文(如由特定用户安装)。例如,若来自同一应用套件的两个应用程序具有不同的应用程序身份,操作系统为这两个应用程序分配同一隔离身份。为生成应用程序身份所汇集的某些或所有信息能用于根据模拟特征将诸应用程序组合到隔离身份中。例如,本发明的实施例能使用销售商名称、产品名称和/或模块的二进制内容的签名来生成隔离身份。
一般而言,通过获取模块元数据或其他属性来生成隔离身份。根据模块和功能指定的类型,存在各种方法,令模块销售商(如开发商)将元数据与模块相关联。元数据可以是表示模块的物理文件的一部分,或储存在单独的一个或多个文件中。
分配给特定隔离身份的应用程序创建虚拟程序组。在虚拟程序组中的所有应用程序接收操作系统的等效虚拟化视图(如对系统资源的同一级别的访问)。即,具有相同隔离身份的不同应用程序共享系统的同一个虚拟化视图。在同一应用程序的不同版本被分配不同应用程序身份的示例中,不同版本能被分配同一隔离身份,因为不同版本接收对系统资源的等效访问。
操作系统通过应用程序身份和/或隔离身份提供对其资源的访问控制。例如,操作系统能维护同一文件的多个副本和/或版本(如虚拟副本),它们对于一个应用程序有不同的访问权限。操作系统动态地虚拟化由具有对写访问的特定隔离身份的应用程序请求的文件。在一个实施例中,来自不同分销商的所有产品和来自同一分销商的不同产品具有不同的虚拟化视图,而来自同一销售商的同一产品的所有版本分享同一虚拟化视图。可以根据销售商名称和产品名称属性的不区分大小写的字符串值来比较销售商名称和产品名称属性。
接着参考图2,示例性框图示出了隔离身份的使用。在图2中,具有应用程序身份ID1的应用程序和具有应用程序身份ID2的应用程序具有相同的隔离身份IsoID1。具有应用程序身份的ID3的应用程序具有隔离身份IsoID2。操作系统202维护文件A的两个副本:用于由具有IsoID1的应用程序(如应用程序ID1和ID2)进行写访问的文件A的副本204,和用于由具有IsoID2的应用程序(如应用程序ID3)进行写访问的文件A的副本206。
在操作中,按本发明的一个实施例的操作系统202的组件(如虚拟化组件)接收来自应用程序ID1对文件A的请求。在一个实施例中,请求包括分配的身份ID1和IsoID1。在其它实施例中,操作系统202推导分配的ID1和IsoID1,或查询应用程序ID1以寻找分配的身份ID1和IsoID1。响应于接收的请求,操作系统202根据接收的身份判定,对该应用程序是否存在操作系统资源的特定版本。在此情况,对身份IsoID1存在文件A的副本204。操作系统202向应用程序ID1提供对IsoID1存在的文件A的副本204。若对IsoID1的文件A的副本204不存在,则操作系统202从原始的文件A生成副本,并将生成的副本提供给应用程序ID1。
在运行时生成应用程序身份的隔离身份
参考图3,流程图示出用于在运行时确定模块的应用程序身份和隔离身份的示例性方法。在一个实施例中,操作系统或客户机服务器运行时进程执行图3中示出的功能。例如,父进程通过调用如CreateProcessl()的函数繁殖子进程。若存在与子进程关联的模块的应用程序身份和隔离身份,则该方法从身份存储中加载身份,并向进程分配身份以及其他运行时数据。若该身份不存在,则该方法执行各种操作来确定和分配身份。例如,该方法查询清单,且若清单包含身份,则从清单加载身份。该方法也能查询应用程序兼容性数据和安装程序数据,以获取关于该模块的信息。该方法还能从模块提取版本信息或计算校验和,以确定应用程序身份和隔离身份。方法储存所确定的身份以供将来使用(如作为全局唯一的16字节数据结构)。
能组合应用程序身份和隔离身份以形成与应用程序或其中的模块关联的身份上下文。
应用成分身份数据结构
模块或组件的身份标签持久保存应用的身份上下文。身份上下文也包括一个或多个标志,以存储如与生成应用程序身份的隔离身份的方法相关联的属性那样的附加信息。例如,标志能包括安装程序位,它表明用于生成应用程序身份和隔离身份的元数据是从如已知安装程序等标识的模块中提取的。
接着参考图4,示例性框图示出与应用程序关联的文件的身份标签的结构和生成。本发明的实施例包括使用与应用程序关联的身份上下文来对由应用程序创建或修改的每一文件或其它资源创建身份标签的方法。身份上下文使用内核标签服务持久保存在存储中。例如,身份上下文能持久保存在文件流或文件属性中。
在一个实施例中,文件或其它组件的身份标签包括在创建文件期间(如CreateFile())形成的创建器上下文,和在进程创建期间(如CreateProcess())形成的修订的上下文。在其中精心取得或修订身份的文件的进程创建之前,文件标签能仅具有创建器上下文。
接着参考图5,示例性框图示出在文件创建期间身份上下文的传播。在图5的示例中,进程1创建文件A。来自进程1的身份的修订的ID上下文形成身份标签文件A的创建器ID上下文部分,而文件A的修订的ID上下文仍然为空。
在进程创建期间修订身份上下文
接着参考图6,框图示出在模块的进程创建期间对如文件A等模块精心制作身份上下文,以创建修订的身份上下文。例如,当用户执行模块时,本发明的实施例判定,是否存在与该模块相关联的创建器身份上下文。若存在创建器身份上下文,则精心制作该身份上下文,以创建修订的上下文,并将其持久保存在标签中。修订的身份上下文与关于如由操作系统储存的关于模块的运行时数据相关联。
若对该模块身份标签不存在,则本发明的实施例确定身份,并形成创建器上下文和修订的上下文。创建的身份上下文被持久保存在文件的标签中,以供将来执行该模块所用。
修订身份上下文包括使用启发式算法并用应用程序身份的预填充库(如继承的身份上下文)来校验签名。此外,精心制作的方法包括分析父进程的修订的上下文、该模块(如文件A)的创建器上下文和模块本身(如文件A),以生成该模块的修订的上下文。在一个例子中,若该模块不具有声明性身份,则该模块的创建器上下文被复制到修订的上下文。在另一示例中,若模块具有声明性身份,则从模块或元数据导出修订的上下文的值。
在可选实施例中,一般的系统实用程序不需身份地执行,但从它加载的第一非系统库中导出身份。
接着参考图7,示例性流程图示出在进程创建期间身份信息的修订。本发明的实施例包括用于修订身份上下文的组件(如修改组件),和将修订的身份上下文与应用程序身份相联系的组件(如分配组件)。在一个实施例中,图7示出的方法由单个操作系统组件执行。该方法包括获取在702执行的模块和704的父进程的身份上下文。若在706模块具有修订的身份上下文,则在708对该进程返回该修订的身份上下文。若在706该模块不具有修订的身份上下文,但在710对该模块存在声明性身份(如清单),则在712,该方法从声明性身份形成该模块的身份上下文的修订的上下文。若在710不存在声明性身份,但在714该模块是已知的安装程序,则在726,该方法从模块元数据形成修订的上下文。若在714,该模块不是已知的安装程序,但在716是已知的共享安装程序引擎,则在718该方法判断,该身份上下文是否应当从启动环境导出该身份上下文。若在718,应当从启动环境导出该身份上下文,则该方法在720从进程启动环境(如在命令行中引用的文件)形成修订的上下文。若在718,不需要从启动环境导出该身份上下文,则在722,该方法判断父进程身份上下文是否与系统身份上下文相同。若在722,父进程身份上下文不同于系统身份上下文,则在724,该方法将父进程上下文复制到该模块的身份上下文。若在722,父进程身份上下文与系统身份上下文相同,则在726,该方法从模块元数据形成修订的上下文。
若在716,该模块不是已知的共享安装程序引擎,但在728,该模块的身份上下文具有“由安装程序创建”的标志,则在730,该方法从创建器上下文形成修订的上下文。若在728,模块的创建器身份上下文不具有“由安装程序创建”的标志,则在726,该方法从该模块的元数据形成修订的上下文。在732,该方法返回新进程的修订的身份上下文。
在一个实施例中,可对模块的分配的身份上下文加标签,用于重分配。在模块上创建进程的随后的尝试提示本发明的实施例生成并分配新的身份。在另一实施例中,信息被持久保存,以启用文件/进程创建层次的逆向工程和灾难恢复。这类信息可包括每一模块及其身份标签的系统范围的高速缓存。在又一实施例中,用每一模块的身份上下文数据自动生成和更新清单。
身份上下文的扮演
在某些情况下,允许一个应用程序临时地扮演另一应用是有用的。例如,能希望使基于服务器的安装程序临时扮演驻留在客户机的安装程序的应用程序身份,使得安装的应用程序看来已从客户机上安装。使用扮演的应用程序身份允许线程或进程用另一应用程序的身份上下文执行。本发明的实施例可被配置成提供运行时服务(如扮演组件),以便将应用程序身份从一个应用程序迁移到另一应用程序。运行时服务使应用程序能获取另一应用程序的身份,用于代表一个应用完成工作,在完成工作之后恢复原始身份。能实现访问控制,使得只有被选择的应用程序能扮演其它应用程序。例如,对照目标进程的安全描述符或令牌来检查请求者的权限。
本发明的实施例还提供隐含的扮演。对隐含的扮演,系统根据关于进程模块的其它信息忽略从身份标签获得的身份上下文,并分配不同的上下文。例如,父进程例示本地服务器上下文中的对象。为服务器线程分配与启动对象例示的父进程相同的身份上下文。明确扮演的示例包括,若其它进程是已知的共享安装程序引擎,则为另一进程分配父“引导程序”进程的身份。
应用程序的安全身份
本发明的实施例通过将权限与应用程序的身份及运行该应用程序的用户的身份相关联,向应用授予安全权限。可通过将应用程序专用安全ID(APP-SID)添加到与代表该应用程序执行的进程和服务相关联的安全令牌,将应用程序专用安全权限与运行的应用程序相关联。与操作系统对象(包括但不限于,文件、端口、存储器、进程、线程和系统服务)相关联的访问控制列表(ACL)能包括关于APP-SID的权限及用户的安全标识符。
使用本发明,在决定授予访问权限时,在本发明的安全监控中的访问检查考虑多个SID。在以前的系统中,只有单个SID属于用户。APP-SID引入至少一个新SID来对照由ACL授予的访问权限进行计算。而且在某些实施例中,访问请求能具有一个以上与该请求关联的APP-SID。
典型的安全监控中的APP-SID的实施例以如由ACL本身指定的若干方式之一解释多个SID:按所有给出的SID的特权的逻辑交(如最少共同的)授予访问权限,或按SID的访问权限的逻辑并授予访问权限。
当用户具有对一个对象的访问,但不希望将该访问权限授予应用程序时,发生计算SID的逻辑交。另外,当应用程序具有对一个对象的访问但不想将访问权限授予用户时,除非用户(或所有其它应用程序)也具有此访问,,发生计算SID的逻辑交。逻辑交的一个使用限制了从网络下载的应用的访问,使得它仅具有对用户能访问的某些文件的访问。
按照逻辑并的解释授予访问权限允许应用程序获得用户可能不拥有的附加访问。在一个这样的使用中,用户可能不具有对系统服务的访问来改变系统时钟中的日期。但用户能具有对具有的确允许改变日期的APP-SID的服务的访问。其优点在于可访问的服务比对用于改变日期的底层服务提供了更有限的功能,如只允许落入有限范围中的日期改变。APP-SID允许写出那样的中间服务。
某些实施例使用访问检查的其它组合,如在访问控制列表中考虑DENY(拒绝)访问控制条目(ACE),以便即使通过逻辑并计算了GRANT(授予)访问,也拒绝访问。其它实施例能使用与APP-SID关联的GRANY/DENY ACE不同地处理应用程序和用户SID,来授予或拒绝对关于对象的用户的SID的附加特权。
在另一实施例中,也能使用应用程序身份将广义的特权(如能力)与应用程序相关联。能力不同于基于ACL的安全性,不对照与对象关联的访问列表检查能力,而相反明确用在关键系统路径中的代码来检查能力。例如,能力(如发送邮件)能与应用程序关联。不存在与发送邮件关联的特定对象,但存在能用于发送邮件的多个代码路径。每一代码路径在准许应用程序执行代码路径之前检查该应用程序发送邮件的特权。
基于其应用程序身份服务应用程序
应用程序身份和隔离身份提供管理操作系统向在该系统上安装的应用程序提供服务的方式的框架。这些服务能根据应用程序身份或隔离身份提供。本发明的实施例使用应用程序身份和/或隔离身份的存储系统以及在运行时提供对身份信息的访问的应用编程接口(API)。根据该实现,服务提供者能获得拟得到服务的应用程序的身份,而不管在应用进程中执行此行动的运行时状态(即不论该应用是否在运行),或属于该应用程序的文件或资源组。
接着讨论此处描述的特征的某些潜在好处。虽然存在这些潜在的好处,然而实际的实现和特定特征的选择将决定,哪些优点(若有的话)与特定的实现关联。软件应用程序身份允许系统将应用程序识别成一个实体,并向其提供服务。确定和分配非声明性身份使操作系统能自动识别已安装或拟安装在该系统上的每一应用。软件配置包的精确和可靠的标识对与该包关联的应用程序的身份的早期检测和填充(population)是重要的。向应用程序提供服务的概念将软件管理过程从每一个都具有各自活动的不同的应用程序的服务扩展和推广到从操作系统对所加载的软件的共同的活动组。在应用程序身份框架的范围内,每一应用程序具有其自己的标识信息。存在一类由一个应用程序代表另一应用程序执行的任务。最典型的例子是管理和维护。本发明的实施例允许管理工具和实用程序扮演服务应用程序。
一般运行时对象管理
组标记容件对象,它包含如进程、线程和其它组的运行时实体成员。一个组的成员共享内在的属性,如属于一应用程序的所有运行时对象、登录会话或由某些用户定义的规则。操作系统能为对一个组可用的每一个内在属性定义标准组类型,并允许用户和应用程序定义自定义组类型。一个运行时对象能属于多个组,且能获得运行时对象的组成员资格的列表。
一个组还能包含其他组。例如,产品的一个应用程序套件能对每一产品定义组,并创建代表该应用程序套件的组,它包含每一产品组。由应用程序套件用于装入每一产品的实用程序进程可以是该应用程序套件组的直接成员,但不必是各个产品组的直接成员。
组允许在所有成员上的集体活动,如挂起、终止、控制/核查资源消耗、虚拟化资源、查询成员资格、添加/移除成员、查询/设置内在属性、查询/设置类型等。操作系统和其他组件能定义在一个组上采取的其它活动。
组允许继承属性,其中,由父对象创建的任一运行时对象自动将父对象的组与启用的继承联合起来。另一继承属性允许组的成员资格跨工作项目期间的客户机一服务器模型的通讯网络传播。作为解释,客户机程序进程联系服务器进程以完成工作项目。然后,接收和处理请求的服务器线程临时地加入客户机上下文的继承组,直至工作完成。
组中的每一成员具有该成员如何加入该组的标记。例如,标记包括子创建继承、工作项目继承或明确的成员资格。子创建继承代表在父对象创建子对象时由于继承属性而加入该组的成员。工作项目继承意味着该运行时对象正在代表另一的运行时对象执行工作。明确的成员资格表明,用户或程序手动地将运行时对象添加到该组。特别指明的组类型为它的特定需求指定自定义标记。
操作系统也能通过ACL控制组的安全性,使得只有合适的实体能在组上执行访问。
使用组的应用程序运行时标识
组提供一种方便的方法来标识属于该应用程序的所有运行时对象和代表该应用程序执行工作的运行时对象。系统创建应用程序组类型,并将内在属性设置成应用程序身份值。
当装入应用程序时,操作系统对该应用程序映象检索应用程序身份,并打开或创建具有作为内部属性的应用程序身份的应用程序组。操作系统将诸如进程对象等所新创建的运行时对象添加到该应用程序组。应用程序组在此情况能具有专门的标记,以指示通过应用的装入加入到该组的成员。新的运行时对象适当地继承其父对象的组。
需要判断哪些运行时对象属于应用程序的组件用目标应用程序的身份打开该应用程序组,并查询其成员。调用者能选择在它们的标记之间区分成员:继承的或明确的。相反,组件能确定,运行时对象作为哪一应用在运行。调用者查询运行时对象组的成员资格,并按应用程序组的类型过滤。组件还能通过加入标记进一步区分组成员资格。
对应用程序身份标识应用程序的文件
标识属于应用程序的文件起着重要的作用,因为应用程序通常从诸如可执行码、动态连接库(dll)和资源等装入其特定的计算机可执行指令。为了在该应用程序不声明哪些文件属于它时标识应用的文件,操作系统跟踪由应用程序执行的文件创建,并将那些文件与该应用程序相关联。
发现应用程序的文件的一个方法涉及用文件系统过滤器驱动程序监控应用文件的创建。例如,当应用程序安装进程开始时,操作系统确定该应用程序的合适的应用程序身份,并将该进程添加到关联的应用程序组。当该应用程序组的任何运行时对象成员创建文件时,操作系统将该文件与该应用程序关联,使得从该文件装入的后续运行时对象也加入该应用程序组。
本发明区分由应用程序创建的用户文件和由应用程序创建的应用程序文件。作为说明,文字处理应用程序安装执行所需的应用程序文件。然而,同一文字处理应用程序代表用户创建文档文件。操作系统能提供诸如备份等服务,其中用户文档文件应当得到备份,但应用程序文件则不需要。相反,用户可希望由如应用程序卸载或应用程序资源虚拟化等操作系统服务来跳过他们的用户文档文件。
最终,应用程序最佳地知道代表用户执行了哪些文件创建。因此,应用程序能对系统标记,特定的文件创建是对用户文件的。每一其他文件创建被处理成应用程序文件。
没有应用程序的合作,操作系统能通过监控应用程序安装和/或更新被操作系统处理成应用程序文件的运行时对象,来试图区分用户文件和应用程序文件。由应用程序执行的其它文件创建被处理成用户文件。可能的其它标识元数据包括但不限于,文件扩展名、代码模块标题的存在和文件系统路径。
标识系统组件和关联的资源
通常,组件需要判断,特定的运行时对象是否属于操作系统,以及哪些资源由操作系统创建。例如,操作系统具有特定的资源,它们限于由操作系统组件访问。应用不应当能访问那些资源。
为确定属于操作系统的资源,操作系统能在清单中明确地声明其资源的所有权、用属于操作系统的资源的标识信息预填写相关的数据库、直接签署其资源、将其资源存入受保护的位置、或监控由操作系统安装程序执行的资源创建。监控操作系统安装程序的其它技术也在考虑之列。
由于操作系统的应用程序身份可授予比应用程序所获得的更多的访问权限,因此操作系统应用程序的身份是受保护的。在一个实施例中,用于标记操作系统的应用程序身份被保留,并限于仅由有特权的操作系统组件分配。
操作系统能希望进一步区分操作系统的各组件。此粒度允许操作系统保护各个组件免遭其它操作系统的侵犯。
基于能力的安全性
通过拥有应用程序身份并识别哪些文件属于该应用程序,系统试图根据应用程序身份保护对象。除了用户身份外,系统能利用应用程序身份保护对象。
例如,应用程序能决定,它希望将对其临时文件的访问限于其本身。因此,该应用程序在该文件上设置安全性,以只允许该应用程序独占访问该文件。当不同的应用程序试图打开原始应用程序的临时文件时,系统拒绝此请求。
在另一示例中,财政应用程序能决定,对用户的财政文档的访问应仅限于该用户并限于该应用。以此方式,在用户环境中运行的病毒程序缺乏对用户的财政文档的访问。若其他财政应用程序需要访问该用户的财政文档,原始的财政应用程序能明确地将访问权限授予特定的应用程序或财政应用程序身份的组。
在又一示例中,系统允许用户和应用发布者确定该应用能执行的行动(如访问用户的个人文档或访问网络)。监控或执行这些行动的系统组件检查,该应用程序是否被授予对该能力的访问权限。若应用程序试图执行它所缺乏访问权限的行动,则系统恰当地作出响应。系统能拒绝尝试的行动或通知尝试的用户,并确认是否应向该应用程序授予对该能力的访问权限。
在一个实施例中,用户能确定应当信任哪一应用程序发布商规定应用程序的能力。因此,恶意的程序看来不具有可信的应用程序发布商,因此用户由于不可信或未知的应用程序发布商而拒绝某些应用程序的行动请求。
本发明的系统试图超过用户级别的粒度(如每ACL)以将现有的安全系统扩展到本发明的系统所实施的应用程序行动的用户更易理解的系统。
示例性体系结构
现参考图8,示例性框图示出在保护系统资源的情况中用于应用程序身份服务的体系结构。图8的体系结构仅是应用程序身份信息的一个示例。其它体系结构和身份信息的其它应用也认为是在本发明的范围内。
在图8中,客户机服务器的运行时进程在CreateProcess()期间为每一模块确定并分配身份。确定及分配的身份被用于执行文件和系统缓和以保护操作系统资源。组件存储或其它存储区储存未列清单的应用程序的自动生成的应用程序身份,和所有类型的进程的隔离身份。隔离生成规则和隔离政策允许根据一组准则一致地将应用程序标识符组合成更大的组。文件标签服务在由进程创建的每一文件的文件流中存储应用程序身份及隔离身份。系统设置缓和(mitigration)和文件缓和使用应用程序身份和隔离身份来创建单独的虚拟环境并标注处理的改变。
示例性的操作环境
图9以计算机130的形式示出通用计算设备的一个示例。在本发明的一个实施例中,如计算机130那样的计算机适用于此处示出及描述的其它图。计算机130具有一个或多个处理器或处理单元132以及系统存储器134。在示出的实施例中,系统总线136将包括系统存储器134的各种系统组件耦合到处理器132。总线136代表一个或多个若干总线结构类型的任一种,包括存储器总线或存储控制器、外围总线、加速图形端口和使用任何各种总线体系结构的任一种的处理器或局部总线。作为示例而非局限,那样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称Mezzanine总线)。
计算机130通常至少具有某种形式的计算机可读媒质。包括易失和非易失介质、可移动和不可移动介质的计算机可读媒质可以是可由计算机130访问的任何可用的媒质。作为示例而非限制,计算机可读媒质包括计算机存储介质和通讯媒体。计算机存储介质包括以存储如计算机可读指令,数据结构,程序模块或其他数据等的信息的任何方法和技术实现的易失和非易失的、可移动和不可移动介质。例如,计算机存储介质包括RAM、ROM、EEPROM,闪存或其他存储器技术、CD-ROM、数字多功能盘或其他光盘存储器、盒式磁带、磁带、磁盘存储或其它磁存储设备、或能用于存储希望的信息并能被计算机130访问的任何其它介质。通讯媒体通常在诸如载波或其它传输机制那样的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传送媒体。本领域的技术人员熟悉已调制数据信号,它以在信号中编码信息的方式设置或改变其一个或多个特征。如有线网络和直接连线连接的有线媒体,和以及如声音、RF、红外其它无线媒体那样的无线媒体是通讯媒体的例子。上述的任何组合也包括在计算机可读媒质范围内。
系统存储器134包括以可移动和/或不可移动,易失和/或非易失存储器形式的计算机存储介质。在示出的实施例中,系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。包含如在启动期间帮助在计算机130的各元件之间传递信息的基本输入/输出系统142(BIOS)通常存储在ROM138中。RAM140通常包含处理单元132立即能访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图9示出操作系统144、应用程序146、其它程序模块148和程序数据150。
计算机130还包括其他可移动/不可移动、易失/非易失计算机存储介质。例如,图9示出读写不可移动、非易失性介质的硬盘驱动器154。图9还示出读写可移动、非易失磁盘158的磁盘驱动器156,和读写如CD-ROM或其它光介质的可移动、非易失光盘162的光盘驱动器160。能用于示例性操作环境的其它可移动/不可移动、易失/非易失计算机存储介质包括但不限于,盒式磁带、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器154,磁盘驱动器156和光盘驱动器160通常通过如接口166的非易失存储器接口连接到系统总线136。
上面讨论并图9中示出的驱动器或其他大容量存储设备以及它们相关的计算存储介质为计算机130提供计算机可读指令、数据结构、程序模块和其它数据的存储。例如在图9中,硬盘驱动器被示作存储操作系统170、应用程序172、其它程序模块174和程序数据150。注意,这些组件与操作系统144、应用程序146、其他程序模块148和程序数据150或者相同或者不同。操作系统170、应用程序172、其它程序模块174和程序数据176在这里给以不同的序号,表示至少它们是不同的副本。
用户能通过如键盘180和定位设备182(如鼠标、跟踪球、输入笔、或触摸垫)将命令和信息输入到计算机130。其它设备(未示出)能包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通过连接系统总线136的用户输入接口连接到处理单元132,但能通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器188或其它类型的显示设备也能通过如视频接口190那样的接口连接到系统总线136。除了监视器188之外,计算机常包括其它外围输出设备(未示出),如打印机和扬声器,它们能通过输出外围接口(未示出)连接。
计算机130能在使用到如远程计算机194那样的一个或多个远程计算机的逻辑连接的网络环境中操作。远程计算机194能是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常包括关于计算机130描述的许多或所有元件。图9中画出的逻辑连接包括局域网(LAN)196和广域网(WAN)198,但也能包括其它网络。LAN136和/或无线网络138能是有线网络、无线网络或其组合等。那样的网络环境在办公室、企业范围的计算机网络、内联网和全球计算机网络(如因特网)中是常见的。
当在局域网环境使用时,计算机130通过网络接口或适配器186连接到LAN196。当在网络网环境使用时,计算机130通常包括调制解调器178或用于在如因特网的WAN上建立通讯连接的其它装置。内置或外置的调制解调器178通过用户输入接口184或其它合适机制连接系统总线136。在网络环境中,对于计算机130示出的程序模块或其部分能存储在远程存储设备(未示出)中。作为示例而非局限,图9示出远程应用程序192驻留在存储设备中。示出的网络连接是示例性的,也能使用在计算机之间建立通信链路的其它方法。
一般地,计算机130的数据处理器由在不同时间存储在计算机的各种计算机存储介质中的指令来编程。程序和操作系统通常在如软盘或CD-ROM上分布。它们从那里被安装或加载到计算机的次级存储器中。在执行时,它们至少部分地被加载到计算的初级电子存储器。这里描述的本发明包括这些和其它各种类型的计算机可读介质,那些介质包含用于实现下面结合微处理器或其它数据处理器描述的步骤的指令或程序。当按这里描述的方法和技术来编程时,本发明还包括计算机本身。
为说明的目的,如操作系统的程序和其他可执行程序模块在这里示作离散的块。然而可以认识到,那样的程序和组件在各种时间驻留在计算机的不同存储组件中,且由计算机的数据处理器执行。
虽然结合包括计算机130的示例计算系统环境来描述,本发明可用许多其他通用或专用计算系统环境或配置来操作。该计算系统环境不企图对本发明的使用或功能的范围提出任何限制。此外,该计算系统环境不应看成对于示例操作环境中示出的组件的任何一个或其组合具有任何依赖或需要。众知适合使用本发明的计算系统、环境和/或配置包括但不限于,个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、移动电话、网络PC、小型机、大型机、包括上述系统或设备的分布式计算环境等。
本发明能在诸如程序模块等由一个或多个计算机或其他设备执行的计算机可执行指令的一般上下文中描述。通常,程序模块包括但不限于,例程、程序、对象、组件和数据结构,它们完成特定任务或实现特定的抽象数据类型。本发明也能在分布式计算环境中实施,其中,任务由通过通讯网络连接的远程处理设备来完成。在分布式计算环境中,程序模块能位于本地或远程计算机存储介质上,包括存储器存储介质。
软件体系结构的上下文中的接口包括软件模块、组件、代码部分或计算机可执行指令的其它序列。例如,接口包括访问第二模块以代表第一模块执行计算任务的第一模块。在一个示例中,第一和第二模块包括如由操作系统提供的应用编程接口(API)、组件对象模型(COM)接口(如用于对等应用通讯)和可扩充标记语言元数据交换格式(XMI)接口(如用于在web服务之间通讯)。
接口能是如在Jav2 2平台企业版本(J2EE)、COM或分布式COM示例中的紧密耦合的同步实现。另外或除上之外,接口能是如在web服务中的松散耦合的异步实现(如使用简单的对象访问协议)。一般而言,接口包括下列特征的任一组合:紧密耦合、松散耦合、同步、异步。此外,接口能遵循标准协议、专有协议或标准和专有协议的任一组合。
此处描述的接口可以都是单个接口的部分,或能被实现为单独的界面或其任何组合。接口能本地或远程执行来提供功能。此外,接口能包括比所示和此处描述的更多或更少的功能。
在操作中,计算机130执行如在图中示出的计算机可执行指令,来确定和分配应用程序身份和隔离身份,以启用计算系统上的多个应用程序的管理。
除非另外指出,此处示出和描述的方法的执行或完成的次序是不重要的。即,方法的各元素能以任何次序执行,除非另外指出,且方法能包括比此处描述的更多或更少的单元。
当引入本发明及其实施例的元素时,冠词“一”,“一个”,“该”,和“所述”试图意指存在一个或多个元素。术语“包含”,“包括”和“具有”认为是广泛意义的,并意指可有除列出的元素以外的其它元素。
鉴于上述内容,可以看到,达到了本发明的若干目的,并获得其它的有利结果。
因为可以在不脱离本发明的范围的情况下上述结构、产品和方法上作出各种变化,因此试图将包含在上述描述中和在附图中示出的所有事项解释为说明性的,而不是在限制意义中。

Claims (22)

1.一种用于管理计算系统上的多个应用程序的计算机实现的方法,其特征在于,所述计算机实现的方法包括:
向应用程序分配一应用程序身份,所分配的应用程序身份将所述应用程序区别于其它应用程序;
向与所述应用程序关联的资源分配一资源身份;以及
联系所分配的应用程序身份和所分配的资源身份。
2.如权利要求1所述的计算机实现的方法,其特征在于,向所述资源分配所述资源身份包括向一操作系统对象分配所述应用程序身份。
3.如权利要求2所述的计算机实现的方法,其特征在于,它还包括根据下列一个或多个,向所述应用程序分配所述操作系统对象:所分配的应用程序身份、与所述应用程序关联的清单和描述所述操作系统对象的附加元数据。
4.如权利要求1所述的计算机实现的方法,其特征在于,向所述资源分配所述资源身份包括根据下列一个或多个向所述应用程序分配所述资源身份:所分配的应用程序身份、与所述应用程序关联的清单、所述资源的评估和所述资源的散列。
5.如权利要求1所述的计算机实现的方法,其特征在于,它还包括确定所述应用程序的隔离身份,所述隔离身份与具有与其相关联的另一应用程序身份的至少一个其它应用程序相关联。
6.如权利要求1所述的计算机实现的方法,其特征在于,它还包括:
接收将所述应用程序从所分配的应用程序身份迁移到与另一应用程序关联的另一应用程序身份的请求;以及
响应于所接收的请求,向所述应用程序分配所述其它的应用程序身份。
7.如权利要求1所述的计算机实现的方法,其特征在于,向所述应用程序分配所述应用程序身份包括对所述应用程序确定下列之一:应用程序销售商、应用程序名称、应用程序版本和校验和。
8.如权利要求1所述的计算机实现的方法,其特征在于,向所述资源分配所述资源身份包括在执行所述应用程序期间创建所述资源时,向所述资源分配所述资源身份。
9.如权利要求1所述的计算机实现的方法,其特征在于,它还包括分析所述应用程序以生成与所述应用程序关联的签名,并且其中,向所述应用程序分配所述应用程序身份包括根据所生成的签名标识所述应用程序的预分配应用程序身份。
10.如权利要求1所述的计算机实现的方法,其特征在于,它还包括:
接收来自所述应用程序的对操作系统资源的请求;
响应于所接收的请求,根据所分配的应用程序身份判断对所述应用程序是否存在所述操作系统资源的特定版本;
响应于所述判断,若对所述应用程序存在所述特定版本,则向所述应用程序提供所述特定版本;以及
否则,响应于所述判断,生成所述特定版本,并向所述应用程序提供所生成的特定版本。
11.一种使操作系统能保护与其关联的资源免遭应用程序修改的计算机实现的方法,其特征在于,所述计算实现的方法包括:
向应用程序分配一应用程序身份;
接收来自所述应用程序对操作系统资源的请求;
响应于所接收的请求,根据所述应用程序身份判断对所述应用程序是否存在所述操作系统资源的特定版本;
响应于所述判断,若对所述应用程序存在所述特定版本,则向所述应用程序提供所述特定版本;以及
否则,响应于所述判断,生成所述特定版本,并向所述应用程序提供所生成的特定版本。
12.如权利要求11所述的计算机实现的方法,其特征在于,接收来自所述应用程序的所述请求包括接收对下列的一个或多个的请求:文件、文件夹、对象和操作系统属性值。
13.如权利要求1或11所述的计算机实现的方法,其特征在于,向所述应用程序分配所述应用程序身份包括根据下列的一个或多个向所述应用程序分配所述应用程序身份:与所述应用程序关联的清单、与所述应用程序关联的多个文件的评估、所述应用程序的散列和对应于与所述应用程序关联的安装程序的安装程序身份。
14.如权利要求13所述的计算机实现的方法,其特征在于,向所述应用程序分配所述应用程序身份还包括从下列的一个或多个提取元数据:所述清单、所述评估、所述散列和所述安装程序身份。
15.具有用于执行上述权利要求中的任一项所述的计算机实现的方法的计算机可执行组件的一个或多个计算机可读介质。
16.一种用于执行上述权利要求中的任一项所述的计算机实现的方法的系统。
17.一种在其上储存了代表与软件产品相关联的身份上下文的数据结构的计算机可读介质,其特征在于,所述的数据结构包括:
应用程序身份字段,储存一标识所述软件产品的值;以及
隔离身份字段,储存与所述软件产品所属的一组软件产品关联的值。
18.如权利要求17所述的计算机可读介质,其特征在于,所述软件产品和所述软件产品组共享共同的资源。
19.如权利要求17所述的计算机可读介质,其特征在于,它还包括与由所述软件产品创建的资源关联的资源身份字段,所述资源身份字段储存标识所述软件产品的值。
20.如权利要求19所述的计算机可读介质,其特征在于,储存在所述应用程序身份字段中的值和储存在所述资源身份字段中的值是相同的。
21.如权利要求19所述的计算机可读介质,其特征在于,所述资源包括下列的一个或多个:进程、线程、系统设置、操作系统名字空间、所述操作系统名字空间中的名字和操作系统对象。
22.如权利要求19所述的计算机可读介质,其特征在于,所述资源身份字段包括一创建器上下文和一修订的上下文,所述创建器上下文储存标识创建所述资源的所述软件产品的值,而所述修订的上下文储存代表与所述资源关联的身份的另一值。
CN200410088300.6A 2003-10-24 2004-10-22 软件产品的应用程序身份 Pending CN1617099A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51394103P 2003-10-24 2003-10-24
US60/513,941 2003-10-24
US10/868,183 US20050091535A1 (en) 2003-10-24 2004-06-15 Application identity for software products
US10/868,183 2004-06-15

Publications (1)

Publication Number Publication Date
CN1617099A true CN1617099A (zh) 2005-05-18

Family

ID=34396617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410088300.6A Pending CN1617099A (zh) 2003-10-24 2004-10-22 软件产品的应用程序身份

Country Status (5)

Country Link
US (3) US20050091535A1 (zh)
EP (1) EP1526454A3 (zh)
JP (1) JP2005129063A (zh)
KR (1) KR20050039634A (zh)
CN (1) CN1617099A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102112990A (zh) * 2008-06-27 2011-06-29 微软公司 为计算过程授予最小特权访问
CN102804132A (zh) * 2009-06-15 2012-11-28 微软公司 基于目录的软件组件管理
CN101221499B (zh) * 2006-11-29 2013-01-02 Sap股份公司 用于配置应用软件的方法和设备
CN103399788A (zh) * 2013-08-07 2013-11-20 广东欧珀移动通信有限公司 一种智能终端跨应用控制方法和系统
WO2014008836A1 (en) * 2012-07-11 2014-01-16 Tencent Technology (Shenzhen) Company Limited Method and device for prompting program uninstallation
CN103890734A (zh) * 2011-10-23 2014-06-25 微软公司 遥测文件散列和冲突检测
CN103942076A (zh) * 2014-04-11 2014-07-23 珠海市君天电子科技有限公司 积分墙信息的获取方法及装置
CN104025072A (zh) * 2012-08-31 2014-09-03 英特尔公司 实现云以有效地向服务器指配工作负荷
CN104376273A (zh) * 2014-11-18 2015-02-25 乐视致新电子科技(天津)有限公司 一种数据访问控制方法和装置
CN104520835A (zh) * 2012-09-06 2015-04-15 英特尔公司 向非os服务的应用注册

Families Citing this family (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739381B2 (en) 1998-03-11 2010-06-15 Commvault Systems, Inc. System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services
US7822980B2 (en) * 2002-03-15 2010-10-26 International Business Machines Corporation Authenticated identity propagation and translation within a multiple computing unit environment
US8370542B2 (en) 2002-09-16 2013-02-05 Commvault Systems, Inc. Combined stream auxiliary copy system and method
US7185015B2 (en) 2003-03-14 2007-02-27 Websense, Inc. System and method of monitoring and controlling application files
US7529754B2 (en) 2003-03-14 2009-05-05 Websense, Inc. System and method of monitoring and controlling application files
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
EP1528452A1 (en) * 2003-10-27 2005-05-04 Alcatel Recursive virus detection, protection and disinfecting of nodes in a data network
US7814554B1 (en) * 2003-11-06 2010-10-12 Gary Dean Ragner Dynamic associative storage security for long-term memory storage devices
JP2005149164A (ja) * 2003-11-17 2005-06-09 Hitachi Ltd 共有ライブラリに格納された外部公開関数の呼び出し方法
US7328217B2 (en) * 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US7860239B2 (en) * 2004-07-07 2010-12-28 International Business Machines Corporation Method and apparatus for metering usage of software products using multiple signatures
GB2416879B (en) 2004-08-07 2007-04-04 Surfcontrol Plc Device resource access filtering system and method
GB2418037B (en) 2004-09-09 2007-02-28 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
GB2418108B (en) * 2004-09-09 2007-06-27 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US8171479B2 (en) * 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8095940B2 (en) * 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US20060069662A1 (en) * 2004-09-30 2006-03-30 Citrix Systems, Inc. Method and apparatus for remapping accesses to virtual system resources
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8117559B2 (en) * 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8775823B2 (en) 2006-12-29 2014-07-08 Commvault Systems, Inc. System and method for encrypting secondary copies of data
US7703135B2 (en) * 2004-12-21 2010-04-20 International Business Machines Corporation Accessing protected resources via multi-identity security environments
US7979405B2 (en) * 2005-01-14 2011-07-12 Microsoft Corporation Method for automatically associating data with a document based on a prescribed type of the document
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
EP1684151A1 (en) 2005-01-20 2006-07-26 Grant Rothwell William Computer protection against malware affection
US7653653B2 (en) * 2005-02-14 2010-01-26 Microsoft Corporation Dynamically configurable lists for including multiple content types
US7966286B2 (en) * 2005-02-14 2011-06-21 Microsoft Corporation Hierarchical management of object schema and behavior
EP1693765B1 (en) * 2005-02-16 2014-07-09 Sap Ag A data processing system and method
US7756841B2 (en) 2005-03-22 2010-07-13 Microsoft Corporation System and method for identity decisions and invalidation
US20060265387A1 (en) * 2005-05-20 2006-11-23 International Business Machines Corporation Method and apparatus for loading artifacts
GB0512744D0 (en) * 2005-06-22 2005-07-27 Blackspider Technologies Method and system for filtering electronic messages
US8320880B2 (en) * 2005-07-20 2012-11-27 Qualcomm Incorporated Apparatus and methods for secure architectures in wireless networks
US8307355B2 (en) * 2005-07-22 2012-11-06 International Business Machines Corporation Method and apparatus for populating a software catalogue with software knowledge gathering
DE102005041628B4 (de) * 2005-09-01 2012-12-27 Siemens Ag Vorrichtung und Verfahren zur Verarbeitung von Daten unterschiedlicher Modalitäten
JP4361522B2 (ja) 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
JP4361894B2 (ja) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
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
US8131825B2 (en) * 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8051298B1 (en) * 2005-11-29 2011-11-01 Sprint Communications Company L.P. Integrated fingerprinting in configuration audit and management
CN101495990B (zh) * 2005-12-02 2011-09-14 思杰系统有限公司 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备
US7685297B2 (en) 2005-12-06 2010-03-23 Nokia Corporation Resource control
US8375122B2 (en) * 2005-12-15 2013-02-12 International Business Machines Corporation Web service information management in service-oriented architecture applications
US8453243B2 (en) 2005-12-28 2013-05-28 Websense, Inc. Real time lockdown
KR100740252B1 (ko) * 2006-01-06 2007-07-18 (주)하이비젼시스템 동일 브이아이디/피아이디를 이용한 유에스비인터페이스방법
US20070198542A1 (en) * 2006-02-09 2007-08-23 Morris Robert P Methods, systems, and computer program products for associating a persistent information element with a resource-executable pair
US8528087B2 (en) * 2006-04-27 2013-09-03 Robot Genius, Inc. Methods for combating malicious software
US8769703B2 (en) * 2006-04-27 2014-07-01 Unisys Corporation System and method for providing a mechanism to virtualize a perpetual, unique system identity on a partitioned computer system
US20070256076A1 (en) * 2006-04-27 2007-11-01 Thompson James W System and method for separating multiple workloads processing in a single computer operating environment
US8010947B2 (en) 2006-05-23 2011-08-30 International Business Machines Corporation Discovering multi-component software products based on weighted scores
US7890756B2 (en) * 2006-06-14 2011-02-15 International Business Machines Corporation Verification system and method for accessing resources in a computing environment
US8615800B2 (en) 2006-07-10 2013-12-24 Websense, Inc. System and method for analyzing web content
US8020206B2 (en) 2006-07-10 2011-09-13 Websense, Inc. System and method of analyzing web content
US20080040404A1 (en) * 2006-08-11 2008-02-14 Microsoft Corporation Host computer I/O filter re-directing potentially conflicting I/O commands from instantiations of legacy application
US7567984B1 (en) * 2006-08-31 2009-07-28 Symantec Operating Corporation Operating system and application deployment based on stored user state and organizational policy
US7761559B2 (en) * 2006-10-13 2010-07-20 International Business Machines Corporation System and method of remotely managing and loading artifacts
US7720931B2 (en) * 2006-10-13 2010-05-18 International Business Machines Corporation System and method of remotely managing and loading artifacts
US8655914B2 (en) * 2006-10-17 2014-02-18 Commvault Systems, Inc. System and method for storage operation access security
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
US9754273B2 (en) * 2006-12-19 2017-09-05 Microsoft Technology Licensing, Llc Enterprise resource tracking of knowledge
GB2458094A (en) * 2007-01-09 2009-09-09 Surfcontrol On Demand Ltd URL interception and categorization in firewalls
GB2445764A (en) * 2007-01-22 2008-07-23 Surfcontrol Plc Resource access filtering system and database structure for use therewith
EP2127311B1 (en) * 2007-02-02 2013-10-09 Websense, Inc. System and method for adding context to prevent data leakage over a computer network
US8850414B2 (en) * 2007-02-02 2014-09-30 Microsoft Corporation Direct access of language metadata
US8015174B2 (en) 2007-02-28 2011-09-06 Websense, Inc. System and method of controlling access to the internet
US8127271B2 (en) * 2007-03-02 2012-02-28 International Business Machines Corporation Method and system for accessing a resource implemented in a computer network
US7853679B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring handling of undefined policy events
US7870277B2 (en) * 2007-03-12 2011-01-11 Citrix Systems, Inc. Systems and methods for using object oriented expressions to configure application security policies
US7853678B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring flow control of policy expressions
US8490148B2 (en) 2007-03-12 2013-07-16 Citrix Systems, Inc Systems and methods for managing application security profiles
US8631147B2 (en) 2007-03-12 2014-01-14 Citrix Systems, Inc. Systems and methods for configuring policy bank invocations
US7865589B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing structured policy expressions to represent unstructured data in a network appliance
US8640215B2 (en) * 2007-03-23 2014-01-28 Microsoft Corporation Secure isolation of application pools
US20080270974A1 (en) * 2007-04-30 2008-10-30 Krasimir Topchiyski Enterprise JavaBeans Metadata Model
US8239954B2 (en) * 2007-05-07 2012-08-07 Microsoft Corporation Access control based on program properties
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
JP5058697B2 (ja) * 2007-07-19 2012-10-24 キヤノン株式会社 情報処理装置、アプリケーション管理方法、及びコンピュータプログラム
WO2009047438A1 (fr) * 2007-09-18 2009-04-16 Thomson Licensing Hebergement d'applications semi-permanent
US9621649B2 (en) * 2007-09-28 2017-04-11 Xcerion Aktiebolag Network operating system
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8140501B2 (en) * 2007-11-28 2012-03-20 International Business Machines Corporation Attribute presenter of object attributes and method for presenting object attributes using the attribute presenter
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US8495594B2 (en) * 2008-01-10 2013-07-23 International Business Machines Corporation Method and system for providing a componentized resource adapter architecture
US8620856B2 (en) * 2008-01-18 2013-12-31 International Business Machines Corporation Method and system for providing a data exchange service provider interface
US8055649B2 (en) 2008-03-06 2011-11-08 Microsoft Corporation Scaled management system
US9015842B2 (en) 2008-03-19 2015-04-21 Websense, Inc. Method and system for protection against information stealing software
US9130986B2 (en) 2008-03-19 2015-09-08 Websense, Inc. Method and system for protection against information stealing software
US8407784B2 (en) 2008-03-19 2013-03-26 Websense, Inc. Method and system for protection against information stealing software
US8370948B2 (en) * 2008-03-19 2013-02-05 Websense, Inc. System and method for analysis of electronic information dissemination events
US8281410B1 (en) * 2008-03-31 2012-10-02 Symantec Corporation Methods and systems for providing resource-access information
US8950007B1 (en) * 2008-04-07 2015-02-03 Lumension Security, Inc. Policy-based whitelisting with system change management based on trust framework
US20090265451A1 (en) * 2008-04-17 2009-10-22 E.S.I. Software Ltd. Assisted application definition
US9779234B2 (en) * 2008-06-18 2017-10-03 Symantec Corporation Software reputation establishment and monitoring system and method
US9378282B2 (en) * 2008-06-30 2016-06-28 Raytheon Company System and method for dynamic and real-time categorization of webpages
US9626511B2 (en) * 2008-08-26 2017-04-18 Symantec Corporation Agentless enforcement of application management through virtualized block I/O redirection
US8149431B2 (en) * 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
US8544083B2 (en) * 2009-02-19 2013-09-24 Microsoft Corporation Identification security elevation
US8434131B2 (en) 2009-03-20 2013-04-30 Commvault Systems, Inc. Managing connections in a data storage system
JP5402169B2 (ja) * 2009-03-31 2014-01-29 富士通株式会社 実行制御プログラムおよび情報処理システム
US8424071B2 (en) * 2009-04-15 2013-04-16 International Business Machines Corporation Method and apparatus for secure and reliable computing
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
EP2443580A1 (en) 2009-05-26 2012-04-25 Websense, Inc. Systems and methods for efficeint detection of fingerprinted data and information
US8826269B2 (en) * 2009-06-15 2014-09-02 Microsoft Corporation Annotating virtual application processes
KR101255983B1 (ko) * 2009-07-21 2013-04-23 한국전자통신연구원 컴포넌트 기반 소프트웨어 플랫폼이 탑재된 장치 및 컴포넌트 기반 소프트웨어 플랫폼이 탑재된 장치의 애플리케이션 개체 관리 방법
US8321857B1 (en) * 2009-09-14 2012-11-27 Symantec Corporation Automated generation of application data for application distribution
US9088580B2 (en) * 2009-12-31 2015-07-21 Microsoft Technology Licensing, Llc Access control based on user and service
US9251312B2 (en) * 2010-02-23 2016-02-02 Siemens Aktiengesellschaft Application platform
US9733929B1 (en) * 2010-07-20 2017-08-15 Symantec Corporation Systems and methods for restoring applications
US8826407B2 (en) * 2010-11-24 2014-09-02 Skai, Inc. System and method for access control and identity management
US8756611B2 (en) * 2010-12-07 2014-06-17 International Business Machines Corporation Delayed expansion of values in context
US20120179707A1 (en) 2011-01-06 2012-07-12 Mitel Networks Corporation Range programming using a search query
US9858092B2 (en) * 2011-01-06 2018-01-02 Mitel Networks Corporation Contextual application launch via search query
US9104514B2 (en) * 2011-01-11 2015-08-11 International Business Machines Corporation Automated deployment of applications with tenant-isolation requirements
US8650640B2 (en) 2011-02-24 2014-02-11 International Business Machines Corporation Using a declaration of security requirements to determine whether to permit application operations
US9244818B1 (en) * 2011-03-29 2016-01-26 Amazon Technologies, Inc. Automated selection of quality control tests to run on a software application
US8463792B2 (en) * 2011-07-07 2013-06-11 1E Limited Identifying software
US8489616B2 (en) * 2011-07-07 2013-07-16 1E Limited Identifying software
CN102955705B (zh) * 2011-08-26 2015-08-19 腾讯科技(深圳)有限公司 一种实现程序间互启动的方法和系统
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US8990561B2 (en) * 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
KR20130089400A (ko) * 2012-02-02 2013-08-12 삼성전자주식회사 휴대용 전자기기에서 애플리케이션 관리 방법 및 장치
US9052961B2 (en) * 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
KR20130116414A (ko) * 2012-03-14 2013-10-24 삼성전자주식회사 휴대 단말기에서 어플리케이션을 위한 권한을 제어하는 장치 및 방법
US9135034B2 (en) 2012-08-16 2015-09-15 Microsoft Technology Licensing, Llc Imperative attribution for elements in managed runtimes
US9104781B2 (en) 2012-08-28 2015-08-11 Microsoft Technology Licensing, Llc Obtaining metadata set by imperative statement
US20140082023A1 (en) * 2012-09-14 2014-03-20 Empire Technology Development Llc Associating an identity to a creator of a set of visual files
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9195438B2 (en) * 2012-12-19 2015-11-24 Salesforce.Com, Inc. System, method and computer program product for creating an application within a system
US9117054B2 (en) 2012-12-21 2015-08-25 Websense, Inc. Method and aparatus for presence based resource management
US20140281516A1 (en) 2013-03-12 2014-09-18 Commvault Systems, Inc. Automatic file decryption
CN103246595B (zh) * 2013-04-08 2016-06-08 小米科技有限责任公司 应用程序管理方法、装置、服务器及终端设备
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US9866640B2 (en) 2013-09-20 2018-01-09 Oracle International Corporation Cookie based session management
US9544293B2 (en) 2013-09-20 2017-01-10 Oracle International Corporation Global unified session identifier across multiple data centers
US9659182B1 (en) 2014-04-30 2017-05-23 Symantec Corporation Systems and methods for protecting data files
US10044695B1 (en) * 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US9577829B1 (en) 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US10079681B1 (en) 2014-09-03 2018-09-18 Amazon Technologies, Inc. Securing service layer on third party hardware
US9491111B1 (en) 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US9754116B1 (en) 2014-09-03 2017-09-05 Amazon Technologies, Inc. Web services in secure execution environments
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US9405928B2 (en) 2014-09-17 2016-08-02 Commvault Systems, Inc. Deriving encryption rules based on file content
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9934269B1 (en) * 2015-03-17 2018-04-03 Amazon Technologies, Inc. Resource tagging and grouping
US10496692B1 (en) 2015-03-17 2019-12-03 Amazon Technologies, Inc. Resource tagging and grouping
US11977711B1 (en) 2015-03-17 2024-05-07 Amazon Technologies, Inc. Resource tagging and grouping
US10447812B2 (en) * 2015-06-05 2019-10-15 Apple Inc. On demand resources
US9769147B2 (en) 2015-06-29 2017-09-19 Oracle International Corporation Session activity tracking for session adoption across multiple data centers
US10693859B2 (en) 2015-07-30 2020-06-23 Oracle International Corporation Restricting access for a single sign-on (SSO) session
US9875373B2 (en) * 2015-09-28 2018-01-23 International Business Machines Corporation Prioritization of users during disaster recovery
US10581826B2 (en) 2015-10-22 2020-03-03 Oracle International Corporation Run-time trust management system for access impersonation
US10505982B2 (en) 2015-10-23 2019-12-10 Oracle International Corporation Managing security agents in a distributed environment
US10454936B2 (en) 2015-10-23 2019-10-22 Oracle International Corporation Access manager session management strategy
NL2016667B1 (en) * 2016-04-22 2017-11-16 Winc Solutions B V Method for installing and updating software programs, corresponding server and software package.
EP3244337A1 (en) * 2016-05-10 2017-11-15 Cyber-Ark Software Ltd. Application control
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
RU2634177C1 (ru) * 2016-05-20 2017-10-24 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения нежелательного программного обеспечения
US10073974B2 (en) * 2016-07-21 2018-09-11 International Business Machines Corporation Generating containers for applications utilizing reduced sets of libraries based on risk analysis
US10255061B2 (en) * 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10621333B2 (en) * 2016-08-08 2020-04-14 International Business Machines Corporation Install-time security analysis of mobile applications
US10572245B1 (en) 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US10623501B2 (en) 2016-09-15 2020-04-14 Oracle International Corporation Techniques for configuring sessions across clients
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US11082491B2 (en) 2016-10-07 2021-08-03 Microsoft Technology Licensing, Llc Propagating origin information for applications during application installation
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10365910B2 (en) * 2017-07-06 2019-07-30 Citrix Systems, Inc. Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted
US11290438B2 (en) 2017-07-07 2022-03-29 Oracle International Corporation Managing session access across multiple data centers
CN109240809B (zh) * 2017-07-11 2022-08-23 阿里巴巴集团控股有限公司 进程维护管理方法、容器维护方法、装置和操作系统
US11050730B2 (en) 2017-09-27 2021-06-29 Oracle International Corporation Maintaining session stickiness across authentication and authorization channels for access management
US10157275B1 (en) 2017-10-12 2018-12-18 Oracle International Corporation Techniques for access management based on multi-factor authentication including knowledge-based authentication
US11275850B1 (en) * 2018-01-30 2022-03-15 Amazon Technologies, Inc. Multi-faceted security framework for unstructured storage objects
US11134078B2 (en) 2019-07-10 2021-09-28 Oracle International Corporation User-specific session timeouts
US20210342308A1 (en) * 2020-04-30 2021-11-04 Unity IPR ApS System and method for performing context aware operating file system virtualization
KR102669595B1 (ko) * 2022-04-08 2024-05-24 한전케이디엔주식회사 파일 속성 추출과 제품이름 키워드 검색을 통한 취약점 식별장치 및 그 방법

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US92013A (en) * 1869-06-29 Improvement in breech-loaders
US100017A (en) * 1870-02-22 Joseph m
US3390A (en) * 1843-12-27 Improvement in bloomery-forges employed in the manufacture of wrought-iron
GB8529890D0 (en) * 1985-12-04 1986-01-15 Watson P Garbage collection in computer system
JPH0734177B2 (ja) * 1987-07-16 1995-04-12 日本電気株式会社 知識情報参照装置
CA1323448C (en) * 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
JP2520543B2 (ja) * 1991-09-06 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラムの実行を管理する方法及びシステム
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
CA2124720C (en) * 1993-06-25 2002-10-22 Michael R. C. Seaman Integration of systems management services with an underlying system object model
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5754854A (en) * 1994-11-14 1998-05-19 Microsoft Corporation Method and system for providing a group of parallel resources as a proxy for a single shared resource
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US5799306A (en) * 1996-06-21 1998-08-25 Oracle Corporation Method and apparatus for facilitating data replication using object groups
US7356847B2 (en) * 1996-06-28 2008-04-08 Protexis, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US5915085A (en) * 1997-02-28 1999-06-22 International Business Machines Corporation Multiple resource or security contexts in a multithreaded application
US6385707B1 (en) * 1998-02-24 2002-05-07 Adaptec, Inc. Method and apparatus for backing up a disk drive upon a system failure
US6182086B1 (en) * 1998-03-02 2001-01-30 Microsoft Corporation Client-server computer system with application recovery of server applications and client applications
US6308274B1 (en) * 1998-06-12 2001-10-23 Microsoft Corporation Least privilege via restricted tokens
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6378127B1 (en) * 1998-09-21 2002-04-23 Microsoft Corporation Software installation and validation using custom actions
US6523166B1 (en) * 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6317143B1 (en) * 1999-01-26 2001-11-13 Gateway, Inc. Programmable graphical user interface control system and method
US6970924B1 (en) * 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
US6584507B1 (en) * 1999-03-02 2003-06-24 Cisco Technology, Inc. Linking external applications to a network management system
US6449617B1 (en) * 1999-06-15 2002-09-10 Microsoft Corporation Edit command delegation program for editing electronic files
US7149222B2 (en) * 1999-12-21 2006-12-12 Converged Access, Inc. Integrated access point network device
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US6854108B1 (en) * 2000-05-11 2005-02-08 International Business Machines Corporation Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US6973577B1 (en) * 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US20030159070A1 (en) * 2001-05-28 2003-08-21 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US20010056463A1 (en) * 2000-06-20 2001-12-27 Grady James D. Method and system for linking real world objects to digital objects
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
WO2002027486A1 (en) * 2000-09-28 2002-04-04 Curl Corporation Methods and apparatus for generating unique identifiers for software components
AU2001296205A1 (en) * 2000-10-17 2002-04-29 Shyne-Song Chuang A method and system for detecting rogue software
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US6611836B2 (en) * 2000-12-26 2003-08-26 Simdesk Technologies, Inc. Server-side recycle bin system
US20020087665A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent Method and system for integrated resource management
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
EP1239377A1 (de) * 2001-03-07 2002-09-11 Abb Research Ltd. Datenorganisationssystem und Verfahren zur Gliederungsstrukturverwaltung und -synchronisation
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7016920B2 (en) * 2001-05-25 2006-03-21 International Business Machines Corporation Method for tracking relationships between specified file name and particular program used for subsequent access in a database
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7483970B2 (en) * 2001-12-12 2009-01-27 Symantec Corporation Method and apparatus for managing components in an IT system
US7448084B1 (en) * 2002-01-25 2008-11-04 The Trustees Of Columbia University In The City Of New York System and methods for detecting intrusions in a computer system by monitoring operating system registry accesses
US20030204730A1 (en) * 2002-04-29 2003-10-30 Barmettler James W. Secure transmission and installation of an application
US20040003390A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation System and method for installing a software application in a non-impactfull manner
US20040054896A1 (en) * 2002-09-12 2004-03-18 International Business Machines Corporation Event driven security objects
US7069474B2 (en) * 2002-09-18 2006-06-27 Sun Microsystems, Inc. System and method for assessing compatibility risk
US7178163B2 (en) * 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
US7200760B2 (en) * 2002-12-31 2007-04-03 Protexis, Inc. System for persistently encrypting critical software data to control the operation of an executable software program
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US7210125B2 (en) * 2003-07-17 2007-04-24 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US20050033777A1 (en) * 2003-08-04 2005-02-10 Moraes Mark A. Tracking, recording and organizing changes to data in computer systems
US7448028B2 (en) * 2003-10-23 2008-11-04 Sap Ag System and method for selective local object retrieval
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
GB0327950D0 (en) * 2003-12-03 2004-01-07 Ibm Determining the configuration of a data processing system at the time a transaction was processed

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221499B (zh) * 2006-11-29 2013-01-02 Sap股份公司 用于配置应用软件的方法和设备
CN102112990B (zh) * 2008-06-27 2014-08-13 微软公司 为计算过程授予最小特权访问
CN102112990A (zh) * 2008-06-27 2011-06-29 微软公司 为计算过程授予最小特权访问
CN102804132A (zh) * 2009-06-15 2012-11-28 微软公司 基于目录的软件组件管理
CN102804132B (zh) * 2009-06-15 2014-11-12 微软公司 基于目录的软件组件管理
US9934229B2 (en) 2011-10-23 2018-04-03 Microsoft Technology Licensing, Llc Telemetry file hash and conflict detection
CN103890734A (zh) * 2011-10-23 2014-06-25 微软公司 遥测文件散列和冲突检测
US9378374B2 (en) 2012-07-11 2016-06-28 Tencent Technology (Shenzhen) Co., Ltd Method and device for prompting program uninstallation
WO2014008836A1 (en) * 2012-07-11 2014-01-16 Tencent Technology (Shenzhen) Company Limited Method and device for prompting program uninstallation
CN104025072A (zh) * 2012-08-31 2014-09-03 英特尔公司 实现云以有效地向服务器指配工作负荷
CN104025072B (zh) * 2012-08-31 2018-06-29 英特尔公司 实现云以有效地向服务器指配工作负荷
CN104520835A (zh) * 2012-09-06 2015-04-15 英特尔公司 向非os服务的应用注册
CN103399788B (zh) * 2013-08-07 2017-03-08 广东欧珀移动通信有限公司 一种智能终端跨应用控制方法和系统
CN103399788A (zh) * 2013-08-07 2013-11-20 广东欧珀移动通信有限公司 一种智能终端跨应用控制方法和系统
CN103942076A (zh) * 2014-04-11 2014-07-23 珠海市君天电子科技有限公司 积分墙信息的获取方法及装置
CN103942076B (zh) * 2014-04-11 2017-05-24 珠海市君天电子科技有限公司 积分墙信息的获取方法及装置
CN104376273A (zh) * 2014-11-18 2015-02-25 乐视致新电子科技(天津)有限公司 一种数据访问控制方法和装置

Also Published As

Publication number Publication date
EP1526454A2 (en) 2005-04-27
JP2005129063A (ja) 2005-05-19
US20050091192A1 (en) 2005-04-28
KR20050039634A (ko) 2005-04-29
EP1526454A3 (en) 2006-08-16
US20050091535A1 (en) 2005-04-28
US20050091655A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN1617099A (zh) 软件产品的应用程序身份
US9870218B2 (en) Methods and systems for upgrading and installing application packages to an application platform
CN1617101A (zh) 操作系统资源保护
Drake et al. Android hacker's handbook
CN102460382B (zh) 标注虚拟应用进程
CN1035192A (zh) 计算机程序应用许可证管理方法和系统
TWI301946B (en) Related computer system, related method, and related computer for dynamically adding software components to manage media filters and computer readable medium for recording related instructions
JP5058500B2 (ja) 再利用スコアおよび推奨された再利用可能データを用いたリソースオーサリング
US20090300599A1 (en) Systems and methods of utilizing virtual machines to protect computer systems
CN1224903C (zh) 逐模块验证
CN1203404C (zh) 具有逐模块验证的完全迟缓链接
CN101048735A (zh) 用于经由上下文策略控制来控制应用程序间关联的系统和方法
WO2008042984A2 (en) Methods and systems for upgrading and installing application packages to an application platform
CN103530563A (zh) 用于更新经授权软件的系统和方法
CN1298512A (zh) 基于堆栈的访问控制
WO2008091715A1 (en) Labeling of data objects to apply and enforce policies
US7647629B2 (en) Hosted code runtime protection
CN1808379A (zh) 作为操作系统原语的应用程序对象
JP2005129049A (ja) コンピュータプログラムのライセンスの施行を支援するシステム
JP2006252552A (ja) アプリケーションローカライゼーション規則を実装するオーサリング
CN1696911A (zh) 有效地打补丁
CN1698030A (zh) 信息处理设备和方法、记录介质以及程序
US20070038572A1 (en) Method, system and computer program for metering software usage
US20020082717A1 (en) Method and system for centralizing and harmonizing the operations of plural software license managers
CN113110849A (zh) 按需加载资源

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned