电网数据通信安全服务系统应用研究*
2018-09-03杨新欢丁志远陈忠贤
杨新欢,丁志远,陈忠贤
(贵州大学,贵州 贵阳 550025)
0 引 言
随着经济的发展,电网建设不断加速,变电站规模扩大和变电设备质量提高,其检修周期也相应拓宽,运维人员去特定变电站的机会逐渐减少。同时,城乡建设道路的发展,建筑街景等参考地貌逐年改变,使得变电站周边参考地貌改变,造成工作人员对变电站地址和行驶路径不熟悉,影响达到现场的时间。商用定位导航设备已非常成熟,但因变电站关系国计民生,其地址属国家保密数据,商用定位导航设备并未存储变电站信息,无法直接对变电站实现定位导航。此外,高电压等级变电站多坐落于荒郊野外,周围缺乏必要参考物可用于商业定位导航设备中的辅助定位。所以,如何在地址保密下实现变电站定位导航是关键性问题[1-3]。
针对以上问题,南网公司以往采用了一些导航技术来解决此问题[4-5]。采用配网地理信息GIS系统,通过单位现有的配网地理信息系统寻找目标,研读卫星地图,并按卫星地图提供的影像到达现场。优点是部分发达地区的供电局已经建立了配网GIS系统,可给寻址提供参考。存在的不足是卫星地图陈旧、偏差大,不能定位自身位置,不具备自动导航功能。它并非针对配网用电客户现场开发,未明确标示出变电站的位置,使用时仅能起到参考作用,耗时耗力。
建立专用变电站电子地图系统,研制专门针对用电客户现场位置的电子地图,建立数据库,收集变电站地理坐标并拍摄用户街景照片,使客户寻址的过程在有电子地图系统辅助的情况下完成。优点是可实时更新,具备定位、导航功能。存在的不足是需要编写程序,建立地理坐标数据库,架设专门的服务器,需要的人力、财力较多。这需要营销系统提供专业的数据接口,而在南网公司统一的新营销系统模式下,申请专用数据接口非常难,短期内不具有实际意义。
伴随着电网公司输电设备的逐步智能化和电网建设的不断加速,电网数据的通信安全性成为研究热点和需求点。但是,由于电网数据的敏感保密性,大部分已有的计算机网络的安全体系并不能完全应用于解决电网数据通信的安全问题中。目前,在电网系统实时数据通信过程中,通常采用网络物理隔离或者虚拟专用网(VPN)的方式。文献[1]中提出了对电力变电站实时数据进行加密的构想,但并未做出具体研究方案。
鉴于电网数据的通信安全问题,首先通过分析电网数据通信的体系结构和数据特征,确定影响数据通信安全的两大关键问题,即数据访问者身份认证问题和敏感数据的传输问题;其次,结合HMAC身份认证技术、KDC密钥管理、SM2椭圆曲线公钥加密、AES数据加密等技术,提出了一种适用于电网数据通信的安全服务方案;再次,分析该方案的有效性和安全性;最后,给出了该方案在电网变电站位置导航中的实际应用,完成变电站的安全导航,实现电网设备的精益化运维。
1 电网数据通信安全体系结构
1.1 电网数据通信安全架构
根据电网整体结构体系,结合电网数据通信过程的安全需求,可以将数据通信安全架构分为3大块[6],如图1所示。
图1 数据通信安全架构
其中,I区为外部网络,客户端通过外部网络对电网局域网内部系统进行访问与数据操作。第一道防火墙,实现对电网中心局域网的安全保护。利用防火墙的过滤功能,实现它与电力上级网、Internet之间的相互访问控制。
II区中,速通防火墙的入侵检测模块,实现对调度中心局域网的安全保护。利用速通防火墙可以自动检测网络数据流中潜在的入侵、攻击和滥用方式,与防火墙模块联动,自动调整控制规则,为整个局域网络提供动态的网络保护。
III区为电网内部网,包含电网应用服务器、数据服务器以及KDC密钥管理中心。三者构成了电网内部私有云,存储了电网系统中的敏感数据和其他设备的信息。它的内网边界的第二道防火墙自带的认证功能,可以实现内部用户认证,同时可以结合用户原有的域用户认证或者radius认证,实现用户级的访问控制。
1.2 电网数据通信安全分析
一般的数据通信过程中涉及两个重要的问题[7]:①认证(鉴别)问题,确保通信双方的合法性和数据的真实性,防止篡改、冒充等主动攻击;②保密性问题,防止攻击者破译系统服务器中的机密信息。
通过电网数据通信安全架构分析可以看到,针对数据通信安全威胁主要包括以下3个。
1.2.1 身份认证和非授权访问
在电网系统的一般安全防范中,仅依靠用户ID和口令的认证很不安全,容易被猜测或盗取,带来大的安全风险。非授权的用户通过假冒、身份攻击等违反安全策略的操作,避开系统的安全机制或利用安全系统中的缺陷,对电网内部服务器资源进行非正常使用。因此,需要基于应用服务和外部信息系统建立基于统一策略的用户身份认证与授权控制机制,以区别不同的用户和信息访问者,并授予他们不同的信息访问和事务处理权限。
1.2.2 数据的监听和窃取
监听是指攻击者借助于技术设备、技术手段等获取传输信息。客户端和服务器端经过网络信道传输数据的过程中可能存在信息被监听、数据被窃取等情况,所以在整个网络信道中传输的数据必须是经过严格处理的密文,防止发生数据丢失等情况。
1.2.3 未授权的信息破坏和篡改
攻击者可能在网络传输信道中途截获数据,对数据进行破坏或篡改。通信双方可以通过对数据进行完整性校验来检测完整性。然而,依然存在一个威胁,即如果攻击者对数据完整性校验码本身进行修改,接收用户依然会认为数据完整性被破坏而丢弃数据。所以,在通信双方进行数据传输的过程中,在数据包中引入身份鉴别机制和时间戳来防止信息破坏和篡改。
针对上述的安全分析,结合电网系统中客户端与服务器端的通信机制,提出了HMAC身份认证技术。利用具有唯一性的手机mac值与服务器端产生的临时会话随机值进行哈希运算,实现身份认证机制。具体地,通过KDC密钥管理中心生成具有时效性的会话密钥;利用SM2椭圆曲线公钥加密和数字签名,实现会话密钥的共享和通信双方的有效认证;采用AES数据加密构建混合加密体制,完成敏感数据的安全传输,使得攻击者(没有通过安全系统认证的用户)即使截获数据,也将由于无法解密而失效。
2 电网数 据通信系统中的身份认证
2.1 身份认证的选择
在电网数据通信过程中采用“调用每项服务时需要用户证明身份,也需要这些服务器向用户证明它们自己身份”的策略来保护位于服务器的用户信息和数据资源。电网系统中,数据的通信服务主要是客户端和内部服务器端,用户可以有选择性地查找和接收数据。基于电网数据通信的特点,系统采用基于密码的身份验证技术作为进入系统的第一道关卡,既可以节约成本,又可以简单、有效地保障系统安全。
电网安全通信系统中,客户端要访问私有服务器时,首先要进行服务器对客户端的身份认证,来验证客户端用户身份的合法性。该系统中采用HMAC身份认证技术,整个认证模型由认证编码器、密钥源和认证译码器三部分组成。认证编码器对发送的消息产生认证码,密钥源产生时效性随机密钥K,认证译码器对接收到的消息进行验证。
消息认证过程如下:
(1)客户端向服务器端发出登录请求;
(2)由服务器端的密钥源产生具有时效性的随机密钥K返回给客户端;
(3)客户端的认证编码器用随机密钥K对发出的消息生成认证消息,并发送给服务器端;
(4)服务器端接收到认证消息后,由认证译码器验证消息的合法性,若合法则接受,否则丢弃。
2.2 身份认证的过程
根据电网数据用户的特点,数据通信系统将分配给用户无重复的工号。用户在客户端处通过用户名和登录密码进行登录请求Q。服务器端接收到登录请求Q后,返回一个具有时效性的随机数K给客户端作为响应,并在会话中记录K。然后,客户端将自动获取其设备唯一标识符mac值,并将此mac值与K做HMAC运算,得到信息摘要HMAC(K,mac),随后将此信息摘要发送到服务器端。
同时,服务器端使用该随机数K与存储在服务器数据库中该用户的mac地址进行HMAC运算。然后,将服务器的运算结果与客户端的运算结果做比较。若结果一致,则通过认证,用户获取到访问电网数据的服务权限;若结果不一致,则驳回申请,登录失败。具体身份认证过程如图2所示。
图2 身份认证过程
其中,HMAC算法表示为:
HMAC消息认证技术可以验证通信双方接受的授权数据和认证数据,同时可以确认服务器端接受到的命令请求是已授权的请求,且可以保证命令在传送过程中没有被改动过。此外,会话过程中的随机值K具有时效性,可以降低密钥泄露带来的危害。
3 电网数据安全传输
在电网数据通信系统中,安全的用户身份认证体制保证了系统的访问安全,而系统中的数据传输安全也是重要的研究内容。用户访问系统内网时,客户端与服务器端的数据传输应该采用端对端的加密方式。数据在信道和交换节点上均以密文的形式存在。
此外,进行实时数据传输。在建立安全信道后,通信双方用共享的会话密钥KS对实时数据进行AES对称加密传输,实现对数据的安全传输。在一次会话结束后,KDC会撤销当次的会话密钥,实现“一次一密”的加密方式,从而保证数据传输过程的安全。
3.1 安全信道的建立
首先建立安全信道。在电网系统实时数据通信过程中,通过可信第三方KDC密钥分配中心产生会话密钥KS,利用SM2椭圆曲线公钥加密和数字签名实现客户端和服务器端之间会话密钥KS的共享,从而建立安全信道。
3.1.1 基于KDC的一次一密体制设计
KDC(Key Distribution Center) 是 Kerberos协议的重要组成部分,用来管理和分配公开密钥。由于公认的安全性、可信性,它是目前密钥分配最有效的方法[8]。
对于一个KDC密钥中心来说,至少应具备以下主要功能[9]:
(1)能够分配并存储与之相连的各终端用户的公钥,并保证产生的公钥经过严格的随机性检验。
(2)能够使用随机数或伪随机发生器产生会话密钥。
(3)能够向确立保密连接的两个用户发送随机会话密钥,并保证会话密钥是加密的。
(4)能够识别需要建立用户的身份标识符。
(5)能够有较完善的自我检验功能。
(6)能够在不影响网络通信效率的前提下,为两个用户建立保密连接。
在电网数据通信的过程中,为了保证消息的机密性要求,通信双方在会话密钥共享过程中同时通过签名进行身份确认,完成通信双方握手过程建立安全信道,保证会话的安全性。
假设A希望与B进行通信,需要在本地产生各自的公钥对,将公钥PKA和PKB存入KDC的公钥列表,A和B则各自拥有私钥SKA和SKB。基于KDC的密钥分发和认证过程如图3所示。
图3 基于KDC的会话密钥共享过程
(1)KDC接收到A发出的会话密钥请求。密钥请求消息包含A和B的身份标识符,表示A希望获取与B进行通信的会话密钥。
A收到KDC回复的密钥请求应答消息,即:
密钥应答消息包含4项内容,且用A的公钥加密保证该消息只有A才能解密。第一项内容是一次性会话密钥KS;第二项内容是B的公钥PKB;第三项内容是用B的公钥进行加密的一次性会话密钥KS和A的公钥,这项内容A收到后直接向B转发,用于证明自己的身份;第四项内容是当前时间节点T1,以确定应答消息没有受到重放攻击。
(3)A进行相应的解密操作,即:
由此获得会话密钥KS、时间节点T1以及由KDC发送给B的数据包。
(4)A向B发送数据包:
发送的内容包含2项内容。第一项是KDC密钥中心生成的给B的数据包,由A代发给B;第二项是A用自己的私钥签名的会话密钥和两个时间节点T1、T2,用于和B进行身份认证,以确定数据在传输过程中没有受到窃漏与篡改。
(5)B进行解密数据包:
获得会话密钥KS,并对比由KDC发送的KS与客户端A发送的KS是否一致,同时比较两次时间节点的间隔,确保会话的可靠性。
(6)B向A发送数据包作为对A的应答:
应答消息是由A的公钥加密后再用B的私钥签名的会话密钥KS,以及三个时间加点T1、T2、T3,用来作为对A的消息应答。
(7)A对B发来的消息进行认证:
A和B在密钥传输过程又一次进行身份认证,保证通信双方的真实性;对T1、T2和T3时间戳的检验,更加确保密钥传输过程中没有被截取或者篡改。
通过以上步骤,会话密钥KS被安全地分配给了A和B。
3.1.2 密钥的产生
对于KDC密钥中心,会话密钥的产生是一个关键问题,应保证产生的会话密钥是随机或伪随机的。为了满足这个需求,这里采用如下算法来产生一次性会话密钥[10]:
其中,TD为日期/时间值,K为密钥,H的初始值为HMAC(K,mac),即为通信双方在身份认证阶段所作的哈希值,看作保密的种子值,每用一次其值都会进行更换,加密操作采用AES加密。将R的值作为新产生的密钥值,由于日期/时间值具有不可重复性和AES算法的良好特性,产生的密钥具有很强的不可预测性,满足了对密钥的随机性要求。
3.1.3 密钥的分配、存储和撤销
用户进行保密通信前,需要通过密钥分配中心产生会话密钥并分配给用户双方。该会话密钥需要通过加密密钥进行保护,而加密密钥一般生存期较长,可以通过手动方式在KDC和用户之间分配。
所有的密钥产生后,会以密文形式存入密钥表。密钥表中每一项的主要内容有标志、密钥名、本方身份、他方身份和密文等。由标志域指出该密钥是否可用。
当需要撤销用户双方共享的某一密钥时,在密钥表中根据密钥名查找到该密钥,置该项的标志域为“不可用”即可。一般来说,数据密钥生存期很短,一旦双方通信完毕,就将所用的数据密钥予以撤销,所以在一定程度上实现了“一次一密”的加密方式。
3.2 基于“一次一密”的数据加密传输过程
在通信双方A和B建立安全信道后,进行实时的数据传输,传输过程如图4所示。
图4 数据加密传输过程
(1)A首先用会话密钥KS对要传输的明文使用AES算法进行加密得到密文。这里充分利用了AES算法加密速度快的优势。
(2)密文经过网络传输到B端,B使用会话密钥KS对收到的内容使用AES进行解密,快速得到明文。B向A发送信息的过程使用同样的步骤。
(3)当前会话一旦结束,会话密钥即被丢弃,下次会话需要重新生成新的会话密钥。
4 安全分析
4.1 身份认证过程的安全性分析
身份认证模型如图5所示。整个认证过程中可能遭到安全攻击的是密钥源产生的随机密钥K和发送方HMAC消息认证码。根据这两个值无法推算出用户信息。密钥源产生的随机密钥K只在当前会话中有效,大大增强了安全性和实用性[11]。
图5 身份认证模型
在电网数据通信系统中应用HMAC身份认证技术,可以验证消息的信源和信宿,可以更加确保对消息来源的认证。其次,可以验证消息在传送过程中未被伪造和篡改,即对消息内容的认证;最后,可以验证消息在传送过程中未被重传或延迟等,即认证消息的时效性。
4.2 该“一次一密”体制的安全性分析
(1)会话双方身份的验证。传统的一次一密体制中缺少对会话双方身份的有效认证,使得信息交换过程存在安全隐患。该“一次一密”方案在会话中实现了通信双方的又一次身份验证,保证了会话双方的身份真实性和可信赖性,防止网络欺骗的攻击。
(2)每次发起的会话在信息传输过程中都加入了当前的时间节点,用于标识本次会话的时间状态,在产生会话密钥的过程中验证时间节点的有效性,且每次会话发起的时间均不相同,防止了重放攻击。
(3)由于会话的每个时刻的状态不同,通信双方过程中的随机种子值也不一样,保证了每次临时会话密钥都是不一样的,真正实现了“一次一密”,大大简化了密钥分配和管理,使得用户可以方便、透明地使用本加密体制而不必关心具体的细节性问题。
(4)充分利用AES和SM2椭圆曲线加密算法的优点,利用SM2的安全性高的特点来加密机密性较高、数据量小的会话密钥,利用AES加密速度快的优势加密会话期间的大量实时数据,满足了在临时会话期间的数据传输速度要求。
5 实际应用
在实际的变电站路径规划和导航平台的应用中,巡检人员通过工号id与手机唯一mac值进行身份认证,获取到访问电网私有服务器权限。其次,在手机端建立与电网服务器端的安全信道,获取实时的位置数据。最后,基于完善的地图服务进行二次开发,配置离线地图,实现与公网的隔离,并且在开启GPS、北斗导航等的前提下,在地图上显示变电站位置,规划巡检人员的巡检路线,完成变电站安全导航,实现电网设备的精益化运维。总体技术路线图如图6所示。
图6 变电站导航总体技术路线
此研究成果用于防止电网涉密数据的泄露,应用于巡检人员的手机端与电网内部服务器之间的数据通信。结合导航定位技术,增加了数据通信加密功能。通信过程中,采取多层保护手段保护数据安全,并将数据服务器架设在内网中,不与外网连接,数据的接收与发送借助于VPN代理服务来完成,最大程度地保护数据安全。
6 结 语
分析电网数据通信系统的安全架构,提出了一种适用于该层次架构的安全方案,利用HMAC哈希认证算法,实现了电网系统中用户身份认证与权限获取,保证了电网私有服务器访问者的可靠性,解决了整个通信系统安全的第一道安全防护。此外,建立了一个安全可靠的通信信道,实现了电网敏感数据在网络传输信道上的安全性,保证了数据的完整性和不可被篡改性。最后,解决了数据传输过程中的第二道安全防护,通过身份认证和混合加密体制,实现了变电站位置的安全传输,解决了电网敏感数据安全防护问题和电网运维管理过程中变电站的位置导航问题。