论文部分内容阅读
电子商务是交易当事人或参与人利用现代信息技术和计算机网络(主要是Internet)所进行的各类商业活动,包括电子数据交换、电子邮件、电子资金转帐等,是一种可能涉及到个人、企业、国家的无纸化数据交换。从国内外电子商务的现状来看,电子商务是一把双刃剑,一方面它造就了从传统商务到现代商务的巨大飞跃,另一方面它也带来了一些全新问题,如安全问题。从目前实践证明,安全问题已成电子商务的核心问题和瓶颈问题之一,也是电子商务的客户和商家所共有的关键需求之一。
电子商务安全的内涵及必要性
电子商务的安全,涉及到交易中各种数据的可靠性、完整性和可用性。就整个电子商务系统而言,安全性可以分为4个层次:(1)网络节点的安全性(2)通信的安全性(3)应用程序的安全性(4)用户的认证管理(5)安全管理。现分别叙述如下:
图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异常对象。
● 使用SSL加密来实现安全传输
SSL(Secure Socket Layer),安全套接字层,位于HTTP层和TCP层之间,用来建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。
使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。加密解密通常用RSA算法来实现分3步完成:第一步:生成密钥对;第二步:公钥加密;第三步:私钥解密。为简单起见,这里只列出密钥对的生成过程,源代码如下:
//生成密钥对的JAVA源代码
public int generateKeyPair(int length){
BigIntegerp, q, n, d, e, pSub1, qSub1, phi;
BigIntegerdP, dQ, qInv;
int pbitlength = (length + 1) / 2;
int qbitlength = (length- pbitlength);
e=new BigInteger("65537",10);
//生成素数p,并且使p-1与e互素
for (;;){
p = new BigInteger(pbitlength, 50,new SecureRandom());
if (e.gcd(p.subtract(ONE)).equals(ONE)) break;
}
for (;;){
//生成素数q,并且使q-1与e互素,与p不相等
for (;;)
{
q = new BigInteger(qbitlength,50,new SecureRandom());
if (e.gcd(q.subtract(ONE)).equals(ONE) && !p.equals(q)) break;
}
//模数n=p*q
n = p.multiply(q);
if (n.bitLength() == length) break;
p = p.max(q);
}
pSub1 = p.subtract(ONE);
qSub1 = q.subtract(ONE);
phi = pSub1.multiply(qSub1);
d = e.modInverse(phi);
dP = d.remainder(pSub1);
dQ = d.remainder(qSub1);
qInv = q.modInverse(p);
pukParam=new RSAPublicKey(n, e);
pvkParam=new RSAPrivateKey(n, e, d, p, q, dP, dQ, qInv);
return 1;
}
以上生成密钥对的代码中,生成p、q、e、d、n 等数是核心。其算法为:先找出3个数p,q,e,其中p,q是两个相异的质数,e是与(p-1)(q-1)互质的数,p,q,e这3个数便是Private Key;然后找出m,使得e m==1mod(p-1)(q-1),再计算n=p q,则m,n这两个数便是Public key。运行时,需在地址栏前面输入“https://”,而不是通常命名用的“http://”,这表明使用了SSL协议。
● 构造数据库连接池来优化安全稳定地访问数据库
在电子商务的交易过程中。可能出现多个用户购买商品和付款,它们都需要频繁地访问数据库,为了解决多用户访问及并发控制,提高用户访问速度,保持系统的稳健性,需设计一个数据库缓冲池。数据库缓冲池技术是将数据库的连接进行统一管理的一种机制。它可以显著改善连入数据库的速度,而且可以跟踪连接的状态,为分析系统的运行状态提供了参考。连接池的工作原理如图2所示。源代码从略。
图2:连接池工作原理示意图
结语
电子商务的安全作为电子商务的关键需求和核心问题之一,涉及到两大因素5个层次,即技术因素和管理因素两大因素;网络结点的安全、数据通信的安全、公共程序的安全、用户的认证管理、安全管理等5个层次。本文采用安全中间件的解决方案,通过使用RMI机制、RSA加密算法、数据库连接池等多种关键技术相结合,成功地解决了电子商务交易过程中的安全问题,取得了较好的效果,作为一个实际课题的解决方案,电子商务安全中间件具有一定的应用价值。
电子商务安全的内涵及必要性
电子商务的安全,涉及到交易中各种数据的可靠性、完整性和可用性。就整个电子商务系统而言,安全性可以分为4个层次:(1)网络节点的安全性(2)通信的安全性(3)应用程序的安全性(4)用户的认证管理(5)安全管理。现分别叙述如下:
图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异常对象。
● 使用SSL加密来实现安全传输
SSL(Secure Socket Layer),安全套接字层,位于HTTP层和TCP层之间,用来建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。
使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。加密解密通常用RSA算法来实现分3步完成:第一步:生成密钥对;第二步:公钥加密;第三步:私钥解密。为简单起见,这里只列出密钥对的生成过程,源代码如下:
//生成密钥对的JAVA源代码
public int generateKeyPair(int length){
BigIntegerp, q, n, d, e, pSub1, qSub1, phi;
BigIntegerdP, dQ, qInv;
int pbitlength = (length + 1) / 2;
int qbitlength = (length- pbitlength);
e=new BigInteger("65537",10);
//生成素数p,并且使p-1与e互素
for (;;){
p = new BigInteger(pbitlength, 50,new SecureRandom());
if (e.gcd(p.subtract(ONE)).equals(ONE)) break;
}
for (;;){
//生成素数q,并且使q-1与e互素,与p不相等
for (;;)
{
q = new BigInteger(qbitlength,50,new SecureRandom());
if (e.gcd(q.subtract(ONE)).equals(ONE) && !p.equals(q)) break;
}
//模数n=p*q
n = p.multiply(q);
if (n.bitLength() == length) break;
p = p.max(q);
}
pSub1 = p.subtract(ONE);
qSub1 = q.subtract(ONE);
phi = pSub1.multiply(qSub1);
d = e.modInverse(phi);
dP = d.remainder(pSub1);
dQ = d.remainder(qSub1);
qInv = q.modInverse(p);
pukParam=new RSAPublicKey(n, e);
pvkParam=new RSAPrivateKey(n, e, d, p, q, dP, dQ, qInv);
return 1;
}
以上生成密钥对的代码中,生成p、q、e、d、n 等数是核心。其算法为:先找出3个数p,q,e,其中p,q是两个相异的质数,e是与(p-1)(q-1)互质的数,p,q,e这3个数便是Private Key;然后找出m,使得e m==1mod(p-1)(q-1),再计算n=p q,则m,n这两个数便是Public key。运行时,需在地址栏前面输入“https://”,而不是通常命名用的“http://”,这表明使用了SSL协议。
● 构造数据库连接池来优化安全稳定地访问数据库
在电子商务的交易过程中。可能出现多个用户购买商品和付款,它们都需要频繁地访问数据库,为了解决多用户访问及并发控制,提高用户访问速度,保持系统的稳健性,需设计一个数据库缓冲池。数据库缓冲池技术是将数据库的连接进行统一管理的一种机制。它可以显著改善连入数据库的速度,而且可以跟踪连接的状态,为分析系统的运行状态提供了参考。连接池的工作原理如图2所示。源代码从略。
图2:连接池工作原理示意图
结语
电子商务的安全作为电子商务的关键需求和核心问题之一,涉及到两大因素5个层次,即技术因素和管理因素两大因素;网络结点的安全、数据通信的安全、公共程序的安全、用户的认证管理、安全管理等5个层次。本文采用安全中间件的解决方案,通过使用RMI机制、RSA加密算法、数据库连接池等多种关键技术相结合,成功地解决了电子商务交易过程中的安全问题,取得了较好的效果,作为一个实际课题的解决方案,电子商务安全中间件具有一定的应用价值。