如何让系统的权限管理系统更安全

如何让系统的权限管理系统更安全,第1张

基于RBAC模型的权限管理系统的设计和实现

0 引言

管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁。构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的。权限管理系统是管理信息系统中可代码重用性最高的模块之一。任何多用户的系统都不可避免的涉及到相同的权限需求,都需要解决实体鉴别、数据保密性、数据完整性、防抵赖和访问控制等安全服务(据ISO7498-2)。例如,访问控制服务要求系统根据 *** 作者已经设定的 *** 作权限,控制 *** 作者可以访问哪些资源,以及确定对资源如何进行 *** 作。

目前,权限管理系统也是重复开发率最高的模块之一。在企业中,不同的应用系统都拥有一套独立的权限管理系统。每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:

a系统管理员需要维护多套权限管理系统,重复劳动。

b用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证。

c由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难。

采用统一的安全管理设计思想,规范化设计和先进的技术架构体系,构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统,使得权限管理系统真正成为权限控制的核心,在维护系统安全方面发挥重要的作用,是十分必要的。

本文介绍一种基于角色的访问控制RBAC(Role-Based policies Access Control)模型的权限管理系统的设计和实现,系统采用基于J2EE架构技术实现。并以讨论了应用系统如何进行权限的访问和控制。

1 采用J2EE架构设计

采用J2EE企业平台架构构建权限管理系统。J2EE架构集成了先进的软件体系架构思想,具有采用多层分布式应用模型、基于组件并能重用组件、统一完全模型和灵活的事务处理控制等特点。

系统逻辑上分为四层:客户层、Web层、业务层和资源层。

a 客户层主要负责人机交互。可以使系统管理员通过Web浏览器访问,也可以提供不同业务系统的API、Web Service调用。

b Web层封装了用来提供通过Web访问本系统的客户端的表示层逻辑的服务。

c 业务层提供业务服务,包括业务数据和业务逻辑,集中了系统业务处理。主要的业务管理模块包括组织机构管理、用户管理、资源管理、权限管理和访问控制几个部分。

d 资源层主要负责数据的存储、组织和管理等。资源层提供了两种实现方式:大型关系型数据库(如ORACLE)和LDAP(Light Directory Access Protocol,轻量级目录访问协议)目录服务器(如微软的活动目录)。

2 RBAC模型

访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么[1]。

企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理[1]。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1减小授权管理的复杂性,降低管理开销;2灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

