首页> 中国专利> 可信执行环境中的个性化密码安全访问控制

可信执行环境中的个性化密码安全访问控制

摘要

访问控制系统包括被配置为提供与富执行环境隔离的可信执行环境的处理器。富OS在富执行环境中运行,而可信OS在可信执行环境中运行。访问监视模块在富OS的内核中运行,而可信应用程序在可信OS中运行。访问监视模块拦截针对富OS的文件系统的文件请求,并将文件请求转发到可信应用程序。然后,可信应用程序评估文件请求是否被允许,并为访问监视模块提供响应。仅当可信应用程序批准请求时,访问监视模块才会将请求转发到文件系统。

著录项

说明书

相关申请的交叉引用

本申请要求2018年7月27日提交的美国临时申请62/703933中的所有权益,临时申请的所有内容通过引用合并于此。

技术领域

所描述的实施例涉及用于文件访问控制的系统和方法,尤其涉及使用可信执行环境来管理对加密数据文件的访问的系统和方法。

背景技术

以下内容不承认以下讨论的内容是现有技术的一部分或本领域技术人员的公知常识的一部分。

在日益数字化的世界中,数据是人、公司和国家最重要的资产之一。因此,广泛的措施被采取来确保敏感数据的安全性。但是,随着黑客技术变得越来越复杂,数据安全挑战也日益严峻。

一种管理数据安全性的技术是预定义数据访问策略。数据访问策略可以指定是否允许给定程序访问某些类型的数据。当程序发出数据请求时,可以将该请求与访问策略进行比较,以确定是否允许该程序访问所请求的数据。

管理数据安全性的另一种技术涉及将数据文件存储在系统中时对其进行加密。然后需要加密密钥来解密存储的数据文件并访问存储在其中的明文数据。对加密密钥的访问可以被管理,以防止对存储的数据文件的明文数据进行未经授权的访问。当授权用户和/或程序尝试访问加密文件时,该文件可以被解密以允许用户/程序访问存储在其中的明文数据。

现有的数据保护技术(例如使用访问控制策略和/或文件加密的数据保护技术)通常在计算机操作系统的内核中执行。尽管通常认为内核比操作系统的一般用户模式部分更安全,但是由于采用了越来越复杂的黑客技术,因此计算机内核更频繁地被渗透(即被黑客入侵)。一旦恶意行为者(例如恶意用户或程序)可以访问内核,则在内核中实现的数据安全功能将受到威胁,并可能被恶意行为者操纵。

发明内容

提供以下概要是为了向读者介绍下面的更详细的讨论。该概要无意限制或定义任何要求保护的或尚未要求保护的发明。一个或多个发明可以存在于包括其权利要求和附图的本文的任何部分中公开的元素或处理步骤的任何组合或子组合。

访问控制系统用于管理对存储在计算机系统的非易失性存储器中的数据文件的访问。访问控制系统的一部分可以与主操作系统隔离,以保护访问控制系统免受内核攻击。

计算机系统的处理器被配置为可以支持以下至少两个隔离的执行环境。第一执行环境可以被称为富执行环境(REE)。普通或富操作系统(例如Android,Linux等)可以在REE中运行,并带有调用REE内核的用户模式进程。REE的内核可以包括一个访问监视模块,该模块从用户模式进程接收呼叫,以访问计算机系统存储的数据。

第二执行环境可以被称为可信执行环境(TEE)。可将可信执行环境与富执行环境隔离,以使在富执行环境中运行的进程无法访问可信执行环境中的代码或数据。可信操作系统可以在TEE中运行。可信应用程序在可信操作系统中运行,以响应访问监控模块接收到的数据请求来管理对数据文件的访问。可信应用程序和访问监视模块可以安全地通信,以管理在富操作系统中运行的用户模式进程对数据的访问。

可信应用程序可以提供个性化和密码学安全的访问控制,可以减少或消除与直接在主操作系统内核中实现的访问控制相关的问题。访问控制系统仍可以集成到富操作系统内核的文件系统中,即通过使用访问监视模块。在一些实施例中,在可信操作系统中运行的可信应用可以拦截和检查针对存储在非易失性存储存储器中的加密文件的所有文件请求和操作(例如,通过与访问监视模块的通信)。

在第一广泛方面,本申请提供了一种访问控制系统,包括:被配置为提供至少两个隔离执行环境的处理器,其中,所述至少两个隔离执行环境包括富执行环境和可信执行环境,并且所述处理器被配置为在富执行环境中运行富操作系统,并在可信执行环境中运行可信操作系统,其中,富操作系统的内核被配置为包括文件访问监视模块,并且其中可信访问监视应用程序运行在可信操作系统上;非易失性存储器被配置为存储多个数据文件,其中,所述多个数据文件包括多个加密数据文件;其中,文件访问监视模块被配置为:接收对存储在非易失性存储器中的被请求文件的文件请求,其中,被请求文件对应于多个加密数据文件中的加密数据文件之一,并且从在富操作系统上运行的请求进程接收文件请求;将文件请求数据发送给可信访问监控应用,其中文件请求数据包括与被请求文件相关的文件访问数据和与请求进程相关的进程标识数据;可信访问监控应用程序被配置为:接收文件请求数据;从文件访问数据中确定与所请求文件相关联的文件标识数据;通过将文件标识数据和进程标识数据与可信访问监视应用程序存储的文件访问标准进行比较,确定是否允许请求进程访问所请求的文件;响应于确定允许请求进理访问所请求的文件,导出与所请求的文件相对应的加密密钥;将该加密密钥发送给文件访问监控模块;所述文件访问监控模块,在接收到所述加密密钥后,使用所述加密密钥对所请求的文件进行解密,并将所述解密文件提供给所述请求进程。

在任何实施例中,可以使用文件特定的加密密钥对多个加密数据文件中的每个加密的数据文件进行加密,并且可以针对每个加密的数据文件独立地确定文件特定的加密密钥。

在任何实施例中,与所请求的文件相关联的文件访问数据可以包括密钥信息,并且可信访问监视应用可以被配置为使用密钥信息来导出与所请求的文件相对应的加密密钥。

在任何实施例中,包括在文件请求数据中的文件访问数据可以是加密的文件访问数据,其中,使用可信访问监视应用程序存储的秘密访问密钥对加密的文件访问数据进行加密。所述可信访问监控应用可以被配置为通过以下步骤从接收到的文件请求数据中确定文件访问数据:确定与所请求文件相关联的秘密访问密钥;使用秘密访问密钥解密加密的文件访问数据;确定文件访问数据为解密后的文件访问数据。

在任何实施例中,可信访问监视应用可以被配置为:将秘密访问密钥存储为加密的访问密钥;以及通过解密加密的访问密钥来确定秘密访问密钥。

在任何实施例中,可信访问监视应用可以被配置为通过以下步骤确定秘密访问密钥:在富操作系统中通过文件访问监视模块从运行的用户模式进程接收用户凭证;以及使用用户凭证解密加密的访问密钥,以确定秘密访问密钥。

在任何实施例中,文件访问监视模块和可信访问监视应用可以被配置为使用安全通信通道进行通信,其中安全通信通道可以由处理器在富操作系统和可信操作系统的启动过程期间建立。

在任何实施例中,文件访问监视模块可以被配置为存储与安全通信通道相对应的共享通信通道密钥;所述可信访问监控应用可以被配置为存储相同的共享通信通道密钥;所述文件访问监视模块还可以被配置为通过以下步骤将文件请求数据发送到可信访问监视应用程序:通过使用共享的通信通道密钥对文件请求数据进行加密来生成加密的文件请求消息;以及通过使用共享的通信通道密钥对文件请求数据进行哈希处理来生成哈希消息;将所述加密文件请求消息和所述哈希消息发送给所述可信访问监控应用;所述可信访问监视应用程序还可以被配置为:通过以下步骤确定文件请求数据的有效性:通过使用共享的通信通道密钥对加密的文件请求消息进行解密来生成解密的文件请求消息;通过使用共享通信通道密钥对解密文件请求消息进行哈希处理来生成哈希解密消息;比较哈希解密消息和哈希消息;当所述哈希解密消息与所述哈希消息匹配时,确定接收到的文件请求数据有效;并仅当接收到的文件请求数据有效时,才允许请求进理访问请求的文件。

在任何实施例中,文件访问监视模块可以被配置为:从在富操作系统中运行的创建进程接收文件创建请求;以及确定文件创建请求与创建额外加密数据文件有关;向可信访问监控应用发送加密文件创建请求,所述加密文件创建请求包括与所述创建进程对应的进程标识数据;所述可信访问监控应用可以被配置为:通过将所述进程标识数据与所述可信访问监控应用存储的文件创建标准进行比较,来确定所述创建进程被允许生成所述额外加密数据文件;确定允许创建进程生成额外加密数据文件后,根据文件访问准则为额外加密数据文件生成额外文件标识数据;为额外加密数据文件生成额外密钥信息;使用额外密钥信息为额外加密数据文件生成额外加密密钥;使用额外文件标识数据和额外密钥信息定义文件访问数据;通过使用由可信访问监视应用程序存储的秘密访问密钥对文件访问数据进行加密来生成额外加密文件访问数据;将所述额外加密密钥和所述额外加密文件访问数据发送至文件访问监控模块;所述文件访问监控模块还可以用于:将所述额外加密密钥和所述额外加密文件访问数据提供给所述富操作系统的文件系统,所述文件系统用于使用所述额外加密密钥生成所述额外加密密钥,并且所述文件系统可用于将额外加密数据文件存储在非易失性存储器中,并将额外加密文件访问数据与额外加密数据文件相关联地存储在非易失性存储器中。

在任何实施例中,文件请求可以包括文件操作请求,其中文件操作请求标识请求进程正在请求对被请求的文件执行的请求操作;所述文件访问监视模块可以被配置为将与所请求的操作相关联的操作数据包括在发送给所述可信访问监视应用程序的文件请求数据中;所述可信访问监控应用可以被配置为:通过将所述文件标识数据,所述进程标识数据和所述操作数据与所述文件存储的文件访问标准进行比较,确定是否允许所述请求进程对所请求的文件执行所请求的操作。可信访问监控应用程序确定所述请求进程被允许对所请求的文件执行所请求的操作后,向所述文件访问监控模块发送操作允许信号;在确定不允许所述请求进程对所请求的文件执行所请求的操作后,向所述文件访问监控模块发送操作拒绝信号;所述文件访问监控模块还可以被配置为:在接收到所述操作允许信号后,将所述解密后的文件提供给所述请求进程以使能进行所请求的操作;在接收到所述操作拒绝信号后,阻止所述请求进程执行所请求的操作。

在任何实施例中,可将可信访问监视应用程序配置为维护在富操作系统上运行的一个或多个用户特定进程的激活记录,其中该激活记录包括与在富操作系统上运行的每个用户特定进程相关联的活跃进程标识数据。所述文件访问监视模块可以被配置为:在确定新的特定于用户的进程正在所述富操作系统上运行后,将进程启动消息发送到所述可信访问监视应用,其中所述进程启动消息包括与新的特定于用户的进程相关联的所述活跃进程标识数据,其中使用来自处理器用户的有效用户凭证生成进程启动消息,其中在确定新的特定于用户的进程正在运行时在富操作系统上向用户征求用户凭证;在确定特定于用户的特定进程不再在富操作系统上运行后,将进程终止消息发送到可信访问监视应用程序,其中特定于用户的特定进程与激活中包括的活跃进程标识数据相关联,其中进程终止消息包括具有特定于用户的特定进程的活跃进程标识数据;所述可信访问监控应用可以被配置为在接收到所述进程启动消息后,更新所述激活记录以包括与所述新的用户特定进程相关联的活跃进程标识数据;在接收到进程终止消息后,更新激活记录以去除与特定于用户的特定进程相关联的活跃进程标识数据;并且仅当激活记录包括与请求进程相关联的活跃进程标识数据时,才确定允许请求进程访问请求的文件。

根据另一个广泛的方面,本申请提供了一种控制对存储在非易失性存储器中的多个数据文件的访问的方法,其中,所述多个数据文件包括多个加密的数据文件,所述方法使用配置为提供至少两个隔离的执行环境的处理器来执行,其中,所述至少两个隔离的执行环境包括富执行环境和可信执行环境,所述处理器被配置为在所述富执行环境运行富操作系统和在可信执行环境中运行可信操作系统,该方法包括:操作富操作系统的内核中的文件访问监视模块以接收对存储在非易失性存储器中的所请求文件的文件请求,其中,所请求的文件对应于一个多个加密数据文件中的加密数据文件,其中文件请求从在富操作系统上运行的请求进程中获得;将文件请求数据发送到在所述可信操作系统上运行的可信访问监控应用程序,其中该文件请求数据包括与所请求文件相关的文件访问数据和与所述请求进程相关的进程标识数据;操作可信访问监视应用程序以接收文件请求数据;以及从文件访问数据中确定与所请求文件相关联的文件标识数据;通过将文件标识数据和进程标识数据与可信访问监视应用程序存储的文件访问标准进行比较,确定是否允许请求进程访问请求的文件;在确定允许请求处理访问所请求的文件后,导出与所请求的文件相对应的加密密钥;将该加密密钥发送给文件访问监控模块;在接收到加密密钥后,操作文件访问监视模块使用加密密钥解密所请求的文件,并将解密后的文件提供给请求进程。

