`
TimerBin
  • 浏览: 360965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

前言

 本文主要说明在第三方支付系统开发过程中,网银支付接口开发开发随笔总结。

一、常用加密类型分类

1、对称加密:采用单钥对信息进行加密和解密,即同一个秘钥既可以对信息进行加密,也可以进行解密。此类型称之为对称加密。特点速度快,常用于对大量数据信息或文件加密时使用。常用例子:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES。

具体java例子可详见附件:DesUtil

2、非对称加密:采用公钥和私钥双钥形式对信息进行加密和解密,其中公钥和私钥是成对存在的,即使用公钥对信息加密后的密文只用使用其相应的私钥才可以进行解密,反之也毅然。相对对称加密而言叫做非对称加密。安全性非常好,但加密和解密耗时较长,比较适用于小数据量加密解密。常用例子:数字签名、RSA。

具体java例子可参见附件:RsaUtil

二、数据传输流程说明

1、术语解释

公钥:非对称加密算法双钥对中可向外界公开的称为公钥 (PublicKey)。在网银支付时一般需第三方支付系统将自己的公钥提供给银行,同时银行也会将它们的公钥提供给第三方支付系统。

私钥:非对称加密算法双钥对中不可向外界公开的称为私钥 (PrivteKey)。在网银支付时私钥一般需第三方支付系统妥善保存在自己系统中用于对接收到的银行指令进行验证。

加密解密:在非对称加密中,使用公钥对信息处理称之为加密,使用私钥对公钥处理后的加密密文反转过程称为解密,加密解密在对称加密算法中不做解释。

签名验证签名:只能使用在非对称加密算法中,使用私钥进行签名,公钥进行验证签名,原理是使用私钥对信息生成加密hashCode摘要,同信息一同发送给公钥持有方,公钥持有方会使用公钥对信息生成加密hashCode摘要与私钥生成的进行比较的过程就要做签名、验证签名。

2、流程说明

注:Au:第三方支付公钥        Ai:第三方支付私钥       Bu:银行公钥     Bi:银行私钥

(1)第三方支付-->银行流程:第三方支付系统向银行发送信息流程

第三方支付系统会使用自己的私钥对传输传输信息进行签名,签名后将签名密文信息与信息一同使用银行提供给第三方支付系统银行公钥进行加密。加密后将信息传输给银行,银行接收到第三方支付系统传输过来的信息,首先会用银行自己的私钥对信息进行解密,解密后再使用第三方支付系统提供给银行的公钥信息对信息进行验证签名,验证通过后此流程完成。

(2)银行--->第三方支付:银行向第三方支付系统发送信息流程

银行会使用自己的私钥对传输信息进行签名,签名后将原文和密文信息一同使用第三方支付系统提供的公钥信息进行加密,将加密后信息传输给第三方支付系统,第三方支付系统接受到银行发送过来的信息后,使用自己的私钥对信息进行解密,再使用银行提供的公钥对解密后信息进行验证签名,验证签名通过后此流程完成。

三、CA数字证书

CA数字证书的使用目的是为了防止您提供给对方的公钥信息不被他人替换,其原理只是到相关证书中心进行申请,证书中心会对你的信息和公钥信息一起加密,从而获得一个只属于你的证书就是CA数字证书。对方在验证签名过程中需要使用证书中心的提供的公钥来解开你的CA数字证书,从而获得你的公钥信息进行验证签名,从而确认你的身份。

四、HTTPS

简单讲是HTTP的安全版,通道使用的依旧是HTTP通道(端口由80变为了443),只是在其通道的基础上添加了SSL安全基础,即在http通道的基础上增加了身份验证和传输加密。其中SSL协议在网络层次上位于HTTP之后TCP/IP之间,为数据通讯提供安全支持。
SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

 

SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。


SSL协议的使用流程说明:
1)当客户端向服务器发送一个会话连接请求。
2)服务器接收到客户端的请求后,会根据客户端的会话请求信息进行判断此客户端是否已经存在对称加密密钥,从而判断是否需要产生一个新的密钥,如果需要客户端产生一个新的对称密钥,会将SSL 协议的版本号,加密算法的种类,随机数数字签名、CA数字证书及其他相关信息响应给客户端。
3)客户端接收到服务器端的响应信息,会通过CA数字证书是否过期、发行服务器证书的CA是否可靠、使用CA证书中存储的公钥能否正确验证服务端的数字签名、服务器证书上的域名是否与服务器的实际域名相同等手段对服务端响应信息进行验证。
4)客户端验证服务端通过后,会使用服务端的响应信息生成一个对称密钥(通讯密码),然后使用服务端的公钥(可从CA证书中获取)对此密钥加密,然后将加密后的密文信息传输给服务器。(如果服务端需要对客户端进行验证时,可要求客户端生成一个随机数,然后使用ca证书进行数字签名,然后将签名密文和随机数一同发给服务端,服务端使用CA证书对其进行验证签名,验证通过后即服务端验证客户端完成)
5)服务器接收到客户端请求后,会对其检查客户端传过来的密文,使用自己的私钥对其进行解密,获得对称密码(通讯密码)。
6)客户端会向服务端表明发出信息,表明以后与其通讯会使用此对称密码对进行通讯。
7)服务端接收到客户端发出的使用此密码的消息后,会将对称密码记录下来,在第2)步就对其进行判断。
8)此流程完成后就可以安全使用HTTPS进行通话了。通话过程中会使用对称密钥对通话信息进行加密。

 

//HTTPS 参考地址如下所示

http://hi.baidu.com/zkheartboy/item/f5f729925c1d8bf129164757

 

 

分享到:
评论

相关推荐

    深入理解加密、解密、数字签名和数字证书

    例如,在网上支付中,可以使用加密算法来保护敏感信息,使用数字签名来证明发送者的身份,使用数字证书来验证公钥的真实性。 加密、解密、数字签名和数字证书是信息安全领域的重要概念,广泛应用于电子商务和网络...

    宝付支付-接口文档-网银支付(借贷分离版)v3.1

    上海宝付网络科技有限公司的"宝付支付-接口文档-网银支付(借贷分离版)v3.1"是一款针对电子商务支付需求而设计的支付系统。该系统旨在为商家提供一个统一的平台,集成各大银行的支持,使得商家可以方便地处理借记卡和...

    支付文档(网银、快钱)

    这些代码可能涵盖了与银行接口交互的HTTP请求、加密解密、订单管理、支付状态监听等多个方面,对于理解和开发支付系统非常有帮助。 通过对这些源码的分析和学习,开发者可以掌握如何安全、高效地实现网银支付和快钱...

    易宝支付sdk

    3. **库文件**:包含处理支付交易、加密解密、签名验证等功能的动态链接库或静态库文件,开发者在项目中引入这些库即可调用相关功能。 4. **证书管理**:易宝支付通常要求商户提供自己的API证书,用于确保通信的...

    AD深信服应用加密解决方案-34页

    以下是这个解决方案的详细说明: **一、应用加密建设驱动力和挑战** 1. **驱动力**: - 需要增强数据的真实性、机密性、完整性和抗抵赖性。 - 商用密码政策、标准和法律的推动,例如2019年密码法,要求企业升级...

    加解密电子邮件实验报告

    - 学习并掌握招商银行的网上银行和手机银行业务,了解其一卡通功能,这是电子支付的一种形式,有助于理解电子支付的多样性。 三、实验方法和手段 实验在学校的实训室进行,利用学校提供的网络环境和设备,模拟真实...

    网上支付与网上银行概述.pptx

    二是简单支付加密模式;三是SET(Secure Electronic Transaction)模式,SET模式是一种保证在线信用卡支付安全的协议。电子钱包则是在用户端实现的支付软件,可以与电子柜员机(商家支付服务器)交互,处理数据加密...

    金盾高级视频加密系统V2016S加强版

    2、单个视频支持无穷大,逐帧加密,加密后的视频可以在1秒钟左右打开播放,边解密边播放; 3、有两种加密算法可以选择,几乎可以加密所有常见或不常见的视频格式; 4、加密后的视频可以采用各种灵活调用方式,可以...

    工行支付Java代码示例.zip

    在本压缩包“工行支付Java代码示例.zip”中,包含了使用Java语言与中国工商银行网上银行新B2C在线支付接口进行集成的示例代码。这个API SDK版本为icbc-api-sdk-cop_v2_20181211,意味着它是2018年12月11日更新的版本...

    金盾视频高级加密系统 2016S VIP 注册版 高强度视频加...

    2、单个视频支持无穷大,逐帧加密,加密后的视频可以在1秒钟左右打开播放,边解密边播放; 3、有两种加密算法可以选择,几乎可以加密所有常见或不常见的视频格式; 4、加密后的视频可以采用各种灵活调用方式,可以...

    金盾高级视频加密系统V2016

    2、单个视频支持无穷大,逐帧加密,加密后的视频可以在1秒钟左右打开播放,边解密边播放; 3、有两种加密算法可以选择,几乎可以加密所有常见或不常见的视频格式; 4、加密后的视频可以采用各种灵活调用方式,可以...

    PHP四方易支付源码可运营版本_全套源码解密_新功能.zip

    四方支付意味着它不仅连接商家和消费者,还同时与多家银行或第三方支付机构(如支付宝、微信支付等)对接,提供一站式支付解决方案。在PHP实现的四方易支付系统中,开发者可以利用其灵活的架构和强大的扩展性来满足...

    网上支付接口所有

    在本文中,我们将深入探讨“网上支付接口所有”这个主题,涵盖支付宝、快钱、网银在线等主流支付接口的集成、源码以及开发文档教程。 一、支付宝支付接口 1. 支付宝概述:支付宝是中国最大的第三方支付平台,由...

    网上支付与安全整体教学设计.pdf

    4. 掌握网络支付安全威胁和相应的防护措施,学习加密解密基础理论。 5. 理解CA(Certificate Authority)的角色和作用,学习数字证书的申请与使用。 素质目标则强调: 1. 培养良好的银行卡使用习惯,防止经济利益...

    关于民生银行联合登录和支付接口调试反馈1

    - 加密后的订单信息通过浏览器发送到民生银行支付网关。 - 民生银行解密并验证签名后,引导用户至支付页面选择支付方式。 - 用户输入交易信息,完成支付。 - 成功支付后,民生银行将支付结果以密文形式异步通知...

    教案支付系统设计.pdf

    - SET(Secure Electronic Transaction)结构:SET是早期为确保信用卡在线交易安全而设计的协议,它涉及多方安全认证,包括消费者、商家、发卡银行和收单银行,旨在提供端到端的加密,保护敏感的支付信息。...

    usbkey(加密狗)读取

    USBKey的核心在于其内置的安全芯片,该芯片能够执行密钥生成、加密解密等功能。当用户将USBKey插入计算机的USB接口后,操作系统会识别到USBKey设备并加载相应的驱动程序。随后,应用程序可以通过调用API接口与USBKey...

Global site tag (gtag.js) - Google Analytics