基于私有协议的单向数据传输设备
2021-11-02党增江宋永立尹丽云
党增江,宋永立,高 玫,尹丽云
(中国航天科工集团第二研究院 七〇六所,北京 100854)
0 引 言
为解决企业内网与互联网联通带来的信息安全问题,抓住市场机遇,近几年来,各大信息安全厂商都推出了自己的安全解决方案,其中最核心的就是单向数据传输设备[1-4]。单向数据传输设备是新型的网络安全隔离产品,其基本思想是从本质上将传统计算机网络双向通信的硬件和通信协议设计为单向发送和单向接收,数据只能从低安全等级的网络单向传输到高安全等级的网络中,能够有效防止高等级网络中的敏感信息泄露[5,6]。由于单向传输中没有反向通道,攻击者无法在线获取攻击必需的相关信息,即使向高安全等级网络中“盲”注入了病毒或者木马,由于底层硬件并没有从高安全等级网络中反向传输数据到低安全等级网络的能力,在一定程度上,绝大部分的网络安全攻击行为也将失去意义[5]。
目前,大部分的单向数据传输设备硬件上使用的还是X86平台芯片,单向传输使用单向光卡实现[4,5,7],软件协议上仍然使用IP协议进行数据通信[5,7,8],IP协议是公开的标准以太网通信协议,其通信数据容易被恶意攻击者嗅探和破解,存在信息安全隐患。本文提出一种用于单向数据通信的私有协议,该私有协议运行于网络层,是非IP协议,能够有效避免恶意攻击者的嗅探和破解,基于该私有协议设计了一款国产化申威平台上的单向数据传输设备,搭建了测试验证环境,并通过数据包捕获和分析验证了私有协议的封装结构和传输性能。
1 私有协议设计
在计算机学科概念中,协议即网络协议,是通信计算机双方必须共同遵从的一组约定,如怎么建立连接、如何相互识别等,只有遵守这个约定,计算机之间才能相互通信交流,协议的三要素是语法、语义和时序。TCP/IP协议是以太网中最重要的协议体系,是所有计算机网络的标准。
私有协议是企业或团体内部制定并执行的某种规范约定,对外不公开规范细节。本文中所提出的私有协议是专门为单向数据安全传输系统中数据单向发送和接收而制定的,在一定程度上解决了通信安全问题,同时由于减少了TCP/IP协议的开销,在一定程度上也提高了网络传输性能。
1.1 协议设计
本文设计了一套单向代理传输协议OPTP,该协议主要用于单向数据传输设备外端机与内端机之间的单向通信,OPTP协议报文格式结构如图1所示。
图1 OPTP协议报文结构
报文中各协议字段详细描述如下:
协议头:4个字节,表示使用OPTP协议头封装数据,固定为0xFF-0x55-0xFF-0x55;
通道号:4个字节,数据传输使用的逻辑通道标识,为实现多通道传输而设计,发送端和接收端通道一一对应;
会话号:8个字节,通道中数据传输会话标识,为一个通道实现多路会话而设计;
源系统标识:4个字节,发送数据的业务系统标识;
目的系统标识:4个字节,接收数据的业务系统标识;
数据包序列号:8个字节,数据包的编号,默认从0开始循环使用;
数据安全标识:4个字节,发送数据的安全等级;
数据包总帧数:4个字节,应用数据需要的总数据帧数,如果应用数据为文件数据,表示文件内容需要的总帧数;
数据包总长度:8个字节,应用数据的总大小,单位字节;
帧序号:4个字节,当前数据帧的序号,从0开始;
帧长度:4个字节,当前数据帧中有效数据长度;
数据包类型:2个字节,业务数据类型,1-文件数据,2-TCP报文,3-UDP数据,4-反馈确认信息(仅在双单向传输模式下可用);
反馈标识:2个字节,表示接收端收到业务数据后是否需要从反向的单向通路进行反馈确认,仅在双单向传输模式下有效,0-不需要反馈确认,1-需要反馈确认;
反馈端口:4个字节,仅在双单向传输模式下有效,业务系统发送的数据需要反馈确认时,用于接收确认信息的端口号;
数据区:应用数据,在以太网MTU为9000时,最大长度可达8192字节,可根据不同业务场景进行调整,有效长度由帧长度字节确定。
OPTP协议报文数据结构如下:
#defineMAX_DATA_LEN8192
typedefstruct_OPTP_pkt_
{
unsignedcharhead[4];
unsignedintchannel_id;
unsignedlonglongsession_id;
unsignedcharsrc_sys[4];
unsignedchardst_sys[4];
unsignedlonglongseq_number;
unsignedchardata_level[4];
unsignedinttotal_frame;
unsignedlonglongtotal_len;
unsignedintframe_number;
unsignedintframe_len;
unsignedshortpkt_type;
unsignedshortpkt_flag;
unsignedintack_port;
chardata[MAX_DATA_LEN];
}OPTP_PKT, *OPTP_PKT_PTR;
1.2 协议封装
OPTP协议运行在计算机网络体系中的网络层,是一种非IP私有协议,协议的网络模型如图2所示,由原来的五层协议模型变成了四层协议模型,最上层是应用层,应用数据直接封装成OPTP协议数据包,下层直接使用以太网数据帧封装,而后在物理层上进行传输。
图2 OPTP协议网络模型
(1)以太网数据帧封装
为充分提高单向传输通道的网络效率,可以将单向网卡的MTU设置为9000,即以太网数据帧的最大载荷可达到9000字节,封装OPTP协议数据包的以太网帧结构如图3所示,前同步码7个字节,帧定界符1个字节,以太网协议头14个字节,帧末尾有4个字节的CRC校验码。
图3 以太网数据帧封装
前同步码:实现物理层输入/输出同步,7个字节,0和1交替,即0x55-0x55-0x55-0x55-0x55-0x55-0x55;
SFD:以太网帧定界符,标识帧的开始,1个字节,固定为10101011;
通过清除淤泥、修砌塘埂等,可有效扩大鱼塘容量,增强抗旱保水能力。高产鱼塘至少3年清一次淤泥,虽然清淤费用较高,但可降低饵料系数与鱼病防治费用以及暴发性疾病发生的概率,故利大于弊。一般老池塘每年都要清除池底淤泥,只保留底泥10~15cm即可。也有养殖户将鱼塘水排干后,保持有10cm厚淤泥,再种上黑麦草、蚕豆、油菜及蔬菜等,实行种养有机结合,用农作物根系来通气,吸收和转化土壤中的各种营养物质,起到改良土壤、破坏水生病菌生活环境的效果,能显著减少鱼病的发生,这种种养结合的轮作方式,可互惠互利,共同促进,并且十分符合现代绿色健康养殖要求。
目的MAC地址:接收端网卡的MAC地址,6个字节;
源MAC地址:发送端网卡的MAC地址,6个字节;
类型:以太网帧封装的协议类型,2个字节,取值0x0800的帧代表是IP协议帧,取值为0x0806的帧代表是ARP协议帧。OPTP协议是私有定制协议,使用保留数值0x08 d5;
OPTP数据包:以太网帧的有效数据,最大8256字节,OPTP首部64字节,数据区最大8192字节;
帧校验序列FCS:循环冗余校验CRC值,4个字节,用于验证该以太网帧是否被损坏。
(2)应用数据封装过程
应用数据从上到下经过OPTP协议和以太网帧两层封装后,在实际的物理链路上进行数据传输,封装过程如图4所示。
图4 应用数据封装过程
2 单向数据传输设备设计
本文提出的单向数据传输设备是基于国产化申威平台设计的,采用“2+1”双主机架构,设备部署在不同等级的网络之间,通过构建单向传输通道[9],实现内网和外网之间的业务逻辑互联和数据单向传输,设备内部的单向传输使用上文提出的OPTP协议,而非使用IP协议实现。
2.1 架构设计
图5 单向数据传输设备总体架构
硬件层包括内端机、外端机和单向隔离交换模块,内端机和外端机由主板、硬盘和电源组成,均采用申威421国产化处理器,通过网络接口与用户的内外网络进行通信,完成数据传输和配置管理审计,串口用于进行单向数据传输设备相关参数策略的配置功能。单向隔离交换模块有单向发送卡和单向接收卡组成,中间使用单向光纤连接,与内端机和外端机之间使用PCIE接口连接,单向发送卡与单向接收卡之间使用OPTP协议进行数据通信。
基础软件层包括操作系统、数据库、设备驱动、WEB服务和中间件等,为单向数据传输设备的应用软件运行提供基础支撑环境,操作系统使用国产深度操作系统Deepin 15.2,数据库使用MySQL 5.6,WEB服务使用Tomcat 7.0,中间件使用JDK 1.8。
应用软件层包括配置管理审计系统、杀毒引擎、内端机主程序和外端机主程序等。其中,内端机主程序和外端机主程序相互配合,完成数据安全交换这一核心业务逻辑;配置管理审计系统实现对单向数据传输设备的参数设置、安全策略配置、日志审计、状态监控和系统维护等操作;杀毒引擎,用于对传输的文件数据进行病毒查杀。
单向数据传输设备的软硬件配置详细信息见表1。
表1 单向数据传输设备配置
2.2 业务场景
单向数据传输设备部署在不同安全等级的网络之间[2],提供数据的单向传输,具备数据交换管控功能,提供对传输信息的安全检查,包括文件类型检测、数据安全标识检查、关键词过滤、病毒查杀等,将检查合法的信息从外网单向发送到内网,及时阻止非法数据的传输[5,7]。主要的业务场景包括文件单向传输、TCP报文转发和UDP数据转发。
(1)文件单向传输
单向数据传输设备文件单向传输业务流程如图6所示。当外网用户需要将文件导入内网时,首先在外网用户终端1上生产待导入的文件,然后用户终端1登录专用的文件摆渡工具,创建并提交文件单向导入任务;然后发起文件传输,在单向数据传输设备完成用户终端1的授权认证后,文件摆渡工具将文件传输至外端机,外端机按照设备配置的安全管控策略对文件进行安全审查,包括文件类型检查、文件内容关键词检查等,确认传输数据合法后,将文件内容通过OPTP协议封装后传输至内端机;内端机接收到数据后,从OPTP协议中解析出文件内容。根据传输通道上的路由信息创建下载任务,内网相应的用户登录专用的文件摆渡工具后,将文件下载到本地使用。管理员可以在文件摆渡工具中将文件单向传输设置成自动模式,实现外网到内网的文件目录单向同步,支持实时同步和定时同步。
图6 文件单向传输业务
(2)TCP报文转发业务
单向数据传输设备TCP报文转发业务流程如图7所示。当外网的业务系统需要向内网发送TCP数据时,首先向单向数据传输设备发起连接请求,设备认证完成后建立连接,业务系统通过TCP协议将数据发送到设备,外端机接收到TCP数据后,从TCP报文中剥离出应用数据,按照安全管控策略对报文进行安全检查,确认数据合法后,将报文通过OPTP协议封装后传输至内端机;内端机收到报文后,从OPTP协议中解析出原始的应用数据,根据传输通道上的路由信息将应用数据通过TCP协议封装后转发到指定的内网业务系统中。
图7 TCP报文转发业务
(3)UDP数据转发业务
单向数据传输设备UDP数据转发业务流程如图8所示。当外网的业务系统需要向内网发送UDP数据时,首先通过UDP协议将数据发送到单向数据传输设备,外端机接收到UDP数据后,对数据来源进行验证,验证通过后从UDP数据报中剥离出应用数据,按照安全管控策略对报文进行安全检查,确认数据合法后,将报文通过OPTP协议封装后传输至内端机;内端机收到报文后,从OPTP协议中解析出原始的应用数据,根据传输通道上的路由信息将应用数据通过UDP协议封装后转发到指定的内网业务系统中。
图8 UDP数据转发业务
3 设备性能测试
本节主要对基于OPTP私有协议通信的国产化单向数据传输设备进行性能测试,包括文件传输带宽测试、文件丢失率测、TCP报文传输时延测试和UDP数据传输时延测试,用于验证OPTP协议的网络传输性能。
3.1 软硬件环境
设备性能测试所需要的软硬件见表2,包括管理主机、业务主机、专用的文件摆渡工具以及其它辅助测试工具软件。
表2 软硬件测试环境
3.2 性能测试
(1)文件传输性能测试
使用外网管理主机和内网管理主机在单向数据传输设备上配置一条文件传输通道,外网业务主机运行文件摆渡工具的发送端,与单向网闸外网主机单元使用可靠的TCP通信,内网业务主机运行文件摆渡工具的接收端,与单向网闸内网主机单元使用可靠的TCP通信,单向数据传输设备的外端机和内端机之间使用私有的OPTP协议通信,并在设备内部使用Tcpdump工具捕获网络报文,验证OPTP协议的文件传输能力,测试网络环境如图9所示。
图9 文件传输测试网络拓扑
为避免频繁进行磁盘IO对文件传输性能的影响,在外网业务主机和内网业务主机上使用vsuite.ramdisk软件创建一个16 GB的虚拟硬盘,将待发送的文件先放置在虚拟硬盘中再进行发送操作,在内网业务主机接收的文件直接保存在虚拟磁盘中。
文件传输带宽测试:测试前,先对外网业务主机和内网业务主机进行时间同步,OPTP协议的数据区最大长度设置为8192,使用文件摆渡工具进行文件发送和接收,将发送主机和接收主机的收发目录设置为虚拟磁盘,通过配置的通道传输4 GB的文件数据,连续测试3次,计算3次传输带宽的平均值,具体测试数据见表3。
表3 文件传输带宽测试数据
从表3中的测试数据可以看出,单向数据传输设备在进行文件传输时带宽可达到815 Mbps,与市面上主流的单向传输设备性能相当,能够满足大部分的文件传输业务性能需求。
文件丢失率测试:使用文件摆渡工具同时传输10 000个1 MB文件,统计文件丢失数,并通过MD5的方式验证已接收文件的完整性,执行10次测试,均完整接收所有文件,1 MB文件传输丢失率≤0.01%,在一定程度上能够保证文件的可靠传输。
(2)TCP报文传输时延
使用外网管理主机和内网管理主机在单向网闸上配置一条TCP报文传输通道,OPTP协议的数据区最大长度设置为1024。为方便计算传输时延,报文发送和接收共用一台业务主机,在业务主机上运行两个TCP&UDP测试工具软件,用于报文的发送和接收,且业务主机具备两个网卡,分别连接到单向数据传输设备的外网业务口和内网业务口,并在设备内部使用Tcpdump工具捕获网络报文[10,11],验证OPTP协议的TCP报文传输能力,测试网络环境如图10所示。
图10 TCP报文传输测试网络拓扑
使用TCP&UDP测试工具发送50次1 KB大小的TCP报文,根据捕获报文内的时间戳信息(自1970-01-01经过的秒数,精确到微秒),计算出50次报文传输的平均时延,重复3轮测试操作,计算出最终报文传输时延,具体测试数据见表4。
表4 TCP报文传输时延测试数据
从表4中的测试数据可以看出,1 KB大小的TCP报文传输时延在2.6 ms左右,能够满足毫秒级时延要求的业务系统TCP报文传输需求。
(3)UDP数据传输时延
使用外网管理主机和内网管理主机在单向网闸上配置一条UDP数据传输通道,OPTP协议的数据区最大长度设置为1024。为方便计算传输时延,报文发送和接收共用一台业务主机,在业务主机上运行两个TCP&UDP 测试工具软件,用于UDP数据的发送和接收,且业务主机具备两个网卡,分别连接到单向数据传输设备的外网业务口和内网业务口,并在设备内部使用Tcpdump工具捕获网络报文,验证OPTP协议的UDP数据传输能力[10,11],测试网络环境如图11所示。
图11 UDP数据传输测试网络拓扑
使用TCP&UDP测试工具发送100条0.5 KB大小的UDP数据,根据捕获报文内的时间戳信息(自1970-01-01经过的秒数,精确到微秒),计算出100次数据传输的平均时延,重复3轮测试操作,计算出最终UDP数据传输时延,具体测试数据见表5。
表5 UDP数据传输时延测试
从表5中的测试数据可以看出,0.5 KB大小的UDP数据传输时延在1.5 ms左右,能够满足毫秒级时延要求的业务系统UDP数据代理转发需求。
4 结束语
本文针对不同安全等级网络之间数据单向传输需求,提出了一种私有的单向代理传输协议OPTP,介绍了协议的报文格式和封装过程。基于该私有协议在国产化申威平台上设计了一款单向数据传输设备,并在不同的业务场景下进行了设备的性能测试,从获得的测试数据可以看出,基于OPTP协议的国产化单向数据传输设备能够满足不同业务传输的性能要求。未来,可以针对不同的业务场景,对单向数据传输设备做进一步的优化设计。