NIST(The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。

a RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、 *** 作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。

b RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。

c RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。

d RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。

3核心对象模型设计

根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型。

对象模型中包含的基本元素主要有:用户(Users)、用户组(Group)、角色(Role)、目标(Objects)、访问模式(Access Mode)、 *** 作(Operator)。主要的关系有:分配角色权限PA(Permission Assignment)、分配用户角色UA(Users Assignmen描述如下:

a 控制对象:是系统所要保护的资源(Resource),可以被访问的对象。资源的定义需要注意以下两个问题:

1资源具有层次关系和包含关系。例如,网页是资源,网页上的按钮、文本框等对象也是资源,是网页节点的子节点,如可以访问按钮,则必须能够访问页面。

2这里提及的资源概念是指资源的类别(Resource Class),不是某个特定资源的实例(Resource Instance)。资源的类别和资源的实例的区分,以及资源的粒度的细分,有利于确定权限管理系统和应用系统之间的管理边界,权限管理系统需要对于资源的类别进行权限管理,而应用系统需要对特定资源的实例进行权限管理。两者的区分主要是基于以下两点考虑:

一方面,资源实例的权限常具有资源的相关性。即根据资源实例和访问资源的主体之间的关联关系,才可能进行资源的实例权限判断。

例如,在管理信息系统中,需要按照营业区域划分不同部门的客户,A区和B区都具有修改客户资料这一受控的资源,这里“客户档案资料”是属于资源的类别的范畴。如果规定A区只能修改A区管理的客户资料,就必须要区分出资料的归属,这里的资源是属于资源实例的范畴。客户档案(资源)本身应该有其使用者的信息(客户资料可能就含有营业区域这一属性),才能区分特定资源的实例 *** 作,可以修改属于自己管辖的信息内容。

另一方面,资源的实例权限常具有相当大的业务逻辑相关性。对不同的业务逻辑,常常意味着完全不同的权限判定原则和策略。

b权限:对受保护的资源 *** 作的访问许可(Access Permission),是绑定在特定的资源实例上的。对应地,访问策略(Access Strategy)和资源类别相关,不同的资源类别可能采用不同的访问模式(Access Mode)。例如,页面具有能打开、不能打开的访问模式,按钮具有可用、不可用的访问模式,文本编辑框具有可编辑、不可编辑的访问模式。同一资源的访问策略可能存在排斥和包含关系。例如,某个数据集的可修改访问模式就包含了可查询访问模式。

c用户:是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。

d用户组:一组用户的集合。在业务逻辑的判断中,可以实现基于个人身份或组的身份进行判断。系统弱化了用户组的概念,主要实现用户(个人的身份)的方式。

e角色:权限分配的单位与载体。角色通过继承关系支持分级的权限实现。例如,科长角色同时具有科长角色、科内不同业务人员角色。

f *** 作:完成资源的类别和访问策略之间的绑定。

g分配角色权限PA:实现 *** 作和角色之间的关联关系映射。

h分配用户角色UA:实现用户和角色之间的关联关系映射。

该对象模型最终将访问控制模型转化为访问矩阵形式。访问矩阵中的行对应于用户,列对应于 *** 作,每个矩阵元素规定了相应的角色,对应于相应的目标被准予的访问许可、实施行为。按访问矩阵中的行看,是访问能力表CL(Access Capabilities)的内容;按访问矩阵中的列看,是访问控制表ACL(Access Control Lists)的内容。

4 权限访问机制

权限管理系统端:提供集中管理权限的服务,负责提供用户的鉴别、用户信息、组织结构信息,以及权限关系表的计算。

系统根据用户,角色、 *** 作、访问策略和控制对象之间的关联关系,同时考虑权限的正负向授予,计算出用户的最小权限。在业务逻辑层采用Session Bean实现此服务,也可以发布成Web Service。采用代理Proxy模式,集中控制来自应用系统的所要访问的权限计算服务,并返回权限关系表,即二元组{ObjectId,OperatorId}。

应用系统端:可以通过访问能力表CL和访问控制表ACL两种可选的访问方式访问权限管理系统。

以基于J2EE框架的应用系统为例,说明访问过程:

a首先采用基于表单的验证,利用Servlet方式集中处理登录请求[2]。考虑到需要鉴别的实体是用户,采用基于ACL访问方式。用户登录时调用权限管理系统的用户鉴别服务,如果验证成功,调用权限计算服务,并返回权限关系表,以HashMap的方式存放到登录用户的全局Session中;如果没有全局的Session或者过期,则被导向到登录页面,重新获取权限。

b直接URL资源采用基于CL访问方式进行的访问控制。如果用户直接输入URL地址访问页面,有两种方法控制访问:1通过权限标签读取CL进行控制;2采取Filter模式,进行权限控制,如果没有权限,则重定向到登录页面。

5 权限控制机制

权限所要控制的资源类别是根据应用系统的需要而定义的,具有的语义和控制规则也是应用系统提供的,对于权限管理系统来说是透明的,权限将不同应用系统的资源和 *** 作统一对待。应用系统调用权限管理系统所获得的权限关系表,也是需要应用系统来解释的。按此设计,权限管理系统的通用性较强,权限的控制机制则由应用系统负责处理。

由于应用系统的权限控制与特定的技术环境有关,以基于J2EE架构的应用系统为例来说明,系统主要的展示组件是JSP页面,采用标记库和权限控制组件共同来实现。

a 权限标识:利用标签来标识不同级别资源,页面权限标签将标识页面对象。

b 权限注册:遍历JSP页面上的权限控制标签,读取JSP的控制权限。通过权限注册组件将JSP页面上的权限控制对象以及规则注册到权限管理信息系统中。

c 权限控制:应用系统用户登录系统时,从权限管理系统获得权限关系表之后,一方面,权限标签控制页面展示;另一方面,利用权限控制组件在业务逻辑中进行相应的权限控制,尤其是和业务逻辑紧密联系的控制对象实例的权限控制。

6 权限存储机制

权限管理系统采用了两种可选的存储机制:LDAP(Lightweight Directory Access Protocol)目录服务数据库和关系型数据库。存储用户信息、组织结构、角色、 *** 作、访问模式等信息。

其中,目录服务系统基于LDAP标准,具有广泛的数据整合和共享能力。元目录(Meta-Directory)功能允许快速、简洁的与企业现存基础结构进行集成,解决基于传统RDBMS等用户数据库与LDAP用户数据库的同步问题。

7 结语

本文论述了一种基于RBAC模型的权限管理系统的实现技术方案。该权限管理系统已成功应用于系统的设计和开发实践,与应用系统具有很好的集成。实践表明,采用基于RBAC模型的权限具有以下优势:权限分配直观、容易理解,便于使用;扩展性好,支持岗位、权限多变的需求;分级权限适合分层的组织结构形式;重用性强。

基于RBAC模型的权限管理系统的设计和实现0 引言管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁。构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的。权限管理系统是管理信息系统中可代码重用性最高的模块之一。任何多用户的系统都不可避免的涉及到相同的权限需求,都需要解决实体鉴别、数据保密性、数据完整性、防抵赖和访问控制等安全服务(据ISO7498-2)。例如,访问控制服务要求系统根据 *** 作者已经设定的 *** 作权限,控制 *** 作者可以访问哪些资源,以及确定对资源如何进行 *** 作。目前,权限管理系统也是重复开发率最高的模块之一。在企业中,不同的应用系统都拥有一套独立的权限管理系统。每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:a系统管理员需要维护多套权限管理系统,重复劳动。b用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证。c由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难。采用统一的安全管理设计思想,规范化设计和先进的技术架构体系,构建一个通用的、完善的、安全的、易于管理的、有良好的可移植性和扩展性的权限管理系统,使得权限管理系统真正成为权限控制的核心,在维护系统安全方面发挥重要的作用,是十分必要的。本文介绍一种基于角色的访问控制RBAC(Role-Based policies Access Control)模型的权限管理系统的设计和实现,系统采用基于J2EE架构技术实现。并以讨论了应用系统如何进行权限的访问和控制。 1 采用J2EE架构设计采用J2EE企业平台架构构建权限管理系统。J2EE架构集成了先进的软件体系架构思想,具有采用多层分布式应用模型、基于组件并能重用组件、统一完全模型和灵活的事务处理控制等特点。系统逻辑上分为四层:客户层、Web层、业务层和资源层。a 客户层主要负责人机交互。可以使系统管理员通过Web浏览器访问,也可以提供不同业务系统的API、Web Service调用。b Web层封装了用来提供通过Web访问本系统的客户端的表示层逻辑的服务。c 业务层提供业务服务,包括业务数据和业务逻辑,集中了系统业务处理。主要的业务管理模块包括组织机构管理、用户管理、资源管理、权限管理和访问控制几个部分。d 资源层主要负责数据的存储、组织和管理等。资源层提供了两种实现方式:大型关系型数据库(如ORACLE)和LDAP(Light Directory Access Protocol,轻量级目录访问协议)目录服务器(如微软的活动目录)。2 RBAC模型访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么[1]。企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理[1]。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1减小授权管理的复杂性,降低管理开销;2灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。NIST(The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。 a RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、 *** 作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。b RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。c RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。d RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。3核心对象模型设计根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型。对象模型中包含的基本元素主要有:用户(Users)、用户组(Group)、角色(Role)、目标(Objects)、访问模式(Access Mode)、 *** 作(Operator)。主要的关系有:分配角色权限PA(Permission Assignment)、分配用户角色UA(Users Assignmen描述如下:a 控制对象:是系统所要保护的资源(Resource),可以被访问的对象。资源的定义需要注意以下两个问题:1资源具有层次关系和包含关系。例如,网页是资源,网页上的按钮、文本框等对象也是资源,是网页节点的子节点,如可以访问按钮,则必须能够访问页面。2这里提及的资源概念是指资源的类别(Resource Class),不是某个特定资源的实例(Resource Instance)。资源的类别和资源的实例的区分,以及资源的粒度的细分,有利于确定权限管理系统和应用系统之间的管理边界,权限管理系统需要对于资源的类别进行权限管理,而应用系统需要对特定资源的实例进行权限管理。两者的区分主要是基于以下两点考虑:一方面,资源实例的权限常具有资源的相关性。即根据资源实例和访问资源的主体之间的关联关系,才可能进行资源的实例权限判断。例如,在管理信息系统中,需要按照营业区域划分不同部门的客户,A区和B区都具有修改客户资料这一受控的资源,这里“客户档案资料”是属于资源的类别的范畴。如果规定A区只能修改A区管理的客户资料,就必须要区分出资料的归属,这里的资源是属于资源实例的范畴。客户档案(资源)本身应该有其使用者的信息(客户资料可能就含有营业区域这一属性),才能区分特定资源的实例 *** 作,可以修改属于自己管辖的信息内容。另一方面,资源的实例权限常具有相当大的业务逻辑相关性。对不同的业务逻辑,常常意味着完全不同的权限判定原则和策略。b权限:对受保护的资源 *** 作的访问许可(Access Permission),是绑定在特定的资源实例上的。对应地,访问策略(Access Strategy)和资源类别相关,不同的资源类别可能采用不同的访问模式(Access Mode)。例如,页面具有能打开、不能打开的访问模式,按钮具有可用、不可用的访问模式,文本编辑框具有可编辑、不可编辑的访问模式。同一资源的访问策略可能存在排斥和包含关系。例如,某个数据集的可修改访问模式就包含了可查询访问模式。c用户:是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。d用户组:一组用户的集合。在业务逻辑的判断中,可以实现基于个人身份或组的身份进行判断。系统弱化了用户组的概念,主要实现用户(个人的身份)的方式。e角色:权限分配的单位与载体。角色通过继承关系支持分级的权限实现。例如,科长角色同时具有科长角色、科内不同业务人员角色。f *** 作:完成资源的类别和访问策略之间的绑定。g分配角色权限PA:实现 *** 作和角色之间的关联关系映射。h分配用户角色UA:实现用户和角色之间的关联关系映射。该对象模型最终将访问控制模型转化为访问矩阵形式。访问矩阵中的行对应于用户,列对应于 *** 作,每个矩阵元素规定了相应的角色,对应于相应的目标被准予的访问许可、实施行为。按访问矩阵中的行看,是访问能力表CL(Access Capabilities)的内容;按访问矩阵中的列看,是访问控制表ACL(Access Control Lists)的内容。4 权限访问机制权限管理系统端:提供集中管理权限的服务,负责提供用户的鉴别、用户信息、组织结构信息,以及权限关系表的计算。系统根据用户,角色、 *** 作、访问策略和控制对象之间的关联关系,同时考虑权限的正负向授予,计算出用户的最小权限。在业务逻辑层采用Session Bean实现此服务,也可以发布成Web Service。采用代理Proxy模式,集中控制来自应用系统的所要访问的权限计算服务,并返回权限关系表,即二元组{ObjectId,OperatorId}。应用系统端:可以通过访问能力表CL和访问控制表ACL两种可选的访问方式访问权限管理系统。以基于J2EE框架的应用系统为例,说明访问过程:a首先采用基于表单的验证,利用Servlet方式集中处理登录请求[2]。考虑到需要鉴别的实体是用户,采用基于ACL访问方式。用户登录时调用权限管理系统的用户鉴别服务,如果验证成功,调用权限计算服务,并返回权限关系表,以HashMap的方式存放到登录用户的全局Session中;如果没有全局的Session或者过期,则被导向到登录页面,重新获取权限。b直接URL资源采用基于CL访问方式进行的访问控制。如果用户直接输入URL地址访问页面,有两种方法控制访问:1通过权限标签读取CL进行控制;2采取Filter模式,进行权限控制,如果没有权限,则重定向到登录页面。5 权限控制机制权限所要控制的资源类别是根据应用系统的需要而定义的,具有的语义和控制规则也是应用系统提供的,对于权限管理系统来说是透明的,权限将不同应用系统的资源和 *** 作统一对待。应用系统调用权限管理系统所获得的权限关系表,也是需要应用系统来解释的。按此设计,权限管理系统的通用性较强,权限的控制机制则由应用系统负责处理。由于应用系统的权限控制与特定的技术环境有关,以基于J2EE架构的应用系统为例来说明,系统主要的展示组件是JSP页面,采用标记库和权限控制组件共同来实现。a 权限标识:利用标签来标识不同级别资源,页面权限标签将标识页面对象。b 权限注册:遍历JSP页面上的权限控制标签,读取JSP的控制权限。通过权限注册组件将JSP页面上的权限控制对象以及规则注册到权限管理信息系统中。c 权限控制:应用系统用户登录系统时,从权限管理系统获得权限关系表之后,一方面,权限标签控制页面展示;另一方面,利用权限控制组件在业务逻辑中进行相应的权限控制,尤其是和业务逻辑紧密联系的控制对象实例的权限控制。6 权限存储机制权限管理系统采用了两种可选的存储机制:LDAP(Lightweight Directory Access Protocol)目录服务数据库和关系型数据库。存储用户信息、组织结构、角色、 *** 作、访问模式等信息。其中,目录服务系统基于LDAP标准,具有广泛的数据整合和共享能力。元目录(Meta-Directory)功能允许快速、简洁的与企业现存基础结构进行集成,解决基于传统RDBMS等用户数据库与LDAP用户数据库的同步问题。7 结语本文论述了一种基于RBAC模型的权限管理系统的实现技术方案。该权限管理系统已成功应用于系统的设计和开发实践,与应用系统具有很好的集成。实践表明,采用基于RBAC模型的权限具有以下优势:权限分配直观、容易理解,便于使用;扩展性好,支持岗位、权限多变的需求;分级权限适合分层的组织结构形式;重用性强。

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(NetworkInformation Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

11 LDAP的存储规则

区分名(DN,DistinguishedName)

和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。

在文件系统中, 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /opt/passwd,但是根据它们的完整路径,它们仍然是唯一的。

在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。比如,我的dn是"uid=aghaffar, ou=People, o=developerch"。不可能有相同的dn,但是我们可以有诸如"uid=aghaffar,ou=Administrators, o=developerch"的dn。这同上面文件系统中/etc/passwd 和 /usr/passwd的例子很类似。

我们有独一无二的属性,在"ou=Administrators,o=developerch" 中uid和在"ou=People,o=developerch"中的uid。这并不矛盾。

CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;

OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;

O=Organization 为组织名,可以3—64个字符长

C=Country为国家名,可选,为2个字符长

LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值(这与关系型数据库用行和列来存取数据有根本的不同)。

mail = testmail@mcccnet

othermailbox = testmailother@mccccom

givenname = givenname

sn = test sn

属性可添加,以下一个属性必须赋值:

objectclass=person (值为:person 或 server 或organization 或 其他自定义的值)

2 PHP(PHP培训php教程 )如何 *** 作LDAP

21 Php如何与LDAP连接和关闭

$ds=ldap_connect("ServerName")

ServerName是LDAP的服务器名,

例:

$ds=ldap_connect(“103117230:1000”)

返回值是:true 或false

关闭连接

ldap_close($ds);

22 在php中如何搜索用户信息

$ds=ldap_connect("103117230:1000");

//首先连接上服务器

$justthese =array("cn","userpassword",”location”);

//搜索函数中的一个参数,要求返回哪些信息,

//以上传回cn,userpassword,location,这些都要求小写

$sr=ldap_search($ds,"o=jite","cn=dom",$justthese);

//第一个参数开启LDAP的代号

一、设置企业安全管理制度体系的层级架构的背景

随着信息技术的发展和快速通信的需求,现代企业的运营越来越依赖于企业IT基础架构的建设水平,特别是一些分支机构分布全国或者跨国范围的大型企业。与此同时,如何保证这些企业的IT基础架构的安全性和稳定性成为一项迫切的需求,特别是在美国的萨班斯法案生效后,给企业在如何保证数据的准确性和安全性方面提出了更高的要求。

二、实现体系所需的网络安全知识

1、网络安全基础

随着工nternet的发展,信息安全也迎来了第二次变革,分布式系统、终端用户与计算机之间以及计算机与计算机之间传送数据的网络和通信设施的广泛应用,使得在信息传输时,需要有网络安全措施来保护数据传输。这就是“网络安全”的产生。

网络安全包含两个方面的内容:

a)所有与网络相关,特别是互联网相关的安全问题,包括各种系统的安全漏洞、协议的弱点和各式各样的攻击行为;

b)解决这些问题的技术或手段,包括密码技术、防火墙、虚拟专用网技术、入侵检测技术等应用技术,也包括相关的协议规范和管理策略。

2)网络与信息安全的目标

人们对信息的使用主要是通过计算机网络来实现的,在计算机和网络上信息的处理是数据的形式进行,在这种情况下,信息就是数据,因而从这个角度来说,网络与信息安全可以分为数据安全和系统安全。即信息安全可以从两个层次来看:

从消息的层次来看,包括信息的:

a)完整性(Integrity):即保证消息的来源、去向、内容真实无误;

b)保密性(Coflfidefltiality):即保证消息不会被非法泄露扩散;