在任何实施例中,可以使用文件特定的加密密钥对多个加密数据文件中的每个加密的数据文件进行加密,并且可以针对每个加密的数据文件独立地确定文件特定的加密密钥。

在任何实施例中,与所请求的文件相关联的文件访问数据可以包括密钥信息,并且该方法可以包括操作可信访问监视应用以使用密钥信息来导出与所请求的文件相对应的加密密钥。

在任何实施例中,包括在文件请求数据中的文件访问数据可以是加密的文件访问数据,其中,使用可信访问监视应用程序存储的秘密访问密钥对加密的文件访问数据进行加密。所述方法可以包括:通过确定与所请求的文件相关联的秘密访问密钥,来操作所述可信访问监视应用程序,以从接收到的文件请求数据中确定文件访问数据;使用秘密访问密钥解密加密的文件访问数据;确定文件访问数据为解密后的文件访问数据。

在任何实施例中,该方法可以包括操作可信访问监视应用程序将秘密访问密钥存储为加密的访问密钥;通过解密加密的访问密钥来确定秘密访问密钥。

在任何实施例中,该方法可以包括:通过以下步骤来操作可信访问监视应用程序确定秘密访问密钥:通过文件访问监视模块从在富操作系统中运行的用户模式进程接收用户凭证;然后使用用户凭证解密加密的访问密钥,以确定秘密访问密钥。

在任何实施例中,该方法可以包括:在富操作系统和可信任操作系统的启动过程期间建立安全通信通道;以及操作文件访问监视模块和可信访问监视应用程序使用安全通信通道进行通信。

在任何实施例中,该方法可以包括:操作文件访问监视模块以存储与安全通信通道相对应的共享通信通道密钥;以及操作可信访问监视应用程序以存储相同的共享通信通道密钥;通过以下操作,操作文件访问监视模块以将文件请求数据发送到可信访问监视应用程序:通过使用共享的通信通道密钥对文件请求数据进行加密来生成加密的文件请求消息;通过使用共享的通信通道密钥对文件请求数据进行哈希处理来生成哈希消息;将所述加密文件请求消息和所述哈希消息发送给所述可信访问监控应用;以及操作可信访问监视应用程序,通过以下步骤确定文件请求数据的有效性:通过使用共享通信通道密钥对加密的文件请求消息进行解密来生成解密的文件请求消息;通过使用共享通信通道密钥对解密文件请求消息进行哈希处理来生成哈希解密消息;比较哈希解密消息和哈希消息;当所述哈希解密消息与所述哈希消息匹配时,确定接收到的文件请求数据有效;并仅当接收到的文件请求数据有效时,才允许请求处理访问请求的文件。

在任何实施例中,该方法可以包括:操作文件访问监视模块以:从在富操作系统中运行的创建进程接收文件创建请求;以及确定文件创建请求与创建额外的加密数据文件有关;向所述可信访问监控应用发送加密文件创建请求,所述加密文件创建请求包括所述创建进程对应的进程标识数据;操作可信访问监视应用程序以:通过将进程标识数据与可信访问监视应用程序存储的文件创建标准进行比较,确定允许创建进程生成额外的加密数据文件;在确定允许创建进程生成额外加密数据文件后,根据文件访问准则为额外加密数据文件生成额外文件标识数据;为额外的加密数据文件生成额外的密钥信息;使用额外密钥信息为额外加密数据文件生成额外加密密钥;使用额外文件标识数据和额外密钥信息定义文件访问数据;通过使用由可信访问监视应用程序存储的秘密访问密钥对文件访问数据进行加密来生成额外加密文件访问数据;将所述额外加密密钥和所述额外加密文件访问数据发送至文件访问监控模块;操作文件访问监视模块以:将额外加密密钥和额外加密文件访问数据提供给富操作系统的文件系统,其中文件系统可操作为使用额外加密密钥来生成额外加密数据文件,所述文件系统用于将所述额外加密数据文件存储在所述非易失性存储器中,并且将所述额外加密文件访问数据与所述额外加密数据文件相关联地存储在所述非易失性存储器中。

在任何实施例中,文件请求可以包括文件操作请求,其中文件操作请求标识请求进程正在请求对请求的文件执行的请求的操作,并且该方法可以包括:操作文件访问监视模块以包括在文件请求数据中与被请求的操作相关的操作数据被发送到可信访问监视应用程序;操作可信访问监视应用程序,以:通过将文件标识数据,进程标识数据和操作数据与可信访问监控应用程序存储的文件访问条件进行比较,确定是否允许请求进程对所请求的文件执行所请求的操作;在确定所述请求进程被允许对所请求的文件执行所请求的操作后,向所述文件访问监控模块发送操作允许信号;在确定不允许所述请求进程对所请求的文件执行所请求的操作后,向所述文件访问监控模块发送操作拒绝信号;以及操作文件访问监视模块,用于:在接收到操作许可信号后,将解密后的文件提供给请求进程,以使请求的操作生效;在接收到所述操作拒绝信号后,防止所述请求进程执行所请求的操作。

在任何实施例中,该方法可以包括:操作可信访问监视应用程序,以维护在富操作系统上运行的一个或多个用户特定进程的激活记录,其中该激活记录包括与每个特定于用户的在富操作系统上运行的进程关联的活跃进程标识数据;操作文件访问监视模块以:在确定在富操作系统上正在运行新的特定于用户的进程后,将进程启动消息发送到可信访问监视应用程序,其中该进程启动消息包括与新的特定于用户的进程关联的活跃进程标识数据,并且使用来自处理器用户的有效用户凭证生成进程启动消息,其中在确定新的特定于用户的进程正在富操作系统上运行时,向用户征求用户凭证;在确定特定跃用户的特定进程不再在富操作系统上运行后,将进程终止消息发送到可信访问监视应用程序,其中特定于用户的特定进程与激活记录中包括的活跃进程标识数据相关联,其中进程终止消息包括具有特定于用户的特定进程的活跃进程标识数据;在接收到所述进程启动消息后,操作所述可信访问监控应用,以更新所述激活记录,以包括与所述新的特定于用户的进程相关联的活跃进程标识数据;在接收到进程终止消息后,更新激活记录以去除与特定于用户的特定进程相关联的活跃进程标识数据;并且仅当激活记录包括与请求进程相关联的活跃进程标识数据时,才确定允许请求进程访问所请求的文件。

根据另一个广泛的方面,本申请提供了一种计算机可读介质,其上存储有用于控制对存储在非易失性存储器中的多个数据文件的访问的非暂时性计算机可读指令,其中,所述多个数据文件包括多个加密数据文件,所述指令可由被配置为提供至少两个隔离的执行环境的处理器执行,其中至少两个隔离的执行环境包括富执行环境和可信任执行环境,并且处理器被配置为操作在富执行环境中操作富操作系统和在可信任执行环境中操作可信操作系统,其中指令定义为将处理器配置为:在富操作系统的内核中操作文件访问监视模块,以:接收对存储在非易失性存储器中的文件的请求,其中所请求文件对应于多个加密数据文件中的加密数据文件之一,并且其中文件请求是从在富操作系统上运行的请求进程接收到的;将文件请求数据发送到在该可信操作系统上运行的可信访问监控应用程序,其中该文件请求数据包括与所请求文件相关的文件访问数据和与该请求进程相关的进程标识数据;操作可信访问监视应用程序以:接收文件请求数据;以及从文件访问数据中确定与所请求文件相关联的文件标识数据;通过将文件标识数据和进程标识数据与可信访问监视应用程序存储的文件访问标准进行比较,确定是否允许请求进程访问请求的文件;在确定允许请求进程访问所所请求文件后:导出与所请求文件相对应的加密密钥;将该加密密钥发送给文件访问监控模块;并操作文件访问监控模块,在接收到加密密钥后,使用加密密钥解密所请求的文件,并将解密后的文件提供给请求进程。

在任何实施例中,指令可以被定义为可由处理器执行以配置处理器执行如本文所示和所述的访问控制方法。

本领域技术人员将理解,本文公开的系统,方法或计算机可读介质可以体现本文包含的任何一个或多个特征,并且这些特征可以以任何特定的组合或子组合来使用。

下面将更详细地描述各种实施例的这些和其他方面以及特征。

附图说明

随附的附图用于说明本说明书的教导的物品,方法和设备的各种示例,并且无意于以任何方式限制所教导的内容的范围。

图1是展示和实施例相符的计算机系统的框图。

图2是展示和实施例相符的可以用在图1所示的计算机系统中的访问控制系统的一个示例的框图。

图3是展示和实施例相符的文件生成过程的一个示例的流程图。

图4是展示和实施例相符的文件打开过程的一个示例的流程图。

图5是展示和实施例相符的文件操作过程的一个示例的流程图。

图6是展示和实施例相符的秘密密钥产生的一个示例的流程图。

图7是另一个展示和实施例相符的秘密密钥产生的一个示例的流程图。

图8是另一个展示和实施例相符的秘密密钥产生的一个示例的流程图。

图9是展示和实施例相符的更新激活记录过程的一个示例的流程图。

图10是另一个展示和实施例相符的更新激活记录过程的一个示例的流程图。

图11是另一个展示和实施例相符的更新激活记录过程的一个示例的流程图。

图12是展示和实施例相符的产生共享通信通道密钥过程的一个示例的流程图。

图13是展示和实施例相符的建立安全通信通道过程的一个示例的流程图。

具体实施方式

提供以下描述的附图是为了说明而非限制本文描述的实施例的各种示例的方面和特征。为了图示的简单和清楚起见,附图中所示的元件未必按比例绘制。为了清楚起见,一些元件的尺寸可能相对于其他元件被放大。为了图示的简单和清楚,在认为适当的情况下,附图标记可以在附图之间重复以指示对应或相似的元件或步骤。

下面将描述各种系统或方法以提供所要求保护的主题的实施例的示例。以下描述的实施例没有限制任何要求保护的主题,并且任何要求保护的主题可以覆盖与以下描述的方法或系统不同的方法或系统。所要求保护的主题不限于具有以下所述的任何一种系统或方法的所有特征的系统或方法,也不限于以下所述的多个或所有装置或方法所共有的特征。以下描述的系统或方法有可能不是任何要求保护的主题中记载的实施例。在以下描述的系统或方法中公开的,在本文档中未要求保护的任何主题可能是另一种保护性工具的主题,例如,连续专利申请,并且申请人、发明人或所有者无意放弃对任何此类主题权力要求,也无意通过本文档将任何此类主题提供给公众。

此外,为了图示的简单和清楚,在认为适当的情况下,可以在附图之间重复附图标记以指示对应或相似的元件。另外,阐述了许多具体细节以便提供对本文所述实施例的透彻理解。然而,本领域普通技术人员可以在没有这些具体细节的情况下实践本文描述的实施例。在其他情况下,未详细描述公知的方法,过程和组件,以免使本文所述的实施例不清楚。而且,该描述不应被认为是限制本文所述的实施例的范围。

除非另有明确说明,术语“一个实施例”,“实施例”,“所述实施例”,“一个或多个实施例”,“一些实施例”是指“一个或多个(但不是所有)本发明的实施例“。

应当注意的是,本文所用的度数术语例如“基本上”,“大约”和“近似”是指修饰术语的使最终结果不会显着改变的合理偏离量。如果该程度的术语不会抵消其修饰的术语的含义,则这些度数术语也可以被解释为包括该修饰的术语的偏离。

此外,本文中对数值范围的任何叙述均包括该范围内的所有数字和分数(例如1至5包括1、1.5、2、2.75、3、3.90、4和5)。还应理解,所有数字及其分数均假定被术语“约”修饰,这意味着如果最终结果没有显着变化,则最多可参考一定数量的变量。

本文描述的系统和方法的示例实施例可以被实现为硬件或软件的组合。在一些情况下,本文描述的示例实施例可以至少部分地通过使用一个或多个计算机程序在包括至少一个处理元件和数据存储元件(包括易失性存储器,非易失性存储器,存储元件或其任何组合)的设备上执行来实现。取决于设备的性质,这些设备还可以具有至少一个输入设备(例如,按钮键盘,鼠标,触摸屏等),以及至少一个输出设备(例如,显示屏,打印机,无线电设备等)。

还应该注意的是,可能存在一些用于实现本文描述的实施例之一的至少一部分的元件,这些元件可以经由以诸如面向对象的编程之类的高级计算机编程语言编写的软件来实现。因此,程序代码可以用C、C++或任何其他合适的编程语言编写,并且可以包括模块或类,如面向对象编程的技术人员所知道的。替代地或附加地,可以根据需要用汇编语言,机器语言或固件来编写通过软件实现的元件中的一些。无论哪种情况,该语言都可以是编译语言或解释语言。

这些软件程序中的一些软件程序可以存储在存储介质(例如,但不限于ROM,磁盘,光盘等计算机可读介质)或可由通用或专用可编程设备读取的设备上。当由可编程设备读取时,软件程序代码将可编程设备配置为以新的,特定的和预定义的方式操作,以便执行本文所述的方法中的至少一种方法。

