论文部分内容阅读
[摘要] 同传统的协作式工作平台或工作系统相比,电子商务实验室对安全性具有更高的要求。本文着重介绍了软件Agent技术,讨论了在电子商务实验室中对各个实验平台利用软件Agent技术来提高系统安全性的问题。
[关键词]Agent 电子商务实验室 安全设计
电子商务实验室旨在建立一个Internet环境下的电子商务模拟环境,实现情景教学。若想成功地部署电子商务实验室,必须解决三个关键问题:高可用性、伸缩性和安全性。而安全性是其中最重要的环节,因此本文主要对电子商务实验室的安全性进行阐述。
一、电子商务实验室的安全需求
本课题所设计的系统有七个实验平台组成,它们分别是:一般教学、B2C、C2C、B2B、物流实验平台,以及电子银行和CA认证平台。每个平台相对独立又有一定关联,如B2C业务流程的完成需要结合CA认证、电子银行和物流管理等,因此不同平台安全需求也是多方面的。如何保证实验室系统交易的安全性、对个人信息提供机密性保障、认证交易双方的合法身份、如何保证数据的完整性和交易的不可否认性等,是实验室所需解决的核心问题。
二、电子商务实验室安全解决方案
当前,电子商务系统设计的架构大多采用B/S结构。B/S环境中各种安全功能都由服务器集中实现,因此服务器容易成为系统的安全瓶颈。服务器一旦被人入侵或出现问题,将对整个系统的安全造成严重的威胁。且不同子系统具有不同的安全需求,由服务器统一协调和处理它们之间的安全策略将大大加重服务器的负担。
当前的大多数电子商务系统都采用了结合硬件防火墙、软件防火墙和防病毒软件等。这些措施只提供了被动的、有限的安全防范能力,并不能满足多模块、多子系统的电子商务实验室的要求。并且这种解决方案缺少主动性和自我维护能力。
利用软件Agent的智能处理能力来解决各模块间的安全通信是一个很好的选择,软件Agent是一种计算机程序,具有反应性、自治性和目标性等特点,能够独立地跟环境进行交互或代表用户完成给定的目标。它不仅能对各模块的通信状况进行高度监控,而且各Agent能多层面的独立实现,各Agent之间也能相互协调、统一调度。
三、基于软件Agent的电子商务实验室安全设计
本人主持研究河北大学教改青年基金项目——基于LINUX的电子商务实验室(项目编号为:0575),此实验室服务器连接校园网,校园网又和互联网相连,因此服务器较容易成为被攻击或入侵的对象,所以本系统利用Agent技术来提高实验室的安全性。Agent可对用户的请示进行过滤,减少用户直接访问实验室服务器所带来的安全风险,同时可更方便地实现一些动态的安全策略。
1.基于软件Agent的安全设计模型
本实验室的Agent体系设计是分层次、分等级的结构,层次或等级根据系统的功能来划分,如图1所示。
图1 Agent的安全等级结构
每个平台由一个安全监控Agent负责管理本平台的安全,如有问题通知报警Agent,报警Agent会及时反馈给Agent安全管理中心的Agent进行相应处理,比如:退出登陆重新验证身份等。身份认证Agent负责对访问用户进行身份验证;授权Agent根据对已经通过身份认证Agent的用户进行授权,不同类型的登陆用户授权策略不同,实验的角色不同,授权的策略也不同,比如,B2C实验中,一位刚刚初始化的Customer(学生登录身份),授权内容中将包括B2C的买方界面,并且授权Agent指示电子银行模块自动给实验者初始资产一万元作为实验的资本,当然还有其他一些授权;跟踪Agent将全程跟踪用户的操作并详细记录到日志文件。
2.软件Agent的安全解决方案
移动Agent需要在不同的主机上迁移,实验室服务器是LINUX环境,而客户端往往是学生比较熟悉的windows操作环境,所以这里选择跨平台的J2EE开发本系统。J2EE不仅提供了一套安全机制,而且移动Agent中的许多功能在Java中有直接的对应实现。移动Agent状态的移动可以用Java对象的串行化表示;Agent代码的移动用字节码传递和加载;Agent运行上下文可用方法的控制流表示等等,具体的方案有以下几点:
(1)利用Java的字節码验证器保证Agent的正确性。字节码验证器可以检测Agent的程序代码是否被破坏,然后采取相应的措施。
(2)利用Java的类装载器、命名空间和线程组来实现动态Agent的隔离。可以把从不同来源载入的类隔离到不同的命名空间中,一个Agent不可能用它自己的类冒名顶替另一Agent的类,这样可以防止破坏性代码访问正常的代码,从而保证了Agent之间的安全。另外,每当一个新Agent到达后,就为其建立一个线程组。任何执行该Agent的线程其组号是相同的。那么,只要为这个线程组分配权限,即为该Agent分配了权限,就实现了Agent与主机的隔离。
(3)采用数字签名和加密算法实现Agent的传输与验证。系统对外来的Agent的身份进行数字签名验证,确定其是否为可信Agent。同时还可以利用Java加密扩展机制和Java安全套接字扩展机制结合来实现将Agent代码数据进行压缩后加密处理,经过压缩不仅降低了网络流量,而且也大大增加了破译该数据的难度。
3.软件Agent的实现
本系统的软件Agent的实现平台采用Aglet。Aglet为开放源码项目,用户不用考虑侵权问题。Aglet完全由Java编写,具有很高的移植性。Aglet包含了一个运行移动Agent的服务器和一套类库,基于它开发者可以进一步开发各种Agent的应用。Aglet的系统架构主要分为四个阶段,如图2所示。
图2 Aglet系统架构
当一个正在执行的Aglet将自己送到远程端口时,会对Aglet Runtime层发出请求,然后把Aglet的状态与程序代码序列化(serialized )成字节数组(byte array),若是请求成功,系统会将Aglet的执行动作结束,然后将序列化数组传送至ATCI(Agent Transport and Communication Interface)层处理。
Agent安全管理中心统一管理各个安全Agent的基本行为:如产生(Create)、复制(Clone)Agents ,或分派(Dispatch)Agents 到远端工作站、召回(Retract)远端的Agents,或暂停(Deactive)、唤醒(Active)Agents,以及移除(Dispose)Agents等,如图3所示,不管是何种Agent均继承Aglet类,可以通过覆盖父类的方法来实现自己的“特殊要求”。
图3 Agent的对象模型
各监控Agent由管理中心分派到各个实验平台进行监控,等客户端做完实验后正常退出,然后移除Agent监控对象,如果出现安全问题,传递消息给报警Agent对象,再交由Agent管理中心负责进一步处理。
参考文献:
[1]Jian Li,Guo-yin Zhang Gu, A Workflow System Based Architecture for Network Attack Resistant System,GCC2003, LNCS3032, pp.980~983,2004
[2]Roberto A. Flores, Robert C. Kremer: Modeling Agent Conversations for Action. Computational Intelligence, Special Issue on Agent Communication Languages, Blackwell Publishers, Vol.18, No.2, May, 2002: 32~85
[3]边海锋刘祖照等:移动Agent及其在电子商务中的应用[J].计算机应用与软件.2005,22(9):118~120
[关键词]Agent 电子商务实验室 安全设计
电子商务实验室旨在建立一个Internet环境下的电子商务模拟环境,实现情景教学。若想成功地部署电子商务实验室,必须解决三个关键问题:高可用性、伸缩性和安全性。而安全性是其中最重要的环节,因此本文主要对电子商务实验室的安全性进行阐述。
一、电子商务实验室的安全需求
本课题所设计的系统有七个实验平台组成,它们分别是:一般教学、B2C、C2C、B2B、物流实验平台,以及电子银行和CA认证平台。每个平台相对独立又有一定关联,如B2C业务流程的完成需要结合CA认证、电子银行和物流管理等,因此不同平台安全需求也是多方面的。如何保证实验室系统交易的安全性、对个人信息提供机密性保障、认证交易双方的合法身份、如何保证数据的完整性和交易的不可否认性等,是实验室所需解决的核心问题。
二、电子商务实验室安全解决方案
当前,电子商务系统设计的架构大多采用B/S结构。B/S环境中各种安全功能都由服务器集中实现,因此服务器容易成为系统的安全瓶颈。服务器一旦被人入侵或出现问题,将对整个系统的安全造成严重的威胁。且不同子系统具有不同的安全需求,由服务器统一协调和处理它们之间的安全策略将大大加重服务器的负担。
当前的大多数电子商务系统都采用了结合硬件防火墙、软件防火墙和防病毒软件等。这些措施只提供了被动的、有限的安全防范能力,并不能满足多模块、多子系统的电子商务实验室的要求。并且这种解决方案缺少主动性和自我维护能力。
利用软件Agent的智能处理能力来解决各模块间的安全通信是一个很好的选择,软件Agent是一种计算机程序,具有反应性、自治性和目标性等特点,能够独立地跟环境进行交互或代表用户完成给定的目标。它不仅能对各模块的通信状况进行高度监控,而且各Agent能多层面的独立实现,各Agent之间也能相互协调、统一调度。
三、基于软件Agent的电子商务实验室安全设计
本人主持研究河北大学教改青年基金项目——基于LINUX的电子商务实验室(项目编号为:0575),此实验室服务器连接校园网,校园网又和互联网相连,因此服务器较容易成为被攻击或入侵的对象,所以本系统利用Agent技术来提高实验室的安全性。Agent可对用户的请示进行过滤,减少用户直接访问实验室服务器所带来的安全风险,同时可更方便地实现一些动态的安全策略。
1.基于软件Agent的安全设计模型
本实验室的Agent体系设计是分层次、分等级的结构,层次或等级根据系统的功能来划分,如图1所示。
图1 Agent的安全等级结构
每个平台由一个安全监控Agent负责管理本平台的安全,如有问题通知报警Agent,报警Agent会及时反馈给Agent安全管理中心的Agent进行相应处理,比如:退出登陆重新验证身份等。身份认证Agent负责对访问用户进行身份验证;授权Agent根据对已经通过身份认证Agent的用户进行授权,不同类型的登陆用户授权策略不同,实验的角色不同,授权的策略也不同,比如,B2C实验中,一位刚刚初始化的Customer(学生登录身份),授权内容中将包括B2C的买方界面,并且授权Agent指示电子银行模块自动给实验者初始资产一万元作为实验的资本,当然还有其他一些授权;跟踪Agent将全程跟踪用户的操作并详细记录到日志文件。
2.软件Agent的安全解决方案
移动Agent需要在不同的主机上迁移,实验室服务器是LINUX环境,而客户端往往是学生比较熟悉的windows操作环境,所以这里选择跨平台的J2EE开发本系统。J2EE不仅提供了一套安全机制,而且移动Agent中的许多功能在Java中有直接的对应实现。移动Agent状态的移动可以用Java对象的串行化表示;Agent代码的移动用字节码传递和加载;Agent运行上下文可用方法的控制流表示等等,具体的方案有以下几点:
(1)利用Java的字節码验证器保证Agent的正确性。字节码验证器可以检测Agent的程序代码是否被破坏,然后采取相应的措施。
(2)利用Java的类装载器、命名空间和线程组来实现动态Agent的隔离。可以把从不同来源载入的类隔离到不同的命名空间中,一个Agent不可能用它自己的类冒名顶替另一Agent的类,这样可以防止破坏性代码访问正常的代码,从而保证了Agent之间的安全。另外,每当一个新Agent到达后,就为其建立一个线程组。任何执行该Agent的线程其组号是相同的。那么,只要为这个线程组分配权限,即为该Agent分配了权限,就实现了Agent与主机的隔离。
(3)采用数字签名和加密算法实现Agent的传输与验证。系统对外来的Agent的身份进行数字签名验证,确定其是否为可信Agent。同时还可以利用Java加密扩展机制和Java安全套接字扩展机制结合来实现将Agent代码数据进行压缩后加密处理,经过压缩不仅降低了网络流量,而且也大大增加了破译该数据的难度。
3.软件Agent的实现
本系统的软件Agent的实现平台采用Aglet。Aglet为开放源码项目,用户不用考虑侵权问题。Aglet完全由Java编写,具有很高的移植性。Aglet包含了一个运行移动Agent的服务器和一套类库,基于它开发者可以进一步开发各种Agent的应用。Aglet的系统架构主要分为四个阶段,如图2所示。
图2 Aglet系统架构
当一个正在执行的Aglet将自己送到远程端口时,会对Aglet Runtime层发出请求,然后把Aglet的状态与程序代码序列化(serialized )成字节数组(byte array),若是请求成功,系统会将Aglet的执行动作结束,然后将序列化数组传送至ATCI(Agent Transport and Communication Interface)层处理。
Agent安全管理中心统一管理各个安全Agent的基本行为:如产生(Create)、复制(Clone)Agents ,或分派(Dispatch)Agents 到远端工作站、召回(Retract)远端的Agents,或暂停(Deactive)、唤醒(Active)Agents,以及移除(Dispose)Agents等,如图3所示,不管是何种Agent均继承Aglet类,可以通过覆盖父类的方法来实现自己的“特殊要求”。
图3 Agent的对象模型
各监控Agent由管理中心分派到各个实验平台进行监控,等客户端做完实验后正常退出,然后移除Agent监控对象,如果出现安全问题,传递消息给报警Agent对象,再交由Agent管理中心负责进一步处理。
参考文献:
[1]Jian Li,Guo-yin Zhang Gu, A Workflow System Based Architecture for Network Attack Resistant System,GCC2003, LNCS3032, pp.980~983,2004
[2]Roberto A. Flores, Robert C. Kremer: Modeling Agent Conversations for Action. Computational Intelligence, Special Issue on Agent Communication Languages, Blackwell Publishers, Vol.18, No.2, May, 2002: 32~85
[3]边海锋刘祖照等:移动Agent及其在电子商务中的应用[J].计算机应用与软件.2005,22(9):118~120