一种在文件系统中提供自定义存取控制方式的方法转让专利

申请号 : CN200910008922.6

文献号 : CN101807185B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马杰

申请人 : 马杰

摘要 :

一种在文件系统中提供自定义存取控制方式的方法,其中,将访问操作的存取控制验证工作细分成若干彼此独立的验证步骤,每个验证步骤由预先设定的验证方法和执行验证方法的输入信息所组成。自定义的含义体现在管理者和应用程序能规定存取控制验证工作所包括的验证步骤、能规定每个验证步骤的操作流程以及能规定验证步骤所需要的各种数据内容,甚至能添加所需的验证方法。利用该方法,文件系统可以为各种内容管理型的应用开发提供底层支持,促进新型内容管理应用的出现。

权利要求 :

1.一种在文件系统中提供自定义存取控制方式的方法,包括以下步骤:(1)文件系统提供多种验证方法,并支持新验证方法的添加;

(2)在文件与目录的存取控制设置信息中记录与访问操作相关联的验证方法以及关联验证方法执行所需的必要信息;

(3)针对文件与目录的访问操作,存取控制工作过程为,首先收集影响访问操作的存取控制要求,其次根据存取控制要求而执行访问操作关联的每个验证方法,最后依据所有被执行验证方法的执行结果来决定是否批准访问操作的执行;

(4)文件系统提供操作存取控制设置信息的访问接口。

2.根据权利要求1中所述的在文件系统中提供自定义存取控制方式的方法,其特征在于,所述验证方法的存在形式为一个验证访问操作发生是否符合执行条件的功能函数。

3.根据权利要求2中所述的在文件系统中提供自定义存取控制方式的方法,其特征在于,所述执行条件的内容由验证方法的工作过程和验证方法执行所需的必要信息共同决定。

4.根据权利要求2中所述的在文件系统中提供自定义存取控制方式的方法,其特征在于,所述执行条件包括要求访问者具有规定认证体系的合法身份。

5.根据权利要求2中所述的在文件系统中提供自定义存取控制方式的方法,其特征在于,所述执行条件包括要求访问程序具有规定属性。

6.根据权利要求2中所述的在文件系统中提供自定义存取控制方式的方法,其特征在于,所述执行条件包括要求计算机硬件、软件或网络环境具有规定的特征。

说明书 :

一种在文件系统中提供自定义存取控制方式的方法

技术领域

[0001] 本发明的内容涉及操作系统中负责管理和存储文件信息的文件管理系统,即文件系统。具体讲述一种在文件系统中提供自定义存取控制方式的方法。其中通过提供可配置化的文件存取控制过程和提供多样性的验证方法,使得用户和应用程序利用文件系统便能满足个性化的文件存取控制需求,最终让文件系统成为内容管理及其应用的基础平台。

背景技术

[0002] 负责管理和存储文件信息的文件系统主要由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件、控制文件的存以及当用户不再使用时撤销文件等。
[0003] 控制文件的存取是文件系统的基础功能,目的是在文件共享的使用过程中避免破坏的发生,通常在文件系统中由存取控制验证模块来完成。在通用文件系统中,存取控制验证模块是位于目录检索模块和逻辑文件系统之间的检查站,负责访问限制和共享权的核对与判断,如图1。实现文件保护是存取控制验证模块的基础功能。其工作过程通常为,把用户提出的访问要求与文件控制块中所规定的存取控制设置信息进行比较,审核用户的访问是否合法。
[0004] 存取控制设置信息是文件存取控制工作的依据。存取矩阵(Access Matrix)是现有存取控制设置信息的典型类型。存取矩阵使用行来表示访问动作的引发者,即访问主体。存取矩阵使用列来表示被访问的对象,即访问客体。存取矩阵中每个元素都存储着一些存取权限。存取控制列表ACL(Access Control List)和存取能力列表(Capability List)是最常见的存取矩阵实现形式。基于存取矩阵的文件系统存取控制核心为限定访问主体对访问客体的操作权限,访问主体的类型范围由操作系统预先定义。
[0005] 在互联网快速发展和移动存储日益普及的背景下,电子文件的携带性逐渐增强和传播速度日益加快,分布性是现今电子文件的重要存在特征。现有文件系统的存取控制工作基于操作系统中的存取矩阵保护,即限定访问主体对访问客体的访问权限。在网络的环境下,文件的管理者和访问者经常分布在网络的两端,访问主体的含义需要由远程文件管理者来定义,即访问主体具呈现网络化的特点。由于存取控制需求中的访问主体已经不局限于单一的操作系统范畴,文件系统提供的存取控制手段已经不能满足分布状态下的文件管理需要。
[0006] 为了解决分布状态下的文件管理需要,越来越多的文件编辑器或文件访问工具开始利用改变文件内容格式的方式来提供文件内容访问控制。例如,FileSecure使用特定文件格式提供内容控制。Word在文档中加入访问密码,甚至Office2003进一步提出了IRM管理机制。
[0007] 在应用工具中增添文件内容访问控制措施的技术手段在能满足特定文件管理需要的同时,也存在一些不足。首先,用户需求的多样性和变化性使得单纯应用层解决方案将不断增加应用开发的复杂度。其次,应用层的管理根本上是内容层面的管理,电子文件的分散性和围绕电子文件的物理访问两方面依然没有得到有效管理。

