数字签名技术在移动商务中的应用毕业论文.doc_第1页
数字签名技术在移动商务中的应用毕业论文.doc_第2页
数字签名技术在移动商务中的应用毕业论文.doc_第3页
数字签名技术在移动商务中的应用毕业论文.doc_第4页
数字签名技术在移动商务中的应用毕业论文.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字签名技术在移动商务中的应用摘 要移动商务作为一种全新的商务和服务方式,在给全球用户带来低成本和便利的同时,也带了大量的安全问题。安全性是移动商务能否取得成功的关键,由于移动网络设备所具有的局限性给解决问题带来了许多麻烦。此外在连接缝隙处及连接通信两端的协议之间还存在一些特殊的安全问题。解决以上问题的手段有很多,数字签名是比较常用且非常有效的一种方法。它提供了不可抵赖、数据源认证、身份识别等特性。本文工作主要针对移动商务中的安全问题,重点研究其中的数字签名问题。具体包括如下内容:1首先本文介绍了移动商务发展现况,具体说明了现在移动商务活动过程中存在的一些安全性问题,体现了用各种技术手段加强移动商务活动安全性的必要性与迫切性。2.简单介绍了数字签名技术在目前现实生活中的广泛应用,说明了数字签名技术在移动商务中应用的可行性以及实用性,为下文做了铺垫。3.从技术、经济以及社会等多个角度分析数字签名技术运用于移动商务的可行性,简单说明了 “手机银行数字签名系统”和“基于SMS服务的手机签名系统”使用的技术和签名原理。4.分别分析了“手机银行数字签名系统”和“基于SMS服务的手机签名系统”的系统要求,功能结构以及数据流程。5.详细阐述了“手机银行数字签名系统”和“基于SMS服务的手机签名系统”的总体设计与实现,用大量的图表与文字说明分析了系统的各个模块活动流程。课题的研究说明了数字签名技术是解决移动商务安全性问题的一种简单有效的途径,同时为用户提供了安全的信息传递途径,特别是为移动商务的发展提供了便利。关键词:数字签名 移动商务 手机银行 SMS RSA DES【要求空2行】The Application of Digital Signature in Mobile CommerceABSTRACT不用空行As a new business and service pattern, mobile commerce brings low cost and convenience, but security problems as well. Security is the key to mobile commerces success. The limitation of mobile network system brings trouble for solving the problems, and in addition, there are still some security problems at the gap between the junctions and between the protocols of the two sides. There are various ways to solve the above problems, and digital signature is a very effective way with its characteristics of undeniable, data source authentication, and identification. Concerning about the security problems in mobile businesses, this paper focuses on digital signature technology. The details are as follows. 1. This paper introduces the developing status of mobile businesses and the details of problems in mobile business process nowadays, which shows the necessity of strengthening security protection of mobile businesses in all technical means. 2. In order to pave the way for the section below, this paper gives a brief introduction of the extensive daily applications of digital signature, and illustrates the practical feasibility of digital signature in mobile businesses. 3. The feasibility of digital signatures application in mobile businesses is analyzed in various aspects such as technology and economy. This paper briefly explains the technology of “Cell Phone Bank Digital Signature System” and “Cell Phone Signature System Based on SMS”, then illustrates the signature principles in those two systems. 4. Analysis of system requirements, function structure and data flow process of “Cell Phone Bank Digital Signature System” and “Cell Phone Signature System Based on SMS”. 5. This paper detailed the general design and implementation of “Cell Phone Bank Digital Signature System” and “Cell Phone Signature System Based on SMS”, and analyses the activity flow of each module with a lot of charts and text description. This study addresses that digital signature is a simple and effective way to solve the security problems in mobile businesses, and it will provide secure means for information transmission, especially provide convenience for the development of mobile businesses. Key Words: Digital Signature SMS Mobile Banking Mobile Commerce RSA DES目 录(下面空2行)第一章 前言11.1研究意义11.1.1手机银行数字签名系统11.1.2基于SMS服务的手机签名系统21.2 国内外现状调查21.2.1手机银行数字签名系统21.2.2基于SMS服务的手机签名系统41.3 研究目标41.4 研究内容41.5 本章小结5第二章 系统可行性分析62.1技术可行性62.2社会可行性132.3经济可行性132.4本章小结13第三章 综合分析143.1软件系统的综合要求143.1.1系统功能要求143.1.2安全性143.2功能结构分析153.2.1手机银行数字签名系统153.2.2基于SMS服务的手机签名系统163.3 数据流程分析163.4系统目标173.5程序设计及语言选择173.5.1程序设计的方法173.5.2程序设计语言的选择183.5.3编码的风格183.5.4软硬件的实现193.6本章小结19第四章 软件设计与实现204.1总体设计204.1.1手机银行数字签名系统204.1.2基于SMS服务的手机签名系统224.2 详细设计244.2.1手机银行数字签名系统244.2.2基于SMS服务的手机签名系统364.3本章小结43第五章 结论445.1本论文的主要工作445.2存在的问题及进一步工作44参考文献46附 录47致 谢55第一章 前言1.1研究意义1.1.1手机银行数字签名系统 标题1、 2上下空1行,参考撰写规范移动商务(M-Commerce),由电子商务(E-Commerce)的概念衍生出来,是相对于以 PC 机为主要界面的传统有线的电子商务而言,主要指通过手机、掌上电脑等移动通讯设备与移动上网技术结合所构成的一个商务体系,借助于短信、WAP(GPRS、CDMA、3G)和 RFID等方式实现,应用涉及手机银行、移动支付、移动订票、手机电邮、移动搜索等领域。与传统的电子商务相比,移动商务有不受时间、地点的限制的优点。这种更加方便的信息交流方式意味着顾客需求更加丰富和多样化,同时也为企业带来了更多的商机。据Data-Monitor 所进行的一项研究表明,截至 2005 年,全球移动商务的收入已经达到了 317 亿美元。到 2008 年底,全球通过手持终端设备上网的人数超过通过 PC 上网的人数,全球移动商务用户数量达到 16.7 亿,产生 5540 亿美元的收入。在亚洲,2004 年中国移动、中国联通分别与相关银行联合推出了手机钱包业务、基于 WAP 通信方式的手机银行业务。权威数据显示:2004年中国移动商务应用市场规模为78.2 亿元,2009 年中国移动商务应用市场规模达到 300.5 亿元,年复合增长率达到 30.9%1。 很多地方多空格,下文也是移动商务作为一种全新的商务和服务方式,在给全球用户带来低成本和便利的同时,也带了大量的安全问题。安全性是移动商务能否取得成功的关键,移动商务中的安全问题包括如下几个问题: 交易的可靠性、 数据传输的机密性、交易的不可否认性和数据的完整性。由于移动网络设备具有的局限性:包括较小功率的CPU、较小的内存和显示屏、功能较弱的输入设备及电源的限制;以及无线网络具有受限的通讯环境:包括较低的带宽、较长的延时、较不稳定的连接和较大的不可预测性,这些因素都给解决上述问题带来了许多麻烦。另外,由于移动网络最终要接入有线因特网内,因此在连接缝隙处及连接两端的协议之间存在特殊的安全问题:如 PDA 与计算机的连接处、WAP 缝隙处及 WTLS 与 TLS连接处是移动网络更易受到攻击的地方2。为了解决这些问题,方案之一就是使用数字签名技术。数字签名(Digital Signature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。数字签名技术采用公钥密码体制,参与交换的是公开密钥,因而增加了私钥的安全性,并能同时满足移动商务所要求的身份鉴别和数据的机密性、完整性、不可否认性3。1.1.2基于SMS服务的手机签名系统随着移动商业的不断发展,对于移动用户和无线应用程序开发人员而言,安全性正在成为一个重要方面。无线通信是无线电波拦截容易获取的目标,而无线设备几乎没有任何计算能力来支持所有通信数据的强加密。而目前开发得很好的点对点安全性技术(如 SSL/TLS和 HTTPS)并不适合于多供应商、多中间 Web 服务的网络拓扑图。因此重点必须集中在保护内容本身而不是传递内容的连接上。当前,手机已成为人们相互沟通的重要工具,手机短信也随之成为了人们相互交流的重要手段。日常生活中人们有很多重要信息也用短信传递,比如:银行给客户发送账户信息;商家为供货商发送订货信息;商场上或政治场合重要的预约信息等等都有可能用短信传达。但是这些重要信息在传送阶段被截获或修改的可能性是很大的,因此,对这种以电子形式传输的信息需要一种独特的手段来保证其传达信息的真实性,来确保双方利益不受到潜在威胁的侵害。所以该问题的解决方案之一就是为其实施数字签名。现在数字签名已经在计算机相关领域中已得到了广泛应用,但是作为新生信息传递手段的手机短信却没有相关方面的产品和研究,所以为手机短信做数字签名成为了解决这一问题的相当有效且可行的办法。手机短信数字签名的使用可以完美的为短信息这一信息传输手段提供不可抵赖性、数据源认证、身份识别等特性。使这种简单、方便、快捷的信息传输手段得到更广阔的发展空间。1.2 国内外现状调查1.2.1手机银行数字签名系统随着无线通信技术的发展,移动商务已经成为电子商务研究热点。移动商务是将现代信息科学技术和传统商务活动相结合,随时随地为用户提供各种个性化的、定制的在线动态商务服务。但在无线世界里,人们对于进行商务活动安全性的考虑比在有线环境中要多。只有当所有的用户确信,通过无线方式所进行的交易不会发生欺诈或篡改、进行的交易受到法律的承认和隐私信息被适当的保护时,移动商务才有可能蓬勃开展。移动商务随着移动互联网技术的成熟发展迅速,其独特的应用领域使得其安全问题倍受关注。从技术角度上看,一方面无线通信的安全处在不断地发展和完善之中,其应用到移动商务中时要与其它的安全机制相结合才能满足实际应用的需要;另一方面有线电子商务的安全技术不能解决移动商务的安全问题,所以数字签名技术是一个现实的选择。因此,将这两方面进行改进并进行有机整合,才能营造一个安全的移动商务环境4。1976年 Diffie和Hellman引入公钥密码以后没过几年,出现了第一个数字签名方案RSAI。随后,出现了一批数字签名方案,但只有为数不多的签名方案经受了时间的考验。下面我们来回顾几个著名的方案。RSA签名方案主要是基于整数环ZN中求根的困难问题(N为两个大整数乘积)。显然,如果有人能分解N当然可以伪造出签名,然而至今人们仍然不知道RSA问题是否等价于大整数分解(所有的伪造攻击都是利用它的同态性质,但若对此数据加以填充等方法便可防止攻击)。1979年 ,Rabin提出了一种RSA的变形,此方案中其他参数与RSA一样,公开的指数为2。而2实际上不是RSA的一个有效的公钥,并且求解模N的平方根等价于分解模数N,所以对消息N签名必须知道的N分解。1950年,WILLiams给出了一个非常实用的方案的变形。在1984年,ELGamal提出了一个新型的数字签名方案,这个方案最大的好处,即它是一个随机化的签名体制,基于模素数p求解离散对数的困难问题。目前,该方案己经出现了七八种变形方案,其中的一个已经被选入MST的标准公开算法。人们随后又利用有限域椭圆曲线群的离散对数问题构造了一系列ELGamal数字签名方案其中包括ECDSA。在80年代末又出现了数字签名的另一种构造方法被引入,这些方案是由零知识身份认证协议导出的。这些数字签名主要有Schnor和GQ签名等。目前很多实用的数字签名方案都没有可证明的安全性(也就是说没有证明伪造消息的签名等价于通常假设的困难问题的求解)。最近,一系列可实用的数字签名方案(包括Schnor签名等)在随机预言模型下被证明是安全的。数字签名的安全性的形式化定义直到1988年才出现,该文中提出了一个基于无爪函数存在性假设的数字签名方案。这个概念非常适合于现实世界的情况。此后,Anl等人提出了一个更强的数字签名安全性的概念,即适应性选择消息攻击下的存在性强不可伪造的数字签名的概念。1992年中提出了在给定单向陷门函数的情况下如何构造安全的数字签名(RSA首当其冲的成为了候选,尽管该方案不是很实用)。在文献中,讨论了基于通常单向哈希函数的数字签名方案,Rompd证明了如何用单向函数构造通常单向哈希函数,同时单向函数的存在性也是安全数字签名方案存在的一个必要条件。数字签名的安全性证明分为基于随机预言模型的证明和基于标准模型的证明。目前己经提出了很多在随机预言模型下可证安全的数字签名。而在标准模型下可证安全的数字签名到目前为止还不是很多,其中有Gennar等人和Cramer等人分别提出了基于强RSA问题的签名体制,Boneh和Boyenlg提出了基于强壮Diffie-Hellman问题的短签名体制,Water于2005年提出了一个基于GDH群中CDH问题的签名。自1948 年 ,SahITnr 提出基于身份的第一个数字签名后,直到1988年GQ基于零知识证明又提出了一个基于身份的数字签名。很长一段时间内,基于身份的数字签名得不到很大的发展。2000年,Sakai,Ohgishi和Kasara利用双线性对构造了基于身份的签名方案。2003年,Cha等人和Dodis等人分别在Goldwasser、Micali和Qvest的工作基础上,提出基于身份的适应性选择密文攻击下的不可存在性伪造的数字签名的安全性概念,在这些概念中,攻击者除了具有适应性选择密文攻击的手段外,还可以获得私钥提取询问服务。2004 年,Belare 等人提供了一个证明框架,利用这个框架将至今为止典型的基于身份的数字签名体制进行了安全性考察。目前,对一个数字签名方案给出一个安全性证明(或者基于某些问题安全性证明不存在性是一个可以研究的重点。另外,提出一些基于随机预言模型或标准模型的可证安全的数字签名方案(包括基于身份的数字签名方案)都是研究的热点。从安全性证明的本质来讲它实际上是一种将伪造签名能力转化为基于解决方案的难题的过程。因此,寻求高效的规约也是对数字签名研究很有意义的一件事5。1.2.2基于SMS服务的手机签名系统目前在计算机领域的数字签名已经得到了相当广泛的应用,但是对于伴随着手机而生的新型信息传播手段的短信来说,数字签名却没有得到应用的发展。虽然人们已经渐渐认识到应用数字签名来保护J2ME/MIDP 应用程序的重要性,但是相关的技术依然停留在理论层面上。现在,银行等金融机构与客户交流的主要手段是通过手机短信,而其安全性却经常受到威胁,许多不法分子通过截获,伪造信息等手段进行诈骗活动。虽然手机用户已经有了一定的警觉性,但是对于此类信息的辨别还是困扰着广大用户。对信息实施数字签名可以很好的解决此类问题,因此基于SMS服务的手机签名系统是既具有研究意义的课题。1.3 研究目标通过对文件的数字签名及校验,保证文件的5: 已经有5了1可认证性:通信双方必须标识其本身。公钥证书上的数字签名可以验证该公钥的可靠性以及持有它的那一方的可靠性;2数据完整性:通信双方必须确保内容在传送期间不被改变。数字签名是保证数据完整性的最常用技术;3数据机密性:有时候,通信数据是敏感的,必须保密。数字签名不提供数据机密性。必须使用数据加密。4不可抵赖性:信息发送之后,发送方随后应该不能否认它。数字签名提供了部分解决方案。如果以数字方式对消息进行签名,则发送方无法否认其责任,因为只有他能提供这种签名。在移动商务中的不同环节其实现原理是一样的,但是其实现方法会有所不同。对于“手机银行数字签名系统”需要实现的是手机端与服务端电脑的通信,手机端与服务端密钥的生成,手机端的签名以及在服务端最后的验证。对于“基于SMS服务的手机签名系统”需要实现的是短信的编写,签名,发送以及接收和校验。1.4 研究内容“手机银行数字签名系统”基于JAVA语言及其分支J2ME,在客户端使用DES对称算法对要传输的数据及其摘要进行加密,以保证在传输数据过长时不至于出现加密时间过长导致设备卡机的情况。然后使用RSA非对称算法完成对DES密钥的加密。在服务端用RSA的公钥进行解密获得DES的密钥,然后用DES解密传输的数据获得原文和摘要。对原文生成摘要,比较两个摘要以确定传输数据的完整性。在这里首先要在服务端制作一个简单的数据库以实现手机银行的基本信息储存,并要在手机端和服务端实现手机银行的基本功能,并以此为载体完成数字签名系统。其中还要解决密钥在手机端生成速度慢、易卡机等由设备自身局限性所导致的问题。“基于SMS的手机签名系统”主要完成手机短信的数字签名及校验,因为收发双方都要以手机为运行媒介,受到手机操作系统以及其硬件能力的限制。程序实现过程需要更加简洁,算法需要尽量简单。签名过程与“手机银行数字签名系统”的大体相同,即在信息发送端使用DES对称算法对要传输的数据及其摘要进行加密,以保证在传输数据过长时不至于出现加密时间过长导致设备卡机的情况。然后使用RSA非对称算法完成对DES密钥的加密。在信息接收端用RSA的公钥进行解密获得DES的密钥,然后用DES解密传输的数据获得原文和摘要。对原文生成摘要,比较两个摘要以确定传输数据的完整性校验。但是因为加密算法中所使用的很多库函数和类文件本来在J2ME中是不存在的,所以很好的实现其功能,需要重写大量的基本函数以及类文件,这就要求对RSA与DES算法有较深刻的理解,以便很好的应用其进行信息的签名及校验。1.5 本章小结本章主要介绍了此项目的研究意义,国内外现状和研究目标以及研究内容,对此次毕业设计有了一个综合的表述,对所做系统有了一个初步描述。在接下来的章节中将对系统实施过程中所做的每一项工作做出详细讲解。具体内容组织如下:第二章将主要对系统从技术、经济以及社会等多个角度进行可行性分析,简单说明了 “手机银行数字签名系统”和“基于SMS服务的手机签名系统”使用的技术和签名原理。第三章将主要对系统进行需求分析,分别分析了“手机银行数字签名系统”和“基于SMS服务的手机签名系统”的系统要求,功能结构以及数据流程。第四章将详细阐述“手机银行数字签名系统”和“基于SMS服务的手机签名系统”的总体设计与实现,用大量的图表与文字说明分析了系统的各个模块活动流程。第五章将对全文进行总结,说明系统存在的问题及进一步工作。第二章 系统可行性分析目前国内的数字签名技术的应用并不多见,大多进行理论研究,很少投入实际应用。而在移动商务飞速发展的今天,利用计算机网络和手机短信息传递商务信息已经成为了当今移动商务活动中信息交流的重要手段。因为此类信息以计算机网络和手机网络为介质传播,所以其安全性并不高,比如:信息可能会被截获;信息可能被截获后做修改再次发出;信息的发送者可能被其他人所冒充;信息的发送者可能会否认信息的内容等等,这些都严重的威胁着信息发送和接受双方的利益,如何解决这些现实中不可忽视的问题,已成为网络安全工作者所研究的重要课题,数字签名为此问题给出了一个近乎完美的解决方案。数字签名所持有的特性,即:可认证性,【分号】数据完整性,数据机密性,不可抵赖性,为此项工作提供了良好的可行性。而另一方面,作为新型信息传递方式的手机短信来说,假设一下,您是一位股票交易者,当您不在交易大厅时,使用手机短信来跟踪股票价格变化。在上下班途中,您的电话提醒您正在监视的一只股票的价格已经跌入您的心理最低价。现在,您应根据此提示买进它并利用此低价来赚一笔吗?在您采取任何行动之前,您必须绝对确保提示本身是可信的。如果竞争者可能拦截并更改消息(例如,更改股票代码),那么他就可能引诱您买进错误的股票,并将他的高价位股票抛给您。您如何知道消息在从监视服务到您电话的途中没有被篡改呢?又如,银行为其客户发送账户信息,信息为账户资金的转入或转出,但是客户并没有做此项操作,客户对其真实性加以质疑。但因其涉及到自身利益,所以又不能忽视其存在,难道就这么不了了之吗?从上面可以看出,信息的真实性应该得到足够的重视,为此对短信息进行数字签名成为了解决上述问题可行且有效地方法。 2.1技术可行性通过对现有的数字签名系统和应用状况做出分析和对比后, “手机银行数字签名系统”的服务端采用了适用于网络,可移植性强,功能强大的JAVA语言作为基础开发语言,JBOSS作为服务器,数据库则采用了Hypersonic,手机端则采用J2ME。数字签名技术的核心加密算法为“RSA不对称算法”与“DES对称算法”。在手机中运行的“基于SMS服务的手机签名系统”,采用了在手机系统中应用比较广泛的JAVA语言的分支J2ME作为基础,用“RSA不对称算法”与“DES对称算法”实现对手机短信的数字签名及其校验。下面对此次开发过程中应用的三项基本技术作简单的介绍:2.1.1 JAVA语言JAVA是由Sun Microsystems公司于1995年5月推出的JAVA程序设计语言(以下简称JAVA语言)和JAVA平台的总称。用JAVA实现的HotJAVA浏览器(支持JAVA applet)显示了JAVA的魅力:跨平台、动态的Web、Internet计算。从此,JAVA被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持JAVA applet。另一方面,JAVA技术也不断更新。JAVA平台由JAVA虚拟机(JAVA Virtual Machine)和JAVA应用编程接口(Application Programming Interface、简称API)构成。JAVA 应用编程接口为JAVA应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个JAVA平台之后,JAVA应用程序就可运行。现在JAVA平台已经嵌入了几乎所有的操作系统。这样JAVA程序可以只编译一次,就可以在各种系统中运行。JAVA应用编程接口已经从1.1x版发展到1.2版。目前常用的JAVA平台基于JAVA1.4,最新版本为JAVA1.7。JAVA分为三个体系J2SE(JAVA2 Platform Standard Edition,JAVA平台标准版),J2EE (JAVA 2 Platform,Enterprise Edition,JAVA平台企业版),J2ME(JAVA 2 Platform Micro Edition,JAVA平台微型版)。1JAVA主要特性(1)JAVA语言是简单的。JAVA语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用JAVA。另一方面,JAVA丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,JAVA语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。(2)JAVA语言是一个面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。JAVA语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,JAVA语言是一个纯的面向对象程序设计语言。(3)JAVA语言是分布式的。JAVA语言支持Internet应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVA.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。JAVA的RMI(远程方法激活)机制也是开发分布式应用的重要手段。(4)JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮性的重要保证。对指针的丢弃是JAVA的明智选择。JAVA的安全检查机制使得JAVA更具健壮性。(5)JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。除了JAVA语言具有的许多安全特性以外,JAVA对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让JAVA应用设置安全哨兵。 (6)JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个JAVA平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 (7)JAVA语言是可移植的。这种可移植性来源于体系结构中立性,另外,JAVA还严格规定了各个基本数据类型的长度。JAVA系统本身也具有很强的可移植性,JAVA编译器是用JAVA实现的,JAVA的运行环境是用ANSI C实现的。(8)JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式, 然后可以在实现这个JAVA平台的任何系统中运行。在运行时,JAVA平台中的JAVA解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。(9)JAVA是高性能的。与那些解释型的高级脚本语言相比,JAVA的确是高性能的。事实上,JAVA的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。 (10)JAVA语言是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 JAVA语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。(11)JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,JAVA中的类有一个运行时刻的表示,能进行运行时刻的类型检查。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。JAVA的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是JAVA企业应用编程接口(JAVA Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库7。2J2ME体系结构无线设备是信息技术领域中涌现出的新选手。由于无线设备精巧便利,易于手持,这使信息技术的目光迅速从PC转移到了移动电话、PDA以及寻呼机上。随着用无线设备访问网络及其他计算设备的需求不断增长,这种设备的市场获得巨大增长。正是在这种情况下Sun Microsystems公司提出了针对这类设备的JAVA平台,即J2ME(Java 2 Micro Edition),以迎合这种市场需求J2ME是按照分层的构想而设计的,从下而上每层都增加了一些功能。最基本的要求是运行Java应用的虚拟机。由虚拟机再加上其他一些东西构成了配置(configuration),配置之上是配置文件(profile)。具体要求增加什么配置文件是由设备以及所使用的配置所规定的。图2.1描述了J2ME的体系结构:图2.1 J2ME体系结构框图(1)J2ME虚拟机层 资源受限设备上所需的虚拟机应具有非常小的体积,J2ME虚拟机正好满足了这种要求。在J2ME中有两类虚拟机:KVM,它经过仔细设计,高度优化以适应移动手机、寻呼机和PDA等受资源约束的设备;CVM,其功能非常接近传统的虚拟机,主要是针对运算能力较佳、电力供应相对充足的嵌入式装置,包括机顶盒、汽车导航系统、手持PC等。(2)配置层 配置构成了J2ME平台的基础它为特定类别的设备提供基本的、最低限度的功能,在设计中只考虑该类中所有设备所共有的功能。由于设备可以大致分为两类所以需要两种配置:一种是联网的受限设备配置(CLDC),对应的虚拟机是KVM;一是联网设备配置(CDC),对应的虚拟机是CVM。配置将说明支持JAVA的哪些部分、虚拟机的哪些特征以及哪些核心库。(3)配置文件层 配置提供的功能非常有限,它只是准备了一个基础,以便能够在它上面增加所需要的任何东西。真正提供功能的是配置文件,它能够提供图形用户接口、更好的联网支持、数据库管理以及分布式计算等。同配置一样,配置文件也是特定于设备类别的。有些配置文件适用于小设备,而有些则适用于那些受约束较少的设备。例如,MIDP(移动信息设备配置文件)和PDA配置文件运行在CLDC之上,分别用于移动电话和PDA那样的设备,而Personal Profile运行在CDC上,用于机顶盒等设备8。3J2EE体系结构J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE平台采用一个多层次分布式的应用模式。这意味着应用逻辑根据功能被划分成组件,组成J2EE应用的不同应用组件安装在不同的服务器上,这种划分是根据应用组件属于多层次J2EE环境中的哪一个层次来决定的。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:(1)运行在客户机器上的客户层组件(2)运行在J2EE服务器上的Web层组件(3)运行在J2EE服务器上的业务层组件(4)运行在EIS服务器上的企业信息系统层软件。J2EE多层次应用一般被认为是三层应用,因为它们是被分布在三个不同的地点:客户端机器、J2EE服务器和数据库或后端的传统系统服务器。三层架构应用是对标准的客户端服务器应用架构的一种扩展【全角句号】即在客户端应用和后台存储之间增加一个多线程应用服务器9。2.1.2.JBoss服务器 JBoss是一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。Jboss通过类载入时,使用Javassist对字节码操作实现动态AOP框架,Javassist是一个开源的编辑字节码的类库。近年来,在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布,这使得JBoss广为流行。Boss是一个运行EJB的J2EE应用服务器,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制(JTS)、命名机制(JNDI)和管理支持(JMX)。它是开放源代码的项目,遵循最新的J2EE规范。目前的JBoss发布版2.2.4实现了EJB 1.1和部分EJB 2.0的标准、JMS 1.0.1、Servlet 2.2、JSP 1.1、JMX 1.0、JNDI 1.0、JDBC 1.2和2.0扩充(支持连接池 (Connection Polling)、JavaMail/JAF、JTA 1.0和JAAS1.0标准,JBoss是100%纯Java实现能运行于任何平台。 从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web)【开头大写】,它体现了J2EE规范中最新的技术,并且它还在the JavaWorld Editors Choice 2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。 另外,JBoss应用服务器还具有许多优秀的特质: 它将具有革命性的JMX微内核服务作为其总线结构;它本身就是面向服务的架构(Service-Oriented Architecture,SOA);它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。 因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。 JBoss的构架和其他J2EE应用服务器的构架有着巨大的不同。JBoss的模块架构是建立在JMX底层上的,下图展现了JBoss主要组件和JMX的联系。图2.1JBoss主要组件和JMX的联系1JMX - 层次JMX是一个可复用框架,它为远程(Remote)和本地(Local)管理工具扩展了应用。它的架构是层式架构。他们是实现层(instrumentation layer)、代理层(agent layer)和发布层(distribution layer)。【开头大写】其中,发布层还在等待未来的标准化。简要的表述是,用户使用管理Bean,MBean来提供获得相应资源的实现方法。实现层实现相关的特性资源并将它发布于JMX相关应用中,它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源。图2.2 JMX - 层次2JBoss主要模块主要的JBoss模块是在MeanServer上的可管理MBean。 (1)JBoss EJB容器是JBoss服务器的核心实现。它有两个特性,第一是在运行期产生EJB 对象的Stub和Skeleton类,第二是支持热部署。(2)JBossNS是JBoss命名服务用来定位对象和资源。它实现了JNDI J2EE规范.(3)JBossTX 是由JTA/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服务.3JBoss架构设计中的两个重要的特性(1)使用JMX作为一个软件总线垂直的贯穿其所有的服务,通过将新的服务组件遵循JMX规范挂接上总线,使得系统扩展现有的服务变得容易。可插入式框架被广泛的运用于服务的实现。开发者可以选择他们需要的服务并编写他们所需要的相应实现,通过定义在部署描述文件中,让JBoss服务器知道。 (2)容器被设计成为动态代理机制,这样使容器的实现变得简单和使开发者避免费劲的将jar文件进行预编译以获得stub和skeleton代码。但是这样做潜在的问题是性能和可测性,因为我们知道java反射机制会引起性能的损失。JBoss中存在着相应的优化方案并且在将来的研究中我们会论述该优化方法在什么时候工作并且是如何工作的10。2.1.3.数字签名技术简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、DES/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。数字签名(Digital Signature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。数字签名主要的功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。数字签名是个加密的过程,数字签名验证是个解密的过程。具有数字签名功能的个人安全邮件证书是用户证书的一种,是指单位用户收发电子邮件时采用证书机制保证安全所必须具备的证书。个人安全电子邮件证书是符合x.509标准的数字安全证书,结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。 具有数字签名功能的 个人安全邮件证书中包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(河南CA)以及颁发者对该证书的签名。个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。目前, MS Outlook 、Outlook Express、Foxmail及河南CA安全电子邮件系统均支持相应功能。使用个人安全邮件证书可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性11。本文主要应用DES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论