数据持久层在统一安全框架中的研究与应用_第1页
数据持久层在统一安全框架中的研究与应用_第2页
数据持久层在统一安全框架中的研究与应用_第3页
数据持久层在统一安全框架中的研究与应用_第4页
数据持久层在统一安全框架中的研究与应用_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据持久层在统一安全框架中的研究与应用文章标题不超过20字王自强,段晋鹏不同作者用逗号分开(西北工业大学软件与微电子学院,陕西西安 710065)单位全名 部门(系)全名,省 市(或直辖市) 邮政编码摘要:根据统一安全框架的特点,本文借鉴了Hibernate持久化技术框架,提出了适用于统一安全框架的安全上下文持久层的设计方案,并有效的提高了安全上下文的高可用性。精练,180字以内,第三人称主动态表述。摘要内容(包括目的、方法、结果和结论四要素) 关键词:统一安全框架;安全上下文;Hibernate;持久层;序列化一般可选38个关键词,用中文表示,分号隔开中图法分类号:TP311中国图书馆分类法

2、(第4版)中查询 文献标识码: AResearch and Application of Persistence Layer in Common Security FrameworkZiqiang,Wang, Jinpeng,Duan(Software and Microelectronics college, Northwest Polytechnical University, Xian Shanxi 710065)Abstract: Based upon the characteristic of Common Security Framework, and referring to t

3、he persistence technique of Hibernate, this paper designs a security context persistence layer for Common Security Framework , and it reinforces the high-availability (HA) requirements of security context.与中文部分对应Keywords: Common Security Framework; Security Context; Hibernate;Persistence Layer; Seri

4、alization与中文关键词对应,字母小写(缩略词除外)1. 引言统一安全框架CSF(Common Security Framework)是针对目前普遍应用于分布式系统安全和用户身份认证的分散登陆和分散管理技术,所存在各子系统缺乏良好通用性,纷繁身份注册等问题所提出的一种统一安全机制。 通常,统一安全框架围绕安全上下文(Security Context)来构建,以访问不同系统资源,实现多任务处理。因此,安全上下文的高可用性和持久化即成为衡量统一安全框架的一个重要标准。现行持久化技术中,Hibernate以其开源性,易操作性(对JDBC的轻量级对象封装),受到java开发人员的喜爱,但由于CS

5、F需要提供多种存储方式(内存、文件系统、数据库),其安全上下文可以跨越多种java虚拟机(JVM)且不存在事务性要求,如若采用Hibernate技术设计安全上下文数据持久层便会存在难以维护、移植以及可修改性和可再用性差等问题。针对该问题,本文借鉴Hibernate的框架结构,提出了一种适用于统一安全框架的安全上下文数据持久层的设计方案。 2. 统一安全框架(CSF)统一安全框架将不同应用系统、资源的认证、授权、访问控制等进行统一的管理控制,将相应的安全模块集成到一个单一安全架构中。该CSF支持单点登陆(SSO)、集中的身份管理、认证、授权、传输中的加密和解密等。图1为CSF客户端的简单示意图,

6、其主要包括客户端接口、安全提供者等几个部分。图1 CSF 的Client 示意图统一安全框架的实现需要以安全上下文为基础。上下文(Context)是指与用户、应用程序及所处的环境之间交互相关的任何信息1,而安全上下文(Security Context)则是安全相关的各种信息。具体实现时,当一个新用户通过客户端提出请求时,SCF通过客户端接口产生一个新的上下文实例,通过安全提供者(CSF Provider)经过操作相应的安全上下文来完成对该用户的认证、授权、加密和解密等,用户则可通过此上下文访问相应的系统或资源。3. 持久化数据持久化,即把数据(如内存中的对象)保存到可永久保存的如数据库、磁盘文

7、件等存储设备中以实现其长期存储。这样便可保证数据在应用程序终止之后,依然被保留以供下一次运行时使用,同时实现不同应用程序之间的数据共享。持久化数据根据其需要存储的内容通常被分为部分持久数据,持久数据以及完全持久数据三类2,本文的上下文数据持久层即针对部分持久数据设计的。4. 统一安全框架的持久层框架结构本文在上述统一安全框架的基础上,参照Hibernate的实现机制3,运用面向对象的方法,研究和设计了统一安全框架的安全上下文数据持久层。图2为统一安全框架的持久层框架结构图,可以看出。该框架分为两层,分别为安全上下文的管理层和安全上下文的存储层。安全上下文的管理层包含三个重要接口,分别为安全上下

8、文接口(Security Context interface)、安全上下文工厂接口(SecContext Factory interface)和配置接口(Configration interface),同时包含了两个重要的安全上下文API: serialization() 和checkConfigrationCompatibility()。 安全上下文存储层提供统一的存储管理方法,同时支持内存存储(Memory Store)、文件系统存储(File-system Store)和JDBC数据库存储(Database Store)的三种存储方式。图2 统一安全框架的持久层框架结构图图题名4.1 序

