唐振营,王晨飞,李慧芹
(国网客服中心信息运维中心,天津 300309)
随着智能电表、家电接入互联网,网络边界已经实现了向用户侧的延伸。用户信息采集系统的开放性、互动性,以及4G/5G、通用分组无线业务(general packet radio services,GPRS)/码分多址(code division multiple access,CDMA)、WiFi、智能传感网络等无线通信技术的广泛应用,使得用电信息的安全防护问题备受关注。现有研究中,郜盼盼[1]根据证书认证及新旧参数保护密钥动态协商机制设计了一种可靠性更高、信息交互频次更少的轻量级认证密钥协商协议;赵兵等[2-3]不仅利用数字证书及可动态更新的共享密钥,对用电信息安全防护进行认证加密,以确保主站与终端信息交互安全,还以国家电网认证授权系统为基础,基于MAC动态密钥协商及认证加密的方法,构建了一种面向用电信息双向交互的认证协议。以往相关机构或学者提出的协议多基于数字签名和非对称加密算法进行认证防护,这类认证加密方法对于系统的运算及数据处理要求较高,需在主站侧和采集终端分别配置硬件加密机和采集专用防护认证模块,且未考虑智能电表的高频数据交互现状。智能网络环境中,智能电表可与主站、采集终端及电能计量装置进行多元数据交互,业务数据传输量大、信息交互频繁且响应速率快,而RS-485、红外接口、电力线载波通信模块对于与智能电表交互的频次、数据长度、计算量等存在既定限制,单次交互的数据长度应控制在200 B以下。此时如采用上述方法进行认证加密运算,数据长度至少为1 600 B,因此需要多频次交互,增加了成本和风险。为此,本文针对智能电网中用电信息系统的双向交互特点,构建了一种全程、高效的安全防护机制。
用电采集系统是智能电网的核心组成部分,可基于对用电信息的实时采集、处理和监控进行电能质量监测、用电分析和管理,以实现供用电的实时监测与均衡。从逻辑构成上看,用电采集系统主要包含主站层、通信信道层、采集设备层等3个层次[4],如图1所示。
图1 用电信息采集系统的逻辑架构
基于上述系统构成,可得用电信息安全防护的需求如下。
1)主站层。该层包含营销采集业务应用和前置采集平台[5],前者用以支撑各类应用业务逻辑,后者根据用电信息采集、控制质量、通信负载均衡的应用需求,细分为数据采集、终端控制和通信调度等功能模块。作为数据集聚处理的中心,主站层的安全性至关重要,存在下发指令被伪造、篡改,黑客基于公网或子站终端进行非法入侵的安全风险。由此可知,下发的控制指令和参数设置的完整性、真实性是安全防护的重点,这不仅关系到公网接入终端的合法性,更是确保关键子站或终端之间信息交互机密性的关键所在。
2)通信信道层。该层融合了230 MHz无线专网、GPRS/CDMA 无线公网和光纤专网等通信方式,为主站与采集设备的信息交互提供了物理链路。其中,以太网无源光网络(ethernet passive optical network,EPON)、工业以太网等光纤通信方式,因为自身通信材质具有密封性优点,所以安全性较高,虽然一些黑客可从光纤侧弯、线路串接等位置入侵、窃取、攻击用电信息,但实施难度较大,相关风险性小[6];而无线专网主要是由电力企业根据需求自建的,传输通道开放性更高,通信信号容易受到电磁恶意干扰,以及恶意基站、非法网络的攻击和窃听,进而导致用电信息出现被泄密、篡改的风险;GPRS/CDMA 无线公网可接入配电终端设备,并借助光纤将其接入主站,但无线信道多采用TCP/IP 协议,无法规避IP网络固有的黑客易于入侵、易遭受“拒绝服务”攻击及病毒侵扰的风险问题[7],因此迫切需要做好安全防护工作。
3)采集设备层。该层由采集器、远程多功能表等设备构成,其通过通信通道与主站进行双向的信息交互,但是该层多采用嵌入式系统,因此常处于无人监测的状态,容易受到逻辑攻击,而且采集器向主站传输的上行数据未采取安全防护策略,容易让黑客恶意仿造大量上行数据,抑制主站前置机功能,引致网络拥堵或是主站被非法操控的风险,让主站做出错误判断或进行误操作[8],进而影响用电信息采集系统的双向交互安全。由此可见,应该对终端采集数据进行认证加密,以确保数据的完整和真实。
用电信息采集终端中,主站与采集终端之间存在高频、双向的信息交互,在上行方向,采集终端需将电压应力、电流、功率等电能质量监测数据和用电量、负荷潮流等传输给主站层,由于要确保传输数据的完整、机密和可信,因此需要进行安全防护;而在下行方向,主站层需向采集终端下发控制指令,调节负荷电源节点的运行状态。因为各采集设备位于内网之外,且主站层各业务系统的安全防护等级不一,所以应确保下发的指令是可信的。本文以可信链部署为指引,针对用电采集系统中各模块的安全防护需求,引入可信终端技术、BIMP认证协议、HSCT指令确定技术构建“可信终端—可信传输—可信指令”的可信链,确保用电信息的整个双向交互过程的安全。
本文选用国产的可提供数据保护、完整性测度、认证功能的TCM芯片作为可信根,在完成对嵌入式系统启动代码、操作系统、应用程序等的验证工作之后,构建信任链,并将其扩展至用户采集系统的各个软、硬组件。根据网闸的设计理念,将SCM安全控制模块引入终端,用以操控内置Bootloader的存储器,并在ARM处理器与TCM芯片之间建立起安全连接[8]。可信智能终端整体结构如图2所示。
由图可知,可信智能终端由可信应用层、可信OS层、可信硬件层组成。其中,可信硬件层由TCM、CPU、RAM、BootROM、I/O等构成,BootROM存储Bootloader代码,并由SCM操控其与CPU、TCM的通信。在智能终端初始化时,BootROM仅与TCM通信,而与CPU无连接;而在开机运行时,SCM与BootROM、TCM连接,以让TCM认证存储在BootROM中的Bootloader代码完整性,待通过认证后,SCM与BootROM、CPU连接,并向CPU传递使能信号,以实现系统启动,进入后续的应用程序的验证。可信OS层由操作系统内核和可信服务构成。可信应用层由不同应用程序构成,各类应用程序通过调用可信服务提供的TCM接口进行可信运行。
可信传输主要针对主站与采集终端的用电信息传输安全问题,基于双向互动性,本文引入双重认证、访问优先控制、协议过滤的BIMP认证协议。首先定义协议符号的意义:A为用电信息采集终端;B为双向互动的主站系统;KP1、KP2分别为A、B的参数认证密钥;PVN为协议的版本号;ACLA、ACLB分别为A、B访问控制列表;PrMi为用电信息Mi的优先级别;EKpi为认证加密;Dkpi为解密运算;MixBit(x,y)为非线性循环位移;Rot(x,y)为x循环左移wt(y),其中wt(y)为y的汉明重量;⊕表示按位异或运算;≪和≫分别表示按位左移和右移;‖为连接符号;K、KE分别为主密钥、用户信息加密钥;KMAC为用户信息认证码MAC的密钥;TIV、TMIV均为初始向量;R1、R2分别为A、B产生的随机数。
MixBit(x,y)算法描述如下:
z=MixBit(x,y)
{z=x
for(i=0,i<32,i++)
z=((z≤1)+(z+y)≥1)mod32
主密钥K的运算方法为:
K=Rot(Mixbits(R1,R2),R1)⊕
Rot(Mixbits(R1,R2),R2)
KE、KMAC、Trv、TMIV
KE=Select left(Rot(hash(K‖R1‖R2),R1),16)
KMAC=Select right(Rot(hash(K‖R1‖R2),R1),16)
Trv=Select left(Rot(hash(K‖R1‖R2),R2),16)
TMIV=Select right(Rot(hash(K‖R1‖R2),R2),R2)
本文设计的BIMP认证加密协议涵盖了协议过滤、双向身份认证及密钥协商、访问列表查询及验证、优先级控制、关键用电信息加密传输5个步骤,整个认证过程采用国密SM1算法予以实现:首先预置密钥列表和操作权限白名单列表于通信实体A、B中,共享参数保护密钥;然后启动会话并发送融合BIMP协议版本号、加密算法和用于彼此交换的随机数等问候消息。BIMP认证加密协议如下所示。
实体A 实体B
GenerateR1
GenerateEKP1(R1)
M1=PVN‖encryption
algorithm‖EKP1(R1)
say hello to B,sendM1to B
————————————————————→
if the protcol format ofM1is ok
GenerateR2
M2=PVN‖encryption
say hello to A,sendM2to A
←————————————————————
if the protcol format ofM2is ok
CaculateKRotmixbits(R1,R2),R1)⊕Rotmixbits(R1,R2),R2)
GenerateKE,KMAC,TIV,TMIV
MAC=KMAC(K,KE,KMAC,TIV,TMIV)
CaculateEKE(ALCA)
M3=EKE(R1,R2)‖MAC‖EKE(ALCA)
say hello to A,sendM3to B
————————————————————→
ifMAC′=MACandACLAisok
M3=MAC′‖EKE(ALCB)
sendM4and say finished to A
————————————————————→
ifMAC′=MACandACLBis ok
say finished to A sendEKE(PrM5‖M5,TIV)andKMAC(PrM5‖M5,TMIV)
←————————————————————
VerifyKMAC(PrM5‖M5,TMIV)
if (PrM5‖M5,TMIV) if ok
VerifyPrM5
ifPrM5is ok,carry outM5
主站层通过下发控制指令调控智能终端的负荷、电源节点,但若该指令受到木马、黑客等非法篡改后,将造成指令执行不当或用电信息泄露。而HSCT信号确认技术可基于HooK操作系统内核设备驱动程序对鼠标、键盘等指令设备发出的信号进行检测,判定是否可信,从而实现对控制指令的认证加密。HSCT由HSC用户、过滤及检测3大模块构成,各层分别位于应用层、操作系统内核层及最底层。其中,HSC用户模块可以对鼠标、键盘等操作进行实时监听,并搜集指令控制动作;HSC过滤模块可拦截非可信指令下应用程序对敏感用电信息的访问;HSC检测模块判定是否有非可信指令产生。可信指令的HSCT检测算法流程如下:
步骤1,在初始状态下,建立用于识别和监控操控指令的“待监测进程指纹库”,初始指纹库由用户依据需求构建,一旦生成,则需经过授权才能更改。
步骤2,HSC过滤模块实时监控主站层下发的用电信息操控指令,filerjist内链表可用以设置进程的路径、指纹、拟执行的操作、要访问的用电信息等过滤条件,该链表的节点结构如下:
typedef struct
{char_t*process_path;//进程和路径
char_t*process_finger;//进程的指纹
char_t*file_path;//进程访问文件的路径
char_syscal_name;//系统调用名称
list_t*link;//双向链表指针
}filter_node*filter_list;
typedef
由该链表可知,HSC过滤模块在发现匹配“待监测进程指纹库”的进程需进行可信检测时,或存在未经授权非法采集敏感用电信息时,调取HSC用户模块显示检测界面,通过HSC检测模块判定是否有非法指令存在,并计时。
步骤3,HSC检测模块启动定时,在既定时间内检测有无属于上述内链表进程的主机硬件信号:
typedef struct
{process_info*process;//待检测的进程
char_t*process_finger;//等检测进程的指纹
event_tcheck_event;//等检测的键盘、鼠标事件
list_t*link;//双向链表指针
unitstart_time//开始计时的时间
unitstaus//硬件信号检测状态
check_node*check_list;
若存在,则通知HSC过滤模块放行该进程的操控指令;若超时了还未获得进程指令的硬件信号,则通知HSC过滤模块拒绝该进程的操作指令。
在用电信息采集系统关键节点进行本文设计的安全防护认证加密系统的部署,完成对采集终端身份的查询及验证任务。通过建立采集主站与终端间双向身份认证以及关键数据加密传输的关系,并与对称以及非对称密码体制相结合,安全防护认证加密系统中的加密协议能够实现主站与终端间的安全认证和密钥协商,认证与密钥协商环节随机数的加入又能进一步为会话新鲜性提供保证,对攻击者重放攻击链路会话的现象加以规避,为安全防护以及信息安全传输提供切实保证。整体而言,本文设计的安全防护认证加密系统有比较强的安全性,表1所示为该系统中协议与其他相同类型协议的性能比较结果。
表1 本文安全防护认证系统加密协议与其他同类协议性能比较
结合表1所示结果与既往经验可知,WAPI协议认证环节和密钥协商环节是相互分离的,在认证阶段没有私钥认证,致使整个密钥协商阶段没有密钥确认过程,若是对私钥认证和密钥认证均加以考虑的话,会在较大程度上增加协议的交互论述。相较而言,本文密钥协议在性能上比EAP-TLS以及WAPI协议要更加优异,对于智能电网用电信息采集系统的适用性更为突出,可以切实可靠地保证电力数据安全及高效实时传输。
智能电网用电信息安全防护因为涉及面广、技术繁杂,已成为认证加密技术领域研究的重点课题,而本文提出的基于用电采集系统的逻辑框架,从采集终端、通信通道、主站等3个层面,根据上下行用户信息采集、传输、指令操控的风险问题,准确判定安全认证加密的防护要点,并据此构建基于可信链的用电信息双向交互方案。该认证加密系统的创新点在于将安全认证加密技术贯穿于用户信息双向交互的全流程之中,抓住关键节点,通过可信智能终端的构建,来确保接入主站层各业务系统用电信息的安全性和可靠性;融合了可信指令确认技术来验证采集指令的真实性和完整性,以此实现用户信息双向交互中“端到端”的安全防护,为智能电网中用电信息的安全防护提供应用支撑。