电子商务的安全分析、设计及JAVA实现

电子商务是交易当事人或参与人利用现代信息技术和计算机网络(主要是Internet)所进行的各类商业活动,包括电子数据交换、电子邮件、电子资金转帐等,是一种可能涉及到个人、企业、国家的无纸化数据交换。从国内外电子商务的现状来看,电子商务是一把双刃剑,一方面它造就了从传统商务到现代商务的巨大飞跃,另一方面它也带来了一些全新问题,如安全问题。从目前实践证明,安全问题已成电子商务的核心问题和瓶颈问题之一,也是电子商务的客户和商家所共有的关键需求之一。

电子商务安全的内涵及必要性

电子商务的安全,涉及到交易中各种数据的可靠性、完整性和可用性。就整个电子商务系统而言,安全性可以分为4个层次:(1)网络节点的安全性(2)通信的安全性(3)应用程序的安全性(4)用户的认证管理(5)安全管理。现分别叙述如下:
540)this.width=540" vspace=5 space="15">
图1:电子商务安全中间件的总体设计框架图

● 网络节点的安全
网络节点的安全性是指组成网络节点的主机、路由器或交换设备及相关软件的安全性,它处于安全级别的最基层,是网络的第一道屏障。网络节点的安全性主要依靠防火墙来保证。防火墙就是一个位于计算机和它所连接的网络之间的软件。它可以对流经的网络通信进行扫描以便过滤掉一些攻击;可以关闭闲置端口以减少攻击的可能性;能禁止特定端口的流出通信,封锁特洛伊木马;能禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。一个防火墙可以是硬件自身的一部分,因特网连接和计算机都可以插入其中;也可以在一个独立的机器上运行,成为它背后网络中所有计算机的代理和防火墙。为了保证电子商务的安全,可使用独立安装防火墙的方法。防火墙可以自行开发,也可以购买商业防火墙。使用方法参考其使用说明书。

● 数据通信的安全
数据通信的安全是指数据传输过程的安全性。它主要依靠对通信数据进行加密来保证,因而通信链路上的数据安全在一定程度上取决于加密的算法和加密的强度。电子商务系统的数据通信主要存在于3个方面:①客户Browser端与电子商务Web服务器端的通信;②电子商务Web服务器与电子商务DB服务器的通信;③银行内部网与业务之间的数据通信。其中客户Browser与电子商务Web服务器之间采用SSL协议来建立安全链接。

● 应用程序的安全性
各种程序bug都可能导致攻击,所以应加强程序及系统测试,尽量减少漏洞。在编程之前,要强化系统分析及设计功能,设想各种可能的异常或错误,并采取相应对策;使程序中的类或组件尽可能封装。在测试过程中要加强对边界值、数据容量、用户及权限分配、程序碎片、程序后门等环节的测试,尤其要遵循“最小权限原则”,合理设计用户及权限;紧密跟踪、严格监视系统的运行状态,及时发现违反安全策略的行为,并及时采取措施予以解决。
● 用户的认证管理
用户的认证管理用来在网上确认交易各方的身份以及保证交易的不可否认性。电子商务中企业用户身份认证可以通过服务器CA证书与IC卡相结合来实现。CA证书用来认证服务器的身份,IC卡用来认证企业用户的身份。个人用户由于没有提供交易功能,所以只采用ID号和密码口令的身份确认机制。

● 安全管理
为了确保系统的安全性,除了采用上述技术手段(即“技防”)外,还必须建立严格的内部安全机制(即“人防”)。“人防”措施包括:根据最小权限原则,结合分级管理来分配操作权限;严格管理内部用户帐号和密码;加强用户的身份确认;对关键应用实施跟踪;建立安全维护日志;后台自动记录运行痕迹;对重要数据进行备份。

一个实际电子商务安全项目的设计与实现

作者主持的湖南省教育厅资助项目“电子商务高级中间件的设计与开发”实际项目,采用安全中间件的解决方案,成功地完成了电子商务中业务处理的部分安全问题。所使用的开发平台为:java(jsp)开发工具+ tomcat服务器+ SQL Server及access 数据库。其总体设计框架图如图1所示。

现将部分安全关键技术详述如下:
● 用RMI机制的3层模式结构来封装加密算法
RMI即 Remote Method Invocation(远程方法调用),它提供了针对java对象的分布式计算的一种简单而直接的模型。RMI使用Java内置的安全机制保证下载执行程序时用户系统的安全,并使用专门为保护系统免遭恶意小程序侵害而设计的安全管理程序。RMI机制将表示层、处理层和数据层分开,一方面使得并发操作更易被处理,另一方面,使得安全控制更容易实现。 RMI架构包括3部分:(1)桩/骨架层Stub/Skeleton;(2)远程调用层Remote Reference Layer;(3)传输层Transport Layer。
实现RMI分3步进行:第一步是建立和编译服务接口。这个接口定义了所有的提供远程服务的功能;第二步是远程服务的实现;第三步是使用RMI编译器rmic来生成桩和框架文件;最后是建立服务器和客户端。其中接口设计的源代码如下:
//生成RMI接口的JAVA源代码
//packagename: rmiinterface.rmi
package rmiinterface.rmi
import java.rmi.Remote;
public interface Encrypt extends Remote{
public byte[] Encode(String sText)
throws java.rmi.RemoteException;
public String Decode(byte[] sText)
throws java.rmi.RemoteException;
}
需要说明的是,这个接口继承自Remote,每一个定义的方法都必须抛出一个RemoteException异常对象。

[1][2]下一页