(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf_第1页
(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf_第2页
(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf_第3页
(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf_第4页
(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)安全中间件中通用安全管理引擎的设计与实现.pdf.pdf 免费下载

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

文档简介

硕士论文安全中间件中通用安全管理引擎的设计与实现 摘要 网络的发展加大了安全类软件的需求,而与之相悖的是安全类软件的高难度、高风 险,周期长的特点。为解决这一问题,对安全中间件软件的研究逐渐发展了起来。在此 背景下,本文根据教研室课题方向进行了相关的研究工作,主要有以下几内容: 首先文本设计了符合本课题项目背景的安全中间件总体架构,并在其中划分出用于 处理通用事务的模块:通用安全管理引擎。 而后,文本深入研究了通用安全管理引擎的架构与业务流程,并将其细分为主线程 池管理模块、网络负载均衡模块和日志模块等八个子模块,并分别对每个子模块的功能、 组成结构和工作流程进行了详细的设计工作,而后综合运用共享内存、线程池,i o c p 通信等技术,分别予以实现。其中,网络负载均衡子模块的实现部分的是本文的重要创 新点,与其他论文中仅限于理论或调度算法的探讨不同,本文不但对处理流程的做了详 细设计和代码实现,而且通过测试证明其实用性和高效性。此外,本文从软件的服务性 角度对日志模块的需求做了详细设计,极大的提高了软件的可维护性,也具有一定创新 性。 此外,本文还对软件性能做了两部分优化工作:通过对用户请求到来情况的模拟, 为主线程池管理模块设计了线程池增容算法,使请求处理速度了有较大的提高;通过对 服务器的c p u 和内存使用率进行评分的方法,优化了网络负载均衡模块中的请求调度 功能。 文章的最后介绍了通过编写测试程序对软件功能与性能进行验证的方法,并根据对 测试结果的分析,证明了本软件整体的实用性和高效性。 关键词:安全中间件,通用安全管理引擎,网络负载均衡,共享队列,主线程池,性 能测试 a b s 仃a c t安全中间件中通用安全管理引擎的设计与实现 a b s t r a c t t h ef a s td e v e l o p m e n to ft h en e t w o r kc a l l sf o rs o f t w a r et oe n s u r ei t ss a f e t y , y e tt h e d e v e l o p m e n to f s o f t w a r eo ft h i sk i n di sr a t h e rd i f f i c u l t , r i s k ya n dt i m e c o n s u m i n g a sar e s u l t , r e s e a r c ho nt h es e c u r i t yr n i d d l e w a r eh a sb e e nc o n d u c t e dt os o l v et h i sp r o b l e m t h ep r e s e n t s t u d yi n v e s t i g a t e dt h ed e v e l o p m e n to ft h es e c u r i t ym i d d l e w a r ea n dd e s i g n e dt h ec o m m o n s e c u r i t ym a n a g e m e n te n g i n e t h eb a s i sf o rt h es e c u r i t ym i d d l e w a r e t h i sp a p e rf i r s ti n t r o d u c e st h eg e n e r a ls t n l c 旬】r eo fs e c u r i t ym i d d l e w a r eu n d e rt h e b a c k g r o u n do ft h ep r e s e n ts t u d ya n dt h em o d u l ew h i c hu s e dt op r o c e s st h eg e n e r a lt a s k : c o m m o n s e c u r i t ym a n a g e m e n te n g i n e t h i ss t u d yf u r t h e rd e s i g n e dt h es t r u c t u r ea n do p e r a t i o np r o c e s so ft h ec o m m o ns e c u r i t y m a n a g e m e n te n g i n e ,a n dd i v i d e di t i n t oe i g h ts u b - m o d u l e s ,i e ,t h es h a r ea l i g n m e n t m a n a g e m e n tm o d u l e ,t h em a i nt h r e a dp o o lm a n a g e m e n tm o d u l e ,t h en e t w o r kl o a db a l a n c i n g m o d u l e ,e t c t h e s es u b - m o d u l e sa l ea l lr e a l i z e di nt h er e s e a r e ew i t ht h ea p p l i c a t i o no ft h e t e c h n i q u e sl i k es h a r em e m o r y , t h r e a dp o o l ,i o c pc o m m u n i c a t i o n s ,t h ef u n c t i o no fe a c h s u b - m o d u l ew a sw e l lr e a l i z e d a n dt h er e a l i z a t i o no ft h en e t w o r kl o a db a l a n c i n gw a st h e i n n o v a t i o no ft h i ss t u d y d i f f e r e n tw i 也o t h e rp a p e r sw h i c hj u s ts t u d yt h et h e o r yo ra r i t h m e t i c , t h i ss t u d yn o to n l ys t u d i e da n dr e a l i z e dt h ep r o c e s s ,b u ta l s op r o v e dt h ep r a c t i c a l i t ya n dt h e e f f i c i e n c y 晰t l lm a n yt e s t i n g f u t h e r m o r e ,t h i ss t u d yd e s i g n e dt h el o gm o d u l e 晰t l lt h e c o n s i d e r a t i o no fas e r v i c e ,t h a t sa l s oi n n o v a t i v ea n de n h a n c e dt h ea b i l i t yo ft h em a i n t e n a n c e t h i ss t u d ya l s od e s i g n e dt h er e s o u r c em a n a g e m e n ta l g o r i t h mf o rt h et h r e a dp o o lm o d u l e b ys i m u l a t i n gt h ea r r i v a lo fu s e r s r e q u e s t t h ej u d g e m e n tm e c h a n i s mo fr e d i r e c tr e q u e s tw a s s p e c i f i c a l l yd e s i g n e df o rt h en e t w o r kl o a db a l a n c i n gm o d u l eb ye v a l u a t i n gt h eu s eo fc p u a n de m sm e m o r y t h ed e s i g no ft h e s et w oa l g o r i t h mg r e a t l ye n h a n c e dt h ee f f i c i e n c yo ft h e s e r v i c e t h el a s ts e c t i o no ft h i sp a p e ri n t r o d u c e st h ew a yu s e dt ov e r i f yt h ef u n e t i o u sa n dt h e e f f i c i e n c yo ft h es o f h v a r eb yw r i t i n gt h et e s t i n gp r o g r a m ,a n dw i t ht h ea n a l y s i so f t h et e s t i n g r e s u l t ,p r o v e di t sp r a c t i c a l i t ya n dt h ee f f i c i e n c y k e yw o r d :s e c u r i t ym i d d l e w a r e ,c o m m o ns e c u r i t ym a n a g e m e n te n g i n e ,n e t w o r kl o a d b a l a n c i n g ,s h a r eq u e u e ,m a i nt h r e a dp o o l ,p e r f o r m a n c et e s t 声明尸明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本学 位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或公布 过的研究成果,也不包含我为获得任何教育机构的学位或学历而使用过的 材料。与我一同工作的同事对本学位论文做出的贡献均已在论文中作了明 确的说明。 研究生签名:毒立兰型纠,年占月夕日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或上 网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并授权 其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密论文, 按保密的有关规定和程序处理。 研究生签名:雌 2 咐年厶月c 7 日 硕士论文安全中间件中通用安全管理引擎的设计与实现 1 绪论 1 1 研究背景与课题来源 如今,网络的发展已经渗透到了各行各业,包括许多诸如电子商务、证券交易等对 安全性十分敏感的行业,这些行业除了对网络有最基本的需求外,还对其传输的安全性 有极为严格的要求。这就带来了对网络安全软、硬件建设的巨大需求。然而,随着网络 拓扑结构的日益复杂和黑客技术( 或是由新技术产生的新安全漏洞) 的发展,许多已有的 安全软件逐渐难以适应。而另一方面,网络安全的知识自成体系,较难掌握,且相关软 件的责任重大,因此开发、测试时间较长,开发一个新的安全软件投资大且风险高。与 此同时,我们知道,中间件技术有着缩短应用开发周期,节约应用开发成本,降低应用 开发失败率,简化应用集成等优点。于是两者相结合,就产生了对“安全中间件”的需求。 本课题正是教研室在此背景下承接的某部委“十一五”重点课题“x 安全与防护 下的子课题,进行安全中间件方向的研究工作。 1 2 国内外研究现状 安全中间件是近几年才发展起来的中间件产品,正处于不断的研究开发之中,商业 价值还没有完全体现。但随着电子商务市场的拓展,对各种加密和认证技术的需求将成 几何数量级增长,将会极大的推动安全中间件市场的发展。 在外国,安全中间件技术已相对成熟,产品较多。其中值得一提的是i n t e l 的体系 结构实验室于1 9 9 6 年发布的公共数据安全结构c o m m o n d a t a s e c u r i t y a r c h i t e c t u r e ( c d s a ) ,它试图提供了一组分层的、跨平台的、互易操作的和可扩充的安全服务,用 以帮助业界提供一种技术和厂商独立的安全性解决方法。c d s a 有着精巧的设计:充分 考虑了系统的跨平台性和可扩展性;定义了一组通用的a p i ,兼容以往的各种安全标准 和规范;将安全应用程序的功能抽象为密码服务、证书服务、数据存储服务、信任策略 服务,并在最初版本就予以支持 5 1 。然而c d s a 也有着严重的问题:为了兼容其他的安 全系统,c d s a 设计了复杂的接口,再加上其本身的运行开销,对系统资源耗费会非常 大;c d s a 利用证书机制确定各模块的合法性,因此一旦开发者对模块做出了修改就需 要重新认证以防止黑客的恶意篡改,拉长了开发时间。且一旦黑客攻破了认证模块,就 可以轻易的掌握其他大部分组件,进行欺诈行为【l o j 。这些都阻碍了c d s a 的进一步发展。 除此之外,在公钥基础设施( p ) 的研究方面,e n t r u s t 公司的e n m l q t p k i 系列产 品方案已经成为事实上的工业标准,对安全体系结构作出了重大贡献。r s a 公司则提出 了p k c s # 11 规范和相应的一整套框架,虽然还不能说是真正的安全中间件,但在屏蔽 绪论安全中间件中通用安全管理引擎的设计与实现 各种安全操作差异,提供统一接口,以及实现安全服务提供者资源共享等方面,已经做 出一定的成果。 在国内,安全中间件技术研究起步较晚。在初期,研究大多集中于基础算法,而涉及 商业实现的较少。现在随着需求增大,逐渐有了商业化研究与相关产品推出,目前代表 性的产品主要有:东方通科技的t o n g s e c 、清华紫光顺风信息安全有限公司的u n i s m m w 安全中间件,以及上海华腾软件系统有限公司的安全服务管理中间件t o p s e c u r e 1 l 】。另 外电子科技大学所提出的n e w s e c 体系结构也具有良好的科研与实用价值。 1 3 论文内容与组织结构 本文主要分为理论基础介绍、架构设计、详细设计、仿真测试等四个部分: 首先在理论基础部分介绍有关了信息安全、中间件、安全中间件和引擎的相关概念 与前沿技术。 而后在此基础上结合课题背景设计了安全中间件的总体架构,并划分了其中用于处 理通用事务的通用安全管理引擎。在随后的章节中,本文详细阐述了构成通用安全管理 引擎的各个子模块工作流程与实现方法。 最后介绍了通过仿真和测试程序进行功能和性能测试的方法与结果,并给出了结 论。 本文的组织结构如下,这里仅做简要的概述,详细内容请看正文: 第一章,绪论:介绍了本文的研究背景与课题来源,以及目前国内外研究的现 状。 第二章,理论基础:介绍了与安全中间件相关的理论知识和前沿技术。 第三章,架构设计:介绍了安全中间件和通用安全管理引擎的架构设计,及其 子模块的概要介绍。 第四章,详细设计:介绍了通用安全管理引擎的各个子模块的结构组成和工作 流程。 第五章,系统功能仿真与性能测试:介绍了通过仿真和测试程序进行功能与性 能测试的方法与结果。 文章最后对前文内容做出总结,并对下一步工作的进行了展望。 2 硕士论文安全中间件中通用安全管理引擎的设计与实现 2 相关概念与理论介绍 2 1 信息安全介绍 2 1 1 信息安全的概念 随着计算机等数字存储设备的出现,以及以i n t e m e t 为代表的网络信息共享技术的 发展,信息安全的概念和对信息安全的需求都发生了重大的变化。 由于数字化存储技术的广泛应用,大量有价值的文件被存储在诸如计算机等存储设 备中,为了防止他人对这些信息的非法获取和篡改,产生了单机防火墙、反间谍、防病 毒软、文件加密等技术;同样,由于网络应用的发展,这些机密的信息需要通过公共网 络传输,由此产生了网关防火墙、邮件过滤、s e t 、v p n 等技术。这些所有为保护用户 信息不受侵犯的技术统称为信息安全技术,相关的软件称成为信息安全类软件【4 】。 2 1 2 信息安全的内容 信息安全的内容是相当复杂的,所有的协议和操作需要从理论上严格证明其安全 性,存在于普通软件的一些缺陷在安全软件看来很可能就是导致其完全失败的因素。这 正如b r u c es c h n e i e r 所说:安全问题就像一条链子,要保证每一个环节的安全性,才能 使得整个链子都具有安全性。衡量某个环节是否安全的标准通常有以下几点: 1 机密性:指需要受保护的信息不被主动式的非法查看、复制、删除等。从物理方法 上可以使用隔绝网络,锁入保险箱等方法。但对于网络中传输的信息,则需要从密 码学的角度考虑。机密性通常体现在对信息内容的保护,对内容加密是一个重要的 手段。所谓加密就是指利用数学的方法重组源数据,使得除合法接收者外的其他人 都无法读懂或者改变数据内容。对于存储在计算机等设备中的普通文件,选择适当 的加密方法和密钥长度基本就足够了。网络中传输的信息,则复杂的多,需要综合 利用各种加密手段和严密的通信协议,如s s l 协议、s e t 协议等。此外,对于信息 量的机密性也是值得注意的,信息量指的是通信双方的通信数据长度、通信频度、 通信总时间等。利用这些值不但可以进行一些诸如数据结构上的分析,还可以进行 破坏性的攻击,如利用过量加大通信总量进行d o s 拒绝服务攻击,利用过长的数据 长度进行缓冲区溢出等。据统计,黑客对软件的绝大部分攻击破解都是利用缓冲区 溢出攻击的方法。 2 完整性:指信息不被主动式的非法修改、截断、替换等。对于计算机等设备中存储 的文件,同样用经典的密码学原理进行加密即可,只要非法用户无法读懂源数据的 内容,就无法随意篡改和伪造了;对于网络中传输的数据信息,一方面同样要保证 其内容的正确性,另一方面要保证数据包没有被恶意的插入、截取、重排序、重复 3 2 相关概念与理论介绍安全中间件中通用安全管理引擎的设计与实现 发送、延迟,以及正常的超时删除等,尤其是面向对象的连接尤为需要注意。 3 鉴另l j :鉴别用于确认访问者的身份,或是消息的来源,以阻挡非法的用户,或虚假 的消息。最常见且最为广泛运用的手段是通过口令和密码的组合,形式很多,如文 字输入或是通过指纹识别、硬件锁、i c 卡等。这些足以保护计算机中的信息,但对 于网络中传输的信息则复杂的多,需要判定网络中对方实体是否来自合法的i p 地 址,是否由合法的程序所产生等,此外还可能会有双向认证或是级联认证的需要, 以及防止第三方发送虚假消息等各种情况。最常用的手段是利用证书进行鉴别。 4 防抵赖性:用于防止消息的发送者或文件、系统的访问者否认其行为。无论对于计 算机中存储的文件还是网络中传输的信息,都可以用数字签名的方法对文件、消息 进行签名,这样就能防止发生争议时的抵赖行为。 2 2 中间件介绍 2 2 1 中间件的产生背景 计算机技术的迅速发展带来了分布异构的需求,从硬件方面来说,各种硬件平台层 出不穷,处理速度和能力不断提高。但同时上层的接口也是各有不同,如果应用软件需 要在各种平台间进行移植,是很不方便的;从软件方面来说,随着客户对软件业务需求 不断增多增强,以及各种先进技术不断涌现( 如i n t e r a c t 和万维网) ,极大的增加了计算 机应用的深度与广度,软件规模越来越大,复杂性越来越高,再加上软件人员的快速流 动性和软件行业的激烈竞争,都使得企业对提高软件质量和软件复用性,以及尽可能缩 短软件开发周期有了更高的要求。软、硬件两方面的因素都促使人们对软件开发进行了 更进一步的探索与研究,从而产生了中间件的概念。 2 2 2 中间件技术概念 中间件( m i d d l e w a r e ) 的概念,是为了解决分布异构的问题而提出的,如图2 2 2 1 所示,它通常位于平台( 硬件或是操作系统等) 和上层应用之间,用于屏蔽各种平台的 差异性,为上层提供统一接口。 关于中间件的定义有很多,其中被普遍接受的是美国互联网络数据中心( i d c ) 的 表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同 的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络 通信。 由此定义可见,中间件是一种定位于系统或是服务级别的程序,因此在具体设计和 开发中有许多不同于普通应用软件的地方需要注意,在后文中会多次提及。 4 硕士论文安全中间件中通用安全管理引擎的设计与实现 图2 2 2 1 中间件概念示意图 2 2 3 中间件的特点 由于中间件软件定义的特殊性,此类软件有着如下的一些特点: 抽象数据,建立通用引擎,以满足大量不同应用的需要。具体来说,中间件应设计 一个公用的通信机制与通信格式,并以通用的接口封装向用户提供,屏蔽与硬件或 操作系统的交互。同时较好的控制数据传输过程中的负载均衡、加密和并发访问冲 突等问题。 保证用户程序与中间件服务间传输的可靠性。中间件服务必须保证对传输过程中出 现的问题做出合适的处理,如提供接管和恢复事务等,保证用户业务数据的完整性。 向用户提供效率保证。这是由中间件服务的性质所要求的,中间件的工作流程是: 当用户需要中间件服务提供的某个服务时,会向其提出请求。中间件服务检测到请 求后,交由内部处理系统( 独立完成或交由网络负载均衡服务器协调完成) ,并将请 求的处理结果传送回客户的应用程序。可见,中间件服务在方便用户软件开发流程 的同时是以请求的传输时间为代价的,因此中间件服务应该尽可能缩短传输时间, 提高服务效率。 2 2 4 使用中间件的优点 在传统的软件开发模式中,应用软件将直接处理与操作系统、数据库、网络通信之 间的操作。而实际开发中,这些底层而细节的操作都是非常复杂和难以掌握的,软件开 发人员不得不在学习业务的同时,去专注于这些底层技术的研究,牵扯大量的精力去做 各种的兼容性处理。相关的测试流程也同样显得复杂。而实际上这些技术已经早有实现 与应用,这些重复性的工作耗费了公司大量的人力和财力。 以上这些问题正是中间件系统所力求解决的。使用中间件系统来降低开发成本,提 高开发效率是现在软件开发的大趋势,其优势主要体现在以下几点: 减少软件开发工作量:使用中间件系统可复用中间件所提供的功能模块,减少开发 5 2 相关概念与理论介绍 安全中间件中通用安全管理引擎的设计与实现 任务工作量。在一份由世界著名的咨询机构t h es t a n d i s hg r o u p 所作的报告中,经过 对1 0 0 个关键应用系统中的业务逻辑程序、应用逻辑程序和基础程序所占的比例的 分析,得出结论:前两者仅占总程序量的3 0 ,而基础程序则占了7 0 ,因此如果 使用传统意义上的中间件做为开发基础,就可以节省2 5 - - - 6 0 的应用开发费用。如 果以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则 应用开发费用可节省8 0 。 减少资本投入:没有使用中间件的应用系统,从初期的资金投入到后期的运行费用 都要比同规模的使用中间件的应用系统多一倍。 缩短开发周期:基础软件的开发不但占了应用软件中的最大比例,而且其开发的难 度和耗费的时间也非其他业务模块所能比拟。若使用标准商业中间件则可缩短开发 周期5 0 - - 7 5 。 提高软件开发质量:使用优秀商业中间件也就为项目尽可能的复用了优秀的设计思 想和代码实现,商业中间件所保证的清晰的逻辑流程和模块接口极大的减少了模块 的增加、修改所带来的危险注入。减少了项目失败的风险。 减轻系统维护负担:将业务逻辑软件架设在优秀安全中间件基础上,虽然在一定程 度上缺少了灵活性,但也同时将基础软件的维护交予中间件提供商,由提供商保证 基础软件的稳定性。 2 3 安全中间件介绍 2 3 1 安全中间件概念 安全中间件是为用户提供信息安全服务的一种中间件软件。它屏蔽了安全操作的复 杂性,对外提供统一封装接口,减少信息安全类软件的开发难度与周期长度。 安全中间件通常以p k i ( p u b l i ck e yi n f r a s t r u c t u r e ,公共密钥基础设施) 为核心、建 立在一系列相关国际安全标准( x 5 0 9 ) 之上的开放式应用开发平台。对p k i 基本功能 如信息摘要、单向散列、数字签名、签名验证、证书认证、对称加密与解密、非对称加 密与解密,以及密钥生成、存储和销毁等进行封装和一定的扩充,形成一套更加上层、 更易于非安全专业开发人员使用的a p i ,并通过后台服务响应开发人员对a p i 接口的调 用。安全中间件应该可以跨平台操作,支持各种主流操作系统,屏蔽操作系统的复杂性, 将各种应用程序无缝的融合在一起。最终能使设计开发人员无须具备专业的安全知识背 景就能够构造高安全性的应用。 2 3 2 使用安全中间件的优势 信息安全的操作涉及到大量数学领域的算法和概念,即使一个极富开发经验的团 队,如果没有系统的学习过相关的知识,也很难在短时间内开发出一个完善的信息安全 6 硕士论文安全中间件中通用安全管理引擎的设计与实现 软件。虽然有o p c n s s l 等密码学软件开发包,但此类软件包都是具体函数的集合体, 仍需要自己学习如何使用,例如用户希望利用自己的信息生成一个证书文件,就需要在 自己的程序中调用一系列相关的函数,进行各种流程控制和出错处理,由此所产生的高 代价。易用性差、互操作能力弱等问题正是目前信息安全技术的发展与应用的瓶颈所在。 此外,在大多数应用系统中,信息安全部分仅仅是进行诸如将传输数据加密等操作, 与业务流程在逻辑上并无关联,因此如果利用安全中间件作为基础软件来完成信息安全 部分的工作,实现一种松耦合关系,对软件的可重用性、可移植性都有极大的好处。 在现有的大多数应用系统中,安全部分的软件实现往往与整个系统密不可分,是一种 紧耦合的关系,而将这二者分离开来,使它们成为一种松耦合的关系,可以使安全系统部分 从整个应用系统中分离出来,成为共用的软件,使其具有可重用性、可移植性,达到缩短开 发时间、降低开发成本、提高软件开发效率的目的。可采用安全中间件技术来屏蔽安全 的复杂性,实现复杂的网络安全问题与应用系统相分离。在安全中间件的管理下,实现各 种安全服务如加密、解密、签名、验证、证书管理等的动态加载和卸载,以增强系统的灵 活性和易用性。 2 4 安全中间件典型架构介绍 安全中间件技术发展虽不长,但已有很多典型的架构设计方案。较为著名的是六大 部分、五层结构和四级接口的架构。 2 4 1 安全中间件六大组成部分 安全中间件的六大组成包括应用程序、组件服务层、安全服务层、通用安全管理层、 安全服务提供者和资源信息服务器组成,其经典的架构图如图2 4 1 1 所利4 2 捌。架构非 常的庞大,不过通常也并不需要由一家公司或组织机构独立完成。本项目的实现内容涉 及到其中的应用程序、通用安全管理层和资源信息服务器。 下面对这六个部分做具体介绍: 通用安全管理器:这是安全中间件系统的核心所在,通常由安全中间件平台提供商 提供。由它屏蔽底层基础算法的各种差异性和复杂性,提供平台无关性,并保证系 统运行的安全、高效与便捷。它提供给用户的上层a p i 需简单、易用,且抽象度好, 将各种加密算法的种类等属性通过一定的参数呈现给用户,而其中的细节则由安全 服务提供者模块实现,无论通过串口、u s b 、t c p 硬件加密机还是纯软件的加密模 块提供。其思想与本文所设计的通用安全管理引擎大致相同,但具体模块划分与实 现有所不同,在后文会详细阐述。 安全服务提供者:该模块应由基础安全提供商提供,具体提供形式如加密卡,智能 卡等,对内屏蔽,对外提供统一的接口。根据已存在的可提供的安全服务,通常将 7 2 相关概念与理论介绍安全中间件中通用安全管理引擎的设计与实现 各种安全服务划分为加密服务、证书服务、可信策略服务、数据存储服务以及其他 可扩展的服务,于此对应的模块就是加密服务提供者模块、证书服务提供者模块、 可信策略服务模块、数据存储提供者模块以及其他扩展安全服务提供者模块。 l d t p 蜜全跟务ll c o r b e 安全臻务li ,2 ;旺安全懿务i _ _ _ - - - - o - o - _ 一_ _ - _ - _ - - - - - _ - - _ - o _ _ _ - - _ _ _ _ - - - _ - - o - _ - _ 一 ( 二! ! i :) ( :d蟹垒,节屡 旃缓安全接n ( a s a p i ) 通甩蜜垒援廿c a m ) 餮耀管理霸c r m ) l 爨垒上 f 文t s c 仃c )i 强证援块 c - p lic , e r t l llt p ild ul e r i 匆塞躺备 撂供_ 彗 c s p 胃铭院盛 攘谯肴 t s p ) 蠡缸存德 嚣供骨 t l 楚矛) 簏纽瓷潮 强往者 ( b 紫, 曾旌 荔篓 序垒 蟹垒暇务强恢口 图2 4 1 1安全中间件经典架构图 安全服务层:通常由体系结构或安全服务厂商提供,常用的有t l s 、s e t 、c o r b a 安全服务、j 2 e e 安全服务。这一层对安全中间件的“中间件 概念做了强化,提供 了分布式环境下安全模块之间的互操作,简化了开发和维护的复杂度和工作量,还 提供了基于对象的安全服务,保证了电子商务的顺利实现。 组件安全服务:此服务通常由组件提供商以组件级接口的方式提供,如x m l 操作 工具,普通文本操作工具、网络通信操作等。此部分中,本项目使用了一些著名的 开源库,极大的简化了开发难度,减少了出错的可能性,在后文有详细阐述。 应用层:该层架设在所有其他层次之上,是安全中间件系统最终应用的实现,由具 体的应用程序开发厂商根据客户的需求开发。 资源信息服务器:该模块提供辅助性功能,供其他五层模块所调用,用于注册其他 层模块的能力表以及各种配置参数。此外,当要为各个模块颁发属性证书时,安全 中间件可通过资源信息服务器提供强鉴别功能。 2 4 2 安全中间件四级接口 安全中间件的四级接口分别是:组件接口级、体系接口级、通用接口级和基础接口 i_并菌曩器番叠 瓣, 硕士论文安全中间件中通用安全管理引擎的设计与实现 级【3 鄹。 组件接口级:提供最便捷的接口工具用于安全软件的开发,真正实现对安全概念复 杂性,多样性的屏蔽,这是安全中间件最完美的实现目标。开发用户只需通过接口 进行一些简单的编辑即可实现客户所需的安全级别,极大减轻了开发的风险。 体系结构级:提供协议、互操作级别封装,如t l s 、s e t 等安全服务协议。用户可 以在体系结构级的基础上,利用安全中间件服务所提供的面向对象、面向组件,且 透明的安全服务组件来构建自己的安全软件。 通用接口级:这个级别的安全中间件服务最接近目前市场上的商业产品,对上层用 户提供统一接口,对下层屏蔽实现细节。在这一级别,虽然安全中间件厂商已经做 了大量的封装工作,但仅仅局限于平台的和底层厂商a p i 的统一,至于如何使用统 一后的a p i 进行安全软件的开发,则仍然需要用户有大量的安全知识和开发经验。 基础接口级:该级别是为安全专家提供的,通常由安全产品提供者提供,符合安全 中间件的接口规范。为了实现方便,可将其进一步细分为:密码学接口、证书接口、 策略接口、存取控制接口、扩展接口。 2 5 引擎技术介绍 本文研究的是安全中间件中通用安全管理引擎的设计与开发。如果说中间件是其他 软件的基础,那么引擎就是基础中的基础,它是整个安全中间件软件运行的核心,负责 流程控制、数据传输、线程调度和网络通信度等一系列工作,它本身就是一个可以运行 的软件,只是并不去具体的完成任务,其他模块则架设在引擎之上。以本文所研究的安 全中间件为例,引擎的范围涵盖了共享队列管理模块、主线程池管理模块、网络负载均 衡模块、上层接口模块、参数配置模块、日志模块和资源配置模块等内容。而管理具体 的安全服务提供者的工作则独立于引擎开发的内容,单独划分为一个模块,这样的划分 有利于减轻模块间耦合,当安全服务提供者有修改、升级甚至有重大的结构变化时,都 可以轻松的过渡,减少问题的发生。 9 3 架构设计安全中间件中通用安全管理引擎的设计与实现 3 架构设计 3 1 安全中间件整体架构设计 文本根据已有的国内外安全中间件架构以及本课题的背景,设计了如图3 1 1 的安 全中间件整体架构模型: 图3 1 1 安全中间件架构设计图 整体架构共分三大主要模块,下面逐一介绍: 1 通用安全管理引擎( c o m m o ns e c u r i t ym a n a g e m e n te n g i n e ,简称c s m e ) 通用安全管理引擎是本文研究的主要内容,包括共享队列管理模块、主线程池管理 模块、网络负载均衡模块等八个子模块。 c s m e 是安全中间件的核心,负责整个软件的运作,其工作主要是接收用户发出的 请求,判断请求类型,并在资源配置模块中获得可处理该请求的安全服务提供者的地址, 最后调用安全服务提供者模块处理请求并把结果返回给用户,其中,可能会在主服务器 负担过重的情况下对用户请求做网络负载均衡的操作。此外,c s m e 还担负着记录系统 日志等业务逻辑外操作,具体内容见后文详述。 2 安全服务控制( s e c u r i t ys e r v i c ec o n t r o l ,简称s s c ) 模块 安全服务控制模块是负责管理各种安全服务提供者( 用于具体处理用户的各种加 密、解密、认证请求) 的模块。它对c s m e 屏蔽具体算法的实现,同时向资源配置模块 注册已加载的动态服务库信息以供c s m e 调用。此外,该模块还维护一个监视线程,用 1 0 硕士论文安全中间件中通用安全管理引擎的设计与实现 以动态判断各个动态服务库的使用情况,将需要使用却未加载的动态服务库即时载入内 存,并将长时间未用的库卸载,以释放内容空间。此模块由同课题组其他同学完成。 3 资源配置( r e s o u r c ec o n f i g u r a t i o n ,简称r c ,) 模块 资源配置模块主要由两部分组成,一部分用于与s s c 模块交互,负责记录当前加载 的安全服务提供者资源;另一部分用于c s m e 和s s c 模块之间的信息交互。前者的工 作不在本文的范围之内,不做细表。对于后者,当安全中间件服务启动时,由s s c 模块 读取配置文件,缺省加载某些提供具体安全服务的动态链接库,并将这些动态库的句柄 值写入r c 模块所维护的内存,而后c s m e 便可从该内存中获取所需动态库的句柄,从 而调用其中的安全处理函数。此外,若c s m e 发现所需动态库没有加载,也将通过r c 模块向s s c 模块发起加载请求,s s c 模块也同样通过r c 模块向c s m e 返回加载结果。 3 2 通用安全管理引擎架构设计 通过对安全中间件服务逻辑的研究,本文设计出了c s m e 的组成结构图,如下图 3 2 1 。虚线内部表示c s m e 所涵盖的范围,由于结构复杂,此图仅画出了共享队列管理 模块、主线程池管理模块、网络负载均衡模块、上层接口模块、核心运行模块等主要部 分,其余辅助模块省略。另外s s c 模块的设计与实现工作在本文范围之外,因此这里将 其作为“黑盒 。 本文将c s m e 分为了以下几个子模块: 1 上层接口模块,由一系列的a p i 函数组成,与安全服务控制模块对c s m e 提供的接 口相对应,在其基础上添加c s m e 所需的其他参数,例如是否允许将请求做重定向 至网络负载均衡的处理。此外,该模块还负责将用户的请求实体放入共享请求队列 中,并将服务结果返回给用户,同时保证所有操作的多线程安全性。 2 共享队列管理模块,该模块负责管理安全中间件服务与用户交互的枢纽:共享请求 队列,该队列实际上为一块全局共享内存,负责存储用户的请求和服务的返回结果。 3 主线程池管理模块,该模块管理用于处理各种用户请求的线程池,负责线程池中线 程的调度、获取用户请求、处理请求、判断是否需要进行负载均衡以及返回处理结 果等操作。线程池容量根据服务器负载情况和用户请求数量动态调整。为区别于网 络负载均衡模块中的定容线程池,将其命名为主线程池。 4 核心运行模块,该模块为其他模块的总调度者,协调各个模块之间的运行,是c s m e 运行的基础。 5 网络负载均衡模块,在主服务器存在的网络上架设多个安全中间件服务的副本,所 有实现均和主服务一致,不同之处在于其处理的用户请求仅来源于主服务器的重定 向,最终的处理结果也将返回到主服务器。该模块包括请求端与接收端,分别位于 主服务器与负载均衡服务器端,并各自拥有一个定容的线程池支持请求和接受工作。 1 1 3 架构设计 安全中间件中通用安全管理引擎的设计与实现 6 参数配置模块,用于存储可供用户配置的服务参数并初始化服务。同时也用于后台 服务和前台g u i 界面交互。 7 日志模块:记录服务运行的日志信息。 1 2 图3 2 1c s m e 架构详细设计图 硕士论文安全中间件中通用安全管理引擎的设计与实现 4 详细设计 4 1 共享队列管理模块 队列管理模块是用户与安全中间件服务之间交互的关键模块,它接收用户的请求并 最终将结果返回给用户。下面各节详细介绍该模块的内部组成与运行流程。 4 1 1 共享队列 在共享队列管理模块中维护着一个请求响应队列,该队列用于存储所有用户调用 a p i 函数发送来的请求,以及安全中间件服务处理的结果( 实际上仅存储了请求和结果 的内存地址,参看4 1 2 节) ,是安全中间件服务与用户程序最直接的交互之处。 共享队列实现的最大问题在于技术的选取,因为这涉及到进程间通信的问题。由于 不同的进程享有独立的地址空间,互不干涉,因此与进程内部通信有着极大的不同,需 要使用特定的方法,较为常用且普遍被支持的有以下几种: 1 共享内存:通过直接操作内存映射文件进行通信,在进行单机数据共享时这是最底 层的机制,十分有利于进行大数据量的快速交换。事实上其它一些数据交换机制的 底层实现也都是通过内存映射文件进行的。 2 消息响应:与操作系统平台关系密切,不同平台间实现的流程机制差别过大,不利 于移植,且很难用附带消息参数的方式携带大量需要交换的数据。 3 命名管道与匿名管道:前者是一种简单的进程间通信机制,可用于同一计算机的不 同进程,或跨越网络的不同计算机之间,为应用程序之间设置一条永久通讯通道, 通过该通道可以像访问一个普通文件一样读写数据,但需要网卡的支持。后者与前 者类似,但仅限于本地系统中父进程与它所启动的子程序之间的通信。 可以看出共享内存技术有着实现简单( 各操作系统普遍支持,技术成熟) 、高效、 适合大数据交换的特点,因此本项目中使用共享内存实现共享队列。 共享队列具体实现方面较为简单,只需要计算好空间,调用函数申请即可。但有一 点需要注意,就是可移植性问题,这是因为不同的操作系统必然有不同的共享内存申请 方法。解决的方法通常是使用# i f d e f 和# e n d i f 配对预编译语句,为每一个操作系统编写 一套实现方法。但这会使主程序充斥着大量的和某一特定系统不相关的语句,使程序难 以维护。因此本项目将这些函数全部进行封装处理,形成单独的类或函数,如共享内存 的创建与打开函数、信号量的创建与打开函数、获取系统时间函数等等。在本项目的其 余模块中也存在着移植的问题,都使用这种封装的方法实现,后文不再赘述。 另外需要说明的一点是本项目没有为共享队列设计可变大小的机制,也即一旦 c s m e 读取了配置文件( 参见4 6 3 节) 并启动后,在其一个运行的生命周期内都不可 4 详细设计安全中间件中通用安全管理引擎的设计与实现 再改变共享队列的大小。这是因为共享队列单元中存储的信息并不多( 用户的真实请求 存放在二级共享内存中) ,所以其大小对服务器性能的影响非常小。此外,为共享队列 所申请的共享内存大小需要在申请时就需确定,且在程序运行中很难随意改变,至少没 有现成的系统a p ! 可供随时修改。虽然这可以使用链表结构技术解决,但显然会影响系 统效率,得不偿失。因此在本项目中共享队列的大小是不可改变的,需要用户根据实际 情况合理配置。 4 1 2 共享队列单元 共享队列单元是组成共享队列的元素,用于存储一个具体的用户请求和安全中间件 服务处理结果的地方。本文在设计方面着重考虑了两个问题: 1 用户请求大小不定,如何设计单元结构统一存储请求 一方面,不同类型的请求其大小显然是不同的,如对于制作证书的请求,需要用户 提供所在国家名、省市名等,而对于数据的加密请求,则需要用户提供明文和密钥等。 即使类型相同,同样是做数据加密处理,提供的明文大小也会不同。也就是说每个用户 请求的大小通常是不定的,也即占用的内存大小不定;另一方面,本文上一节最后已经 说明共享队列大小是不可改变的( 即使放弃效率,采用链表结构技术,也仅能动态改变 共享队列的单元数,而无法改变某个单元的大小) 。这样就产生了一个矛盾。 一种解决方法是将所有的请求类型全部纳入队列单元的数据结构,但这显然对内存 空间浪费极大。通过研究设计,本文最终设计了一种两级共享内存的存储方法: 笫囊 热搴内存 锯二:曩 藏辜幽存 愀 缱翱i 用,能嵇di 嘲户嗡幽i 嘲产i 缱黝ll 娟严臌糊 用户1 爱麓时搠i 珀产2 最筑时mi 硼l 户3 象瞬时熠1 瘕户4 吞嘲盱闻i i 矩户h 承鞠时謦 曩音内存名赣曩裔黼袅曩备一锋爨寡组台挥 荐_ 孛律簟裔冉狰需露矗裔冉- 存檑 磊敏真实请客餮敏冀蜜涛童囊取寡客张获搬冀安酶囊篮嗷窟裳渚采蓝墩炎娄蒲豢 卤卤卤卤由由 图4 1 2 1 两级共享内存存储方法示意图 如图4 1 2 1 所示,该方法为每个请求重新申请一块合适的内存存放其内容,而后将 该内存的名称和大小放入共享内存队列单元中。存储内存名称和大小的变量是可以定长 的:内存

温馨提示

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

评论

0/150

提交评论