e)不可否认性(Non一repudiation)一也称为不可抵赖性:即保证消息的发送和接受者无法否认自己所做过的 *** 作行为。

4)网络安全技术体系

一般的,可以从两个方面来设计网络安全的体系结构:

a)网络安全技术服务的不同对象

b)网络安全技术提供安全功能的特点

网络安全的服务对象有系统(包括一般主机和服务器)、局域网和网络的通信。根据服务对象的不同,分别有不同特性的网络安全技术。例如对于保护系统安全的技术有:数据备份、数据恢复和反病毒等技术;对于局域网安全的技术有:

防火墙、网络监控等技术;对于通信安全的技术则有:PKI、***等技术提供服务。

从网络安全技术自身特点来分析,网络安全技术可以分为:基础的网络支撑技术、主流的网络安全技术、专业的网络安全技术和具体的网络安全应用系统等。

密码技术和访问控制技术属于基础的网络安全支撑技术,提供所有其它网络安全技术所需要的基本安全服务;防火墙、***和PKI技术则属于目前流行的主流网络安全技术,己有较多的成熟产品面向用户。网络标准和法规则可以看成属于管理层面的网络安全技术。

从网络层次来看,包括:

a)可用性:即保证网络和信息系统随时可用,运行过程中不出现故障,若遇意外打击能够尽量减少并尽早恢复正常;

