家庭网络的网络安全,第1张

家庭通过组建无线网络来访问因特网背后隐藏着网络安全问题。无线网络比有线网络更容易受到入侵,因为被攻击端的电脑与攻击端的电脑并不需要网线设备上的连接,他只要在你无线路由器或中继器的有效范围内,就可以进入你的内部网络,访问的的资源,如果你在内部网络传输的数据并未加密的话,更有可能被人家窥探你的数据隐私。

1. 修改用户名和密码(不使用默认的用户名和密码)

一般的家庭无线网络都是通过通过一个无线路由器或中继器来访问外部网络。通常这些路由器或中继器设备制造商为了便于用户设置这些设备建立起无线网络,都提供了一个管理页面工具。这个页面工具可以用来设置该设备的网络地址以及帐号等信息。为了保证只有设备拥有者才能使用这个管理页面工具,该设备通常也设有登陆界面,只有输入正确的用户名和密码的用户才能进入管理页面。然而在设备出售时,制造商给每一个型号的设备提供的默认用户名和密码都是一样,不幸的是,很多家庭用户购买这些设备回来之后,都不会去修改设备的默认的用户名和密码。这就使得黑客们有机可乘。他们只要通过简单的扫描工具很容易就能找出这些设备的地址并尝试用默认的用户名和密码去登陆管理页面,如果成功则立即取得该路由器/交换机的控制权。

2. 使用加密

所有的无线网络都提供某些形式的加密。之前我跟大家提过,攻击端电脑只要在无线路由器/中继器的有效范围内的话,那么它很大机会访问到该无线网络,一旦它能访问该内部网络时,该网络中所有是传输的数据对他来说都是透明的。如果这些数据都没经过加密的话,黑客就可以通过一些数据包嗅探工具来抓包、分析并窥探到其中的隐私。开启你的无线网络加密,这样即使你在无线网络上传输的数据被截取了也没办法(或者是说没那么容易)被解读。目前,无线网络中已经存在好几种加密技术。通常我们选用能力最强的那种加密技术。此外要注意的是,如果你的网络中同时存在多个无线网络设备的话,这些设备的加密技术应该选取同一个。

3. 修改默认的服务区标识符(SSID)

通常每个无线网络都有一个服务区标识符(SSID),无线客户端需要加入该网络的时候需要有一个相同的SSID,否则将被“拒之门外”。通常路由器/中继器设备制造商都在他们的产品中设了一个默认的相同的SSID。例如linksys设备的SSID通常是“linksys”。如果一个网络,不为其指定一个SSID或者只使用默认SSID的话,那么任何无线客户端都可以进入该网络。无疑这为黑客的入侵网络打开了方便之门。

4. 禁止SSID广播

在无线网络中,各路由设备有个很重要的功能,那就是服务区标识符广播,即SSID广播。最初,这个功能主要是为那些无线网络客户端流动量特别大的商业无线网络而设计的。开启了SSID广播的无线网络,其路由设备会自动向其有效范围内的无线网络客户端广播自己的SSID号,无线网络客户端接收到这个SSID号后,利用这个SSID号才可以使用这个网络。但是,这个功能却存在极大的安全隐患,就好象它自动地为想进入该网络的黑客打开了门户。在商业网络里,由于为了满足经常变动的无线网络接入端,必定要牺牲安全性来开启这项功能,但是作为家庭无线网络来讲,网络成员相对固定,所以没必要开启这项功能。

5. 设置MAC地址过滤

众所周知,基本上每一个网络接点设备都有一个独一无二的标识称之为物理地址或MAC地址,当然无线网络设备也不例外。所有路由器/中继器等路由设备都会跟踪所有经过他们的数据包源MAC地址。通常,许多这类设备都提供对MAC地址的操作,这样我们可以通过建立我们自己的准通过MAC地址列表,来防止非法设备(主机等)接入网络。但是值得一提的是,该方法并不是绝对的有效的,因为我们很容易修改自己电脑网卡的MAC地址,笔者就有一篇文章专门介绍如何修改MAC地址的。

