当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:目前,电力采集系统主要通过无线公网、无线专网、以太网、GPRS以及载波(HPLC)、RS485等作为上行或下行的报文交互之间的通信信道。当主站需要获取采集终端的某些重要、私密信息时,或者主站需要利用采集终端通过代理的方式直接获取电能表的某些重要、私密数据时,为了避免在传输过程中数据信息被恶意篡改,需要先将传输的数据进行加密,再经过通信信道进行信息交互。鉴于此,介绍了一种通过AES对称加密和RSA非对称加密的安全传输机制,该机制大幅提高了关键数据信息在传输过程中的安全性,降低了数据在传输过程中被恶意篡改的可能性。

引言

随着我国电力行业的发展,用户用电信息通过电力采集系统(PoweracquiSitionSyStem)实现了用电监控、负荷管理、线损分析,达到了自动抄表、错峰用电、负荷预约和节约用电成本的目的。当前的电力采集系统主要分为:系统主站(SyStemmaSterStation)、传输信道(TranSmiSSionchannel)、采集终端(AcquiSitionterminal)和智能电能表(Smartmeter)。其中采集终端与主站进行通信时的传输信道通常称之为"上行通道",与智能电能表进行通信时的传输信道通常称之为"下行通道"。为了保证通信信道中的数据传输不被外界干扰,保证数据的安全可靠性,根据国网最新发布的《电能信息采集与管理系统第4-5部分:通信协议一面向对象的数据交换协议》(DL/T698.45一2017),在应用层建立应用连接。在建立应用连接时进行加密密钥协商,产生回话密钥,在进行安全传输时,用于计算数据验证码和链路用户数据的加密。

1安全传输的意义

在当前的电力采集系统中,数据传输大部分都依赖于公网或者专网,网络传输安全的重要性正伴随着全球信息化时代发展的加快而变得越来越重要。那么在电力采集系统中,保护电力采集终端信息安全也是至关重要的。

(1)保护终端信息在传输过程中不被非法挖掘。如果终端信息安全得不到保障,不法分子就可以通过数据挖掘获取有价值的数据,恶意篡改用户或者终端数据,造成严重影响。

(2)保护终端信息的安全和完整性。目前正处于大数据时代,每日由网络产生的数据量非常庞大,数据类型复杂繁多。网络数据包含着系统数据和用户数据,涉及用户用电情况等敏感信息,如果终端数据缺失或者不完整,就有可能造成主站系统误判,对电力用户造成不可避免的影响。

(3)保护运行系统安全。在电力采集终端系统中,存在着大量的系统数据和用户用电信息、用电量等数据,因此,需要高级别的安全防护,确保网络终端不被监控,否则,一旦系统崩溃也是很严重的问题。

因此,防止信息被破坏、泄露、篡改等恶性现象发生,对于保障个人信息安全或者商业信息安全有着重大意义。

2RSA加密技术和AES加密技术的特点

首先,RSA加密技术和AES加密技术的加密算法所适用的业务场景不同,两者没有可比性。

RSA是一种非对称加密算法(ASymmetricencryptionalgorithm),由于效率低下,存在大量的取模运算,加密速度慢,只能针对少量内容进行加密[3],例如利用RSA对动态随机对称密钥的私钥进行加密、HASH值摘要加密,所以绝大多数人将RSA技术运用于密钥交换、数字签名或者保护随机对称密钥等方面。非对称加密应用有支付宝、微信等支付做签名验证,苹果开发证书签名等。

AES是一种对称加密算法(Symmetricencryptionalgorithm),由于AES的加密效率高,可以对大量数据内容进行加密,因此AES主要应用的业务场景是对于传输内容进行加密。从算法实现角度来看,AES是十余种算法历时五年甄选之后的佼佼者,均衡了软件实现、硬件实现:从密码学角度来看,AES没有对未知数学问题的依赖,即为数学可证明的安全可靠:再从产品的角度上看,AES算法标准化之后,很多硬件芯片和软件工具都实现了对AES的支持,因此应用AES有助于减少工作量和失误:最后从最重要的安全层面分析,至今为止,AES-128还没有出现过被破解的先例。所以,基于密钥交互的应用连接,AES算法是"安全"的选择。

