基于Internet的电子商务以其具有传统商务模式不可比拟的优点而在当今世界蓬勃发展。电子商务发展的关键问题就是交易的安全性,也就是网络上的信息安全,即网上电子支付的安全实现。SET安全电子交易协议是由Visa和MasterCard公司于1997年5月联合开发的,可在互联网上在线交易时保证*支付安全的一个开放协议。该协议一般服务于持卡消费、网上购物的电子商务类型。在国内,目前中国银行、招商银行、中国建设银行和中国工商银行等均已开通了网上银行服务,电子支付系统在B to C,B to B和G to C方面已能实现在线电子支付。中国银行的“长城电子借记卡”和“长城国际*”就是采用的SET协议。

本文根据SET协议的电子商务支付流程,对网上电子支付系统的三大模块(即购物平台模块、网关支付模块和CA模块)进行分析。同时解释了如何用数字证书、双重签名和数字签名技术相结合的方式来实现该系统在电子商务中的运用。

1 SET协议的电子支付流程

目前,电子商务运作过程一般涉及五个直接关系主体:客户S、商户A、CA认证中心、支付网关P和银行B。其体系结构如图1所示。

一般情况下,基于SET协议的电子商务支付流程如下:

(1)客户S进入网上银行开始注册,并开户;

(2)S进入CA申请数字证书,并保存到存储介质;

(3)S进入网站,浏览并选中需购买的商品,输入用户名和密码,上传客户数字证书并下载商户数字证书,再交给CA验证,验证成功后,商品放入购物篮,系统自动计价;

(4)S填写收货信息,到收银台支付,系统生成订单信息OI;

(5)S在支付前,上传自己的数字证书给商户A,支付网关P验证,并下载A和P的数字证书进行验证;

(6)在双方都验证通过时,A发送支付指令到P,要求P进行转帐处理;

(7)P接受支付指令后,连接S和A的开户银行,进行转帐处理。然后由A发货给S,支付完成;

(8)保存订单,以供查询,购物支付结束。

由此可见,基于SET协议的电子商务支付流程为:客户S的支付经支付网关P,再到银行B,最后到商家A,故有一套严密的安全措施来保证交易的安全。

2  电子支付系统的功能分析

从现实考虑,一个安全的电子支付系统应当具备以下功能:

(1)使用数字签名和数字证书实现对各方的认证。交易前双方都要进行身份认证,通过CA发放数字证书,以证实身份的合法性,只有通过认证的双方才能进行正常的网上交易。

(2)使用加密技术对业务进行加密。采用基于椭圆曲线的密码体制来实现SET协议中公开密钥的加密解密。并用双重签名来加强数据传输的保密性。

(3)使用消息摘要算法和Hash函数来确认数据业务的完整性。若发现接收的消息不完整,则要求发送端重发以保证其完整性。

(4)当交易双方出现纠纷时,要保证对业务的不可否认性。

(5)用双重签名来处理贸易业务的多边支付问题。订单信息OI须和支付指令连接在一起,因为商户S只有确认支付指令后才会继续交易,银行B也要确认而不能读取商户S的订单信息OI。这种相互隔离性可通过双重签名来实现。

3模块分析

为了实现上述功能,根据SET协议的电子商务支付流程,可以把网上电子支付系统分为三大模块,分别为购物平台模块、支付网关模块和CA模块。图2所示是整个系统的模块图。

3.1  购物平台模块

该模块主要负责客户S在平台上浏览商户S的商品目录、购物、订单生成以及与支付网关模块和CA模块结合一起完成支付过程。

利用该模块并使用双重签名,可以保证在交易过程中,在商家不知道顾客的账户信息,银行不知道顾客的购买信息的情况下,完成订单和支付信息的生成。其实现过程如下:

(1)客户S拥有含其*帐号等支付信息的PI。在选择商品后,系统将生成订单信息OI;

(2)客户S用Hash函数分别生成PI和OI的消息摘要H(PI)和H(OI)。再连接生成支付订单摘要,并用其私有密钥KSc签名,以实现双重签名DS=Eksc[H(H(PI)‖H(OI))];

(3)客户S用商户A的公钥AEPU加密(OI,H(PI),DS),并得到密文C1。然后用银行B的公钥BEPU加密(PI,H(OI),DS),得出密文C2。这样,(C1,C2)就是被双重签名的消息。此后客户S将(C1,C2)发送给商户A;