6. 为网络设备分配静态IP

由于DHCP服务越来越容易建立,很多家庭无线网络都使用DHCP服务来为网络中的客户端动态分配IP。这导致了另外一个安全隐患,那就是接入网络的攻击端很容易就通过DHCP服务来得到一个合法的IP。然而在成员很固定的家庭网络中,我们可以通过为网络成员设备分配固定的IP地址,然后再再路由器上设定允许接入设备IP地址列表,从而可以有效地防止非法入侵,保护你的网络。

7. 确定位置,隐藏好你的路由器或中继器

无线网络路由器或中继器等设备,都是通过无线电波的形式传播数据,而且数据传播都有一个有效的范围。当你的设备覆盖范围,远远超出你家的范围之外的话,那么你就需要考虑一下你的网络安全性了,因为这样的话,黑客可能很容易再你家外登陆到你的家庭无线网络。此外,如果你的邻居也使用了无线网络,那么你还需要考虑一下你的路由器或中继器的覆盖范围是否会与邻居的相重叠,如果重叠的话就会引起冲突,影响你的网络传输,一旦发生这种情况,你就需要为你的路由器或中继器设置一个不同于邻居网络的频段(也称Channel)。根据你自己的家庭,选择好合适有效范围的路由器或中继器,并选择好其安放的位置,一般来讲,安置再家庭最中间的位置是最合适的。

家庭网络安全服务

家庭设备安全控制服务

从家庭外部网络访问和控制家庭设备时,控制请求必须通过因特网。但因特网并不是一个安全的区域。因此我们设计了一套针对家庭设施的安全控制服务。这个服务在移动设备和家庭网关之间建立了一个安全信道。

Type字段定义了信息包的类型。序列号(Sequence Number)和端口号(Port)用于防止MITM攻击。Integrity用于检查数据的完整性。操作程序如下:首先,客户端向服务器端发送认证包。服务器收到后,认证用户。如果该用户是注册的用户,服务器返回信息接受;否则拒绝。客户端只有在收到接受信息后才能继续与服务器通信。

经过以上程序,所有家庭网关和PDA之间传输的信息将通过SEED block cipher Algorithm加密。除加密外,所有加密数据附带Integrity值以确保数据的完整性。使用MD5 hash算法计算Integrity值。

基于传输状态的防火墙

基于传输状态的防火墙能够检测并控制网络传输。它可以保护家庭网络免受拒绝服务(Denial of Service(DoS))的攻击,同时还可以拒绝或接收来自特定IP地址和端口号的数据。

传输状态信息收集器以状态单元(State Unit)的形式收集通信信息并使用统计方法对其进行分析。状态单元包括传输模式和相应的统计信息。安全策略管理器通过使用安全状态图表建立安全策略。它能反映所有出现在网络上的通信状态。安全状态图表根据传输的状态转移来相应地改变安全策略。过滤规则发生器将新的安全策略转换成过滤规则。传输控制器使用该规则控制传输。当状态转移信号发生器发送状态转移信息给状态表时,代表传输状态的S1状态将检测自身状况,看是否能接受状态转移信号。这个引擎能有效进行网络安全管理以应对迅速变化的传输状况。管理员可以保存并通过图形界面分析传输信息和安全策略日志。基于传输状态的防火墙根据家庭网关中的IP地址列表来控制数据传输并能拒绝或允许来自用户指定的特定IP地址和端口的信息包。

无线局域网安全服务

无线局域网安全服务[6]具备入侵检测[7]和访问控制的能力。入侵检测系统包括代理搜集和入侵检测服务器。代理搜集监察和收集接入点信息以及通过无线网络传送数据的移动站点。收集到的数据传送给检测引擎并被转换成审计数据的格式。

