《毕业论文数字签名在移动商务中的应用》由会员分享,可在线阅读,更多相关《毕业论文数字签名在移动商务中的应用(23页珍藏版)》请在金锄头文库上搜索。
1、德州学院 物理系 2011届 电子信息工程专业 毕业论文数字签名技术在移动商务中的应用 (德州学院物理系,山东德州253023)摘 要 移动商务作为一种全新的商务和服务方式,在给用户带来低成本和便捷的同时,也带了诸多安全问题。解决这些问题的手段有很多,数字签名是比较常用且非常有效的一种方法。它提供了不可抵赖、数据源认证、 身份识别等特性。本文工作主要针对移动商务中的安全问题,重点研究其中的数字签名。通过设计手机银行数字签名系统,在保障移动商务安全性的同时,为用户提供了安全的信息传递途径,特别是为移动商务的发展提供了技术支持。关键词 移动商务; 签名; 手机银行; RSA; DES1 绪论移动商
2、务(M-Commerce)是由电子商务(E-Commerce)的概念衍生出来,是相对于以 PC 机为主要界面的传统有线的电子商务而言,主要指通过手机、掌上电脑等移动通讯设备与移动上网技术结合所构成的一个商务体系,借助于短信、WAP(GPRS、CDMA、3G)和RFID等方式实现,应用涉及手机银行、移动支付、移动订票、手机电邮、移动搜索等领域1。与传统的电子商务相比,移动商务有不受时间、地点的限制的优点。这种更加方便的信息交流方式意味着顾客需求更加丰富和多样化,同时也为企业带来了更多的商机。随着无线通信技术的发展,移动商务已经成为电子商务研究热点。移动商务是将现代信息科学技术和传统商务活动相结合
3、,随时随地为用户提供各种个性化的、定制的在线动态商务服务2。 “手机银行数字签名系统”基于JAVA语言及其分支J2ME,在客户端使用DES对称算法对要传输的数据及其摘要进行加密,以保证在传输数据过长时不至于出现加密时间过长导致设备卡机的情况3。然后使用RSA非对称算法完成对DES密钥的加密。在服务端用RSA的公钥进行解密获得DES的密钥,然后用DES解密传输的数据获得原文和摘要。对原文生成摘要,比较两个摘要以确定传输数据的完整性4。在这里首先要在服务端制作一个简单的数据库以实现手机银行的基本信息储存,并要在手机端和服务端实现手机银行的基本功能,并以此为载体完成数字签名系统5。其中还要解决密钥在
4、手机端生成速度慢、易卡机等由设备自身局限性所导致的问题6。2系统采用的主要技术2.1 JAVA语言JAVA是由Sun Microsystems公司于1995年5月推出的JAVA程序设计语言(以下简称JAVA语言)和JAVA平台的总称。用JAVA实现的HotJAVA浏览器(支持JAVA applet)显示了JAVA的魅力:跨平台、动态的Web、Internet计算。从此,JAVA被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持JAVA applet。JAVA分为三个体系J2SE(JAVA2 Platform Standard Edition,JAVA平台标准版),J2EE (JAVA
5、2 Platform,Enterprise Edition,JAVA平台企业版),J2ME(JAVA 2 Platform Micro Edition,JAVA平台微型版)。2.1.1 JAVA主要特性(1)JAVA语言是简单的。JAVA语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用JAVA。另一方面,JAVA丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,JAVA语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。(2)JAVA语言是一个面向对象的。JAVA语言提供类、接口和继承等原语,为了
6、简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。JAVA语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。(3)JAVA语言是分布式的。JAVA语言支持Internet应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVA.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。(4)JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮性的重要保证。(5)JAVA语言是安全的。JAVA通常被用在网
7、络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。除了JAVA语言具有的许多安全特性以外,JAVA对通过网络下载的类具有一个安全防范机制(类ClassLoader),并提供安全管理机制(SecurityManager)让JAVA应用设置安全哨兵。 (6)JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个JAVA平台的任何系统中运行。(7)JAVA语言是可移植的。这种可移植性来源于体系结构中立性,另外,JAVA还严格规定了各个基本数据类型的长度。JAVA系统本身也具有很强的可
8、移植性。(8)JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式, 然后可以在实现这个JAVA平台的任何系统中运行。在运行时,JAVA平台中的JAVA解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。(9)JAVA是高性能的。与那些解释型的高级脚本语言相比,JAVA的确是高性能的。事实上,JAVA的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 (10)JAVA语言是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。JAVA语言支持多个线程的同时执行,并提供
9、多线程之间的同步机制(关键字为synchronized)。(11)JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。特别是JAVA企业应用编程接口(JAVA Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库7。2.1.2 J2ME体系结构无线设备是信息技术领域中涌现出的新选手
10、。由于无线设备精巧便利,易于手持,这使信息技术的目光迅速从PC转移到了移动电话、PDA以及寻呼机上。随着用无线设备访问网络及其他计算设备的需求不断增长,这种设备的市场获得巨大增长。正是在这种情况下,Sun Microsystems公司提出了针对这类设备的JAVA平台,即J2ME(Java 2 Micro Edition),以迎合这种市场需求。J2ME是按照分层的构想而设计的,从下而上每层都增加了一些功能。最基本的要求是运行Java应用的虚拟机。由虚拟机再加上其他一些东西构成了配置(configuration),配置之上是配置文件(profile)。具体要求增加什么配置文件是由设备以及所使用的配
11、置所规定的。图2-1描述了J2ME的体系结构。(1)J2ME虚拟机层 资源受限设备上所需的虚拟机应具有非常小的体积,J2ME虚拟机正好满足了这种要求。(2)配置层 配置构成了J2ME平台的基础。它为特定类别的设备提供基本的、最低限度的功能,在设计中只考虑该类中所有设备所共有的功能。(3)配置文件层 配置提供的功能非常有限,它只是准备了一个基础,以便能够在它上面增加所需要的任何东西。真正提供功能的是配置文件,它能够提供图形用户接口、更好的联网支持、数据库管理以及分布式计算等。同配置一样,配置文件也是特定于设备类别的。有些配置文件适用于小设备,而有些则适用于那些受约束较少的设备8。图2-1 J2M
12、E体系结构框图2.1.3 J2EE体系结构J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE平台采用一个多层次分布式的应用模式。这意味着应用逻辑根据功能被划分成组件,组成J2EE应用的不同应用组件安装在不同的服务器上,这种划分是根据应用组件属于多层次J2EE环境中的哪一个层次来决定的。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:(1)运行在客户机器上的客户层组件;(2)运行在J2EE服务器上的Web层组件;(3)运行在J2EE服务器上的业务层组件;(4)运行在EIS服务器上的企业信息系统层软件。J2EE
13、多层次应用一般被认为是三层应用,因为它们是被分布在三个不同的地点:客户端机器、J2EE服务器和数据库或后端的传统系统服务器。三层架构应用是对标准的客户端服务器应用架构的一种扩展。即在客户端应用和后台存储之间增加一个多线程应用服务器9。2.2 JBoss服务器 JBoss是一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。Jboss通过类载入时,使用Javassist对字节码操作实现动态AOP框架,Javassist是一个开源的编辑字节码的类库。JBoss的构架和其他J2EE应用服务器的构架有着
14、巨大的不同。JBoss的模块架构是建立在JMX底层上的,图2-2展现了JBoss主要组件和JMX的联系。EJB ContainerJBossTxDeploymentJBossNSJMX ImplementationWeb ServerJBossCxJBossSx点击登录 图2-2 JBoss主要组件和JMX的联系2.2.1 JMX - 层次JMX是一个可复用框架,它为远程(Remote)和本地(Local)管理工具扩展了应用。它的架构是层式架构。他们是实现层(Instrumentation layer)、代理层(Agent layer)和发布层(Distribution layer)。其中,发
15、布层还在等待未来的标准化。简要的表述是,用户使用管理Bean,MBean来提供获得相应资源的实现方法。实现层实现相关的特性资源并将它发布于JMX相关应用中,它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源。2.2.2 JBoss主要模块主要的JBoss模块是在MeanServer上的可管理MBean。 (1)JBoss EJB容器是JBoss服务器的核心实现。它有两个特性,第一是在运行期产生EJB 对象的Stub和Skeleton类,第二是支持热部署。(2)JBossNS是JBoss命名服务用来定位对象和资源。它实现了JNDI J2EE规范。(3)JBossTX 是由JT
16、A/JTS支持的交易管理控制。 (4)部署服务支持EJB(jar)、Web应用文档(war)和企业级应用文档(ears)的部署。它会时刻关心J2EE应用的URL情况,一旦它们被改变或出现的时候将自动部署。(5)JBossMQ使Java 消息规范(JMS)的实现。(6)JBossSX支持基于JAAS的或不支持JAAS机制的安全实现。(7)JBossCX实现了部分JCA的功能。JCA制订了J2EE应用组件如何访问基于连接的资源。(8)Web服务器支持Web容器和Servlet引擎。JBoss 2.4.x版本支持Tomcat 4.0.1,Tomcat 3.23和Jetty 3.x服务。2.2.3 JBoss架构设计中的两个重要