一种基于国密算法的以太网桥加扰终端
技术领域
本发明涉及一种以太网分布部署的设备或其它开放的网络回传数据设备,具体涉及一种基于国密算法的安全以太网桥加扰终端。
背景技术
以太网分布部署的设备或其它开放的网络回传数据设备所遇到的风险如下:
1)裸露数据未经过任何加扰处理,可以很容易被截获还原,甚至可以侦听到控制协议报文;
2)远程终端的数据处理和网络数据处理都是采用CPU加操作***和应用软件的方式实现的,存在被入侵和攻击的风险。黑客可以采用DDOS攻击方式直接导致整个终端停止工作,甚至采取更高级的手段入侵CPU的操作***,直接获取最高权限为所欲为;
3)存在通过先入侵开放的网络回传数据设备,再入侵数据分析和控制中心的风险;
4)回传的数据有被篡改和伪造的风险,或者被重新定向到黑客指定的目标IP。
基于现有技术由于以太网的分布部署的设备或其它开放的网络回传数据设备大量存在这样的风险,急需一个简单易行、方便部署、性价比高的安全防护方案。
发明内容
针对现有以太网分布部署的设备或其它开放的网络回传数据设备在非可信网络进行数据交换和数据回传中所面临的巨大风险,本发明的目的是提供一种基于国密算法的安全以太网桥加扰终端,采用基于国密算法的安全以太网桥加扰技术来解决已经部署的以太网终端设备和开放的网络数据回传终端设备所面临的风险。
本发明的目的是采用下述技术方案实现的:
本发明提供一种基于国密算法的安全以太网桥加扰终端,其改进之处在于,
所述终端包括FPGA/SoC芯片、3个以太网物理接口和USB物理接口;所述FPGA/SoC芯片包括以太网桥数据接收/转发模块,白名单过滤模块,数据加扰模块,数据防篡改校验模块,终端设备身份认证模块和用户使用身份认证模块;所述以太网桥数据接收/转发模块,白名单过滤模块,数据加扰模块和数据防篡改校验模块均通过3个以太网物理接口与以太网接入设备或采集终端进行数据交互;所述用户身份验证模块和终端设备身份认证模块均与以太网桥数据接收/转发模块,白名单过滤模块,数据加扰模块,数据防篡改校验模块和终端设备身份认证模块进行数据交互,所述用户使用身份认证模块通过USB物理接口输出数据;所述终端设备身份认证模块和用户使用身份认证模块通过SD/TF卡读卡插槽和指纹模块进行身份认证。
进一步地,所述终端还包括工作状态灯、故障报警灯和电源模块;所述工作状态灯、故障报警灯和电源模块均与FPGA/SoC芯片连接;
所述终端通过以太网物理接口从以太网接入设备或采集终端接收流明文和控制明文,并通过以太网物理接口输出流密文和控制密文。
进一步地,所述FPGA/SoC芯片采用32位嵌入式CPU,即CPU作为处理器,所述FPGA/SoC芯片还包括低速输入输出部件、高速输入输出部件、协议处理部件、***控制部件和硬件加密单元;所述CPU、低速输入输出部件、高速输入输出部件、协议处理部件、***控制部件和硬件加密单元均由32位多层AMBA AHB总线矩阵互连。
进一步地,所述高速输入输出部件包括高速接口控制器和以太网网络层MAC控制器,所述高速接口控制器包括:USB 2.0HOST控制器和SDMMC 3.0Host控制器;所述以太网网络层MAC控制器包括以太网网络层MAC-0控制器,MAC-1控制器和MAC-2控制器;所述USB2.0HOST控制器和SDMMC 3.0Host控制器,以及以太网网络层MAC-0控制器,MAC-1控制器和MAC-2控制器均连接至32位多层AMBA AHB总线矩阵上;
所述低速输入输出部件包括连接至32位多层AMBA AHB总线矩阵上UART控制器,SPI控制器,GPIO控制器和SCI7816控制器。
进一步地,所述协议处理部件包括依据可配置的地址过滤表,分别对网络协议不同层次的包进行过滤的地址过滤单元和数据加扰单元;
所述地址过滤单元包括用于对MAC源地址和目的地址过滤的MAC地址过滤模块、用于对IP源地址和目的地址过滤的IP地址过滤模块和用于对TCP/UDP源端口号和目的端口号过滤的TCP/UDP端口过滤模块;
所述数据加扰单元包括将原始包序号做乱序加扰、在发送端所连接的加扰终端上对发送数据的TCP包头进行加扰处理、在接收端所连接的加扰终端上对接收数据的TCP包头进行解扰处理的TCP加扰模块,和根据UDP协议包头的目的端口号选择对应的密钥,对UDP协议包头中的校验和进行整体加解密处理的UDP加扰模块。
进一步地,所述MAC地址过滤模块、IP地址过滤模块和TCP/UDP端口过滤模块均通过FPGA芯片上的寄存器配置选择功能启用或关闭;
所述MAC地址过滤模块依据MAC层源地址和目的地址过滤表检查接收数据包的源地址和目的地址,对比成功的数据包通过并转发到下一层过滤模块,或直接发送出去到下游设备;对比失败的数据包会被拦截;当MAC地址过滤模块功能启用时,将接收数据包的源地址和目的地址数据与MAC层地址过滤表中信息进行对比,MAC地址过滤表映射在48bit位宽的RAM中,最多支持16个地址;
所述IP地址过滤模块依据IP层源地址和目的地址过滤表检查接收数据包的源地址和目的地址,对比成功的数据包通过并转发到下一层过滤模块,或直接发送出去到下游设备,对比失败的数据包会被拦截;当IP地址过滤模块功能启用时,将接收数据包的源地址和目的地址数据与IP层地址过滤表中信息进行对比,IP地址过滤表映射在32bit位宽的RAM中,最多支持16个地址;
所述TCP/UDP端口过滤模块依据TCP/UDP源端口和目的端口过滤表检查接收数据包的源端口和目的端口,对比成功的数据包通过并转发到下一层过滤模块,或直接发送出去到下游设备,对比失败的数据包会被拦截;当TCP/UDP端口过滤模块功能启用时,将接收数据包的TCP/UDP源端口和目的端口数据与TCP/UDP端口过滤表中信息进行对比,TCP/UDP端口过滤表映射在16bit位宽的RAM中,最多支持16个地址。
进一步地,所述TCP加扰模块结合目的地址端口号,选择不同的密钥进行乱序加扰;所述乱序加扰是基于国家商用密码管理局指定的密码算法,根据TCP包头的目的端口号选择对应的密钥,对TCP包头中的序列号和确认号进行整体加解密处理,同时加扰终端需要将TCP包头中的校验和以及整个数据包的CRC重新生成,以防止发生校验错误;
所述UDP加扰模块处理的UDP协议首部格式遵循以下原则:
①用户数据报UDP有两个字段:数据字段和首部字段;首部字段有8个字节,由4个字段组成,每个字段都是两个字节;
②在计算检验和时,临时把伪首部和UDP用户数据报连接在一起,伪首部仅仅是为了计算检验和;
所述UDP加扰模块检验过程如下:
(1)把伪首部添加到UDP上;
(2)计算初始时是需要将检验和字段添零的;
(3)把所有位划分为16位,即2字节的字;
(4)把所有16位的字相加,如果遇到进位,则将高于16字节的进位部分的值加到最低位上;
(5)将所有字相加得到的结果为一个16位的数,将该数取反则得到检验和checksum。
进一步地,所述***控制部件包括连接至32位多层AMBA AHB总线矩阵上的***控制单元,中断处理单元,Timer控制器,看门狗控制器、DMA控制器和复位管理单元。
进一步地,所述硬件加密单元实现多种加解密安全算法,包括国际加解密安全算法:RSA,DES/3DES,AES和SHA-1;国家商用密码管理局指定的密码算法:SM1、SM2、SM3和SM4。
进一步地,所述32位多层AMBA AHB总线矩阵包括AHB总线和APB总线;
在所述AHB总线上的外设,包括:以太网网络层MAC-0控制器,MAC-1控制器,MAC-2控制器,片内***单端SYS RAM SM1/SM4/AES,SM3/SHA256,SM2/ECC,USB 2.0HOST控制器和SDMMC 3.0Host控制器;
在所述APB总线上的外设,包括:***控制单元,中断处理单元,Timer控制器,看门狗控制器,SCI7816控制器,UART控制器和GPIO控制器。
与最接近的现有技术相比,本发明提供的技术方案达到的有益效果是:
本发明提供的基于国密算法的以太网桥加扰终端,采用基于国密算法的以太网桥加扰技术来解决已经部署的以太网终端设备和开放的网络数据回传终端设备所面临的风险。本项目基于FPGA硬件平台开发一款高性能、高集成度、高兼容性、高安全性的基于国密算法的以太网桥加扰终端。其中,FPAG硬件芯片内采用国家工信部和科技部认可的国产自主知识产权的32位嵌入式安全CPU;支持国际和国密算法的硬件电路,同时为不同等级的算法提供算法可编程、可重组的基础硬件资源;集成硬件逻辑电路设计实现的网络MAC,网络IP地址过滤,网络白名单访问控制策略,网络数据加扰等;同时还集成了标准USB Host控制器、SD Host控制器等高速通信接口,并具备丰富的低速接口,如UART、SPI、GPIO、SCI7816等。
本发明研究现有基于IP包回传数据的远程终端的安全隐患,综合运用加解密技术、防火墙技术、应用层过滤技术、访问控制技术等,对经过以太网或其它开放网络回传的数据进行线路加扰处理,采用安全SoC芯片技术(FPGA)对访问该远程终端的数据包进行安全防护策略:对源IP做白名单的过滤,对应用的协议做白名单过滤,对TCP/UDP数据做乱序加扰等,并具有监控远程终端运行状况,电源管理等功能。在不改变网络配置环境的情况下,可以透明的串入线路中,完成过滤和加扰功能,避免网络窃听和非法入侵。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是基于国密算法的以太网桥加扰终端结构组成图;
图2是基于国密算法的以太网桥加扰终端FPGA芯片架构示意图;
图3是基于国密算法的以太网桥加扰终端核心部分由32位多层AMBA AHB总线矩阵(Network Interconnect)互连示意图;
图4是基于MAC-0,MAC-1,MAC-2,DPRAM-0,DPRAM-1,DPRAM-2,DPRAM-3以及IP过滤和加解扰单元的数据通路示意图;
图5是地址过滤数据流示意图;
图6是数据包加扰的流程示意图;
图7是TCP头的格式的示意图;
图8是有数据传输时,序列号Sequence Number和确认号Acknowledgement Number变化的示意图;
图9是UDP首部格式示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
第一优选技术方案
基于国密算法的以太网桥加扰终端结构组成图如图1所示,包括:
1)Xilinx Spartan 6FPGA;
2)三个独立的以太网物理接口,包括GMII PHY和RG45座;
3)USB 2.0物理接口;
4)SD/TF卡读卡插槽;
5)UART接口;
6)NorFlash颗粒,用于保存固件程序;
7)IC卡读卡插槽;
8)工作状态灯——绿色闪烁;
9)故障报警灯——红色闪烁;
***核心部分由32位多层AMBA AHB总线矩阵(Network Interconnect)互连。
基于国密算法的以太网桥加扰终端的核心部件是硬件FPGA,其结构示意图如图2所示,实现的主要功能包括:
1)集成国家工信部和科技部认可的国产自主知识产权的32位嵌入式安全CPU(龙芯LS232)。
2)采用AMBA总线矩阵技术。
3)集成三个10/100/1000Mbps以太网网络层(MAC)控制器。
4)集成高速接口控制器,包括USB 2.0 Host控制器和SDMMC Host控制器。
5)集成低速接口控制器,包括UART控制器,SPI控制器,GPIO控制器、SCI7816控制器等。
6)采用硬件逻辑电路设计实现多种加解密安全算法,包括国际加解密安全算法:RSA,DES/3DES,AES和SHA-1;国家商用密码管理局指定的密码算法:SM1、SM2、SM3、SM4。
7)集成硬件逻辑电路设计实现网络IP地址过滤,网络白名单访问控制策略,网络数据加扰等。
具体的,基于国密算法的以太网桥加扰终端核心部分由32位多层AMBA AHB总线矩阵(Network Interconnect)互连示意图如图3所示,包括下述部件:
·7个Master
100/1000Mbps以太网网络层(MAC-0)控制器
100/1000Mbps以太网网络层(MAC-1)控制器
100/1000Mbps以太网网络层(MAC-2)控制器
·10个Slave
片内***单端SYS RAM(128KB),分别为SPRAM0(32KB),SPRAM1(32KB),SPRAM2(32KB),SPRAM3(32KB)
AHB总线上的外设:MAC-0,MAC-1,MAC-2,SM1/SM4/AES,SM3/SHA256,SM2/ECC,USB Host,SDMMC Host;
APB总线上的外设:***控制单元,中断处理单元,Timer控制器,看门狗控制器,SCI7816控制器,UART控制器,GPIO控制器。
多层总线矩阵(Network Interconnect)能使多Master访问不同外设时并行操作,从而提高***效率。基于MAC-0,MAC-1,MAC-2,DPRAM-0,DPRAM-1,DPRAM-2,DPRAM-3以及IP过滤和加解扰单元的数据通路示意图如图4所示,***组成表如表1所示:
表1***组成表
一、地址过滤
地址过滤单元包括用于对MAC源地址和目的地址过滤的MAC地址过滤模块、用于对IP源地址和目的地址过滤的IP地址过滤模块和用于对TCP/UDP源端口号和目的端口号过滤的TCP/UDP端口过滤模块;
地址过滤技术可将访问和被访问者限制在一个特定范围内。地址过滤模块依据可配置的地址过滤表,分别对网络协议不同层次的包进行过滤。其中包括MAC源地址和目的地址,IP源地址和目的地址,TCP/UDP源端口号和目的端口号。地址过滤数据流示意图如图5所示。
1、MAC层源地址和目的地址过滤
(1)MAC地址过滤模块可通过寄存器配置选择功能启用或关闭。
MAC地址过滤模块依据MAC层源地址和目的地址过滤表检查接收数据包的源地址和目的地址,对比成功的数据包可以通过并转发到下一层过滤模块,或直接发送出去到下游设备。对比失败的数据包会被拦截。
(2)MAC层地址过滤表内存映射
当MAC地址过滤模块功能启用时,将接收数据包的源地址和目的地址数据与MAC层地址过滤表中信息进行对比,MAC地址过滤表映射在48bit位宽的RAM中,最多支持16个地址,格式如下表2所示:
表2 MAC地址过滤表映射格式
地址 |
数据(bit 47:0) |
0 |
Physical Address 0 |
1 |
Physical Address 1 |
… |
… |
15 |
Physical Address 15 |
注意:MAC层广播地址(FF:FF:FF:FF:FF:FF)也需要配置到地址映射表中以接收广播包。
2、IP层源地址和目的地址过滤
(1)IP地址过滤模块可通过寄存器配置选择功能启用或关闭。
IP地址过滤模块依据IP层源地址和目的地址过滤表检查接收数据包的源地址和目的地址,对比成功的数据包可以通过并转发到下一层过滤模块,或直接发送出去到下游设备。对比失败的数据包会被拦截。
(2)IP层地址过滤表内存映射
当IP地址过滤模块功能启用时,将接收数据包的源地址和目的地址数据与IP层地址过滤表中信息进行对比,IP地址过滤表映射在32bit位宽的RAM中,最多支持16个地址,格式如下表3所示:
表3 IP地址过滤表映射格式
地址 |
数据(bit31:0) |
0 |
IP Address 0 |
1 |
IP Address 1 |
… |
… |
15 |
IP Address 15 |
注意:IP Address为IPv4地址。
3、TCP/UDP源端口和目的端口过滤
(1)TCP/UDP端口过滤模块可通过寄存器配置选择功能启用或关闭。
TCP/UDP端口过滤模块依据TCP/UDP源端口和目的端口过滤表检查接收数据包的源端口和目的端口,对比成功的数据包可以通过并转发到下一层过滤模块,或直接发送出去到下游设备。对比失败的数据包会被拦截。
(2)TCP/UDP源端口和目的端口过滤表内存映射
当TCP/UDP端口过滤模块功能启用时,将接收数据包的TCP/UDP源端口和目的端口数据与TCP/UDP端口过滤表中信息进行对比,TCP/UDP端口过滤表映射在16bit位宽的RAM中,最多支持16个地址,格式如下表4所示:
表4 TCP/UDP端口过滤表映射格式
地址 |
数据(bit15:0) |
0 |
Port 0 |
1 |
Port1 |
… |
… |
15 |
Port15 |
二、数据加扰
数据加扰单元包括将原始包序号做乱序加扰、在发送端所连接的加扰终端上对发送数据的TCP包头进行加扰处理、在接收端所连接的加扰终端上对接收数据的TCP包头进行解扰处理的TCP加扰模块,和根据UDP协议包头的目的端口号选择对应的密钥、对UDP协议包头中的校验和进行整体加解密处理的UDP加扰模块。
数据包加扰可根据应用需求在网络协议的不同层次进行加扰,由地址过滤模块将符合过滤条件的协议包的数据提取并存储在FPGA内部的数据双端口RAM中,再由数据加扰模块直接读取并进行加解扰操作。具体流程如图6所示。
1、TCP加扰策略
为了应对数据在网络传输过程中被截获还原,在TCP层可以采取将TCP包头中的Sequence Number和Acknowledgement Number进行加扰处理——将原始包序号做乱序加扰,在发送端所连接的加扰终端上对发送数据的TCP包头进行加扰处理,在接收端所连接的加扰终端上对接收数据的TCP包头进行解扰处理。同时,结合目的地址端口号,可选择不同的密钥进行乱序加扰。
乱序加扰是基于对称加解密算法(如:SM4等),根据TCP包头的目的端口号选择对应的密钥,对TCP包头中的Sequence Number和Acknowledgement Number进行整体加解密处理,同时加扰终端需要将TCP包头中的Checksum以及整个数据包的CRC重新生成,以防止发生校验错误。TCP头的格式如图7所示。
其中Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题。
图8是有数据传输时,Sequence Number和Acknowledgement Number变化的示意图,如图8所示。可以看到,Sequence Number的增加是和传输的字节数相关的。Acknowledgement Number的增加和接收的字节数相关。由此可见,如果加扰后的TCP报文被恶意截取到,因为无法得到正确的Sequence Number就无法将多个TCP报文组成一个完整的数据,从而也就无法进行分析破解。
2、UDP加扰策略
UDP协议是一种无连接的、不可靠的传输层协议。在完成进程到进程的通信中提供了有限的差错检验功能——通过校验和检查(checksunm),一旦出错就丢掉此包,丢失不重传,只是给个警告。其加扰策略是基于对称加解密算法,根据UDP包头的目的端口号选择对应的密钥,对UDP包头中的校验和(checksum)进行整体加解密处理。UDP首部格式如图9所示。
说明:
用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。
在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起,伪首部仅仅是为了计算检验和。
UDP检验和过程:
1)把伪首部添加到UDP上;
2)计算初始时是需要将检验和字段添零的;
3)把所有位划分为16位(2字节)的字;
4)把所有16位的字相加,如果遇到进位,则将高于16字节的进位部分的值加到最低位上,举例,0xBB5E+0xFCED=0x1 B84B,则将1放到最低位,得到结果是0xB84C;
5)将所有字相加得到的结果应该为一个16位的数,将该数取反则可以得到检验和checksum。
运用本发明提供的技术方案,可以实现以下功能:
基于EDA平台完成芯片***最小集的集成与功能仿真,包括:AMBA总线矩阵、CPU、***RAM、数据RAM、MAC-0、MAC-1、MAC-2等;
基于FPGA开发平台(xilinx公司的V7平台)完成以太网MAC-0到MAC-1和MAC-0到MAC-2数据通路的调试;
基于EDA平台完成IP过滤,TCP加扰策略和UDP加扰策略等功能的设计、集成与功能仿真;
基于FPGA开发平台完成以太网IP过滤,TCP加扰策略和UDP加扰策略等功能的通路调试。
本发明基于FPGA硬件平台开发一款高性能、高集成度、高兼容性、高安全性的基于国密算法的以太网桥加扰终端。其中,FPAG硬件芯片内采用国家工信部和科技部认可的国产自主知识产权的32位嵌入式安全CPU;支持国际和国密算法的硬件电路,同时为不同等级的算法提供算法可编程、可重组的基础硬件资源;集成硬件逻辑电路设计实现的网络MAC,网络IP地址过滤,网络白名单访问控制策略,网络数据加扰等;同时还集成了标准USB Host控制器、SD Host控制器等高速通信接口,并具备丰富的低速接口。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。