APP下载

基于椭圆曲线数字签名的工业网络设备认证方法研究

2022-01-05钱俊磊曾凯刘博安江伟张琦

关键词:数字签名私钥黑客

钱俊磊,曾凯,刘博,安江伟,张琦

(1. 华北理工大学 电气工程学院,河北 唐山 063210;2. 燕山大学 电气工程学院,河北 秦皇岛 066004;3. 星恒检测有限公司,河北 唐山 063010;4. 唐山阿诺达自动化有限公司,河北 唐山 063010;5. 华北理工大学 艺术学院,河北 唐山 063210)

2016年美国工业控制系统信息紧急响应中心(The Industrial Control Systems Cyber Emergency Response Team,ICS-CERT )的报告中,当年被验证的近400个漏洞中,有92.1%与生产制造业、能源、商业、污水以及水处理系统相关[1]。以SCADA系统代表的工业控制网络结构是流程工业控制现场的主流网络结构,远程端设备层的传感器采集的温度、压力、流量等信号,经工控协议传输给控制层的控制器、人机界面(Human Machine Interface,HMI),向上传输给管理层数据库以及工程师站。传输过程中经过远程终端单元(Remote Terminal Unit,RTU)、交换机、路由器等中继设备,这些传输节点一旦被黑客攻击,数据就会被窃听,如果黑客懂得生产工艺,能够从被窃听的数据中解析获取工艺流程特征,比如控制参数、参数设定值等关键数据,那么黑客可以通过修改协议中的数据值,然后把数据重新注入回控制网络的方式篡改实时生产数据值,造成对生产过程、生产关键设备的威胁。比如2014年12月发生在德国钢厂的网络攻击事件,造成高炉不能正常生产及严重损坏的后果[2]。2020年4月发生在葡萄牙的能源公司关键数据被黑客窃取,黑客号称获得10T敏感数据并勒索巨款[3]。2021年5月7日,美国洛尼尔管道运输公司电脑系统和数据被黑客非法控制,9日美国宣布进入国家紧急状态,这是美国首次因为网络攻击进入紧急状态[4]。

1 工业数据安全问题

工业网络的组建起始于可编程控制器(Programmable Logical Controller,PLC)等工业控制器投入使用的1960年代,工控协议也从当时一直沿用至今。与普通信息网络比较,工控网络设备陈旧,设备之间通讯握手过程没有ID认证环节,如果黑客采用基于ARP欺骗的“中间人攻击”“重放攻击”等攻击方式窃听工艺数据,可能导致数据被篡改的严重后果。攻击过程如图1所示[5],来自传感器的数据在传输过程中,在RTU、中继等位置可以被黑客通过“中间人攻击”或者“重放攻击”等方式窃听、重新注入,传到PLC后可能被黑客通过注入程序或者数据等方式篡改控制程序和数据,控制器根据被篡改的错误数据进行计算得到的控制决策并不是实际设备中的需求,所以控制器发给执行器的指令并不是执行器应该执行的动作,一旦阀门、电机等执行器执行了错误指令,就会导致温度、压力、流量等关键设备的参数有超出安全范围的危险,造成生产过程或者关键设备被毁坏等危险。

图1 黑客攻击模型

“中间人攻击”和“重放攻击”是以ARP欺骗为基础的攻击形式,攻击者把自己的电脑ID伪装成合法设备的ID与控制系统内设备进行数据交换达到窃取工艺数据的目的。Kang[6]等使用对称加密算法,通过调整生成会话密钥的周期保证数据安全,这种方法的困难是很难找到最优的会话密钥更新周期,周期太长会导致主密钥暴露,周期过短会增加网络流量导致网络堵塞、时延或者通讯失败。

Dawson[7]等在SCADA网络通讯终端中预加载主密钥,生成的会话密钥令不同通讯终端之间相互认证,此方案因缺少ID认证而不能防御ARP欺骗。Lim[8]提出基于ID认证的通讯方案,通过使用密钥分类中心(Key Distribution Center,KDC)、私钥发生器(Private Key Generator,PKG)产生私钥,此过程增加通讯过程的开支,同时引入新的脆弱点。

基于上述方案的缺陷,提出基于椭圆曲线数字签名的ID认证方式,线下计算合法通讯终端设备的ID数字签名减少线上通讯开支,线上对数字签名进行验证确认数据来源是否为控制系统内合法设备,如果验证失败,通讯立刻终止,从而达到防御“中间人攻击”和“重放攻击”的目的。完整过程如图2所示。

图2 基于数字签名和认证的数据传输方案

2 基于椭圆曲线算法的数字签名过程

椭圆曲线算法安全是基于在椭圆曲线的无限域求解困难问题,椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)于2000年被确定为IEEE1363-2000标准,同期被美国国家标准技术研究院(National Institute of Standards and Technology,NIST)定为联邦数字签名标准FIPS186-2[9]。