对于对称加密和非对称加密,对称加密算法产生密钥对是一样的,即使用相同的密钥加密和解密,因此对称加密所生成的密钥不能泄露:而非对称加密算法则相反,产生的密钥对不同,即分为公钥及私钥,使用公钥加密时选择私钥解密,使用私钥加密时选择公钥解密。因此,可以根据这一机制,利用好RSA和AES各自的特点,组合使用,能够有效保证数据在传输过程中的完整性和安全性。

3实现安全传输的几个关键技术

3.1AES、RSA加密技术

AES加密技术流程如图1所示。

明文P:没有经过加密的数据,若将此时的数据进行传输,可能造成数据被恶意篡改。

密钥K:用来加密明文的密码,也可以称之为加锁或者解锁的钥匙。在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的。密钥是由接收方和发送方经过协商沟通后产生的,其不可以在网络上直接传输,因为一旦在传输过程中泄露,后果是很严重的。因此,密钥K应该经过非对称加密的方式加密过后再通过网络传输的方式发送给对方,也就是以下介绍的RSA非对称加密算法。

密文C:经过AES加密函数加密后的数据。AES加密函数,以C语言为例:

char*AESencode(char*K.char*P){//加密函数函数体)

该函数函数名为"AESencode",形参为密钥K和明文P,那么密文C=AESencode(K.P)。

AES解密函数,以C语言为例:

char*AESdecode(char*K.char*C){//加密函数函数体)

该函数函数名为"AESencode",形参为密钥K和密文C,那么明文P=AESencode(K.C)。

AES为分组密码,每一组密码的长度相等,每次加密时只针对一组数据进行加密。

AES标准规范如表1所示。

在AES标准规范中,以AES-128加密标准为例,也就是密钥的长度为128位。上面说到密文C=AESencode(K.P),在加密函数中会执行一个加密轮函数,并且执行10次这个轮函数,即一个明文分组会被加密10轮,AES的核心就是实现一轮中的所有操作。

RSA加密技术流程如图2所示。

客户机(电力采集系统中的主站)通过RSA加密技术算法生成公钥和私钥,通过网络对外发布公钥,服务器(电力采集系统中的电力采集终端)获取到公钥时,就可以使用公钥对相关信息进行加密,使用加密后的密文向主站发送信息,主站在接收到电力采集终端的信息时,使用私钥进行解密得到明文。

对AES加密技术和RSA加密技术的特点进行分析可知,RSA加密效率比较低,不适用于对大量数据进行加密,然而,电力采集终端设备生成的报文所占空间比较大,很显然只适合使用AES加密技术进行加密。因此,可以使用RSA和AES组合的方法对报文进行加密传输。使用AES对电力采集终端的报文进行加密得到AES密钥,由于AES密钥是对称的,所以为了防止密钥被窃取,使用RSA公钥对AES密钥进行加密,最后将加密后的报文和密钥通过通信信道发送给主站,主站首先需要使用RSA私钥对AES密钥进行解密,然后再用AES密钥对报文进行解密,对报文信息进行解读。

RSA公钥和私钥的生成由电力采集终端完成,使用Go语言实现,利用"crypto/rSa"和"crypto/rand"以及"crypto/x509"等官方库,生成密钥对(公钥和私钥)的时候使用rSa.GenerateKey方法,通过传入随机数生成密钥对。

AES加密和RSA加密结合使用流程图如图3所示。

3.2建立通信框架

(1)由于RSA密钥对是由电力采集终端所生成的,因此需要由客户机通过get读取服务获取电力采集终端中的RSA公钥信息。

(2)发起应用连接请求,在其中传输AES密钥,而AES密钥则通过获取到的RSA公钥进行加密。在RSA和AES组合应用实现之后,为了访问服务器的接口类对象,需要根据《电能信息采集与管理系统第4-5部分:通信协议面向对象的数据交换协议》(DL/T698.45一2017),在应用层建立应用连接,并且创建一个可以相互通信的语境,这个语境主要包含应用语境的信息、使用身份验证机制的信息以及其他所有需要的信息,这些信息包含在"应用连接"的接口类对象中。在建立应用连接之前,需要先建立预连接。预连接服务适用于交换网络传输信道、公网、专网等等,当其完成物理连接,建立起透明通道之后需要在此基础上建立预连接并进行管理。建立应用连接时,由客户机向服务器发起连接请求,用于确认客户机和服务器双方通信的应用语境,包含协议一致性、功能一致性以及安全认证等内容。而服务器可以同时支持若干个应用连接,并且互不干扰,但是对于同一个客户机,同时只能支持一个应用连接,当同一个客户机再次请求建立应用连接时,服务器如果接受了客户机的再次请求,则前一个应用连接自动失效。

建立应用连接时应用层的关键部分组件,借助于请求(.requeSt)、指示(.indication)、响应(.reSponSe)、确认(.confirm)等相关服务。客户机应用进程首先调用请求服务,基于预连接的底层连接,客户机应构造一个请求服务时所用的APDU,该APDU是发送给应用层的第一个报文。

(3)服务器收到建立应用连接的请求后,对AES密钥使用RSA的私钥进行解密,得到正确的AES密钥。服务器应用层从接收到的请求APDU中提取出来的适当参数调用指示服务程序,向服务器应用进程发出指示,服务器应用进程分析接收到的指示服务原语,表明接受或者不接受提出的连接请求。如果成功的话,服务器应构造相应的响应APDU,并且在目前建立预连接的基础之上发送给远程客户机应用层。

(4)在客户机收到服务器建立应用连接的响应后,服务器能够在该连接内接收数据通信服务的请求,至此,应用连接建立完毕,服务器进入数据通信阶段。后续客户机和服务器之间安全传输就基于解密后的AES密钥进行。

(5)服务器主动上报的处理。由于服务器在主动上报时可能未与客户机建立应用连接,无法通过AES密钥进行通信,因此为了保证安全传输的可靠性,只能选择放弃报文加密的效率,直接基于RSA密钥进行通信,服务器使用RSA私钥进行加密,客户机在收到服务器主动上报的密文之后,使用RSA公钥进行解密,得到正确的明文。

3.3传输报文的分帧处理

在电力采集系统中,为了避免主站和电力采集终端通信时,报文所占空间太大导致通信信道阻塞以及主站或电力采集终端报文处理不及时,同时也是为了避免完整的信息泄露,需要在建立应用连接时,规定单次发送报文的最大字节数。在请求服务中多重引用属性时,其服务参数编码形式的长度不能超过单次发送报文的最大字节数。

分帧传输分为链路层分帧和应用层分帧,其中应用层分帧仅支持针对请求服务的应答分帧,链路层分帧支持所有的应用层服务。应用层分帧的每一个片段,即每一帧,都可自解析得到报文信息内容,不需要在接收完所有的片段之后才能一次性解析,可以边接收边处理,每一帧都包含完整的对象属性。而链路层分帧的每一个片段不可自解析,需要接收到所有的片段之后组成完整的698报文才能解析处理。

4结语

目前,在电力采集系统中安全传输使用安全请求组包的形式,其中应用数据单元可以选择数据类型为字符串的明文应用数据单元或者密文应用数据单元,随后在APDU的末尾包含数据验证信息,数据验证信息可选择数据验证码、随机数、随机数+数据MAC校验或者安全标志。

本文讨论的RSA加密和AES加密组合这种加密技术,可以通过在数据验证信息中添加一个选项,作为第五个选项供客户机选择,结合AES对报文加密、RSA对AES密钥加密,能够有效保证数据安全高效地进行传输和验证。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