应用XML-Glue技术的安全构件的研究与实现

来源 :计算机时代 | 被引量 : 0次 | 上传用户:gnaixug
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在当今主流的嵌入式系统安全解决方案中,存在着运行效率、安全性、可移植性和跨平台性等问题。文章针对这些问题,在“和欣”操作系统下,应用XML-Glue设计模式及面向构件技术,提出了开发具有跨平台、可定制等特性的自适应安全构件。安全构件既能运行在不同的嵌入式系统平台上,又能运行在传统的桌面计算平台上。文中介绍了安全构件的设计理念,并给出了其总体架构和详细设计。
  关键词:“和欣”操作系统;构件技术;XML-Glue;安全构件
  
  0 引言
  
  现在越来越多的嵌入式系统如车载系统、掌上电脑以及智能手机等,在人们生活中起着巨大的作用,并将提供越来越多的服务功能,包括即将可能出现的电子商务,如手机银行、手机炒股、手机期货交易和移动电子政务等。但是,这些嵌入式系统也都面临着越来越多的安全问题,甚至可能造成巨大的损失(例如,据估计,“I Love You”病毒引起全世界范围内十亿美元的财政损失)。
  由于各种各样的限制,嵌入式系统的安全实现与桌面计算机系统有很大的不同,不同的系统对于安全性的要求不同,同一系统的不同应用对于安全性的要求也不尽相同。对于嵌入式系统,要求安全解决方案能够适应不同的外部运行环境,并提供尽可能全面灵活的安全应用基础加密服务。
  基于以上情况,本文在“和欣”嵌入式操作系统下,应用了XML-Glue设计模式及面向构件技术,提出了开发具有跨平台,可定制等特性的自适应安全构件,为问题的解决提供了新的思路。
  
  1 主流安全解决方案存在的问题
  
  安全服务是操作系统的核心功能之一。在Windows系统中,以CryptoAPI为基础的安全体系保证了Windows系统本身的安全性。在主流的嵌入式操作系统中,WinCE 3.0通过提供安全服务的集成功能集,使企业能够在日益增长的网络世界中不断扩展,无须牺牲安全性。Embedded Linux上的安全通信一般都使用OpenSSL,它是用于安全通信的最著名的开发库,可以提供消息摘要,文件的加密和解密,数字证书,数字签名和随机数字等一系列服务。但是,这些主流的安全解决方案,也都存在一些问题。
  
  1.1 运行效率
  由于嵌入式系统与桌面计算机系统在安全处理能力、成本方面的差距,并且嵌入式操作系统安全解决方案面临着不可靠的环境和复杂的设计过程,因此桌面系统的安全实现方式不能直接照搬到嵌入式系统中。在上面的解决方案中,很多加密手段都涉及复杂的算法,对大量数据加密时经常产生大量的运算消耗。除了对算法本身进行优化之外,在算法的实现过程中,不同的设计和细节编码以及实现方式都会对其运行速度带来巨大的影响。编制一种运行速度可以接受的算法,对于程序员而言往往会是很困难的事。
  
  1.2 安全性
  密码算法并不能永远保证不会被破解,即使是暂时没有破解的算法,也不能保证它在若干年内安全无事。对没有采用动态构件技术的安全软件,灵活地更换算法往往是极其困难的。
  
  1.3 可移植性和跨平台性
  和所有的软件一样,安全软件必须能在不同的平台上运行。每开发一个软件都针对不同的平台编写安全技术的底层代码,工作量是无法想象的。要让使用不同平台的用户传递的信息都能得到安全保护,必须开发出可移植和跨平台的安全软件。
  对于上述问题的解决方案就是:构件化地开发安全软件。在软件开发中,构件化方法开发出灵活、面向对象同时尽可能高效的软件构件库,从而将安全软件的开发人员从繁琐的底层算法编写中彻底地解放出来。
  
  2 “和欣”操作系统与XML-Glue设计模式
  
  2.1 “和欣”操作系统
  “和欣”操作系统是完全面向构件的操作系统,它所提供的功能模块全部基于构件技术,都是可拆卸的构件,应用系统可以按照需要剪裁组装,或在运行时动态加载必要的构件。在面向构件的操作系统平台上,很容易开发并部署系统级的构件,以此来扩充操作系统的功能。
  “和欣”操作系统中的构件“ezCOM”,与微软的COM兼容,又对微软的COM进行了扩展,并且在简单性上优于COM。
  
  2.2 XML-Glue设计模式 基于构件的软件开发一个很重要的方面是动态连接不同构件的机制。大多数时候,定义构件连接的语言与开发实现构件的语言相同。但是,一种新的动态链接构件的机制正在兴起,利用这种机制,系统应用架构与构件的实现能够完全分离,这样的分离大大降低了构件维护的代价。在这种机制中,动态解释型语言,扮演了类似于胶水的角色,它将不同系统之间的构件动态“粘合”在一起,来共同完成应用需求。
  XML-Glue是“和欣”操作系统上的一个Rich Client应用的MVC(Model-View-Controller)设计模式,其核心思想是使用XML和其他脚本语言描述应用,由CAR构件封装应用的逻辑,然后由XML-Glue完成二者的组装,形成一个完整的应用。XML-Glue分为里外两层,内部由顶至底分为三层。
  外层是XML-Glue运行环境,负责初始化和释放XML-Glue应用所需资源。
  内部顶层是脚本语言及其配套设施。这一层相当于提供了对MVC中View的支持。XML/JavaScript/Other Scripts提供,多种描述XML-Glue应用的形式,让开发人员能够灵活利用各种脚本语言。脚本适应器负责将其对应脚本代码中弱类型方法的参数转换为CAR中的强类型方法的参数,而在构件方法返回的时候将返回值封装成脚本可识别的数据类型。
  内部中层SCI是脚本语言与CAR构件系统通信的桥梁。这一层相当于提供了对MVC中Controller的支持。
  内部底层CAR构件系统。它是服务的提供者。这一层相当于提供了对MVC中Model的支持。
  
  3 安全构件在“和欣”操作系统上的实现
  
  3.1 安全构件与“和欣”操作系统
  安全构件的提出是与“和欣”操作系统紧密关联的,安全构件在“和欣”操作系统上更能够发挥其作用。实际上安全构件本身就是一个ezCOM构件,能够充分地实现安全构件的灵活性。
  安全构件的设计充分考虑了操作系统的平台差异性,遵循设计的开发封闭原则,应用了XML-Glue设计模式和面向构件的设计思想,最终达到构件化,跨平台,可定制的设计目标。
  
  3.2 安全构件的总体应用架构
  安全构件的总体应用架构如图3所示。
  位于架构最底层的是操作系统提供的服务接口。安全构件以C语言函数的方式,利用条件编译等技术,对各个不同操作系统平台所提供的多线程,同步,时间,动态链接等服务进行了封装,使得不同平台之间的差异在C函数这个表现层次上尽量一致;通过C++的封装,形成被上层的安全引擎所管理的安全服务类对象(这里的抽象封装是系统内部的,对于安全构件的 用户是透明的,仅仅是为了能够向上层提供更方便的面向对象服务)。再使用ezCOM技术对下层的C++服务类进行进一步的封装(这里的抽象和封装是完全面向服务的,是对下层C++服务类的重新组合)。每一个Engine提供了一个或一组相关的加密服务,Engine的接口严格按照PKCS#系列工业标准进行设计。这些对象属于某一个Provider实体,作为CSP(加密服务的提供者),它管理着一组分别实现各种类型的安全功能的安全引擎。最后应用程序通过调用服务提供者的接口,实现诸如数字签名和安全邮件的高级安全功能。
  
  3.3 安全构件的内部结构
  安全构件内部依据面向构件的设计思想,实现了构件主体ESC与加密服务提供CSP的模块分离。这从系统组件模块的角度进一步增强了构件的灵活性。
  安全构件可以基于不同操作系统平台提供相应的CSP,如基于Linux或“和欣”操作系统的CSP,或者根据用户需求提供定制的CSP,如在嵌入式操作系统中提供裁剪过的CSP。主体ESC对这些CSP进行管理,用户可以在构件初始化时,通过配置文件加载指定的CSP,还可以在运行时,动态地加载CSP,只需要提供实现了CSP的程序模块路径名即可。这样我们可以针对不同操作系统平台和不同的应用需求,提供不同的CSP,每个CSP的接口完全相同,但底层实现不同。因此可以做到不改变用户程序的前提下,动态地加载,升级或更换CSP,从而达到自适应的目标。
  整个构件在设计上分为三层结构,分别为Client,Host和Provider。
  Client部分是用来向用户提供一系列加密服务的,即所要调用安全构件的应用程序,它能够使用安全构件中所提供的所有功能,也能选择其所需要的功能。它是联系用户和系统的组成部分。
  Host为中间层,它的一个功能是通过加载所需要的provider和其上的接口,获取provider提供的服务;另一个功能是向用户提供它所得到的provider的spi接口,通过spi接口用户可以调用所要的功能。
  Provider是一个包或包集,是安全构件中所有功能的具体实现。它的一系列的功能是通过spi接口提供给外部使用,这一层对于用户来说是透明的,也就是说用户不必关心其功能具体怎样实现。ESC体系可以容纳多个Provider同时运行,并且可以动态地加载所需模块,为嵌入式系统节省资源,同时也符合构件化的思想。
  
  4 结束语
  
  “和欣”操作系统是国家863项目,它是基于构件、中间件技术的因特网操作系统,及跨操作系统的构件、中间件运行平台。本文利用其XML-Glue设计模式和构件技术在“和欣”操作系统上构造了一个跨平台的、可定制的、自适应的安全构件模型。
  本文从理论设计角度给出了安全构件的模型,并介绍了其初步实现技术。该构件已经在实际系统中有所应用,但其实用性还有待考验,需要进一步研究扩展。
