0引言
随着农网改造的进行,电力行业网络建设的加快,电力信息化的积极开展,各级供电企业纷纷建立了信息系统和基于Internet的管理应用,以提高劳动生产率,提升管理水平,加强信息反馈,提高决策的科学性和准确性,增加企业的综合竞争力。建立企业对外服务网站,可电费查询、停电通告、银行时时联网交费、邮政划拨、网上业扩报装、VPN家庭办公等新业务。在这些业务中,由于系统中携带了用户账号、交易密码、交易内容等敏感信息,使得这些业务对于安全性的要求极高,需要对系统中的敏感
信息进行加密等处理,防止传输过程中被他人窃取、冒用和篡改。一旦受到破坏,就会损失巨大。但是基于TCP/IP传输机制的数据加密、硬件防火墙、软件防火墙等方法并不是万无一失的安全防护
[ 1 ]。在此,给广大的电力信息管理人员推荐一种串口传输方式在电力
信息系统与不同网段隔离的安全机制。
1串口传输方式
串口传输方式隔离措施,是在不同的网络之间,具体对电力系统来说,就是电力
信息系统与调度
自动化系统、图像监控系统、企业外网的WEB服务器、银行系统、邮政系统等网络之间进行业务联系,通过计算机串口连接,来传输业务数据,建立的网络连接。
2串口传输方式的优越性
按照传统的连接方式,就是采用TCP/IP协议,通过路由器、防火墙、双网卡的网关,进行物理隔离。再由电力系统的服务器提供数据的查询、处理等操作。不仅一次性投入资金大,维护不便,且易受到病毒、人为攻击。特别是网络一旦感染病毒,整个网络便全部感染,涉及面积大,后果将不堪设想。尤其是现行的邮政划拨批扣、银行实时联网收费等业务的实现,VPN家庭办公网络技术的应用,电力系统
信息管理的责任也随之增大
[ 2 ]。
但是,在前置机与后台机之间的串口通信可以有效地对外部公网和内部网络,以及内部不同网络之间进行隔离,采用串口通信协议保密性强,可以即连即放、发接数据校验、数据加密、超时连接检测等措施,保证了网络连接的可靠性、安全性、实用性。而TCP/IP协议则保密性不强,数据包截获、破解都较容易,且易受到攻击。
3串口传输方式物理实现方法
3.1 串口连接网络拓扑图(如图1):
图1 串口连接网络拓扑图
串口服务器是一个可以让RS-232/485/422串口设备具备联网功能的服务器。支持RS-232/485/422通讯接口,内置式3X5cm模块TTL电平,让设备联网更方更,成本更低,且内置终端电阻,能够满足所有工业串口设备的应用及传输。另外,可选择串口电源输入,由串口设备经由DB9针式接口,直接供应DC
电源,使串口服务器和串口设备完美地组合在一起。并且提供Windows 标准串口驱动程序,原有以串口通讯为基础的应用软件,如超级终端等,在Windows系列操作系统下,不需要作任何更改即可使用。
该通信系统从物理讲上可以分成三部分:应用服务器、外网段的服务器和串口服务器。串口服务器的一端与局域网络的交换机相连,另一端通过串口设备与不同网段的服务器相连,负责接收、转发应用服务器与不同网段的服务器的信息。同时对所接受、转发的
信息进行加密、解密,以及密钥的更换、管理。
3.2串口具体接线方法
目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485),若距离较远时,需附加调制解调器(MODEM)、长线驱动器,或者光纤传输转换为RS232(RS422,RS485)接口。最为简单常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只介绍一种基本的接法,直接用RS232相连。
3.2.1 DB9和DB25的常用信号脚说明
表1: DB9和DB25的常用信号脚对应表
9针串口(DB9) |
25针串口(DB25) |
针号 |
功能说明 |
缩写 |
针号 |
功能说明 |
缩写 |
1 |
数据载波检测 |
DCD |
8 |
数据载波检测 |
DCD |
2 |
接收数据 |
RXD |
3 |
接收数据 |
RXD |
3 |
发送数据 |
TXD |
2 |
发送数据 |
TXD |
4 |
数据终端准备 |
DTR |
20 |
数据终端准备 |
DTR |
5 |
信号地 |
GND |
7 |
信号地 |
GND |
6 |
数据设备准备好 |
DSR |
6 |
数据准备好 |
DSR |
7 |
请求发送 |
RTS |
4 |
请求发送 |
RTS |
8 |
清除发送 |
CTS |
5 |
清除发送 |
CTS |
9 |
振铃指示 |
DELL |
22 |
振铃指示 |
DELL |
3.2.2 RS232C串口通信接线方法
串口传输数据的接收脚与发送脚相连,彼些交叉,信号地对应相接,就能实现(见表2)[ 3 ]。即同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。
表2:串口连接具体针对应表
9针-9针 |
25针-25针 |
9针-25针 |
2 |
3 |
3 |
2 |
2 |
2 |
3 |
2 |
2 |
3 |
3 |
3 |
5 |
5 |
7 |
7 |
5 |
7 |
3.2.3 串口调试中要注意的几点:
● 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,必须通过转换器才能连接;
● 线路焊接要牢固,虽程序正确,却会因接线问题出故障;
● 串口调试时,准备一个实用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;
● 不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏;
● RS—232 接口的传输距离在12米左右,距离大时要增加长线驱动器;
● 传输电缆尽量采用屏蔽电缆。
4串口传输方式通信协议
4.1 串口属性设置(推荐):
● 波特率:9600;
● 奇偶校验位:无;
● 字节长度: 8;
● 停止位: 1;
● 串口: COM1。
4.2 软件设置
4.2.1应用服务器与不同网段服务器之间的串口通信可以有效地隔离不同网段,串口通信协议需要保证可靠性,采取的措施:
●通信之前建立连接,通信结束释放连接;
●计算发送数据的CRC校验和、验证接收数据的CRC校验和;
●设置超时重传机制,超时间隔、重传次数可设定。
4.2.2每台机器包括的两个线程:
●从串口服务器方向接收的线程;
●向串口服务器方向发送的线程。
每台机器的数据结构主要包括两个队列:(1)接收信息队列,(2)发送
信息队列。多个线程共享这两个队列,因此这两个队列是临界资源,线程需要互斥地访问它们。另外,这两个队列分别被一对相互合作的线程所使用,需要信号量机制来解决这个线程同步问题。
4.3串口传输协议约定
在程序中规定具体的交易码、加密、解密、密钥管理等方面的约定。下面就银行与电力公司连网进行实时收费交易业务规定的交易码,来说明问题(见表3)。
交易码 |
内容 |
备 注 |
01 |
|
银行提供交易码、银行代号、操作员代码、流水号、户号、电费月份 |
11 |
|
银行提供交易码、银行代号、操作员代码、流水号、户号户名,电费月份 |
21 |
|
银行提供交易码、银行代号、操作员代码、流水号、户号、户名,电费月份、总金额、发票号、收费日期 |
31 |
重打发票 |
银行提供交易码、银行代号、操作员代码、原流水号、户号、发票号、收费日期(当天) |
51 |
对帐 |
银行提供交易码、银行代号、对帐员、操作员代码、流水号、收费日期 |
61 |
批量划拨查询 |
电业局提供交易码、银行代号、划拨日期 |
71 |
批量划拨更新 |
银行提供交易码、银行代号、操作员代码、流水号、户号、电费月份、实收金额、收费日期 |
81 |
冲账 |
银行提供交易码、银行代号、操作员代码、新流水号、老流水号、原收费日期(必须为当天) |
91 |
预交费用户查询 |
银行提供交易码、银行代号、操作员代码、流水号、户号、户名、收费日期 |
92 |
预交费用户数据更新 |
银行提供交易码、银行代号、操作员代码、流水号、户号、实收金额、收费日期 |
返回码 |
内 容 |
备 注 |
00 |
查询、更新成功 |
|
01 |
存储过程失效 |
电力局方处理 |
02 |
提交失败 |
更新失败 |
03 |
查询失败 |
用户资料错误 |
04 |
网络故障1 |
网点到银行前置机故障 |
05 |
网络故障2 |
前置机之间无法通讯 |
08 |
|
查询成功 |
09 |
非银行作业范围 |
|
10 |
用户往月有欠费 |
|
11 |
欠费月份过多 |
|
12 |
|
备用 |
13 |
|
备用 |
14 |
错误流水号 |
冲帐或重打发票错误 |
15 |
电费未计算 |
|
16 |
用户输入金额错误 |
|
17 |
|
备用 |
18 |
银行端数据错误 |
操作员为空 、输入时间错误等等 |
19 |
冲帐错误 |
不是冲当天的帐 |
20 |
重打发票错误 |
不是重打当天的发票 |
21 |
用户处于银行划拨状态 |
|
22 |
居民户电费未一次结清 |
不用 |
23 |
非主收费户 |
|
24 |
用户属于别的银行划拨 |
|
25 |
重打发票超过3次 |
不用 |
99 |
登录失败 |
前置机无法登录局服务器 |
只要严格按照事先约定的具体交易码,系统就能“读懂”传输信息,作出相应的处理。然后再对传输的信息进行加密,即是
信息被截获,也不会很容易地被解密。
5 加密解密过程及密钥管理
串口数据在传输过程中会受到外部的监听,和“木马程序”的截获,可分析出具体的业务内容,存在不安全因素。在内网段的内部用户不需要复杂的加密、解密过程,可以使用明码传输,也可采用文本形式;但对外网段服务器的连接须采用具体的密码报文传输。
5.1 加密解密过程
串口传输的数据业务信息需要进行加密处理,加密、解密过程可分为上行和下行两部分,上行指的是从外网段服务器向电力公司应用服务器发送业务请求信息;下行指的是电力公司应用服务器向外网段服务器发送业务应答
信息。
上行:用户终端(或业务合作方)通过计算机,输入自己的业务请求,服务器中的程序将用户的请求组织成信息报文,并对其中的敏感信息进行加密处理;密文信息通过串口发到串口服务器,串口服务器对密文进行传输解密,然后转发给公司内不同网段的具体服务器;公司内不同网段的具体服务器对收到的密文
信息进行解密后,经过合法用户确认,完成指定的业务。
下行:公司内不同网段的具体数据服务器将本次业务的运行结果组织成一个或多个信息报文,对其中的敏感信息进行加密处理,然后将这些信息发送给串口服务器;串口服务器再将密文信息经过传输加密下发到不同网段的具体服务器;不同网段的具体服务器对收到的
信息进行解密,完成具体的业务。
加密算法可以采用两密钥三重DES常规加密算法。三重DES算法是一种对称加密算法,它要求加密和解密双方必须拥有相同的密钥。如果应用服务器和数据服务器保存相同的密钥,那么密钥管理的责任就不明确。开通外网业务的网络可能会有多个,多个业务使用同一个密钥不合适;所有的数据服务器使用同一个密钥也不合适;同一个业务用户的多次业务交易使用同一个密钥更不合适。所以,电力
信息系统安全机制的关键在于密钥的分配与管理。
5.2密钥分配与管理
串口传输业务中的安全机制使用两种密钥,一种称为传输密钥,就是串口服务器与不同网段的具体服务器之间的信息传递时,采用的密钥。由串口服务器生成和维护;另一种称为交易密钥,用于不同网段服务器之间数据传递
信息的加密和解密。又分为上行交易密钥和下行交易密钥,分别用于应用服务器到不同网段的具体服务器和不同网段的具体服务器到应用服务器报文的加密和解密。由内网的应用服务器管理
[ 4 ]。
在实际应用过程中,每种密钥又可以分成两级:主密钥(一级密钥)、二级密钥。两级密钥之间的产生关系如下:
● 主传输密钥(一级传输密钥);
● 二级传输密钥:由一级传输密钥与不同网段的数据服务器的代码分散产生;
● 主上行交易密钥(一级上行业务密钥);
● 二级上行交易密钥:由一级上行交易密钥与不同网段的数据服务器的代码分散产生;
● 主下行交易密钥(一级下行交易密钥);
● 二级下行交易密钥:由一级下行交易密钥与不同网段的数据服务器的代码分散产生。
以密钥下载请求报文的加解密为例进行说明,其它报文的加解密过程类似。当不同网段的数据服务器向应用服务器请求业务连接时,同时构造一个密钥下载请求报文,该报文需要使用传输密钥进行加密。不同网段的数据服务器中保存着主传输密钥,主传输密钥与用户输入的不同网段的数据服务器代码进行分散产生二级传输密钥。二级传输密钥与串口服务器进行分散产生传输密钥。传输密钥随机分散产生过程密钥。最后,使用该过程密钥对密钥下载请求报文进行加密。
应用服务器收到密钥下载请求报文之后,使用自己保存的二级传输密钥,与报文头中明文进行分散产生传输密钥。传输密钥与报文头中明文的随机数字段进行分散产生过程密钥。最后,使用该过程密钥对密钥下载请求报文的密文内容进行解密得到明文内容。
5.3 交易密钥的版本更新管理
应用服务器控制上下行交易密钥的生成和管理,为了安全起见,应用服务器需要定期或不定期地对交易密钥进行版本更新。不同网段的数据服务器针对上下行交易密钥分别维护着一个配置文件,不同网段的数据服务器启动时读取这两个配置文件以获得最新的交易密钥和版本号。电力
信息管理人员可以手工地或者通过密钥生成系统自动产生新版本的上下行交易密钥,添加到配置文件中;然后,应用服务器通过选择相应的菜单项通知系统重新读取配置文件以实现交易密钥的版本更新
[ 5 ]。
当不同网段的数据服务器对收到的报文进行解密时,如果发现报文头中交易密钥版本字段的值小于当前的交易密钥版本时,则使用对应的低版本上行交易密钥进行解密;然后发送给应用服务器完成交易请求,构造交易应答报文;当应用服务器对不同网段的数据服务器发送的交易应答报文进行加密时,仍然使用低版本下行交易密钥,同时构造一个新的密钥下载报文体,将当前版本的上下行交易密钥发送给不同网段的数据服务器以更新其交易密钥版本。
6其他安全管理措施
在进行加密同时,可以进行即连即放、发接数据校验、动态数据加密、超时连接检测等措施,也是保障安全的重要手段。安全机制的一个具体实现,包括交易密钥下载、数据报文的加密和解密等全部的安全功能。另外,为进一步增强整个系统的安全性,还可增加交易密钥的版本更新等功能。
7 安全性分析
由于上述安全机制中使用过程密钥加密,因此,对于一个不知道过程密钥生成步骤的攻击者来说,密码分析攻击几乎是不可能的。因为网段不同、网段相同而访问数据服务器不同或者同一块访问数据服务器收发的
信息不同,这些使用的密钥都是不一样的。再加上交易密钥下载、数据报文的加密和解密等安全功能。提高了整个系统的安全性,这样使系统就无懈可击。
8结语
采用串口传输方式隔离措施的安全机制,可以在不同的网络之间,如电力
信息系统与调度
自动化系统、图像监控系统、企业外网的WEB服务器、银行系统、邮政系统等网络之间进行业务联系。串口通信协议保密性强,隔离了不同网段的病毒互相传播,能够很好地满足电力信息系统的安全性要求。希望在电力
信息规划、建设过程中得到相关管理人员的重视。
参考文献:
1 卢开澄等.计算机系统安全.重庆:重庆出版社,1995
4杨明,胥光辉,齐望东等译.密码编码学与网络安全(第二版).北京:电子工业出版社,2001
5陈鲁生,沈世镒等.现代密码学.北京:科学出版社,2002.7.1
作者简介:
王玉林(1975、7—):男,河南省漯河市人,毕业于河南科技大学计算机专业,从事电力系统的通信自动化、MIS系统的建设管理工作;
陈红伟(1973、11—):男,河南省漯河市人,毕业于郑州大学电力系统及其自动化专业,从事电力系统的设计、建设、管理工作。