(4)商户A收到(C1,C2)即用私钥解密,以得到OI,H(PI),DS。并用从客户证书中获得的客户S的公钥KUc进行计算,若H(H(PI)‖H(OI)和DKUC(DS)两者相等,则商户A确认是客户S的签名;

(5)商户A将C2发送给银行B。银行B用自己的私钥BEPV解密C2得到PI,H(OI),DS。然后用客户S的公钥KUC计算,H(H(PI)‖H(OI)),DKUc(DS)。若两者相等,则银行B确定是客户S的签名。

3.2支付网关模块

支付网关模块主要负责客户∣商户注册、客户∣商户的账户业务变更管理(转帐,挂失)和客户∣商户的账户业务查询(余额、账单查询)等。支付网关模块的主要工作流程如图3所示。

图3中,支付网关在验证了客户S和商户A的数字证书后,即可接受支付指令,从而连接银行B进行转帐处理。

3.3 CA模块

CA模块是本系统中最基本也是最重要的模块,主要负责客户S和商户A的数字证书申请、管理和验证等。该模块用数字签名技术来实现CA认证系统的设计。设计时可用基于椭圆曲线的密码体制来实现这一过程。

实现时,可先由CA选择椭圆曲线E(Fq),并以G为公开基点,n为G的阶那么,其现方法如下:

(1)客户S申请数字证书

客户S将ID和公钥KUc发往CA。

CA选随机数k∈[1,n-1]。

kG=(x,y)

r=xmodn,e=H(ID+KUc),私钥KSc。

S=k-1(e+rKSc)modn。

则CA生成签名(r,s),向S颁发的数字证书为CAs=(ID,KUc,(r,s))。

(2)客户S与商家A交易时,S把自己的证书CAs发送给A。然后由A通过CA对证书CAs进行验证。

若v=r,则签名有效。

当客户S和商户A进行交易时,必须对信息作数字签名并进行传递,才能保证信息的完整性和不可否认性。

上述三个模块之间,它们既相互独立又相互关联,每个模块都有自己的工作流程,但又调用其它模块的部分功能,从而很好地实现软件的高内聚底耦合。

4结束语

本文把以SET协议为基础的电子支付系统分为三大模块,即购物平台模块,网关支付模块和CA模块。然后根据模块间的相互独立性和关联性。在现实中很好的实现了软件的高内聚底耦合。同时,通过模块分析,更加了解了SET协议的优缺点,从而为进一步设计出安全性更高、效率更快的方案提供了参考,因此具有一定的实用价值。

基于SET协议的电子支付系统模块设计相关推荐

  1. 基于单片机的超市储物柜设计_基于51单片机对电子储物柜系统的设计

    电路描述: 安全是我们日常的生活中最关心的问题. 每个人都觉得安全问题是非常至关重要的,在家里的门和安全,可以尽可能多的安全. 为了对于门访问安全 因此,我们打算通过引进一个电子密码锁系统,该系统包括 ...

  2. 基于Java的学生学费支付系统

    技术:Java.JSP等 摘要: 每到开学季,总会出现新生大量聚集缴费地的现象.网上缴费可以缓解手工缴费拥挤的状况,简化缴费流程,有效减轻学校收费人员的工作,同时更加人性化,使缴费愈发方便.本文主要描 ...

  3. (附源码)计算机毕业设计SSM基于Java的小型电子病历系统

    (附源码)计算机毕业设计SSM基于Java的小型电子病历系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

  4. 基于JAVA大学生健康电子档案系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA大学生健康电子档案系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA大学生健康电子档案系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  5. 基于区块链的电子病历系统毕业设计

    基于区块链的电子病历系统 需要的私信联系

  6. SSM+基于Vue框架的在线投票系统的设计与实现 毕业设计-附源码221604

    基于Vue框架的在线投票系统的设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于在线投票系统也是十分常见的.过去使用手工的管理方式对在线投票系统进行管理,造成了 ...

  7. SSM+基于Vue框架的在线投票系统的设计与实现 毕业设计-附源码

    基于Vue框架的在线投票系统的设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于在线投票系统也是十分常见的.过去使用手工的管理方式对在线投票系统进行管理,造成了 ...

  8. 基于SSM框架的服饰商城系统的设计与实现(文末附源码)

    摘要 现如今我们处于大数据时代,我们对网上商城的概念并不感到生疏,随着互联网科技的发展,网络在人们生活中的运用越来越广泛,网上购物已经成为了现代购物的主流趋势.网上购物具有多种选择.性价比高等优势,网 ...

  9. 基于单片机的粮仓远程监控系统的设计

    1绪论 1.1 课题研究背景及意义 中国自古以来就是一个大国,地大物博,特别是新中国成立以来,粮食的产量屡创新高,但是中国也是一个人口大国,人口达14亿位居世界第一[1].我国以占世界不到10%的耕地 ...

最新文章

  1. linux shell创建进程数,[原创]bash shell的并发实现及进程数的控制
  2. Redis支持的5种数据类型
  3. 理解 __doPostBack(转)
  4. vue学习:v-text,v-html, v-model, {{}}之间的异同
  5. mysql stored procedures with return values
  6. Opencv——批量处理同一文件夹下的图片(解决savedfilename = dest + filenames[i].substr(len)问题)
  7. 前端学习(2778):uni组件库的使用
  8. echart itemStyle属性设置
  9. javascript怎么禁用浏览器后退按钮
  10. (二)surging 微服务框架使用系列之surging 的准备工作consul安装(转载 https://www.cnblogs.com/alangur/p/8377977.html)...
  11. 智能语音升级用户体验,标贝以创新优势布局儿童有声内容市场
  12. 重温微积分 —— 偏微分与链式法则
  13. python爬取酷狗音乐歌词_python爬虫教程:爬取酷狗音乐
  14. 几种基本汇编指令详解
  15. nodejs安装时遇到的问题及解决方案
  16. 【BZOJ3653】谈笑风生 离线+树状数组+DFS序
  17. 制造企业使用APS计划排产需要的条件
  18. 在计算机视觉论文中benchmark和baseline的区别
  19. ASO优化中关于APP推广的一些基本而有效的方法
  20. 2019-08-12 纪中NOIP模拟赛B组

热门文章

  1. 通过了华为认证可以涨薪吗?
  2. fractions模块的使用
  3. python——fractions模块
  4. 11种离散型变量编码方式及效果对比
  5. 无线网盒子怎么连接电脑连接服务器,网络机顶盒怎么用设置连接wifi?图文详解手把手教你...
  6. 一款基于 Web 的通用数据管理工具 CloudQuery(转载)
  7. 深入浅出js中的this
  8. (TTS)QT编写文字转语音(wav)PC小工具
  9. SAP错误提示:“未在成本控制范围中给会计年度*定义版本*”
  10. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid continuation byte