有限域E(Fp)上定义了一组n个点(n阶曲线)满足方程:

(y3≡x3+ax+b)modp

(1)

椭圆曲线的阶数n与安全性相关,n越大,安全性越高。当P是椭圆曲线上的一个点,kP是k个P点相加的和,椭圆曲线的解密问题就是从P和kP中找到未知的k。

从E(Fp)的点中找到基点g,通过计算不同次求和g点可以求得:

∀P∈E(Fp),∃k∈[1,n]⟹k×g=P

(2)

所以点P可以公开,密钥是用来加密或者数字签名的k。数字签名过程如下:

(1)加密机生成随机私钥KApri,g(xg,yg)是椭圆曲线的基点,用Hash算法计算得到摘要md作为公钥:

KApub(XA,YA)=Kpri×g(xg,yg)

(3)

于是基于椭圆曲线的n阶的密钥对(KApri,KApub(XA,YA))产生;

(2)在[0,1]之间选择随机k,通过式(4)计算(r,s),如果s=0,重新选择k后计算:

(4)

(3)数字签名完成,即(r,s)。

3 数字签名验证过程

数据发送和接收双方收到数据后,首先对数据源的身份进行验证,也就是对对方的数字签名验证,过程如下:

(1)同样生成一个摘要md;

(2)计算:

(5)

(3)计算曲线点:

K'Apub(X'A,Y'A)=u1×g+u2×KApub

(6)

(4)如果r≡X'Amodn,那么数字签名有效,否则通讯终止,签名有效验证过程如下:

(7)

4 工业控制网络设备数字签名和验证仿真

硬件安全模块通过椭圆曲线算法式(2)、(3)、(4)主私钥MSKpri和主公钥MSKpub,用主私钥做自签名得到安全模块数字签名,过程如下:

(8)

假设通讯双方分别为PLC和RTU,数据发送方的ID(IP地址或者MAC地址)为A,计算A的Hash 值:

HIDA=Hash(IDA)

(9)

加密机通过椭圆曲线算法式生成私钥Kpri,根据式(2)、(3)和基点g(xg,yg)计算得到A的公钥Kpub1和Kpub2:

(10)

用Hash算法对序列H(IDA‖Kpub2)计算得到摘要mdA=H(IDA‖Kpub2),根据式(4)用MSKpri对IDA‖Kpub2做数字签名计算得到{H(IDA‖Kpub2)}-MSKpri=(rA,sA):

(11)

数据接收方B对自己的ID进行同样的过程得到数字签名(rB,sB)。

A和B通讯过程中,B把IDB、MSKpub2、KBpub2、(rB,sB)发送给A,A通过式(11)验证(r,s),过程如下:

(12)

如果rMSK≡X'Pmodn,则签名有效,之后通过MSKpub2来验证(rB,sB),B点用相同的验证过程验证A的数字签名,一旦任意一个签名被验证无效,本次通讯终止。

5 工业网络设备ID防御场景模拟

假设设备A和B的信息如表1所示,其中ID是把IP地址转换成16进制数再跟MAC地址串联。

表1 非白名单内ID摘要异常值

假设场景1,防御中间人攻击:当攻击者C伪装成B在A和B中间做中间人攻击,即使他能得到跟B一样的HIDB,但是因为KBpri存储在设备B的安全模块中不随数据发送,不会被C随数据包截获,因此不会被C所知,所以C只能猜测一个KBpri对HIDB做数字签名,得到的(r'B,s'B)与(rB,sB)会有差别,因此在验证环节会验证失败,导致通讯终止,攻击失败。

场景2,如果有不同的ID终端B'试图取代B,假设他的IP地址和MAC地址为192.168.1.22, 00:1B:1B:96: 52:33,可以伪装在终端A的白名单中,此ID计算的摘要HID'B异常,于是数字签名异常,如表2所示。

表2 非白名单内ID摘要异常值

使用(rB,sB),ID'B,XPB2,RB,SB,MSKpub(XP,YP)做签名验证结果为签名认证无效,通讯终止,攻击失败。

6结论

通过对工业控制系统SCADA网络中PLC、RTU等网络节点设备ID做基于椭圆曲线算法的数字签名和签名认证,实现对基于ARP欺骗的“中间人攻击”和“重放攻击”的防御,避免工业数据被黑客窃听、篡改和重新注入、进而导致工业控制现场关键生产过程失控和关键设备遭到损坏的严重后果,对工业控制网络系统的工艺数据安全、生产安全、关键设备安全和人员安全具有重大意义。

猜你喜欢

数字签名私钥黑客
欢乐英雄
多少个屁能把布克崩起来?
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
浅析计算机安全防护中数字签名技术的应用
网络黑客比核武器更可怕
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于数字签名的QR码水印认证系统
基于数字签名和HSM的数据库篡改检测机制
复制数字签名,巧妙伪装病毒