HK40061174B - Mitigation of ransomware in integrated, isolated applications - Google Patents
Mitigation of ransomware in integrated, isolated applicationsInfo
- Publication number
- HK40061174B HK40061174B HK62022049936.7A HK62022049936A HK40061174B HK 40061174 B HK40061174 B HK 40061174B HK 62022049936 A HK62022049936 A HK 62022049936A HK 40061174 B HK40061174 B HK 40061174B
- Authority
- HK
- Hong Kong
- Prior art keywords
- token
- resource
- access
- application
- virtual machine
- Prior art date
Links
Description
背景技术Background Technology
在隔离计算布置中,应用可以在与计算主机的主要计算环境部分或完全隔离的环境中被执行。这种隔离布置可以通过限制和/或防止应用访问主机环境的资源来为主机环境提供附加安全性。在许多情况下,在隔离环境中执行的应用可能未被信任或者可能具有更高的易受恶意活动影响的风险,因此从安全性角度来看,在应用和主机环境之间形成隔离屏障变得更加重要。换言之,即使恶意代码在应用的隔离环境中执行,由于隔离屏障,主机环境的风险也可以被最小化。In an isolated computing deployment, applications can be executed in an environment that is partially or completely isolated from the main computing environment of the host machine. This isolation provides additional security to the host environment by restricting and/or preventing applications from accessing its resources. In many cases, applications running in an isolated environment may be untrusted or may be more vulnerable to malicious activity; therefore, from a security perspective, creating an isolation barrier between the application and the host environment becomes increasingly important. In other words, even if malicious code executes in the application's isolated environment, the risk to the host environment can be minimized due to the isolation barrier.
然而,为了增强用户的体验,可能有意存在隔离屏障中的某些漏洞,诸如通过允许隔离环境中的应用访问主机环境的文件。虽然隔离屏障中的这种漏洞可能会改进隔离环境和主机环境之间的集成,但这些看似良性的增强用户体验的尝试可能会为主机环境创建安全性弱点。作为示例,可能会进入隔离环境的称为勒索软件的恶意代码可以利用只有攻击者知道的加密密钥来加密存储在主机环境中的用户个人数据。在这种情况下,用户被迫向攻击者支付赎金,以重新获得访问自己数据的能力。因此,即使应用可以被隔离,隔离屏障中的开口仍然可能会导致这些和其他类型的弱点。However, to enhance the user experience, certain vulnerabilities may intentionally exist within the isolation barrier, such as allowing applications in the isolated environment to access files in the host environment. While such vulnerabilities in the isolation barrier might improve integration between the isolated and host environments, these seemingly benign attempts to enhance the user experience can create security weaknesses in the host environment. For example, malicious code called ransomware, which could enter the isolated environment, could use encryption keys known only to the attacker to encrypt personal data stored in the host environment. In this scenario, the user is forced to pay a ransom to the attacker to regain access to their data. Therefore, even if applications can be isolated, openings in the isolation barrier can still lead to these and other types of weaknesses.
发明内容Summary of the Invention
该发明内容被提供来以简化的形式介绍对于下面在详细描述中进一步描述的概念的选择。该发明内容不旨在标识要求保护的主题的关键特征或者必要特征,也不旨在被用于限制要求保护的主题的范围。This summary is provided to present a simplified description of the selection of concepts further described below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.
提供了用于能够以安全方式访问资源的方法、系统、装置和计算机程序产品。来自第一计算环境中执行的应用(例如虚拟机)的令牌请求可以在第二计算环境(例如主机计算环境)中被接收。主机计算环境可以将信任级别分配给所接收的令牌请求,诸如指示第一计算环境不应该被信任的信任级别。令牌请求以及同信任级别可以被提供给令牌发行者(例如在授权服务器上),其可以验证令牌中的身份信息并且生成包括信任指示的授权令牌。信任指示可以指示例如第二计算环境的信任级别。主机计算环境可以获得授权令牌并且将其提供给应用。当在第二计算环境中执行的应用将授权令牌传输到资源管理器以访问资源时,资源管理器可以被配置为在提供访问之前执行预防动作,诸如创建资源的备份。Methods, systems, apparatus, and computer program products are provided for enabling secure access to resources. A token request from an application (e.g., a virtual machine) executing in a first computing environment can be received in a second computing environment (e.g., a host computing environment). The host computing environment can assign a trust level to the received token request, such as a trust level indicating that the first computing environment should not be trusted. The token request, along with the corresponding trust level, can be provided to a token issuer (e.g., on an authorization server), which can verify the identity information in the token and generate an authorization token including a trust indication. The trust indication can indicate, for example, the trust level of the second computing environment. The host computing environment can obtain the authorization token and provide it to the application. When the application executing in the second computing environment transmits the authorization token to a resource manager to access the resource, the resource manager can be configured to perform preventative actions, such as creating a backup of the resource, before granting access.
本发明的其他特征和优点以及各个实施例的结构和操作在下面参照附图详细描述。要注意的是,本发明不被限于本文描述的具体实施例。这种实施例是仅出于说明性目的而在本文中呈现的。基于本文包含的教导,附加实施例对于(多个)相关领域的技术人员将是明显的。Other features and advantages of the invention, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It should be noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to those skilled in the art based on the teachings contained herein.
附图说明Attached Figure Description
被并入本文并且形成说明书的一部分的附图图示了本申请的实施例,并且连同本描述,还用于解释实施例的原理并且使相关领域的技术人员能够制造和使用实施例。The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the present application and, together with the description, serve to explain the principles of the embodiments and enable those skilled in the art to make and use the embodiments.
图1示出了根据示例实施例的用于以安全方式提供对资源的访问的系统的框图。Figure 1 shows a block diagram of a system for providing secure access to resources according to an example embodiment.
图2示出了根据示例实施例的用于向应用提供包括信任指示的授权的方法的流程图。Figure 2 shows a flowchart of a method for providing an application with authorization, including a trust indication, according to an example embodiment.
图3示出了根据示例实施例的用于以安全方式提供对网络资源的访问的系统的框图。Figure 3 shows a block diagram of a system for providing secure access to network resources according to an example embodiment.
图4示出了根据示例实施例的用于生成包括信任指示的授权令牌的方法的流程图。Figure 4 shows a flowchart of a method for generating an authorization token including a trust indication according to an example embodiment.
图5示出了根据示例实施例的用于执行预防动作以保护资源的方法的流程图。Figure 5 shows a flowchart of a method for performing preventative actions to protect resources according to an example embodiment.
图6示出了根据示例实施例的用于以安全方式提供对本地资源的访问的系统的框图。Figure 6 shows a block diagram of a system for providing secure access to local resources according to an example embodiment.
图7是可以被用于实现示例实施例的示例计算设备的框图。Figure 7 is a block diagram of an example computing device that can be used to implement the example embodiments.
当结合附图时,通过下面陈述的详细描述,本发明的特征和优点将变得更加明显,其中相同的参考字符始终标识对应的元件。在附图中,相同的参考数字通常指示相同的、功能类似和/或结构类似的元件。元件首次出现的附图由对应参考数字中的(多个)最左侧数字指示。The features and advantages of the invention will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein the same reference numerals consistently identify corresponding elements. In the drawings, the same reference numerals generally indicate the same, functionally similar, and/or structurally similar elements. The first appearance of an element in the drawings is indicated by the leftmost numeral(s) of the corresponding reference numeral(s).
具体实施方式Detailed Implementation
I.介绍I. Introduction
本说明书和附图公开了包含本发明的特征的一个或多个实施例。本发明的范围不被限于所公开的实施例。所公开的实施例仅例示了本发明,并且所公开的实施例的修改版本也由本发明涵盖。本发明的实施例由所附权利要求限定。This specification and accompanying drawings disclose one or more embodiments incorporating the features of the present invention. The scope of the invention is not limited to the disclosed embodiments. The disclosed embodiments are merely illustrative of the invention, and modifications to the disclosed embodiments are also covered by the invention. The embodiments of the invention are defined by the appended claims.
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特点,但是每个实施例可能不一定包括该特定特征、结构或特点。而且,这种短语不一定指的是相同实施例。进一步地,当特定特征、结构或特点结合示例实施例描述时,无论是否明确描述,它都主张是在本领域技术人员的知识范围内,以结合其他实施例实现这种特征、结构或特点。References to "an embodiment," "an embodiment," "an exemplary embodiment," etc., in the specification indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment may not necessarily include that particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. Moreover, when a particular feature, structure, or characteristic is described in conjunction with an exemplary embodiment, whether explicitly described or not, it is asserted that such feature, structure, or characteristic can be implemented in conjunction with other embodiments within the knowledge of those skilled in the art.
在讨论中,除非另外规定,否则修饰本公开的示例实施例的一个或多个特征的条件或关系特点的诸如“基本上”和“大约”等形容词被理解为意指该条件或特点被定义为在预期的应用的实施例的操作可接受的公差范围内。In this discussion, unless otherwise specified, adjectives such as “substantially” and “approximately” that modify one or more features of the exemplary embodiments of this disclosure are understood to mean that the condition or feature is defined within the operational tolerances acceptable for the intended application of the embodiment.
许多示例性实施例被描述如下。要注意的是,本文提供的任何章节/子章节标题都不旨在是限制性的。实施例在该文档中描述,并且任何类型的实施例可以被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的实施例可以以任何方式与在相同的章节/子章节和/或不同的章节/子章节中描述的任何其他实施例组合。Many exemplary embodiments are described below. It should be noted that any section/subsection headings provided herein are not intended to be limiting. Embodiments are described in this document, and embodiments of any type may be included under any section/subsection. Furthermore, embodiments disclosed in any section/subsection may be combined in any way with any other embodiments described in the same and/or different sections/subsections.
II.示例实现II. Example Implementation
在隔离计算布置中,应用可以在与计算主机的主要计算环境部分或完全隔离的环境中执行。这种隔离布置可以通过限制和/或防止应用访问主机环境的资源来为主机环境提供附加安全性。在许多情况下,在隔离环境中执行的应用可能未被信任或者可能具有更高的易受恶意活动影响的风险,因此从安全性角度来看,使应用和主机环境之间的隔离屏障变得更加重要。换言之,即使恶意代码在应用的隔离环境中执行,由于隔离屏障,主机环境的风险也可以被最小化。In an isolated computing deployment, applications can run in an environment that is partially or completely isolated from the main computing environment of the host machine. This isolation provides additional security to the host environment by restricting and/or preventing applications from accessing its resources. In many cases, applications running in an isolated environment may be untrusted or potentially more vulnerable to malicious activity; therefore, from a security perspective, establishing a barrier between the application and the host environment becomes crucial. In other words, even if malicious code executes in the application's isolated environment, the risk to the host environment can be minimized due to the isolation barrier.
然而,为了增强用户的体验,可能有意存在隔离屏障中的某些漏洞,诸如通过允许隔离环境中的应用访问主机环境的文件。虽然隔离屏障中的这种漏洞可能会改进隔离环境和主机环境之间的集成,但这些看似良性的增强用户体验的尝试可能会为主机环境创建安全性弱点。作为示例,可能会进入隔离环境的称为勒索软件的恶意代码可以利用只有攻击者知道的加密密钥来加密存储在主机环境中的用户个人数据。在这种情况下,用户被迫向攻击者支付赎金,以重新获得访问自己数据的能力。因此,即使应用可以被隔离,隔离屏障中的开口仍然可能会导致这些和其他类型的弱点。However, to enhance the user experience, certain vulnerabilities may intentionally exist within the isolation barrier, such as allowing applications in the isolated environment to access files in the host environment. While such vulnerabilities in the isolation barrier might improve integration between the isolated and host environments, these seemingly benign attempts to enhance the user experience can create security weaknesses in the host environment. For example, malicious code called ransomware, which could enter the isolated environment, could use encryption keys known only to the attacker to encrypt personal data stored in the host environment. In this scenario, the user is forced to pay a ransom to the attacker to regain access to their data. Therefore, even if applications can be isolated, openings in the isolation barrier can still lead to these and other types of weaknesses.
本文描述的实施例通过提供一种用于能够以信任方式访问资源的系统来解决这些和其他问题。在示例系统中,从至少部分地与其隔离的另一环境(例如在第一环境的虚拟机上执行的应用)接收令牌请求的第一环境可以获得包括信任指示的授权令牌。信任指示可以指示令牌请求被发起的环境的信任级别,该环境可以包括可能容易受到恶意活动影响的不可信环境。当应用尝试使用授权令牌访问信任资源时,资源提供方可能会采取预防动作。The embodiments described herein address these and other problems by providing a system for enabling trusted access to resources. In the example system, a first environment that receives a token request from another environment (e.g., an application running on a virtual machine in the first environment) that is at least partially isolated from it can obtain an authorization token that includes a trust indication. The trust indication can indicate the trust level of the environment in which the token request was initiated, which may include untrusted environments that may be vulnerable to malicious activity. When an application attempts to access a trusted resource using an authorization token, the resource provider may take preventative actions.
通过这种方式,资源可以被保护免受恶意活动或恶意代码的影响,诸如勒索软件或任何其他类型的恶意软件、恶意代码或者未授权实体尝试访问用户资源(例如数据或服务)的突破口。例如,即使攻击者尝试加密用户数据以尝试收集赎金,当攻击者基于授权令牌中所包括的信任指示访问数据时,用户资源的备份副本可能会被自动创建。可能以攻击者无法访问的方式存储和/或加密的用户资源的备份副本可以稍后由用户恢复,使得用户无需向攻击者支付赎金。因此,由不太信任的计算环境的恶意活动造成的危害可以被减少或完全防止。In this way, resources can be protected from malicious activities or malicious code, such as ransomware or any other type of malware, malicious code, or breaches by unauthorized entities attempting to access user resources (such as data or services). For example, even if an attacker attempts to encrypt user data to collect a ransom, a backup copy of the user resource may be automatically created when the attacker accesses the data based on the trust instructions included in the authorization token. This backup copy of the user resource, which may be stored and/or encrypted in a way inaccessible to the attacker, can be later restored by the user, eliminating the need to pay a ransom to the attacker. Therefore, harm caused by malicious activities in a less trusted computing environment can be reduced or completely prevented.
以本文描述的安全方式实现对资源的访问具有许多优点,包括提高网络和/或与其耦合的资源(例如计算设备、存储设备等)的安全性。例如,通过提供包括信任指示的授权令牌,可以响应于接收到授权令牌而提供对资源的访问的资源提供方(其可以是本地资源提供方或通过网络可访问的资源服务器)可以采取一个或多个预防动作来保护资源,诸如创建资源的备份副本,限制访问范围(例如仅提供只读访问,而不是读/写访问),执行增强认证程序(例如双因素认证)或其他预防动作。因此,资源可以被保护免受从环境(被认为是不太安全的环境)发起的恶意活动的影响。此外,因为资源提供方可以接收包括嵌入其中的信任指示的认证令牌,所以资源提供方可以被配置为检测异常网络活动的存在(例如其中特定应用正在利用这种授权令牌访问异常数量的资源)。因此,根据本文描述,在网络上和/或在与其耦合的资源内发生的恶意活动可以被包含、减少和/或防止。Access to resources using the secure methods described herein offers numerous advantages, including enhanced security for the network and/or its coupled resources (e.g., computing devices, storage devices, etc.). For example, by providing an authorization token that includes a trust indication, a resource provider (which may be a local resource provider or a network-accessible resource server) that grants access to the resource in response to receiving the authorization token can take one or more preventative actions to protect the resource, such as creating a backup copy of the resource, restricting access (e.g., providing only read-only access instead of read/write access), implementing enhanced authentication procedures (e.g., two-factor authentication), or other preventative actions. Thus, the resource can be protected against malicious activity originating from an environment (perceived as less secure). Furthermore, because the resource provider can receive an authentication token that includes an embedded trust indication, the resource provider can be configured to detect the presence of anomalous network activity (e.g., where a particular application is using such an authorization token to access an unusually large number of resources). Therefore, as described herein, malicious activity occurring on the network and/or within its coupled resources can be contained, mitigated, and/or prevented.
示例实施例针对用于以安全方式提供对资源的访问的系统和方法被描述如下。例如,图1示出了根据示例实施例的系统100的框图。如图1所示,系统100包括通过网络120通信耦合的计算设备102、授权服务器108和资源服务器112以及耦合至资源服务器112的安全资源116。系统100可以包括任何数量的计算设备和/或服务器,包括图1所图示的那些和可选的未明确图示的一个或多个其他设备。如图1所示,计算设备102包括托管在其中的虚拟机104和授权令牌管理器106。如下面更详细描述的,授权令牌管理器106可以被配置为从在虚拟机104上执行的应用接收令牌请求,获得具有信任指示的授权令牌,并且将包括信任指示的授权令牌提供给虚拟机104中的应用。授权服务器108包括令牌发行者110。资源服务器112包括资源管理器114。虽然图1是相对于在虚拟机104上执行的应用描述的,但这种实现并非旨在进行限制。如稍后描述的,令牌请求可以产生的其他类型的部分和/或完全隔离的计算环境也被设想。系统100进一步被描述如下。Example embodiments are described below for systems and methods used to securely provide access to resources. For example, FIG1 shows a block diagram of system 100 according to an example embodiment. As shown in FIG1, system 100 includes a computing device 102, an authorization server 108, and a resource server 112 communicatively coupled via a network 120, and a secure resource 116 coupled to the resource server 112. System 100 may include any number of computing devices and/or servers, including those illustrated in FIG1 and one or more other devices not explicitly illustrated. As shown in FIG1, computing device 102 includes a virtual machine 104 hosted therein and an authorization token manager 106. As described in more detail below, authorization token manager 106 may be configured to receive a token request from an application executing on virtual machine 104, obtain an authorization token with a trust indication, and provide the authorization token including the trust indication to the application in virtual machine 104. Authorization server 108 includes a token issuer 110. Resource server 112 includes a resource manager 114. Although FIG1 is described with respect to an application executing on virtual machine 104, this implementation is not intended to be limiting. As described later, other types of partially and/or fully isolated computing environments that token requests can generate are also envisioned. System 100 is further described below.
网络120可以包括局域网(LAN)、广域网(WAN)、个域网(PAN)、诸如互联网等通信网络的组合和/或虚拟网络中的任何一个中的一个或多个。在示例实现中,计算设备102、授权服务器108、资源服务器112和/或安全资源116可以经由网络120被彼此通信耦合。在实现中,计算设备102、授权服务器108、资源服务器112和/或安全资源116中的任何一个或多个可以经由一个或多个应用编程接口(API)和/或根据其他接口和/或技术通信。计算设备102、授权服务器108、资源服务器112和/或安全资源116可以分别包括能够彼此通信的至少一个网络接口。这种有线或无线网络接口的示例包括IEEE 802.11无线LAN(WLAN)无线接口、全球微波接入互通(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。网络接口的其他示例在本文其他地方描述。Network 120 may include one or more of any of a local area network (LAN), a wide area network (WAN), a personal area network (PAN), a combination of communication networks such as the Internet, and/or a virtual network. In an example implementation, computing device 102, authorization server 108, resource server 112, and/or security resource 116 may be communicatively coupled to each other via network 120. In the implementation, any one or more of computing device 102, authorization server 108, resource server 112, and/or security resource 116 may communicate via one or more application programming interfaces (APIs) and/or according to other interfaces and/or technologies. Computing device 102, authorization server 108, resource server 112, and/or security resource 116 may each include at least one network interface capable of communicating with each other. Examples of such wired or wireless network interfaces include IEEE 802.11 Wireless LAN (WLAN) wireless interfaces, Wi-MAX interfaces, Ethernet interfaces, Universal Serial Bus (USB) interfaces, cellular network interfaces, Bluetooth ™ interfaces, Near Field Communication (NFC) interfaces, etc. Other examples of network interfaces are described elsewhere in this article.
计算设备102包括一个或多个用户(例如个人用户、家庭用户、企业用户、政府用户等)的任何计算设备,该计算设备可以包括一个或多个应用、操作系统、虚拟机、存储设备等,其可以在其中或经由一个或多个其他计算设备经由网络120执行、托管和/或存储。在一些示例中,计算设备102可以访问一个或多个服务器设备,诸如认证服务器108和/或资源服务器112,以访问一个或多个安全资源116,如本文描述的。计算设备102可以包括任何数量的计算设备,包括数十、数百、数千、数百万甚或更多数量的计算设备。计算设备102的计算设备可以分别是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如设备、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机(诸如苹果iPadTM、上网本等)、移动电话、可穿戴计算设备或者其他类型的移动设备或者静止计算设备(诸如台式计算机或PC(个人计算机)或服务器)。计算设备102不被限于物理机,而是可以包括其他类型的机器或节点,诸如虚拟机。计算设备102可以分别通过API和/或其他机制与授权服务器108和/或资源服务器112接口连接。要注意的是,可能存在任何数量的程序接口。Computing device 102 includes any computing device belonging to one or more users (e.g., individual users, home users, enterprise users, government users, etc.). This computing device may include one or more applications, operating systems, virtual machines, storage devices, etc., which may be executed, hosted, and/or stored within or via one or more other computing devices through network 120. In some examples, computing device 102 may access one or more server devices, such as authentication server 108 and/or resource server 112, to access one or more security resources 116, as described herein. Computing device 102 may include any number of computing devices, including tens, hundreds, thousands, millions, or even more. The computing device 102 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., devices, personal digital assistants (PDAs), laptops, notebook computers, tablet computers (such as Apple iPad ™ , netbooks, etc.), mobile phones, wearable computing devices, or other types of mobile or stationary computing devices (such as desktop computers or PCs (personal computers)) or servers. The computing device 102 is not limited to a physical machine but can include other types of machines or nodes, such as virtual machines. The computing device 102 can interface with the authorization server 108 and/or resource server 112 via APIs and/or other mechanisms. It should be noted that any number of program interfaces may exist.
授权服务器108可以包括用于向请求这种令牌的网络120的计算设备发行一个或多个授权令牌的任何计算设备、服务器和/或服务。如下面将更详细地描述的,授权令牌可以包括使计算设备、计算环境和/或应用能够访问资源的任何对象(例如数据集)。例如,授权令牌可以是文件或其他对象,其包括以下各项中的一项或多项:令牌的标识符、关联的登录会话的标识符、请求访问的应用的标识符、请求访问的应用用户的用户标识符以及由授权令牌提供的一个或多个特权的指示。Authorization server 108 may include any computing device, server, and/or service for issuing one or more authorization tokens to computing devices of network 120 that request such tokens. As described in more detail below, authorization tokens may include any object (e.g., a dataset) that enables computing devices, computing environments, and/or applications to access resources. For example, an authorization token may be a file or other object that includes one or more of the following: an identifier for the token, an identifier for the associated login session, an identifier for the application requesting access, a user identifier for the user of the application requesting access, and an indication of one or more privileges provided by the authorization token.
在一些示例中,授权服务器108可以包括标识服务或标识提供方,其被配置为验证请求授权令牌的实体的身份信息,包括但不限于用户登录凭证(例如用户名和/或密码)、用户别名、账号、生物特征信息或者可以被用于安全访问资源的任何其他信息或凭证。根据实现,授权服务器108的令牌发行者110可以生成并且发行令牌以传输到计算设备102,该令牌还包括信任指示,该信任指示可以指示令牌被请求的环境的信任级别和/或旨在被用于访问资源(例如安全资源116)。在一些实例中,授权服务器108可以被配置为基于验证后的身份信息提供对与授权服务器108无关和/或非附属的多个资源的访问。在一些其他实例中,授权服务器108和/或资源服务器112可以包括附属实体和/或可以在单个服务器或服务器集合上实现。In some examples, the authorization server 108 may include an identity service or identity provider configured to verify the identity information of the entity requesting the authorization token, including but not limited to user login credentials (e.g., username and/or password), user aliases, accounts, biometric information, or any other information or credentials that can be used for secure access to resources. Depending on the implementation, the token issuer 110 of the authorization server 108 may generate and issue tokens to be transmitted to the computing device 102. These tokens may also include a trust indication that may indicate the trust level of the environment in which the token is requested and/or is intended to be used to access resources (e.g., secure resource 116). In some instances, the authorization server 108 may be configured to provide access to multiple resources unrelated to and/or not affiliated with the authorization server 108 based on verified identity information. In some other instances, the authorization server 108 and/or resource server 112 may include affiliated entities and/or may be implemented on a single server or a collection of servers.
资源服务器112可以包括任何一个或多个计算设备、服务器、服务、本地过程、远程机器、web服务等,用于由计算设备102的用户托管、管理和/或提供对安全资源116的访问。例如,资源服务器112可以包括位于组织场所和/或耦合至组织的本地网络的服务器、位于远程的服务器、基于云的服务器(例如以分布式方式的一个或多个服务器)或者可以托管、管理和/或提供对安全资源116的访问的任何其他设备或服务。安全资源116可以包括耦合至网络的任何类型的资源,包括但不限于计算或处理资源、软件资源(例如软件即服务(SaaS)、平台即服务(PaaS)等)、存储资源(例如物理存储设备、本地存储设备、基于云的存储装置、硬盘驱动器、固态驱动器、随机存取存储器(RAM)设备等)、数据库等。Resource server 112 may include any one or more computing devices, servers, services, local processes, remote machines, web services, etc., for hosting, managing, and/or providing access to secure resource 116 by users of computing device 102. For example, resource server 112 may include servers located at an organizational site and/or coupled to an organization's local network, remote servers, cloud-based servers (e.g., one or more servers in a distributed manner), or any other device or service that can host, manage, and/or provide access to secure resource 116. Secure resource 116 may include any type of resource coupled to the network, including but not limited to computing or processing resources, software resources (e.g., Software as a Service (SaaS), Platform as a Service (PaaS), etc.), storage resources (e.g., physical storage devices, local storage devices, cloud-based storage devices, hard disk drives, solid-state drives, random access memory (RAM) devices, etc.), databases, etc.
例如,安全资源116可以包括用于存储机密的、关键的、私有的、安全的和/或不打算以其他方式公开传播的任何数据(诸如个人信息、教育信息、健康信息、专业信息、组织或公司信息、银行或其他金融记录、法律文档、诸如出生证明等传记信息、驾照、护照等)的存储设备。这些示例仅是说明性的,并且安全资源116可以包括任何其他类型的数据(包括机密信息和非机密信息),这些信息可以被存储在任何设备中,无论是本地的和/或基于云的存储装置。在一些示例中,安全资源116可以以安全方式存储,诸如经由密码保护、加密(例如公钥和私钥加密、对称密钥等)或者相关领域的技术人员了解的任何其他安全方式,使得读/写访问只可以由数据的所有者提供。For example, secure resource 116 may include a storage device for storing any data that is confidential, critical, private, secure, and/or not intended to be otherwise publicly disclosed (such as personal information, educational information, health information, professional information, organizational or company information, bank or other financial records, legal documents, biographical information such as birth certificates, driver's licenses, passports, etc.). These examples are merely illustrative, and secure resource 116 may include any other type of data (including confidential and non-confidential information) that can be stored on any device, whether local and/or cloud-based storage. In some examples, secure resource 116 may be stored securely, such as through password protection, encryption (e.g., public and private key encryption, symmetric keys, etc.), or any other secure method known to those skilled in the art, such that read/write access can only be granted by the data owner.
在示例实施例中,计算设备102可以包括多个计算环境,包括但不限于主机计算环境(例如计算设备102的初级操作系统正在其上执行的环境)以及可能与主机计算环境完全或部分隔离的一个或多个其他计算环境。例如,这种隔离环境可以包括虚拟机104和/或在其中执行的应用。在示例中,虚拟机104和/或在其中执行的应用可能被隔离机制(例如由主机操作系统管理的容器等)限制访问隔离环境之外的资源,而没有在隔离屏障或授权令牌中提供的“漏洞”,从而许可(permit)在隔离环境中执行的应用访问外部资源(例如存储在主机计算环境中和/或存储在经由网络120可访问的另一设备中)。In the example embodiment, computing device 102 may include multiple computing environments, including but not limited to a host computing environment (e.g., an environment on which the primary operating system of computing device 102 is running) and one or more other computing environments that may be completely or partially isolated from the host computing environment. For example, such an isolated environment may include virtual machine 104 and/or applications running therein. In the example, virtual machine 104 and/or applications running therein may be restricted from accessing resources outside the isolated environment by isolation mechanisms (e.g., containers managed by the host operating system), without any “loophole” provided in the isolation barrier or authorization token that permits the application running in the isolated environment to access external resources (e.g., stored in the host computing environment and/or stored in another device accessible via network 120).
在示例中,当虚拟机104的应用期望访问虚拟机104之外的资源时,该应用可以向授权令牌管理器106提供对适当的授权令牌的令牌请求。根据实现,授权令牌管理器106可以被配置为向令牌请求分配信任级别。例如,信任级别可以指示虚拟机104和/或在其中执行的应用未被信任和/或容易受到损害或破坏。授权令牌管理器106可以向令牌发行者110提供令牌请求和分配的信任级别以获得授权令牌。令牌发行者110可以验证身份信息(例如登录凭证),并且生成包括嵌入其中的信任指示的授权令牌。令牌发行者110可以向授权令牌管理器106提供包括嵌入的信任指示的授权令牌,授权令牌管理器106可以向在虚拟机104中执行的请求应用提供授权令牌。In the example, when an application in virtual machine 104 requests access to resources outside of virtual machine 104, the application can submit a token request for an appropriate authorization token to authorization token manager 106. Depending on the implementation, authorization token manager 106 can be configured to assign a trust level to the token request. For example, the trust level could indicate that virtual machine 104 and/or the application executing therein is not trusted and/or vulnerable to harm or corruption. Authorization token manager 106 can submit a token request and the assigned trust level to token issuer 110 to obtain an authorization token. Token issuer 110 can verify identity information (e.g., login credentials) and generate an authorization token that includes an embedded trust indication. Token issuer 110 can provide authorization token including the embedded trust indication to authorization token manager 106, which can then provide the authorization token to the requesting application executing in virtual machine 104.
当应用尝试使用授权令牌访问诸如安全资源116等外部资源时,资源管理器114可以提取授权令牌中的信任指示。因此,在信任指示指示授权令牌是在未被信任的环境中发起的情况下(例如可能容易受到各种类型的恶意行为,诸如勒索软件攻击),资源管理器114可以执行预防动作(例如创建备份)以在提供对应用的访问之前保护安全资源116。When an application attempts to access an external resource such as secure resource 116 using an authorization token, resource manager 114 can extract a trust indication from the authorization token. Therefore, if the trust indication indicates that the authorization token was issued in an untrusted environment (e.g., potentially vulnerable to various types of malicious activity, such as ransomware attacks), resource manager 114 can perform preventative actions (e.g., creating a backup) to protect secure resource 116 before granting access to the application.
要注意和理解的是,实现不被限于图1所示的说明性布置。相反,网络120可以包括以任何方式耦合的任何数量的计算设备和/或服务器(包括但不限于机器和/或虚拟机)。例如,尽管计算设备102被示出为与授权服务器108、资源服务器112和安全资源116分离,但是在实施例中,计算设备102、授权服务器108、资源服务器112和/或安全资源(或其中的组件)中的一个或多个可以位于同一地点,彼此远离,可以在单个计算设备或虚拟机上实现,或者可以在未在图1中明确图示的一个或多个附加计算设备或虚拟机上实现或分布。授权令牌管理器、令牌发行者110、资源管理器114和安全资源116可以在计算设备中实现的布置的示例在图6中图示,如下面更详细地描述的。It should be noted and understood that the implementation is not limited to the illustrative arrangement shown in Figure 1. Rather, network 120 may include any number of computing devices and/or servers (including, but not limited to, machines and/or virtual machines) coupled in any manner. For example, although computing device 102 is shown as separate from authorization server 108, resource server 112, and security resource 116, in embodiments, one or more of computing device 102, authorization server 108, resource server 112, and/or security resource (or components thereof) may be located in the same location, remote from each other, may be implemented on a single computing device or virtual machine, or may be implemented or distributed across one or more additional computing devices or virtual machines not explicitly illustrated in Figure 1. An example of an arrangement in which the authorization token manager, token issuer 110, resource manager 114, and security resource 116 may be implemented in a computing device is illustrated in Figure 6, as described in more detail below.
授权令牌管理器106可以以各种方式操作以能够以安全方式访问资源。例如,授权令牌管理器106可以根据图2进行操作。图2示出了根据示例实施例的用于向应用提供包括信任指示的授权的方法的流程图200。出于说明性目的,流程图200和授权令牌管理器106相对于图3描述如下。The authorization token manager 106 can operate in various ways to enable secure access to resources. For example, the authorization token manager 106 can operate according to FIG2. FIG2 shows a flowchart 200 of a method for providing authorization, including a trust indication, to an application according to an example embodiment. For illustrative purposes, flowchart 200 and authorization token manager 106 are described below with respect to FIG3.
图3示出了根据示例实施例的用于以安全方式提供对网络资源的访问的系统300的框图。如图3所示,系统300包括计算设备102、授权服务器108和资源服务器112的示例实现。计算设备102包括虚拟机104和授权令牌管理器106。虚拟机104可以包括在其中执行的应用302。授权令牌管理器106可以包括信任级别分配器304和令牌请求者306。授权服务器108包括令牌发行者110。令牌发行者110包括身份验证器314和令牌生成器316。资源服务器包括资源管理器114。资源管理器114包括资源访问提供方318和资源保护器320。资源管理器114可以被耦合至安全资源116和资源快照322。如图3的系统300所示,授权令牌管理器106可以将令牌请求308和关联的信任级别310传输到令牌发行者110。令牌发行者110可以生成包括可以被嵌入其中的信任指示的授权令牌312。授权令牌管理器106可以向应用302提供授权令牌。随后,当应用302向资源管理器114提供授权令牌以访问安全资源116时,资源管理器114可以被配置为执行预防动作以在提供对这种资源的访问之前保护安全资源116。流程图200和系统300更详细地描述如下。Figure 3 illustrates a block diagram of a system 300 for providing secure access to network resources according to an example embodiment. As shown in Figure 3, system 300 includes an example implementation of a computing device 102, an authorization server 108, and a resource server 112. The computing device 102 includes a virtual machine 104 and an authorization token manager 106. The virtual machine 104 may include an application 302 executed therein. The authorization token manager 106 may include a trust level allocator 304 and a token requester 306. The authorization server 108 includes a token issuer 110. The token issuer 110 includes an authenticator 314 and a token generator 316. The resource server includes a resource manager 114. The resource manager 114 includes a resource access provider 318 and a resource protector 320. The resource manager 114 may be coupled to a secure resource 116 and a resource snapshot 322. As shown in system 300 of Figure 3, the authorization token manager 106 may transmit a token request 308 and an associated trust level 310 to the token issuer 110. Token issuer 110 can generate an authorization token 312 that includes a trust indication that can be embedded therein. Authorization token manager 106 can provide the authorization token to application 302. Subsequently, when application 302 provides the authorization token to resource manager 114 to access secure resource 116, resource manager 114 can be configured to perform preventative actions to protect secure resource 116 before granting access to such resource. Flowchart 200 and system 300 are described in more detail below.
图2的流程图200开始于步骤202。在步骤202中,令牌请求从至少部分地与第一计算环境隔离的第二计算环境中执行的应用接收以访问资源。例如,参照图3,信任级别分配器304可以被配置为从应用302接收令牌请求324。虚拟机104可以包括与另一计算环境(例如计算设备102的初级操作系统可能正在执行的主机环境)部分或完全隔离的计算环境。例如,虚拟机104可以包括操作系统(例如与在主机环境中执行的操作系统相同或不同的类型)和/或在其中执行的一个或多个应用。虚拟机104在计算设备102的主要操作系统之上运行。应用302可以包括可以在虚拟机104上执行的任何类型的应用,包括但不限于安装在虚拟机104中或从远程计算或服务器访问的软件封装、web应用、web服务或者可以在虚拟机104上或内执行的任何其他代码或二进制。在示例实施例中,虚拟机104和/或应用302可能由于任何数量的因素而未被信任(例如可能不安全,易受恶意代码的执行影响等),包括但不限于由虚拟机104的用户执行的应用的类型、由用户访问的可能潜在地利用应用302和/或虚拟机104的远程服务或网站、和/或虚拟机104或应用302本身的固有方面(例如在虚拟机104上执行的操作系统可能被视为完全不可信)。Flowchart 200 of Figure 2 begins at step 202. In step 202, a token request is received from an application executing in a second computing environment that is at least partially isolated from the first computing environment to access resources. For example, referring to Figure 3, a trust level allocator 304 may be configured to receive a token request 324 from application 302. Virtual machine 104 may include a computing environment that is partially or completely isolated from another computing environment (e.g., a host environment where the primary operating system of computing device 102 may be executing). For example, virtual machine 104 may include an operating system (e.g., of the same or different type as the operating system executing in the host environment) and/or one or more applications executing therein. Virtual machine 104 runs on top of the primary operating system of computing device 102. Application 302 may include any type of application that can execute on virtual machine 104, including but not limited to software packages, web applications, web services, or any other code or binaries that can execute on or within virtual machine 104 or that are installed in or accessed from a remote computing or server. In the example embodiment, virtual machine 104 and/or application 302 may be untrusted due to any number of factors (e.g., may be insecure, vulnerable to execution of malicious code, etc.), including but not limited to the type of application executed by the user of virtual machine 104, remote services or websites accessed by the user that may potentially exploit application 302 and/or virtual machine 104, and/or inherent aspects of virtual machine 104 or application 302 itself (e.g., the operating system running on virtual machine 104 may be considered completely untrusted).
虽然在图3中描绘了计算设备102可以包括虚拟机和在其中执行的应用,但是实现不被限于该特定布置。例如,计算设备102上的隔离计算环境可以包括在计算设备102上(例如在主机环境的相同初级操作系统上)执行的应用,诸如在访客、私有或隐身模式、包括一个或者完全或部分隔离的容器或沙盒过程或应用的布置、与第二CPU的计算环境(在相同或不同的电路板或主板上)分离的第一中央处理单元(CPU)的计算环境或者完整或部分隔离边界可以在执行应用和主机计算环境之间实现的其他模式或布置中执行的应用。Although Figure 3 depicts computing device 102 as potentially including virtual machines and applications running therein, implementations are not limited to this particular arrangement. For example, an isolated computing environment on computing device 102 may include applications running on computing device 102 (e.g., on the same primary operating system as the host environment), such as in guest, private, or stealth modes, arrangements including one or more fully or partially isolated containerized or sandboxed processes or applications, computing environments of a first central processing unit (CPU) separated from the computing environment of a second CPU (on the same or different circuit boards or motherboards), or applications running in other modes or arrangements where a fully or partially isolated boundary can be established between the executing application and the host computing environment.
在示例中,通过用户交互或响应于在虚拟机104上执行的软件,应用302可以尝试连接至虚拟机104外部的资源,诸如安全资源116。例如,应用302可以尝试连接至远离虚拟机104和/或计算设备102的基于云的文件服务器。为了访问这种安全资源116,应用302可能需要向资源管理器114提供适当的授权令牌。在实现中,由应用302生成的对这种授权令牌的令牌请求可以被重定向,使得令牌请求被提供给主机计算环境。例如,参照图3,由应用302发起的对授权令牌的请求可以被重定向到信任级别分配器304,指示该应用正在寻求访问某些资源。信任级别分配器304可以通过在虚拟机104和计算设备102的主机计算环境之间实现的隔离屏障中提供的一个或多个漏洞来接收这种请求。In the example, through user interaction or in response to software executing on virtual machine 104, application 302 may attempt to connect to resources outside virtual machine 104, such as secure resource 116. For example, application 302 may attempt to connect to a cloud-based file server remote from virtual machine 104 and/or computing device 102. To access such secure resource 116, application 302 may need to provide an appropriate authorization token to resource manager 114. In the implementation, the token request for such authorization token generated by application 302 can be redirected so that the token request is provided to the host computing environment. For example, referring to Figure 3, the request for authorization token initiated by application 302 can be redirected to trust level allocator 304, indicating that the application is seeking access to certain resources. Trust level allocator 304 can receive such requests through one or more vulnerabilities provided in the isolation barrier implemented between virtual machine 104 and the host computing environment of computing device 102.
由信任级别分配器304从应用302接收的授权请求可以包括访问被请求的资源的标识(例如安全资源116的标识)、请求应用的标识、适当授权实体(例如标识提供方)的登录凭证、请求的访问类型(例如只读访问、读/写访问等)、令牌被请求的时间长度以及相关领域的技术人员了解的可以与授权令牌请求相关联的任何其他信息等。The authorization request received by the trust level allocator 304 from the application 302 may include an identifier for accessing the requested resource (e.g., an identifier for security resource 116), an identifier for the requesting application, login credentials for the appropriate authorization entity (e.g., an identifier provider), the type of access requested (e.g., read-only access, read/write access, etc.), the duration for which the token is requested, and any other information that may be associated with the authorization token request and is known to a person skilled in the art.
在步骤204中,信任级别被分配给令牌请求。例如,参照图3,信任级别分配器304可以被配置为向由在虚拟机104中执行的应用302接收的令牌请求分配信任级别。在一些示例中,如早前描述的,虚拟机104和/或在其中执行的一个或多个应用可以被视为不可信。在这种示例中,信任级别分配器304可以分配指示请求令牌请求的实体(例如通过标识应用302和/或虚拟机104)未被信任的信任级别。在一些其他实现中,信任级别分配器304可以分配信任级别,该信任级别包括可以基于预定比例指示令牌请求的可信度级别的等级,诸如字母数字值。In step 204, a trust level is assigned to the token request. For example, referring to FIG3, a trust level allocator 304 can be configured to assign a trust level to a token request received by an application 302 executing in virtual machine 104. In some examples, as previously described, virtual machine 104 and/or one or more applications executing therein can be considered untrusted. In such an example, trust level allocator 304 can assign a trust level indicating that the entity requesting the token request (e.g., by identifying that application 302 and/or virtual machine 104) is not trusted. In some other implementations, trust level allocator 304 can assign a trust level that includes a gradation, such as an alphanumeric value, that can indicate the level of trustworthiness of the token request based on a predetermined proportion.
在示例中,信任级别分配器304可以以各种方式分配信任级别。例如,信任级别分配器304可以基于关于隔离计算环境的特点的预定知识(例如存储在数据库或其他数据结构中)来分配信任级别,诸如虚拟机104、在虚拟机104上执行的操作系统和/或可能在其中执行的任何其他应用302的标识。在一个说明性示例中,信任级别分配器304可以自动地认为源自隔离环境的某些类型的令牌请求(或所有令牌请求)未被信任,并因此将降低的信任级别分配给每个这种令牌请求。在其他示例中,信任级别分配器304可以将降低的信任级别分配给与某些应用、操作系统或虚拟机相关联的令牌请求,这些应用、操作系统或虚拟机可以作为计算设备102上的隔离环境的一部分托管。在其他示例中,信任级别分配器304可以基于即时确定向从应用302接收的令牌请求分配信任级别。信任级别可以以任何形式指示,包括数值(例如在0到10范围内,其中“0”表示不信任,并且“10”表示最高信任)、文本值(例如“高”、“中等”、“低”、“无”等)、字母数字值、字符串等。In the example, trust level allocator 304 can allocate trust levels in various ways. For example, trust level allocator 304 can allocate trust levels based on predetermined knowledge about the characteristics of the isolated computing environment (e.g., stored in a database or other data structure), such as the identifiers of virtual machine 104, the operating system running on virtual machine 104, and/or any other application 302 that may be running there. In an illustrative example, trust level allocator 304 can automatically assume that certain types of token requests (or all token requests) originating from the isolated environment are untrusted and therefore assign a reduced trust level to each such token request. In other examples, trust level allocator 304 can assign a reduced trust level to token requests associated with certain applications, operating systems, or virtual machines that may be hosted as part of the isolated environment on computing device 102. In other examples, trust level allocator 304 can assign trust levels to token requests received from application 302 based on on-the-fly determination. Trust levels can be indicated in any form, including numerical values (e.g., in the range of 0 to 10, where "0" means no trust and "10" means the highest trust), text values (e.g., "high", "medium", "low", "none", etc.), alphanumeric values, strings, etc.
在步骤206中,包括与令牌请求的信任级别相对应的信任指示的授权令牌被获得。例如,参照图3,令牌请求者306可以获得包括来自令牌发行者110的信任指示的授权令牌312。令牌请求者306可以以各种方式获得授权令牌312。在图3所示的说明性布置中,例如令牌请求者306可以被配置为从信任级别分配器304获得328信任级别310。令牌请求者306可以发送332信任级别310,以及根据一个或多个API或网络调用将令牌请求308发送330给令牌发行者110的身份验证器314。令牌请求308可以包括与先前描述的所请求的访问相关联的信息,诸如登录凭证、要被访问的资源的标识、请求的访问范围等。令牌请求308可以对应于由信任级别分配者从应用302接收的令牌请求304(例如以访问资源)和关联的信任级别。例如,在信任级别分配指示虚拟机104和/或应用302未被信任的信任级别的情况下,令牌请求者306可以将令牌请求308和分配的信任级别310传输到适当的令牌发行服务,以获得能够访问请求的资源的令牌。In step 206, an authorization token, including a trust indication corresponding to the trust level of the token request, is obtained. For example, referring to FIG3, token requester 306 may obtain authorization token 312 including a trust indication from token issuer 110. Token requester 306 may obtain authorization token 312 in various ways. In the illustrative arrangement shown in FIG3, for example, token requester 306 may be configured to obtain trust level 310 328 from trust level allocator 304. Token requester 306 may send trust level 310 332 and authenticator 314 that sends token request 308 330 to token issuer 110 based on one or more API or network calls. Token request 308 may include information associated with the requested access described previously, such as login credentials, an identifier of the resource to be accessed, the scope of the requested access, etc. Token request 308 may correspond to token request 304 (e.g., for accessing a resource) and associated trust level received by trust level allocator from application 302. For example, if the trust level assignment indicates that virtual machine 104 and/or application 302 are not trusted at a certain trust level, token requester 306 can transmit token request 308 and the assigned trust level 310 to the appropriate token issuance service to obtain a token that enables access to the requested resource.
在实现中,令牌请求308可以与信任级别310分开发送(例如在不同的数据分组中、顺序地、乱序等)。在一些其他示例中,令牌请求308和信任级别310可以被一起发送(例如作为相同数据分组或数据分组集合的一部分)。例如,信任级别310可以作为标签、标识符、标记、标志、声明、元数据、与请求相关联的新的或修订的范围等被附加到令牌请求308、包括在令牌请求308中或以其他方式与令牌请求308一起发送。实现不被限于这些说明性示例,并且可以包括将信任级别310与令牌请求308一起传输到令牌发行者(例如令牌发行者110)的任何其他方式,令牌请求308可以指示令牌请求的可信度信息(例如虚拟机104和/或应用302的信任级别)。In implementation, token request 308 may be sent separately from trust level 310 (e.g., in different data packets, sequentially, out of order, etc.). In some other examples, token request 308 and trust level 310 may be sent together (e.g., as part of the same data packet or set of data packets). For example, trust level 310 may be attached to, included in, or otherwise sent with token request 308 as a tag, identifier, mark, flag, claim, metadata, new or revised scope associated with the request, etc. Implementations are not limited to these illustrative examples and may include any other means of transmitting trust level 310 along with token request 308 to a token issuer (e.g., token issuer 110), whereby token request 308 may indicate trust information for the token request (e.g., the trust level of virtual machine 104 and/or application 302).
在示例中,令牌生成器316可以生成授权令牌312,其包括指示令牌可以被使用的环境的信任级别的信任指示。信任指示可以包括任何合适的格式(例如数字、文本、字符串等),并且可以被包括在授权令牌312内、附加到授权令牌312、与授权令牌312合并或以其他方式与授权令牌312相关联。例如,信任指示可以类似地包括标签、标识符、标记、标志、声明、元数据、新的或修订的范围等,它们是授权令牌312的一部分或与授权令牌312集成在一起。在授权令牌312是文件的示例中,信任指示可以被写入现有字段或作为文件的新条目。通过包括信任指示,授权令牌312被认为是“已标记的”。因此,在实现中,授权令牌312可以包括指示请求实体可能不安全的标记令牌。在示例中,令牌生成器316可以将包括信任指示的授权令牌312发送334给令牌请求者306(例如通过网络)。In the example, token generator 316 can generate authorization token 312, which includes a trust indication indicating the trust level of the environment in which the token can be used. The trust indication can include any suitable format (e.g., numbers, text, strings, etc.) and can be included within, appended to, merged with, or otherwise associated with authorization token 312. For example, the trust indication can similarly include tags, identifiers, marks, flags, claims, metadata, new or revised scopes, etc., which are part of or integrated with authorization token 312. In the example where authorization token 312 is a file, the trust indication can be written into existing fields or as a new entry in the file. By including the trust indication, authorization token 312 is considered "tagged." Therefore, in the implementation, authorization token 312 can include a tag indicating that the requesting entity may be insecure. In the example, token generator 316 can send authorization token 312 including the trust indication to token requester 306 (e.g., via a network).
在步骤208中,包括信任指示的授权令牌被提供给在第二计算环境中执行的应用。例如,参照图3,令牌请求者306可以被配置为向在虚拟机104上执行的应用302提供326包括信任指示的授权令牌312。在实现中,令牌请求者306可以在不修改授权令牌的情况下将授权令牌312传递给应用302。应用302然后可以使用授权令牌312来访问资源,诸如安全资源116(或可以被存储在计算设备102本地的资源)。在示例中,因为信任指示被包括作为授权令牌312的一部分,应用302(或可能在虚拟机104上执行的任何恶意代码)可能不会更改接收到的授权令牌。换言之,如果授权令牌被发生在潜在受损环境(例如虚拟机104)中的任何活动更改,则更改的授权令牌将无法访问资源提供方的资源,因为更改的授权令牌无法在资源提供方和授权服务(例如令牌发行者110和资源管理器114,如图3的示例所示)之间核实。因此,信任指示可以以无法被修改的方式嵌入到授权令牌中,从而增强授权令牌的完整性。In step 208, an authorization token including a trust indication is provided to the application executing in the second computing environment. For example, referring to FIG3, a token requester 306 may be configured to provide an authorization token 312 including a trust indication to an application 302 executing on virtual machine 104. In an implementation, the token requester 306 may pass the authorization token 312 to the application 302 without modifying the authorization token. The application 302 can then use the authorization token 312 to access resources, such as secure resource 116 (or resources that may be stored locally on computing device 102). In the example, because the trust indication is included as part of the authorization token 312, the application 302 (or any malicious code that may be executing on virtual machine 104) may not change the received authorization token. In other words, if the authorization token is changed by any activity occurring in a potentially compromised environment (e.g., virtual machine 104), the changed authorization token will not be able to access the resource provider's resources because the changed authorization token cannot be verified between the resource provider and the authorization service (e.g., token issuer 110 and resource manager 114, as shown in the example of FIG3). Therefore, trust instructions can be embedded into the authorization token in a way that cannot be modified, thereby enhancing the integrity of the authorization token.
如下面将更详细地描述的,当应用302尝试通过将接收到的授权令牌发送336给适当的资源提供方来访问资源时,资源提供方可以被配置为提取(例如读取或复制)来自授权令牌的信任指示,并且确定预防动作是否应该在提供对资源的访问之前执行。例如,在资源保护器320提取指示应用302和/或虚拟机104可能不安全的信任指示的情况下,资源保护器320可以被配置为通过在授权(grant)对这种资源的访问338之前创建请求的资源的备份(例如通过创建资源快照322)来保护安全资源116。描绘执行预防动作以保护资源的示例流程图在下面将相对于图6更详细地描述。As will be described in more detail below, when application 302 attempts to access a resource by sending the received authorization token 336 to the appropriate resource provider, the resource provider can be configured to extract (e.g., read or copy) the trust indication from the authorization token and determine whether preventative actions should be performed before granting access to the resource. For example, if resource protector 320 extracts a trust indication indicating that application 302 and/or virtual machine 104 may be insecure, resource protector 320 can be configured to protect the secure resource 116 by creating a backup of the requested resource (e.g., by creating a resource snapshot 322) before granting access to such resource 338. An example flowchart depicting the execution of preventative actions to protect the resource will be described in more detail below relative to Figure 6.
如上所述,令牌发行者110可以被配置为以各种方式生成包括信任指示的授权令牌。例如,图4示出了根据示例实施例的用于生成包括信任指示的授权令牌的方法的流程图400。在实现中,流程图400的方法可以由身份验证器314和令牌生成器316实现。图4继续参照图3来描述。基于关于流程图400和图3的系统300的以下讨论,其他结构和操作实现对于(多个)相关领域的技术人员来说将是明显的。As described above, token issuer 110 can be configured to generate authorization tokens including trust indications in various ways. For example, FIG4 shows a flowchart 400 of a method for generating authorization tokens including trust indications according to an example embodiment. In an implementation, the method of flowchart 400 can be implemented by authenticator 314 and token generator 316. FIG4 continues to be described with reference to FIG3. Based on the following discussion of flowchart 400 and system 300 of FIG3, other structural and operational implementations will be apparent to those skilled in the art.
流程图400开始于步骤402。在步骤402中,令牌请求被接收,该令牌请求包括身份信息和令牌请求是在至少部分地与第一计算环境隔离的第二计算环境的应用中发起的指示。例如,参照图3,授权服务器108的身份验证器314可以被配置为接收令牌请求308,该令牌请求308包括身份信息和指示关联信任级别的信任级别310。在示例中,身份信息可以包括用户登录凭证(例如用户名和/或密码)、用户别名、账号、生物特征信息或者身份验证器314可以验证以确定是否许可访问资源(例如安全资源116)的任何其他信息或凭证中的一个或多个。如早前描述的,信任级别310可以包括对应于令牌请求308被发起的环境的信任级别的信息。例如,参照图3,信任级别310可以指示与在虚拟机104中执行的应用302相关联的信任级别。在其他示例中,信任级别310可以包括指示请求是在不同于主机计算环境或者在主机计算环境内执行的环境中发起的标志或其他指示。这些示例仅是说明性的,并且信任级别310可以包括指示令牌请求308可能源自潜在不可信环境的任何类型的信息(例如标志、标记、声明、元数据等)。Flowchart 400 begins at step 402. In step 402, a token request is received, which includes identity information and an indication that the token request was initiated in an application in a second computing environment at least partially isolated from the first computing environment. For example, referring to Figure 3, the authenticator 314 of the authorization server 108 may be configured to receive a token request 308, which includes identity information and a trust level 310 indicating an associated trust level. In this example, the identity information may include one or more of the following: user login credentials (e.g., username and/or password), user alias, account, biometric information, or any other information or credentials that the authenticator 314 can verify to determine whether access to a resource (e.g., secure resource 116) is permitted. As previously described, trust level 310 may include information corresponding to the trust level of the environment in which the token request 308 was initiated. For example, referring to Figure 3, trust level 310 may indicate the trust level associated with the application 302 executing in virtual machine 104. In other examples, trust level 310 may include a flag or other indication indicating that the request was initiated in an environment different from or within the host computing environment. These examples are merely illustrative, and trust level 310 may include any type of information (such as flags, tags, claims, metadata, etc.) that indicates that token request 308 may originate from a potentially untrusted environment.
在步骤404中,身份信息被验证。例如,参照图3,身份验证器314可以被配置为验证在令牌请求308中接收的身份信息,以确定是否许可请求实体获得允许访问所请求资源的授权令牌。身份验证器314可以通过相关领域的技术人员将了解的各种方式来验证身份信息,诸如通过在数据库(例如用户或账号数据库等)中查找身份信息并进行比较,将身份信息提供给另一服务器或服务以进行验证等。例如,如果验证不成功(例如不正确的用户凭证被接收到),则身份验证器314可以确定访问不应被许可,因此没有授权令牌将被提供给应用302。在验证成功的情况下,身份验证器314可以允许令牌生成器316生成适当的授权令牌,该授权令牌可以被提供给应用302以访问所请求的资源。In step 404, the identity information is verified. For example, referring to Figure 3, authenticator 314 can be configured to verify the identity information received in token request 308 to determine whether the requesting entity is permitted to obtain an authorization token allowing access to the requested resource. Authenticator 314 can verify the identity information in various ways that will be known to those skilled in the art, such as by looking up and comparing the identity information in a database (e.g., a user or account database), or by providing the identity information to another server or service for verification. For example, if verification fails (e.g., an incorrect user credential is received), authenticator 314 can determine that access should not be permitted, and therefore no authorization token will be provided to application 302. In the case of successful verification, authenticator 314 can allow token generator 316 to generate an appropriate authorization token, which can be provided to application 302 to access the requested resource.
在步骤406中,包括信任指示的授权令牌被生成。例如,参照图3,令牌生成器316可以被配置为生成授权令牌312,其包括指示令牌请求308被发起的计算环境的信任级别的信任指示。在示例中,信任指示可以指示与虚拟机104和/或在其中执行的应用302相关联的信任级别,诸如通过指示计算环境未被信任。如早前描述的,信任指示可以被嵌入到授权令牌312中,并且可以包括任何合适的形式,包括可以向资源提供方(例如资源服务器112)指示授权令牌可能被不可信的计算环境的应用使用的标签、标记、标志、声明等。In step 406, an authorization token including a trust indication is generated. For example, referring to FIG3, token generator 316 may be configured to generate authorization token 312, which includes a trust indication indicating the trust level of the computing environment in which token request 308 was initiated. In the example, the trust indication may indicate the trust level associated with virtual machine 104 and/or application 302 executed therein, such as by indicating that the computing environment is not trusted. As previously described, the trust indication may be embedded in authorization token 312 and may include any suitable form, including tags, marks, symbols, claims, etc., that may indicate to the resource provider (e.g., resource server 112) that the authorization token may be used by an application in an untrusted computing environment.
在一些示例实现中,针对每个接收到的令牌请求,信任指示可以不同。例如,某些类型的隔离环境(例如已知不安全的某些应用和/或在其中执行的操作系统)可能被认为不如其他应用或操作系统可信,因此针对这种不太可信的应用或操作系统的信任指示可能指示进一步降低的信任级别。在其他示例中,信任指示可以包括不同类型的指示,诸如在应用可能被认为仅潜在地可信的情况下(与被称为不安全相反)。通过这种方式,令牌生成器316可以用适当的信任指示标记授权令牌312,该信任指示指示不可信环境中的应用的信任级别,从而使资源提供方能够基于嵌入的信任指示执行不同的预防措施。In some example implementations, the trust indicator can differ for each received token request. For instance, certain types of isolated environments (e.g., certain applications and/or operating systems running within them that are known to be insecure) may be considered less trustworthy than other applications or operating systems, so the trust indicator for such a less trustworthy application or operating system might indicate a further reduced level of trust. In other examples, the trust indicator may include different types of indicators, such as those for cases where an application might be considered only potentially trustworthy (as opposed to being labeled insecure). In this way, the token generator 316 can tag the authorization token 312 with an appropriate trust indicator that indicates the trust level of the application in an untrusted environment, thereby enabling the resource provider to perform different precautions based on the embedded trust indicator.
授权令牌312可以包括使计算实体(例如应用、服务等)能够访问资源的任何类型的令牌。授权令牌312的示例包括但不限于能够访问web或其他网络可访问资源的web令牌、访问令牌、根据开放授权(OAuth)标准生成的令牌、Windows NT令牌等。授权令牌312可以针对特定请求应用或特定资源生成,或者可以包括与多个这种应用相关联的单个令牌。Authorization token 312 may include any type of token that enables a computing entity (such as an application, service, etc.) to access a resource. Examples of authorization token 312 include, but are not limited to, web tokens, access tokens, tokens generated according to the Open Authorization (OAuth) standard, Windows NT tokens, etc., that enable access to web or other network-accessible resources. Authorization token 312 may be generated for a specific requesting application or a specific resource, or may include a single token associated with multiple such applications.
在一些示例实施例中,令牌生成器316还可以被配置为将每个生成的授权令牌312存储在合适的存储设备中(本地或者在一个或多个基于云的存储装置中)。因此,当应用302通过向资源管理器114提供授权令牌312来尝试访问资源时,资源保护器320可以获得存储在授权服务器108处的授权令牌,以确定在授权对请求资源的访问之前从应用302接收的令牌的真实性。在其他实例中,令牌生成器316还可以被配置为向令牌请求者306重新发送先前生成的和未到期的令牌(包括信任指示),诸如在令牌生成器316先前生成对应于应用302的访问相同资源的授权令牌的情况下。In some example embodiments, the token generator 316 may also be configured to store each generated authorization token 312 in a suitable storage device (locally or in one or more cloud-based storage devices). Thus, when application 302 attempts to access a resource by providing authorization token 312 to resource manager 114, resource protector 320 can obtain the authorization token stored at authorization server 108 to verify the authenticity of the token received from application 302 prior to authorizing access to the requested resource. In other instances, the token generator 316 may also be configured to resend previously generated and expired tokens (including trust indications) to token requester 306, such as where token generator 316 previously generated an authorization token corresponding to application 302's access to the same resource.
在步骤408中,包括信任指示的授权令牌被提供给在第二计算环境中执行的应用。例如,参照图3,令牌生成器316可以被配置为将授权令牌312传输到令牌请求者306以提供给应用302(例如通过隔离边界传递授权令牌312)和/或通过将授权令牌312直接提供给应用302(例如而不将令牌传输到作为中介的令牌请求者306)。如上所述,应用302可以使用授权令牌312来访问所请求的资源。In step 408, an authorization token, including a trust indication, is provided to the application executing in the second computing environment. For example, referring to FIG3, the token generator 316 may be configured to transmit the authorization token 312 to the token requester 306 for provision to the application 302 (e.g., by passing the authorization token 312 across an isolation boundary) and/or by providing the authorization token 312 directly to the application 302 (e.g., without transmitting the token to the token requester 306 as an intermediary). As described above, the application 302 can use the authorization token 312 to access the requested resource.
如本文描述的,资源管理器114可以被配置为响应于接收到授权令牌来保护安全资源116。例如,图5示出了根据示例实施例的用于执行预防动作以保护资源的方法的流程图。在实现中,流程图500的方法可以由资源访问提供方318和资源保护器320实现。图5继续参照图3来描述。基于关于流程图500和图3的系统300的以下讨论,其他结构和操作实现对于(多个)相关领域的技术人员来说将是明显的。As described herein, resource manager 114 can be configured to protect secure resource 116 in response to receiving an authorization token. For example, Figure 5 shows a flowchart of a method for performing preventative actions to protect a resource according to an example embodiment. In an implementation, the method of flowchart 500 can be implemented by resource access provider 318 and resource protector 320. Figure 5 continues to be described with reference to Figure 3. Based on the following discussion of flowchart 500 and system 300 of Figure 3, other structural and operational implementations will be apparent to those skilled in the art.
流程图500开始于步骤502。在步骤502中,授权令牌从计算环境中执行的应用接收。例如,参照图3,资源保护器320可以被配置为经由网络120从虚拟机104中执行的应用302接收授权令牌312。如本文描述的,授权令牌312还可以包括信任指示,该信任指示指示与授权令牌312相关联的环境的信任级别。因此,在该示例中,信任指示可以指示可能正在执行的虚拟机104和/或应用302中的计算环境的信任级别。Flowchart 500 begins at step 502. In step 502, an authorization token is received from an application executing in the computing environment. For example, referring to Figure 3, resource protector 320 may be configured to receive authorization token 312 from application 302 executing in virtual machine 104 via network 120. As described herein, authorization token 312 may also include a trust indicator that indicates the trust level of the environment associated with authorization token 312. Thus, in this example, the trust indicator may indicate the trust level of the computing environment in virtual machine 104 and/or application 302 that may be executing.
然而,要注意的是,在一些其他示例实施例中,授权令牌312可以不包括信任指示,诸如在令牌请求源于信任的环境(例如来自在计算设备的初级操作系统上执行的应用)的情况下。例如,如果信任的应用(或在信任环境中执行的应用)请求授权令牌,则生成的授权可能不包括这种应用的信任指示。因此,在一些示例中,资源保护器320还可以被配置为确定在接收到的授权令牌中是否存在信任指示。However, it should be noted that in some other example embodiments, the authorization token 312 may not include a trust indication, such as when the token request originates from a trusted environment (e.g., from an application running on a primary operating system of a computing device). For example, if a trusted application (or an application running in a trusted environment) requests an authorization token, the generated authorization may not include a trust indication for such an application. Therefore, in some examples, the resource protector 320 may also be configured to determine whether a trust indication is present in the received authorization token.
如早前描述的,在应用302获得授权令牌312之后,应用302可以通过与诸如资源服务器112等适当资源提供方交互来尝试访问与经授权的授权令牌的范围一致的资源。在示例中,应用302还可以结合资源的尝试访问来向资源保护器320提供授权令牌312。资源保护器320可以以与先前描述的类似方式核实授权令牌312的真实性,诸如通过与授权服务器108交互以确定从应用302接收的认证令牌是否有效和/或未到期。As previously described, after application 302 obtains authorization token 312, application 302 may attempt to access resources consistent with the scope of the authorized authorization token by interacting with an appropriate resource provider, such as resource server 112. In the example, application 302 may also provide authorization token 312 to resource protector 320 in conjunction with the attempt to access the resource. Resource protector 320 may verify the authenticity of authorization token 312 in a manner similar to that previously described, such as by interacting with authorization server 108 to determine whether the authentication token received from application 302 is valid and/or has not expired.
在步骤504中,信任指示是从授权令牌提取的。例如,资源保护器320可以被配置为解析授权令牌312以从中提取信任指示。例如,在信任指示作为标识符、标记、标志、声明、元数据等被嵌入到授权令牌312中的情况下,资源保护器320可以提取这种指示。在一些实现中,资源保护器320还可以从授权服务器108获得信任指示(例如当接收到的令牌的真实性被确认时)。In step 504, the trust indication is extracted from the authorization token. For example, resource protector 320 can be configured to parse authorization token 312 to extract the trust indication. For example, resource protector 320 can extract such an indication if it is embedded in authorization token 312 as an identifier, tag, flag, claim, metadata, etc. In some implementations, resource protector 320 may also obtain the trust indication from authorization server 108 (e.g., when the authenticity of the received token is verified).
在步骤506中,确定预防动作要被执行以保护资源。例如,参照图3,资源保护器320可以被配置为响应于接收到授权令牌并且提取信任指示来确定预防动作要被执行以保护资源。例如,在信任指示指示授权令牌312被接收到的环境不可信的情况下,资源保护器320可以确定一个或多个预防动作要被执行以保护安全资源116。预防动作可以包括为防止(例如抢先)或减轻对安全资源116的潜在恶意更改而执行的任何类型的动作。In step 506, preventative actions are determined to be performed to protect the resource. For example, referring to FIG3, the resource protector 320 may be configured to determine preventative actions to be performed to protect the resource in response to receiving an authorization token and extracting a trust indication. For example, if the trust indication indicates that the environment in which the authorization token 312 was received is untrusted, the resource protector 320 may determine one or more preventative actions to be performed to protect the secure resource 116. Preventative actions may include any type of action performed to prevent (e.g., preempt) or mitigate potential malicious alterations to the secure resource 116.
例如,在提取的信任指示指示授权令牌312被接收到的计算环境不可信的情况下,资源保护器320可以被配置为执行某些动作以防止用户的数据被损坏、损害和/或破坏。在一些示例中,资源保护器320可以确定多个预防动作要被执行。在一些其他实例中,资源保护器320可以确定预防动作不需要被执行,诸如在认证令牌从已知被资源服务器112信任的计算环境接收的情况下。在一些其他实例中,资源保护器320还可以确定不执行预防动作,诸如在资源保护器320基于响应于接收到相同授权令牌被提供给应用302的先前访问而认为应用302不是恶意的情况下。For example, if the extracted trust indication indicates that the computing environment in which the authorization token 312 was received is untrusted, the resource protector 320 can be configured to perform certain actions to prevent user data from being corrupted, damaged, and/or destroyed. In some examples, the resource protector 320 can determine that multiple preventative actions should be performed. In some other instances, the resource protector 320 can determine that preventative actions do not need to be performed, such as when the authentication token is received from a computing environment known to be trusted by the resource server 112. In some other instances, the resource protector 320 can also determine not to perform preventative actions, such as when the resource protector 320 deems application 302 not malicious based on a previous access where the same authorization token was provided to application 302.
在步骤508中,响应于接收到授权令牌,预防动作被执行以保护资源。例如,参照图3,资源保护器320可以被配置为响应于从应用302接收到授权令牌312来执行一个或多个预防动作以保护安全资源116。在示例中,为保护安全资源116而执行的预防动作的类型(或多个类型)可以基于因素的组合,包括正在访问的资源类型、访问范围(例如只读访问、更改资源等)和/或可能由授权令牌312中的信任指示指示的信任级别。例如,如果访问的资源已被标识为敏感和/或重要的,则资源保护器320可以被配置为执行一个或多个安全性措施来保护资源。在另一示例中,如果提取的信任指示指示授权令牌312被接收到的计算环境(例如应用302)已知不可信,则资源保护器320可以执行一个或多个增强的安全性措施以保护安全资源116。In step 508, in response to receiving an authorization token, preventative actions are performed to protect the resource. For example, referring to FIG3, resource protector 320 may be configured to perform one or more preventative actions to protect secure resource 116 in response to receiving authorization token 312 from application 302. In this example, the type (or types) of preventative actions performed to protect secure resource 116 may be based on a combination of factors, including the type of resource being accessed, the scope of access (e.g., read-only access, resource modification, etc.), and/or the trust level that may be indicated by a trust indicator in authorization token 312. For example, if the accessed resource has been identified as sensitive and/or important, resource protector 320 may be configured to perform one or more security measures to protect the resource. In another example, if the extracted trust indicator indicates that the computing environment (e.g., application 302) to which authorization token 312 was received is known to be untrusted, resource protector 320 may perform one or more enhanced security measures to protect secure resource 116.
在一个示例中,资源保护器320可以被配置为响应于接收到指示应用302未被信任的授权令牌312而自动创建资源快照322。资源快照322可以包括例如应用302无法访问的安全资源116的备份副本,即使具有授权令牌312。在一些实现中,资源保护器320可以以各种方式生成安全资源116的资源快照322,包括通过创建与授权令牌312的整个访问范围一致的快照(例如如果授权令牌312是扩展的,则复制用户的所有文件)和/或逐个文件地复制资源(例如仅复制应用302尝试访问的单个文件)。In one example, resource protector 320 may be configured to automatically create resource snapshot 322 in response to receiving an authorization token 312 indicating that application 302 is not trusted. Resource snapshot 322 may include, for example, a backup copy of secure resource 116 that application 302 cannot access, even with authorization token 312. In some implementations, resource protector 320 may generate resource snapshot 322 of secure resource 116 in various ways, including by creating a snapshot consistent with the entire access scope of authorization token 312 (e.g., copying all user files if authorization token 312 is extended) and/or copying the resource file by file (e.g., copying only the single file that application 302 attempts to access).
虽然在一些示例中,资源快照322可以被存储在安全资源116的本地,但是预期资源快照322也可以以应用302和/或任何其他可能不可信的应用无法访问的方式远程存储(例如在另一服务器上)。在一些实现中,资源保护器320可以被配置为加密(或进一步加密)资源快照322,以通过在潜在损害的情况下防止未授权访问来进一步增强安全性。While in some examples resource snapshot 322 may be stored locally on secure resource 116, it is anticipated that resource snapshot 322 may also be stored remotely (e.g., on another server) in a manner inaccessible to application 302 and/or any other potentially untrusted application. In some implementations, resource protector 320 may be configured to encrypt (or further encrypt) resource snapshot 322 to further enhance security by preventing unauthorized access in the event of potential damage.
安全资源116的备份副本的创建只是资源保护器320可以执行以保护资源的预防措施的一个说明性示例。除了创建资源快照322之外或作为其替代方案,资源保护器320还可以执行一个或多个其他措施,包括但不限于授权比授权令牌312中指示的范围更有限的访问范围(例如对存储设备上已访问文件的只读访问,防止从金融机构提款等),仅许可在访问可能会被终止之后的特定时间段(例如以天、小时、分钟、秒等为单位)内访问,完全拒绝访问(例如在安全资源可能被认为过于敏感或重要的情况下,诸如银行或金融信息,以允许任何潜在的不可信的访问)和/或需要一个或多个附加或替代的授权程序。The creation of a backup copy of secure resource 116 is merely an illustrative example of the preventative measures that resource protector 320 can perform to protect resources. In addition to or as an alternative to creating resource snapshot 322, resource protector 320 may perform one or more other measures, including but not limited to granting access with a more limited scope than indicated in authorization token 312 (e.g., read-only access to files already accessed on the storage device, preventing withdrawals from financial institutions, etc.), allowing access only for a specific period of time (e.g., in days, hours, minutes, seconds, etc.) after access may be terminated, completely denying access (e.g., in cases where secure resources may be deemed overly sensitive or important, such as banking or financial information, to allow any potentially untrusted access), and/or requiring one or more additional or alternative authorization procedures.
在一些其他实例中,资源保护器320可以响应于接收到包括信任指示的授权令牌来执行增强的标识认证。例如,在授权对安全资源116的访问之前,资源保护器320可以要求计算设备102的用户执行附加的认证程序或从信任的环境(例如从信任的初级操作系统内执行的应用)重新执行相同的认证程序,执行多因素程序(例如确认随机生成的代码被传输到移动设备、电子邮件账户等)以确认认证令牌312是由合法应用在授权对资源的访问之前被发起的。In some other instances, resource protector 320 may perform enhanced identity authentication in response to receiving an authorization token that includes a trust indication. For example, before authorizing access to secure resource 116, resource protector 320 may require the user of computing device 102 to perform additional authentication procedures or re-perform the same authentication procedures from a trusted environment (e.g., from an application running within a trusted primary operating system), performing multi-factor procedures (e.g., verifying that randomly generated code was transmitted to a mobile device, email account, etc.) to confirm that authentication token 312 was initiated by a legitimate application before authorizing access to the resource.
在一些其他实现中,资源保护器320还可以被配置为经由本文描述的认证令牌来检测异常活动。例如,如果资源保护器320正在从应用302接收与特定授权令牌312相关联的异常数量的访问请求(例如高于阈值或在某个时间段内的访问请求的数量),则资源保护器320可以推断应用302正在参与潜在的恶意活动,否则可能会被损害。在这种实例中,作为附加预防措施,资源保护器320可以确定停止为来自应用302的访问请求提供服务作为附加预防措施。In some other implementations, resource protector 320 may also be configured to detect anomalous activity via the authentication token described herein. For example, if resource protector 320 is receiving an unusually large number of access requests from application 302 associated with a specific authorization token 312 (e.g., exceeding a threshold or the number of access requests within a certain time period), resource protector 320 may infer that application 302 is engaged in potentially malicious activity that could otherwise be compromised. In such an instance, as an additional precaution, resource protector 320 may determine to stop serving access requests from application 302 as an additional preventative measure.
在一些其他实例中,资源保护器320还可以对与授权令牌312无关的一个或多个资源执行预防动作。例如,如果资源保护器320接收到来自潜在不可信计算环境的请求,则资源保护器320可以被配置为自动保护(例如通过加密、锁定、移动到更安全的位置等)不相关的文件,这些文件可能包括提高的敏感性或重要性以进一步增强安全性。通过这种方式,即使某些恶意代码可能会损害安全资源116,恶意代码的移动仍可能被限制,因为资源保护器320可以防止代码不仅访问资源快照322,而且防止访问可能存在于同一服务器上或由同一服务器可访问的其他数据。In some other instances, resource protector 320 may also perform preventative actions on one or more resources unrelated to authorization token 312. For example, if resource protector 320 receives a request from a potentially untrusted computing environment, it may be configured to automatically protect (e.g., by encrypting, locking, moving to a more secure location, etc.) unrelated files, which may have increased sensitivity or importance to further enhance security. In this way, even if some malicious code could compromise secure resource 116, the movement of the malicious code may still be restricted because resource protector 320 can prevent the code from accessing not only resource snapshot 322, but also other data that may exist on the same server or be accessible by the same server.
在步骤510中,对资源的访问由在计算环境中执行的应用授权。例如,参照图3,资源访问提供方318可以被配置为通过在计算环境(即,潜在不可信环境)中执行的应用302授权对安全资源116的访问。在一些示例中,由资源访问提供方318授权的访问类型可以基于为保护安全资源116而执行的(多个)预防动作。例如,如果资源保护器320创建了由应用302无法访问的资源快照322,则资源访问提供方318可以被许可对安全资源116的完全读/写访问。In step 510, access to the resource is authorized by an application executing in the computing environment. For example, referring to FIG3, resource access provider 318 can be configured to authorize access to secure resource 116 by application 302 executing in the computing environment (i.e., a potentially untrusted environment). In some examples, the type of access authorized by resource access provider 318 can be based on multiple preventative actions performed to protect secure resource 116. For example, if resource protector 320 creates a resource snapshot 322 that is inaccessible to application 302, resource access provider 318 can be granted full read/write access to secure resource 116.
在其他示例中,如果备份副本未被创建,则资源访问提供方318可以授权应用302更有限的访问,诸如只读访问,以防止安全资源116受到潜在恶意活动的影响。例如,资源访问提供方318可以被配置为基于令牌中所包括的信任指示授权应用302访问,以打开用户文件空间中的现有内容和/或生成新内容以存储在用户文件空间中,同时防止应用302修改或删除现有内容。在一些其他实现中,资源访问提供方318还可以被配置为对由应用302生成的任何新内容实现标记或标签,使得应用不仅可以生成新内容(内容的每个项目由标记或标签标识),还基于标记的内容项目修改或删除新生成的内容。在又一实现中,这种标记或标签可以被自动清理,例如在经过预定时间段之后或当完全访问授权令牌(例如,被授权给在信任环境中执行的应用的令牌)访问标记的内容时。In other examples, if a backup copy is not created, resource access provider 318 can grant application 302 more limited access, such as read-only access, to prevent secure resource 116 from being affected by potential malicious activity. For example, resource access provider 318 can be configured to authorize application 302 to access, based on trust instructions included in a token, existing content in the user's file space and/or generate new content to store in the user's file space, while preventing application 302 from modifying or deleting existing content. In some other implementations, resource access provider 318 can also be configured to tag or label any new content generated by application 302, allowing the application not only to generate new content (each item of which is identified by a tag or label) but also to modify or delete newly generated content based on tagged content items. In yet another implementation, such tags or labels can be automatically cleaned up, for example, after a predetermined period of time or when a full access authorization token (e.g., a token authorized to an application executing in a trusted environment) accesses the tagged content.
资源访问提供方318还可以被配置为许可应用302访问资源快照322(而不是安全资源116,其可以保持不受应用302的保护)。在任一实例中,资源保护器320可以被配置为在确定应用302的访问不是恶意的和/或在预定时间流逝时自动删除备份副本。在其他实例中,诸如在资源保护器320可以被通知应用302恶意更改安全资源116(例如由于勒索软件等)的情况下,资源保护器320可以被配置为从资源快照322恢复安全资源116。因此,即使不可信的应用尝试注入勒索软件来加密或以其他方式更改用户的文件,文件的备份也可以被轻松恢复,从而最小化这种恶意行为的危害。Resource access provider 318 can also be configured to allow application 302 to access resource snapshot 322 (instead of secure resource 116, which can remain unprotected by application 302). In either instance, resource protector 320 can be configured to automatically delete the backup copy when it is determined that application 302's access is not malicious and/or when a predetermined time has elapsed. In other instances, such as when resource protector 320 can be notified that application 302 has maliciously altered secure resource 116 (e.g., due to ransomware), resource protector 320 can be configured to restore secure resource 116 from resource snapshot 322. Therefore, even if an untrusted application attempts to inject ransomware to encrypt or otherwise alter a user's files, the backup files can be easily restored, minimizing the harm of such malicious activity.
要注意和理解的是,图3所描述的布置仅是说明性的,并且实现可以包括各种其他类型的布置,包括授权令牌管理器106、令牌发行者110、资源管理器114、安全资源116和资源快照322中的一个或多个可以在计算设备102本地实现的布置。例如,图6示出了根据示例实施例的用于以安全方式提供对本地资源的访问的系统600的框图。系统600包括计算设备602。类似于计算设备102,计算设备602可以包括多个计算环境。例如,计算设备602可以包括计算环境,其中包括桌面的初级操作系统和/或移动操作系统(例如Windows、macOS、iOS、Android)可以被执行。计算设备602还可以包括本文描述的一个或多个其他计算环境,诸如可以包括虚拟机104和在其中执行的应用(例如应用302)的隔离环境。It should be noted and understood that the arrangement described in Figure 3 is illustrative only, and implementations may include various other types of arrangements, including arrangements where one or more of the following can be implemented locally on computing device 102: authorization token manager 106, token issuer 110, resource manager 114, security resource 116, and resource snapshot 322. For example, Figure 6 shows a block diagram of system 600 for providing secure access to local resources according to an example embodiment. System 600 includes computing device 602. Similar to computing device 102, computing device 602 may include multiple computing environments. For example, computing device 602 may include computing environments in which a desktop primary operating system and/or mobile operating system (e.g., Windows, macOS, iOS, Android) can be executed. Computing device 602 may also include one or more other computing environments described herein, such as an isolated environment that may include virtual machine 104 and applications (e.g., application 302) executed therein.
在图6的示例布置中,第一计算环境(例如可以托管隔离环境的计算环境)可以包括授权令牌管理器106、令牌发行者110、资源管理器114、安全资源116和资源快照322中的一个或多个。例如,代替这种组件中的一个或多个在一个或多个网络实体上实现,这种组件可以在计算设备602本地实现。例如,令牌请求者306可以将令牌请求(例如对NT令牌等的请求)提供给身份验证器314,其被配置为管理用于计算设备602上的本地活动的授权令牌。在一些示例实现中,身份验证器314和/或令牌生成器316可以被实现为计算设备602的初级操作系统、文件系统管理器和/或在其上执行的任何其他应用的一部分,使得访问本地存储的数据(或经由本地交互可访问的远程存储的数据,诸如经由快捷方式等)可以通过本地授权令牌进行管理。换言之,令牌生成器316可以被配置为生成和提供授权令牌,以许可在计算设备602上执行的应用(包括可以被托管在隔离环境中的任何应用)访问诸如安全资源116等本地资源。In the example arrangement of Figure 6, the first computing environment (e.g., a computing environment that can host an isolated environment) may include one or more of the following: an authorization token manager 106, a token issuer 110, a resource manager 114, a security resource 116, and a resource snapshot 322. For example, instead of implementing one or more of these components on one or more network entities, these components may be implemented locally on the computing device 602. For example, the token requester 306 may provide token requests (e.g., requests for NT tokens, etc.) to the authenticator 314, which is configured to manage authorization tokens for local activities on the computing device 602. In some example implementations, the authenticator 314 and/or the token generator 316 may be implemented as part of the computing device 602's primary operating system, file system manager, and/or any other application running thereon, enabling access to data in locally stored (or data in remotely stored that is accessible via local interaction, such as via shortcuts, etc.) to be managed using local authorization tokens. In other words, token generator 316 can be configured to generate and provide authorization tokens to allow applications running on computing device 602 (including any applications that can be hosted in an isolated environment) to access local resources such as security resource 116.
因此,当应用302请求令牌并且令牌请求者306向令牌发行者110提供令牌请求308和分配的信任级别310时,令牌生成器316可以生成授权令牌,该授权令牌包括以先前描述的类似方式指示信任级别310的信任指示。授权令牌可以包括例如与授权访问相关联的信息,诸如用户信息(例如作为管理员、访客等的用户的标识)、权限级别(例如只读、读/写访问等)、请求资源的标识等。令牌请求者306可以向应用302提供包括信任指示的授权令牌(例如标记的授权令牌),从而许可应用访问可能在虚拟机104之外可用的本地资源。Therefore, when application 302 requests a token and token requester 306 provides token request 308 and assigned trust level 310 to token issuer 110, token generator 316 can generate an authorization token that includes a trust indication indicating trust level 310 in a similar manner to that described previously. The authorization token may include information associated with authorized access, such as user information (e.g., an identifier of a user as an administrator, guest, etc.), permission level (e.g., read-only, read/write access, etc.), identifier of the requested resource, etc. Token requester 306 can provide application 302 with an authorization token including the trust indication (e.g., a marked authorization token), thereby authorizing the application to access local resources that may be available outside virtual machine 104.
因此,当应用302尝试访问或更改隔离计算环境之外的资源(诸如安全资源116)时,资源访问提供方318可以从由应用302提供的授权令牌提取信任指示,并且确定应用302可能未被信任。响应于接收到指示应用302可能未被信任的这种标记的授权请求,资源保护器320可以在包括初级操作系统的计算环境中执行一个或多个预防动作以保护安全资源116,诸如创建包括在允许访问安全资源116之前的安全资源116的备份副本的资源快照322。如早前描述的,除了创建资源快照322之外或作为其替代方案,资源保护器320还可以包括任何其他类型的预防动作,包括但不限于允许对安全资源116的有限访问(例如只读访问),防止安全资源116被加密(或进一步加密),需要增强的授权或者本领域技术人员将了解的任何其他预防动作。Therefore, when application 302 attempts to access or modify resources outside the isolated computing environment (such as secure resource 116), resource access provider 318 can extract a trust indication from the authorization token provided by application 302 and determine that application 302 may not be trusted. In response to receiving an authorization request indicating that application 302 may not be trusted, resource protector 320 may perform one or more preventative actions to protect secure resource 116 in a computing environment including a primary operating system, such as creating a resource snapshot 322 that includes a backup copy of secure resource 116 prior to allowing access to secure resource 116. As previously described, in addition to creating resource snapshot 322 or as an alternative, resource protector 320 may also include any other type of preventative action, including but not limited to allowing limited access to secure resource 116 (e.g., read-only access), preventing secure resource 116 from being encrypted (or further encrypted), requiring enhanced authorization, or any other preventative action that a person skilled in the art would understand.
要注意和理解的是,隔离环境不需要包括相对于图3和6描述的虚拟机104。例如,应用302还可以包括在主机计算环境上执行的任何类型的应用(例如web浏览器),其可以包括部分或完整的隔离边界。因此,即使在隔离环境包括可以访问本地或远程存储的资源的另一应用的情况下,实现仍然可以使这些资源能够通过用本文描述的访问环境的信任信息标记被用于这种访问的授权令牌来以更安全的方式访问(例如通过创建备份副本、限制访问等)。It is important to note and understand that the isolated environment does not need to include the virtual machine 104 described relative to Figures 3 and 6. For example, application 302 can also include any type of application (e.g., a web browser) running on the host computing environment, which may include partial or complete isolation boundaries. Therefore, even if the isolated environment includes another application that can access resources that are local or remotely stored, the implementation can still enable these resources to be accessed more securely by marking the authorization token used for such access with trust information of the access environment described herein (e.g., by creating backup copies, restricting access, etc.).
III.示例移动和静止设备实施例III. Examples of Moving and Stationary Device Embodiments
计算设备102、虚拟机104、授权令牌管理器106、授权服务器108、令牌发行者110、资源服务器112、资源管理器114、安全资源116、信任级别分配器304、令牌请求者306、身份验证器314、令牌生成器316、资源访问提供方318、资源保护器320、资源快照322、流程图200、流程图400和/或流程图500可以在硬件或与软件和/或固件组合的硬件来实现,例如被实现为存储在物理/基于硬件的计算机可读存储介质中并且被配置为在一个或多个处理器中执行的计算机程序代码/指令,或者被实现为硬件逻辑/电路系统(例如由晶体管、逻辑门、运算放大器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)组成的电路)。例如,计算设备102、虚拟机104、授权令牌管理器106、授权服务器108、令牌发行者110、资源服务器112、资源管理器114、安全资源116、信任级别分配器304、令牌请求者306、身份验证器314、令牌生成器316、资源访问提供方318、资源保护器320、资源快照322、流程图200、流程图400和/或流程图500中的一个或多个可以单独或一起在SoC中实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口和/或其他电路中的一个或多个,并且可以可选地执行接收到的程序代码和/或包括嵌入式固件以执行功能。The computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, secure resource 116, trust level allocator 304, token requester 306, authenticator 314, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400 and/or flowchart 500 can be implemented in hardware or in combination with software and/or firmware, for example, implemented as computer program code/instructions stored in a physical/hardware-based computer-readable storage medium and configured to execute in one or more processors, or implemented as a hardware logic/circuit system (e.g., a circuit consisting of transistors, logic gates, operational amplifiers, one or more application-specific integrated circuits (ASICs), one or more field-programmable gate arrays (FPGAs)). For example, one or more of the following components may be implemented in the SoC: computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, secure resource 116, trust level allocator 304, token requester 306, authenticator 314, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400, and/or flowchart 500. The SoC may include an integrated circuit chip that includes a processor (e.g., central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and/or other circuitry, and may optionally execute received program code and/or include embedded firmware to perform functions.
图7描绘了示例实施例可以被实现的计算设备700的示例性实现。例如,计算设备102、虚拟机104、授权令牌管理器106、授权服务器108、令牌发行者110、资源服务器112、资源管理器114、安全资源116、信任级别分配器304、令牌请求者306、身份验证器314、令牌生成器316、资源访问提供方318、资源保护器320和/或资源快照322中的任何一个可以在类似于静止或移动计算机实施例中的计算设备700的一个或多个计算设备中实现,包括计算设备700的一个或多个特征和/或替代特征。本文提供的计算设备700的描述是出于说明的目的来提供的,并且不旨在是限制性的。如(多个)相关领域的技术人员已知的,示例实施例可以在其他类型的计算机系统中实现。Figure 7 illustrates an exemplary implementation of computing device 700 from which the example embodiments can be implemented. For example, any of the following can be implemented in one or more computing devices: computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, security resource 116, trust level allocator 304, token requester 306, authenticator 314, token generator 316, resource access provider 318, resource protector 320, and/or resource snapshot 322, including one or more features and/or alternative features of computing device 700 in embodiments similar to those of a stationary or mobile computer. The description of computing device 700 provided herein is for illustrative purposes and is not intended to be limiting. As known to those skilled in the art, the example embodiments can be implemented in other types of computer systems.
如图7所示,计算设备700包括一个或多个处理器(称为处理器电路702)、系统存储器704和总线706,该总线706将包括系统存储器704的各种系统组件耦合至处理器电路702。处理器电路702是在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中被实现为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电气和/或光学电路。处理器电路702可以执行存储在计算机可读介质中的程序代码,诸如操作系统730的程序代码、应用程序732、其他程序734等。总线706表示多种类型的总线结构中的任何一个中的一个或多个,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口以及处理器或本地总线。系统存储器704包括只读存储器(ROM)708和随机存取存储器(RAM)710。基础输入/输出系统712(BIOS)被存储在ROM 708中。As shown in Figure 7, the computing device 700 includes one or more processors (referred to as processor circuitry 702), system memory 704, and a bus 706 that couples various system components, including system memory 704, to processor circuitry 702. Processor circuitry 702 is an electrical and/or optical circuit implemented as a central processing unit (CPU), microcontroller, microprocessor, and/or other physical hardware processor circuitry in one or more physical hardware circuitry devices and/or integrated circuit devices (semiconductor chip or die). Processor circuitry 702 can execute program code stored in a computer-readable medium, such as program code for operating system 730, application program 732, other programs 734, etc. Bus 706 represents one or more of a variety of bus architectures, including memory buses or memory controllers using any of various bus architectures, peripheral buses, accelerated graphics ports, and processor or local buses. System memory 704 includes read-only memory (ROM) 708 and random access memory (RAM) 710. Basic input/output system 712 (BIOS) is stored in ROM 708.
计算设备700还具有以下驱动器中的一个或多个:用于读取和写入硬盘的硬盘驱动器714、用于读取或写入可移除磁盘718的磁盘驱动器716和用于读取或写入可移除光盘722的光盘驱动器720(诸如CD ROM、DVD ROM或其他光学介质)。硬盘驱动器714、磁盘驱动器716和光盘驱动器720分别通过硬盘驱动器接口724、磁盘驱动器接口726和光盘驱动器接口728被连接至总线706。驱动器及其关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储装置。尽管硬盘、可移除磁盘和可移除光盘被描述,但是其他类型的基于硬件的计算机可读存储介质能够被用于存储数据,诸如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质。The computing device 700 also includes one or more of the following drives: a hard disk drive 714 for reading and writing to a hard disk, a disk drive 716 for reading or writing to a removable disk 718, and an optical disk drive 720 (such as a CD-ROM, DVD-ROM, or other optical media) for reading or writing to a removable optical disk 722. The hard disk drive 714, disk drive 716, and optical disk drive 720 are connected to bus 706 via hard disk drive interface 724, disk drive interface 726, and optical disk drive interface 728, respectively. The drives and their associated computer-readable media provide a non-volatile storage device for computer-readable instructions, data structures, program modules, and other data. Although hard disks, removable disks, and removable optical disks are described, other types of hardware-based computer-readable storage media can be used to store data, such as flash memory cards, digital video discs, RAM, ROM, and other hardware storage media.
多个程序模块可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统730、一个或多个应用程序732、其他程序734和程序数据736。应用程序732或其他程序734可以包括例如用于实现计算设备102、虚拟机104、授权令牌管理器106、授权服务器108、令牌发行者110、资源服务器112、资源管理器114、安全资源116、信任级别分配器304、令牌请求者306、身份验证器314、令牌生成器316、资源访问提供方318、资源保护器320、资源快照322、流程图200、流程图400和/或流程图500(包括流程图200、400或500的任何合适步骤)和/或本文描述的其他示例实施例的计算机程序逻辑(例如计算机程序代码或指令)。Multiple program modules may be stored on a hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include an operating system 730, one or more application programs 732, other programs 734, and program data 736. Application programs 732 or other programs 734 may include, for example, computer program logic (e.g., computer program code or instructions) for implementing computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, security resource 116, trust level allocator 304, token requester 306, authenticator 314, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400, and/or flowchart 500 (including any suitable steps of flowchart 200, 400, or 500) and/or other example embodiments described herein.
用户可以通过诸如键盘738和指向设备740等输入设备将命令和信息键入到计算设备700中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些和其他输入设备通常通过被耦合至总线706的串行端口接口742被连接至处理器电路702,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其他接口连接。Users can type commands and information into the computing device 700 using input devices such as a keyboard 738 and a pointing device 740. Other input devices (not shown) may include a microphone, joystick, game controller, satellite dish, scanner, touchscreen and/or touchpad, voice recognition system for receiving voice input, gesture recognition system for receiving gesture input, etc. These and other input devices are typically connected to the processor circuitry 702 via a serial port interface 742 coupled to bus 706, but may be connected via other interfaces such as a parallel port, game port, or Universal Serial Bus (USB).
显示屏744也经由诸如视频适配器746等接口被连接至总线706。显示屏744可以在计算设备700外部或被并入计算设备700。显示屏744可以显示信息以及是用于接收用户命令和/或其他信息(例如通过触摸、手指手势、虚拟键盘等)的用户界面。除了显示屏744之外,计算设备700可以包括其他外围输出设备(未示出),诸如扬声器和打印机。Display screen 744 is also connected to bus 706 via an interface such as video adapter 746. Display screen 744 can be external to computing device 700 or incorporated into computing device 700. Display screen 744 can display information and is a user interface for receiving user commands and/or other information (e.g., via touch, finger gestures, virtual keyboard, etc.). In addition to display screen 744, computing device 700 may include other peripheral output devices (not shown), such as speakers and printers.
计算设备700通过适配器或网络接口750、调制解调器752或用于通过网络建立通信的其他部件被连接至网络748(例如互联网)。如图7所示,可以是内部的或外部的调制解调器752可以经由串行端口接口742被连接至总线706,或者可以使用包括并行接口的另一接口类型被连接至总线706。The computing device 700 is connected to the network 748 (e.g., the Internet) via an adapter or network interface 750, a modem 752, or other components for establishing communication over the network. As shown in FIG7, the modem 752, which may be internal or external, may be connected to the bus 706 via a serial port interface 742, or it may be connected to the bus 706 using another interface type including a parallel interface.
如本文使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”被用于指代物理硬件介质,诸如与硬盘驱动器714相关联的硬盘、可移除磁盘718、可移除光盘722、其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、zip磁盘、MEM、基于纳米技术的存储设备以及其他类型的物理/有形硬件存储介质。这种计算机可读存储介质与通信介质(不包括通信介质)区分开,并且不重叠。通信介质将计算机可读指令、数据结构、程序模块或其他数据实施在调制数据信号中,诸如载波。术语“调制数据信号”表示其一个或多个特点以对信号中的信息进行编码的这种方式设置或改变的信号。通过示例而非限制,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)以及有线介质。示例实施例还涉及这种通信介质,其与涉及计算机可读存储介质的实施例分离并且不重叠。As used herein, the terms “computer program medium,” “computer-readable medium,” and “computer-readable storage medium” are used to refer to physical hardware media, such as a hard disk associated with hard disk drive 714, removable disk 718, removable optical disk 722, other physical hardware media such as RAM, ROM, flash memory cards, digital video disks, zip disks, MEM, nanotechnology-based storage devices, and other types of physical/tangible hardware storage media. Such computer-readable storage media are distinguished from and do not overlap with communication media (excluding communication media). Communication media implement computer-readable instructions, data structures, program modules, or other data in modulated data signals, such as carrier waves. The term “modulated data signal” refers to a signal whose one or more characteristics are set or altered in a manner that encodes information in the signal. By way of example and not limitation, communication media include wireless media (such as acoustic, RF, infrared, and other wireless media) as well as wired media. The example embodiments also relate to such communication media, which are separate from and do not overlap with embodiments relating to computer-readable storage media.
如上面提到的,计算机程序和模块(包括应用程序732和其他程序734)可以被存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这种计算机程序也可以经由网络接口750、串行端口接口742或任何其他接口类型来接收。当由应用执行或加载时,这种计算机程序使计算设备700能够实现本文描述的示例实施例的特征。因此,这种计算机程序表示计算设备700的控制器。As mentioned above, computer programs and modules (including application program 732 and other programs 734) can be stored on a hard disk, magnetic disk, optical disk, ROM, RAM, or other hardware storage media. Such computer programs can also be received via network interface 750, serial port interface 742, or any other interface type. When executed or loaded by an application, such computer programs enable computing device 700 to implement the features of the exemplary embodiments described herein. Therefore, such computer programs represent the controller of computing device 700.
示例实施例也涉及计算机程序产品,包括存储在任何计算机可读介质上的计算机代码或指令。这种计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备封装、便携式记忆棒、存储卡以及其他类型的物理存储硬件。The example embodiments also relate to computer program products, including computer code or instructions stored on any computer-readable medium. Such computer program products include hard disk drives, optical disk drives, memory device packages, memory sticks, memory cards, and other types of physical storage hardware.
IV.示例实施例IV. Example Implementation
本文描述了一种计算设备中用于提供具有信任指示的授权令牌的系统。该系统包括:一个或多个处理器;以及存储程序代码的一个或多个存储器设备,该程序代码被配置为由一个或多个处理器执行,该程序代码包括:身份验证器,被配置为:从第一计算环境的授权令牌管理器接收令牌请求,该令牌请求包括身份信息和以下指示:令牌请求是在第二计算环境中执行的应用中被发起的,第二计算环境至少部分地与第一计算环境隔离;以及验证身份信息;以及令牌生成器,被配置为:生成授权令牌,该授权令牌包括指示第二计算环境的信任级别的信任指示;以及将包括信任指示的授权令牌传输到第一计算环境。This document describes a system for providing an authorization token with a trust indication in a computing device. The system includes: one or more processors; and one or more memory devices storing program code configured to be executed by the one or more processors, the program code including: an authenticator configured to: receive a token request from an authorization token manager of a first computing environment, the token request including identity information and indications that the token request was initiated by an application executing in a second computing environment, the second computing environment being at least partially isolated from the first computing environment; and verify the identity information; and a token generator configured to: generate an authorization token including a trust indication of a trust level of the second computing environment; and transmit the authorization token including the trust indication to the first computing environment.
在前述系统的一种实现中,信任指示包括在第二计算环境中执行的应用未被信任的指示。In one implementation of the aforementioned system, the trust indication includes an indication that the application executing in the second computing environment is not trusted.
在前述系统的另一实现中,第二计算环境包括在第一计算环境中被托管的虚拟机。In another implementation of the aforementioned system, the second computing environment includes virtual machines hosted in the first computing environment.
在前述系统的另一实现中,授权令牌被配置为许可在第二计算环境中执行的应用访问第一计算环境中的安全资源。In another implementation of the aforementioned system, the authorization token is configured to allow an application running in the second computing environment to access secure resources in the first computing environment.
在前述系统的另一实现中,授权令牌被配置为许可在第二计算环境中执行的应用通过网络访问安全资源。In another implementation of the aforementioned system, the authorization token is configured to allow an application running in a second computing environment to access secure resources over the network.
在前述系统的另一实现中,在第二计算环境中执行的应用对安全资源的访问包括对安全资源的只读访问。In another implementation of the aforementioned system, access to security resources by applications running in the second computing environment includes read-only access to the security resources.
本文公开了一种用于支持以安全方式访问资源的方法。该方法包括:从在第二计算环境中执行的应用接收令牌请求以访问资源,第二计算环境至少部分地与第一计算环境隔离;将信任级别分配给令牌请求;获得包括信任指示的授权令牌,该信任指示对应于令牌请求的信任级别;以及将包括信任指示的授权令牌提供给在第二计算环境中执行的应用。This document discloses a method for supporting secure access to resources. The method includes: receiving a token request from an application running in a second computing environment to access resources, the second computing environment being at least partially isolated from a first computing environment; assigning a trust level to the token request; obtaining an authorization token including a trust indication corresponding to the trust level of the token request; and providing the authorization token including the trust indication to the application running in the second computing environment.
在前述方法的一种实现中,获得授权令牌包括:将令牌请求和所分配的信任级别传输到令牌发行者;以及从令牌发行者接收授权令牌,该授权令牌包括与信任级别相对应的信任指示。In one implementation of the aforementioned method, obtaining an authorization token includes: transmitting a token request and the assigned trust level to a token issuer; and receiving an authorization token from the token issuer, the authorization token including a trust indication corresponding to the trust level.
在前述方法的另一实现中,信任指示包括在第二计算环境中执行的应用未被信任的指示。In another implementation of the aforementioned method, the trust indication includes an indication that the application executed in the second computing environment is not trusted.
在前述方法的另一实现中,资源被存储在第一计算环境中;并且该方法还包括:从在第二计算环境中执行的应用接收授权令牌;以及响应于接收到授权令牌,在第一计算环境中执行预防动作以保护资源。In another implementation of the aforementioned method, the resources are stored in a first computing environment; and the method further includes: receiving an authorization token from an application running in a second computing environment; and in response to receiving the authorization token, performing preventative actions in the first computing environment to protect the resources.
在前述方法的另一实现中,其中预防动作包括响应于接收到授权令牌而创建资源的备份。In another implementation of the aforementioned method, the preventative action includes creating a backup of the resource in response to receiving an authorization token.
在前述方法的另一实现中,该方法还包括:响应于接收到授权令牌,授权第一计算环境对资源的只读访问。In another implementation of the aforementioned method, the method further includes: in response to receiving an authorization token, authorizing the first computing environment to have read-only access to the resource.
在前述方法的另一实现中,资源被存储在服务器中,该服务器被配置为响应于以下操作来执行预防动作:接收授权令牌;从授权令牌提取信任指示;以及基于所提取的信任指示,确定预防动作要被执行。In another implementation of the aforementioned method, resources are stored in a server configured to perform preventative actions in response to: receiving an authorization token; extracting a trust indication from the authorization token; and determining, based on the extracted trust indication, to perform a preventative action.
在前述方法的另一实现中,第二计算环境包括在第一计算环境中被托管的虚拟机。In another implementation of the aforementioned method, the second computing environment includes a virtual machine hosted in the first computing environment.
本文描述了一种用于授权对资源的访问的系统。该系统包括:一个或多个处理器;以及存储程序代码的一个或多个存储器设备,该程序代码被配置为由一个或多个处理器执行,该程序代码包括:资源保护器,被配置为:从在计算环境中执行的应用接收授权令牌以访问资源,该授权令牌包括指示应用的信任级别的信任指示;响应于接收到包括信任指示的授权令牌,执行预防动作以保护资源;以及资源访问提供方,被配置为授权在计算环境中执行的应用对资源的访问。This document describes a system for authorizing access to resources. The system includes: one or more processors; and one or more memory devices storing program code configured to be executed by the one or more processors, the program code including: a resource protector configured to: receive an authorization token from an application executing in a computing environment to access the resource, the authorization token including a trust indication indicating a trust level of the application; perform preventative actions to protect the resource in response to receiving the authorization token including the trust indication; and a resource access provider configured to authorize access to the resource from applications executing in the computing environment.
在前述系统的一种实现中,信任指示包括在计算环境中执行的应用未被信任的指示。In one implementation of the aforementioned system, the trust indication includes an indication that the application running in the computing environment is not trusted.
在前述系统的另一实现中,计算环境包括在另一计算环境中被托管的虚拟机。In another implementation of the aforementioned system, the computing environment includes virtual machines hosted in another computing environment.
在前述系统的另一实现中,由资源保护器执行的预防动作包括:响应于接收到授权令牌来创建资源的备份。In another implementation of the aforementioned system, the preventative actions performed by the resource protector include: creating a backup of the resource in response to receiving an authorization token.
在前述系统的另一实现中,资源访问提供方被配置为:响应于接收到授权令牌,授权在计算环境中执行的应用对资源的有限访问。In another implementation of the aforementioned system, the resource access provider is configured to grant limited access to resources to applications running in the computing environment in response to receiving an authorization token.
在前述系统的另一实现中,资源保护器被配置为:响应于接收到授权令牌,执行增强标识认证;并且资源访问提供方被配置为:响应于执行增强标识认证,授权对资源的访问。In another implementation of the aforementioned system, the resource protector is configured to perform enhanced identity authentication in response to receiving an authorization token; and the resource access provider is configured to authorize access to the resource in response to performing enhanced identity authentication.
V.结论V. Conclusion
虽然本发明的各种实施例已经在上面描述,但是应该理解的是,它们仅通过示例而非限制呈现。由(多个)相关领域的技术人员理解的是,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,形式和细节上的各种改变可以在其中进行。因此,本发明的宽度和范围不应被上述示例性实施例中的任何一个限制,而应该仅根据以下权利要求及其等效物来限定。While various embodiments of the invention have been described above, it should be understood that they are presented by way of example only and not as limitations. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the breadth and scope of the invention should not be limited by any of the exemplary embodiments described above, but should be defined only by the following claims and their equivalents.
Claims (19)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/415,690 | 2019-05-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40061174A HK40061174A (en) | 2022-05-27 |
| HK40061174B true HK40061174B (en) | 2025-10-10 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250148097A1 (en) | Mitigation of ransomware in integrated, isolated applications | |
| US11093604B2 (en) | Personalized and cryptographically secure access control in trusted execution environment | |
| US12299147B2 (en) | Secure computing system | |
| CN109923548B (en) | Method, system and computer program product for implementing data protection by supervising process access to encrypted data | |
| US9767297B2 (en) | Secure computing system | |
| CN105122260B (en) | Context-based switching to a secure operating system environment | |
| CN106687980B (en) | Hypervisor and Virtual Machine Protection | |
| JP2017510013A (en) | Techniques for providing network security with just-in-time provisioned accounts | |
| WO2012160421A1 (en) | Systems and methods for device based secure access control using encryption | |
| CN110268406A (en) | password security | |
| Kim et al. | Security analysis and bypass user authentication bound to device of windows hello in the wild | |
| US20240314118A1 (en) | Secure multi-factor authentication | |
| RU2807463C2 (en) | Ransomware mitigation in integrated isolated applications | |
| HK40061174B (en) | Mitigation of ransomware in integrated, isolated applications | |
| HK40061174A (en) | Mitigation of ransomware in integrated, isolated applications | |
| US20240378303A1 (en) | Protecting Computer Resources Using a Privileged Domain and Multiple Devices | |
| US20250047504A1 (en) | High-assurance private certificate authorities | |
| Ramasamy et al. | Security in Windows 10 | |
| HK40054283A (en) | Personalized and cryptographically secure access control in trusted execution environment | |
| HK40054283B (en) | Personalized and cryptographically secure access control in trusted execution environment | |
| Saini et al. | Master of Science in Internetworking Mint 709 CAPSTONE PROJECT Comparative analysis of top 5, 2-factor authentication solutions |