使用80211管理数据帧来监控无线网络[8]。MAC数据帧收集器负责收集管理帧,然后信息提取器负责提取状态信息和统计信息。状态信息用来表示站点和接入点的状态。统计信息代表每一个信道的吞吐量和误码率,以及不同类型帧的数目和传输信息等。然后审计数据发生器使用审计数据格式重建这些数据。审计数据包括7个字段。它们是MAC地址、当前状态、请求计数、分离计数、非鉴定计数、当前序列号、序列号门限等等。探测引擎通过唯一身份(Organizationally Unique Identifiers(OUI))列表匹配模块和序列号分析模块来检测入侵。

在入侵者攻击无线局域网之前,他们需要伪造MAC地址。IEEE已经分配6 278个前缀给硬件生产商用于指定网卡的MAC地址。通过比较OUIs和分配列表,我们能够检测到通过伪造随机的MAC地址前缀进行入侵的攻击者。IEEE推荐了一种通过使用数据帧排序来容纳碎片地址的方法。序列控制字段中4 bits用于碎片地址,而12 bit用于序列号。序列号字段是一个序列计数器,每产生一个非碎片数据帧,序列计数器就会加一。它从0开始,按4 096取模。除非数据帧是一个大数据包的碎片,否则碎片计数总是0。黑客在破解80211数据帧的时候并没有办法将这个参数设置成任意值。当模块接收到第一个管理数据帧时,它提取序列号并作为临时变量保存。然后模块接收第二帧时,会与第一帧的序列号做比较。如果第二帧的序列号不大于第一帧的序列号,它将认为这是攻击。管理员能监测每个站点和接入点的状态。它能注册信任的接入点并使用MAC地址过滤器来管理那些家庭使用无线局域网资源的站点。

用户管理服务

用户管理服务向用户提供认证和授权。我们使用基于以角色为访问控制模型[9](RBAC)来实现,RBAC模型通过分配角色给访问权限和用户来简化授权管理;不是根据用户来确定访问权限,用户和许可都被赋予一个角色,用户的许可权既是被赋予的角色的许可权。每个家庭网络用户都会分配一个角色,例如用父亲来代表管理员,孩子以及访客。管理员能够向访客或孩子分配控制家庭设施和网络资源的权限。每个希望从外部访问家庭网络的用户必须有ID和口令。管理员通过使用综合管理界面来向每个用户分配使用家庭设施的权限。

电子政务安全是指保护电子政务网络及其服务不受未经授权的修改、破坏或泄漏,防止电子政务系统资源和信息资源受自然和人为有害因素的威胁和危害,电子政务安全就是电子政务的系统安全和信息安全。

由于电子政务的工作内容和工作流程涉及到国家秘密与核心政务,它的安全关系到国家的主权、安全和公众利益,所以电子政务安全的实施和保障是非常重要的。

扩展资料:

一、安全威胁

1、被动攻击,主要包括被动攻击者监视、接收、记录开放的通信信道上的信息传送。

2、主动攻击,指攻击者主动对信息系统所实施的攻击,包括企图避开安全保护、引入恶意代码,及破坏数据和系统的完整性。如破坏数据的完整性、越权访问、冒充合法用户、插入和利用恶意代码、拒绝服务攻击等。

3、邻近攻击,指攻击者试图在地理上尽可能接近被攻击的网络、系统和设备,目的是修改、收集信息,或者破坏系统。

4、分发攻击,是指攻击者在电子政务软件和硬件的开发、生产、运输和安装阶段,恶意修改设计、配置的行为。

二、访问控制技术

访问控制技术是保证网络资源不被非法使用和非法访问重要技术。主要由入网访问控制、网络的权限控制和客户端安全防护策略三部分组成。

1、入网访问控制。通过用户名的识别与验证、用户口令的识别与验证、用户账号的缺省限制检查,控制用户登录服务器并获取网络资源,控制准许用户入网的时间和地点。

