浅谈多网络之间数据传输的安全性及系统实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈海关多网络之间数据传输的安全性及系统实现
【内容提要】在当前海关内外网隔离的要求下,为了更好的贯彻服务企业,促进发展的方针,就必须和企业建立一条数据通道,方便企业传输数据或海关向企业传递海关信息,但这又与海关内网安全有一定抵触,本文介绍了一种软件实现办法,描述了如何有效,经济,安全的在内外网之间传输数据。
在文章里,具体介绍了系统的整体结构和模块实现,并在加密算法和系统底层传输上提出了一些解决办法。
在加密算法上,合理的采用多种成熟的算法,如desx,blowfish,对数据的加密能达到一个较安全的等级。
在文章的最后,提出了安全不光要从软硬件上加以控制,更重要的是要从规范上,管理上加强控制。
【关键词】网络安全网络隔离内外网数据传输加密算法
【作者简介】金剑锋男苏州海关技术处科员
在日新月异的今日世界中,信息技术无论在各行各业都已逐渐取得了重要地位,并且会越来越重要。
随之而产生的安全问题也越来越需要引起人们足够的重视,病毒,黑客等诸方面的因素使得网络越来不安全。
Enterasys公司网络安全设计师Dick Bussiere认为:在电脑网络犯罪手段与网络安全防御技术道高一尺魔高一丈不断升级的形势下,网络攻击者和防御者都失去了技术方面的屏障,单依靠网络安全技术不可能非常有效。
有统计数据表明,将近一半的防火墙被攻破过。
而且,更多更新的攻击手段还会层出不穷。
海关为了应对这种情况,保持网络的纯洁度,采用了物理隔离的办法,该办法能有效的杜绝因特网上的诸种不安全的因素,较好的保持内网的安全性。
但是安全的含义是相对的,美国的一个安全权威机构曾经定义了一个所谓的“绝对安全”的例子—把硬盘封闭在抽成真空的金属箱子里,将箱子沉入不知名的海洋中。
这样,硬盘上的信息就是绝对安全的了。
但显然,此时硬盘上的数据是完全不可用的。
安全之所以是永
恒的话题,就是因为在实现安全性的同时,必须兼顾网络(或者说是数据)的可用性。
海关是一个积极与企业打交道的单位,在很多方面,需要企业的大量数据,于是就产生了数据在物理隔离网络上的交换的问题。
向企业拉专网是一个办法,但一旦应用推广后,这个办法要耗去大量人力物力,显然不是很经济,企业由互联网把数据传输到海关在目前看来最可行,但在海关网络隔离的要求下,企业必须把数据传输到海关的外网服务器上,然后或人工,或自动把数据传输到内网服务器上。
目前来看,主要有以下几种方式:1.人工拷贝,该方法较易行,但缺点很多,如不能满足及时性要求很高的数据,需要人工负责,就会有错误或遗漏等等。
2.网闸服务器,但该种服务器往往造价不菲,不是很经济。
在结合诸方面的考虑下,决定设计一个这样的系统,该系统能较好的满足安全和便捷诸方面的要求,称之为双网数据传输系统。
在下面,这几种方式我作了一个比较,如表:
从以上表中,可以看出该系统能较好的满足成本低,及时性高,错误率低等诸方面的要求。
同时该系统还必须具有以下特点:
1.该系统必须具有用户身份识别的功能,即通过帐号、密码、地址、端口等验证用户身份,决定用户所使用的权限;
2.传输的数据必须是加密过的,在因特网日益不安全的今天,所传输的数据必须是经过加密的,这样就能较好的保护好数据,同时必须对所传输的数据进行校验,以保证数据是原生数据。
3.内外网传输的数据必须是定制的,而且具有校验机制,这样能保证传输数据的正确性。
而且为了进一步保证数据的正常,必须采用有效的手段来监控网络数据流并发现危险趋向。
从以上系统特点可以看出,重点在三个方面:
1.数据加密算法的采用。
2.内外网数据传输的可定制性。
3.系统运行时对网络数据流的监控。
系统简述
该系统结构采用了企业客户端,外网服务器端,内网服务器端的C-S(外网)-s(内网)模式。
为了满足在因特网上传输数据的安全需要,加密算法采用了DESX,BLOWFISH等多种成熟的算法进行更替,进一步加强了数据破译的难度。
内外网传输的方式上选择了串口方式,使用了ZMODEM协议来传输限定的文件,在数据量不算巨大的情况下,已基本可以满足情况,并满足了内外网数据传输的可定制性。
为了进一步满足内外网隔离的要求,对内网服务器的网卡作了控制。
当打开串口传输数据之前,内网服务器的网卡将会被禁用;关闭串口传输后,再把内网服务器的网卡启用。
从而,外网和内网是物理隔离的。
在网络监控方面,采用了netflow来监测网络数据流,以便及早发现危险采取相应措施。
系统主要功能
1.企业客户端能满足企业数据库的多样性,或可以由企业直接
输入数据,可定制性高,并对企业数据进行加密。
在接收回
执时把加密过的回执解密,并根据要求对数据进行处理。
在
进行这一系列的数据处理过程中,该系统能对所处理得数据
进行备份,以防备未可知的原因使得数据丢失。
企业客户端
通过ftp方式把加密过的数据上传到外网服务器端。
2.外网服务器端负责接收企业数据,能根据接受报文的标志性
信息对数据进行筛选,分类,以增加数据的可靠性、安全性;
然后通过串口把数据传输给内网,并从内网及时的接受回执
数据。
同样,在这一系列的数据处理过程中,能及时的备份
数据,防止数据的丢失。
3.内网服务器端根据接收来的数据的标志信息,采用合适的算
法把接收来的数据解密,并根据要求或把数据存入数据库,
或发送到其它服务器作进一步的处理,然后把产生的回执或
数据进行加密,再传递给外网服务器端。
内网服务器也对数
据进行及时的备份,防止数据的丢失。
4.在内外网传输时,根据内外网隔离要求,不能用常用的
tcp/ip等网络协议,于是使用了串口传输方式,使用的协议
是zmodem,并且可定制性的只传输所要求的数据,杜绝了一
些不安全的因素。
系统关键技术介绍:
系统整体所需模块:加密解密模块。
该模块采用了desx算法和blowfish算法来进行算法的更替使用,保证了加密数据的安全
DESX算法是RSA数据安全公司提出的DES的一种变型。
它采用一种称为随机化的技术来掩盖DES的输入及输出。
除了有DES的56位密钥外,DESX还有附加的64位随机密钥。
这64位随机密钥在DES 的第一轮之前与明文异或。
附加的64位密钥通过一个单向函数合成为120位的DES密钥,并与最后一轮输出的密文异或。
DESX的随机技术使它比DES抗穷举攻击的能力更强,也提高了抗线性分析和差分分析的安全能力。
BLOWFISH算法是由Bruce Schneier设计的算法,它具有如下特点:
(1)快速。
BLOWFISH在32位的微处理器上的加密速度达到每字节26个时钟周期。
(2)紧凑。
BLOWFISH能在容量小于5k的存储器中运行。
(3)简单。
BLOWFISH仅使用了一些简单运算:基于32位的加,异或和查表。
它的设计容易分析,且可阻止它的错
误实现。
(4)可变的安全性,BLOWFISH的密钥长度是可变的,且能达到448位。
BLOWFISH是一个64位分组及可变密钥长度得分组密码算法,算
法由两部分组成:密钥扩展和数据加密。
密钥扩展把长度可达到448位的密钥转变成总共4168字节的几个子密钥组。
数据加密由一个简单函数迭代16轮,每一轮由密钥相关的置换,密钥相关和数据相关的代替组成。
所有的运算都是32位字的加法和异或,仅有的另一个运算是每轮的四个查表。
BLOWFISH使用了大量的子密钥,这些密钥必须在加密及解密之前进行预计算。
P数组由18个32位子密钥组成:
P1,P2,P3,…,P18
4个32位的S盒,每个有256个单元:
S1,0 S1,1 S1,2 … S1,255
S2,0 S2,1 S2,2 … S2,255
S3,0 S3,1 S3,2 … S3,255
S4,0 S4,1 S4,2 … S4,255
BLOWFISH算法中子密钥的计算过程如下:
(1)初始化P数组,然后是4个s盒及固定的串。
这些串由π的十六进制数组成。
(2)用密钥的第一个32位与P1异或,用密钥的第二个32位与p2异或,依此类推,直到密钥的所有位(直到P18)。
周期
性地循环密钥的所有位直到整个P数组与密钥异或完为止。
(3)利用Blowfish算法加密全零串,其密钥为在第(1)和第(2)步中描述的子密钥。
(4)用第(3)步的输出取代P1和P2。
(5)利用BLOWFISH算法加密第(3)步的输出,其密钥为修改过的子密钥。
(6)用第(5)步的输出取代p3和p4.
(7)重复上述动作,直到P数组的所有元素及4个s盒全部被连续变化的Blowfish的输出所取代。
为了产生所需要的全部子密钥,总共需要迭代512次。
在应用时这些子密钥全部被存储下来不需要多次执行推导过程。
BLOWFISH是一个由16轮构成的Feistel结构。
输入是64位数据x,加密过程如图:
把x分成32位的两部分:Xl,XR
对于i=1 至 16
Xl=Xl⊕Pi
XR=F(XL)⊕XR
变换XL和XR(最后一轮取消该运算)
XR=XR⊕P17
XL=XL⊕P18
重新合并XL和XR
函数F如图
把XL分成4个8位分组:a、b、c、d
输出为:F(xl)=((S1,a+S2,b mod 232)⊕S3,c)+S4,d mod 232
解密时,除了P1,P2,P3,…,P18以逆序使用外,与加密相同。
要求更高速的BLOWFISH的实现将把迭代展开并确保所有的子密钥都存储在高速内存中。
串口传输部分
在内外网传输上,串口传输线的制作是参照RS-232-C连接方式。
连接方式如下:
9针母头针脚 9针母头针脚
2 连接 3
3 连接 2
4 连接 6
5 连接 5
6 连接 4
7 连接8
8 连接7
内外网串口传输模块实现,使用的协议是Zmodem,该协议是Xmodem 文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。
包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。
使用该协议的串口传输对于一般的数据量已经足够了。
系统结构模块
如图,系统整体结构可以看作是C―S(外网)―S(内网)模式,主要分为三部分:1.企业客户端;2.外网服务器端;3.内网服务器端。
企业客户端:
客户端是以系统托盘的形式驻留在系统内,可分为四个模块:
a.系统登录模块,模块代码文件名为sysconfig.pas。
该模块登录系统,修改用户注册模块的详细信息。
b.用户注册模块,模块代码文件名为configmain.pas。
该模块的功能是用户把EDI程序目录,公司id,接收间隔时间,ftp用户名及口令等关键信息以加密的方式写入注册表。
c.客户端系统监控模块,模块代码文件为monitor.pas。
该模块的功能是对客户端发送和接收的文件进行监控。
当有文件发送和接收时,及时的让用户了解情况。
d.功能主模块,模块代码文件为main.pas。
该模块实现了读取修改客户端数据库,加密文件发送,回执接收解密,文件备份等功能。
外网服务器端:
外网服务器端是以系统托盘的形式驻留在系统内,可分为三个模块a.系统登录模块,模块代码文件名为 syslogin.pas。
该模块登录
系统,并修改传输控制时间参数。
b.传输时间控制模块,模块代码文件名为timecontrol.pas。
该模
块可以设置传输时间。
传输控制时间的含义是隔多长时间,检查一下外网的传输目录,如目录有文件,则向内网发出传输请求,内网服务器端进行响应并进行相应处理。
c.功能主模块,模块代码文件名为main.pas。
该模块实现了同内网
服务器端进行交互传输,文件备份等功能。
内网服务器端:
内网服务器端也是以托盘形式驻留在系统内,可分为三个模块
a.客户端id注册模块,模块代码文件名为idreg.pas。
该模块注册
了客户端的id,以便把客户发送过来的文件进行分类,进行相应处理,并分别发送给各自客户。
b.系统监控模块,模块代码文件名为monitor.pas。
该模块监控系
统对客户端文件和回执得处理情况。
c.功能主模块,模块代码文件名为main.pas。
该模块实现了同外网
服务器得交互传输,文件备份,对客户端发送过来的文件进行解密,对回执进行加密,当进行串口传输时禁用网卡,关闭串口传输时启用网卡等功能。
以上所述只能是从软件功能上满足在物理隔离下的数据传输的安全需要,但我们应看到,光从软硬件上是并不能保证网络的100%安全。
Gartner的调查结果表明,70%的攻击来自组织的内部。
因此,为了保证网络和数据的安全,杜绝内部犯罪(包括无意识的误操作)是非常重要的。
于是对内部人员的管理,对内部操作的规范也是必须要引起足够重视的。
参考文献
一.(美)Bruce Schneier《应用密码学》机械工业出版社 2000年1月第1版
二.(日) 通信协议手册编委会编《最新网络通信协议手册》电子工业出版社 1999年3月第1版。