著录项信息
专利名称 | 支持核内外实体的操作系统内核统一访问控制方法 |
申请号 | CN201410237181.X | 申请日期 | 2014-05-30 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2014-08-06 | 公开/公告号 | CN103971067A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/74 | IPC分类号 | G;0;6;F;2;1;/;7;4查看分类表>
|
申请人 | 中国人民解放军国防科学技术大学 | 申请人地址 | 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国人民解放军国防科学技术大学 | 当前权利人 | 中国人民解放军国防科学技术大学 |
发明人 | 廖湘科;魏立峰;陈松政;罗军;黄辰林;董攀;丁滟;付松龄 |
代理机构 | 湖南兆弘专利事务所 | 代理人 | 赵洪;谭武艺 |
摘要
本发明公开了一种支持核内外实体的操作系统内核统一访问控制方法,实施步骤如下:1)为操作系统内核中实现强制控制内核实体访问权限的访问控制接口及规则,操作系统内核基于所述访问控制接口及规则实现对操作系统内核中实体的强制访问控制;2)基于所述内核访问控制接口,为操作系统内核外的核外应用程序提供与指定的内核访问控制接口相应的核外实体控制接口,通过所述核外实体控制接口支持核外应用程序的访问操作由内核实施访问控制;3)核外应用程序利用所述核外实体控制接口获取访问控制规则实现对应用自身内部实体的强制访问控制。本发明具有全系统核内外统一防护、安全可靠、通用性好、扩展性强的优点。
1.一种支持核内外实体的操作系统内核统一访问控制方法,其特征在于实施步骤如下:
1)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口及规则,操作系统内核基于所述内核访问控制接口及规则实现对操作系统内核中实体的强制访问控制;
2)基于所述内核访问控制接口及规则,为操作系统内核外的核外应用程序提供与所述内核访问控制接口相对应的核外实体控制接口,通过所述核外实体控制接口支持核外应用程序对自身内部实体的访问操作由操作系统内核实施访问控制;
3)核外应用程序利用所述核外实体控制接口获取内核访问控制规则实现应用程序自身内部主体实体对自身内部客体实体的强制访问控制;
所述步骤1)的详细实施步骤如下:
1.1)分别为操作系统内核中的实体分配安全属性标记,所述实体包括操作系统内核访问操作相关的主体和客体;
1.2)操作系统内核中的客体按照其属性分别进行分类得到多个客体类,针对每一个客体类,定义针对该客体类用以访问权限检查的可实施访问操作集;
1.3)在操作系统内核中维护访问控制规则链表,通过所述访问控制规则链表存储基于操作系统内核中的实体以及客体类定义主体对客体的内核访问控制规则,通过所述内核访问控制规则约定具有某安全属性标记的主体对具有某安全属性标记的客体具有何种访问操作权限,所述访问操作权限在该客体类所定义的可实施访问操作集的访问操作范围内;
1.4)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口,在操作系统内核的主体申请访问客体时,所述内核访问控制接口根据当前内核访问操作的主体的安全属性标记、客体的安全属性标记以及客体类检查所述访问控制规则链表,根据所述访问控制规则链表的检查结果控制当前内核访问操作的权限。
2.根据权利要求1述的支持核内外实体的操作系统内核统一访问控制方法,其特征在于:所述步骤1.3)在操作系统内核中维护访问控制规则链表包括完整规则集缓存链表、规则集命中缓存链表,所述完整规则集缓存链表用于存储完整的访问控制规则,所述规则集命中缓存链表用于存储匹配成功的访问控制规则项;所述步骤1.4)中检查所述访问控制规则链表并判断当前主体对当前客体是否具有所申请的访问操作的权限的详细实施步骤如下:
1.4.1)查询所述规则集命中缓存链表,如果能够在规则集命中缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.4);如果在规则集命中缓存链表中没有找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.2);
1.4.2)查询所述完整规则集缓存链表,在完整规则集缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则将所述访问控制规则项加入所述规则集命中缓存链表;
1.4.3)判断所述规则集命中缓存链表中的访问控制规则项是否已经达到系统定义的最大值,如果达到系统定义的最大值,则根据预设的更新算法删除所述规则集命中缓存链表中的某条访问控制规则项;
1.4.4)根据匹配到的该条访问控制规则项决定是否授予当前主体对当前客体的申请访问操作权限,如果该条访问控制规则项允许访问操作才允许当前内核访问操作,否则拒绝当前内核访问操作并返回。
3.根据权利要求2述的支持核内外实体的操作系统内核统一访问控制方法,其特征在于:所述步骤1.4.3)中删除所述规则集命中缓存链表中的某条访问控制规则项具体是指删除使用频率最低的访问控制规则项。
4.根据权利要求1述的支持核内外实体的操作系统内核统一访问控制方法,其特征在于所述步骤2)的详细实施步骤如下:
2.1)在操作系统内核外定义与操作系统内核中指定的内核访问控制接口对应的应用编程接口作为核外实体控制接口,为所述核外实体控制接口建立动态链接库以供核外应用调用;
2.2)建立用于实现所述核外实体控制接口与操作系统内核进行交互的实体控制内存文件系统,在所述实体控制内存文件系统中为操作系统内核外的核外应用程序提供与实现强制控制内核实体访问权限的内核访问控制接口相应的接口文件,通过所述接口文件实现核外实体控制接口与操作系统内核的交互,对实体控制内存文件系统中文件的读操作代表由操作系统内核向核外应用程序传递信息、对实体控制内存文件系统中文件的写操作代表由核外应用程序向操作系统内核传递信息。
5.根据权利要求1所述的支持核内外实体的操作系统内核统一访问控制方法,其特征在于所述步骤3)的详细实施步骤如下:
3.1)核外应用程序根据自身特点定义自身内部的实体,所述实体包括核外应用程序内部的主体和客体,核外应用程序在确定完自身内部的实体后,根据可以作用在实体上的访问操作类型进行实体类定义,并分别约定所述实体类上的访问操作集,从而得到核外应用程序自身内部的实体类和对应该实体类的访问操作;
3.2)根据所述实体和实体类的划分,定义核外应用程序内部使用的安全属性标记,为每个实体分配相应的安全属性标记;
3.3)按照核外应用程序内部实体的安全属性标记、实体类以及该实体类的访问操作,定义在核外应用程序内部用于控制自身实体的访问控制规则集,确定应用内部主体实体对内部客体实体的访问操作权限;
3.4)利用核外实体控制接口将核外应用程序内部定义的实体类、安全属性、访问操作以及访问控制规则集导入操作系统内核以供操作系统内核控制核外应用程序内部主体实体访问内部客体实体的访问控制使用;且在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;
3.5)将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数通过调用所述核外实体控制接口获取对应的访问控制规则项,核外应用程序按照得到的所述访问控制规则项实施当前内部访问操作的访问控制。
6.根据权利要求5所述的支持核内外实体的操作系统内核统一访问控制方法,其特征在于,所述步骤3.5)的详细操作步骤如下:
3.5.1)预先在用户空间中初始化设置用户空间规则集命中缓存链表,通过所述用户空间规则集命中缓存链表存储当前用户空间匹配成功的访问控制规则项;在核外实体控制接口中设置用户空间缓存链表接口,在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;
3.5.2)核外应用程序将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数,调用所述用户空间缓存链表接口来检查所述用户空间规则集命中缓存链表,判断当前访问操作是否在用户空间规则集命中缓存链表中命中,如果未命中则直接返回未命中信息作为结果返回,如果命中则将命中信息和在用户空间规则集命中缓存链表中命中的访问控制规则项作为返回的结果返回;
3.5.3)核外应用程序接收所述用户空间缓存链表接口返回的结果,如果在用户空间规则集命中缓存链表中命中,则直接跳转执行步骤3.5.5);否则,如果在用户空间规则集命中缓存链表中没有命中,则核外应用程序调用核外实体控制接口将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为传入参数发往操作系统内核,操作系统内核根据所述传入参数查找当前访问操作对应的访问控制规则项并通过核外实体控制接口返回给核外应用程序,同时操作系统内核根据查找得到的所述访问控制规则项更新操作系统内核中的规则集命中缓存链表;
3.5.4)核外应用程序接收操作系统内核返回的访问控制规则项, 并更新用户空间规则集命中缓存链表;
3.5.5)核外应用程序按照得到的访问控制规则项决定核外应用程序中当前主体对当前客体的当前访问操作是否具有所申请的访问操作权限,如果该条访问控制规则项允许访问操作才允许当前访问操作,否则拒绝当前访问操作。
支持核内外实体的操作系统内核统一访问控制方法\n技术领域\n[0001] 本发明涉及计算机操作系统的信息安全领域,具体涉及一种支持核内外实体的操作系统内核统一访问控制方法。\n背景技术\n[0002] 信息安全是国家安全的重要内容。作为信息安全保护基础的操作系统长期以来依赖于国外操作系统产品,如微软windows系列、苹果的mac os、安卓等操作系统产品,其安全性严重受到制约,仅仅依靠安全补丁、安全加固等方式,难以保护我国信息安全。2008年的微软黑屏事件和2013年的棱镜门事件,充分说明了采用国外操作系统+安全补丁的方式,无法解决安全的根本问题。为了摆脱依赖于国外操作系统产品的窘境,国产自主操作系统通过强制身份鉴别、访问控制、网络防火墙等多种安全手段,提高了我国保护信息安全的能力。随着信息安全形势的不断演化以及安全攻击手段的多样化,暴露在外的应用成为黑客攻击的重要目标,通过攻击应用达到获取权限、数据甚至控制整个信息系统的目的。虽然以操作系统内部强制访问控制机制为主的安全手段,能够提高安全抗攻击能力,但由于操作系统内核不能察觉核外应用、网络等自身的某些内部实体,导致内核访问控制策略设计与应用、网络的内在保护是相互分离的,应用和网络等往往依靠其自身在用户层实现的安全机制进行防护,没有和操作系统内核安全防护结合为一个有机的安全整体,导致安全性仍然不够高。为此,必须设计一种能够支持核外应用内部实体的全系统统一的访问控制方法。\n[0003] 实体包括参与到访问操作的所有主体和客体。现有实体访问控制技术主要包含如下方法:1)自主访问控制。自主访问控制是一种由用户自己自主决定其它用户对自己拥有的客体进行访问授权的访问控制方式。自主访问控制包括粗粒度的“属主-属组-其它”的访问控制方式以及基于ACL(Access Control List)访问控制列表的细粒度自主访问控制。粗粒度的“属主-属组-其它”访问控制方式按照三类用户进行权限控制,一类是实体的属主用户所拥有的访问控制权限,一类是实体所在组即属组用户所拥有的访问控制权限,最后一类是除了属主和属组以外的用户所拥有的访问控制权限。基于ACL访问控制列表的细粒度自主访问控制则在粗粒度访问控制的基础上,以实体访问控制列表的形式实施细粒度的访问授权,实体的属主用户能够通过ACL访问控制列表实现针对单个用户或单个用户组对实体的访问授权。但是,无论粗粒度的自主访问控制还是细粒度的自主访问控制,都存在一个明显的弱点,即系统中的特权用户如系统管理员或者超级用户能够不受自主访问控制约束实施对实体的访问。2)强制访问控制。区别于自主访问控制,强制访问控制是在系统内强制实施的访问控制机制,任何用户和实体均受强制访问控制机制的约束,而不能自由决定其它实体对该实体的访问权限。根据目的不同,强制访问控制机制有机密性保护访问控制、完整性保护访问控制、基于角色的访问控制、基于类型的访问控制等等。根据实现的不同,有基于安全标记的强制访问控制、基于路径的强制访问控制等。强制访问控制为系统的安全带来了很大的好处,所有内核实体的访问均需要通过强制访问控制的检查,从而实施系统的强制保护。虽然强制访问控制机制有多种,但是要基于一个原则,就是强制访问控制机制所能察觉得到的实体才可能进行访问控制,对于核外其它应用内部的特有实体,由于强制访问控制不能察觉,因而其控制不能延伸到应用内部。3)应用自身控制。为了保护应用的安全性,很多应用都在其内部实现自身的安全保护机制,如安全数据库、安全web等。但是由于应用自身内部实现的安全机制不能和其运行平台-操作系统结合,而导致其安全保护能力不高,地基不牢。\n发明内容\n[0004] 本发明要解决的技术问题是提供一种全系统核内外统一防护、安全可靠、通用性好、扩展性强支持核内外实体的操作系统内核统一访问控制方法。\n[0005] 为了解决上述技术问题,本发明采用的技术方案为:\n[0006] 一种支持核内外实体的操作系统内核统一访问控制方法,其特征在于实施步骤如下:\n[0007] 1)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口及规则,操作系统内核基于所述内核访问控制接口及规则实现对操作系统内核中实体的强制访问控制;\n[0008] 2)基于所述内核访问控制接口及规则,为操作系统内核外的核外应用程序提供与所述内核访问控制接口相对应的核外实体控制接口,通过所述核外实体控制接口支持核外应用程序对自身内部实体的访问操作由操作系统内核实施访问控制;\n[0009] 3)核外应用程序利用所述核外实体控制接口获取内核访问控制规则实现应用程序自身内部主体实体对自身内部客体实体的强制访问控制。\n[0010] 进一步地,所述步骤1)的详细实施步骤如下:\n[0011] 1.1)分别为操作系统内核中的实体分配安全属性标记,所述实体包括操作系统内核访问操作相关的主体和客体;\n[0012] 1.2)操作系统内核中的客体按照其属性分别进行分类得到多个客体类,针对每一个客体类,定义针对该客体类用以访问权限检查的可实施访问操作集;\n[0013] 1.3)在操作系统内核中维护访问控制规则链表,通过所述访问控制规则链表存储基于操作系统内核中的实体以及客体类定义主体对客体的内核访问控制规则,通过所述内核访问控制规则约定具有某安全属性标记的主体对具有某安全属性标记的客体具有何种访问操作权限,所述访问操作权限在该客体类所定义的可实施访问操作集的访问操作范围内;\n[0014] 1.4)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口,在操作系统内核的主体申请访问客体时,所述内核访问控制接口根据当前内核访问操作的主体的安全属性标记、客体的安全属性标记以及客体类检查所述访问控制规则链表,根据所述访问控制规则链表的检查结果控制当前内核访问操作的权限。\n[0015] 进一步地,所述步骤1.3)在操作系统内核中维护访问控制规则链表包括完整规则集缓存链表、规则集命中缓存链表,所述完整规则集缓存链表用于存储完整的访问控制规则,所述规则集命中缓存链表用于存储匹配成功的访问控制规则项;所述步骤1.4)中检查所述访问控制规则链表并判断当前主体对当前客体是否具有所申请的访问操作的权限的详细实施步骤如下:\n[0016] 1.4.1)查询所述规则集命中缓存链表,如果能够在规则集命中缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.4);如果在规则集命中缓存链表中没有找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.2);\n[0017] 1.4.2)查询所述完整规则集缓存链表,在完整规则集缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则将所述访问控制规则项加入所述规则集命中缓存链表;\n[0018] 1.4.3)判断所述规则集命中缓存链表中的访问控制规则项是否已经达到系统定义的最大值,如果达到系统定义的最大值,则根据预设的更新算法删除所述规则集命中缓存链表中的某条访问控制规则项;\n[0019] 1.4.4)根据匹配到的该条访问控制规则项决定是否授予当前主体对当前客体的申请访问操作权限,如果该条访问控制规则项允许访问操作才允许当前内核访问操作,否则拒绝当前内核访问操作并返回。\n[0020] 进一步地,所述步骤1.4.3)中删除所述规则集命中缓存链表中的某条访问控制规则项具体是指删除使用频率最低的访问控制规则项。\n[0021] 进一步地,所述步骤2)的详细实施步骤如下:\n[0022] 2.1)在操作系统内核外定义与操作系统内核中指定的内核访问控制接口对应的应用编程接口作为核外实体控制接口,为所述核外实体控制接口建立动态链接库以供核外应用调用;\n[0023] 2.2)建立用于实现所述核外实体控制接口与操作系统内核进行交互的实体控制内存文件系统,在所述实体控制内存文件系统中为操作系统内核外的核外应用程序提供与实现强制控制内核实体访问权限的内核访问控制接口相应的接口文件,通过所述接口文件实现核外实体控制接口与操作系统内核的交互,对实体控制内存文件系统中文件的读操作代表由操作系统内核向核外应用程序传递信息、对实体控制内存文件系统中文件的写操作代表由核外应用程序向操作系统内核传递信息。\n[0024] 进一步地,所述步骤3)的详细实施步骤如下:\n[0025] 3.1)核外应用程序根据自身特点定义自身内部的实体,所述实体包括核外应用程序内部的主体和客体,核外应用程序在确定完自身内部的实体后,根据可以作用在实体上的访问操作类型进行实体类定义,并分别约定所述实体类上的访问操作集,从而得到核外应用程序自身内部的实体类和对应该实体类的访问操作;\n[0026] 3.2)根据所述实体和实体类的划分,定义核外应用程序内部使用的安全属性标记,为每个实体分配相应的安全属性标记;\n[0027] 3.3)按照核外应用程序内部实体的安全属性标记、实体类以及该实体类的访问操作,定义在核外应用程序内部用于控制自身实体的访问控制规则集,确定应用内部主体实体对内部客体实体的访问操作权限;\n[0028] 3.4)利用核外实体控制接口将核外应用程序内部定义的实体类、安全属性、访问操作以及访问控制规则集导入操作系统内核以供操作系统内核控制核外应用程序内部主体实体访问内部客体实体的访问控制使用;且在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;\n[0029] 3.5)将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数通过调用所述核外实体控制接口获取对应的访问控制规则项,核外应用程序按照得到的所述访问控制规则项实施当前内部访问操作的访问控制。\n[0030] 进一步地,步骤3.5)的详细操作步骤如下:\n[0031] 3.5.1)预先在用户空间中初始化设置用户空间规则集命中缓存链表,通过所述用户空间规则集命中缓存链表存储当前用户空间匹配成功的访问控制规则项;在核外实体控制接口中设置用户空间缓存链表接口,在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;\n[0032] 3.5.2)核外应用程序将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数,调用所述用户空间缓存链表接口来检查所述用户空间规则集命中缓存链表,判断当前访问操作是否在用户空间规则集命中缓存链表中命中,如果未命中则直接返回未命中信息作为结果返回,如果命中则将命中信息和在用户空间规则集命中缓存链表中命中的访问控制规则项作为返回的结果返回;\n[0033] 3.5.3)核外应用程序接收所述用户空间缓存链表接口返回的结果,如果在用户空间规则集命中缓存链表中命中,则直接跳转执行步骤3.5.5);否则,如果在用户空间规则集命中缓存链表中没有命中,则核外应用程序调用核外实体控制接口将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为传入参数发往操作系统内核,操作系统内核根据所述传入参数查找当前访问操作对应的访问控制规则项并通过核外实体控制接口返回给核外应用程序,同时操作系统内核根据查找得到的所述访问控制规则项更新操作系统内核中的规则集命中缓存链表;\n[0034] 3.5.4)核外应用程序接收操作系统内核返回的访问控制规则项, 并更新用户空间规则集命中缓存链表;\n[0035] 3.5.5)核外应用程序按照得到的访问控制规则项决定核外应用程序中当前主体对当前客体的当前访问操作是否具有所申请的访问操作权限,如果该条访问控制规则项允许访问操作才允许当前访问操作,否则拒绝当前访问操作。\n[0036] 本发明支持核内外实体的操作系统内核统一访问控制方法具有下述优点:本发明为操作系统内核中实现强制控制内核实体访问权限的访问控制接口及规则,操作系统内核基于所述访问控制接口及规则实现对操作系统内核中实体的强制访问控制,基于所述访问控制接口及规则为操作系统内核外的核外应用程序提供与指定的内核访问控制接口相应的核外实体控制接口,通过所述核外实体控制接口支持核外应用程序的访问操作由内核实施访问控制;核外应用程序利用所述核外实体控制接口获取访问控制规则实现对应用自身内部实体的强制访问控制,因此通过内核的强制访问控制决策机制和实体控制接口为核外实体提供基于内核的强制访问控制保护,能够对核外应用内部特有的实体实施与内核实体访问控制一体的访问控制决策,增强核外应用的强制访问控制能力,具有全系统核内外统一防护、安全可靠、通用性好、扩展性强的优点。\n附图说明\n[0037] 图1为本发明实施例的方法流程示意图。\n[0038] 图2为本发明实施例强制控制内核实体访问权限时维护的两个链表示意图。\n[0039] 图3为本发明实施例中核外实体控制接口与内核的交互原理示意图。\n[0040] 图4为本发明实施例中核外应用程序的强制访问控制原理示意图。\n[0041] 图5为本发明实施例的访问控制原理示意图。\n具体实施方式\n[0042] 如图1所示,本发明实施例支持核内外实体的操作系统内核统一访问控制方法的实施步骤如下:\n[0043] 1)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口及规则,操作系统内核基于内核访问控制接口及规则实现对操作系统内核中实体的强制访问控制;\n[0044] 2)基于内核访问控制接口及规则,为操作系统内核外的核外应用程序提供与内核访问控制接口相对应的核外实体控制接口,通过核外实体控制接口支持核外应用程序对自身内部实体的访问操作由操作系统内核实施访问控制;\n[0045] 3)核外应用程序利用核外实体控制接口获取内核访问控制规则实现应用程序自身内部主体实体对自身内部客体实体的强制访问控制。\n[0046] 本实施例中,步骤1)的详细实施步骤如下:\n[0047] 1.1)分别为操作系统内核中的实体分配安全属性标记,实体包括操作系统内核访问操作相关的主体和客体。本实施例中,安全属性标记包括角色属性、类型属性、密级属性,组成一个完整的安全属性标记系统。本实施例的操作系统环境为国防科技大学计算机学院研制开发的麒麟操作系统,麒麟操作系统能够支持实体的扩展安全属性标记,此外,本实施例同样也能够支持其它支持扩展属性的操作系统,支持平台的多样性,具有通用性好、扩展性强的优点;此外,也可以根据需要采用文件、数据库、内存等形式存储应用程序分类的标记,并且可优选采用加密的方式进行存储。本实施例利用操作系统支持的扩展属性存储实体的安全标记,扩展属性空间被命名为security.secattr,安全属性标记存储在扩展属性空间security.secattr中。\n[0048] 1.2)操作系统内核中的客体按照其属性分别进行分类得到多个客体类,针对每一个客体类,定义针对该客体类用以访问权限检查的可实施访问操作集。\n[0049] 1.3)在操作系统内核中维护访问控制规则链表,通过访问控制规则链表存储基于操作系统内核中的实体以及客体类定义主体对客体的内核访问控制规则,通过内核访问控制规则约定具有某安全属性标记的主体对具有某安全属性标记的客体具有何种访问操作权限,访问操作权限在该客体类所定义的可实施访问操作集的访问操作范围内。\n[0050] 1.4)为操作系统内核中实现强制控制内核实体访问权限的内核访问控制接口,在操作系统内核的主体申请访问客体时,内核访问控制接口根据当前内核访问操作的主体的安全属性标记、客体的安全属性标记以及客体类检查访问控制规则链表,根据访问控制规则链表的检查结果控制当前内核访问操作的权限。\n[0051] 本实施例中,将操作系统内核中的实体类定位为包括process、file、dir、inode、msg等实体类,实体对应的访问操作与实体类密切相关,如file实体类的访问操作包括:\nopen、read、write、getattr、setattr、link、unlink、rename等操作,dir实体类的访问操作包括:addname、unlink、read、getattr、setattr等访问操作。因此,file实体类的可实施访问操作集包括open、read、write、getattr、setattr、link、unlink、rename等操作,dir实体类的可实施访问操作集包括open、read、write、getattr、setattr、link、unlink、rename等操作,以此类推;主体对客体申请访问操作时,要检查系统维护的访问控制规则集,以确定当前主体是否具有对当前客体所申请的访问操作权限。\n[0052] 本实施例中,步骤1.3)在操作系统内核中维护访问控制规则链表包括完整规则集缓存链表、规则集命中缓存链表,完整规则集缓存链表用于存储完整的访问控制规则,规则集命中缓存链表用于存储匹配成功的访问控制规则项。\n[0053] 本实施例中,步骤1.4)中检查访问控制规则链表并判断当前主体对当前客体是否具有所申请的访问操作的权限的详细实施步骤如下:\n[0054] 1.4.1)查询规则集命中缓存链表,如果能够在规则集命中缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.4);如果在规则集命中缓存链表中没有找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则跳转执行步骤1.4.2);\n[0055] 1.4.2)查询完整规则集缓存链表,在完整规则集缓存链表中找到某条访问控制规则项与当前的主体的安全属性标记、客体的安全属性标记以及客体类匹配,则将访问控制规则项加入规则集命中缓存链表;\n[0056] 1.4.3)判断规则集命中缓存链表中的访问控制规则项是否已经达到系统定义的最大值,如果达到系统定义的最大值,则根据预设的更新算法删除规则集命中缓存链表中的某条访问控制规则项;\n[0057] 1.4.4)根据匹配到的该条访问控制规则项决定是否授予当前主体对当前客体的申请访问操作权限,如果该条访问控制规则项允许访问操作才允许当前内核访问操作,否则拒绝当前内核访问操作并返回。\n[0058] 参见图2,为了提高本实施例的操作系统性能,本实施例利用访问操作申请的局部性,维护了两个链表:一条为完整规则集缓存链表,另一条为规则集命中缓存链表,完整规则集缓存链表用于存储完整的访问控制规则集,规则集命中缓存链表用于存储匹配成功的(即不完整的)访问控制规则项集。在主体对客体申请访问操作时,首先要检查规则集命中缓存链表,以提高命中率,在没有命中的情况下,再检查完整规则集缓存链表。在本实施例中,完整规则集缓存链表、规则集命中缓存链表是两条完全独立的数据双向链表;此外也可以将完整规则集缓存链表作为一条完整的访问控制规则链表,而将规则集命中缓存链表设置为仅包含指向完整的访问控制规则集缓存链表的数据指针,以减小数据链表的维护代价和查询代价,在规则集命中缓存链表中命中时,不再查询完整的访问控制规则集缓存链表。\n[0059] 本实施例中,步骤1.4.3)中删除规则集命中缓存链表中的某条访问控制规则项具体是指删除使用频率最低的访问控制规则项,从而能够提高规则集命中缓存链表的命中率,确保规则集命中缓存链表的读取性能。\n[0060] 本实施例中,步骤2)的详细实施步骤如下:\n[0061] 2.1)在操作系统内核外定义与操作系统内核中指定的内核访问控制接口对应的应用编程接口作为核外实体控制接口,为核外实体控制接口建立动态链接库以供核外应用调用;\n[0062] 2.2)建立用于实现核外实体控制接口与操作系统内核进行交互的实体控制内存文件系统,在实体控制内存文件系统中为操作系统内核外的核外应用程序提供与实现强制控制内核实体访问权限的内核访问控制接口相应的接口文件,通过接口文件实现核外实体控制接口与操作系统内核的交互,对实体控制内存文件系统中文件的读操作代表由操作系统内核向核外应用程序传递信息、对实体控制内存文件系统中文件的写操作代表由核外应用程序向操作系统内核传递信息。\n[0063] 参见图3,本实施例中将在操作系统内核中实现强制控制内核实体访问权限的访问控制接口命名为内核强制访问控制决策机制,内核强制访问控制决策机制实现多个可供核外实体控制接口调用的内核实体控制接口。实体控制内存文件系统中的文件以核外实体控制接口为主建立,主要包括实体安全属性标记接口文件、访问控制检查接口文件、安全属性查询接口文件等;内核访问控制决策机制实现相应的实体安全属性标记接口、访问控制检查接口、安全属性查询接口以及访问控制规则命中缓存接口。本实施例通过实体控制内存文件系统、内核访问控制决策的实体控制接口,在操作系统内核外实现支持应用程序的核外实体控制接口,并编译成实体控制动态链接库,核外应用可以调用该实体控制动态链接库,从而实现与内核的交互。\n[0064] 本实施例中,步骤3)的详细实施步骤如下:\n[0065] 3.1)核外应用程序根据自身特点定义自身内部的实体(例如数据库应用中,数据库表中的字段、图形中的按钮等就可以作为应用自身内部的实体),实体包括核外应用程序内部的主体和客体,核外应用程序在确定完自身内部的实体后,根据可以作用在实体上的访问操作类型进行实体类定义,并分别约定实体类上的访问操作集,从而得到核外应用程序的实体类和对应该实体类的访问操作;\n[0066] 3.2)根据实体和实体类的划分,定义核外应用程序内部使用的安全属性标记,为每个实体分配相应的安全属性标记;\n[0067] 3.3)按照核外应用程序内部实体的安全属性标记、实体类以及该实体类的访问操作,定义在核外应用程序内部用于控制自身实体的访问控制规则集,确定应用内部主体实体对内部客体实体的访问操作权限;\n[0068] 3.4)利用核外实体控制接口(具体为核外实体控制接口中的实体属性及规则导入接口)将核外应用程序内部定义的实体类、安全属性、访问操作以及访问控制规则集导入操作系统内核以供操作系统内核控制核外应用程序内部主体实体访问内部客体实体的访问控制使用;且在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;\n[0069] 3.5)将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数通过调用核外实体控制接口获取对应的访问控制规则项,核外应用程序按照得到的访问控制规则项实施当前访问内部操作的访问控制。\n[0070] 参见图4,应用本实施例的核外应用程序需要定义好下属内容:内部实体类、实体类的访问操作集、内部实体的安全属性集、内部实体的访问控制规则集四种集合,而且在运行时依赖于内部实体访问(即内部主体访问内部客体)才能触发核外应用程序的权限控制。\n同时,为了提高性能,与规则集命中缓存链表类似,本实施例在实体控制接口中也提供用户空间缓存链表接口,通过用户空间规则集命中缓存链表实现“用户空间访问控制规则命中缓存”,通过有优先读取用户空间规则集命中缓存链表来优化访问控制规则项的读取性能,仅仅在未命中的情况下,才通过核外实体控制接口、实体控制内存文件系统来获取内核强制访问控制决策机制提供的访问控制规则项,同样内核强制访问控制决策机制也会优先根据“访问规则命中缓存”从规则集命中缓存链表中优先获取访问控制规则项,仅仅在访问规则控制未命中的情况下,才从完整规则集缓存链中获取匹配的访问控制规则项,从而能够提高操作系统的性能和响应速度,在保障安全的前提下尽量减少对操作系统运行速度的影响。\n[0071] 本实施例中,步骤3.5)的详细操作步骤如下:\n[0072] 3.5.1)预先在用户空间中初始化设置用户空间规则集命中缓存链表,通过用户空间规则集命中缓存链表存储当前用户空间匹配成功的访问控制规则项;在核外实体控制接口中设置用户空间缓存链表接口,在核外应用程序内部主体实体访问内部客体实体时,跳转执行下一步;\n[0073] 3.5.2)核外应用程序将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为参数,调用用户空间缓存链表接口来检查用户空间规则集命中缓存链表,判断当前访问操作是否在用户空间规则集命中缓存链表中命中,如果未命中则直接返回未命中信息作为结果返回,如果命中则将命中信息和在用户空间规则集命中缓存链表中命中的访问控制规则项作为返回的结果返回;\n[0074] 3.5.3)核外应用程序接收用户空间缓存链表接口返回的结果,如果在用户空间规则集命中缓存链表中命中,则直接跳转执行步骤3.5.5);否则,如果在用户空间规则集命中缓存链表中没有命中,则核外应用程序调用核外实体控制接口将当前访问操作的主体安全属性、客体安全属性、客体类、申请的访问操作作为传入参数发往操作系统内核,操作系统内核根据传入参数查找当前访问操作对应的访问控制规则项并通过核外实体控制接口返回给核外应用程序,同时操作系统内核根据查找得到的访问控制规则项更新操作系统内核中的规则集命中缓存链表;\n[0075] 3.5.4)核外应用程序接收操作系统内核返回的访问控制规则项, 并更新用户空间规则集命中缓存链表;\n[0076] 3.5.5)核外应用程序按照得到的访问控制规则项决定核外应用程序中当前主体对当前客体的当前访问操作是否具有所申请的访问操作权限,如果该条访问控制规则项允许访问操作才允许当前访问操作,否则拒绝当前访问操作。\n[0077] 参见图5,本实施例在操作系统内核实现内核强制访问控制决策机制,控制内核实体(包含内核主体和内核客体)的访问操作;同时基于内核强制访问控制决策机制,为核外应用提供与内核实体控制相应的核外实体控制接口,通过核外实体控制接口支持核外的访问操作请求由内核实施访问控制决策;对于核外应用程序(应用A和应用B)而言,核外应用程序通过调用核外实体控制接口,在核外应用内部实现支持自身内部特有实体的用户空间实体控制器(内部实体控制器),并通过内部实体控制器向操作系统内核导入自身实体及相关操作,在应用内部的主体访问内部客体时通过内部实体控制器查询内核强制访问控制决策,从而实施核内外实体统一的访问控制决策机制。本实施例通过上述步骤,能够基于内核的强制访问控制决策机制保护内核实体,实施访问控制约束,能够为核外应用提供安全保护支撑,应用可以为内部特有实体定义安全属性、将内部实体进行分类并定义相应操作、定义访问控制规则,并实施基于内核访问控制机制的全系统统一的实体访问控制,提高对应用的安全保护和细粒度访问控制能力,能够有效保证系统的安全性和可靠性。\n[0078] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2015-06-03
- 2014-09-03
实质审查的生效
IPC(主分类): G06F 21/74
专利申请号: 201410237181.X
申请日: 2014.05.30
- 2014-08-06
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-04-29
|
2008-12-12
| | |
2
| |
2010-06-09
|
2009-12-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |