APP下载

基于Socks5 代理的FTD 协议网闸研究与设计∗

2019-11-12廖光忠刘思远

计算机与数字工程 2019年10期
关键词:报文防火墙代理

廖光忠 刘思远

(1.武汉科技大学计算机科学与技术学院 武汉 430065)(2.智能信息处理与实时工业系统湖北省重点实验室 武汉 430065)

1 引言

随着我国证券行业的发展,计算机在券商交易中起到的作用越来越大,程序化交易在券商交易中起着越来越大的作用。计算机辅助交易或者程序化交易给证券行业带来方便的同时,风险也随之增大[1~2]。因此,如何控制交易过程中交易数据产生的风险,是当前需要考虑和解决的重要问题之一。针对交易数据存在的风险问题,设计和实现基于FTD 协议的风险控制网闸系统,建立“实时报备、实时监控、实时熔断”的风险控制机制[3]。

防火墙是一种保护计算机网络安全的技术性措施,它通过在网络边界上建立相应的网络通信监控系统来隔离内部和外部网络,以阻挡来自外部的网络入侵[4]。按照实现的层次上来进行分类,防火墙可分为IP 级防火墙,应用级防火墙和Socks 防火墙。Socks 防火墙并不针对专门的应用协议,而是一种通用的TCP(UDP)连接中继服务,连接的发起方不直接与响应方建立连接,而是与Socks 防火墙交互,再由Socks 防火墙与响应方建立连接[5~6]。IP级代理对静态的通信管理是有用的,但是不提供强壮的安全机制或者动态的灵活性,反之Socks 两者都提供。Socks 同样弥补了应用程序代理的不足,因为Socks支持任何应用而不是为每一个特定的应用程序写一个特定的代理,所以它在应用透明性上是优于应用程序代理的[7]。从上面的比较可以看出Socks 防火墙克服了IP 级防火墙和应用级防火墙的不足,是一种比较理想的防火墙方案。因此,本文选择将Socks代理技术应用于风控网闸系统。

2 风控网闸相关研究和技术

2.1 FTD协议简介

FTD 协议是期货数据交换协议,是一种基于TCP 协议的应用层协议。该协议由中国证券监督管理委员会发布,所有的期货交易软件都遵循该协议规定的通讯方式和数据格式[8]。该协议是期货数据交易时会员系统和交易所系统之间的一种约束,包括通讯的方式,传输数据的格式,数据字典的定义,交易数据的内容等,是交易系统软件终端和交易所对接的桥梁[14]。FTD 协议通讯工作过程如图1所示。

图1 FTD协议通讯工作过程

2.2 网络过滤路由模式

目前,风控网闸系统实现方式主要为网络过滤路由模式,即基于IP 级防火墙过滤模式。路由模式的设计采用Netfilter[11~12]用户态程序设计,用户态程序设计易于变更和维护,有较强的可操作[3]。基本业务处理逻辑如图2所示,通过iptables[13]制定过滤策略,从IP QUEUE 队列中获取相关的数据报文,对数据报文的内容按照FTD(期货数据交换)协议进行解析,把解析的信息进行规则匹配处理,返回处理结果记录日志,根据处理结果判断报文的合法性:如果合法,给出放行指令;否则,按照FTD 协议规定的报文格式构造相关的请求报文对应的响应报文,提示请求数据报文非法被风控系统拦截,然后发送TCP 重置的报文RST=1,重置TCP 连接中的传输序列号,保证会员系统和CTP平台的连通。

风控系统路由模式拦截交易数据包在TCP 协议上的反应如图3 所示,服务端并不知道报文被响应,又TCP 是面向连接的可靠的传输协议,当我们在进行数据报文的拦截和伪造响应时,交易所系统不知道请求报文seq=x+1 的存在,而会员系统会认为发送请求成且得到响应,此时TCP连接两端数据传输的序列号会发生冲突,服务器会向客户端请求ack=x+1 的报文,而客户端会响应的时seq=x+2,此时客户端会重传seq=x+1 的报文,该报文一样会被风控过滤系统拦截,进入死循环,会造成seq=x+1的报文在TCP 链接中多次重传而得不到正确的响应。当重传的次数超过TCP协议规定的次数后,该链接会断开,要求重新建立TCP 连接,重传和重新建立TCP连接会耗费多余的时间,影响数据传输速率。

图2 路由模式数据基本流程示意图

图3 网闸系统拦截交易数据在TCP层的效果对比

为了解决TCP 连接中断的问题,本文将使用Socks5代理技术来实现风控网闸系统,以取代传统的基于Netfilter设计实现的网络过滤路由模式。

2.3 网络过滤代理模式

本文实现风控网闸系统的方式为网络过滤代理模式,即Socks 防火墙代理模式。代理服务器分别与会员系统和交易所系统建立独立的TCP连接,相互独立,互不影响。如图4 所示,该模式以中介者的身份分别与客户端和目标服务器连接,可以轻松地避开TCP连接重置同步的问题。

3 系统设计与实现

3.1 总体框架

