杜海华,罗 奎
(1.杭州杰普仕通信技术有限公司,浙江 杭州 310000;2.杭州泽傲网络科技有限公司,浙江 杭州 310000)
随着能源互联协作框架的不断发展,以及能源、光伏、风能等大量发电单元与系统相连,电力系统逐渐表现出分布式运行的特点。此外,它具有多服务、多数据、多节点、多交互的特点[1]。数据的收集、传输、存储、使用涉及到大量敏感的企业信息和个人隐私数据,数据中的隐私信息一旦被泄露或篡改,则可能会对国民经济、民生、公共利益甚至国家安全造成严重损害。因此,为了保证电力系统在能源互联网环境中的安全运行,对网络身份认证、可信信息交互以及数据盗窃都有较高的安全级别要求。
在物联网技术不断开发和完善的背景下,电力物联网系统需要适应各种不同的应用场景和环境,以满足各种应用需求。电力物联网通常需要部署大量的内外网数据采集、检测、管理及控制设备,如传感器设备、电能计量设备、充电桩、移动终端、办公室PC设备、监控设备等[2]。各种设备的加持让安全和风险的边界更加模糊,最典型的是各业务端的身份认证和签名,存在着一定的安全风险[3,4]。电力企业的云端平台,由于数据规模庞大、业务类型繁多、交互信息复杂等,导致非法登录和数据泄露的风险大幅度升高,给电力企业的数据流带来新的安全隐患,让不法份子有机可乘,带来一系列如造假、合同欺诈、虚拟交易、侵害消费者合法权益等违法行为发生的可能性。在云环境中,电力企业由于大规模终端设备的接入,带来许多安全性隐患。
1984年,以色列科学家Shamir提出了基于身份识别的密码技术(Identity-Based Cryptograph,IBC)的设计概念,即用户的身份可以作为用户的公钥,不需要申请和交换证书,这大大降低了系统的复杂性[5]。IBC技术是一种将用户的唯一身份标识用作公钥的非对称加密技术,不涉及证书的颁发、验证和交换,因此不需要保存密钥目录,也不需要第三方CA机构来保障证书有效性。IBC系统中用户的私钥由密钥生成中心(Key Generation Center,KGC)生成,由用户自己保存私钥,用唯一身份标识作为公钥,并公开到整个系统中。
基于IBC技术的SM9算法采用集中的密钥托管方法,使用可信的KGC为用户发放和管理密钥,可以很好地满足运营管理部门对密钥使用的监督管理需求。IBC技术非常灵活,易于使用和管理。我国在IBC技术的基础上,于2016年发布《SM9标识密码算法 第1部分:总则》(GM/T 0044.1—2016)、《SM9标识密码算法 第2部分:数字签名算法》(GM/T 0044.2—2016)、《SM9标识密码算法 第3部分:密钥交换协议》(GM/T 0044.3—2016)、《SM9标识密码算法 第4部分:密钥封装机制和公钥加密算法》(GM/T 0044.4—2016)共4项行业标准,标志着SM9算法作为我国商用密码算法正式公开发布。
国密SM9算法的公钥和私钥由KGC使用设备标识、主公钥、主私钥和公共算法参数进行计算,使用唯一标识作为公钥,适用于数据加密和身份认证,广泛应用于电子邮件保护、公文安全流通、多媒体融合安全通信、身份认证、物联网安全通信、云数据保护等。SM9算法利用椭圆曲线上的双线性对作为基本数学工具,根据相关计算的复杂程度构建安全证明,显著提升中国信息安全水平。该系统具备天然的密码委托功能,非常适用于受监管的应用环境,对大规模互联设备的管理和控制有明显优势。
光电、风电等新能源分布式电源的加入,让电力系统的业务终端和应用设备数量剧增,对电力系统的安全性提出了更高的要求。结合云安全访问的SM9算法解决方案,能够为业务的交互提供安全的访问通道,并对通道进行加密,从而形成独特的访问流程和流程审查管理机制,其架构如图1所示。
图1 基于SM9算法的大规模终端云安全架构
2.2.1 协作密钥生成
SM9密钥生成中心集成到平台服务器中,物联网平台的其他服务器协同为用户生成签名私钥。首先将用于计算用户私钥的公式dA=[t2]P1转换为dA=P1-[h1(h1+s)-1]P1,这里的h1=H1(IDA||hid,N),推导过程为
协作密钥生成阶段包括KGC1和KGC2这2个密钥生成中心,其中KGC1部署在云服务平台,KGC2部署在业务平台上。KGC1拥有一个整数密钥Ss∈[1,N-1],并选择一个随机数t∈[1,N-1];KGC2拥有一个整数密钥SC∈[1,N-1]。2个密钥生成中心通过产品的密钥共享签名主私钥,然后协作生成用户的签名私钥,再对称生成用户的签名私钥。具体的对称密钥生成过程如下:(1)KGC1选择一个随机数μ1∈[1,N-1],计算C1=(Ss·t·μ1)、Q1=(μ1·P1),并将Q1发送给KGC2;(2)在收到消息Q1后,KGC2生成一个同态加密算法的密钥(pk,sk),计算S1=Encpk(Sc),并将S1发送给KGC1;(3)在接收到消息S1后,KGC1计算S2=[h1⊗Encpk(μ1)]⊗(t⊗S1)、C2=(C1-t),并将S2和C2发送给KGC2;(4)在接收到消息S2和C2后,KGC2计算S3=Decsk(S2)、C3=(S3+Sc·C2),并检查C3是否为0,如果C3为0,则中止后续操作,否则KGC2计算dA=P1-C3-1·h1·Q1
2.2.2 协作签名
为了提高用户签名私钥的安全性,在初始化阶段,KGC2选择2个随机数d1,d2∈[1,N-1],并将整数密钥d1保存在用户的移动终端设备中,将整数密钥d2保存在控制端的硬件存储器芯片中。此时,设备D1和D2分别持有与用户的签名私钥相关的秘密共享。在对称签名阶段,2个设备对称对用户的消息进行签名,并确保用户在生成过程中不会公开完整的私钥。
基于CHAP的增强行身份验证是对传统“用户名+密码”身份认证机制的优化。传统的“用户名+密码”很容易被木马攻击,被拦截的风险较大,在电力物联网这种大规模终端应用场景中的安全性非常低。虽然使用SM9算法的身份认证机制能够有效解决这些问题,但是对重放攻击所产生的威胁依然和传统认证机制一样存在着局限性,无法抵御这种攻击威胁。在SM9算法中结合CHAP机制的增强行身份验证能够很好地解决这些问题,对于提高电力网联网的稳定性和安全性有很好的效果。
利用组认证技术对系统进行优化,可以有效降低网络上的信令开销,提高系统效率,避免了大量消息造成的网络拥塞。与利用核心网络进行逐成员认证的方法相比,组认证技术可以减少网络信令的传输开销,缩短组成员的认证时间,提高网络性能。以营销业务的用电量信息采集服务为例,同一社区的智能电表具有基本相同的属性。可以将这些智能电表设置为用于安全身份验证的一组。当智能电表批量更新配置信息时,需要确保组中用户节点的身份,以防止配置信息被非法接收。同时,当电网需要向这些仪表组发送指令时,需要确保仪表组中用户节点标识的正确性,防止命令被发送到错误的节点,避免错误充电的发生。如图2所示,智能电表A、B、C、D属于同一个单元,可分组进行统一的安全身份认证。由于仪表E不在单元格中,也不属于此组,因此它无法通过该组的身份验证。组中的所有仪表都能够独立于网络进行通信,通过安全认证后,可以分别进行信息交换。
图2 基于SM9和组认证技术的电源信息采集
本文分析了电力物联网系统中的安全风险,重点介绍了系统安全保护和数据安全管理的应用。针对大规模接入点的安全问题,使用SM9来加强对终端身份认证的支持。在复杂的网络安全环境中,仅依靠单一的网络安全技术很难解决大量终端面临的安全威胁。结合SM9算法、CHAP协议技术,构建了海量终端的身份认证架构,保证了业务终端对云服务器的访问认证以及整个业务链数据传输的安全性和信任度,提高了无处不在的电联网身份认证效率。