网络访问控制模型及其方法和终端的制作方法

文档序号:7895214阅读:221来源:国知局
专利名称:网络访问控制模型及其方法和终端的制作方法
技术领域
本发明涉及网络技术,尤其涉及一种对网络资源访问进行控制的方法和系统。
背景技术
在Web服务中,服务的请求与响应通常通过简单对象访问协议(Simple ObjectAccess Protocol, SOAP)消息基于超文本传输协议(HyperText Transport Protocol,HTTP)进行传递,这使得传统网络层防火墙视SOAP消息为合法应用层协议。如果非法用户通过SOAP消息访问未经保护的Web服务,可能导致未授权的访问,甚至对内部应用带来危害。此外,一些Web服务可能只是针对特定用户群开放,只有经过认证和授权的请求者才能访问相应的服务。因此,对服务请求进行有效的访问控制是Web服务应用中需重点解决的 问题。Web服务环境具有开放、动态和分布式的特征,交互双方通常都是陌生主体,可能位于不同安全域(不同安全域中的计算机通常具有不同的安全等级和安全需求),用户身份和数量不可预知,进行预先的身份信息存储和权限分配是不现实的。因此,Web服务最好能够进行跨安全域的访问控制,实现对跨域的未知用户的访问授权。传统方法在假定用户身份(identity)已经确定的基础上进行访问控制,比如、在数据库或访问控制策略中存在用户身份与权限的固定关联,因而不适应Web服务环境的需求。为了克服基于身份方法在开放分布式环境中的局限性,行业内提出了一种称为基于角色的访问控制(Role-Based Access Control, RBAC)的方法,引入了角色的概念,管理员首先分配好各个角色的权限,然后将系统的用户分配到各个不同的角色中,从而完成用户权限的设定,而不用逐个设置用户的使用权限。然而在上述方法中,用户的权限仍然需要管理员设定,仍然存在着在陌生用户的访问问题。

发明内容
本发明目的在于提供一种网络访问控制模型及其方法和终端,从而能更好地提高网络的安全访问性能。本发明提供的网络访问控制模型用于对访问一网络资源的用户分配恰当的访问权限,其特征在于,包括用户模块,用于提取所述用户的至少一属性;权限模块,定义了对所述网络资源的若干访问权限;角色模块,定义了若干角色,每个角色预设有若干所述的访问权限;本体模块,至少定义了用户的所述属性;规则模块,至少定义了一规则,该规则基于所述属性而分配给所述用户一匹配的角色,从而使该用户访问所述网络资源;会话模块,建立、维持和撤消所述匹配的角色与所属用户的关联。
本发明还公开了该网络访问控制模型所采用的方法及其所应用的服务终端。本发明能对访问控制的策略执行与访问授权实现自动的推理,允许合法的用户访问,禁止非法用户访问。