发明内容

[0008] 由于文件系统的特殊地位,如果文件系统能提供一种自定义存取控制方式,通过提供可配置的存取控制接口以及基础的存取控制手段让管理者和应用程序能定制所需的存取控制过程,将会有以下优点:
[0009] 1通过可配置的接口,管理者和应用程序设置符合自己要求的验证条件,甚至加入新的验证手段,进而可以便捷实现个性化的文件管理的目的,不需等待其他应用软件的支持。
[0010] 2将基础和通用的存取控制手段存放于文件系统中,可以省去应用程序开发的大量工作,进而提高开发效率。
[0011] 本发明中,在文件系统内提供自定义存取控制方式的核心思想是将访问操作的存取控制验证工作细分成若干彼此独立的验证步骤,每个验证步骤由预先设定的验证方法和执行验证方法的输入信息所组成。自定义的含义体现在管理者和应用程序能规定存取控制验证工作所包括的验证步骤、能规定每个验证步骤的操作流程以及能规定验证步骤所需要的各种数据内容,甚至能添加所需的验证方法。具体来说,在文件系统中提供自定义存取控制方式的方法包括以下四个方面:
[0012] 1文件系统提供多种用于存取控制验证工作的验证方法,并支持新验证方法的添加。每种验证方法和执行该验证方法的输入信息能共同组成一个验证步骤。
[0013] 2文件系统中,文件和目录所具有的存取控制设置信息由一个或多个访问操作的存取控制要求所组成。存取控制要求在记录与访问操作关联的验证方法之外,还记录各验证方法执行所需的必要信息。
[0014] 3访问操作发生时,存取控制验证模块工作的基本过程为:第一步,收集影响访问操作的存取控制要求,第二步,针对收集的存取控制要求,执行其中与访问操作相关联的验证方法。第三步,依据所有被执行验证方法的执行结果来决定是否批准访问操作执行。
[0015] 4文件系统通过提供访问接口,使得工具程序和应用程序能对记录存取控制设置信息的数据结构进行操作。
[0016] 如上方案中,验证方法是验证步骤的代码实现,即功能函数,其存在位置包括位于文件系统自身含有的静态代码模块中和位于从文件系统外部加入的动态链接库中两种。
[0017] 验证方法存在用户身份的验证、访问程序的验证以及使用环境的验证等三种类型。用户身份验证的功能是核实访问者具有规定认证体系的合法身份,例如,要求具有网络认证服务器上的合法身份、要求具有本地操作系统的特定身份。访问程序的验证用来确保访问操作仅能由规定的计算机软件程序执行,例如,要求访问程序具有规定的程序名称、要求访问程序的进程为系统进程。使用环境的验证用来确保访问操作仅能在特定的计算机使用环境下执行,例如,要求网络上存在特定服务器、要求计算机上安装特定硬件、要求计算机上运行着特定软件。
[0018] 在访问操作的存取控制要求中,每个被记录的验证方法都为访问操作存取验证的一个验证步骤。执行验证步骤时需要的数据信息也记录在访问操作所对应的存取控制要求中,其范围包括软件程序、硬件设备、网络元素、使用者、数据获取途径等方面的标识信息,还包括影响此验证方法工作过程的控制信息。
[0019] 在自定义存取控制方式中存取控制设置信息管理的访问操作包括文件系统传统访问操作、围绕存取控制设置信息的访问操作、文件(目录)的个体管理操作等方面。对于一个文件(目录)的访问操作,其存取控制要求的记录位置有两方面,一方面是在文件(目录)本身的存取控制设置信息中,另一方面是在包含该文件(目录)的上级目录所具有的存取控制设置信息中。
[0020] 记录存取控制设置信息的数据结构在文件系统中与文件(目录)的内容存储直接关联,并作为文件(目录)的一部分而存在。
[0021] 基于上述方案,管理者和应用程序通过在文件(目录)的存取控制设置信息中选择所要的验证方法并给定所需的数据信息,提供自定义存取控制方式的文件系统便会根据存取控制设置信息的要求而管理文件(目录)所关联的访问操作。
[0022] 例如:通过在文件读取操作的存取控制要求中选择执行远程身份验证的验证方法,并给定网络认证服务器的访问途经,管理者便能利用远程计算机上文件系统的存取控制验证模块来保证文件的读取操作只能由自己网络认证服务器授权的用户执行。这种方式相比去找寻或等待的文档浏览程序来提供符合要求的认证模式更为便捷,甚至不需要为浏览工具而改变文档格式。
[0023] 相比传统文件系统,具有自定义存取控制方式的文件系统在具备负责管理和存储文件信息的基本功能之外,还能成为支持个性化内容管理应用的基础平台。本文后面给出实施方案,其中将对上述内容进行阐述。