本文提出的风控网闸系统是一种基于Socks5代理的证券交易的风控网闸系统。该闸系统设计的目的是通过对交易数据报文的拦截,利用FTD协议解析交易数据报文,快速匹配给定的风险控制规则,判断报文中的交易数据是否合法。如果合法,放行;否则,拦截、记录、报警、更新信息等。系统的设计需要兼容不同的交易客户端和其工作模式。系统的运用不能对原有的网络结构有大的影响,不能影响原有系统的正常运行。该系统总体框架如图5所示。

图4 代理模式相互独立的TCP序列号

图5 系统总体框架示意图

会员系统、交易所为最初证券行业程序化交易系统的客户端和服务端,共同完成期货的自动化交易功能。

3.2 系统设计

该风控网闸通过开源代理软件ss5二次开发来过滤指定协议的数据报,数据来源通过分析相关数据报文的特征拦截。该系统通过代理和交易所平台连接,避免了TCP协议对系统拦截报文出现中断的现象,同时也提高了内网的安全级别,这是代理模式的优势,但是通过代理软件连接,需要客户端支持代理模式和进行相关的配置,同时需要搭建和管理代理服务器。

该系统数据基本流程如图6 所示,可以看出代理模式数据基本流程和路由模式基本相同,但两者所用核心技术却不相同。一个基于Socks 防火墙,一个基于IP级防火墙。

图6 代理模式数据基本流程示意图

如图7 所示,Socks5 代理风控网闸数据流主要包括两个部分:Socks 数据流和应用数据数据流。Socks 数据流主要完成客户端的请求认证及解析、绑定客户端和应用服务器的映射关系。应用数据流主要完成客户端和应用服务端之间的数据交互,即客户端向应用服务端请求的数据。这些数据流分别有Socks5 各模块协同完成,主要包括认证模块、Socks5 模块、代理模块、过滤模块、带宽模块和日志模块,各模块具体功能描述如下。

图7 Socks5代理数据流及模块接口

1)认证模块:用来处理Socks5 的认证方法协商。

2)Socks5模块:主要完成对Socks5数据包的解析和响应。

3)代理模块:实现对代理数据的转发功能。

4)过滤模块:根据本地的过滤规则,按照客户端的地址信息进行过滤。

5)带宽模块:根据配置信息,对客户端进行带宽控制。

6)日志模块:记录系统运行时各种状态信息。

其中,实现系统风控过滤的核心功能模块是过滤模块。在过滤模块识别出FTD 数据包文并对其按照FTD数据格式进行解析,分析出报文各字段数据,然后按照事先定义的风控规则,结合RFC 分类算法[9~10]匹配出该FTD数据报文是否合法。

4 系统测试与分析

4.1 实验环境

本系统部署在单机环境下做了交易数据的测试,测试环境:服务器-阿里云主机(CPU:1 核2.5G,内存:2 GB,带宽:1M),操作系统-CentOS 7.4 64 位,报单请求数据报文大小-654Bytes、报单响应数据报文大小-801Bytes。测试环境如图8所示。

图8 实验测试网络示意图

本文为了测试需求,根据上海期货信息技术有限公司提供的相关API(http://www.sfit.com.cn/5_2_DocumentDown.htm)开发了简单的模拟交易软件。在交易终端安装模拟交易软件和wireshark 抓包工具,并在网闸系统中嵌入程序运行计时工具。

4.2 实验结果

本次实验除了测试系统能够完成交易风控功能外,还需测试系统各模块对整个交易过程的延迟影响。系统主要包含的模块:FTD 过滤拦截模块、代理数据模块和规则匹配模块。

经测试本系统能够满足正常风控需求。本次实验测试多组数据,如表1,记录4次成功交易中系统各流程耗时(单位ms)情况作为实验的测试结果,最后取多组实验结果的平均值。其中,其他耗时包括网络延迟和交易所处理报单响应时间,且基本等于未嵌入风控系统时报单交易时间。

表1 网闸各功能模块耗时及交易总耗时(ms)

从实验结果可知,网闸系统虽然对交易延迟产生了比较明显的影响,约占33%,但延迟任处于正常交易延迟范围内。当然,相对于控制交易风险,对交易延迟的消耗是不可避免的。但由于证券交易毕竟是一种高频交易,且对交易延迟有比较严格的要求[15]。因此,本系统后期工作将针对规则匹配模块做进一步优化,提高匹配效率,降低匹配耗时。

5 结语

本文研究和设计了基于Socks 防火墙来实现FTD 协议证券交易风控网闸系统。本系统的设计和实现从协议入手,屏蔽了不同交易终端的兼容性问题,并且该系统不改变原有的网络结构和软件结构。本系统使用Socks代理技术在传输层拦截交易数据,克服了基于IP 级防火墙实现风控网闸的不足,并提供了更高的灵活性和更强的安全机制。后期,将着手优化该系统风控规则的匹配过程,进一步提高系统的执行效率。

猜你喜欢

报文防火墙代理
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
基于报文类型的限速值动态调整
“一封家书”寄深情 筑牢疫情“防火墙”
全民总动员,筑牢防火墙
《汽车维修技师》诚招代理
构建防控金融风险“防火墙”
浅析反驳类报文要点
1号异星球餐馆·不可思议的代理老板
《航空模型》团体代理招募