您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 一个安全标记公共框架的设计与实现
Vol.14,No.3©2003JournalofSoftware软件学报1000-9825/2003/14(3)0547一个安全标记公共框架的设计与实现∗梁洪亮+,孙玉芳,赵庆松,张相锋,孙波(中国科学院软件研究所,北京100080)DesignandImplementationofaSecurityLabelCommonFrameworkLIANGHong-Liang+,SUNYu-Fang,ZHAOQing-Song,ZHANGXiang-Feng,SUNBo(InstituteofSoftware,TheChineseAcademyofSciences,Beijing100080,China)+Correspondingauthor:Phn:86-10-62544129ext17,Fax:86-10-62645414,E-mail:hollace@sonata.iscas.ac.cn(3):547~552.Abstract:Labelsarethefoundationforimplementingmultilevelsystemsandtheprerequisiteofenforcingmandatoryaccesscontrolinsecuresystems.Howtodefineandenforcelabelfunctionswhichsupportmultiplesecuritypoliciesisthefocushere.Asecuritylabelcommonframework(SLCF)basedonstaticobjectlabelanddynamicsubjectlabelisputforward.SLCFintroducesthenotationofaccesshistoryandprovidesacompletelabelfuntionsset.BasedonSLCF,bothmultilevelconfidentialpolicyandmultilevelintegritypolicycanbeexpressedandenforced.SLCFisimplementedinasecureoperatingsystembasedonLinux,theexperimentalresultsshowthatthesystembasedonSLCFisflexibleandpracticable.Keywords:labelframework;multilevelsecuresystem;informationflowcontrol;confidentiality;integrity;secureoperatingsystem摘要:标记是实现多级安全系统的基础,实施强制访问控制的前提.如何确定和实现标记功能并使其支持多种安全政策是研究的目的.提出了一个安全标记公共框架,该框架基于静态客体标记和动态主体标记,引入了访问历史的概念,并给出了一个完备的标记函数集合.基于此框架,既可以实施多等级保密性安全政策,又可以实施多等级完整性安全政策.该框架在一个基于Linux的安全操作系统中的实现结果表明,基于该框架的安全系统在保证安全性的同时,还具有相当的灵活性和实用性.关键词:标记;多级安全系统;信息流控制;保密性;完整性;安全操作系统中图法分类号:TP309文献标识码:A在构建一个多等级安全(MLS)系统时,首先要对系统中的主体(如用户和进程)和客体(如文件、设备等资源)∗SupportedbytheNationalNaturalScienceFoundationofChinaunderGrantNo.60073022(国家自然科学基金);theNationalHighTechnologyDevelopment863ProgramofChinaunderGrantNo.863-306-ZD12-14-2(国家863高科技发展计划);theKnowledgeInnovationEngineeringProgramoftheChineseAcademyofSciencesunderGrantNo.KGCX1-09(中国科学院知识创新工程)第一作者简介:梁洪亮(1972年-),男,山东济南人,博士,助理研究员,主要研究领域为信息安全,系统软件.548JournalofSoftware软件学报2003,14(3)进行标记[1],以指明它们的安全属性(如安全等级和类别),然后在此基础上实现强制访问控制政策[2].可以说,标记功能是实现多级安全系统的基础.但是在一个多等级安全系统中,标记究竟应该含有哪些内容?主客体的标记应该如何维护?这些问题至今还未能得到很好的解决.我们在分析和研究以往安全系统和安全标准以后,提出了一个安全标记公共框架,指明了标记功能应该包含的内容,并给出使用此标记框架实现多等级保密性安全政策和多等级完整性安全政策时标记的初始设置及其变化规则.需要指出的是,多等级安全自从在安全学术界提出以来一直是指多等级保密性,随着信息安全研究的发展,现在已经扩展到多等级保密性、完整性和可用性.本文为了保持与以往安全系统描述的一致性,仍保持为多等级保密性的含义.文中使用其他两个含义时将会显式标出.按照用户会话期间(从登录进入系统到退出系统)主客体的标记是否可以变化,我们可以把以往实现的安全系统分为以下两类:(1)主体和客体的标记都是固定不变的,如MITREMultics[3],IBMSecureXenix[4]和NRLMMS[5];(2)主体和客体的标记都是动态变化的,如AT&TIX[6].但是这两种方法都存在着局限性,我们在第1节中对此进行了详细阐述.第2节提出了一个安全标记公共框架(SLCF),探讨了标记功能应该包含的内容,并给出了实现多等级系统时主体标记的变化规则.该标记框架基于固定的客体标记和动态可变的主体当前标记.我们在第3节采用SLCF(securitylabelcommonframework),通过设置不同的标记初始值和构造不同的主体标记变化规则,证明了可以应用SLCF实现多等级系统完整性.在第4节中对该标记框架在RS-Linux的实现进行了简述,并描述了它所能满足和实现的国际信息安全评估准则中的功能要求.最后指出了标记框架下一步的发展方向,最后是小结.1问题的提出在多等级安全系统中,实体(包括主体和客体)的标记包括两部分:等级分类和非等级类别.S是主体集合(包括用户和进程等),O是客体集合(包括文件、目录、设备等),A是访问属性集合,G是等级分类集合,C是非等级类别集合,W是会话集合,T代表时间集合,P表示幂集关系,H为客体的层次(包含)关系,H(p,o)表示客体p是o的父客体.×O×当前访问集合B:=P(SA).标记集合L:={(G,C)|G∈G∧C∈C}.=(G,C)∈L∧L=(G,C)∈L),L≥L→(G=G∧C⊇C标记的支配函数≥:(L).111222121212标记函数集合F:={(fs,fo,fc)|fs∈LS∧fo∧LO∧fc∈LS∧(∀S∈S(fs(S)≥fc(S))).其中,fs称为主体最大标记函数,fo称为客体标记函数,f称为主体当前标记函数.并且,主体当前标记在任何时候都不会超过主体最大标记.c在文献[3]中,fs的值由安全管理员指定.在用户开始一个会话w时,用户可以选择一个不超过fs的值作为fc,若不指定,缺省采用fs作为fc.这样,在整个会话期内,fc的值一直是固定不变的,主体创建的所有非父客体(如文件)的标记都等于fc,并不低于该客体的父(包含)客体(如目录).主体创建的所有父客体的标记都不低于fc,并不低于该客体的父客体.设t为会话w的结束时间.e为会话w的开始时间,tstt…t对于t,下列式子成立:se12≥f(t)=…=f(t)=f(t)=f(t);fscecccs21=f,其中o为非父客体;foc≥f≥f,其中o为父客体,并且有H(p,o).fopc尽管这个标记方案简单明了,但是在实际使用过程中发现仍存在几个问题:(问题1)实用性较差,因为一个用户或进程在一次会话期内可能需要访问不同级别的客体[5,7].(问题2)这样会造成不恰当的客体标记,例如,一个秘密用户所写的午餐订单都会是秘密级别.(问题3)如果用户创建一个升级客体(标记支配父客体的客体,例如,假设标记为i的用户要在标记为j的目录dj下创建一个标记为i的目录di,ij),因为fc≥fdj,在BLP模型[8]下禁止向下写,则他必须退出系统,然后以标记为j的身份登录进入系统,在目录dj下创建目录di,然后再退出系统,重新以标记i登录,才可以使用目录d进行读写.可以看出,这种不便是固定标记方法所固有的缺点造成的.i在AT&TIX系统中,设计者们注意到了不应该把一个多等级安全系统简单地看成是一个静态的主体/客体模型,而应该看做是一个动态的信息流模型.基于此,Mcilroy等人提出了与SecureXenix不同的标记方案.他们梁洪亮等:一个安全标记公共框架的设计与实现549认为,主体和客体的标记都有一个上界阈值,在一次会话期间,主体和客体的标记是随着时间而变化的,并且不会超过它们的上界阈值.f表示标记函数是随时间变化的函数,U是随时间变化的上界标记函数.对于一次从源x流向目标y的信息流,以下规则成立:fy(t)≥fx(t),Uy(t)≥fy(t),Ux(t)≥fx(t).这种标记方法使得主体在一次会话期间可以访问不同级别的客体,也不存在升级客体的创建问题.但是实际结果证明,这种方法严重影响了系统的性能.因为在客体标记不变的情况下,对客体访问时只需要在打开客体时进行标记检查,而在允许客体标记动态变化的情况下,对客体的每一种访问请求都需要进行标记检查.这在具有大量文件的系统中对系统性能的影响非常大.而且在IX实现这种方法时,必须要依赖一个特权服务器和私有通信路径(问题4).另外,允许客体标记可以变化会造成标记不当(问题5).例如,一个上级在下级递交的某份报告上签署意见(如“同意”或“反对”)后,下级就无法打开这份报告了.因为此时报告的标记已经升高了.可以看出,在实施多等级安全系统时,采用全静态的标记方法和全动态的标记方法都存在一些局限.下一节我们将描述一个新的标记框架,可以很好地解决这些问题.2一个安全标记公共框架(SLCF)在一次会话过程中,主体是代表用户执行动作的进程,进程在系统中是变化的,依照用户或系统的要求执行各种操作,而文件等客体是静态的和被动的.另外,进程是有“生命”的,每个进程都有自己的生存周期,按照所完成的不同任务,“生命”或长或短.但是无论长短,系统都要保证进程不会执行不符合安全需求的信息流.基于此,我们提出了一个新的标记框架,其中主体的当前标记是动态变化的,客体的标记是固定的.并且随着信息的流入(如读操作)和流出(如写操作)而“记忆”(存储)主体的标记变化.新的标记框架同样包括主体、客体、标记、访问集合等概念,除标记函数集合以外,其他概念与第1节所述相同,此处不再重复.新的标记函数集合除了{fs,fo,fc}以外,(1)为主体增加了4个标记函数(fil,fih,fol,foh),它们分别表示在一个进程的生命周期内,流入信息的最低标记、流入信息的最高标记、流出信息的最低标记、流出信息的最高标记.(2)为客体增加了一个标记函数fd,fd把客体标记fo映射为易于理解的信息(一般是一组字符串),用于客体信息的输出(如显示或发布信息).下面我们描述如何使用SLCF实现多等级保密性安全政策.首先,我们给出初始状态时标记的初始值,fil=fi
本文标题:一个安全标记公共框架的设计与实现
链接地址:https://www.777doc.com/doc-1251550 .html