基于Struts的属性证书系统设计与实现

来源 :计算机时代 | 被引量 : 0次 | 上传用户:josenhu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:基于角色的访问控制,使角色成为信息访问主体,可以有效地解决安全访问问题。文章以OpenPERMIS为开发原型,采用Struts框架技术,设计并实现了RBAC中的属性证书管理系统,功能包括属性证书的创建、编辑、验证、撤销、查询等,为将RBAC系统成功运用到基于Web的应用奠定了基础。
  关键词:Struts框架;属性证书管理;RBAC;访问控制
  
  0 引言
  
  基于角色的访问控制(Role Based Access Control,RBAC)是近年来访问控制领域的研究热点。RBAC通过引入角色概念不但降低访问控制管理的复杂性和开销,而且为系统管理员提供了比较好的实现安全策略的环境。目前比较成功的RBAC产品之一是英国Salford大学开发的PERMIS系统,并且提供了C/S结构的开放源——openPERMIS。
  由于目前很多应用系统是基于Web服务的,因此需要考虑在Web方式下RBAC的实现。其中,属性证书作为RBAC模型的授权信息载体,是RBAC模型中极其重要的一环,因此我们着重研究在Web方式下实现对属性证书的动态管理。
  现代的网络开发框架大都采用模型一视图一控制(MVC)设计模式——使逻辑和描述被分开,由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动。这条途径成为了网络开发事实上的标准。Struts是Apache软件基金下Jakarta项目的一部分,已经是—个较为稳定、成熟的MVC框架,因此本文以OpenPERMIS系统为原型,研究Web方式下的属性证书管理,采用Struts框架进行设计与实现,为RBAC在Web模式下的广泛应用打下基础。
  
  1 需求描述
  
  属性证书是由PMI的属性权威机构签发的包含某持有者的属性集和一些与持有者相关信息的数据结构。由于这些属性集能够用于定义系统中用户的权限,因此属性证书可看作是权限信息的载体。属性权威以数字签名来保证实体与其权力属性相绑定的有效性和合法性。在本文中使用PKCS#12格式的证书,进行数据的封装存储。
  通常RBAC系统主要分为三个功能模块:属性证书管理模块(创建角色证书、创建策略证书、编辑属性证书、验证属性证书、撤销属性证书、查询属性证书六个子模块组成);访问控制模块(由获取用户属性证书、ADF验证用户角色、AEF执行用户请求三个子模块组成);系统管理模块(由用户管理、角色管理、资源管理和操作管理四个子模块组成)。
  属性证书和RBAC模型信息通常会使用LDAP目录服务器作为存储数据库。本系统选择使用密歇根大学开发的OpenLDAP软件包;OpenLDAP可以在Linux上稳定运行、易于配置并且有良好的编程接口。
  可以将属性证书管理模块功能详细分解为以下几个方面:
  创建属性证书用户选择适当的属性证权威源(sOA)后提交证书版本号、序列号、有效期、颁发者ID、属性信息、PKCS#12文件的访问密码、存储DN等必要信息,由系统生成属性证书并保存到LDAP上。
  编辑属性书(策略与角色)用户选择SOA及证书存储DN,系统列出该DN中所有的属性证书,用户从证书列表中选择证书进行编辑。
  验证属性证书用户选择SOA、证书存储DN及PKCS#12文件的访问密码后,系统列出此DN下的所有属性证书,用户从证书列表中选择证书进行验证。验证分为两步,分别对属性证书的签名和有效期进行验证。
  查询属性证书用户选择SOA及证书存储DN,系统列出该DN中所有的属性证书,用户从证书列表中选择证书查看其内容。
  撤销属性证书对于一些过期或签名无效的证书,系统提供撤销功能。用户选择SOA、证书存储DN、PKCS#12文件访问密码,系统列出该DN下所有的属性证书,用户选择属性证书进行撤销,撤销后LDAP将不再保存该证书信息。
  
  2 属性证书类图与APl包
  
  2.1属性证书类图
  在OpenPERMIS原型系统中属性证书遵循X.509协议规定的ASN.1编码证书格式,因此证书的每个字段类都继承ASNlType接口。
  根据RFC3281中对属性证书的ASN.1语法定义,属性证书主要由三部分组成:属性证书主体信息、签名算法标识符和签名值。其中主体信息又包括证书版本号、持有者、颁发者、有效期、属性信息、扩展等信息,而持有者信息又分baseCertificateID结构模式、entityName结构模式与OhjectDigestlnfo结构模式,颁发者类型根据版本不同又可分为V1Form与V2Form。经过源码分析,我们得到了图1表示的各字段之间的类图关系。
  


  图1 属性证书的类图关系
  
  2.2底层API包
  OpenPERMIS开发包内提供了底层API供我们引用(见表1),此外我们还增加了一些自定义的包以便系统调用。其中OpenPERMIS提供了对属性证书进行操作的工具,IAIK提供了证书编码及签名算法的工具。
  表1 OpenPERMS底层API包
  


  出于Web开发的需要,我们在系统中自定义了一些包以便自身的调用(见表2)。
  表2 自定义包
  


  
  3 基于Struts框架的属性证书管理系统设计与实现
  
  Struts framework是MVC模式的体现:从视图角度,主要可由JSP建立,struts自身包含了一组可扩展的自定义标签库,可以简化创建用户界面的过程;从模型角度,主要是表示一个系统的状态,在Struts中,系统的状态主要由ActiomFormBean体现,这些状态是非持久性的;从控制器角度主要是AcfionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成。在这部分我们结合struts框架给出了属性证书管理系统中的主要模块的设计与实现代码。
  
  3.1属性证书的创建
  属性证书中角色证书存储用户角色信息,策略证书存储所有资源的访问控制规则,是整个访问控制模块的决策依据。我们设计实现的创建证书流程,主要分以下几步:
  (1)选择适当SOA,由SOA确定PKCS#12文件。PKCS#12中包含用于签名的私钥。
  (2)从参数中获取证书的相关信息来设置版本号、序列号、有效期、颁发者ID和扩展信息。
  (3)设置属性信息:从参数中获取属性信息,包括一个或多个属性的Vector对象。属性由属性类型和属性值组成,其中属性值也是包括一个以上值的Vector对象。
  (4)从参数中获取PKCS#12文件的文件名和访问密码,从PKCS#12文件中获取颁发者信.息、签名算法和私钥。
  (5)根据前面获取的基本信息建立属性证书的主体字段AttributeCertificatelnfo,并对其进行DER编码。   (6)根据第4步获得的签名算法和私钥对DER编码后的attributeCertificatelnfo进行签名。
  (7)根据未经过DER编码的主体字段AttributeCertificatelnfo、签名算法和主体字段AttributeCertificatelnfo的签名值建立属性证书AC结构AttributeCertificate,并对其进行DER编码。
  (8)将证书保存到LDAP相应的DN下。
  根据上述流程的描述,我们从MVC角度给出创建角色证书子模块的描述:
  (1)视图角度,见表3。
  


  
  3.2属性证书的编辑
  编辑属性证书的过程与创建属性证书的过程有点类似,不同的是编辑属性证书模块证书的各个字段都已赋值,用户只需修改相应字段即可。在保存的过程中,创建属性证书模块向LDAP的相应DN下增加属性证书,而编辑属性证书模块则替换原有的属性证书。
  编辑属性证书流程主要分以下几步:
  (1)选择合适的SOA,一个SOA对应一个PKCS#12文件,通过PKCS#12文件判断此证书是否由该SOA签发。
  (2)选择属性证书所在的DN,获得证书列表。
  (3)从证书列表中选取要编辑的属性证书。
  (4)系统显示所选证书内容,用户进行修改操作。
  (5)从证书签发者的PKCS#12文件中获取签发者信息、签名算法和私钥。
  (6)根据前面获取的基本信息建立属性证书的主体字段AttributeCertificatelnfo,并对其进行DER编码。
  (7)根据第5步获得的签名算法和签发者的私钥对DER编码后的AttributeCertificatelnfo进行签名。
  (8)根据主体字段AttributeCertificatelnfo、签名算法signatureAlgorithm和主体字段AttributeCertificatelnfo的签名值型signatureValue建立属性证书AC结构AttributeCertificate,并对其进行DER编码。
  (9)替换原有证书。
  
  3.3属性证书的验证
  属性证书的验证可分为两步,第一步为验证属性证书的签名,即验证属性证书的合法性。第二步为验证属性证书的有效期。其实现的步骤有:
  (1)选择合适的SOA,一个SOA对应一个PKCS#12文件,即由SOA决定用于验证的公钥。
  (2)通过PKCS#12访问密码访问PKCS#12文件。从PKCS#12证书包内取得密钥对。
  (3)密钥对进行自我验证以判断密钥是否匹配。
  (4)从密钥对里取得公钥证书验证证书签名有效性。
  (5)从证书主体字段中获得有效期。
  (6)将有效期与当前日期进行比较以判断证书是否过期。
  (7)返回验证结果。
  
  3.4属性证书的撤销
  证书的撤销需要提供PKCS#12及访问密码,通过验证属性证书来判断此证书是否为该SOA签发。如果验证没有通过则拒绝撤销操作。证书的撤销是一个替换的过程,而不是简单的删除工作,简单的删除操作会把相应DN下所有的证书都删除掉。所以我们的解决方案是:从LDAP相应的DN下获得证书列表,取得要撤销的证书,用一个Vector数据结构保存剩余的属性证书,再用此Vector替换原DN下所有的属性证书。
  综合以上分析给出属性证书撤销的流程,主要分以下几步。
  (1)选择合适的SOA,一个SOA对应一个PKCS#12文件,通过PKCS#12文件判断此证书是否由该SOA签发。
  (2)选择属性证书所在的DN,获得证书列表。
  (3)从证书列表中选取要撤销的证书。
  (4)用Vector构造剩余证书列表。
  (5)用Vector中证书列表替换DN下证书列表。
  
  4 结束语
  
  本文在分析OpenPERMIS开源代码基础上,基于Struts框架,进行了属性证书管理系统的设计与实现。文中主要描述了属性证书的类图和相关的API包提供基础的支持,详细介绍了属性证书的创建,编辑,验证和撤消模块的处理流程和代码实现。本文所描述的是基于RBAC信息系统的Web实现的属性证书管理模块,能够为用户的角色管理提供方便,为RBAC在Web系统上的应用提供了关键支持,已经投入使用。
  本文提出并实现了基于struts框架的属性证书系统,可以进行基于Web方式的属性证书管理,有利于RBAC在Web上的部署与实现。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:阐述了ARP欺骗技术的基本原理,对ARP欺骗造成局域网无法正常通讯的实例进行分析,提出了针对ARP欺骗的多种防范办法。实际应用效果较好。  关键词:ARP;局域网;MAC地址;IP地址;TCP/IP    0 引言    在大型局域网的维护工作中,最近常常发现网络时断时续的现象,而且断网的计算机也不固定。经过多方面的监控和测试,最终确定是时下比较流行的ARP欺骗病毒导致断网。由于这个病毒相当