图I为本发明网络资源的访问控制系统的一实施例的模块图;图2为图I中用户模块的一实施例的模块图。
具体实施例方式如图I所示,本发明的较佳实施例中所提出的网络访问控制策略模型包括RBAC本体、用户模块、会话模块、角色模块、权限模块和规则模块,其中规则模块用来实现用户模块、角色模块、权限模块之间或内部的推导,从而自动地分配用户与角色、角色与权限之间 的对应关系,并且根据实际需要,也可以对角色的分配进行限制。本实施例中所说的模块,可以是单独实现某一特定功能的软件、硬件、固件或其组合,如程序、存储介质、集成电路等,也可以存储在同一网络实体或者分布式地存储在不同网络实体中,本发明并不想当然的局限在特定的实施方式上。以下分别对各模块做具体介绍。用户模块(Users/Credentials)为了增强角色分配的灵活性和动态性,以适应Web服务环境需求,本实施例直接使用用户所提供的信任证(credential)来表征用户,然后基于信任证及其属性来进行用户-角色分配。这些信任证是由可信权威发布并签名,能够进行跨域的验证和接受。如图2所示,为了在语义层次上对各种信任证进行概念、属性以及关系的提取,本实施例构造了一个信任证模块(Credential),在用信任证表征用户的前提下,该信任证模块即用户模块,该模块中对各种信任证进行了分层次的提取,其中,用户名令牌(UserNameToken)子类表示其身份是由用户名和密码确定的用户集合;二进制安全令牌(BinarySecurityToken)子类表示其身份是由某种二进制安全令牌确定的用户集合,如X. 509证书或Kerberos票据;密钥(Key)子类表征其身份是由公钥或对称密钥确定的用户集合,等等。另外,Credential类还包含了各种属性(property)来提取和描述信任证中的相关属性。比如,属性被发布(issuedBy)用来指明用户提供的信任证是由谁发布的、属性是否内部(islnternal)用来表明用户信任证针对服务提供者来说是由外部权威还是内部权威发布的、属性是否有效(isValid)用来表示用户提供的信任证当前是否是有效的,等等。基于用户模块的各种概念和属性断言可作为后面提到的相关语义规则的前提条件,用来执行动态的角色分配。权限模块(Permissions)权限是RBAC中对受保护对象执行某个动作的一种许可。在Web服务中,受保护对象包括服务以及服务的操作,其动作就是对服务或服务操作的调用。因此,这里直接使用服务和操作来表不RBAC中权限的概念。权限模块中分别定义服务模块(Service)和操作模块(Operation)来表示服务集和操作集,对象属性具有操作(hasOperation)用来将类Service和Operation关联在一起,表示通过属性hasOperation可以获取一个服务对应的操作的信息。被发布(publishedBy)和安全等级(securityLevel)是为类Service和Operation定义的两个数据类型属性,前者用来指明谁是服务的发布者,而后者用来表示服务或操作所需要的安全级别。此外,还可以根据需求定义其他类似的属性,基于这些属性的断言可以作为后面提到的许可-角色分配的前提条件。服务模块还可以进一步划分为两个子模块内部服务模块(InternalServie)和外部服务模块(ExternalService),分别表示内部服务集和外部服务集。不过,在实际应用中,一个服务既可能是内部服务模块的实例,又可能是外部服务模块的实例,即这个服务既可以在内部域使用,又允许被外部域实体调用,因此,内部服务模块和外部服务模块通常是相交的。需要指出的是,根据具体应用需求,可以在 服务模块和操作模块中构造新的服务或操作以及新的属性。此外,为了在权限模块与角色模块以及权限模块与用户模块之间建立关联,本实施例还定义了一些特定的属性。比如,对象类型属性分配服务(assignedService)和分配操作(assignedOperation)将角色模块分别与权限模块的服务模块和操作模块关联在一起,表示通过这两个属性可以获取角色有权访问的服务和操作信息;对象类型属性允许服务(permittedService)和允许操作(permittedOperation)将用户模块分别与权限模块的服务模块和操作模块关联在一起,表示通过这两个属性可以获取拥有某信任证的用户所有的有权访问的服务和操作信息;对象类型属性激活服务(activatedService)和激活操作(activatedOperation)也将用户模块与所述服务模块和操作模块关联在一起,表示在当前会话中用户通过激活的角色而有权访问的服务和操作信息。角色模块(Roles)角色模块用来关联前述的用户模块和权限模块,即用户通过其在角色模块中对应的具体角色而具有该角色的权限,进而对服务进行访问。为了避免角色的重复定义,本实施例中的角色模块中定义了一个顶层角色类(Role)来描述角色这个核心概念,每个具体的角色都是类Role的一个实例,并且定义了对象属性具有角色(hasRole)用来将用户模块与角色模块相关联,表示通过属性hasRole可以获取赋予当前用户的角色信息。为了表示各角色之间的权限继承关系,角色模块定义了具有传递性(transitive)的对象属性从属于角色(subRoleOf),用来将角色模块与其自身进行关联。比如,subRoleOf (rl, r2)表示角色rl继承了角色r2的所有权限。另外,由属性subRoleOf的传递性可知,若有 subRoleOf (rl, r2)并且 subRoleOf (r2, r3),则可直接得到 subRoleOf (rl, r3)的结论。此外,本实施例还定义两个具有对称性(symmetric)的对象属性静态职责分离属性(SSd)和动态职责分离属性(dsd),分别用来表示角色之间的静态职责分离(StaticSeparation of Duty, SSD)和动态职责分离(Dynamic Separation of Duty, DSD)关系,这两个对象属性的定义域和值域均为角色模块自身。比如,SSd(rl,r2)表示rl和r2不能同时分配给一个用户,dsd (rI,r2)表示rl和r2不能同时被激活。由属性ssd的对称性可知,ssd(rl,r2)和ssd(r2,rl)的语义是相同的,属性dsd与此类似。会话模块(Sessions)会话模块定义了用户模块中的各用户与角色模块的各角色之间的映射关系,当一个用户激活它所有角色的一个子集时,用户模块与角色模块之间建立一个会话。在实际应用中,每个会话通常只与一个用户关联,而一个用户可以和一个或多个会话关联,用以表示一个用户具有多个不同的角色。会话模块中,具有反函数性质(inverse functional)的对象类型属性建立(establish)将用户模块与会话模块关联在一起,表明通过属性establish可以获取用户建立的会话信息,establish的反函数性质能很好地表示用户和会话之间一对多的特性。 会话模块通过对象类型属性激活角色(activatedRole)与角色模块关联在一起,表示通过属性activatedRole可以获取会话中激活的角色信息。当用户建立一个会话时,会话断言以及相关事实需要在访问控制执行过程中动态产生。RBAC 本体RBAC本体用来定义前述访问控制策略模型中的所有模块及其属性、关系和层级结构。在本实施例中,米用Web本体语言(Web Ontology Language,OWL)对RBAC进行定义,具体描述如下所示Class (rbac: Credential partial owl: Thing)Class(rbac:UserNameToken partial rbac: Credential)Class (rbac:BinarySecurityToken partial rbac: Credential)Class (rbac:Key partial rbac:Credential)Class (rbac:SAMLAssertion partial rbac: Credential)Class (rbac:X509Certif icate partial rbac:BinarySecurityToken)Class (rbac:Kerboros partial rbac:BinarySecurityToken)Class (rbac:SymmetricKey partial rbac:Key)Class (rbac:PublicKey partial rbac:Key)DatatypeProperty (rbac : issuedBy domain (rbac : Credential)range (xsd:string))DatatypeProperty (rbac: i s Internal domain (rbac !Credential)range(xsd:boolean))DatatypeProperty (rbac : isValid domain (rbac : Credential)range(xsd:boolean))//以上定义了图2所示用户模块及其层级结构、属性Class (rbac:Role partial owl:Thing)ObjectProperty(rbac:hasRole domain(rbac:Credential)range (rbac:Role))ObjectProperty (rbac:subRoleOf domain (rbac: Role)range(rbac: Role)TransitiveProperty)ObjectProperty (rbac : ssd domain (rbac : Role) range (rbac : Role)SymmetricProperty)ObjectProperty (rbac : dsd domain (rbac : Role) range (rbac : Role)SymmetricProperty)//以上定义了角色模块及其属性、操作Class (rbac:Servcie partial owl: Thing)Class (rbac:Operation partial rbac:Thing)Class (rbac:ExternalService partial rbac: Service)Class (rbac:InternalService partial rbac: Service)DatatypeProperty(rbac:publishedBy range (xsd: string))DatatypeProperty (rbac:securityLevel range (xsd:integer)) ObjectProperty (rbac : hasOperation domain (rbac : Service)range (rbac: Operation))ObjectProperty (rbac : assignedService domain (rbac : Role)range(rbac: Service))ObjectProperty (rbac : assignedOperation domain (rbac : Role)range (rbac: Operation))ObjectProperty (rbac:permittedService domain (rbac: Credential)range(rbac: Service))Obj ectProperty(rbac:permittedOperation domain (rbac: Credential)range(rbac: Operation))ObjectProperty (rbac: activatedService domain (rbac: Credential)range(rbac: Service))ObjectProperty (rbac:activatedOperation domain(rbac: Credential)range(rbac: Operation))//以上定义了权限模块及其结构、属性及操作Class (rbac: Session partial owl:Thing)ObjectProperty (rbac : activatedRole domain (rbac : Session)range(rbac: Role)ObjectProperty (rbac : establish domain (rbac : Credential)range(rbac: Session)InverseFunctional)Η以上定义了会话模块及其属性规则模块(Rules)为了使本发明实施例访问控制策略模型中的操作,比如动态角色分配、职责分离约束、角色激活与撤销等能够通过本体层的简单推理而得以执行,本实施例定义了规则模块并将其加入到RBAC本体中,该规则模块包括一系列语义规则,并基于这些语义规则的推理来实现本实施例网络访问控制策略模型所要求的各种操作。本实施例采用语义Web逻辑层的推荐标准SWRL来定义所需规则。定义的规则划可分成五个类型,分别用来实现模型中的各种关键操作,其规则实例列举说明所下·用户-角色分配规则主要根据用户模块中相关概念及属性来执行动态的用户-角色分配。如、一个用户能提供由某外部权威证书授权中心(CertificationAuthority, CA)发布的、有效的X. 509证书,则它可以分配给角色Rl
Rl. IhasRole ( u, Rl) —X509Certificate ( u) Λ islnternal ( u, false) Λ issuedBy ( u, 〃ca〃)Λ isValid( u, true)。·权限-角色分配规则基于服务模块和操作模块的相关概念和属性断言来执行权限-角色分配。如、对于安全级别大于"3"的任意一个服务,其访问权限只能分配给角色R2 R2. 2assignedService (R2, so) — Service ( so) Λ securityLevel ( so, i) Λ swrlb: g reaterThan( i, 3)。·职责分离约束规则I)静态职责分离约束规则,表示如果在任意两个角色之间存在基于ssd的关系断言,那么这两个角色不能同时分配给一个用户R3. I hasRole ( u, r2) — hasRole ( u, rl) Λ ssd ( rl, r2)。2)动态职责分离约束规则,表示如果在任意两个角色之间存在基于dsd的关系断言,那么这两个角色不能同时在一个用户的会话中被激活R3. 2 activatedRole ( s, r2) activatedRole ( s, rl) Λ dsd ( rl, r2) 角色层次推理规则表示基于角色层次的相关推理。比如,对于任意用户U以及任意角色rl和r2,如果用户u分配了角色rl并且在角色rl与r2之间存在subRoleOf关系断言,那么可推断r2也是用户u的一个角色,这是通过角色继承获得的一个隐含角色R4. I hasRole( u, r2) — hasRole( u, rl) Λ subRoleOf( rl, r2) 辅助规则,这些规则的建立是为了便于系统的查询和管理。如,直接获取一个用户有权访问的所有服务R5. IpermittedService( u, so) — hasRole( u, r) Λ assignedService ( r, so) 上述语义规则具有较好的分类性和组件化特征,可以通过添加或禁用一类规则来实现或取消相应的功能。以上结合实施例对本发明做了介绍,在具体实施中,网络的服务端应用该网络访问控制策略模型,对服务访问进行有效控制。以下结合操作示例对利用该实施例的网络访问控制方法作一简单描述。当一陌生的终端用户想要对服务端的服务申请某一操作时,它首先向服务端发送一建立会话的请求。服务端提取该用户的信任证信息,并利用规则模块对其所适合的角色信息进行推理。如果该用户提供的是由某外部权威证书授权中心(CertificationAuthority, CA)发布的、有效的X. 509证书,则根据推理规则Rl. I而给该用户分配角色Rl,并建立会话,依该角色Rl的权限对服务进行访问。如果没有匹配的角色,则服务端拒绝该请求。对服务端的其他访问操作依据具体的规则、用户能提供的具体信任证信息等推理内容而实现基于对应角色的访问授权。以上的描述是基于本发明的一个较佳实施例。所谓较佳,主要是从该实施例所具有的特征、实现的功能及达成的效果而言的。在本发明的公开范围内,本领域的普通技术人员还可以根据具体的需求,对该较佳实施例做适应性的变动,例如当仅需要实现根据用户信息、分配恰当的角色时,前述RBAC本体中完全可以仅定义信任证/用户模块的信息,而不必定义其他模块的信息;对应的,规则模块中也可以仅定义“用户-角色分配规则”。原因是,在一些实施例中,完全可以仅通过用户提供的信任证信息推理就可以给该用户分配适当的角色。在其他实施例中,也可以利用用户的其他属性进行动态的角色分配。此时,仅需要根据具体需要、设定合适的推理规则即可。在特定的实施例中,当需要进行“权限-角色分配”、“职责分离约束”、“角色层次推理”等控制时,本领域的普通技术人员可以依实际需求而选择前述RBAC本体的元素和规定恰当的推理规则。在所有的实施例中,推理规则可以依据实际的需求而定义,可以以逻辑推理规则、映射规则等任意的合理形式或其组合实现。此外,本实施例中所提取的用户属性是其信任证信息,但本发明并非限定在此属性信息上。在不同的适用场合中,可以自行定义提取用户所具有的各种信息。例如,仅需对通过不同网络访问的用户进行访问限制时,也可以根据其各自的地址信息而分配不同的角色。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
权利要求
1.一种网络访问控制模型,用于对访问一网络资源的用户分配访问权限,其特征在于,包括 用户模块,用于提取所述用户的至少一属性; 权限模块,定义了对所述网络资源的若干访问权限; 角色模块,定义了若干角色,每个角色预设有若干所述的访问权限; 本体模块,至少定义了用户的所述属性; 规则模块,至少定义了一规则,该规则基于所述属性而分配给所述用户一匹配的角色,从而使该用户访问所述网络资源; 会话模块,建立、维持和撤消所述匹配的角色与所属用户的关联。
2.根据权利要求I所述的网络访问控制模型,其特征是所述用户模块提取所述用户的 目任证 目息。
3.根据权利要求2所述的网络访问控制模型,其特征是所述本体模块中以层次结构定义所述信任证信息。
4.根据权利要求I所述的网络访问控制模型,其特征是所述规则模块基于对所述属性的语义推理而分配角色。
5.根据权利要求I所述的网络访问控制模型,其特征是所述本体模块以层次结构定义了所述角色模块,所述规则模块基于所述角色的层次关系进行角色推理。
6.根据权利要求5所述的网络访问控制模型,其特征是所述规则模块对所述角色之间进行职责分离约束。
7.根据权利要求I所述的网络访问控制模型,其特征是所述规则模块对所述权限模块进行权限-角色分配。
8.—种对网络资源的访问控制方法,该方法包括以下步骤 提取一用户的预定属性; 根据所预定属性匹配一角色; 依据所述角色所具有的权限,对所述网络资源进行访问。
9.根据权利要求8所述的方法,其特征是所述预定属性是该用户的信任证。
10.一种实现所述权利要求8的网络终端。
全文摘要
本发明提供一种网络访问控制模型及其方法和终端,用于对访问一网络资源的用户分配恰当的访问权限。该网络访问控制模型包括用户模块,用于提取所述用户的至少一属性;权限模块,定义对受保护对象执行某个动作的一种许可,定义了对所述网络资源的若干访问权限;角色模块,定义了若干角色,每个角色预设有若干所述的访问权限;本体模块,至少定义了用户的所述属性;规则模块,至少定义了一规则,该规则基于所述属性而分配给所述用户一匹配的角色,从而使该用户访问所述网络资源;会话模块,用于建立、维持和撤消所述用户与相匹配的角色的关联。本发明可以动态地给一陌生的访问用户分配合适的访问权限,从而增强网络访问的安全。
文档编号H04L9/32GK102857488SQ20121014289
公开日2013年1月2日 申请日期2012年5月10日 优先权日2012年5月10日
发明者吴礼发, 李华波, 曾晓光, 郑成辉, 赖海光, 贺正求 申请人:中国人民解放军理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1