2、网络的权限控制。网络权限控制是针对网络非法操作提出的一种安全保护措施。

3、客户端安全防护策略。要切断病毒的传播途径,尽可能地降低感染病毒的风险。

-电子政务安全

1 Yii

Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web 20应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。

2 CodeIgniter

CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。

3 CakePHP

CakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目的弹性。

4 PHPDevShell

PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。

5 Akelos

Akelos PHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:

◆方便的使用Ajax编写views

◆通过控制器管理请求(request)及响应(response)

◆管理国际化的应用

◆使用简单的协议与模型及数据库通信

你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。

6 Symfony

Symfony是一个用于开发PHP5项目的web应用框架。

这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作。

Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。

对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。

Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。

7 Prado

PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。

PRADO的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3x版本。

8 Zend

作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架旨在建造更安全,更可靠的Web 20应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那里吸收精华。

9 ZooP

Zoop PHP框架,意为Zoop面向对象的PHP框架。

这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。

对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。

Zoop建议将display,logic以及数据层(MVC)分开使用。

Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。

Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。

10 QPHP

QPHP,意为快速PHP,它是一个与ASPNET类似的MVC框架。基本上它是这样一个情况:

◆整合了Java和C#的美感

◆除去了在其他PHP框架中使用的Perl形式的意义含糊的语言

◆大量基于OOP的概念

化产品。Novell的SLES(SUSE Linux Enterprise Server) 10现在已经支持Xen虚拟化技术好几个月了。KVM (kernel-based virtual machine for Linux)在最新的Linux内核产品2620OpenVZ中已经有了激动人心的新特性,而且SWSoft和Parallels(一个开源企业,并且现在两家公司已经合并了)也取得了一些很好的进展。

尽管如此红帽还是在虚拟化管理方面领先一步。任何人都有能力或者尝试自己来配置一个Linux上的虚拟机。但只有你真正的知道应该如何去应对出现的问题你才能成功的配置出自己的虚拟机。任何一个有此类经验的系统管理员使用RHEL 5都可以配置很多虚拟机而没有那么多复杂的东西需要考虑。一旦设置完成这些虚拟机则会更加简单易用与易于管理。

这是非常重要的。

我对IDC公司负责调查的副总裁Al Gillen谈过这方面的话题,他告诉我,“争取最大的竞争力和利润就来自于管理,部署和跟踪所有的分层[虚拟]软件的整个周期。”红帽在RHEL5时代已经为这场虚拟化的战斗做好了准备。

另一个被忽略的要素是,RHEL 5一体化的虚拟软件和相应的管理软件是打包在一起的,用户不必为增加的虚拟软件而付费。就像RHEL产品的总经理Scott Crenshaw最近说的一样,“与操作系统整合的虚拟化技术,其好处是本质性的,并且我们能提供一个更加优惠的定价。”

你不但能使用一个虚拟机做以前需要三到四个硬件服务器做的工作而达到资金的节省,更能够因为将虚拟机,虚拟机管理和操作系统捆绑在一个产品包中而省钱。如果我是一个CFO并且正在寻找减少IT成本的方法,那么RHEL5听起来真的对我非常有好处。

2)可靠的存储

简单的工作组或者部门级服务器可以使用单个硬盘或者磁盘阵列的形式存储数据,但是可靠的服务器工作时需要可靠的存储技术。使用Red Hat Cluster Suite(红帽集群套件),Red Hat Global File System(红帽全局文件系统)和Cluster Logical Volume Manager(集群逻辑管理软件),红帽向您提供了管理包括在本地服务器,存储区域网络(SAN)和交错的集群上TB级存储数据的工具。

RHEL5同样带来了对iSCSI盘阵和带有InfiniBand技术远程直接内存存取(RDMA)的支持。对在一个文件系统中有大量存储的客户,RHEL 5的Ext3文件系统现在支持16TB文件系统了,这真是一个很大的数字。