9、列化(serialization)序列化是持久化的前提。本论文的设计方案沿用了Hibernate 的java序列化机制。将一个实例对象的状态信息写入一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中,在需要时,可根据字节流中的信息重构一个相同的对象。此外,方案中还提供了loadcontext()和storetext()两个方法,用于将安全上下文序列化的同时,从安全数据流读、写context,以实现持久化存储。本设计支持的三种存储方式中,除内存存储之外,其余皆需要将对象进行序列化处理。4.2 安全上下文管理层设计安全上下文管理层主要用于生成、管理、维护安全上下文对

10、象。考虑到Factory模式能为创建对象实例提供良好的策略,该层借鉴Hibernate的设计模式采用Factory的模式设计4。同时根据数据对象依据不同数据源而表现不同的实现,而数据访问对象的接口却统一,因此在设计上采用配置文件来配置不同的实现。具体处理过程为,首先通过Configuration类的buildSecContextFactory方法获得一个SecContextFactory类的实例,把Configuration对象包含的所有配置信息拷贝到SecContextFactory对象的缓存中。再通过SecContextFactory类的newContext方法获得SecContext实例

11、,然后借用该实例来获得授权,访问各种安全资源。安全上下文接口(SecContext interface) 安全上下文接口在安全上下文管理层中主要负责安全上下文的各种操作。借助该接口我们可以获得相应上下文中用户的基本信息、可访问资源以及对某一资源的访问方式、权限等。表1为SecContext接口提供的获取安全上下文数据的方法。表1 SecContext接口的方法方法描述checkAccess查看user 对特定资源是否具有相应的访问方式。checkRole查看user 是否有相应的访问权限。listRoles列举该context 所具有的所有权限。listResources列举该context

12、可能访问的所有资源。getResource获得特定资源的引用,借助该引用可以进行checkAccess()操作。getSubject获得相应的主体对象,该主体对象等价一个user, 可以利用该引用得到user 的name, email address 等信息。getProfile获得 profile 信息。getCipher根据特定的profile 获得 javax.crypto.Cipher 对象listProfiles列举该context 所知道的所有profile 信息。getID获得context 的唯一ID.表题名、三线表格式4.2.2 安全上下文工厂接口(SecContextFac

13、tory interface)安全上下文工厂接口是安全上下文管理层的核心,负责基本的创建管理安全上下文对象。为了保证创建的对象准确无误,该接口增添了两个机制:A)安全上下文导入导出机制:该机制确保本接口为安全上下文的唯一出口、为进行复杂逻辑的上下文持久设计提供了可能,为兼容性检查提供了可能,同时能够防止非法安全上下文的访问。该机制是通过增加loadContext()、storeContext()方法来实现的。其简单的读/写I/O数据流的方式如下:/* Load a context from a stream. * throws SecException if the configuration

14、 hash does not match * or other error occurs */SecContext loadContext(InputStream is) throws SecException;/* Store a context to a stream */void storeContext(SecContext ctx, OutputStream os) throws SecException;B)兼容性确认机制:考虑到统一安全框架需要在不同的系统、资源间建立统一安全访控制机制,同时安全上下文需要在不同的java虚拟机间传输,为了避免不同JVM之间其配置不一致而导致安全上

15、下文不能被新系统自动引导。我们在读、写 安全上下文之外引入了确认机制CheckConfigurationCompatibility()。该机制是通过密码哈稀函数 (cryptographic hash) 实现。当安全上下文写入数据流存储时,根据该系统的属性配置生成cryptographic hash值,将该hash值与安全上下文一起存储,当其它系统再次载入相同的安全上下文时,则用同样的方法生成新系统的hash值,将两值比较,匹配时才可确认该安全上下文。 配置接口 (Configration interface) 为了实现配置文件的生成,每次生成新的安全上下文时,安全上下文管理层都会通过配置接口

16、来生成相应的配置文件。该接口提供两种配置文件,提供者分别为普通配置方式和xml配置方式。5. 安全上下文的存储层设计 安全上下文的存储直接通过安全上下文存储 层来管理。持久层通过该管理模块向上直接提供存储数据,向下对存储方式进行管理。其具体是通过void store(SecStoreKey id, Object data),void update(SecStoreKey id, Object newData),Object load(SecStoreKey id),void delete(SecStoreKey id)四种方法对三种存储方式进行操作,操作中需要提供用于区分存储方式的SecSto

