当前位置:文档之家› Java Web 开发电子商务应用中可能遇到的安全问题及解决办法

Java Web 开发电子商务应用中可能遇到的安全问题及解决办法

Java Web 开发电子商务应用中可能遇到的安全问题及解决办法
Java Web 开发电子商务应用中可能遇到的安全问题及解决办法

附件五

江苏经贸职业技术学院

期末考试(论文)

题目:

Java Web 开发电子商务应用中可能遇到的安全问题及解决办法

系(院) 信息技术系

专业班级

学号

学生姓名

指导教师苏世文职称讲师

2011年6 月14 日

题目

摘要:

ava Web技术自诞生到现在越来越广泛,已经成为在电子商务应用流行技术中的一种。对Java Web应用程序面临的威胁做了比较详细的技术分析与探讨,指出了相关Web技术在电子商务应用中存在的漏洞,分析并提出了安全解决方案。本文详细地阐述了目前电子商务中存在的安全问题,包括网络本身的安全和网上交易中的安全,在此基础上,提出了这两方面安全问题的解决方案

关键词:电子商务;网络安全;通信安全;应用程序;认证管理;安全管理

目录

前言

1 网络节点的安全

2 数据通信的安全

3 应用程序的安全性

4用户的认证管理

5安全管理

6用RMI机制的3层模式结构来封装加密算法

7使用SSL加密来实现安全传输

8构造数据库连接池来优化安全稳定地访问数据库

9结束语

参考文献

前言

近年来,随着因特网技术的发展和Java的兴起,互联网快速发展,Web应用正迅速崛起并得到普及,在北美地区兴起了一种新的企业经营方式,即通过已有的电子网络环境进行快速有效的商业活动的方式,这就是电子商务。它能提供准确、快速的商务运作,是当今世界商务运作发展的主流方向。由于网络本身存在安全漏洞,因此,电子商务也不可避免地存在着安全问题。因此,Web应用程序的安全是越来越受到关注

● 网络节点的安全

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

● 数据通信的安全

数据通信的安全是指数据传输过程的安全性。它主要依靠对通信数据进行加密来保证,因而通信链路上的数据安全在一定程度上取决于加密的算法和加密的强度。电子商务系统的数据通信主要存在于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) %26amp;%26amp; !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:连接池工作原理示意图

结语:Java Web应用程序的开发不仅仅基于Java技术,还与Web技术相结合。

针对Web技术存在的漏洞提出在开发电子商务中的开发安全、网络安全、数据库系统安全密切相关。任意一个疏忽都会导致全部系统的安全风险。所以,必须结合实际情况

具体分析数据库安全薄弱环节,并制定切实可行的安全对策。综合采用各层次的安全策略,并研究、选取新的安全机制,才能更好地保护电子商务应用的安全,使得电子商务更好的应用和发展

参考文献:

1孔凡飞.基于WS Security的电子商务Web服务安全的概要设计[D]杭州:浙江大学,20030201:25.

2刘晓敏.网络环境下信息安全的技术保护.情报科学,1999,17(2):122—125

3张晓琪,廖建勇.电子商务理论与实践.中国电力出版社,1999

4贾晶,陈元等.信息系统的安全与保密.清华大学出版社,1999

5汪致远等.决胜信息时代.新华出版社,2000

相关主题
文本预览
相关文档 最新文档