b)可控性(Controllability):是对网络信息的传播及内容具有控制能力的特性。

3)网络的安全威胁

网络的安全威胁来自于以下几个方面:

a)网络协议的弱点

TCP/IP协议是如今最流行的网络协议,它的设计本身并没有较多地考虑安全方面的需求,因而TCP/IP协议存在一些弱点,这些弱点带来许多直接的安全威胁。

b)网络 *** 作系统的漏洞

*** 作系统是网络协议和服务得以实现的最终载体之一,它不仅负责网络硬件设备的接口封装,同时还提供网络通信所需要的各种协议和服务的程序实现。一般情况, *** 作系统规模都很大,其中的网络协议实现尤其复杂,这点己经决定了 *** 作系统必然存在各种实现过程所带来的缺陷和漏洞。网络 *** 作系统的漏洞成为网络所面临的重要的安全威胁之一。

c)应用系统设计的漏洞

与 *** 作系统情况类似,应用程序的设计过程中也会带来很多由于人的局限性所导致的缺陷或漏洞。软件和硬件设计都存在这种问题,而其中软件的问题为我们所直接面对。

由于硬件设计方面的缺陷,特别是芯片的技术缺陷,使得硬件的后门与漏洞是我们网络所面临的最为深刻的威胁之一。

d)恶意攻击