17、reKey和用于指明存储调用对象的Object两个参数,值得注意的是,Object一个序列化的对象,而对内存存储而言,对象则不需要进行序列化处理。除此之外还需要在三种存储方式的配置文件中,设置安全上下文在存储层的生命周期:intemLifetime(表示该实体在内存中的持续时间,一般以秒计算每调用一次安全上下文该值将会被重新设置)和cleanupThreshold(该值定义了清除过期安全上下文的时间,起初设置一个计数器,在每次生成一个新的安全上下文实体时加1, 当其达到一定限值时, 调用相应的清除程序, 将过期的安全上下文删除)两个参数,来进行定期的资源清理。6. 结语: 本文以统一安全框架为

18、基础,借鉴了Hibernate持久化技术的设计思想,提出了安全上下文导出机制和兼容性确认机制,并在此基础上设计了统一安全框架的安全上下文持久层框架。该框架结合了Hinbernate框架的优点,开发简洁,结构清晰,达到了安全上下文高可用性的要求,同时提高了统一安全框架的可重用性,可伸缩性以及可维护性,非常适合于面向对象的设计与开发。该持久层框架已经应用到CSF中,取得良好的效果。参考文献 1BREZILLON P. Focusing on context in human- centered computingC. IEEE Intelligent Systems, 2003,18(3). 24

19、-27. 2AMBLER S W.The design of a robust persistence layer for relationaldatabasesEB/OL.(2005-06-21).2005-10-10.http:/www.A3精通 Hibernate: Java 对象持久化技术详解 /孙卫琴编著M. 北京:电子工业出版 社. 2005.54设计模式:可复用面向对象软件的基础 / Gamma,Richard Helm, Ralph Johnson 等著. 李英军,马晓星,蔡敏等译M. 北京: 机械工业出版社,2005 个人著者采用姓前名后的形式,英文作者姓全部大写,名可缩写,

20、省略缩写点;汉语拼音书写的姓名不得缩写。著者间以“,”隔开,三人以上者,录入前三人姓名后加“等”,英文姓名则加“et al”作者简介: 王自强(1979- ),男,河北邯郸,硕士,研究方向为软件工程: 段晋鹏(1974-),男,西北工业大学软件与微电子学院 ,硕士生导师, 研究方向为软件工程姓名、出生年、性别、职称及主要研究方向。如有基金项目支持,请在中文题目上加“*”上标标注 文献类型和标志代码1. 文献类型2. 标志代码3. 普通图书4. M5. 会议录、文集6. C7. 报纸8. N9. 期刊10. J11. 学位论文12. D13. 报告14. R15. 标准16. S17. 专利18

21、. P19. 电子公告20. OL21. 数据库22. DB23. 电子公告24. EB25. 计算机程序26. CP电子文献载体和标志代码27. 载体类型28. 标志代码29. 磁盘(Disk)30. DK 如CP/DK31. 光盘(CD-ROM)32. CD33. 联机网络(On-line)34. OL 如 M/OL,EB/OL, J/OL示例如下:A 期刊1卢浩,胡华平,刘波.恶意软件分类方法研究J.计算机应用研究,2006,23(9):4-7,12.(卷号黑体)2VARSHNEY U,VETTER R. Mobile commerce: framework, applications

22、and networking supportJ. Mobile Networks and Applications, 2002, 7(3):185-198. (英文期刊名及卷号黑体) 3李晓东,张庆红,叶瑾琳.气候学研究的若干理论问题J.北京大学学报:自然科学版,1999,35(1):101-106. B 专著4昂温 G,等.外国出版史M.陈生铮,译.北京:中国书籍出版社,1988.5ROOD H J. Logic and structured design for computer programmersM.3rd ed.S.l.:Brooks/Cole-Thomson Learning,2

23、001.C 论文集、会议集6YUFIN S A. Geoecology and computer: proceedings of the 3rd International Conference on Advances of Computer Methods in Geotechnical and Geoenvironmental Engineering,Moscow,2000C.Rotterdam: A A balkerma,2000.7辛希孟.信息技术与信息服务国际研讨会论文集:A集C.北京:中国社会科学出版社,1994.D 专著、论文集中析出的文献9钟文发.非线性规划在可燃毒物配置中的应

24、用C/赵玮.运筹学的理论与应用:中国运筹学会第五届大会论文文集.西安:西安电子科技大学出版社,1996:468-471.10FOURNEY M E. Advances in holographic photoelasticityC/American Society of Mechanical Engineers. Applied Mechanics Division. Symposium on Applications of Holography in Mechanics,1971,University of Southern California, Los Angeles. New York:ASME,1971:17-38.E 学位论文、科技报告(用户手册)及技术标准11史龙.无线传感器网络自身定位算法研究D.西安:西北工业大学,2005.12World Health Organization. Factors regulating the immune response:report of WHO Science GroupR.Geneva:WHO,1970.13MC8100 RSIC Microprocessor Users manualR. 2nd ed. Englewood Cliffs: Prentice Hall,1990.14全国文献工作标准化技术委员会第七分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论