此外,与本文描述的实施例的系统和方法相关联的程序中的至少一些程序能够被分发在包括计算机可读介质的计算机程序产品中,该计算机可读介质承载用于一个或多个处理器的计算机可用指令。可以以各种形式提供介质,包括非暂时性形式,例如但不限于一个或多个磁盘,光盘,磁带,芯片以及磁性和电子存储。

本文描述的实施例提供了系统,方法和计算机程序产品,其可以使得能够使用可信执行环境在计算机系统内实现个性化和密码安全的访问控制。即使在计算机系统中运行的富操作系统的内核遭到破坏时,这也可能有助于维护数据安全性。

计算机程序是可以由计算机(即,由处理器)执行的一组指令。进程是程序的实例,即计算机内存中已准备好由计算机的中央处理器(CPU)执行的程序的副本。在下面的讨论中,参考计算机系统的处理器和由计算机系统的处理器执行的操作。应当理解,这样的参考包括一个或多个处理元件以及使用一个或多个处理元件来执行操作,例如一个或多个CPU内的一个或多个处理核心。

操作系统(OS)是控制计算机可用硬件和软件资源使用的软件(包括几个程序和库)。操作系统的核心组件(内核)是管理所有计算机硬件设备的程序。在运行时,从内核实例化的内核进程还管理从除了内核之外的程序(例如,由用户启动的程序)实例化的进程,并为那些非内核进程访问硬件设备提供统一的接口(称为系统调用。

处理器可以配置为区分来自内核的指令和来自除内核以外的程序的指令,并以单独的模式(即内核模式和用户模式)执行指令。在操作系统内从除内核之外的程序(即,内核外部)实例化的进程在本文中可以被称为用户模式进程。

在内核中,文件系统是必不可少的模块,可为用户模式进程提供对非易失性存储设备(如磁盘,闪存等)的访问权限。从用户模式进程的角度来看,该进程可以通过向OS内核发出系统调用访问和运行(例如,打开/读取/写入/关闭)在非易失性存储上的文件。收到这些系统调用后,OS内核将管理请求进程是否以及如何访问请求的文件。OS内核可以根据有关命令发起者和目标文件的信息,通过仲裁是否允许请求进程(发出系统调用的进程)来访问目标文件或目录,从而执行访问控制,使用文件系统模块来完成系统调用,并通过系统调用的返回值通知用户模式进程。

为了管理文件访问并提供数据安全性,计算机系统可以实施强制性访问控制(MAC)。在MAC中,每个用户模式进程都可以用关联的进程标签标记,每个文件都可以用关联的文件标签标记。可以预定义访问策略并将其加载到内核内存中。访问策略可以指定具有特定进程标签的用户模式进程是否可以访问具有特定文件标签的文件。在某些情况下,访问策略可以包括针对每个进程标签和文件标签的访问标准(例如,针对进程标签和文件标签的每种可能的组合)。

当用户模式进程向文件发出操作请求时,内核可以根据预定义的策略检查用户模式进程的标签和文件的标签。然后,内核可以相应地授予或拒绝该操作请求。

在某些情况下,可以预定义在计算机系统中运行的用户模式进程的进程标签。可选地或另外,可以使用标签继承过程来定义用户模式进程的标签。可以预先定义第一个用户模式进程的标签,然后默认实例化其他随后可以实例化的进程从创建它们的进程(即父进程)继承其进程标签。这可以允许在实例化相应的用户模式进程时分配进程标签。在某些情况下,可以通过对内核的系统调用将分配给用户模式进程的进程标签更改为其他进程标签。

计算机系统的非易失性存储器可用于存储多个数据文件。文件标签可以与为其分配了数据文件相关联地存储在非易失性存储器中。例如,文件标签可以由文件系统存储为文件属性。然后,在访问关联的数据文件时,可以将文件属性读入内核内存。

通常,数据文件用于存储信息。当信息以直接可读/可理解的方式存储时(即,没有被混淆或以其他方式编码以防止对信息的直接理解),则数据文件可以被称为明文。在某些情况下,可以修改(即加密)数据文件以防止对由该数据文件存储的明文信息的未授权访问。

加密是使用秘密(加密密钥)将信息(即明文)转换为混淆形式(可以称为密文)的过程。解密是加密的相反过程,它使用秘密(例如,加密密钥或取决于所使用的加密方法的不同解密密钥)将密文转换为明文。

在某些情况下,文件系统(例如ext4文件系统和NTFS文件系统)可能支持对存储在计算机系统中的数据文件进行文件系统级加密。在文件系统级加密中,单个数据文件中数据的加密/解密可以由文件系统执行。该系统可以基于个体(即,基于每个文件)定义与所存储的文件有关的加密策略(包括文件是否已经被加密或者应该被加密以及加密密钥如何被导出)。当创建或存储文件时,文件系统可以采用加密策略来确定是否应在存储之前对文件进行加密,然后文件系统可以根据需要对数据文件进行加密和存储。访问文件时,文件系统可以使用加密策略并对数据文件进行解密,然后再将解密后的数据文件提供给请求进程。因为加密/解密是由文件系统执行的,所以文件系统级别的加密对于用户模式进程是透明的,用户模式进程正常访问文件并通过系统调用对文件执行操作。

为了简化每个文件的单独加密策略,可以为每个加密文件定义一个加密属性。文件系统可以为每个加密文件生成和存储属性密码。例如,密码属性可以被存储为与每个加密文件相关联的文件属性。密码属性可以包括可用于确定该文件的加密密钥的密钥信息。然后可以基于与该文件相关联的密码属性来导出文件的加密密钥,并且可以在收到来自合法用户模式进程的请求后,使用导出的加密密钥来加密/解密文件中的数据。

在某些情况下,可以在OS内核中执行MAC和用于文件系统级加密的加密密钥派生。尽管OS内核被认为比用户模式进程更为安全,但是随着黑客技术的日益完善,内核被黑客攻击的频率也越来越高。一旦内核遭到黑客入侵,就可能危及内核可能提供的数据安全功能,例如MAC和文件系统级加密。例如,当OS内核被攻破时,MAC可以被跳过,并且可以由黑客操纵MAC,这可能导致对数据的授权访问。

对于被黑客入侵的内核,MAC对于数据访问可能不是必不可少的,即使跳过了MAC,仍然可以访问数据。此外,由于MAC是一种自动机制,无需用户参与即可发生,因此智能恶意软件可能会模仿合法进程的行为,以欺骗MAC策略以授予对数据的访问权限。结果,可以在计算机系统的合法用户不知道的情况下访问敏感数据。

本文描述的实施例包括可以提供对存储在计算机系统中的数据文件的访问控制的系统,方法和计算机程序产品。本文描述的实施例可以提供访问控制系统,该访问控制系统可以实现用于文件系统级加密的MAC和加密密钥推导,同时防止内核被黑客入侵。这可以进一步增强数据安全性。本文描述的实施例可以使得能够使用可信执行环境来实现个性化和密码安全的访问控制。

在本文描述的实施例中,计算机系统可以包括非易失性存储存储器和处理器。处理器可以配置为提供至少两个隔离的执行环境。

第一执行环境可以被称为富执行环境。处理器可以在富执行环境内操作丰富操作系统。用户模式进程可以调用富操作系统的内核,以访问非易失性存储存储器中存储的文件并对其执行操作。富操作系统可以是计算机系统用户与之交互的主要或主要操作系统。

第二执行环境可以被称为可信执行环境。处理器可以在可信执行环境内操作可信操作系统。可将可信执行环境与富执行环境隔离,以使在富执行环境中运行的进程无法访问可信执行环境中的代码或数据。

文件访问监视模块可以在富操作系统的内核中实现。在本文的描述和附图中,文件访问监视模块也可以称为可信应用程序代理或TA代理。文件访问监视模块可以配置为监视和拦截从富操作系统内运行的用户模式进程接收的数据文件请求。

可信访问监视应用程序(也称为密钥管理可信应用程序,密钥管理TA或KMTA)可以在可信操作系统上运行。可以将可信访问监视应用程序配置为与文件访问监视模块进行通信,以便响应文件访问监视模块接收到的文件请求来实现安全访问控制。

该计算机系统的非易失性存储器可以用于存储多个数据文件。多个数据文件可以包括多个加密的数据文件。每个加密文件可以具有关联的文件访问数据(也称为密钥属性),可信访问监视应用程序可以使用该数据来管理对该加密文件的访问。

文件访问数据可以包括与加密文件相关联的文件标识数据,例如MAC文件标签。文件访问数据还可以包括与加密文件关联的密钥信息。可能需要密钥信息来导出与该加密文件关联的加密密钥。

与每个加密数据文件相关联的文件访问数据可以被存储为加密文件访问数据。可以使用秘密访问密钥对加密的文件访问数据进行加密。然后可能需要秘密访问密钥来解密文件访问数据,并依次确定文件标识数据和与数据文件相关联的密钥信息。

在某些情况下,秘密访问密钥可能仅在KMTA中可用。当在富操作系统上运行的用户模式进程(创建进程)尝试创建新的加密文件时,TA代理可以收集与创建进程关联的进程标签。然后,TA代理可以将与创建进程关联的进程标签发送到KMTA。

在接收到与创建进程相关联的进程标签后,KMTA可以实施访问控制策略(存储在可信OS中)以确定是否允许创建进程创建加密文件。如果允许创建进程创建加密文件,则KMTA可以使用访问控制策略来确定要用于此新加密文件的文件标签。

如果不允许创建进程创建加密文件,则KMTA可以生成拒绝访问信号,并将拒绝访问信号发送给TA代理。在收到访问拒绝信号后,TA代理可以立即拒绝创建进程的文件创建请求。TA代理还可以防止文件系统存储创建请求的目标加密文件。

如果创建进程被允许创建加密文件,则KMTA可以生成访问许可信号。KMTA还可以为新的加密文件生成密钥信息,并使用此密钥信息导出加密密钥。可以生成密钥属性(即文件访问数据)。密钥属性可以包括文件标识数据(例如,文件标签)和密钥信息。可以基于所存储的访问控制策略来确定文件标识数据。

密钥属性也可以由KMTA使用秘密访问密钥加密。KMTA可以将访问许可信号,加密密钥和密钥属性传输到TA代理。加密密钥和密钥属性可以作为组合消息的有效载荷来发送。

在接收到访问授权信号(以及关联的加密密钥和密钥属性)后,TA代理可以批准创建进程的文件创建请求。然后,TA代理可以将密钥属性作为文件属性传递给文件系统,并将加密密钥提供给文件系统,以使文件系统能够执行文件创建操作(即生成,加密和存储新的加密文件)。

当在富操作系统上运行的用户模式进程(请求进程)尝试对现有加密文件(所请求文件)执行操作时,TA代理可以拦截文件操作请求。然后,TA代理可以收集与请求进程关联的进程标识数据以及所请求文件的文件访问数据。TA代理可以在文件请求中将进程标识数据和文件访问数据,以及指示所请求操作的性质的操作数据发送到KMTA。在从TA代理收到文件请求后,KMTA可以根据需要解密文件访问数据并应用存储的访问控制策略,以确定请求进程是否可以对所请求文件执行请求的操作。

如果KMTA确定不允许请求进程执行请求的文件操作,则KMTA可以生成拒绝访问信号。KMTA可以将拒绝访问信号发送到TA代理。一旦收到访问拒绝信号,TA代理就拒绝来自请求进程的文件操作请求。TA代理可以阻止请求进程对所请求加密文件执行请求的操作。

如果KMTA确定允许请求进程执行请求的文件操作,则KMTA可以生成访问许可信号。另外,如果请求的文件操作需要加密密钥,则KMTA可以使用来自密钥属性的密钥信息来生成加密密钥。KMTA可以将访问许可信号和加密密钥(如果需要)发送给TA代理。在接收到访问授权信号(可能还有加密密钥)后,TA代理可以批准文件操作请求。TA代理还可以将加密密钥(如果从KMTA接收到的话)提供给文件系统模块,以完成请求的文件操作。

KMTA可以使用秘密访问密钥来加密和解密文件访问数据。KMTA用于解密和加密密钥属性(即文件访问数据)的秘密访问密钥只有在收到有效的用户凭证后才可用于KMTA。当富操作系统启动时,可能会提示用户提供用户凭证。KMTA可以在确定秘密访问密钥之前验证用户凭证。

当文件请求正在传输到KMTA时,可能会提示用户提供用户凭证。例如,可以提示用户为文件访问监视模块拦截的每个文件请求提供用户凭证。

访问控制系统可以包括用户模式服务进程,该进程可操作以从富操作系统的用户收集凭据。仅在用户服务模式程序已收集了有效的用户凭证之后,KMTA才能使用KMTA解密和加密密钥属性的秘密密钥。

可选地,KMTA可以使用进程标签激活记录来管理文件访问。KMTA可以存储和管理激活记录,以维护已验证的活跃进程的列表。可以通过从富操作系统的用户那里索取用户凭证来验证进程标签激活记录中列出的进程标识数据(或进程标签)。

在富操作系统的操作过程中,最初将进程标签分配给用户模式进程时,可以通过用户模式服务进程(可以由文件访问监视模块控制或与文件访问监视模块通信)索取用户凭证。所述服务进程和/或TA代理可以生成进程激活信号。可以基于进程标识数据和用户凭证来生成进程激活信号。TA代理可以将进程激活信号发送到KMTA。然后KMTA可以验证进程激活信号,例如通过验证用户凭证。

一旦验证了进程激活信号,则KMTA可以更新激活记录,以指示与接收到的进程标识数据关联的进程是活跃的并且已经被验证。KMTA在响应每个文件请求时可以参考进程激活记录以确定请求进程已经被验证,并且可以仅在确定请求进程对应于存储在进程激活记录中的进程标识数据时才授权文件请求。

当TA代理确定用户模式进程即将终止或即将更改其进程标签时,TA代理可以将进程终止信号发送到KMTA。收到进程终止信号后,KMTA可以更新进程激活记录以删除相应的进程标识数据。

文件访问监视模块(即TA代理)和可信访问监视应用程序(即KMTA)可以使用安全通信通道进行通信。安全通信通道可以确保在文件访问监视模块和可信访问监视应用程序之间传输的消息是加密的,并且如果消息被拦截,则无法获取这些消息中的信息。安全通信通道还可以允许TA代理和KMTA确定接收到的消息是由TA代理和KMTA有效地发送。

可以通过非安全通信通道在TA代理和KMTA之间建立安全通信通道。例如,在富OS和可信OS的启动过程中,TA代理可以通过非安全通信通道将密钥生成请求发送到KMTA。KMTA然后可以随机生成安全通信通道密钥,并将安全通信通道密钥存储在可信OS的内存中。KMTA可以通过非安全通信通道将安全通信通道密钥发送给TA代理。然后,TA代理可以存储安全通信通道密钥在TA代理的内存中。

在某些情况下,KMTA在响应接收到密钥生成请求时,可以检查可信操作系统的内存,以确定是否已经生成了安全通信通道密钥。如果安全通信通道密钥已经存在,则KMTA可以拒绝密钥生成请求。

一旦TA代理和KMTA都存储了共享通信通道密钥,就可以在TA代理和KMTA之间建立安全通信通道密钥。当消息从TA代理传输到KMTA(或从KMTA传输到TA代理)时,TA代理(或KMTA)可以使用共享密钥对消息进行哈希处理和加密。在接收到哈希和消息后,KMTA(或TA代理)可以使用共享密钥来解密消息。然后,接收者可以对解密的消息进行哈希处理,并将生成的哈希与接收到的哈希消息进行比较。然后,仅当哈希匹配时,才可以接受该消息。否则,该消息可能会被丢弃。这可以允许TA代理(或KMTA)确定接收到的消息是否由未被篡改的合法KMTA(或TA代理)发送。

系统架构

以下是对系统体系结构的描述,该体系结构本身可以在任何访问控制系统或方法中使用,也可以在具有文件创建过程,文件打开过程,文件操作过程,密钥生成过程,进程激活记录和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

图1显示了可以被本文描述的实施例使用的计算机系统100的示例。图1所示的计算机系统可以是任何类型的计算机系统,例如移动设备(例如,智能电话或平板电脑),笔记本计算机,台式计算机,服务器等。

通常,计算机系统100可以包括处理器(例如,具有一个或多个CPU核的微处理器)和存储器。处理器可以通过计算机数据总线访问内存。

存储器可以包括易失性存储器和诸如非易失性存储器106之类的非易失性存储器。非易失性存储器存储由计算机可执行指令组成的计算机程序,这些计算机可执行指令可以被加载到易失性存储器中根据需要由处理器执行。本领域技术人员将理解的是,本文中称计算机系统100执行功能或以特定方式操作意味着处理器的一个或多个内核正在执行存储在存储器中的指令(例如软件程序),并可能通过一个或多个接口发送或接收输入和输出。

存储器还可在执行计算机可执行指令的过程中存储输入到处理器或从处理器输出的数据。例如,非易失性存储器106可以被配置为存储多个数据文件。多个数据文件可以包括多个加密的数据文件。特别地,内核105和在内核105内操作的文件系统模块可以使用户模式进程103能够访问非易失性存储器106,并且执行与存储在非易失性存储器106中的文件有关的操作。

在内核105内运行的文件系统模块可以被配置为使用数据库结构将数据文件存储在非易失性存储器106中。例如,关系数据库或非关系数据库(例如键值数据库,NoSQL数据库等)可以用于存储数据文件。

处理器可以提供至少两个隔离的执行环境。隔离的执行环境可以包括富执行环境(REE)101和可信执行环境(TEE)102。处理器可以将REE 101和TEE 102定义为彼此隔离运行,从而REE 101无法访问加载到TEE 102中的代码和数据。TEE 102可以被包含在处理器的更安全部分内,从而使TEE 102具有更高的安全性。计算机内存可以分为两部分:安全内存和非安全内存。安全内存只能由TEE 102访问。

处理器可以配置为在REE 101和TEE 102中提供单独的操作系统。处理器可以在REE 101中运行富OS 104,例如Android操作系统,Linux操作系统,Microsoft Windows

处理器还可以配置为在TEE 102中提供可信OS 109。可信OS 109可以加载到TEE102中并在其中运行。

通常,可信OS 109可以由具有预定义的一组比富OS更高的安全级别的操作标准的操作系统来实现。例如,与富OS 104相比,可信OS 109可能具有较少的容量,但具有更高的安全性。例如,也可以根据诸如信息技术安全性评估的通用标准(例如ISO/IEC 15408)之类的标准和指定的安全功能要求来定义可信OS 109。

例如,可信OS 109可以配置有“安全启动序列”。在安全启动序列中,可将可信OS109的指令划分为几个(即,多个)不同的操作系统指令。每个操作系统指令都可以进行数字签名。启动序列中需要加载到计算机内存中的第一条指令可以存储在只读存储器(ROM)中。每个指令片可以包括验证在启动序列中加载到计算机存储器中的后续指令的数字签名的指令。可选地,启动序列可能需要验证每个指令的数字签名,以便完成启动序列。例如,如果无法验证其中一个指令的数字签名,则可以终止启动序列。

在可信OS 109上运行的可信用户模式进程可以称为可信应用程序(TA)108。可以为TA 108提供额外的安全性和验证功能,以确保可信OS 109的更高安全性。例如,TA 108需使用TA供应商的公共密钥进行数字签名,从而使破解可信应用程序变得更加复杂。

可以在富OS内核105与TA 108之间建立安全通信通道107。可以在富OS内核105和在可信OS 109中运行的TA 108可以通过安全通信通道107通讯。从而富OS内核105可以向TA108提交请求并从TA 108接收回复。

通过隔离REE 101和TEE 102,可以保护访问控制方法(例如用于文件系统级加密的MAC和加密密钥派生)免受内核黑客攻击。可以向处理器提供在REE 101和TEE 102之间切换的CPU指令。富OS 104中的驱动程序可以实现与在可信OS 109中运行的TA 108通信。这使得安全敏感的功能可以使用TA 108实现,而不是在REE 101中执行,从而增强富OS 104的安全性。每当需要执行安全敏感的功能时,富OS 104就会向TA 108提交请求。例如,富OS 104可以是诸如iOS的移动操作系统,并且TEE 102可以提供可用于为文件系统级加密提供加密密钥推导的安全区域。

计算机系统100还可包括图1中未示出的各种其他组件。例如,计算机系统100可以包括一个或多个通信接口,输入设备和输出设备。例如,输出设备可以包括合适的显示器,用于根据各种计算机程序的需要输出信息和数据。特别地,显示器可以显示富OS 104的图形用户界面(GUI)。还可以提供各种其他类型的输出设备,例如扬声器和/或触觉反馈传感器。

输入设备可以使用户能够与富OS 104进行交互。例如,计算机系统100可以包括一个或多个输入设备,例如键盘,鼠标,触控板和各种其他输入设备。

还应该理解,可以使用硬件和软件资源的组合来实现计算机系统100的某些元件,例如使用虚拟机和/或容器实现存储器和/或处理器中的一些或全部。

可以提供诸如一个或多个有线或无线数据网络接口之类的通信接口,以使得能够与外部系统或设备进行通信和/或通过网络进行通信,诸如通用串行总线,蓝牙TM或以太网连接。计算机系统100有时可以经由互联网连接到外部计算机或服务器。例如,计算机系统100可以连接到软件更新服务器以获得软件应用程序或固件的最新版本。

现在参考图2,其中示出了根据一个实施例可以使用的访问控制系统200的示例。可以在诸如计算机系统100之类的计算机系统中实现访问控制系统200。

如图2所示,富OS的内核105可以包括文件系统模块203。文件系统模块203可以使用各种不同的文件系统类型来实现,例如ext4文件系统和NTFS文件系统。文件系统模块203可以被配置为实现文件系统级加密。

用户模式进程103可以将系统调用发送到内核105,以便执行与非易失性存储器106中的数据文件有关的操作。文件系统模块203可以被配置为实现系统调用并提供用户模式进程103访问存储的数据文件的方法和/或存储由用户模式进程103创建或修改的数据文件。

如图2所示,内核105可以包括文件访问监视模块(TA代理202)。文件访问监视模块202可以被配置为拦截来自用户模式进程103的系统调用。当用户模式进程103向富OS内核105提交请求(或系统调用)时,TA代理202可以在这些请求到达文件系统模块203之前拦截这些请求。文件访问监视模块202可以在请求到达文件系统模块203之前拦截来自用户模式进程103的每个文件请求。

访问控制系统200还可以包括在可信OS上运行的可信访问监视应用程序(KMTA206)。可信访问监视应用程序206可以被配置为执行与发布给富OS的内核105的文件请求有关的访问控制操作。可信访问监视应用程序206可以使用安全通信通道107与文件访问监视模块202进行通信。

在从用户模式进程103接收到请求之后,文件访问监视模块202可以通过安全通信通道107与可信访问监视应用程序206进行通信。文件访问监视模块202可以将对应于被拦截的请求的文件请求数据发送到可信访问监视应用程序206。可信访问监视应用程序206可以评估文件请求数据以确定是否应允许该请求。然后,可信访问监视应用程序206可以向文件访问监视模块202提供指示是否满足请求的响应。可信访问监视应用程序206还可以向文件访问监视模块202提供满足请求所需的数据,例如解密加密文件所需的加密密钥。然后,文件访问监视模块202可以基于来自可信访问监视应用程序206的响应,与请求用户模式进程103和文件系统模块203进行交互。

可以使用文件特定的加密密钥来加密由非易失性存储存储器106存储的多个加密数据文件中的每个加密数据文件。可信访问监视应用程序206可以被配置为针对每个加密的数据文件独立地确定文件特定的加密密钥。例如,可信访问监视应用程序206可以独立地(例如,在文件创建时)为每个加密文件确定随机密钥信息。然后可以使用随机密钥信息来导出对应文件的加密密钥。

访问控制系统200可以被配置为执行本文描述的各种过程和操作,诸如如下所述的文件创建过程,文件打开过程,文件操作过程,秘密密钥生成过程,管理进程激活记录以及建立安全通信通道的过程。访问控制系统200中的文件访问监视模块202和可信访问监视应用程序206可以被配置为执行在此描述的各种操作,例如文件创建过程,文件打开过程,文件操作过程,秘密密钥生成过程,管理进程激活记录以及建立安全通信通道的过程中的操作。

文件创建过程

以下是对文件创建过程的描述,该文件创建过程本身可以在任何访问控制系统或方法中使用,也可以在具有系统体系结构,文件打开过程,文件操作过程,密钥生成过程,进程激活记录和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

现在参照图3,其中示出了根据一个实施例的用于创建文件的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图3所示的过程,并且图3所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。

在310处,在富操作系统中运行的用户模式进程103可以创建数据文件(可以是加密文件),并且向富操作系统的内核发送文件创建请求(或系统调用)。为了简单起见,用户模式进程103可以被称为创建进程。

在311处,在内核中运行的文件访问监视模块(TA代理202)可以从创建进程接收文件创建请求。TA代理202可以在文件创建请求到达文件系统203之前拦截文件创建请求。

然后,TA代理202可以确定文件创建请求是否与创建额外的加密数据文件有关。例如,在312处,TA代理202可以评估针对所创建的文件的文件加密策略以确定该文件是否应该被加密。如果TA代理202确定不应对文件进行加密,则TA代理202可以将文件创建请求直接传递到文件系统203。

在313处,文件系统203可以基于文件创建请求来创建新的未加密文件。文件系统203还可以将对未加密文件的有效句柄返回给用户模式进程103。

可选地,在创建新的未加密文件之前,文件系统203可以评估进程103是否是能够创建新文件的有效进程。如果文件系统203认为该进程是有效的,才会生成新的未加密文件。

如果在312处,TA代理203确定文件应该被加密,则TA代理203可以在315处收集与发起请求的用户模式进程103相对应的进程标识数据(例如标签信息)。在316处,TA代理203可以将加密的文件创建请求发送到可信访问监视应用程序(KMTA 206)。加密文件创建请求可以包括与创建进程相对应的进程标识数据。TA代理203可以使用安全通信通道107发送加密的文件创建请求。

在317处,可信访问监视应用程序206可以接收包括进程标签信息的加密文件创建请求。在319处,可信访问监视应用程序206可以使用接收到的进程标签信息来应用由可信访问监视应用程序存储的访问控制策略。可信访问监视应用程序206可以通过将进程标识数据与可信访问监视应用程序存储的文件创建标准进行比较,来确定是否允许创建进程103生成额外的加密数据文件。文件创建标准可以作为访问控制策略的一部分存储在可信操作系统中。

如果可信访问监视应用程序206确定用户模式进程103无法创建加密文件(即,根据访问控制策略,不允许用户模式进程103创建加密文件),则在320处可信访问监视应用程序206可以生成拒绝访问信号。在322处,可信访问监视应用程序206可以将访问拒绝信号发送到文件访问监视模块202。

一旦在323处接收到访问拒绝信号,文件访问监视模块202就可以通过在325处返回无效句柄来将错误通知用户模式进程103。文件访问监视模块202还可以防止用户模式进程103创建该请求的加密文件,例如通过阻止请求到达文件系统模块203。

另一种情况下,在319处,可信访问监视应用206可以确定用户模式进程103可以创建加密文件(即,根据访问控制策略,允许用户模式进程103创建加密文件)。在确定创建进程103被允许生成额外的加密数据文件后,可信访问监视应用206可以在321处生成访问许可信号。

在321处,可信访问监视应用206还可以基于文件访问标准为额外的加密数据文件生成额外的文件标识数据。可信访问监控应用程序206可以使用访问控制策略和作为接收到的文件创建请求的一部分的进程标签信息,生成文件标识数据做为文件标签。

可信访问监视应用程序206还可以为额外的加密数据文件生成额外的密钥信息。密钥信息可以是随机生成的。然后,可信访问监视应用程序206可以使用额外密钥信息为额外加密数据文件生成额外加密密钥。

可信访问监视应用程序206还可以使用额外文件标识数据(例如新创建的文件标签)和额外密钥信息来定义文件访问数据(例如密钥属性)。

在322处,可信访问监视应用程序206可以将文件访问数据和加密密钥发送到文件访问监视模块202。

可选地,可信访问监视应用程序206可以在将文件访问数据发送到可信访问监视应用程序206之前对文件访问数据进行加密。在321处,可信访问监视应用程序206可以通过使用由可信访问监视应用程序206存储的秘密访问密钥对文件访问数据加密来生成额外的加密文件访问数据。秘密访问密钥可能仅对可信访问监视应用程序206可用。

然后,可信访问监视应用程序206可以在322处将额外加密密钥和额外加密文件访问数据发送到文件访问监视模块202。这可以允许将文件访问数据与新创建的加密文件相关联地存储,而不允许富操作系统的任何组件(包括文件访问监视模块202的任何组件)以明文格式访问文件访问数据。

响应于在323处接收到访问许可信号(连同额外加密密钥和额外加密文件访问数据),文件访问监视模块202可以将额外加密密钥和额外加密文件访问数据提供给富操作系统的文件系统203。文件访问监视模块202可以将加密密钥和密钥属性传递到文件创建请求最初定向到的文件系统模块203。

在326处,文件系统203可以使用额外加密密钥来生成额外加密数据文件。文件系统203还可以将额外加密数据文件存储在非易失性存储存储器106中。文件系统203还可以将额外加密文件访问数据与额外加密数据文件相关联地(例如作为文件属性)存储在非易失性存储存储器106中。文件系统203还可以将对加密文件的有效句柄返回给用户模式进程103。

可选地,在创建新的加密文件之前,文件系统203可以评估进程103是否是能够创建新文件的有效进程。如果文件系统203认为该进程是有效的,才会生成新的加密文件。

可选地,只有在接收到有效的用户凭证之后,可信访问监视应用程序206在321处才可以使用秘密访问密钥加密文件访问数据。例如,响应于文件访问监视模块拦截文件创建请求,可能会提示用户输入用户凭证。下文将更详细地描述图3中所示的过程中使用的秘密密钥产生过程。

可选地,在317处从文件访问监视模块202接收到进程标签之后,可信访问监视应用程序206还可以在318处检查进程标签是否已经被激活。可信访问监视应用程序206可以检查进程标签是否已经被激活。在319处,可信访问监视应用程序206在评估文件访问标准之前检查进程标签是否被激活。可信访问监视应用程序206可以仅在进程标签已被激活的情况下进行到321处。

如果在318处可信访问监视应用程序206确定进程标签未激活,则可信访问监视应用程序206可直接进行到320处并生成访问拒绝信号。如果可信访问监视应用程序206在318处确定进程标签被激活,则可信访问监视应用程序206可以在319处继续应用访问控制策略,然后可以继续完成整个过程。下文将更详细地描述可以与图3中所示的过程一起使用的进程激活记录的过程的示例。

文件打开过程

以下是对文件打开过程的描述,该文件打开过程本身可以在任何访问控制系统或方法中使用,也可以在具有系统体系结构,文件创建过程,文件操作过程,密钥生成过程,进程激活记录和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

现在参照图4,其中示出了根据实施例的用于打开文件的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图4所示的过程,并且图4所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。

在410处,在富操作系统上运行的请求用户模式进程可以将文件打开请求(即系统调用)发送到内核。文件打开请求可以识别请求进程正在尝试访问的存储在非易失性存储器106中的请求数据文件。

在411处,文件访问监视模块202可以从请求进程接收文件请求。文件访问监视模块202可以在文件请求到达文件系统203之前截取文件请求。因此,文件访问监视模块202可以确保可以在允许对所请求文件的访问之前对请求进程进行审查。

在412处,文件访问监视模块202可以评估所请求的文件以确定所请求的文件是否是加密的数据文件。例如,文件访问监视模块202可以评估与所请求的文件相关联的元数据,或者确定密钥属性(即,密钥信息)是否与所请求的文件相关联以确定所请求的文件是否被加密。如果密钥属性不存在,则文件访问监视模块202可以将文件请求传递给文件系统203。

在413处,文件系统203可以评估文件请求。如果文件系统203确定文件请求是有效的,则在413处,文件系统203可以打开未加密的文件并将对所请求文件的有效句柄返回给请求用户模式进程103。

当文件访问监视模块202在412处确定所请求的文件是加密的数据文件(例如,存在密钥属性或元数据指示该文件已加密)时,在415处,文件访问监视模块202可以收集与请求进程103相关联的进程标识数据(例如,进理标签)。

在416处,文件访问监视模块202可以将文件请求数据发送到可信访问监视应用206。如图所示,可以使用安全通信通道107发送文件请求数据。文件请求数据可以包括与所请求的文件相关联的的文件访问数据(例如密钥和文件标识数据)以及与请求进程相关联的进程标识数据(进程标签)。

在417处,可信访问监视应用程序206可以从文件访问监视模块202接收文件请求数据。

然后,可信访问监视应用程序206可以从文件请求数据中包括的文件访问数据中确定与所请求的文件相关联的文件标识数据。可信访问监视应用程序206还可以根据文件访问数据确定密钥信息。

在419处,可信访问监视应用206可以基于包括在文件请求数据中的进程标签信息和文件标签信息来执行访问控制策略。可信访问监视应用程序206可以通过将文件标识数据(在417处确定)和进程标识数据与由可信访问监视应用程序206存储的文件访问标准进行比较,来确定是否允许请求进程访问请求的文件。

可选地,包括在文件请求数据中的文件访问数据可以使用由可信访问监视应用程序206存储的秘密访问密钥来加密。在这种情况下,在419处,可信访问监视应用程序206可以确定与访问所请求文件相关联的秘密访问密钥。然后,可信访问监视应用程序206可以使用秘密访问密钥来解密加密的文件访问数据从而生成解密后的文件访问数据。然后,可以使用解密后的文件访问数据来评估是否允许请求进程访问所请求的文件。

如果在419处,可信访问监视应用程序206确定不允许请求进程访问所请求的加密文件,则在420处,可信访问监视应用程序206可以生成访问拒绝信号。在422处,可信访问监视应用程序206可以将拒绝访问信号发送到文件访问监视模块202。

在423处接收到访问拒绝信号后,文件访问监视模块202可以通过在425处返回无效句柄来将错误通知发送给请求用户模式进程103。文件访问监视模块202可以防止请求进程103访问所请求的文件,例如,通过防止系统调用传递到文件系统203。

如果在419处,可信访问监视应用程序206确定允许请求进程访问所请求的加密文件,则可信访问监视应用程序206可以在421处生成访问许可信号。可信访问监视应用程序206还可以导出与所请求的文件相对应的加密密钥。例如,可信访问监视应用206可以使用作为文件访问数据的一部分的密钥信息来导出与所请求的文件相对应的加密密钥。

可选地,使用特定于文件的加密密钥来加密多个加密数据文件中的每个加密数据文件。可信访问监视应用程序206可以为每个加密的数据文件独立地导出文件特定的加密密钥。

在422处,可信访问监视应用程序206可以将加密密钥发送到文件访问监视模块202。可信访问监视应用程序206可以将加密密钥与访问许可信号一起发送。

响应于接收到加密密钥,文件访问监视模块202可以使用加密密钥来解密所请求的文件,并将解密的文件提供给请求进程。例如,当在423处接收到访问许可信号和加密密钥时,文件访问监视模块202可以在424处将加密密钥传递给底层文件系统203。然后在426处,文件系统203可以使用加密密钥打开文件,并将该文件的有效句柄返回给请求进程103。然后,文件系统203可以在426处进一步评估文件请求,根据文件系统标准确定该请求是否有效。

可选地,只有在接收到有效的用户凭证之后,才可以使可信访问监视应用程序206用于在419处解密密钥属性的秘密访问密钥对可信访问监视应用程序206可用。例如,响应于文件访问监视模块202拦截文件请求,可以提示用户输入用户的凭证。下文将更详细地描述可以与图4中所示的过程一起使用的秘密密钥产生过程的示例。

可选地,在417处从文件访问监视模块202接收到进程标签(即,请求进程的进程标识数据)之后,可信访问监视应用206还可以在418处检查进程标签是否已经被激活。在419处,监视应用程序206可以在评估文件访问标准之前检查进程标签是否已经被激活。仅当进程标签已经被激活,可信访问监视应用程序206可以进行到421处。

如果在418处可信访问监视应用程序206确定进程标签未激活,则可信访问监视应用程序206可以直接进行到420处并生成访问拒绝信号。如果可信访问监视应用程序206在418处确定进程标签激活,则可信访问监视应用程序206可以在419处继续应用访问控制策略,然后可以继续整个过程。下文将更详细地描述可以与图4中所示的过程一起使用的进程激活记录过程的示例。

文件操作过程

以下是对文件操作过程的描述,该文件操作过程本身可以在任何访问控制系统或方法中使用,也可以在具有系统体系结构,文件创建过程,文件打开过程,密钥生成过程,进程激活记录和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

现在参照图5,其中示出了根据实施例的用于执行文件操作(除了创建文件或打开文件之外)的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图5所示的过程,并且图5所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。

在510处,在富操作系统上运行的请求用户模式进程可以将文件操作请求(即系统调用)发送到内核。文件操作请求可以识别请求进程正在尝试访问的存储在非易失性存储器106中的请求数据文件。文件操作请求还可以标识请求进程正在请求对请求的文件执行的请求的操作。应当理解,本文上面描述的文件创建过程和文件打开过程涉及文件操作的特定示例,并且本文下面描述的执行文件操作过程示例更一般地涉及对请求的文件执行任何其他操作。

在511处,文件访问监视模块202可以从请求进程接收文件操作请求。文件访问监视模块202可以在文件请求到达文件系统203之前截取文件请求。因此,文件访问监视模块202可以确保请求进程在被允许对所请求文件的访问之前接收审查。

在512处,文件访问监视模块202可以评估所请求的文件以确定所请求的文件是否与一个文件句柄相关联。这可以指示在富操作系统中运行的进程(例如请求进程)是否已经在访问请求的文件。如果所请求的文件与一个文件句柄相关联,则文件访问监视模块202可以将文件请求传递给文件系统203。

在513处,文件系统203可以处理该请求并将所请求的操作的结果返回给请求用户模式进程103。可选地,文件系统203可以在513处在返回结果之前评估文件请求。如果文件系统203确定文件请求是有效的,则文件系统203可以执行该操作并返回结果。

如果在512处文件访问监视模块202确定所请求的文件与任何文件句柄不相关,则过程进行到515处。

在515处,文件访问监视模块202可以评估所请求的文件以确定所请求的文件是否是加密的数据文件。例如,文件访问监视模块202可以评估与所请求的文件相关联的元数据,或者确定密钥属性(即,密钥信息)是否与所请求的文件相关联以确定所请求的文件是否被加密。如果密钥属性不存在,则文件访问监视模块202可以将文件请求直接传递给文件系统203。

在516处,文件系统203可以处理该请求,并将所请求的操作的结果返回给请求用户模式进程103。可选地,文件系统203可以在513处在返回结果之前评估文件请求。如果文件系统203确定文件请求是有效的,则文件系统203可以执行该操作并返回结果。

当在515处文件访问监视模块202确定所请求的文件是加密的数据文件(例如,存在密钥属性或元数据指示该文件已加密)时,在517处,文件访问监视模块202可以收集与请求进程103相关联的进程标识数据(例如,处理标签信息)。

在518处,文件访问监视模块202可以将文件请求数据发送到可信访问监视应用206。如图所示,可以使用安全通信通道107来发送文件请求数据。文件请求数据可以包括与所请求的文件相关联的文件访问数据(例如,密钥信息和文件标识数据)以及与请求的进程相关联的进程标识数据(进程标签)。在518处,文件访问监视模块202可以将包括与请求的操作相关联的操作数据的文件请求数据传输到可信访问监视应用程序206。

在519处,可信访问监视应用程序206可以从文件访问监视模块202接收文件请求数据。然后,可信访问监视应用程序206可以从文件请求数据中包括的文件访问数据确定与所请求的文件相关联的文件标识数据。可信访问监视应用程序206还可以根据文件访问数据确定密钥信息。

在521处,可信访问监视应用206可以基于文件请求数据中包括的进程标签信息和文件标签信息来执行访问控制策略。可信访问监视应用程序206可以通过将文件标识数据(在519处确定的),进程标识数据和操作数据与由可信访问监控应用206存储的文件访问标准进行比较,来确定是否允许请求进程对请求的文件执行请求的操作。

可选地,可以使用由可信访问监视应用程序206存储的秘密访问密钥来对文件请求数据中包括的文件访问数据进行加密。在这种情况下,在521处,可信访问监视应用程序206可以确定与该访问所请求文件相关联的秘密访问密钥。然后,可信访问监视应用程序206可以使用秘密访问密钥来解密加密的文件访问数据生成解密后的文件访问数据的。然后,可以使用解密后的文件访问数据来评估是否允许请求进程对请求的文件执行请求的操作。

如果在521处,可信访问监视应用程序206确定不允许请求进程对请求的文件执行请求的操作,则可信访问监视应用程序206可以在522处生成操作拒绝信号。在524处,可信访问监视应用程序206可以将操作拒绝信号发送到文件访问监视模块202。

在525处接收到操作拒绝信号后,文件访问监视模块202可以在527处通过返回访问拒绝错误来向请求用户模式进程103通知错误。文件访问监视模块202可以防止请求进程103执行请求操作,例如通过防止系统调用传递到文件系统203。

如果在521处,可信访问监视应用程序206确定允许请求进程对请求的加密文件执行请求的操作,则可信访问监视应用程序206可以在523处生成操作许可信号。可信访问监视应用程序206还可以导出与请求的文件相对应的加密密钥。例如,可信访问监视应用206可以使用作为文件访问数据的一部分的密钥信息来导出与所请求的文件相对应的加密密钥。

可选地,使用特定于文件的加密密钥来加密多个加密数据文件中的每个加密数据文件。可信访问监视应用程序206可以为每个加密的数据文件独立地导出文件特定的加密密钥。

在524处,可信访问监视应用程序206可以将操作许可信号发送到文件访问监视模块202。可信访问监视应用程序206还可以将加密密钥与访问许可信号一起发送。

响应于接收到加密密钥,文件访问监视模块202可以将解密的文件提供给请求进程103以启用请求的操作。文件访问监视模块202可以使用加密密钥解密所请求的文件,并将解密的文件提供给请求进程。

例如,在525处接收到操作许可的信号和加密密钥后,文件访问监视模块202可以在526处将该加密密钥传递给底层文件系统203。在528处,文件系统203然后可以使用该加密密钥来打开所请求文件并将请求操作的结果返回给请求进程103。可选的,在528处,文件系统203可以进一步评估文件请求,根据文件系统标准来确定该请求是否被视为有效。

可选地,只有在接收到有效的用户凭证之后,才可以使可信访问监视应用程序206用于在521处解密密钥属性的秘密访问密钥对可信访问监视应用程序206可用。例如,响应于文件访问监视模块202拦截文件操作请求,可以提示用户输入用户凭证。下文将更详细地描述可以与图5中所示的过程一起使用的秘密密钥产生过程的示例。

可选地,在519处从文件访问监视模块202接收到进程标签(即,请求进程的进程标识数据)之后,可信访问监视应用206还可以在520处检查进程标签是否已被激活。在521处,监视应用程序206可以在评估文件访问标准之前检查进程标签是否已经被激活。仅当进程标签已经被激活,可信访问监视应用程序206可以进行到523处。

如果可信访问监视应用程序206在520处确定进程标签未激活,则可信访问监视应用程序206可以直接进行到522处并生成访问拒绝信号。如果可信访问监视应用程序206在520处确定进程标签已激活,则可信访问监视应用程序206可以在521处继续应用访问控制策略,然后可以继续整个过程。下文将更详细地描述可以与图5中所示的过程一起使用的进程激活记录过程的示例。

秘密密钥生成过程

以下是对秘密密钥生成过程的描述,该过程可以在任何访问控制系统或方法中单独使用,也可以在具有系统体系结构,文件创建过程,文件打开过程,文件操作过程,进程激活记录和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

在某些情况下,从文件访问监视模块202传输到可信访问监视应用程序206的文件请求中包括的文件访问数据可以是加密的文件访问数据。该加密的文件访问数据可以使用由信任访问监视应用程序206存储的秘密访问密钥来加密。也就是说,秘密访问密钥可以仅对信任访问监视应用程序206可用,也就是说,在富执行环境中不可用(甚至对于文件访问监视模块202也不可用)。这可以确保文件访问数据在富执行环境中存在时保持加密状态。

可信访问监视应用程序206可以被配置为通过确定与所请求的文件相关联的秘密访问密钥来从接收到的文件请求数据中确定文件访问数据。一旦确定了秘密访问密钥,就可以使用秘密访问密钥对加密的文件访问数据进行解密,并且可以将文件访问数据确定为解密的文件访问数据。

可以仅当从计算机系统的用户接收到有效的用户凭证后才生成秘密访问密钥。这可以确保根据特定用户来控制文件访问。

可信访问监视应用程序206可以使用用户凭证来确定秘密访问密钥。例如,秘密访问密钥可以由可信访问监视应用206存储为加密的访问密钥。可以使用用户凭证来导出用于生成加密的访问密钥的加密密钥,例如使用用户凭证的哈希形式。然后,可信访问监视应用程序206可以通过使用用户凭证解密加密的访问密钥来确定秘密访问密钥。

可信访问监视应用程序206可以从在富操作系统中运行的用户模式进程中接收用户凭证。可以经由文件访问监视模块将用户凭证提供给可信访问监视应用程序206。在某些情况下,每次可信访问监视应用程序206尝试解密文件访问数据时,都可能会请求用户凭证。

现在参照图6,其中示出了根据实施例的用于生成秘密访问密钥的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图6所示的过程,并且图6所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图6中的示例可与本文描述的各种其他过程一起使用,例如用于在文件打开/创建/操作过程期间对密钥属性进行加密/解密。

在610处,用户模式服务进程601可以向用户600征求凭证。例如,用户模式服务进程601可以提供输入提示(例如,弹出窗口)以发起对用户凭证征集。然后,用户600可以使用输入设备,例如键盘或生物测定设备(例如,指纹扫描仪,视网膜扫描仪或面部识别设备)来提供凭证。

例如,用户模式服务进程601可以在计算机系统的初始登录过程期间征求凭证。可选地或另外,用户模式服务进程601可以响应于文件访问监视模块202所拦截的文件请求而征求凭证。例如,用户模式服务进程601可以响应于由文件访问监视模块202所拦截的与加密文件有关的每个文件请求而征求凭证。

在611处,用户模式服务进程601可以将在610处接收的用户凭证发送到文件访问监视模块202。文件访问监视模块202可以在612处接收用户凭证。然后在613处,文件访问监视模块202可以将用户转发给可信访问监视应用程序206。如图所示,可以使用安全通信通道107将用户凭证从文件访问监视模块202传输到可信访问监视应用程序206。

在614处,可信访问监视应用程序206可以从文件访问监视模块202接收用户凭证。然后,可信访问监视应用程序206可以通过计算接收到的用户凭证的哈希来确定哈希凭证。然后,哈希凭证可以由可信访问监视应用程序206存储在可信执行环境中。

在615处,可信访问监视应用206可以生成秘密访问密钥。可信访问监视应用程序206可以随机生成秘密访问密钥。然后,可信访问监视应用程序206可以使用用户凭据对秘密访问密钥进行加密。在616处,加密的秘密访问密钥可以由可信访问监视应用程序206存储在可信执行环境内的非易失性存储器中。

在某些情况下,可信访问监视应用程序206可以临时在易失性存储器保存秘密访问密钥和/或用户凭证,以供本文所述的各种过程使用,例如本文所述的文件创建,文件打开和文件操作过程。一旦已经完成了针对用户凭证的评估,则可信访问监视应用程序206可以从存储器中清除秘密访问密钥和用户凭证。

现在参照图7,其中示出了根据一个实施例的用于生成秘密访问密钥的另一示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图7所示的过程,并且图7所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图7中的示例可与本文描述的各种其他过程一起使用,例如用于在文件打开/创建/操作过程期间对密钥属性进行加密/解密。

在710处,用户模式服务进程601可以向用户600征求凭证。例如,用户模式服务进程601可以提供输入提示(例如,弹出窗口)以发起对用户凭证征集。然后,用户600可以使用输入设备,例如键盘或生物测定设备(例如,指纹扫描仪,视网膜扫描仪或面部识别设备)来提供凭证。

例如,用户模式服务进程601可以在计算机系统的初始登录过程期间征求凭证。可选地或另外,用户模式服务进程601可以响应于文件访问监视模块202所拦截的文件请求而请求凭证。例如,用户模式服务进程601可以响应于由文件访问监视模块202所拦截的与加密文件有关的每个文件请求而请求凭证。

在711处,用户模式服务进程601可以将在710处接收的用户凭证发送到文件访问监视模块202。文件访问监视模块202可以在712处接收用户凭证。响应于接收到用户凭证,文件访问监视模块202可以在713处生成秘密访问密钥。文件访问监视模块202可以随机生成秘密访问密钥。

在714处,文件访问监视模块202可以将用户凭证和秘密访问密钥发送到可信访问监视应用程序206。如图所示,可以使用安全通信通道107将用户凭证从文件访问监视模块202发送到可信访问监视应用程序206。

在715处,可信访问监视应用程序206可以从文件访问监视模块202接收用户凭证和秘密访问密钥。然后,可信访问监视应用程序206可以通过计算接收到的用户凭证的哈希来确定哈希凭证。然后,可以由可信访问监视应用程序206将哈希凭证存储在可信执行环境中。

在716处,可信访问监视应用程序206可以使用用户凭证来加密秘密访问密钥。加密的秘密访问密钥可以由可信访问监视应用程序206在717处存储在可信执行环境内的非易失性存储器中。

在某些情况下,可信访问监视应用程序206可以临时在易失性存储器中保存秘密访问密钥和/或用户凭证,以供本文所述的各种过程使用,例如本文所述的文件创建,文件打开和文件操作过程。一旦已经完成了针对用户凭证的评估,则可信访问监视应用程序206可以从存储器中清除秘密访问密钥和用户凭证。

现在参照图8,其中示出了根据一个实施例的用于生成秘密访问密钥的一个示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图8所示的过程,并且图7所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图8中的示例可与本文描述的各种其他过程一起使用,例如用于在文件打开/创建/操作过程期间对密钥属性进行加密/解密。

在810处,用户模式服务进程601可以向用户600征求凭证。例如,用户模式服务进程601可以提供输入提示(例如,弹出窗口)以发起对用户凭证征集。然后,用户600可以使用输入设备,例如键盘或生物测定设备(例如,指纹扫描仪,视网膜扫描仪或面部识别设备)来提供凭证。

例如,用户模式服务进程601可以响应于文件访问监视模块202所截取的文件请求来请求凭证。然后,用户凭证可以用于解密评估文件请求所需的秘密访问密钥。

在811处,用户模式服务进程601可以将在810处接收的用户凭证发送到文件访问监视模块202。文件访问监视模块202可以在812处接收用户凭证。然后在813处,文件访问监视模块202可以将用户凭据转发给可信访问监视应用程序206。如图所示,可以使用安全通信通道107将用户凭据从文件访问监视模块202发送到可信访问监视应用程序206。

在814处,可信访问监视应用程序206可以从文件访问监视模块202接收用户凭证。然后,可信访问监视应用程序206可以通过计算接收到的用户凭证的哈希来确定哈希凭证。

在815处,可信访问监视应用程序206可以从在可信执行环境中可信访问监视应用程序206可访问的非易失性存储器中读取所存储的哈希凭证。

在816处,可信访问监视应用程序206可以将存储的哈希凭证与在814处计算的哈希凭证进行比较。如果哈希值不匹配,则在818处,可信访问监视应用程序206可以丢弃在814处接收到的凭证。访问监视应用程序206还可以向文件访问监视模块202返回无效凭证信号(例如,访问拒绝信号或操作拒绝信号),以指示该凭证无效。

如果在816处哈希值匹配,则在819处可信访问监视应用206可以使用凭证来解密加密的密钥。如图8所示,在815处可以从在可信执行环境中的可信访问监视应用206可访问的非易失性存储器中读取加密的秘密密钥。或者,可以仅在确定哈希匹配之后才读取加密的秘密密钥。

进程激活记录

以下是对进程激活记录过程的描述,该过程可以在任何访问控制系统或方法中单独使用,也可以在具有系统体系结构,文件创建过程,文件打开过程,文件操作过程,秘密密钥生成过程和安全通信通道等任何特征的组合或子组合的访问控制系统或方法中使用。

可信访问监视应用程序206可以被配置为维护活动的并且在富操作系统上运行的进程的激活记录。激活记录可以包括与在富操作系统上运行的每个特定于用户的进程相关联的活动进程标识数据。仅当激活记录包括与请求进程相关联的活动进程标识数据时,可信访问监视应用程序206才可以确定允许请求进程访问请求的文件。

激活记录可以被定义为仅包括已经由从计算机系统的用户请求的用户凭证验证过的进程。这可以确保进行文件请求的每个进程已经由计算机系统的用户认证。

可以响应于富操作系统内的进程被激活或将要激活来更新激活记录。当新进程(即当前未在激活记录中列出的进程)正在富操作系统上运行(例如正在初始化或开始运行)时,文件访问监视模块202在确定新的特定于用户的进程正在富操作系统上运行后可以将进程启动/激活消息发送到可信访问监视应用程序206。进程启动消息可以包括与新的用户特定进程相关联的进程标识数据(例如进程标签)。

可以响应于从计算机系统的用户接收到有效的用户凭证而生成进程启动消息。这可以确保新进程是计算机系统的用户(至少在表面上)审查过的有效操作进程。确定新的特定于用户的进程正在富操作系统上运行之后,可以向用户征集用户凭据。

当进程停止操作(或将要停止操作)时,文件访问监视模块202可以将进程终止/停用消息发送到可信访问监视应用程序206。该进程终止消息可以由文件访问监视模块202生成。在确定在富操作系统上不再运行特定于用户的特定进程后,可信访问监视应用程序206可以更新激活记录以删除相应的进程标识数据。

现在参照图9,其中示出了根据实施例的用于通过激活进程标签来更新激活记录的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图9所示的过程,并且图9所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图9中的示例可与本文描述的各种其他过程一起使用,例如用于确定在文件打开/创建/操作过程期间是否允许请求继续进行。

在910处,用户模式服务进程601可以确定新进程在富操作系统内是可操作的或变得可操作的。例如,当当前不存在具有该新进程标签的进程时,用户模式服务进程601可以检测到要分配给新进程的新进程标签。

在911处,响应于确定新进程是可操作的,用户模式服务进程601可以从用户600征集凭证。例如,用户模式服务进程601可以提供输入提示(例如,弹出窗口)以发起对用户凭证的征集。然后,用户600可以使用输入设备,例如键盘或生物测定设备(例如,指纹扫描仪,视网膜扫描仪或面部识别设备)来提供凭证。

在912处,服务进程601可以生成进程发起消息。可以使用在911处接收到的凭证和与新进程相关联的进程标识数据(例如,新进程标签)来生成进程启动消息。例如,可以将进程启动消息定义(或形成)为包括凭证和进程标识数据。作为另一个示例,可以将进程启动消息定义(或形成)为包括由被哈希凭证数字签名的进程标识数据。服务进程601可以将进程启动消息发送到文件访问监视模块202。

在913处,文件访问监视模块202可以接收进程启动消息。在914处,文件访问监视模块202然后可以将进程启动消息转发到可信访问监视应用程序206。如图所示,可以使用安全通信通道107将进程启动消息发送到可信访问监视应用程序206。

在915处,可信访问监视应用206可以接收进程启动消息。然后,可信访问监视应用程序206可以更新激活记录,以包括与新的特定于用户的进程相关联的活动进程标识数据。

如在图9的示例中所示,在将与新的特定于用户的进程相关联的活动进程标识数据添加到激活记录之前,可信访问监视应用程序206可以验证进程启动消息。

在916处,可信访问监控应用206可以使用在进程启动消息中接收的用户凭证来验证进程启动消息。诸如图6,图7和图8所描述的那些的示例过程可用来使用由可信访问监视应用程序206存储的用户凭证验证进程启动消息。

例如,可信访问监视应用程序206可以将哈希用户凭证存储在可信执行环境内可访问的非易失性存储器中。为了验证进程启动消息,可信访问监视应用程序206可以使用所存储的哈希用户凭证。例如,可信访问监视应用程序206可以从进程启动消息中接收凭证,并计算所接收到的凭证的哈希版本。可信访问监视应用程序206可以将接收到的证书的哈希版本与存储的哈希凭证进行比较。作为另一示例,可信访问监视应用206可以从进程启动消息中提取进程标识数据。可信访问监视应用程序206可以使用所存储的哈希凭证来计算所提取的进程标识数据的数字签名。然后,可信访问监视应用程序206可以将计算出的数字签名与进程启动消息中的进程标识数据的数字签名进行比较。

作为另外一种可能性,可信访问监视应用206可以具有以明文存储的用户凭证(例如,在某些情况下存储在易失性存储器中,或者甚至存储在非易失性存储器中)。然后,可信访问监视应用程序206可以使用所存储的用户凭证来验证进程启动消息。例如,可信访问监视应用程序206可以从进程启动消息中接收凭证,然后将接收到的凭证与所存储的版本进行比较。作为另一个示例,可信访问监视应用程序206可以对存储的用户凭证进行哈希处理,并使用哈希后的凭证来计算从进程启动消息中提取的进程标识数据的数字签名。然后,可信访问监视应用程序206可以将计算出的数字签名与进程启动消息中的进程标识数据的数字签名进行比较。

如果进程启动消息被验证,则可信访问监视应用程序206可以在917处更新激活记录以包括与新的用户特定进程相关联的活动进程标识数据。如果在916处的验证结果是进程启动消息不能通过验证,则可信访问监视应用程序206不更新激活记录。可信访问监视应用程序206可以丢弃进程启动消息918。可选地,可信访问监视应用程序206可以将错误消息提供给文件访问监视模块202,以指示未接收到有效凭证。

现在参照图10,其中示出了根据实施例的用于通过激活进程标签来更新激活记录的另一个示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图10所示的过程,并且图10所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图10中的示例可与本文描述的各种其他过程一起使用,例如用于确定在文件打开/创建/操作过程期间是否允许请求继续进行。

在1010处,文件访问监视模块202可以确定在富操作系统内新进程正在运行或正在运行。例如,当当前不存在具有该新进程标签的进程时,文件访问监视模块202可以检测到要分配给新进程的新进程标签。

在1011处,文件访问监视模块202可以将凭证请求发送到用户模式服务进程601。凭证请求可以指示文件访问监视模块202需要用户凭证。

在1012处,用户模式服务进程601可以响应于在1011处接收到的凭证请求而从用户600征集凭证。例如,用户模式服务进程601可以提供输入提示(例如,弹出窗口)以发起对用户凭证的征集。然后,用户600可以使用输入设备,例如键盘或生物测定设备(例如,指纹扫描仪,视网膜扫描仪或面部识别设备)来提供凭证。

在1013处,服务进程601可以生成进程启动消息。可以使用在1012处接收到的凭证和与新进程相关联的进程标识数据(例如,新进程标签)来生成进程启动消息。例如,可以将进程启动消息定义(或形成)为包括接收到的凭据和进程标识数据。作为另一个示例,可以将进程启动消息定义(或形成)为包括由接收到的凭据进行数字签名的进程标识数据。服务进程601可以将进程启动消息发送到文件访问监视模块202。

在1014处,文件访问监视模块202可以接收进程启动消息。然后在1015处,文件访问监视模块202可以将进程启动消息转发到可信访问监视应用程序206。如图所示,可以使用安全通信通道107将进程启动消息发送到可信访问监视应用程序206。

在1016处,可信访问监视应用206可以接收进程启动消息。然后,可信访问监视应用程序206可以更新激活记录,以包括与新的特定于用户的进程相关联的活动进程标识数据。

如在图10的示例中所示,在将与新的特定于用户的进程相关联的活动进程标识数据添加到激活记录之前,可信访问监视应用程序206可以验证进程启动消息。

在1017,可信访问监视应用206可以使用在进程启动消息中接收的用户凭证来验证进程启动消息。诸如图6,图7和图8所描述的那些的示例过程可用于使用由可信访问监视应用程序206存储的用户凭证验证进程启动消息。

例如,可信访问监视应用程序206可以将哈希用户凭证存储在可信执行环境内可访问的非易失性存储器中。为了验证进程启动消息,可信访问监视应用程序206可以使用所存储的哈希用户凭证。例如,可信访问监视应用程序206可以从进程启动消息中接收凭证。可信访问监视应用程序206可以计算接收到的凭证的哈希版本,然后将接收到的凭证的哈希版本与存储的哈希凭证进行比较。作为另一示例,可信访问监视应用206可以从进程启动消息中提取进程标识数据。然后,可信访问监视应用程序206可以使用所存储的哈希凭证来计算所提取的进程标识数据的数字签名,并将所计算出的数字签名与进程发起消息中的进程标识数据的数字签名进行比较。

作为另外一种可能性,可信访问监视应用206可以拥有以明文存储的用户凭证(例如,在某些情况下存储在易失性存储器中,或者甚至存储在非易失性存储器中)。然后,可信访问监视应用程序206可以使用所存储的用户凭证来验证进程启动消息。例如,可信访问监视应用程序206可以从进程启动消息中接收凭证,然后将接收到的凭证与所存储的版本进行比较。作为另一个示例,可信访问监视应用程序206可以对存储的用户凭证进行哈希处理,并使用哈希凭证来计算从进程启动消息中提取的进程标识数据的数字签名。然后,可信访问监视应用程序206可以将计算出的数字签名与进程启动消息中的进程标识数据的数字签名进行比较。

如果进程启动消息被验证,则在1018处,可信访问监视应用206可以更新激活记录以包括与新的特定于用户的进程相关联的活动进程标识数据。如果在1017处的验证结果是进程启动消息不能通过验证,则可信访问监视应用程序206不更新激活记录。可信访问监视应用程序206可以在1019处丢弃进程启动消息。可选地,可信访问监视应用程序206可以向文件访问监视模块202提供指示未接收到有效凭证的错误消息。

现在参照图11,其中示出了根据实施例的用于通过停用进程标签来更新激活记录的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图11所示的过程,并且图11所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图11中的示例可与本文描述的各种其他过程一起使用,例如用于确定在文件打开/创建/操作过程期间是否允许请求继续进行。

在1110处,文件访问监视模块202可以确定特定用户特定的进程不再在富操作系统上运行。文件访问监视模块202可以通过确定具有特定进程标识数据的进程将被停止或被不同进程标识数据标记来确定该特定于用户的进程不再运行。

在1111处,文件访问监视模块202可以响应于在1110处确定特定的特定于用户的进程不再在富操作系统上运行而生成进程终止消息。当特定于用户的特定进程与激活记录中包括的活跃进程标识数据相关联时,文件访问监视模块202可以生成进程终止消息。然后可以生成进程终止消息,以将与特定于用户的特定进程相关联的活动进程标识数据一起包括在内。

文件访问监视模块202可以将进程终止消息发送到可信访问监视应用程序206。如图所示,可以使用安全通信通道107来发送进程终止消息。

在1112处,可信访问监视应用206可以接收进程终止消息。然后,可信访问监视应用程序206可以更新激活记录,以删除与特定用户的特定进程关联的活动进程标识数据。

如在图11的示例中所示,在将与新的特定于用户的进程相关联的活动进程标识数据从激活记录中删除之前,可信访问监视应用程序206可以验证进程终止消息。

在1113处,可信访问监视应用206可以使用在进程终止消息中接收的用户凭证来验证进程终止消息。诸如图6,图7和图8所描述的那些的示例过程可用于使用由可信访问监视应用程序206存储的用户凭证验证进程终止消息。

例如,可信访问监视应用程序206可能已经将哈希用户凭证存储在可信执行环境内可访问的非易失性存储器中。为了验证进程终止消息,可信访问监视应用程序206可以计算接收到的凭证的哈希版本,然后将接收到的凭证的哈希版本与存储的哈希凭证进行比较。

作为另外一种可能性,可信访问监视应用206可以拥有以明文(例如,在某些情况下在易失性存储器中或者甚至在非易失性存储器中)存储的用户凭证。然后,可信访问监视应用程序206可以将接收到的凭据与存储的版本进行比较,以验证进程终止消息。

如果进程终止消息被验证,则在1114处,可信访问监视应用程序206可以更新激活记录以删除与特定用户的特定进程相关联的活动进程标识数据。如果在1113处的验证结果是该进程终止消息不能通过验证,则可信访问监视应用程序206不更新激活记录。可信访问监视应用程序206可以丢弃进程终止消息1115。可选地,可信访问监视应用程序206可以向文件访问监视模块202提供指示未接收到有效凭证的错误消息。

安全通信通道

以下是对安全通信通道的描述,该过程可以在任何访问控制系统或方法中单独使用,也可以在具有系统体系结构,文件创建过程,文件打开过程,文件操作过程,秘密密钥生成过程和进程激活记录等任何特征的组合或子组合的访问控制系统或方法中使用。

如图2所示,文件访问监视模块202和可信访问监视应用程序206可以被配置为使用安全通信通道107进行通信。安全通信通道可以由计算机系统的处理器在富操作系统和可信操作系统的引导过程期间建立。

可以在非安全通信通道上建立安全通信通道。例如,文件访问监视模块202和可信访问监视应用程序206可各自存储共享的通信通道密钥。文件访问监视模块202和可信访问监视应用程序206可以使用该共享通信通道密钥来保护在它们之间传输的消息的安全,即使当使用了非安全通信通道时,实际上也可以建立安全通信通道。

现在参照图12,其中示出了根据一个实施例的用于通过不安全的通信通道建立共享通信通道密钥的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图12所示的过程,并且图12所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图12中的示例可与本文描述的各种其他过程一起使用,例如文件打开/创建/操作过程。

在1210处,文件访问监视模块202可以生成通信通道密钥请求。通信通道密钥请求可以是对随机密钥的请求。文件访问监视模块202可以将通信通道密钥请求发送到可信访问监视应用程序206。如图12中的实例所示,可以通过非安全通信通道1202来发送通信通道密钥请求。

在1211处,可信访问监视应用206可以接收通信通道密钥请求。在1212处,可信访问监视应用程序206可以检查现有通信通道密钥是否存储在可信执行环境内的存储器中。

如果检测到现有的通信通道密钥,则在1213处,可信访问监视应用程序206可以生成请求拒绝信号。在1215处,可信访问监视应用程序206可以将请求拒绝信号发送到文件访问监视模块202。如图12所示,可以使用非安全通信通道1203来发送请求被拒绝的信号。

如果未检测到现有的通信通道密钥,则可信访问监视应用程序206可以在1214处生成通信通道密钥。该通信通道密钥可以由可信访问监视应用程序206随机生成。然后,可信访问监视应用程序206可以将通信通道密钥存储在可信操作系统内存中。通信通道密钥可以仅存储在易失性存储器中。每当计算机系统断电时(例如由于易失性存储器断电),可以丢弃通信通道密钥。

然后,在1215处,可信访问监视应用程序206可以将通信通道密钥发送到文件访问监视模块202。如图12所示,可以使用非安全通信通道1203来发送通信通道密钥。可信访问监视应用程序206可以仅响应于用于生成通信通道密钥的密钥请求将通信通道密钥发送给文件访问监视模块202,也就是说,可信访问监视应用程序206可以不响应于从富执行环境接收到的任何其他请求而将通信通道密钥发送到富执行环境。

在1216处,文件访问监视模块202可以接收通信通道密钥。文件访问监视模块202然后可以将通信通道密钥存储在存储器中。通信通道密钥可以仅存储在易失性存储器中。每当计算机系统断电时(例如由于易失性存储器断电),可以丢弃通信通道密钥。

计算机系统100可以被配置为在富OS 104和可信OS 109的启动过程中实现图12中所示的过程。例如,每当富OS 104和可信OS 109重新启动时执行图12所示的过程。

在图12所示的示例过程中,每当富OS 104和可信OS 109重新启动时,可信访问监视应用206仅可以生成一个随机通信通道密钥。这可以防止由黑客注入的恶意代码从可信访问监视应用程序206请求建立的通信通道密钥。这还可以防止在合法文件访问监视模块202和可信访问监视应用程序206之间在启动过程中建立了现有的密钥之后,恶意代码与可信访问监视应用程序206建立另一个通信通道密钥。

图13示出了根据一个实施例的用于通过非安全通信通道以安全方式在文件访问模块202和可信访问监视应用程序206之间交换消息的示例过程。可以使用诸如计算机系统100之类的计算机系统来实现图13所示的过程,并且图13所示的过程可以涉及诸如访问控制系统200之类的访问控制系统的操作。图13中的示例可与本文描述的各种其他过程一起使用,例如文件打开/创建/操作过程。

在1310处,文件访问监视模块202可以生成请求消息。例如,该请求消息可以是文件请求消息,例如,如以上参考图3至图5在本文中所描述的,打开文件,创建文件或对文件执行操作的请求。

在1311处,文件访问监视模块202然后可以从富操作系统中的存储器读取共享通信通道密钥。共享通信通道密钥可以已经使用诸如以上参考图12描述的通信通道密钥生成过程来生成。

在1312处,文件访问监视模块202可以使用共享通信通道密钥来生成哈希消息作为密钥哈希。文件访问监视模块202可以通过使用共享的通信通道密钥作为哈希密钥来哈希文件请求数据来生成哈希消息。

在1313处,文件访问监视模块202可以通过使用共享通信通道密钥来加密来自1310的请求消息来生成加密的文件请求消息。

在1314处,文件访问监视模块202可以将加密的文件请求消息和哈希消息发送到可信访问监视应用程序206。如图13所示,可以使用非安全通信通道1302将加密的文件请求消息(和哈希消息)发送到可信访问监视应用206。

在1315处,可信访问监视应用程序206可以接收加密的文件请求消息和哈希消息。可信访问监视应用程序206可以使用由可信访问监视应用程序206存储在存储器中的共享通信通道密钥来确定文件请求消息的有效性。

在1316处,可信访问监视应用程序206可以从存储器检索所存储的共享通信通道密钥。在1317处,可信访问监视应用程序206可以通过使用在1316获取的共享通信通道密钥来解密加密的文件请求消息,来生成解密的文件请求消息。在1318,可信访问监视应用程序206可以通过使用共享通信通道密钥哈希解密的文件请求消息来生成哈希解密消息。

在1319处,可信访问监视应用程序206可以将哈希解密消息与在1315处接收的哈希消息进行比较。当哈希解密消息和哈希消息匹配时,可信访问监视应用程序206可以确定所接收的文件请求数据是有效的。

如果可信访问监视应用程序206确定文件请求数据无效(例如,哈希解密消息和哈希消息不匹配),则可信访问监视应用程序206可以在1320处生成请求拒绝信号。可信访问监视应用程序206可以在1321处将请求拒绝的信号发送到文件访问监视模块202。在1328处,文件访问监视模块202可以检查该信号并确定该请求被拒绝。然后图13所示的过程将结束。然后文件访问监视模块202可以采取补救措施,诸如重新尝试请求传输,和/或提供指示该请求被拒绝的用户提示。

如果在1319处可信访问监视应用程序206确定文件请求数据有效(例如,哈希解密消息和哈希消息匹配),则可信访问监视应用程序206可以在1320处生成请求接受信号。在1323处,可信访问监视应用程序206可以处理该请求(例如,执行文件创建,文件打开或诸如本文所述的文件操作过程)并生成答复消息。因此,仅当接收到的文件请求数据有效时,可信访问监视应用程序206才可以确定允许请求处理对所请求文件的访问/创建/执行操作。

在1324处,可信访问监视应用206可以使用共享的通信通道密钥来生成哈希答复消息作为密钥哈希。文件访问监视模块202可以通过使用共享通信通道密钥作为哈希密钥来哈希答复消息数据来生成哈希答复消息。

在1325处,可信访问监视应用程序206可以通过使用共享通信通道密钥来加密来自1323处的答复消息来生成加密的答复消息。

在1326处,可信访问监视应用程序206可以将加密的答复消息和哈希答复消息发送到文件访问监视模块202。如图13所示,可以使用非安全通信通道1303将加密的答复消息(和哈希答复消息)发送到文件访问监视模块202。

在1327处,文件访问监视模块202可以接收加密的答复消息和哈希答复消息以及请求接受信号。文件访问监视模块202可以使用存储在富操作系统的存储器中的共享通信通道密钥来确定答复消息的有效性。在1328处,文件访问监视模块202可以检查信号并确定请求被接受。该过程因此可以进行到1329处。

在1329处,文件访问监视模块202可以从存储器检索所存储的共享通信通道密钥。在1330处,文件访问监视模块202可以通过使用在1329处获取的共享通信通道密钥来解密加密的答复消息,从而生成解密的答复消息。在1331处,文件访问监视模块202可以通过使用共享的通信通道密钥对解密的答复消息进行哈希处理来生成哈希解密答复消息。

在1332处,文件访问监视模块202可以将哈希解密答复消息与在1329处接收到的哈希答复消息进行比较。当哈希解密答复消息和哈希答复消息匹配时,文件访问监视模块202可以确定所接收的答复消息是有效的。

如果文件访问监视模块202确定答复消息无效(例如,哈希解密答复消息和哈希答复消息不匹配),则文件访问监视模块202可以在1333处丢弃答复消息。图13所示的过程将结束。然后文件访问监视模块202可以采取补救措施,例如重新尝试请求传输,向可信访问监视应用程序206提供拒绝答复消息和/或向用户提供指示该请求被拒绝的提示。

如果在1332处文件访问监视模块202确定答复消息是有效的(例如,哈希解密答复消息和哈希答复消息匹配),则文件访问监视模块202可以对答复消息进行认证。文件访问监视模块202可以处理回复消息,并且基于回复消息的内容根据需要采取进一步的动作(例如,将进一步的动作传递给文件系统203)。

如图13所示的示例过程所示,可以在文件访问监视模块202和可信访问监视应用程序206之间建立安全通信通道。这可以允许文件访问监视模块202和可信访问监视应用程序206以安全的方式交换消息,即除了文件访问监视模块202和可信访问监视应用程序206(共享的通信通道密钥在内存中可用)以外,没有其他方可以解释或(在不被发现的情况下)修改通过安全通信通道交换的消息。

本文上面描述的实施例可以使用可信执行环境来实现密码安全的访问控制。本文描述的实施例还可以使访问控制能够使用用户凭证基于特定用户(例如,个性化)进行管理。

本文描述的系统和方法可以在配备有能够提供至少两个隔离执行环境的处理器的计算机系统中操作。隔离执行环境可以包括富执行环境和可信执行环境。可以在富执行环境中加载富操作系统,并且可以在可信执行环境中加载可信操作系统。可以在富操作系统的内核内提供访问监视模块,并且可以在可信操作系统上提供可信访问监视应用程序。

富操作系统中的文件系统可以配置为提供文件系统级别的加密。可以将加密文件配置为包括文件访问数据(例如,密钥属性),该文件访问数据包含可以在强制访问控制中使用的文件标签信息和可以用于导出文件加密密钥的密钥信息。可以使用秘密密钥进一步加密所有密钥属性,其中仅可信应用程序具有秘密密钥来解密密钥属性。

当某个进程(程序的一个实例)向文件提交访问请求时,富操作系统内核内部的访问监视模块可以收集该进程的标签信息,并将该进程标签信息与该文件的密钥属性一起通过安全通信通道发送到可信访问监视应用程序。当接收到密钥属性和进程标签信息时,可信访问监视应用程序可以解密密钥属性,并根据访问策略检查密钥属性内部的文件标签信息和进程标签信息。可以配置可信访问监视应用程序,以便仅当不违反存储在可信访问监视应用程序中的策略时,可信访问监视应用程序才可以使用密钥属性内的密钥信息来导出加密密钥。然后,可信访问监视应用程序可以通过安全通信通道,通过富操作系统内核内部的访问监视模块将加密密钥传递给文件系统。

本文描述的实施例可以将文件加密密钥派生与可信访问中的强制访问控制集成在一起,从而使强制访问控制在密码学意义上是安全的,并在访问文件时强制富操作系统中的任何进程(包括内核进程)执行强制访问控制。在一些情况下,为了个性化强制性访问控制,该系统和方法可以包括可操作来从用户收集凭证的用户模式服务进程。仅在通过用户模式服务进程收集了用户的凭据之后,才可以在可信应用程序中使用用于解密文件的密钥属性的秘密密钥。

可信应用程序还可以通过在将进程标签分配给进程并且还没有带有该标签的进程时向用户征求凭据来维护进程标签激活记录。然后,可信应用程序可以将进程标签激活记录合并到强制访问控制中。通过维护基于用户凭据的进程标签激活并将进程标签激活记录合并到可信应用程序中的强制访问控制中,可以对强制访问控制进行个性化设置,并可以确保仅在允许访问这些文件的进程被用户启动之后加密文件才能根据访问控制策略被访问。

尽管上面的描述描述了示例实施例的特征,但是应当理解,所描述的实施例的一些特征和/或功能在不脱离所描述的实施例的精神和操作原理的情况下易于修改。例如,借助于所代表的实施例或示例描述的各种特性可以选择性地彼此组合。在其他情况下,本文未详细描述公知的方法,过程和组件,以免混淆实施例的描述。因此,以上已描述的内容旨在例示所要求保护的概念而非限制性的。本领域技术人员将理解,在不脱离如所附权利要求所限定的本发明的范围的情况下,可以做出其他变型和修改。权利要求的范围不应该由优选的实施例和示例所限制,而应当给出与整个说明书一致的最宽泛的解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号