恶意攻击是人们最易理解,而又最难防范的网络安全威胁。恶意的黑客攻击、网络病毒等都属于这类。

e)来自合法用户的攻击

来自合法用户的攻击是最容易被管理者忽视的安全威胁之一,事实上,80%的网络安全事件与内部人员的参与相关。网络管理的漏洞往往是导致这种威胁的直接原因。

2、PKI技术原理

pKI(PublieKeyInfrastrueture),即公开密钥体系。它是利用公钥理论和技术建立的提供信息安全服务的基础设施,是国际公认的现代网络安全认证机制。它利用现代密码学中的公钥密码技术在开放的网络环境中提供数据加密以及数字签名服务的统一的技术框架。

公钥是目前应用最广泛的一种加密体制,在此体系中,加密密钥与解密密钥各不相同,发送信息的人利用接收者的公钥发送加密信息,接收者再利用自己专有的私钥进行解密。这种方式既保证了信息的机密性,又能保证信息具有不可抵赖性。

PKI是一种遵循标准并利用公钥技术,为开放性网络应用的开展提供一套安全基础平台的技术与规范,它能够透明地提供基于公开密钥的加密和数字签名等安全服务。利用PKI可以方便地建立和维护一个可信的网络计算环境,从而使得人们在这个无法直接相互面对的环境中能够确认彼此的身份和所交换的信息。为实现以上目的,典型实用的PK工系统应由以下部分组成:PKI客户端、注册机构(RA)、认证机构(以)和证书库。