其他文献
(1.苏州大学计算机科学与技术学院,江苏 苏州215006;2.江苏技术师范学院计算机科学与工程学院)  摘要:以三星公司的K9F1208UOB芯片为例,详细介绍了Nand-flash存储器芯片的工作原理以及在$3C2440A平台上应用的软硬件设计过程。  关键词:嵌入式;Nand-flash;$3C2440A;设计
期刊
(浙江工业大学信息工程学院,浙江 杭州310014)  摘要:总结分析了目前《操作系统》课程教学中常用的几种方法,指出了教学中存在的问题,针对性地提出了以Tutorial任务驱动的课程教学方法,并给出一个Tutorial任务设计实例。教学实践结果表明,这种以“任务为主线、教师为主导、学生为主体”的互动式教学方法效果良好。  关键词:操作系统;教学;Tutorial任务;互动
期刊
(1.华侨大学信息学院,福建 泉州362021;2.华侨大学工商管理学院)  摘要:研究了如何在Windows与Linux这两种最流行的操作系统之间进行互操作:在单机情况下,共存于同一机器的Windows与Linux如何互访文件系统,利用模拟器软件运行各操作系统下的应用程序;在网络情况下,运行不同操作系统的计算机如何共享文件与打印机;如何利用虚拟机软件运行另一操作系统下的应用程序。并简要分析比较了
期刊
摘要:针对现有的ORM组件不能实现运行时动态改变数据库结构的不足,文章提出了一种动态数据库的ORM解决方案,该方案从分析设计数据库的基本原则入手,给出了一种将索引表和动态数据表相结合的ORM模型,通过索引表间接实现了动态数据库的ORM,弥补了现有ORM组件的不足。同时分析比较了动态数据库ORM和传统JDBC直连的效率。  关键词:动态数据库;ORM;索引袁    0 引言    软件结构体系已由单
期刊
(1.北京工业大学,北京100022;2.中石油勘探开发研究院)  摘要:就实时数据库的开发方法作了详细的说明,并提出了实现关系型数据库与实时数据库之间数据交换的方案,具有行业应用价值。  关键词:实时数据库;关系数据库;Oracle;数据交换
期刊
(1.浙江金融职业学院信息技术系,浙江 杭州310018;2.复旦大学软件学院)  摘要:通过比较我国多个著名的C2C电子商务网站功能特点,采用系统分析和问卷调查的方法,并结合C2C电子商务网站发展趋势,分析了实现电子商务网站的通用系统架构和逻辑模型的技术可行性,并提出了C2C电子商务网站的通用架构模型。  关键词:C2C;电子商务网站;通用架构;网站建设
期刊
摘要:海量信息在网络上的出现,使搜索网站应运而生,越来越多的搜索工具受到关注。Nutch是一个开源Java实现的搜索引擎,扩展性较好,是人们研究的热点。现今出现的NUtch-0.8.1较好地处理了英文分词,但没有对中文分词进行处理。文章介绍了在NUtch-0.8.1中实现索引及检索的二分法,指出在中文分词上它比原Nutch-0.8.1有了明显的改善。  关键词:NUtch-0.8.1;二分法;索引
期刊
摘要:由于设计缺陷,ARP协议在使用过程中会出现IP地址盗用和ARP欺骗等安全问题。ARP协议欺骗是网络欺骗行为之一,攻击者可以利用ARP协议的特点重定向一个以太网段上的IP数据报以取得目标主机的信任。文章分析了ARP攻击的基本原理,并提出相关的防范ARP攻击的解决方案。  关键词:ARP欺骗;网络协议;网络安全;ARP协议    0 引言    ARP欺骗病毒及其各种变种直接影响到局域网络的正常
期刊
摘要:Network Address Translation(NAT)技术能够解决公网IP地址紧缺的问题,确保网络安全,但也阻隔了不同子网内peer之间的直接通信。文章介绍了基于User Datagram Protocol(UDP)的UDP Hole Punching技术实现NAT的穿越,并提出在完全P2P环境下内网中的P2P节点加入P2P网络并实现了NAT穿透的Friend Select Nod
期刊
摘要:为更好地保证计算机局域网内部数据资源不被泄密和偷盗,一方面要完善局域网内的信息安全管理;另一方面须采用先进网络技术对送出网络的信息进行监控,使信息不被泄密。后者的基本思路是拦截输出网络的信息,对这些信息进行安全检查,只有通过安全检查的信息才允许传输到外面的网络。  关键词:网络嗅探器;信息安全;数据包截获    0 引言    随着计算机网络技术的飞速发展,计算机网络已经显示出广域分布、体系
期刊