浅谈银行系统对接中的安全和槽点

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

银行系统的安全级别应该是相当高的,与银行接口对接(银企直联)过程中也遭遇了平时开发中不常见的问题,甚至当时表示不理解。

前前后后对接了两家银行:招商银行和中信银行,安全要求各异,也体会到不同的安全策略也有一些槽点分享给大家。

02 业务描述

通常意义的付款都是通过第三方支付公司或者银行转账的方式完成,但是企业可能需要嵌入到业务系统中,例如财务人员通过操作业务系统的审核、审批等操作,操作的功能通过调用银行的转账接口完成转账功能,这种功能在银行系统中有一个产品叫做「银企直联」。

开通银企直连功能之后,就可以通过业务系统完成付款、退款等操作,为财务人员节省了流程。财务人员的对于钱款的进入都有严格的流程、尤其出账更是有层层审核才能真正出账。

出账入账是否成功,开发人员为了核对是否真正的成功,需要通过拉取银行流水或者查询单笔经办的交易状态来完成,支付成功后的回调或者状态回写。

业务人员为了判断用户是否付款成功而进行后续业务流程,有需要查看银行的回单。因为回单有银行的公章,是付款的有效凭证之一。

除此之外,银行的产品还有很多、如子账户、分账、现金池、以及跨境业务等。

03 前置机安全机制

银行对接的前置机(Front-End Processor, FEP)是银行业务系统中的关键组件,通常部署在银行内部网络与外部网络(如银联、第三方支付、跨行交易系统)之间,主要负责协议转换、数据安全、交易路由、流量控制等功能。

简单来说,前置机就像一个堡垒机。所有对接的请求都必须通过前置机才能到达银行。而前置机大部分外网是无法访问的。

会有哪些优势呢?

3.1 隔离性

前置机一般都是独立部署的,需要单独的机器。与复杂的业务完全隔离,即便前置机异常也不会曹成系统的不可用,前置机和业务的交互直接通过Http请求的方式交互。

3.2 可复用性

可复用性极高,因为独立部署,又采取通用的HTTP协议,只要某个系统需要使用,直接发送Http请求即可,无法再次部署。

尤其测试环境,多套测试环境的情况下,同一个账号调用同一个前置机即可,无需根据环境更新前置机。

这里的前置机更像一个中间件一样,串联着所有的系统。

3.3 复杂度

前置机不同的银行提供的方式大同小异,一般就是一个客户端,按照步骤安装即可。相比于SDK嵌入式开发来讲,避免了依赖的冲突。依赖冲突的解决是一件麻烦的事。

04 数据的加解密

数据的加密的目的就是为了避免明文传输。这也是等保的硬性要求。

中信银行采用的是Base64编码请求参数,响应的结果也需要通过Base64解码才能拿到结果。

反观招商银行对于参数的处理先是通过国密(SM4-CBC)对参数加密,再通过Base64编码,还在部分参数的基础上做了签名,防止参数被篡改。响应的结果同样需要解密才能解析。

05 槽点

对接的操作基本来源于中信银行,可能因为先对接的招商银行,相比之下中信银行的对接显的更加麻烦。

5.1 前置机的支持

这个是招商银行的前置机,既支持windows也支持linux。而中信的前置机则只支持windows系统。因为服务器基本都是Linux系统,而Window反而变的麻烦。

下面是中信的客户端操作说明:

5.2 接口方式

招商银行采用的流行的json数据传输,而中信银行采用的是传统的xml方式传输数据。xml数据的传输和获取相比json就麻烦一下。

回想一下老的系统基本都是XML的方式,比如老版金蝶系统。

相关推荐
无限的鲜花4 小时前
反射(原创推荐)
java·开发语言
IT二叔4 小时前
Java项目部署-03-teamcity-cicd-docker镜像流水线方式部署
java·ci/cd·持续部署
一路向北he4 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
码事漫谈4 小时前
别写Prompt了,现在流行给AI“写循环”
后端
超级数据查看器5 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
Kyrie_Li5 小时前
Spring Boot Kafka 生产级配置全解析:从入门到精通
spring boot·后端·kafka
Coder_Shenshen6 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解
网络·后端·算法
折哥的程序人生 · 物流技术专研6 小时前
《Java 100 天进阶之路》第50篇:阻塞队列与并发容器(2026版)
java·面试题·java进阶·blockingqueue·并发容器·集合源码·java100天进阶
ai_coder_ai6 小时前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作
java·运维·自动化
yuhaiqiang6 小时前
随手 vibecoding 的浏览器插件已经 6000 多次下载,聊聊他的产品设计
前端·后端·面试