期刊
摘 要:在课件的开发过程中,如何对学习内容进行导航,是一个必不可少的设计环节。Budmenu.u32函数是基于Windows API开发的Authorware扩展函数,通常用于制作菜单。文章结合作者多年的课件开发实践,从全新的角度介绍了如何利用该函数设计和制作导航菜单,并给出了具体实例。借鉴文章给出的方法,可以比较容易地实现对学习内容的导航,从而提高课件的开发效率和教学效果。  关键词:Auth
期刊
摘要:CORBA的通知服务相对于传统的事件服务,增加了一系列新的特性,对海量教育资源信息的订阅发布提供了更大的灵活性和通用性。文章根据通知服务原理,构建了一个资源订阅系统模型,用户可以订阅感兴趣的信息,事件通知服务负责发布事件,同时将事件分发给感兴趣的订阅者。模型采用事件过滤机制、分组共享、队列优先级设计,提高了事件通知的可靠性。  关键词:事件通知服务;发布/订阅;事件过滤;事件通道    0 
期刊
摘要:为提高网络浏览器缓存系统性能,降低用户等待时间,提出了一种基于性能约束的P2P Web Cache模型。理论分析和模拟测试表明,该模型能够减少连接时间和传输时间。  关键词:缓存系统;性能约束;P2P Web Cache;可升级;存取时间    0 引言    随着网络存取数量的飞速增长,如何提高网络的服务质量已成为研究的热点。传统的基于服务器代理的技术如Squid和Netcache,虽然易
期刊
摘 要:在以Car构件为基础的嵌入式研究领域中,构建面向Web服务的Car构件运行容器一直是研究的热点。文章阐述了面向Web服务的Car构件运行容器的特点,介绍了构件技术以及“和欣”操作系统,讨论了构件化的Web Container的分层设计理念,阐述了在“和欣”操作系统上实现的基于构件的Car Faces系统。该系统充分发挥了构件技术的优势,并具有简单、高效可配置等特点,很好地满足了以Car构件
期刊
摘要:提出一种新主机加入移动自组网的地址自配置机制。针对OLSR路由协议网络负荷较重的情况,特别考虑了路由协议的原理特点,设计了一种基于代理邻居的简单地址自配置方法;针对代理邻居的发现、局域地址的分配、全局地址的检测与分配提出了完整的解决方案,设计了相关分组格式,并保持了与OLSR通用数据格式的一致性。该方法算法简单,对网络负荷影响极小。  关键词:OLSR;地址自配置;邻居代理;地址池    0
期刊
摘要:利用Windows Vista的增强功能并结合PNRP(对等名称解析协议)、PNM(People Near Me)和WCF(WindowsCommunication Foundation)中引进的PeerChannel功能,解决了传统的P2P应用程序开发中的常见问题。  关键词:对等名称解析协议;PNM;WCF;PeerChannel    0引言    从传统意义来说,P2P应用程序开发所
期刊
摘 要:中间人攻击是网络攻击的重要手段之一,而利用ARP欺骗是比较容易实施此类攻击的。文章对基于ARP欺骗的中间人攻击进行了分析,根据ARP本身的缺陷,即完全相信所有消息,对消息不加以任何认证的特点,提出了一种利用非对称加密来抵御中间人攻击的方法,并重点描述了消息认证的过程和密钥的生成及管理。  关键词:ARP协议;ARP欺骗;中间人攻击;非对称加密    0 引言    中间人攻击m在网络安全领
期刊
摘要:CMMI为软件产品及软件过程提供了一套定量的表示和分析,即软件度量的模型。有效的软件度量过程能促进组织的软件过程能力的改进。文章结合国内应用特点,介绍了基于CMMI的多层架构软件产品的度量模型,并着重讨论了基于CMMI的软件过程度量,总结了软件过程度量的工作方法和思路,提出了解决国内软件度量的一般性方法,为软件过程改进提供了可行的方法和实践。  关键词:CMMI;软件度量;软件过程能力;度量
期刊
摘要:伴随全球经济一体化进程的推进,信息技术在物流领域的应用和发展,传统的物流行业正逐步向电子物流转变。文章在分析物流企业业务流程的基础上,着重介绍了第三方物流信息系统的总体设计和关键技术,并提供了实现企业之间数据交换接口的具体实例。该系统能为企业带来竞争优势和经济效益,促进我国第三方物流的发展。  关键词:Web Service;物流信息系统;接口;数据交换    0 引言    全球的经济正朝
期刊