美章网 资料文库 PKI技术在电子商务中应用范文

PKI技术在电子商务中应用范文

PKI技术在电子商务中应用

摘要:本文主要介绍了PKI技术以及在电子商务中的应用,并在文章最后介绍了一个系统的设计。

关键词:PKI;电子商务;系统

1电子商务及其PKI技术概述

1.1背景分析

随着Internet和计算机网络技术的蓬勃发展,人类正在进入以网络为主的信息时代,传统的贸易正在向电子商务发展。目前,电子商务已成为各行各业扩展业务的有力方式,且发展前景十分诱人。然而,互联网络的开放性和匿名性的特征使电子商务的安全问题变得越来越突出,诸如信息的泄露或篡改,欺骗,抵赖等问题。

为了使基于Internet的电子交易与传统交易一样安全可靠,必须建立一个安全、便捷的电子商务应用环境,保证整个商务活动中信息的安全性。而数据加密技术则构成了电子商务安全的基础,可以说,没有数据加密技术,就没有电子商务地安全。

PKI(公钥基础设施)就是实现电子商务安全的关键基础技术,它是以密码学原理为理论基础,利用数字证书、数字签名等加密技术实施构建的安全程度极高的加密/签名系统,是解决电子商务发展中安全问题的最可行、有效的措施。在充分利用互联网实现资源共享的前提下,PKI真正意义上解决了网上身份认证、信息完整性和抗抵赖等安全问题,消除匿名带来的风险,消除开放网络带来的风险,确保电子交易有效、安全地进行,大大地推动了电子商务的发展。

1.2PKI的体系结构

一个完整的PKI是由证书中心CA(CertificateAuthority),注册中心RA(RegistrationAuthority),端用户(EndEntity)、证书库和证书销毁库CRL组成。

1.2.1证书中心CA

CA(CertificationAuthority)是一个确保信任度的权威实体,它是整个PKI体系的核心。认证中心作为受信任的第三方,主要负责产生、分配并管理所有参与的实体所需的身份认证用的数字证书。每一份数字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并被广泛认为是安全、权威、足以信赖的机构——根认证中心(根CA)。它对网上的数据加密、数字签名、防止抵赖、数据的完整性以及身份认证所需的密钥和证书进行统一的集中管理,支持参与的各实体在网络环境中建立和维护信任关系,保证网络的安全。

1.2.2注册中心RA

RA(RegistrationAuthority)是用户和CA的接口,这是一个可选的部分。对用户而言,它是CA的代表,对于CA而言,它又是用户。它完成的功能包括:个人身份的认证、密钥产生、名字分配、撤销证书报告等。RA有时和CA合并在一起。

1.2.3证书库

证书库是一个存储、检索证书和证书撤销列表的目录服务。为了使证书可以公开获取,必须具备和X.500标准兼容的目录服务,当前普遍使用的目录协议是轻量目录访问协议LDAP。

1.2.4证书撤销处理系统

通过CA签发的证书来把用户的身份和密钥绑定在一起,如果当用户的身份改变或密钥遭到破坏时,就必须存在一种机制来撤销这种认可。一般CA通过证书废除列表(CRL)来作废信息。CRL是由CA签名的一组电子文档,包括了被废除证书的唯一标识(证书序列号)。

1.2.5端用户

EE端用户(EndEntity或EndUser),即最终用户。指那些最终使用数字证书的实体,值得注意的是,这里端用户不仅包含使用数字证书的人,也包含需要数字证书进行安全传输的其他实体,如主机等。

2PKI在电子商务中的应用

2.1数据传输的机密性

PKI的主要的功能之一就是保证数据传输的机密性,即:数据在传输过程中,不能被非授权者偷看。PKI是建立在公共密钥理论的基础上的,从公共密钥理论出发,公钥和私钥配合使用可以保证数据传输的机密性。数据的发送者希望其所发送的数据能安全的传送到接收者手中,并且只被有权查看该数据的接收者所阅读。数据发送者首先利用接收者的公钥将其明文加密,然后将密文传送给接收者,接收者收到数据以后,利用其私钥将其解密,还原为明文,即使是数据被非法截获,因为没有接收者的私有密钥,别人也无法将其解码。这样使数据的发送者可以放心地发送数据。

2.2用户身份的识别。

PKI另一个主要的功能就是在电子交易中进行身份验证,交易双方利用PKI提供的电子证书(DigitalID)来证实并验证其身份,在网络这一虚拟的环境中进行实时议价、采购、付款等商务活动,并保证交易的有效性,即交易不可被否认的功能。PKI已经成为识别用户身份的事实上的技术标准,要想用数字证书进行身份验证就必须具有PKI。利用PKI进行身份验证的原理是首先数据发送者利用其私钥将明文加密,为确保数据被指定的接收者接收,再用接收者的私有密钥加密,然后将双重加密后的密文传输给接收者,接收者先利用其私有密钥,再利用发送者的公共密钥将密文解密,这样接收者就可以确认数据确实是从指定的发送者发出的并且没有其他人截获这一数据。利用发送者的私有密钥加密可以验证发送者的身份,而用接收者的私有密钥解密可以同时保证传输数据的机密性。由于发送方私有密钥的保密性,使得接收方既可以根据验证结果来拒收该报文,也能使其无法伪造报文签名及对报文进行修改,原因是数字签名是对整个报文进行的,是一组代表报文特征的定长代码,同一个人对不同的报文将产生不同的数字签名。这就解决了接收方可能对数据进行改动的问题,也避免了发送方逃避责任的可能性。

