一种安全操作系统强制访问控制机制的实施方法

文档序号:6467158阅读:200来源:国知局

专利名称::一种安全操作系统强制访问控制机制的实施方法
技术领域
:强制访问控制机制的实施方法属于安全操作系统设计与实现领域,是信息安全的核心技术之一。(二)
背景技术
:操作系统是应用软件同系统硬件的接口,其目标足高效地、最大限度地、合理地使用计算机资源。而安全操作系统是增强安全机制与功能,保障计算资源使用的保密性,完整性和可用性。如果没有安全操作系统的支持,数据库就不可能具有存取控制的安全可用性,就不可能有网络系统的安全性,也不可能有应用软件信息处理的安全性。因此,安全操作系统是整个信息系统安全的基础,缺少安全操作系统的保护,整个系统的安全就如同建立在沙滩上的堡垒。许多经典文献指出,当前主流操作系统的不安全的主要原因也是由于缺少强制访问控制机制。强制访问控制机制是安全操作操作系统的重要的安全功能之一,是否具备该功能,也是高安全等级操作系统和低安全等级操作系统重要区别之一。在GB17859-1999《计算机信息系统安全保护等级划分准则》中,要求符合第三级安全标记保护级要求的系统具有强制访问控制功能,并且强制访问控制的实施需要提供有关强制访问控制模型、数据标记、以及主体和客体非形式化描述。更近一步,在第四级结构化保护级的系统中,要求可信计算基建立在一个形式化模型之上,并且强制访问控制的范围扩到系统中所有的主体和客体。GB/T20271-2006《信息安全技术操作系统安全技术要求》是国内最新的安全操作系统国家标准,其采用了IS0/IEC15408-1999《信息技术安全技术信息技术安全评估通用准则》中安全功能要求和安全保证要求的思想对于安全操作系统等级进行了划分,其对于强制访问控制从策略,功能,范围,粒度和环境五个方面对于强制访问控制进行了一般性的规定,并描述了可使用的安全策略模型,包括保密性多级安全模型,完整性多级安全模型以及基于角色的访问控制模型。当前,大多数商业公司和研究机构都是基于Li皿x内核(Kernel)来开发安全操作系统的,并设计和实现强制访问控制机制,因为Li皿x是一个开放源码(OpenSource)的操作系统,研究者可以深入到内核,拥有更大的自主阅读和修改权限。而通常所采用的方法为修改Kernel中进程管理,文件系统等模块中关键的系统调用,在其中插入相应的钩子函数,来实施某种特定的安全策略。尽管这种方法能够完成强制访问控制功能,但是这样做比较困难。一是这种方法对于系统开发人员素质要求较高,必须深入到内核,读懂关键的系统调用,这是一件困难的工作;二是,这种方法工作量较大,内核中系统调用需要修改的地方较多,较为琐碎,容易产生混乱,影响开发速度和进程。随着对于安全操作系统研究的不断深入以及对于开发出高安全等级操作系统迫切需求,研究者提出了一个基于Li皿x内核通用访问控制框架LSM(Li皿xSecurityModule),它为开发者提供了一个较低的技术开发门槛,本专利给出了如何利用该框架进行安全操作系统中强制访问机制的设计与开发的技术路线。
发明内容高安全等级操作系统中通常具有强制访问控制机制,根据全局的访问控制策略进行主体对于客体的访问授权是强制访问控制最显著的特征。本发明从四个方面即安全体系结构、流程、支撑模型以及关键钩子和数据结构对于强制访问控制机制在安全操作系统中的实施方法进行了说明。这为构造大型、复杂、安全的应用信息系统提供了保障,并在电子商务、电子政务和电子金融等信息系统中有着广泛而重要的应用。作为后续讨论的基础,首先明确几个重要的概念。3.1几个基本概念安全操作系统(SecurityOperatingSystem):能对所管理的数据与资源提供适当的保护级、有效地控制硬件与软件的操作系统。就安全操作系统的形成方式而言,一种是从系统开始设计时就充分考虑到系统的安全性的安全设计方式。另一种是基于一个通用的操作系统,专门进行安全性改进或增强的安全增强方式。安全操作系统在开发完成后,在正式投入使用之前,都要求通过相应的安全性测评。操作系统安全性(SecurityofOperatingSystem):操作系统具有或应具有的安全功能,比如存储保护、运行保护、标识与鉴另U、访问控制、安全审计。可信计算基(TrustedComputingBase):简称TCB,是计算机系统内保护装置的总体,包括硬件、软件、固件和负责执行安全策略的组合体。它建立了一个基本的保护环境并提供了一个可信计算系统所要求的附加用户服务。安全策略(SecurityPolicy):对TCB中资源进行管理、保护和分配的一组规则。简单的说,就是用户对于安全需要的描述。一个TCB中可以有一个或多个安全策略。安全模型(SecurityModel):用形式化方法来描述如何实现系统的机密性、完整性和可用性等安全要求。主体(Subject):是这样的一种实体,它引起信息在客体之间的流动。通常,这些实体是指人、进程或设备等。客体(Object):系统中被动的主体行为承担者。对一个客体的访问隐含着对其所含信息的访问,客体的类型有记录、程序块、页面、段、文件、目录等。访问控制(AccessControl):限制已授权的用户、程序、进程、或计算机网络中其它系统访问本系统资源的过程。强制访问控制(MandatoryAccessControl):用于将系统中的信息分密级和类进行管理,以保证每个用户只能够访问那些被标明可以由他访问的信息的一种访问约束机制。自主访问控制(DiscretionaryAccessControl):用来决定一个用户是否有权限访问此客体的一种访问约束机制,而该客体的所有者可以按照自己意愿指定系统中其它用户对此客体访问的权限。敏感标记(SensitivityLabel):用以表示主体或客体安全级别并描述客体数据敏感性的一组信息。在可信计算基中把敏感标记作为强制访问控制决策的依据。LSM(Li皿xSecurityModule):是Linux系统中一个灵活的、通用的访问控制框7架,通过提供一系列关于程序执行(ProgramExecution)、文件系统(FileSystem)、节点(Inode)、文件(File)、进程(Task)、进程问通信(IPC)等方面的钩子函数接口,而由用户重写相应的安全策略。3.2安全体系结构开发安全操作系统首先要确定其安全体系结构,通常它包括以下几个方面的关键内容1)详细描述了系统中安全相关的所有方面;这包括系统可能提供的所有安全服务以及保护系统安全的所有安全措施,描述方式可以采用自然语言也可以用形式化语言;2)提出了指导设计的基本原理;根据系统设计的要求以及工程设计的理论和方法,明确系统设计的各个方面的基本原则;3)在一定的抽象层次上描述各个安全相关模块之间的关系。这可以用逻辑关系图表达。这在抽象层次上按满足安全需求的方式描述了系统关键元素之间的关系;4)提出了开发过程中的基本框架及对应于该框架的层次结构;显然,安全体系结构在整个开发过程中了扮演了指导者的角色,确立它的中心地位,所有开发者在开发前需要对于安全体系必须达成共识,并在开发过程中自觉服从于安全体系结构。本说明书的中强制访问控制机制是项目Li皿x高安全等级操作系统的重要安全功能之一,整个安全操作系统系统由下到上分为四个层次即驱动层,内核层,系统层和应用层,其主要包括强制访问控制执行模块、标记管理模块、管理信息处理模块,安全初始化模块以及存储介质加密保护模块,整个系统的模块结构划分以及模块之间的关系见图1(见说明书附图1),图1是Li皿X安全操作系统中模块划分图,系统的强制访问控制功能主要是由强制访问控制执行模块,标记管理模块以及管理信息处理模块共同完成的。下面分别描述各模块的功能1.强制访问控制执行模块强制访问控制执行模块在系统调用接口位置截取系统执行流程,并顺序执行以下功能參调用标记管理模块完成系统中主客体的标识和强制访问控制验证工作。參根据标记管理模块返回的函数调用结果,对系统调用行为进行裁决。參根据裁决的结果,提取该次行为的审计信息,并将其发送到管理信息处理模块。參对被裁决为非法访问的行为,进行返回处理,并返回系统错误信息给应用子系统。2.标记管理模块标记管理模块在系统内核层执行,完成如下一些安全功能參根据管理信息处理模块提供的强制访问控制包,建立内核用户安全列表、客体安全列表和特权安全列表。參在系统执行创建新主体(fork,exec)和创建新客体(open,create)的操作时,从安全列表中查找对应的安全标记,并与主体/客体绑定。參在系统执行访问时,根据强制访问控制执行模块提供的主体/客体标记,对访问是否符合强制访问控制进行判决,如果判决允许,则返回允许结果给强制访问控制执行模块。參对不符合强制访问控制的访问,判断主体是否具有该客体的执行特权,如符合该特权,则返回特权允许信息给强制访问控制执行模块,否则返回禁止访问结果。3.管理信息处理模块管理信息处理模块处理与安全管理相关的信息收发、筛选,包括强制访问控制模块的接收和审计模块的发送,具体功能如下參接收安全管理中心发送的下拉安全管理策略数据包,检查其可信性,即完整性,而后将其解密后发送给标记管理模块。參接收强制访问控制处理模块中获取的审计信息,对其进行分类筛选,并根据其优先级次序将审计信息发送给审计子系统。參对需要完整性验证的客体访问操作,当标记管理模块返回不确定结果时,强制访问控制执行模块向管理信息处理模块发送对应审计信息,由管理信息处理模块的完整性验证进程执行完整性验证功能,并将结果向标记管理模块发送,然后通知强制访问控制执行模块。參对网络访问控制行为,当标记管理模块返回不确定结果时,强制访问控制执行模块向管理信息处理模块发送对应审计信息或执行完整性验证功能,管理信息处理模块据此组织可信接入申请数据包,并向对应的安全节点子系统发送,而后获取对应节点的可信接入应答数据包,返回可信接入确认数据包,然后通知强制访问控制执行模块。4.安全初始化模块安全初始化模块完成功能如下參系统从启动到正常运行过程中基于完整性度量的可信链建立,包括TPCM模块对BIOS的完整性检查,BIOS对可信引导程序的完整性检查,可信引导程序对可信初始系统的完整性检查,可信初始系统对运行环境的完整性检查。參在系统引导过程中,执行系统用户开机检查功能,为系统的启动分配初始主体信息。5.存储介质加密保护模块存储介质加密保护模块对文件系统向存储介质的读写操作执行文件粒度的加密保护功能,防止绕过系统TCB机制对存储介质的直接访问行为导致泄密事故。3.3强制访问控制流程系统在初始化过程中,安全管理中心需要对系统中的所有主体和客体实施身份管理、标记管理、授权管理和策略管理。身份管理是确定系统中的所有合法用户的身份、工作密钥、证书等与安全相关的内容。标记管理是根据业务系统的需要,结合客体资源的重要程度,确定系统中所有客体资源的安全级,生成全局客体标记列表,同时根据用户在业务系统中的权限和角色确定主体的安全标记,生成全局主体标记列表。授权管理是根据系统需求和安全状况,授予用户访问客体资源能力的权限,生成强制访问控制列表和特权列表。策略管理则是根据节点系统的需求,生成和执行主体相关的策略,包括强制访问控制策略、级别改变检查策略等,供节点系统执行。除此之外,系统审计员需要通过安全管理中心制定系统审计策略,实施系统的审计管理。系统初始化完成后,用户便可以请求访问系统资源,该请求将被强制访问控制模块截获。强制访问控制模块从用户请求中取出访问控制相关的主体、客体、操作三要素信息,然后查询全局主/客体列表,得到主/客体的标记信息。进而依据强制访问控制策略对该请求实施策略符合性检查。如果该请求符合系统强制访问控制策略,则系统将允许该主体执行资源访问。否则,系统将进行级别改变审核,即依据级别改变检查策略,判断发出该请求的主体是否有特权访问该客体。如果上述检查通过,系统同样允许该主体执行资源访9问,否则,该请求将被系统拒绝执行。系统强制访问控制机制在执行强制访问控制过程中,需要根据系统审计员制定的审计策略,对用户的请求及安全决策结果进行审计,并且将生成的审计信息发送到审计服务器存储,供审计员管理。图2是强制访问控制实施流程图(见说明书附图2),其给出了系统中强制访问控制执行的流程。3.4支撑模型强制访问控制机制应该建立在形式化的安全模型之上。经典的BLP模型是一个最早提出的防止敏感信息泄漏的机密性安全模型,而Biba模型是一个防止信息被非法的篡改和破坏的完整性模型。在当前复杂的计算环境下,在防止信息泄漏的基础上应该防止信息被非授权的修改,即在保护敏感信息机密性的同时保护信息的完整性,因此需要一个兼顾信息机密性和完整性的二元多级安全模型。以下是在实现安全操作系统时,所采用的安全策略模型的形式化描述定义1主体、客体及操作S为主体的集合,O为客体的集合,而A={r,W,a,e}表示主体对于客体访问方式的集合,其中r为读访问,w为写访问,a为追加写访问,e为执行访问。定义2机密性等级集合Lc为机密性等级集合,4^W:),"C,Ae;^,其中Cf为正整数保密级函数集合,V^,CeC,,Cm>Cn表示保密级Cm大于保密级Cn。K。={、,1^,……,kn}为非等级机密性范畴,V&,*2e£*2表示、包含于k2。定义Le上的满足偏序特性的"支配"关系^,设L=(q,k》GLc,l2=(c2,k2)G>12当且仅当Cl>C2A2&。定义3完整性等级集合L工为完整性等级集合,A^(ai),'-e/,,《e/^,其中lf为正整数完整级函数集合,V'"e/,,im>k表示完整级im大于完整级in。&={、,k2,……,kn}为非等级完整性范畴,v^^e/:,Ae&表示、包含于b,设定义L工上的满足偏序特性的"支配"关系^,"=(Cl,k》GLi,12=(C2,k2)GLi,">12当且仅当">i2,^2^。定义4系统状态系统状态v,集合V中的元素vGV={BXMXFXIXH}为一个系统状态,其中当前存取集B:对于b=(sXoXa)GB,sGS,oG0,aGA表示主体s以a的方式对于客体o进行访问;存取控制矩阵M:M={M是矩阵IGM是主体Si对于客体0j的访问权限集合};机密级等级函数F:是由三个分量组成,即f={fs,f。,f。},t为主体最大机密级函数,fs(S)GL。表示主体最大机密级;f。为主体当前机密级函数,f。(S)GL。为主体当前机密级;f。为客体机密级函数,f。(s)GL。为客体机密级。完整级等级函数I:是由三个分量组成,I={Is,Ie,1。},Is为主体最大完整级函数,Is(S)GLi表示主体最大完整级;I。为主体当前完整级函数,I。(S)GLi为主体当前完整级;1。为客体完整级函数,I。(s)GLi为客体完整级。客体间的层次结构H:H=仏lhGP(0)°八属性1八属性2}。属性1:V。,eO,Vo;eO画(o,)n)=0);属性2:!3{o"o2,o3,……0ll,}eO[VK"A^W=>0r+,e//(or))n(0+I规则l:扩展自主安全—个状态v=(bXmXfXiXh)满足可信自主安全,当且仅当",。,)"-^e^;规则2:扩展简单安全—个状态v=(bXmXfXiXh)对于主体集S,sGS满足可信扩展简单安全,当且仅当Cs,o,;c)e6=>a)x=e;b)x=r,并且fs(s)>f。(o);c)x=a,并且Is(s)》I。(o);d)x=w,并且fs(s)》f。(o),Is(s)>I。(o);规则3:扩展读安全—个状态v=(bXmXfXiXh)对于非可信主体Sut,sGSut满足扩展读安全,当且仅当(s,o,。e6:=>a)fc(s)>f0(o),Ic(s)《I0(o);b)fc(s)>f0(o),Ic(s)〉I0(o),ifsGSt;c)fc(s)<f0(o),Ic(s)《I0(o),ifsGSt;规则4:扩展追加写安全—个状态v=(bXmXfXiXh)对于非可信主体Sut,sGSut满足扩展读安全,当且仅当a)"-a)fc(s)《f0(o),Ic(s)>I0(o),ifsGSt;b)fc(s)>f0(o),Ic(s)>I0(o),ifsGSt;c)fc(s)《f0(o),Ic(s)<I0(o),ifsGSt;规则5:扩展写安全—个状态v二(bXmXfXiXh)对于非可信主体Sut满足扩展写安全,当且仅当(■s,o,w)"=>a)fc(s)=f0(o),Ic(s)=I0(o);b)fc(s)=f0(o),Ic(s)<I0(o),ifsGSt;c)fc(s)=fo(o),Ic(s)>I0(o),ifsGSt;d)fc(s)>f0(o),Ic(s)=I0(o),ifsGSt;e)fc(s)<f0(o),Ic(s)=I0(o),ifsGSt;3.5数据结构和钩子函数〃强制访问控制标记typedefstructtagMAC》bel{BYTEConfLevel;〃保密级别BYTEInteLevel;〃完整级别BYTESecClass[8];〃主/客体机密性范畴BYTEInteClass[8];〃主/客体完整性范畴}—attribute—((packed))MAC—LABEL;级别的-〃系统主体标记数据结构typedefstructtagSubjectLabel{V_StringSubName;〃主体名称V_StringG丽pName;〃主体组名称MAC_LABELSubLabel;〃主体强制访控标识BYTESubType;〃主/客体类型}—attribute—((packed))SUB—LABEL;〃系统客体标记数据结构typedefstructtag0bjectLabel{V_StringObjName;〃客体名称MAC_LABELObjLabel;〃客体强制访控标识BYTEObjType;〃客体类型DWORDCheckS咖;〃客体校验值}—attribute—((packed))OBJ—LABEL;强制访问判断函数这是我们系统中的一个关键函数,该函数的在是对于上述安全支撑策略的在编程^个实现。intlabel_mac_verify(SUB_LABEL*sub)_label,OBJ_LABEL*obj_label,BYTEmode){BYTEtest—mode;test—mode=0;〃如果双方处于不同域,则返回自主访问控制失败if(sub_label_〉SubLabel.SecClass==obj_label_〉ObjLabel.SecClass)returnVERIFY_DAC_FAILED;〃如果主体保密级别不低于客体级别,主体完整级别不高于〃客体级别,则主体可读客体.if(sub_label_〉SubLabel.ConfLevel〉=obj_label_〉ObjLabel.ConfLevel)if(sub_label_〉SubLabel.InteLeve1〈=obj_label_〉ObjLabel.InteLevel)testmodeOPERATION_TYPE_READ;〃如果主体保密级别不高于客体级别,主体完整级别不低于〃客体级别,则主体可写客体.if(sub_label_〉SubLabel.ConfLeve1〈=obj_label_>0b几abel.ConfLevel)if(sub_label_>SubLabel.InteLevel〉obj_label_>0b几abel.InteLevel)testmodeI=OPERATIONTYPEWRITE〃如果主体保密级别不低于客体保密级别,主体完整级别不高于客体级别,〃则主体可执行客体.if(sub_label_>SubLabel.ConfLevel>=obj_label_>0b几abel.ConfLevel)if(sub_label_>SubLabel.InteLeve1〈=obj_label_>0b几abel.InteLevel)test—mode|=0PERATI0N_TYPE_EXEC;〃检查操作是否与权限一致if((mode&test—mode)!=mode)returnVERIFY_MAC_FAILED;returnVERIFY_MAC_SUCCESS;下表1给出了对于系统中文件进行强制访问控制中所选取的钩子函数及说明,<table>tableseeoriginaldocumentpage14</column></row><table>钩子函数名称功能说明staticintos210_inode_rmdir(structinode氺inode,structdentry氺dentry)检查删除目录的权限。staticintos210_inode_rename(structinode*old_inode,structdentry氺old—dentry,structinode*new_inode,structdentry*new_dentry)检查重命名一个文件或目录权限。staticintos210—inode—setattr(structdentry氺dentry,structiattr氺iattr)在设置文件属性前检查权限。只要文件属性发生改变(如文件被截尾,改变文件属主、改变文件模式、传送磁盘配额等),核心就会在多个位置调用notify_change。staticintos210_inode_getattr(structvfsmount氺nrnt,structdentry氺dentry)检查是否允许读文件属性。CN101727545A眾s步10/12X<table>tableseeoriginaldocumentpage16</column></row><table>表l,3.6优/3.6.ULSM能句核版本中为必选项目。3.6.2灵活性好可以根据当前的安全需求和安全策略,重写钩子函数,来实现不同的安全目标,例如,能够支持单一的机密性目标或完整性目标,或同时支持机密性和完整性目标。3.6.3效率高相关实验和性能测试表明,使用LSM钩子函数对于系统的开销影响不大。3.6.3易于使用和开发由于不是在安全操作系统内核级开发,对于开发者的门槛要求比较低,可以通过模块的形式进行挂载和卸载。具体实施例方式本发明阐述了一种安全操作系统强制访问控制机制的实施方法,它基于Li皿x安全模块(LinuxSecurityModule)框架,包括4个部分安全体系结构、强制访问控制流程、强制访问控制策略模型、关键的数据结构。通过这四个部分,就可以勾勒出一个实施强制访问控制的大体框架。该方法具有通用性好、灵活性好,效率高和易于使用和开发的优点。权利要求本专利权利要求主要包括安全体系结构、强制访问控制流程和强制访问控制支撑模型三项1.安全体系结构的划分强制访问控制机制是安全Linux操作系统的重要部分,整个系统主要包括强制访问控制执行模块、标记管理模块、管理信息处理模块、安全初始化模块以及存储介质加密保护模块,模块的关系在附图1,以下是各个模块的关系。1)强制访问控制执行模块强制访问控制执行模块在系统调用接口位置截取系统执行流程,并顺序执行以下功能●调用标记管理模块完成系统中主客体的标识和强制访问控制验证工作。●根据标记管理模块返回的函数调用结果,对系统调用行为进行裁决。●根据裁决的结果,提取该次行为的审计信息,并将其发送到管理信息处理模块。●对被裁决为非法访问的行为,进行返回处理,并返回系统错误信息给应用子系统。2)标记管理模块标记管理模块在系统内核层执行,完成如下一些安全功能●根据管理信息处理模块提供的强制访问控制包,建立内核用户安全列表、客体安全列表和特权安全列表。●在系统执行创建新主体(fork,exec)和创建新客体(open,create)的操作时,从安全列表中查找对应的安全标记,并与主体/客体绑定。●在系统执行访问时,根据强制访问控制执行模块提供的主体/客体标记,对访问是否符合强制访问控制进行判决,如果判决允许,则返回允许结果给强制访问控制执行模块。●对不符合强制访问控制的访问,判断主体是否具有该客体的执行特权,如符合该特权,则返回特权允许信息给强制访问控制执行模块,否则返回禁止访问结果。3)管理信息处理模块管理信息处理模块处理与安全管理相关的信息收发、筛选,包括强制访问控制模块的接收和审计模块的发送,具体功能如下●接收安全管理中心发送的下拉安全管理策略数据包,检查其可信性,即完整性,而后将其解密后发送给标记管理模块。●接收强制访问控制处理模块中获取的审计信息,对其进行分类筛选,并根据其优先级次序将审计信息发送给审计子系统。●对需要完整性验证的客体访问操作,当标记管理模块返回不确定结果时,强制访问控制执行模块向管理信息处理模块发送对应审计信息,由管理信息处理模块的完整性验证进程执行完整性验证功能,并将结果向标记管理模块发送,然后通知强制访问控制执行模块。●对网络访问控制行为,当标记管理模块返回不确定结果时,强制访问控制执行模块向管理信息处理模块发送对应审计信息或执行完整性验证功能,管理信息处理模块据此组织可信接入申请数据包,并向对应的安全节点子系统发送,而后获取对应节点的可信接入应答数据包,返回可信接入确认数据包,然后通知强制访问控制执行模块。4)安全初始化模块安全初始化模块完成功能如下●系统从启动到正常运行过程中基于完整性度量的可信链建立,包括TPCM模块对BIOS的完整性检查,BIOS对可信引导程序的完整性检查,可信引导程序对可信初始系统的完整性检查,可信初始系统对运行环境的完整性检查。●在系统引导过程中,执行系统用户开机检查功能,为系统的启动分配初始主体信息。5)存储介质加密保护模块存储介质加密保护模块对文件系统向存储介质的读写操作执行文件粒度的加密保护功能,防止绕过系统TCB机制对存储介质的直接访问行为导致泄密事故。注其具体划分参加说明书附图1。2.强制访问控制实施流程系统在初始化过程中,安全管理中心需要对系统中的所有主体和客体实施身份管理、标记管理、授权管理和策略管理。身份管理是确定系统中的所有合法用户的身份、工作密钥、证书等与安全相关的内容。标记管理是根据业务系统的需要,结合客体资源的重要程度,确定系统中所有客体资源的安全级,生成全局客体标记列表,同时根据用户在业务系统中的权限和角色确定主体的安全标记,生成全局主体标记列表。授权管理是根据系统需求和安全状况,授予用户访问客体资源能力的权限,生成强制访问控制列表和特权列表。策略管理则是根据节点系统的需求,生成和执行主体相关的策略,包括强制访问控制策略、级别改变检查策略等,供节点系统执行。除此之外,系统审计员需要通过安全管理中心制定系统审计策略,实施系统的审计管理。系统初始化完成后,用户便可以请求访问系统资源,该请求将被强制访问控制模块截获。强制访问控制模块从用户请求中取出访问控制相关的主体、客体、操作三要素信息,然后查询全局主/客体列表,得到主/客体的标记信息。进而依据强制访问控制策略对该请求实施策略符合性检查。如果该请求符合系统强制访问控制策略,则系统将允许该主体执行资源访问。否则,系统将进行级别改变审核,即依据级别改变检查策略,判断发出该请求的主体是否有特权访问该客体。如果上述检查通过,系统同样允许该主体执行资源访问,否则,该请求将被系统拒绝执行。系统强制访问控制机制在执行强制访问控制过程中,需要根据系统审计员制定的审计策略,对用户的请求及安全决策结果进行审计,并且将生成的审计信息发送到审计服务器存储,供审计员管理。注其具体流程参加说明书附图2。3.强制访问控制的支撑模型二元多级安全模型强制访问控制机制应该建立在形式化的安全模型之上。经典的BLP模型是一个最早提出的防止敏感信息泄漏的机密性安全模型,而Biba模型是一个防止信息被非法的篡改和破坏的完整性模型。在当前复杂的计算环境下,在防止信息泄漏的基础上应该防止信息被非授权的修改,即在保护敏感信息机密性的同时保护信息的完整性,因此需要一个兼顾信息机密性和完整性的二元多级安全模型。以下是在实现安全操作系统时,所采用的安全策略模型的形式化描述定义1主体、客体及操作S为主体的集合,O为客体的集合,而A={r,w,a,e}表示主体对于客体访问方式的集合,其中r为读访问,w为写访问,a为追加写访问,e为执行访问。定义2机密性等级集合LC为机密性等级集合,其中Cf为正整数保密级函数集合,cm>cn表示保密级cm大于保密级cn。Kc={k1,k2,....,kn}为非等级机密性范畴,表示k1包含于k2。定义LC上的满足偏序特性的“支配”关系≥,设l1=(c1,k1)∈Lc,l2=(c2,k2)∈Lc,l1≥l2当且仅当c1≥c2,定义3完整性等级集合LI为完整性等级集合,其中If为正整数完整级函数集合,im>in表示完整级im大于完整级in。Ki={k1,k2,....,kn}为非等级完整性范畴,表示k1包含于k2,设定义LI上的满足偏序特性的“支配”关系≥,l1=(c1,k1)∈Li,l2=(c2,k2)∈Li,l1≥l2当且仅当i1≥i2,定义4系统状态系统状态v,集合V中的元素v∈V={B×M×F×I×H}为一个系统状态,其中当前存取集B对于b=(s×o×a)∈B,s∈S,o∈O,a∈A表示主体s以a的方式对于客体o进行访问;存取控制矩阵MM={M是矩阵|mij∈M是主体si对于客体oj的访问权限集合};机密级等级函数F是由三个分量组成,即f={fs,fc,fo},fs为主体最大机密级函数,fs(s)∈Lc表示主体最大机密级;fc为主体当前机密级函数,fc(s)∈Lc为主体当前机密级;fo为客体机密级函数,fo(s)∈Lc为客体机密级。完整级等级函数I是由三个分量组成,I={Is,Ic,Io},Is为主体最大完整级函数,Is(s)∈Li表示主体最大完整级;Lc为主体当前完整级函数,Ic(s)∈Li为主体当前完整级;Io为客体完整级函数,Io(s)∈Li为客体完整级。客体间的层次结构HH={h|h∈P(O)o∩属性1∩属性2}。属性1<mrow><mo>&ForAll;</mo><msub><mi>o</mi><mi>i</mi></msub><mo>&Element;</mo><mi>O</mi><mo>,</mo><mo>&ForAll;</mo><msub><mi>o</mi><mi>j</mi></msub><mo>&Element;</mo><mi>O</mi><mo>,</mo><mrow><mo>(</mo><msub><mi>o</mi><mi>i</mi></msub><mo>&NotEqual;</mo><msub><mi>o</mi><mi>j</mi></msub><mo>&DoubleRightArrow;</mo><mi>H</mi><mrow><mo>(</mo><msub><mi>o</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&cap;</mo><mi>H</mi><mrow><mo>(</mo><msub><mi>o</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>&phi;</mi><mo>)</mo></mrow><mo>;</mo></mrow>属性2<mrow><mo>!</mo><mo>&Exists;</mo><mo>{</mo><msub><mi>o</mi><mn>1</mn></msub><mo>,</mo><msub><mi>o</mi><mn>2</mn></msub><mo>,</mo><msub><mi>o</mi><mn>3</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><msub><mi>o</mi><mi>w</mi></msub><mo>}</mo><mo>&SubsetEqual;</mo><mi>O</mi><mo>[</mo><mo>&ForAll;</mo><mi>r</mi><mrow><mo>(</mo><mn>1</mn><mo>&le;</mo><mi>r</mi><mo>&le;</mo><mi>w</mi><mo>&DoubleRightArrow;</mo><msub><mi>o</mi><mrow><mi>r</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&Element;</mo><mi>H</mi><mrow><mo>(</mo><msub><mi>o</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>&cap;</mo><mrow><mo>(</mo><msub><mi>o</mi><mrow><mi>w</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>&equiv;</mo><msub><mi>o</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>]</mo></mrow>规则1扩展自主安全一个状态v=(b×m×f×i×h)满足可信自主安全,当且仅当规则2扩展简单安全一个状态v=(b×m×f×i×h)对于主体集S,s∈S满足可信扩展简单安全,当且仅当<mrow><mrow><mo>(</mo><mi>s</mi><mo>,</mo><mi>o</mi><mo>,</mo><mi>x</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>b</mi><mo>&DoubleRightArrow;</mo></mrow>a)x=e;b)x=r,并且fs(s)≥fo(o);c)x=a,并且Is(s)≥Io(o);d)x=w,并且fs(s)≥fo(o),Is(s)≥Io(o);规则3扩展读安全一个状态v=(b×m×f×i×h)对于非可信主体Sut,s∈Sut满足扩展读安全,当且仅当<mrow><mrow><mo>(</mo><mi>s</mi><mo>,</mo><mi>o</mi><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>b</mi><mo>&DoubleRightArrow;</mo></mrow>a)fc(s)≥fo(o),Ic(s)≤Io(o);b)fc(s)≥fo(o),Ic(s)>Io(o),ifs∈St;c)fc(s)<fo(o),Ic(s)≤Io(o),ifs∈St;规则4扩展追加写安全一个状态v=(b×m×f×i×h)对于非可信主体Sut,s∈Sut满足扩展读安全,当且仅当<mrow><mrow><mo>(</mo><mi>s</mi><mo>,</mo><mi>o</mi><mo>,</mo><mi>a</mi><mo>)</mo></mrow><mo>&Element;</mo><mi>b</mi><mo>&DoubleRightArrow;</mo></mrow>a)fc(s)≤fo(o),Ic(s)≥Io(o),ifs∈St;b)fc(s)>fo(o),Ic(s)≥Io(o),ifs∈St;c)fc(s)≤fo(o),Ic(s)<Io(o),ifs∈St;规则5扩展写安全一个状态v=(b×m×f×i×h)对于非可信主体Sut满足扩展写安全,当且仅当a)fc(s)=fo(o),Ic(s)=Io(o);b)fc(s)=fo(o),Ic(s)<Io(o),ifs∈St;c)fc(s)=fo(o),Ic(s)>Io(o),ifs∈St;d)fc(s)>fo(o),Ic(s)=Io(o),ifs∈St;e)fc(s)<fo(o),Ic(s)=Io(o),ifs∈St。F2008101675600C0000031.tif,F2008101675600C0000032.tif,F2008101675600C0000033.tif,F2008101675600C0000034.tif,F2008101675600C0000035.tif,F2008101675600C0000036.tif,F2008101675600C0000037.tif,F2008101675600C0000038.tif,F2008101675600C0000039.tif,F2008101675600C00000310.tif,F2008101675600C00000313.tif,F2008101675600C0000043.tif2.强制访问控制实施流程系统在初始化过程中,安全管理中心需要对系统中的所有主体和客体实施身份管理、标记管理、授权管理和策略管理。身份管理是确定系统中的所有合法用户的身份、工作密钥、证书等与安全相关的内容。标记管理是根据业务系统的需要,结合客体资源的重要程度,确定系统中所有客体资源的安全级,生成全局客体标记列表,同时根据用户在业务系统中的权限和角色确定主体的安全标记,生成全局主体标记列表。授权管理是根据系统需求和安全状况,授予用户访问客体资源能力的权限,生成强制访问控制列表和特权列表。策略管理则是根据节点系统的需求,生成和执行主体相关的策略,包括强制访问控制策略、级别改变检查策略等,供节点系统执行。除此之外,系统审计员需要通过安全管理中心制定系统审计策略,实施系统的审计管理。系统初始化完成后,用户便可以请求访问系统资源,该请求将被强制访问控制模块截获。强制访问控制模块从用户请求中取出访问控制相关的主体、客体、操作三要素信息,然后查询全局主/客体列表,得到主/客体的标记信息。进而依据强制访问控制策略对该请求实施策略符合性检查。如果该请求符合系统强制访问控制策略,则系统将允许该主体执行资源访问。否则,系统将进行级别改变审核,即依据级别改变检查策略,判断发出该请求的主体是否有特权访问该客体。如果上述检查通过,系统同样允许该主体执行资源访问,否则,该请求将被系统拒绝执行。系统强制访问控制机制在执行强制访问控制过程中,需要根据系统审计员制定的审计策略,对用户的请求及安全决策结果进行审计,并且将生成的审计信息发送到审计服务器存储,供审计员管理。注其具体流程参加说明书附图2。3.强制访问控制的支撑模型二元多级安全模型强制访问控制机制应该建立在形式化的安全模型之上。经典的BLP模型是一个最早提出的防止敏感信息泄漏的机密性安全模型,而Biba模型是一个防止信息被非法的篡改和破坏的完整性模型。在当前复杂的计算环境下,在防止信息泄漏的基础上应该防止信息被非授权的修改,即在保护敏感信息机密性的同时保护信息的完整性,因此需要一个兼顾信息机密性和完整性的二元多级安全模型。以下是在实现安全操作系统时,所采用的安全策略模型的形式化描述定义1主体、客体及操作S为主体的集合,O为客体的集合,而A={r,W,a,e}表示主体对于客体访问方式的集合,其中r为读访问,w为写访问,a为追加写访问,e为执行访问。定义2机密性等级集合Le为机密性等级集合,々=c^),ceC,入e,其中Cf为正整数保密级函数集合,V^、eC,,Cm〉表示保密级Cm大于保密级Cn。K。={、,1^,....,、}为非等级机密性范畴,V、^eA,^G^表示、包含于k2。定义k上的满足偏序特性的"支配"关系^,设"二(c"k》GLC,12=(C2,k2)GLc,"^l2当且仅当q^C2,^3A:2。定义3完整性等级集合L工为完整性等级集合,^-Ka,ye/,As/^,其中If为正整数完整级函数集合,V^,/,^/,,im〉in表示完整级im大于完整级in。{、,k2,....,kn}为非等级完整性范畴,V&Ae&As&表示、包含于b,设定义L工上的满足偏序特性的"支配"关系>,l丄=(Cl,k》gLi,12=(C2,k2)gLi,l丄>12当且仅当i丄>i2,&2^。定义4系统状态系统状态v,集合V中的元素vgV={BXMXFXIXH}为一个系统状态,其中当前存取集B:对于b=(sXoXa)gB,sgS,og0,agA表示主体s以a的方式对于客体o进行访问;存取控制矩阵M:M={M是矩阵lmijgM是主体Si对于客体0j的访问权限集合};机密级等级函数F:是由三个分量组成,即f={fs,f。,f。},fs为主体最大机密级函数,fs(S)gL。表示主体最大机密级;f。为主体当前机密级函数,f。(S)gL。为主体当前机密级;f。为客体机密级函数,f。(s)gL。为客体机密级。完整级等级函数I:是由三个分量组成,I={Is,I。,I。},Is为主体最大完整级函数,Is(S)gLi表示主体最大完整级;L。为主体当前完整级函数,I。(S)gLi为主体当前完整级;I。为客体完整级函数,I。(S)gLi为客体完整级。客体间的层次结构h:h=仏Ihgp(o)°n属性in属性2}。属性丄V。,eO,e^//(。Jn);属性2:!3{o,,o2,o3,……<U£,(1S"w-ei/(or))n(0lt+1s0l)]规则1:扩展自主安全一个状态v二(bXmXfXiXh)满足可信自主安全,当且仅当",0,)"=>"斗;规则2:扩展简单安全一个状态v二(bXmXfXiXh)对于主体集S,sgS满足可信扩展简单安全,当且仅3)X=6jb)x=r,并且fs(s)>f。(o);c)x=a,并且Is(s)>I。(o);d)X=W,并且fs(S)>f0(0),IS(S)>I。(0);规则3:扩展读安全一个状态v=(bXmXfXiXh)对于非可信主体Sut,sgSut满足扩展读安全,当且仅a)fc(s)>f0(o),Ic(s)《I0(o);b)fc(s)>f0(o),Ic(s)>I0(o),ifsgSt;c)fc(s)<f0(o),Ic(s)《I0(o),ifsgSt;规则4:扩展追加写安全一个状态v=(bXmXfXiXh)对于非可信主体Sut,sgSut满足扩展读安全,当且仅当(s,o,a)e6=>a)fc(s)《f0(o),Ic(s)>I0(o),ifsgSt;b)fc(s)>f0(o),Ic(s)>I0(o),ifsgSt;c)fc(s)《f0(o),Ic(s)<I0(o),ifsgSt;一个状态v=(bXmXfXiXh)对于非可信主体Sut满足扩展写安全,当且仅当a)fc(s)=f0(o),Ic(s)=I0(o);b)fc(s)=f0(o),Ic(s)<I0(o),ifsGSt;c)fc(s)=f0(o),Ic(s)>I0(o),ifsGSt;d)fc(s)>f0(o),Ic(s)=I0(o),ifsGSt;e)fc(s)<f0(o),Ic(s)=I0(o),ifsGSt。全文摘要一种安全操作系统强制访问控制机制的实施方法,属安全操作系统设计和实现领域。其主体是安全体系结构和访问控制流程。安全体系结构给出了操作系统为支持强制访问控制机制,在设计上的层次划分和模块之间的依赖关系,在实施方法中,由下到上分为四个层次即驱动层、内核层、系统层和应用层,并包括强制访问控制执行模块、标记管理模块、管理信息处理模块,安全初始化模块以及存储介质加密保护模块。强制访问控制流程给出了在安全操作系统中实施强制访问控制在时序、过程上先后关系。支撑模型、数据结构和钩子函数给出了实现的具体细节。强制访问控制机制是高安全等级操作系统必备的安全功能,该方法可广泛地应用于高安全等级操作系统的设计上。文档编号G06F21/00GK101727545SQ200810167560公开日2010年6月9日申请日期2008年10月10日优先权日2008年10月10日发明者刘威鹏,张兴,沈昌祥,胡俊申请人:中国科学院研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1