版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 1 章 概述银企互联面向大的集团客户,提供与企业erp系统直连的平台,银企互联面向大的集团客户,提供与企业erp系统直连的平台,为工行的现金管理服务提供多渠道和客户化支持。企业erp系统通过https协议与工行系统进行连接并向银企互联前置发送数据,数据的接口格式使用标准的xml数据格式,但双方通讯的过程中则需要遵守下文描述的规定。银企互联前置接到企业数据后进行一系列的检查后完成交易,并将处理结果以企业便于处理的形式返回给企业。在安全保证方面,通讯层的安全保证是https协议。企业如需使用银企互联系统,要办理有关注册手续,并审领证书。企业进行结算类交易时,如果涉及到授权过程,企业需要在企业网
2、银系统中完成相关授权动作。银企互连系统将企业提交的支付指令或者授权成功后的指令当作最终转账指令,根据提交指令的证书id检查收付方帐号等合法性,以保证所提交指令在权限允许范围内进行操作。第 2 章 总体方案介绍2.1 总体网络结构图上图企业erp系统1采用的是非nc方式接入的客户;企业erp系统2采用的是nc方式接入的客户;2.2 企业端安全服务器简介此服务器只对使用nc方式接入的客户有效。企业端安全服务器被称为netsafe client。它有两个可以配置的端口分别用于加密和签名验签服务,如下图所示(假设为加密端口,为签名验签端口)。1(加密)netsafeclient2(签名验签)1. ht
3、tp交易请求包https交易请求包1.签名验签请求包2.签名验签结果2. 交易结果具体使用时,企业应用向工行提交交易请求时,可以依照http协议向netsafe client的端口发送请求。接到请求后,netsafe client使用企业证书将http请求包转换成https请求包发往工行端服务器;如果需要对某些交易数据进行签名,则企业应用需要与签名端口建立socket 连接并将待签名数据发往端口,然后接收端口的签名结果,之后再将包含签名信息的交易请求发往端口而完成整个交易请求过程。对签名还是验签名请求的区分则是通过http包头来进行。content-type: infosec_sign/1.0
4、和content-type: infosec_verify_sign/1.0分别用于标识签名请求和验签名请求,而content-type: infosec_sign_result/1.0和content-type: infosec_verify_sign_result/1.0分别用于标识签名和验签名的返回结果。为方便起见,可以将netsafe client的两个服务端口逻辑地称为两台服务器,netsafe client的加密服务器和签名服务器。2.3 安全控制介绍对于nc方式接入的客户 企业向工行提交的交易数据,必须通过企业方的netsafe client进行与工行服务器的连接,接口确定需要签
5、名的数据也必须由netsafe client的签名服务器签名后组成规定的数据包格式后,通过netsafe client提交工行,这样可以保证企业数据以及相关信息不被恶意篡改。 数据全部由netsafe client负责转发,使netsafe client成为架设在企业现场的工行接入服务器。而企业与工行之间安全的连接,由netsafe client和工行安全代理服务器netsafe保证; 工行接收到企业提交过来的部分关键交易数据后,需要解密并验证企业的数字签名,以防止第三方假冒企业的行为。对于非nc方式接入的客户 企业向工行提交交易数据时的安全控制企业erp与银企互连系统之间使用https协议通
6、讯。企业可以选择是否对交易数据进行对称加密,目前系统支持的算法有des与3des。进行对称加密可以防止第三方截获交易的信息。而加密中需要用到的密钥由企业与工行共同约定。(加密功能暂不支持)企业需要对其发送的指令数据进行数字签名,签名中使用的证书可以是企业证书也可以是工行证书,其中签名使用的算法是sha1withrsa。进行数字签名可以防止第三方假冒企业的行为。 工行向企业发送结果信息时的安全控制企业erp与银企互连系统之间使用https协议通讯。企业可选择是否对返回数据进行对称加密,方法与上文相同。工行对部分关键交易返回信息进行数字签名。第 3 章 重点说明 所有的交易请求包中“包序列id”字
7、段(packageid)由企业产生,产生规则为当前日期(北京时间,格式为yyyymmdd)7位序列号(例如200212230000001,为2002年12月23日发送的一个交易请求包的包序列id)。在一个企业代码下当日包序列id必须唯一。工行处理完毕之后将该字段原值返回,即所有的交易返回包中“包序列id”字段(packageid)。 转帐交易请求包中“签名时间”字段(signtime),格式为yyyymmddhhmmsssss(例如20021223092710568,表示2002年12月23日9点27分10秒568毫秒)。签名时间应为北京时间。签名时间如果与交易请求到达工行服务器时的北京标准时
8、间误差过大(暂定为15分钟),交易将无法进行。此措施将可以有效地防止黑客采用重放攻击进行干扰帐务活动的行为。同一笔交易如果因为网络不正常等因素需要重新提交时,要修改转账交易请求包的“签名时间字段”并重新签名。 所有请求包和返回包中备用字段的使用主要是出于对今后扩展的考虑,如果以后需要增加企业上送的项目或者返回给企业的信息,不必再改变交易包格式。目前对企业请求包来说这些备用字段的值可以送空;企业对银行返回包中的备用字段也不必作处理。请求包中的备用字段标签为“reqreserved*”,返回包中的备用字段标签为“represerved*”(其中*为1、2、3或4,详见接口说明文档)。 查询历史明细
9、返回数据包中交易时间()数值如为空,则说明该笔指令是银行的计息交易明细。 支付查询指令接口,方便企业对可疑、有疑问(如网络中断,交易长时间没有返回等)或处理完毕的转帐指令进行查询。企业提交要查询的结算请求的包序列id,工行返回该笔转帐指令的基本信息和状态。 本接口说明中所有涉及金额的字段都是以分为单位(不带小数点)。 如企业系统需要代理汇兑功能则企业应用需同步开发网点信息下载交易,以便为代理汇兑交易中收方为它行情况时提供工行网点名称。否则,无需开发网点信息下载交易。 在网点信息下载功能中,由于下载数据过大且数据不会经常更新,所以此交易控制了企业每日下载次数。目前暂定次数为每日2次。 个人联名卡
10、签权指令只支持币种是人民币的账号/卡号。 企业端传输数据时,指定xml编码方式为gb2312。 银企互联提交包中包含“签名时间(yyyymmddhhmmsssss)”此标签的,说明该交易需要进行签名处理。 企业端的程序需要对银行返回的数据有可扩展性,以便适应今后业务的不断发展。 银企互连系统支持两种接入方式,客户可以任何选择一种。第一种:使用第三方nc软件方式接入银企互连系统;第二种:使用非nc方式企业直接接入银企互连系统;下面将区分两类客户分别对接入方式等相关信息进行说明。第 4 章 银企互联nc方式接入客户4.1 企业端系统环境要求4.1.1 软件环境对企业的erp系统无要求;工行企业端证
11、书服务器软件netsafe client需安装在一台pc机上。4.1.2 网络环境企业财务系统通过局域网与工商银行提供的netsafe client连接;企业端的netsafe client可以通过专线或internet与中国工商银行银企互连系统互联。4.1.3 企业开发过程描述 企业提交交易请求数据过程企业提交的交易分为两大类:查询类和结算类(需要进行签名处理)。1、 查询类:(1) 企业按照工行提供的xml包格式进行打包,在局域网内通过http协议以post方式将交易包发送到netsafe client的安全http协议服务器。http请求格式:action=”http:/客
12、户端netsafe client的地址和加密端口号/servlet/icbccmpapireqservlet?userid=证书id&packageid=包序列id &sendtime=请求时间”请求数据格式(post方式):version=版本号(区分版本时间,暂定) &transcode=交易代码(区分交易类型,每个交易固定)&bankcode=客户的归属单位&groupcis=客户的归属编码&id=客户的证书id(无证书客户可空)&packageid=客户的指令包序列号(由客户erp系统产生,不可重复)&cert=客户的证书公钥信息(进行base64编码;nc客户送空) &
13、reqdata=客户的xml请求数据其中:包序列id、证书id应根据实际情况进行更改,请求时间为企业发出该交易请求包的当前系统时间。post方式最后不允许有回车等其他乱字符,transcode交易名称应与xml包内标签中的值一致,action中的证书id、packageid与请求数据格式中的证书id、packageid、xml包中的证书id、packageid的值三者相一致。(2) netsafe client将xml包加密后按照https协议,通过互联网/专线发送到银行端的netsafe server。(本步由netsafe client完成,企业无需处理);(3) netsafe serv
14、er将交易请求送银企互连系统进行处理。企业netsafe clientnetsafe server(1)(2)工行(3)2、 结算类:(1) 企业按照工行提供的xml包格式进行打包,在局域网内与netsafe client的签名端口建立socket连接,通过此连接向签名端口发送http数据包。http包头中需包含“content-length”和“content-type”两个属性。其中“content-length:”后面是需要签名的二进制数据包的长度,“content-type:”后面是需要签名的标记,为infosec_sign/1.0。(注意大小写)http请求格式:action=”ht
15、tp:/客户端netsafe client的地址和签名端口号”请求数据格式:结算类请求提交的xml包netsafe client对xml包进行签名后,通过http协议将签名结果返回给企业系统。如签名成功标签与标签之间的部分为签名结果。netsafe client返回的签名包如下:签名结果0miiixayjkovcnaqcco. 0blldsgw=(2) 企业按照工行提供的xml包格式进行打包,在局域网内通过http协议以post方式将交易包发送到netsafe client的安全http协议服务器。http请求格式:action=”http:/客户端netsafe client的地址和加密端口
16、号/servlet/icbccmpapireqservlet?userid=证书id&packageid=包序列id &sendtime=请求时间” 请求数据格式(post方式):version=版本号(区分版本时间,暂定) &transcode=交易代码(区分交易类型,每个交易固定)&bankcode=客户的归属单位&groupcis=客户的归属编码&id=客户的证书id(无证书客户可空)&packageid=客户的指令包序列号(由客户erp系统产生,不可重复)&cert=客户的证书公钥信息(进行base64编码;nc客户送空) &reqdata=客户的xml请求数据其中:包序
17、列id、证书id应根据实际情况进行更改,请求时间为企业发出该交易请求包的当前系统时间。post方式最后不允许有回车等其他乱字符,transcode交易名称应与xml包内标签中的值一致,action中的证书id、packageid与请求数据格式中的证书id、packageid、xml包中的证书id、packageid的值三者相一致。(3) netsafe client将企业送来的签名包加密后按照https协议,通过互联网/专线发送到工行端的netsafe server,再发往工行网银进行处理。(本步由netsafe client完成,企业无需处理)。企业netsafe clientnetsafe
18、 server(1)(2)(3)(4) 企业接收交易响应数据过程企业接收到数据包的格式:reqdata=交易返回包 或 errorcode=错误代码步骤:判断返回数据中是否是errorcode:(1)如果是:根据错误代码做相应处理,结束。错误代码的含义参见接口说明文档中的附录。(2)如果否:企业接收到数据包的格式:reqdata=交易结果包;企业根据先进行base64解码,签名返回包按照格式拆分出明文和密文,验签正确后对明文按工行提供的xml包格式进行解包。对于单笔提交类指令(即存在文件级返回包的指令),返回的xml包格式按照指令级返回包格式来处理,多笔则按照文件级返回包格式来处
19、理。 企业接收银行主动返回过程http请求格式:action=”http:/客户erp服务器的地址和端口号” 请求数据格式(post方式):version=版本号(区分版本时间,暂定) &transcode=交易代码(区分交易类型,每个交易固定)&bankcode=客户的归属单位&groupcis=客户的归属编码&id=客户的证书id(无证书客户可空)&packageid=客户的指令包序列号(由客户erp系统产生,不可重复)&cert=客户的证书公钥信息(进行base64编码;nc客户送空) &reqdata=客户的xml请求数据reqdata数据格式:如果需要签名
20、,格式为:数字字符串:长度10位,代表明文数据长度,不足10位左补0;明文:xml明文,长度可变,需要上面的数据指明,双字节字符(汉字)算作1位长度;分隔符:icbccmp;密文:明文经过签名后的数据并做base64编码;如果不需要签名,则直接送xml明文;以上数据经过拼接后,再进行base64编码(仅reqdata项)、urlencode编码(全部参数项)得到最终的reqdata数据。按照以上格式将请求数据发送到企业;第 5 章 银企互联非nc方式接入客户5.1 企业端系统环境要求5.1.1 软件环境对企业的erp系统无要求;5.1.2 网络环境企业财务系统可以通过专线与中国工商银行银企互连
21、系统互联。5.1.3 企业开发过程描述 企业提交交易请求数据过程(1) 企业按照工行提供的xml包格式进行打包,在局域网内通过http协议以post方式将交易包发送到netsafe client的安全http协议服务器。http请求格式:action=”http:/客户端netsafe client的地址和加密端口号/servlet/icbccmpapireqservlet?userid=证书id&packageid=包序列id &sendtime=请求时间”请求数据格式(post方式):version=版本号(区分版本时间,暂定) &transcode=交易代码(
22、区分交易类型,每个交易固定)&bankcode=客户的归属单位&groupcis=客户的归属编码&id=客户的证书id(无证书客户可空)&packageid=客户的指令包序列号(由客户erp系统产生,不可重复)&cert=客户的证书公钥信息(进行base64编码;nc客户送空) &reqdata=客户的xml请求数据其中:包序列id、证书id应根据实际情况进行更改,请求时间为企业发出该交易请求包的当前系统时间。post方式最后不允许有回车等其他乱字符,transcode交易名称应与xml包内标签中的值一致,action中的证书id、packageid与请求数据格式中的证书id、packagei
23、d、xml包中的证书id、packageid的值三者相一致。reqdata数据格式: 如果需要签名:数字字符串:长度10位,代表明文数据长度,不足10位左补0;明文:xml明文,长度可变,需要上面的数据指明,双字节字符(汉字)算作1位长度;分隔符:icbccmp;密文:明文经过签名后的数据并做base64编码;如果不需要签名,则直接送xml明文;以上数据经过拼接后,再进行base64编码得到最终的reqdata数据。按照以上格式将请求数据发送到工行; 企业接收交易响应数据过程企业接收到数据包的格式:reqdata=交易返回包 或 errorcode=错误代码reqdata=交易返
24、回包结构:如果交易返回包进行了签名,则结构为:数字字符串:长度10位,代表明文数据长度,不足10位左补0;明文:长度可变,需要上面的数据指明,双字节字符(汉字)算作1位长度;分隔符:icbccmp;密文:明文经过签名后的数据;如果交易返回包没有签名,则结构为:明文;不论是否签名,交易返回包均进行了base64编码;步骤:判断返回数据中是否是“errorcode=”打头:(1)如果是:根据错误代码做相应处理,结束。错误代码的含义参见接口说明文档中的附录。(2)如果否:企业接收到数据包的格式:reqdata=交易结果包企业根据先进行base64解码,签名返回包按照格式拆分出明文和密文,验签正确后对
25、明文按工行提供的xml包格式进行解包。对于单笔提交类指令(即存在文件级返回包的指令),返回的xml包格式按照指令级返回包格式来处理,多笔则按照文件级返回包格式来处理。 企业接收银行主动返回过程http请求格式:action=”http:/客户erp服务器的地址和端口号” 请求数据格式(post方式):version=版本号(区分版本时间,暂定) &transcode=交易代码(区分交易类型,每个交易固定)&bankcode=客户的归属单位&groupcis=客户的归属编码&id=客户的证书id(无证书客户可空)&packageid=客户的指令包序列号(由客户erp系
26、统产生,不可重复)&cert=客户的证书公钥信息(进行base64编码;nc客户送空) &reqdata=客户的xml请求数据reqdata数据格式:如果需要签名,格式为:数字字符串:长度10位,代表明文数据长度,不足10位左补0;明文:xml明文,长度可变,需要上面的数据指明,双字节字符(汉字)算作1位长度;分隔符:icbccmp;密文:明文经过签名后的数据并做base64编码;如果不需要签名,则直接送xml明文;以上数据经过拼接后,再进行base64编码(仅reqdata项)、urlencode编码(全部参数项)得到最终的reqdata数据。按照以上格式将请求数据发送到企业;企业签名验签过
27、程在银企互联中,对于指令体的签名与验签工作由纯java版工行签名验签接口完成的。本文档对在专业版银企互联中使用的接口作出描述。同时提供了一套纯java版的从企业发送指令到工行系统和从工行系统接收处理结果的例子程序。从企业发送指令到工行系统的例子中包括了两方面的内容:用企业的数据层私钥对数据进行签名,然后用工行的通讯层公钥进行通讯认证;从工行系统接收处理结果的例子中包括了两方面的内容:用企业的通讯层私钥要求通讯认证,然后用工行的数据层公钥进行数据的验签。企业签名验签方法总体介绍接口包含icbc.jar、infoseccrypto_java1_02_jdk14.jar、org.mortbay.je
28、tty.jar、tools.jar四个文件,使用时需要把这四个文件放置到java的classpath目录中。该接口建议的jdk 版本为1.4.2。(不要使用jdk1.5版本或者比1.4更低版本)接口使用的详细说明sign(对原始数据进行数字签名的函数)public static byte sign(bytesrc, int len, byteprivatekey, charkeypass)description 用rsa算法对一段消息签名 parameters: privatekey - 为口令保护的私钥 src - 为待签名消息 len - 为待签名消息的长度keypass - 为私钥保护口
29、令 returns: 如果成功返回签名结果,如果失败返回null throws: nosuchproviderexception - nosuchalgorithmexception - invalidkeyexception - signatureexception - verifysign(对数字签名进行验签的函数)public static int verifysign(bytesrc, int len, bytecert, bytesign)description 用rsa算法对一段签名进行验证 parameters: cert - 为证书 src - 为被签名的消息 len - 为被签名消息的长度sign - 为签名的结果 returns: 如果成功返回0,如果其它则失败 throws: signatureexception - nosuchalgorithmexception - invalidkeyexception -附件说明1 ceshizhang.cer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络课程设计的步骤
- 国际商务课程设计fanwen
- 童画少儿美术课程设计
- 隐喻课程设计探讨
- 雨水管网课程设计书
- 阿莫西林胶囊课程设计
- 非遗幼儿园课程设计
- 英语 综合课程设计
- 课程设计误区
- 退休人员管理课程设计
- 2025年中国高纯生铁行业政策、市场规模及投资前景研究报告(智研咨询发布)
- 2022-2024年浙江中考英语试题汇编:完形填空(学生版)
- 2025年广东省广州市荔湾区各街道办事处招聘90人历年高频重点提升(共500题)附带答案详解
- 中试部培训资料
- 硝化棉是天然纤维素硝化棉制造行业分析报告
- 央视网2025亚冬会营销方案
- 北师大版数学三年级下册竖式计算题100道
- 计算机网络技术全套教学课件
- 屋顶分布式光伏发电项目施工重点难点分析及应对措施
- 胃镜下超声穿刺护理配合
- 2024解析:第三章物态变化-基础练(原卷版)
评论
0/150
提交评论