3系统设计与实现

3.1开发平台

3.1.1J2EE组件

J2EE各种不同的应用组件(如Servlet,JSP,EJB),构成了J2EE程序。下面列出了位于不同层的组件。

(1)运行在客户层的应用客户程序及小程序

网络客户程序由两部分组成:动态网页包含各种标记语言(HTML,XML等),它由运行于网络层的网络组件产生,浏览器从服务器接受信息并反馈到页面上。

J2EE应用客户端一般是通过Swing&AWTAPI建立的图形用户界面,它可以直接调用业务逻辑层的企业bean。

小程序是一个较小的用java语言编写的程序,通过安装在浏览器上的虚拟机运行。

(2)运行于网络层的Servlet&Jsp组件

Servlet是一个java类,它能动态处理页面请求并响应。Jsp页面是基于文档的,能包含静态页面的内容也能像servlet一样动态执行。

(3)运行于服务端的企业逻辑组件—EJB

总共有三种EJB:会话bean,实体bean,消息驱动beans

会话bean代表短暂的与客户的会话,当客户结束执行时,会话bean及它的数据就消失了。与会话bean相比,实体bean代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的服务方法会将数据存储。消息驱动bean类似于会话EJB,但只有当异步消息到达时才被激活。

3.1.2J2EE容器

容器是组件和支持组件功能的底层特定平台(如数据库)之间的接口。组件和容器的关系有些像计算机插件和主板的关系,在运行Web组件、企业Bean或者J2EE应用程序客户端之前,你必须将它们装配到一个J2EE应用程序中,并部署它们到容器中。

3.1.3服务技术

J2EEWeb程序服务器提供了方便编程的各种应用服务技术,例如命名服务(NamingService)、数据连接(JDBC)、数据事务(DataTransaction)、安全服务(SecurityService)。

3.2开发体系结构

系统采用三层M/V/C结构:

上图是本系统三层结构的具体图。三个虚线框分别表示表示逻辑层、业务逻辑层和数据层。

表示逻辑层就是客户端,客户程序可以浏览器,也可以是其他程序编写的应用程序;业务逻辑层是指J2EE服务器网络的Servlet和Jsp组件和服务端EJB组件。

本系统只实现身份认证的部分功能,不涉及证书的发放功能。

3.3产生证书

在PKI(公开密钥基础设施)中,证书颁发机构是分等级式的,第一级证书颁发机构拥有的证书就叫做根证书,根证书是证书颁发机构的身份标识。自签名证书是自己为自己签发的证书,证书拥有者与签发证书者相同,也就是说,它为其自身的可信任性作担保。任何数字证书都含有其颁发机构的一些信息,这些信息就来源于根证书。安装从开放的互联网上下载的根证书是很危险的,因为用户无法在网络上验证根证书的可靠性,而信任一个自签名证书意味着信任它所签发的所有证书。目前我们使用的Netscape和InternetExplorer浏览器都预装了一些被广泛信任的网络服务供应商的根证书,例如Verisign公司的根证书和Thawte公司的根证书,这样,浏览器可以认证这些被信任的根证书所签发的证书。在一个部门或公司内部的局域网上,也可以建立自己的根证书,用来认证内部的人员或服务器。本文中的根证书是用网上下载的生成证书的免费软件产生的。

(1)用下载的软件生成证书

首先,证书类型选择“申请书”,填写完基本信息后按下[生成证书]按钮后,会弹出一个窗口要求输入或选择申请书的文件名,直接输入文件名,再按[确认]键即可,操作结果是一个申请书文件(*.txt)。

其次,选择“签发证”证书类型,在弹出的输入框中选择一个己经存在的申请书文件(*.txt),再按[确认]键即可的到一个数字证书文件(*.cer)和一个私钥文件(*.pvk)。证书默认密钥对生成算法是RSA算法。

(2)用J2EESDK携带的keytool密钥管理工具生成证书

keytool工具可以建立新的公钥和私钥对、导入数字证书、输出现有密钥,并生成X509自签署证书。在命令窗口中输入下面的命令:keytool-genkey-aliasselfca-keystoremystore-keyalgDSA-keysize1024窗口中会出现提示,根据提示输入相应的信息就可以了。

3.4利用数字证书进行身份认证

首先下载加密和解密文件和公钥,其中可以下载的加密和解密算法有DES算法、RSA算法和签名算法。之后就可以查询服务器里已存的证书是否有效,到这一步为止,数字证书功能就已经实现了。

参考文献:

[1]张素敏,马云涌.电子商务及其安全技术研究[M].交通与计算机,2003.

[2]高宏.武汉大学商用密码学基础[M].武汉:武汉大学出版社,2002.

[3]崔莲.基于密码技术的电子商务安全解决方案的研究与应用[D].合肥:合肥工业大学管理科学与工程,2002.