1)PKI客户端

PK工客户端的主要功能是使各种网络应用能够以透明、安全、一致、可信的方式与PKI交互,从而使用户能够方便地使用加密、数字签名等安全服务。

2)注册机构(RA)

RA则是用户与认证中心的接口,其主要功能是核实证书申请者的身份,它所获证书的申请者身份的准确性是以颁发证书的基础。

3)认证机构(以)

作为PKI核心的认证中心是证书颁发机构,由以签发的证书是网上用户的电子身份标识。

4)证书库

证书库用来存放经以签发的证书和证书注销列表(CRL),为用户和网络应用提供证书及验证证书状态。

3、kerberos技术原理

KerberoS身份认证协议提供了一种客户和服务器之间,或者是服务器彼此之间,在打开网络连接之前进行相互身份认证的机制。该协议假设客户和服务器之间最初的事务处理是发生在一个开放的网络当中,在这个网络中,绝大多数的计算机不是完全可靠的,而且包在线路上的传输可以被监听,并且可以被任意修改。换句话说,这种假设的环境和今天的Internet非常相似,一个攻击者可以轻松地假装成一个客户或者服务器,可以轻易地窃听或者篡改合法的客户同服务器之间的通信。

1)基本概念

KerberoS协议完全依赖于一个涉及共享秘密的身份认证技术。基本的概念是:如果一个秘密只有两个人知道,那么两个人中的任何一个都可以通过证实另一个人也知道该秘密,从而确认他的身份。

我们可以假设这么一个例子,爱丽丝经常发消息给鲍勃,而且鲍勃需要先确认消息的确来自爱丽丝,然后才能对消息的内容进行处理。他们决定通过选择一个口令来解决他们的这个问题,而且他们约定不把这个秘密告诉别的任何人。如果爱丽丝的消息能够以某种方式证明发送者确实知道这个口令,那么鲍勃就能够确认发送消息的一定是爱丽丝。