附图说明

[0024] 图1是典型文件系统的内部结构图。
[0025] 图2是说明各种常见验证方法的示例图。
[0026] 图3是说明存取控制设置信息存储形式的示例图。
[0027] 图4是说明存取控制设置信息记录格式的示例图。

具体实施方式

[0028] 具有自定义存取控制方式的文件系统首先是一个文件系统,与传统文件系统相比主要是增添了自定义存取控制方式的相关功能。下面将介绍一种本发明的实施方案,具体内容分为以下几个方面:
[0029] 验证方法
[0030] 在本实施中,验证方法是供存取控制验证模块调用的功能函数,是不包括硬件、软件、网络设备、使用者等方面标识信息的验证步骤。软件程序、硬件设备、网络元素、使用者、数据获取途径等方面的标识信息和影响验证步骤工作流程的控制信息将以输入数据的形式传入验证方法。
[0031] 在本实施中,验证方法有静态形式和动态形式两类。静态形式的验证方法为文件系统自带的验证方法,其实质是文件系统自身所具有的一段函数代码。另一种是以动态形式存在的验证方法,为应用程序或管理者所添加,且位于文件系统能访问到的动态链接库中。
[0032] 在本实施中,存取控制验证模块通过函数调用的形式来使用静态形式的验证方法。对于动态形式的验证方法,存取控制验证模块首先需要利用动态链接库的技术来获得验证方法的访问入口,然后使用。
[0033] 在本实施中,无论静态形式还是动态形式的验证方法,不同验证方法之间仅存在函数名称的差异,返回值类型、参数个数、参数类型和参数顺序都完全相同。例如采用下列函数形式:
[0034] int函数名称(void*数据指针,int数据大小,void*结果说明)
[0035] 其中,函数返回值用来标记是否验证成功,使用非零值表示true,即验证成功,使用零值表示false,即验证失败。数据指针和数据大小两个参数用于向验证方法传递数据信息,具体为数据指针指向存储所有输入数据信息的数据区域,而数据大小表示存储所有输入数据信息的数据区域大小。结果说明参数指向的内容为验证方法返回的验证结果说明信息。
[0036] 在本实施中,每个验证方法都具有一个且唯一的标识字符串,不同验证方法之间标识字符串不同。验证方法标识字符串由验证方法类型、验证方法类别、验证方法提供者以及验证方法名称四部分组成。验证方法类型表示验证方法为静态或者动态。验证方法用途表示验证方法的工作目的,例如访问程序验证。验证方法提供者为表征验证方法开发者或开发厂家的字符串。验证方法名称为开发者或者开发厂家为验证方法起的名字。
[0037] 在本实施中,使用下划线将验证方法类型、验证方法类别、验证方法提供者以及验证方法名称四部分连接在一起而形成验证方法标识字符串。具体形式如下:
[0038] 验证方法类型_验证方法类别_验证方法提供者_验证方法名称
[0039] 例如,一个验证方法标识字符串为static_user_majie_remotessh,其中static表示验证方法为静态,user表示验证方法工作为用户身份验证,majie为验证方法开发者的标识字符串,remotessh为开发者给验证方法起的名称。
[0040] 在本实施中,已添加的动态验证方法需要将标识字符串和动态链接库的对应关系以及验证方法的函数名称记录在规定的配置文件中。该配置文件主要功能是供存取控制验证模块根据动态验证方法的标识字符串查询所要使用的动态链接库,并能最终访问到验证方法。
[0041] 在本实施中,动态验证方法的添加工作是将动态方法对应的动态链接库复制到文件系统能访问到的目录中,并在记录标识字符串和动态链接库的配置文件中增添相应条目。
[0042] 在本实施中,根据工作目的,验证方法可分为用户身份的验证、访问程序的验证以及使用环境的验证等三种类别。其中:
[0043] 1用户身份验证可分为本地身份验证、网络身份验证、设备身份验证三种情况。本地身份验证是指身份验证信息及身份验证过程都在本地计算机上的情况,例如操作系统的用户身份。网络身份验证是指需要通过网络获得身份验证信息或者身份验证过程需要使用到网络的情况,例如通过认证服务器。设备身份验证是指需要利用特定设备获得身份验证信息或者身份验证过程需要使用特定设备的情况,例如使用USB-key。
[0044] 2访问程序验证有直接验证程序、程序提供证明等验证途径。直接验证程序是指根据给定程序信息确认访问程序符合要求,例如验证程序的名称、验证程序的进程属性。程序提供证明是指访问程序提供能证明其具有访问权限的数据信息,例如带有访问授权含义的数字证书。
[0045] 3使用环境验证可分为计算机硬件环境、计算机软件环境、计算机网络环境三种情况。硬件环境验证是指验证计算机内包含特定标识或特定功能的硬件,例如指定MAC地址的网卡。软件环境验证是指验证计算机内安装或运行着特定软件,例如运行着特定安全检测软件。计算机网络环境是指验证处于特定的网络中,例如有特定的网络计算机。
[0046] 图2中,举例说明部分类型的的验证方法。
[0047] 存取控制设置信息
[0048] 本实施中,在文件系统使用索引方式存储文件以及目录的基础上,存取控制设置信息以文件系统内部数据结构的形式来保存。具体的保存方式为:
[0049] 1文件(目录)的存取控制设置信息记录在独立的物理块上,所占用物理块的数量由存取控制设置信息的内容大小决定。
[0050] 2在记录文件(目录)信息的索引块上,添加记录存取控制设置信息存储位置的数据项。数据项的数据结构类型为指针数组,每个指针都指向一个记录存取控制设置内容的物理块。
[0051] 图3以文件为例展示了存取控制设置信息的存储方式。其中,在索引块中有专门一块区域用来记录保存存取控制设置信息的物理块。
[0052] 在本实施中,存取控制设置信息中记录的是访问操作的存取控制要求,具体为与访问操作关联的验证方法以及各验证方法执行所需的必要信息。
[0053] 在本实施中,使用xml标记语言作为存取控制设置信息的记录工具,通过分级嵌套的形式来记录存取控制设置信息的内容。具体记录形式可参加下面的例子:
[0054] 一个文件记录的内容为公司电话薄,属于ABC公司所有。ABC公司希望该电话本的读取需要通过网络认证许可,并且希望该电话本的修改必须在具有特定MAC地址的计算机上以及必须通过名为DocWriter.exe的软件工具。
[0055] 满足上述要求的存取控制设置信息如图4,其中主要标记的含义简要如下:
[0056] access control用于标记整个存取控制设置信息。
[0057] operation用于标记一个访问操作的存取控制要求。
[0058] check method用于标记与一个验证方法有关的内容。
[0059] param用于标记验证方法所用到的参数。
[0060] operationID用于标记访问操作的标识字符串。
[0061] checkID用于标记验证方法的标识字符串。
[0062] 在本实施中,文件(目录)的存取控制设置信息内与自身关联的访问操作主要包括以下三类:
[0063] 1围绕目录或文件的内容访问操作。例如,针对文件的读、写和执行,针对目录的读、写。
[0064] 2围绕目录或文件的个体管理操作。例如,针对文件与目录的复制、重命名、删除、移动、修改属性操作。
[0065] 3围绕存取控制设置信息的访问操作。例如,针对存取控制设置信息的读、写操作。
[0066] 在本实施中,目录的存取控制设置信息具有影响下级目录访问操作及下级文件访问操作的功能,具体途径为将下级目录或下级文件都具有的存取控制要求存放到目录的存取控制设置信息中。例如,对于一个访问操作,同一目录内的所有文件都具有一样的存取控制要求,则访问操作的存取控制要求可被记录到文件所在目录的存取控制设置信息中。
[0067] 在本实施中,存储控制设置信息内每个访问操作都会用一个全局唯一的标识字符串来表示。访问操作标识字符串的命名规则为:
[0068] 1与文件(目录)本身关联的操作直接使用访问操作名称做标识字符串,例如,读操作使用read来标识,存储控制设置信息的读取使用readconfig来标识。
[0069] 2与下级目录或下级文件关联的访问操作使用访问操作名称后面分别加上‘_dir’或‘_file’作为标识字符串。例如,目录下属所有文件的读操作对应的标识字符串为read_file,目录下属所有目录的写操作对应的标识字符串为write_dir。
[0070] 存取控制验证模块
[0071] 在本实施中,审核访问权限的实质工作由存取控制验证模块来完成,完成的方式为执行各种与访问操作关联的验证方法。执行工作具体包含四个方面:(1)获得与操作关联的存取控制要求;(2)获取每项存取控制要求所包含验证方法的访问途经;(3)依次执行每项存取控制要求包含的验证方法;(4)依据验证结果,决定操作的执行。
[0072] 在本实施中,与访问操作关联的存取控制要求主要有两个来源,一个是文件(目录)本身的存取控制设置信息,另一个是文件(目录)所在路径上的上层目录所携带的存取控制设置信息。
[0073] 在本实施中,获取与访问操作关联的存取控制要求需要完成两方面工作。首先,遍历文件(目录)本身的存取控制设置信息,利用访问操作对应的标识字符串来查找与访问操作对应的存取控制要求。其次,根据文件(目录)所在路径,从根目录开始,利用表征下级文件(目录)访问操作的标识字符串来检索每级目录的存取控制设置信息,用来查找会影响访问操作的存取控制要求。
[0074] 在本实施中,文件(目录)的存取控制设置信息的访问过程为:访问记录文件(目录)信息的索引节点,找到记录存储存取控制设置信息存取位置的数据项;遍历该数据项的每个指针成员,通过访问指针指向的物理块实现访问存取控制设置信息内容的目的。
[0075] 在本实施中,由于存取控制设置信息中的验证方法都是用标识字符串来表征的,与访问操作关联的存储控制要求搜集完毕之后,还需要将每个存取控制要求包含的验证方法标识字符串转换为可被执行代码所调用的形式。
[0076] 在本实施中,为了完成验证方法标识字符串向执行代码调用形式的转换,文件系统分别为静态验证方法和动态验证方法维持一个静态方法映射表和一个动态方法映射表。两个映射表分别存储静态验证方法标识字符串和静态验证方法函数指针的映射关系、动态验证方法标识字符串和动态验证方法访问入口的映射关系。
[0077] 在本实施中,静态方法映射表和动态方法映射表的数据内容初始构建和运行期间更新遵循以下原则:
[0078] 1静态方法映射表的构建在文件系统加载时直接完成。静态方法映射表的数据内容在运行期间保持不变。
[0079] 2动态方法映射表的构建在存取控制验证模块第一次使用动态验证方法时完成。构建的基本途径是读取记录动态验证方法访问途径和动态验证方法标识字符串之间映射关系的配置文件。在动态验证方法标识字符串查询失败时,存取控制验证模块会直接查看配置文件,并将动态方法映射表的数据内容进行一次更新。
[0080] 在本实施中,为了使用验证方法,存取控制验证模块需要先从验证方法标识字符串中提取出验证方法类别信息,然后根据验证方法的类别去访问动态方法映射表或者静态方法映射表而获得验证方法的访问入口。
[0081] 在本实施中,获得各个验证方法的访问入口之后,存取控制验证模块依次执行存取控制要求所覆盖的验证方法。具体验证方法的执行次序分为两个层面:
[0082] 1在不同存取控制设置信息之间,根据文件(目录)所在路径由上层到下层逐步执行每个关联存取控制要求记录的验证方法。
[0083] 2在同一个存取控制要求内,根据记录的顺序来执行关联的验证方法。
[0084] 在本实施中,执行验证方法时将存取控制要求中所记录的参数作为验证方法执行所需的输入数据,即使用存取控制要求中参数关键字标记的内容传入验证方法。例如,图4中param关键字所标记的内容。
[0085] 在本实施中,存取控制验证模块执行每个验证方法后都会得到验证结果,若验证结果表明存在验证步骤执行失败,则拒绝访问操作的执行。
[0086] 在本实施中,存取控制验证模块无法找到存取控制要求中关联验证方法的访问入口,则拒绝访问操作执行。
[0087] 程序访问接口
[0088] 在本实施中,文件系统向上层应用程序提供的程序访问接口由三部分组成,分别为:1,典型文件系统具有的通用访问接口,例如文件读、文件写等;2,存取控制设置信息的访问接口,例如存取控制设置信息的读、写、删除等操作。4,文件与目录的个体管理访问接口,例如文件与目录的移动和复制等。
[0089] 在本实施中,上层应用程序通过通用访问接口实现文件(目录)个体管理功能时,其涉及的到的存取控制验证过程与直接调用相应个体管理访问接口并不相同。
[0090] 例如,对一个文件,利用读和写两个通用访问操作可以实现个体管理访问接口中的操作复制。但在存取控制验证时,前者涉及到源文件的读操作和目标目录的写操作的存取控制验证,而后者涉及到源文件的复制操作和目标目录的写操作的存取控制验证。
[0091] 其他方面
[0092] 在本实施中,带有存取控制设置信息的文件(目录)在支持与不支持自定义存取控制方式的文件系统间进行移动或复制时,文件(目录)存取设置信息将被执行封装或拆装操作。具体为:
[0093] 1文件从支持自定义存取控制方式的文件系统移动复制到不支持自定义存取控制方式的文件系统时,存取控制设置信息在不支持存取控制设置信息的文件系统中会被保存为一个独立的文件。
[0094] 2文件从不支持自定义存取控制方式的文件系统移动复制到支持自定义存取控制方式的文件系统时,存取控制设置信息将从记录存取控制设置信息的独立文件中导出,并被存入支持自定义存取控制方式文件系统中的存储位置。
[0095] 在本实施中,不支持自定义存取控制方式的文件系统中,记录存取控制设置信息的文件具有和内容文件相同的文件名,但后缀名使用专用后缀。
[0096] 此外,尽管以上揭示了本发明的一种实施方案,但本发明并不局限在特定的形式或所揭示的形式。本领域技术人员在熟读本申请后能够理解,在不脱离本发明的内容、范围和精神的前提下而获得的等效事物也在本发明的覆盖范围中。