基于USB Key的配电网自动化系统身份认证机制研究与设计
2015-12-16周振华吕继伟徐若然冒蕾蕾
周振华,吕继伟,徐若然,冒蕾蕾
(1.国网电力科学研究院,北京 102200;2.北京电研华源电力技术有限公司,北京 102200)
1 配电网自动化二次系统安全防护概述
随着网络信息技术的不断发展,网络信息安全已成为社会关注的热点。智能配电网建设过程中实施的配电自动化系统,主要包括配电终端、配电网通信设备、数据网络以及监控主站系统设备等,是电力系统面向最终用户供电的重要基础设施。配电环节作为用户供电的最后一个环节,在保证供电可靠性和质量的基础上,进一步完善信息安全和防止恶意破坏是系统需要考虑的另一重要问题。作为电力系统二次设备,其安全防护的目标是抵御病毒、黑客等通过各种形式发起的恶意破坏和攻击,尤其是集团式攻击,重点保护电力实时闭环监控系统及调度数据网络的安全,防止由此引发的电力系统事故。随着配电网快速发展,配电二次系统的安全问题已经非常突出。2006年电监会发布了《电力二次系统安全防护总体方案》及配套的《配电二次系统安全防护方案》,对配电网自动化系统、电力负荷管理系统等二次系统的安全防护措施做出了原则性规定。2011年国家电网公司制定了《中低压配电网自动化系统安全防护补充规定(试行)》,对配电网二次系统安全防护方案中的相关措施做进一步细化与补充。
电力二次系统安全防护的总体原则是“安全分区、网络专用、横向隔离、纵向认证”。配电网自动化系统主站与子站及终端的通信方式原则上以电力光纤通信为主,对于不具备电力光纤通信条件的末梢配电终端,采用无线通信方式,这样就容易使配电二次系统面临来自公共网络攻击的风险,可能会引起恶意攻击设备事故。因此,配电网自动化系统的安全防护,除了遵循电力二次系统安全防护总体原则,还应防止通过公共网络对子站终端进行攻击,造成用户供电中断,同时防止通过公共网络和用户终端入侵主站,造成更大范围的安全风险。目前的解决方案是在终端设备上配置安全加密模块,安全加密模块对来源于主站系统的控制命令和参数设置指令采取安全鉴别和数据完整性验证措施,以防范冒充主站对子站终端进行攻击,恶意操作电气设备,影响供电安全。
但对于终端以及子站设备的就地操作,目前还缺乏有效的信息安全防护机制,尽管目前终端设备具备基本的防窃、防火、防破坏等物理安全防护措施,以及控制远程操作的软硬压板,然而设备一旦通过外部暴力开启物理防护措施后,即可通过操作面板的控制按钮对设备进行操作,或者直接绕开安全加密设备连接子站及终端设备,按照标准规约查看终端的相关数据以及对设备进行遥控操作等,从而进一步侵入配电自动化系统网络。
如何有效防护终端设备的就地安全操作是一个值得思考的问题,借鉴目前互联网的安全防护以及身份识别技术,对配电主站系统以及子站终端采用身份识别技术,增加身份识别机制,从源头确保设备操作的安全和稳定。不论从主站对设备进行远程操作、对终端设备就地进行操作以及数据查看等都需要先进行身份验证,具有不同权限的身份经鉴别后才允许对设备进行操作,同时设备的控制闭锁环节才会打开,允许运维人员的进一步操作。未经身份验证的物理连接和操作控制都被视为非法操作,一旦发生,将会自动提升设备安全防护级别,闭锁全部相关设备的操作控制,并及时向主站上传报警信息并定位,提示系统的异常侵入。
身份认证服务是提供网络系统安全中其他安全服务的前提和基础。如果不能准确识别网络通信端对端实体的真实身份,就不可能建设一个稳定、有序、安全可靠的自动化系统。因此,研制和开发适合配电网自动化系统的身份认证安全机制及技术具有重要意义,能够极大地提升社会经济效益,促进配电网建设的信息化、智能化发展。
2 基于USB Key的身份认证技术
USB Key是一种便携式的硬件载体,具备通用的USB接口,内置控制核心或智能芯片,并且可以存储持有人的私有密钥和数字签名证书,利用USB Key进行身份验证可以通过内置公钥算法进行,而身份认证的安全性在于私钥保存在USB Key中,常规方法难以获得。
USB Key的优点包括:体积小巧,携带方便,个人PIN码保护,安全存储,内置硬件算法。一般地,用户可以通过USB Key内部的加密算法生成密钥或者设置个人PIN码,来实现内部文件的操作权限。USB Key的安全性保障从原理上讲,一是提供双因子认证,即USB Key硬件介质和个人PIN码(密钥),获得USB Key的操作权限需要同时获取内外部验证,操作权限获得后要想对其内部文件进行操作还需要持有人提供个人PIN码或由USB Key内部生成的私钥来实现;二是私钥只从USB Key内产生,不会出现在注册计算机中,外部不可见;三是USB Key只进行加解密和证书验证操作,不会泄露密钥实现算法,可以确保数据的安全。基于以上优点,USB Key被广泛应用于电子商务、金融等信息安全要求极高的场合来进行身份验证识别,因此考虑配电网自动化系统采用USB Key进行安全身份验证[1]。
针对配电网自动化系统面临的安全风险,USB Key作为其安全身份验证要着重考虑以下几个问题[2-5]:
(1)抵抗重放攻击 利用二维认证消息加时间戳、为认证消息添加当前时标以及动态推进认证消息等方法确保认证信息的及时有效,抵抗重放攻击。
(2)抵抗密码分析攻击 通过对称、非对称加密算法保护以及散列函数 (HASH)的单向性来实现认证过程抵抗密码分析攻击,确保加密的安全性。
(3)双向身份认证功能 主站和终端应均能对对方的身份进行验证,防止信息单向传递过程中泄露。
(4)多因子身份认证 高安全强度的身份认证服务往往需要多重因子,即使单一因子的丢失或者泄露也不会引起认证系统的危机或被冒充的风险。
(5)提高身份认证协议的效率 简练并且安全的认证协议可以减少认证通信的次数,提供可靠性,减弱被攻击的风险。
3 基于USB Key的配电网自动化系统安全性身份认证机制流程
配电网自动化系统的安全身份认证机制采用动态口令认证机制中的请求—响应方式,可实现客户端和认证服务器的双向认证,同时保证了客户端和服务器认证信息的同步。基于USB Key的配电网自动化系统安全性身份认证也需要配电网系统对于该接口设备的支持,系统主站侧和终端侧需要有支持USB Key对应的接口,而且还需要支持客户端代理程序的运行。一般地,终端应具备人机交互的显示界面和键盘输入设备,能够输入身份认证的相关信息提供给USB Key进行验证。
配电网自动化安全验证系统总体构架如图1所示,架构共分为3层:第一层主站安全认证系统层,包括配电自动化系统主站服务器、安全认证服务器、Key注册服务器;第二层为网络层,主要包括系统通信光纤网及通信设备;第三层是设备层,主要包括用户数据、运维操作人员、USB Key接入设备、终端以及安全加密设备等部分。
身份验证机制的流程要依赖于3层系统架构,具体实现分为3个阶段:第一阶段为设备注册阶段,主要在主站系统层实现;第二阶段为双向认证及ID识别阶段,需要3层架构配合实现;第三个阶段为用户注销阶段,由主站系统层实现。
在认证流程执行中,主要用到的加密算法包括:SHA-1,3DES,ECC等。用户PIN为身份识别码,ID为USB Key的ID号,此号唯一;R为随机数;hc()为认证服务器SHA-1加密算法的消息函数;hu()为 USB Key中SHA-1加密算法的消息函数;K,KR,KL为3DES的算法密钥;h()为单项散列函数。
3.1 设备注册阶段[2]
设备注册阶段首先需要在身份认证服务器端完成注册用户接入设备的认证,注册通过后才可以参与设备接入的身份认证。对于用户接入的认证信息,首先由注册服务器为申请用户分配一个USB Key,并记录该Key唯一的ID序列号。服务器在本地数据库中为该用户创建一条包含ID号、服务器端上次认证信息、服务器端本次认证信息的消息记录。
图1 配电网自动化安全验证系统总体构架
随后,USB Key还需要进行PIN码和ID的注册写入,将两者信息写到USB Key硬件存储区域,并且USB Key存储该用户ID认证过程中所需要的加解密算法。
3.2 认证阶段[2]
3.2.1 用户PIN码验证
用户插入USB Key至终端设备的USB接口,终端液晶界面显示客户端代理程序窗口,用户通过键盘输入PIN码,客户端代理程序向USB Key端申请发送随机数。
USB Key收到请求向客户端程序发送一个随机数R,并标记一次认证。
客户端程序将得到的R和PIN码进行3DES加密得到E,加密过程算法对应于E=DES(KL)[DES-1(KR)][DES(KL[R+PIN])]],加密后的密文传输给USB Key。
USB Key通过3DES算法解密E得到R和PIN码,分别与内部存储的R和PIN码做比对,如果对比一致说明用户为合法用户,然后开启USB Key-ID验证程序,同时向终端发送合法用户验证信息,授权用户使用通信信道进行ID验证;否则说明用户为非法,将结果返回给客户端的认证程序,显示非法用户信息,并通过终端的通信通道向主站服务器发送报警信息,提示异常非认证接入终端节点。USB Key用户PIN码验证流程图如图2所示。
图2 USB Key用户PIN码验证流程图
3.2.2 USB Key-ID验证
USB Key-ID验证过程实际为双向验证,即分别对接入的USB Key和认证服务器系统分别进行验证,验证过程如下。
认证服务器接到USB Key,通过终端发送的请求身份验证信号后,产生随机数C传给USB Key,并用SHA-1算法加密C得到hc(C)。
USB Key接收C后,根据 ECC(Elliptic Curve Crypto)算法产生一对密钥(公钥K1和私钥K2),并通过同样的SHA-1算法加密C得到hu(C),同时生成一个时间戳t,发送密文m={hu(C),K1,t}到认证服务器,请求服务器验证 USB Key身份,最后再利用SHA-1算法加密K1,得到hu(K1)。认证服务器接收密文m,解密m并提取hu(C),与hc(C)对比,如果不相等拒绝对方的链接。
除了验证随机数还需要验证t′与t之间的有效性。如果(t′-t))≥Δt,认证服务器将断开连接,小于间隔时间则接受。其中,t′是认证服务器的当前时间戳,Δt是期望的有效时间间隔,此时,USB Key身份验证完毕。同时,认证服务器将K1用内部存储的SHA-1算法加密得到hc(K1),同时生成一个时间戳T,根据ECC算法生成一对密钥(公钥P1和私钥P2),发送密文M={P1,hc(K1),T}给 USB Key,使 USB Key验证认证服务器的身份,USB Key端接收到密文M后,通过解密算法提取hc(K1)并比较hu(K1)与hc(K1)是否相等,如果不相等断开链接。
同样地,还需要验证T′与T之间的有效性。如果T′-T≥ΔT,USB Key将断开与服务器连接,否则接受。当USB Key确认对方为合法认证服务器身份后,即双向认证过程通过,认证服务器还要验证USB Key的ID信息,通过ID信息可以识别出连接发起人的权限和身份等相关信息,便于开放相应的操作权限,具体过程:USB Key将P1和K2利用ECC加密h(ID)和T,发送Z=Ep1(EK2(h(ID)+T))给认证服务器。
认证服务器得到Z后利用P2和K1进行解密,得到明文Z′=DP2(DK1(Z))=h(ID)+T,比对T是否一致,如果一致就将h(ID)与数据库中存储的字段进行匹配以确认身份,以便赋予其相关权限;否则断开链接。接入Key和认证服务器的双向验证以及ID验证流程如图3所示。
整个身份安全验证算法过程如图4所示。
3.3 注销阶段
用户忘记PIN码或丢失USB Key硬件设备,需立即联系生产厂商进行索取PIN码或者注销。
图3 双向验证以及ID识别流程
图4 认证服务器算法过程
4 结论
本文研究了基于USB Key技术的配电网自动化安全身份认证机制,设计了配电网自动化安全验证系统总体架构,采用的USB Key通过软硬件相结合双向双因子认证模式并基于动态口令认证的请求—响应方式认证协议,实现了配电网末端安全风险的有效防控,并具备了如下功能:
(1)能够抵抗重放攻击;
(2)能够抵抗密码分析攻击;
(3)可实现双向身份认证和多因子身份认证;
(4)提高了身份认证协议的效率。
未来随着保密需求的不断加强,将生物特征识别引入USB Key,利用生物特征作为PIN码,从而确定使用者的确是被授权者,这将在今后USB Key发展中成为主要的发展方向。
[1] 宫立圆.公钥密码算法在USB Key中关键技术的研究[D].济南:山东大学,2010.
[2] 曹喆.基于USB Key的身份认证机制的研究与实现[D].上海:东华大学,2010.
[3] 候孟波.基于身份和无证书的两方认证密钥协商协议研究[D].济南:山东大学,2010.
[4] ZHANG Ping,PEI Ya-nan.A Technology of User Access-Control Table and Identity Authentication Based on USB in LAN[C].Biomedical Engineering and Computer Science(ICBECS),Wuhan,2010.
[5] YU Jiang,ZHANG Chuan-fu.Design and Analyis of a USB-Key Based Strong Password Authentication Scheme[C].Computational Intelligence and Software Engineering(CISE),Wuhan,2010.