如果你正在使用Veritas软件管理公司或者数据中心的存储,不用担心:你可以继续使用它。赛门铁克公司(Symantec Corp)宣布3月14日他将会为使用RHEL 5的用户提供核心的Veritas Storage Foundation,Veritas集群服务器(Veritas Cluster Server)和Veritas NetBackup解决方案。

赛门特克同样发布了一个用于在Xen虚拟化中结合Storage Foundation和动态多路径技术应用的Beta版程序。如果按计划完成的话,那将会允许管理员集中管理存储虚拟化技术和虚拟机的I/O多路径。

请再次注意“虚拟化”这个词,通过联合虚拟机和虚拟存储,红帽已经创建了一个由技术专家和精算师组成的系统。强大的技术支持和易于控制的成本-谁会不喜欢呢?

3)安全性

Linux 本身就是一个非常安全的操作系统。在RHEL5时代, 红帽已经比早期的SELinux (security-enhanced Linux) 更加容易部署和易于维护。

就像很多Linux系统管理员所知道的那样,把SELinux配置完整是一件很痛苦的事情,这项工作令人厌恶到很多管理员干脆就把它简单的关掉了事。

问题的根源来自于RHEL上应用软件的预设定太少。你必须自己建立你自己的;并且这是一个安全专家才能做好的工作。现在预设的SELinux提供了超过170项应用方案,你大部分的应用都会安全的运行而完全没有任何顾虑。

如果你还是遇到麻烦的话,红帽还提供了SELinux Troubleshooter工具。这个工具可以从使人厌恶的众多麻烦中找出对应的安全应用方案。更好的是它还能告诉你如何去修复它,从而使整个问题安全的运行。

安全测试检验早在您公司需要采购以前就进行了,IBM硬件和RHEL5已经取得EAL (Evaluated Assurance Level) 4+, LSPP (Labeled Security Protection Profile), RBAC (Role Based Access Control Protection Profile), and CAPP (Controlled Access Protection Profile)公共标准安全证明。

4)更好的应用服务器功能

IBM 和红帽已经提供一个新的实时Linux 应用开发和部署平台。这个新平台包括IBM WebSphere Real Time, 一个实时J2SE (Java 2 Platform Standard Edition) Java 虚拟机, 一个运行在红帽企业级Linux5上的实时版本,运行在IBM System X和BladeCenter基于AMD和Intel的服务器上。

因此如果你想将,比如信用卡应用,或者任何Java实时应用移植到Linux上,那么RHEL5将引起你的注意。当然红帽还拥有JBoss,你可以选择其它的方式搭建一个高效的Java应用软件。

实时应用软件在RHEL5中得到了改进这不再只是一个空空的技术资料,让我们看一个案例,RHEL5全面的从RHEL 4时代的PHP 439升级到了PHP 516。就PHP功能性LAMP(Linux, Apache, MySQL, PHP/Perl/Python)应用堆栈的一个关键部分而言,这是一个长足的进步。当您的应用从PHP4转移到PHP5的时候可能会消耗时间,但其表现出的性能增长绝对值得花这个时间。

如你所知这篇文章几乎没有触及红帽对RHEL做出的改变。我坚信我不需要给你一个完全的新特性列表。对我来说,列出来的理由已经足够任何一家公司考虑从老版本的Linux系统升级到RHEL5了。

考虑到RHEL 5虚拟化技术和存储成本节省,它高等级的安全性和改善的应用支持, 你不得不同意RHEL5对于所有的服务器替代都是一个强有力的挑战者。Solaris, Server 2003, AIX不管是谁:RHEL5是第一个21世纪的操作系统。所有的公司从最小的夫妻店到最大的全球性企业都会对认真考虑是否使用RHEL5的。(

基于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模型的权限具有以下优势:权限分配直观、容易理解,便于使用;扩展性好,支持岗位、权限多变的需求;分级权限适合分层的组织结构形式;重用性强。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 家庭网络的网络安全

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情