爱丽丝和鲍勃需要解决的问题就剩下一个,那就是爱丽丝如何才`能显示她知道这个口令呢她可以简单地将这个口令包含在她消息中的某处,也许在最后的签名部分一八ice,Our$ecret。这种方法简单而且高效,而且如果爱丽丝和鲍勃能够确认没有别的人也在读他们的信的话,这种方法是完全有效的。然而不幸的是,这种条件无法达到。他们的消息是在一个卡萝尔这样的人也在使用的网络上传输,卡萝尔有一个网络分析器,而且她有这样一个爱好,她喜欢扫描网络通信量,并且希望能有一天认出一个口令。因此,爱丽丝光靠说出口令已经不可能证明他知道这个秘密了。为了保证口令的保密性,她必须在不暴露口令的情况下显示她知道口令。

KerberoS协议使用秘密密钥加密来解决这个问题。通信的双方不是共享口令,而是共享一个加密密钥,而且双方使用有关这个密钥的知识来确认对方的身份。要让这个技术起作用,这个共享的密钥必须是对称的—单独一个密钥必须既可以加密也可以解密。一方通过加密一段信息来显示对该密钥的了解,而另一方通过解密这段信息来显示对该密钥的了解。

2)密钥分配

KerberoS协议的名称就暗示了它解决密钥分配问题的方法。KerberoS(或者CerberuS)是古典希腊神话当中的一个动物,它是一种凶猛的,有三个头的狗,守卫在冥府的入口。像守卫的Kerberos一样,KerberoS协议有三个头:一个客户,一个服务器,一个可信赖的第三方作在他们之间进行调解。协议当中的这个可信任的中介被称作密钥分配中心(KDC)。

KDC是运行在一个真正安全的服务器上的一个服务。它维护着一个存储所有处于它领域范围内的安全委托人的账户信息的数据库。除了关于每个安全委托人的其他信息以外,KDC还存储了一个只有安全委托人和KDC知道的加密密钥。这个密钥是用来在安全委托人和KDC之间交换信息的,被称作长期密钥。在该协议的绝大部分实现当中,这个密钥从一个用户的登录口令派生出来的。

3)会话票证(sessionTieket)

如图2一1所示,作为对客户请求同服务器通话的回答,K民将会话密钥的两个拷贝都发送给客户。会话密钥的客户拷贝是用KDC同客户共享的密钥加密的。会话密钥的服务器拷贝同关于客户的信息一起包含在一个叫做会话票证的数据结构当中。然后整个结构用KDC同服务器共享的密钥进行加密。在客户联系服务器之前,保管好这个安全地保存会话密钥服务器拷贝的票证就成为客户的责任。

KDC只是简单地提供了一个票证授权服务。它并不对它的消息进行跟踪以保证这些消息都到达了目标地址。如果KDC的消息发错了人,不会有什么危害。只有知道客户秘密密钥的人才能够对会话密钥的客户拷贝进行解密。只有知道服务器秘密密钥的人才能够读出票证里面的内容。

当客户收到KDC的回答时,它抽取出票证和会话密钥的客户拷贝,将两者都保存在一个安全的缓冲区里面(这个缓冲区位于易失性的内存里面,而不是磁盘上)。当客户想得到服务器的进入许可时,它向服务器发送一个包含了那个票证和一个鉴别码的消息(如图2一2所示),票证仍然是用服务器的秘密密钥加密了的,鉴别码是用会话密钥加密的。票证加上鉴别码就是客户提供给服务器的信任证。

当服务器收到来自某个客户的信任证时,它用自己的秘密密钥对会话票证进行解密,从中抽取出会话密钥,然后用这个会话密钥对客户的鉴别码进行解密。如果一切都通过了,那么服务器就知道客户的信任证是一个可信赖的权威机构一一KDC发放的。如果客户请求了相互身份认证的话,服务器就用它的会话密钥拷贝对来自客户鉴别码的时间标志进行加密,将结果返回给客户,作为服务器方的鉴别码。

4)票证授权证

用户的长期密钥是从一个口令派生出来的。例如,当爱丽丝登录时,她的工作站上的KerberoS客户将接收她的口令,然后通过将这个口令的文本传入一个单向杂凑函数来把口令转化为一个加密了的密钥。(Kerber0S版本5的所有实现都必须支持DES一CBC一MDS。除此之外,也可以支持别的算法)。这个结果就是爱丽丝的长期密钥。

KDC从爱丽丝在它的账户数据库中的记录当中得到爱丽丝的长期密钥的拷贝。当它收到来自爱丽丝的工作站上的KerberoS客户的请求时,KDC将在它的数据库当中查找爱丽丝,取出她的账户记录,从记录当中的一个字段中取出她的长期密钥。

这个从口令计算出密钥的一个拷贝,从数据库取出密钥的另一个拷贝的过程实际上只发生一次,就是当一个用户第二次登录到网络的时候。在接收了用户的口令,派生出用户的长期密钥之后,该工作站上的KerberoS客户就立即申请一个会话票证和会话密钥,以便在可以在登录会话中随后与KDC的交流时使用。

作为对客户请求的回答,KDC返回一个自己的会话票证。这个特殊的会话票证叫做票证授权证(TicketGrantingTicket,简称TGT)。像普通的会话票证一样,TGT包含了一个服务(在此情况下就是指KDC)用来同客户通信的会话密钥的一个拷贝。将TGT返回给客户的消息当中也包含了客户可以在同KDC的通信当中使用的会话密钥的一个拷贝。TGT是用KDC的长期密钥加密的。会话密钥的客户拷贝是用用户的长期密钥加密的。

当客户收到KDC对它最初请求的回答时,它使用它缓存的用户长期密钥的拷贝解密出会话密钥的拷贝。接着它就可以丢弃派生自用户口令的长期密钥,因为这个密钥己经不再需要了。像其他任何会话密钥一样,这个会话密钥是临时的,在TGT过期或用户注销后就无效了。因为这个原因,这个会话密钥就叫做登录会话密钥。

从客户的角度看,一个TGT不过是另一个票证罢了。在尝试连接任何服务之前,客户首先在它的信任证缓冲区中寻找一个到该服务的会话票证。如果客户找不到这样的会话票证,它就在信任证缓冲区里面寻找TGT。如果找到了一个TGT,该客户就从缓冲区里面取出相应的登录会话密钥,用这个密钥来准备鉴别码,并将这个鉴别码和TGT都发送给KDC,同时申请一个访问该服务的会话票证。换句话来说,获取访问KDC的许可同获取访问该域中任何其他服务的许可没有什么不同,也需要一个会话密钥,一个鉴别码,和一个票证(在这种情况下,这个票证就是TGT)。

从KDC的角度看,TGT使得它可以在周转时间当中挤出几纳秒来处理票证申请。KDC仅在颁发最初的TGT时查找一个客户的长期密钥一次。在同该客户的所有其他交换时,KDC可以用它自己的长期密钥解密该TGT,从中抽取出登录会话密钥,用它来验证客户的鉴别码。

4、LDAP技术原理

1)LDAP是什么

LDAP是轻量目录访问协议,英文全称是LightweightDirectoryAcceSSProtocol,一般都简称为LDAP。它基于X500标准,却相对比较简单,并且可以根据需要定制。与X500不同,LDAP支持TCP/工P,这对访问工nternet是必须的。简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。LDAP是一个用来发布目录信息到许多不同资源的协议。

LDAP其实是一地址簿,类似于我们所使用诸如NIS(NetworkInformationServiee)、DNS(DomainNameServiee)等网络目录。LoAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。

从另一个意义上LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

就象Sybase、Oraele、Informix或Mierosoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。

2)LDAP的复制技术

LDAP服务器可以用”推“或”拉“的方法复制部分或全部数据,例如:可以把数据“推“到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。

3)LDAP存储的数据

LDAP对于存储这样的信息最为有用:也就是数据需要从不同的地点读取,但是不需要经常更新。例如,

a)公司员工的电话号码簿和组织结构图

b)客户的联系信息

c)计算机管理需要的信息,包括NIS映射、email假名等等

d)软件包的配置信息

e)公用证书和安全密钥

大多数的LDAP服务器都为读密集型的 *** 作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储需要经常改变的数据。

4)LDAP的信息模型

在LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值;LDAP中的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(objeCtclass),每个ObjectClaSS由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。

在LDAP中把对象类、属性类型、语法和匹配规则统称为Schema,在LDAP中有许多系统对象类、属性类型、语法和匹配规则,这些系统Schema在LDAP标准中进行了规定,同时不同的应用领域也定义了自己的Schema,同时用户在应用时,也可以根据需要自定义Schema。这有些类似于XML,除了XML标准中的xML定义外,每个行业都有自己标准的DTD或DOM定义,用户也可以自扩展;也如同XML,在LDAP中也鼓励用户尽量使用标准的Schema,以增强信息的互联互通。

三、系统架构设计

1、体系架构

根据中国网通现有的行政管理结构,有两种系统架构可供选择:全集团统一或者分省独立。这两种结构都各自有自己的优缺点,如果集团统一部署那么将为统一管理和应用系统的统一支持提供方便;如果采用分省独立部署,那么将为各省提供更大的自主性,当各省建立自己的管理手段和应用支持时将更加灵活。

在统筹考虑企业的统一性和各省分公司的管理自主性,经过讨论和筛选,最终形成的系统建设思路为:全企业共享一套身份认证系统架构(Schema)定义,每省分公司独立拥有本省的管理边界。各系统建设完成后,物理上将在全国形成如图4一1所示的系统架构:

2、技术选型和论证

目前在世界上有很多家大型企业都有自己的基于LDAP协议的统一身份认证管理产品。有微软公司的AetiveDireetory,Novell公司的NDS,IBM公司的TivoliDireetoryServer,SUN公司的iPlanetDireetoryServer,Apple公司的opendirectory。其中在国内使用较多的产品为微软公司的ActiveDireetory,Novell公司的NDS,IBM公司的TivoliDireetoryServer。

各家公司设计的身份认证管理产品都符合LDAP的统一标准,主要的差异在于对于信息的存储机制、信息的更新机制、部署结构等具体的实施措施上。其中从大类上可以分为两类:一类是以ActiveDirectory为代表的多主复制结构,另一类为以NDS为代表的单主复制结构。由于IBM公司的DireCtoryServer更多的被用在应用Directory场合,很少使用于企业IT管理内,所以主要的产品对t匕将在ACtiveDireetory与NDS之间进行。

3、设备选型

在确定技术路线和产品后,从节省费用考虑,确定选择IBM的主流底端PC服务器作为系统承载平台。最终选择IBMX336型服务器,主要配置为ZCPU/ZGRAM/73ZHI)。

4、总结

设计企业安全管理系统的层级结构面临着诸多考验,必须结合实际管理模式出发才能够完成。本回答中的架构依照中国网通集团作为参考,具体到公司内需要区别对待。

以上就是关于如何让系统的权限管理系统更安全全部的内容,包括:如何让系统的权限管理系统更安全、如何在应用系统中实现数据权限的控制功能、如何组建和 *** 作LDAP数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9510089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存