【学术论文】基于非对称算法的工控核心区内嵌认证技术

导读:

特约主编:林荣恒 博士,北京邮电大学网络与交换技术国家重点实验室副教授,中国计算机学会服务计算专委会专委委员。长期从事云计算与大数据等的研究,研究方向集中在行业特别是工业大数据等方面,先后完成30余项国家及省部级项目。其中,参与的“融合业务支撑环境关键技术与应用”项目获得了国家科技进步二等奖。目前,从事多个物联网、大数据相关的产学研项目。长期担任Transactions on Service Computing、通信学报等国内外知名期刊的审稿人。作为教师,先后获得北京邮电大学优秀研究生授课教师、北京邮电大学教学成果奖,编著的教材《软件体系结构》先后被多个国内高校作为本科或研究生指定教材。

摘要:
内嵌认证技术是作者的专利技术,依托内嵌认证的创新产品是工业控制系统核心区防护的新方法。遵循PKI和IPK密码体制,在工业交换机上实现内嵌认证,将SM2非对称算法应用于交换机对接入终端的接入认证过程。介绍了交换机内嵌认证服务器和Windows/Linux认证客户端的实现方法和技术细节,并对内嵌认证功能、速度和抗仿冒功能进行验证。
中文引用格式: 刘建兵. 基于非对称算法的工控核心区内嵌认证技术[J].电子技术应用,2019,45(12):10-15.
英文引用格式: Liu Jianbing. Embedded authentication technology for industrial control core area based on asymmetric algorithm[J]. Application of Electronic Technique,2019,45(12):10-15.

0 引言

工业控制系统安全是国家网络安全的重要组成部分,等保2.0将工业控制系统安全纳入标准体现了国家保护工业控制系统安全的政策要求。工业控制系统也是关键信息基础设施的基础,探索工业控制系统网络安全的新方法,对于提高关键信息基础设施安全防护能力和网络安全,应对网络安全威胁有积极意义。

1 工业控制系统安全防护新方法

业界流行的工业控制系统安全防护技术和方案主要在外围(过程监控层以上)进行,工业控制系统核心区(图1中粗黑框部分:现场控制层+过程监控层)的防护仍然十分薄弱,甚至一片空白。通过在工业控制系统核心区交换机上强化安全功能,建立工业控制系统核心区的边界准入系统,是工控系统安全防护的新方法,该方法基于标准工业交换机,在不影响其基本通信功能的前提下,对接入交换机的计算机设备进行认证。结合交换机技术,保证通过认证的合法计算机数据包可以通过交换机转发,未通过认证的计算机交换机拒绝转发,在工业控制系统核心区建立最后防线以保护核心区安全。基于交换机的访问控制能力,依据核心区业务和设备的通信关系建立核心区访问控制策略,禁止正常业务以外数据通信。
图1摘自最新发布的GB/T 22239-2018《信息安全技术 网络安全等级保护基本要求》[1]附录G,其中的现场控制层和过程监控层是工业控制系统中与生产过程控制直接相关的区域,该区域功能正常仍能够保证基本的生产能力,即使外围区域遭遇网络攻击而失能,核心区域仍能维持业已设定的生产控制逻辑正常执行,因此工业控制系统核心区的安全才是工业控制系统安全的核心,只有核心区得到了有效的保护,才能保证工业控制系统的安全。

2 内嵌认证技术和安全交换机

内嵌认证(Embedded Authenitication,EA)是建构在网络接入层的新型认证体系,内嵌在每一个接入交换机内部的内嵌认证服务(Embedded Authenitication Server,EAS)通过认证数据同步协议(Authenitication Data Synchronization Protocol,ADSP)协同工作,每个接入交换机与接入终端通过接入认证协议AAP完成接入认证过程,实现网络边界的准入控制。这两个协议不是本文重点,详情略过。内嵌认证是安全交换机的重要功能,是实现工控系统核心区安全认证和准入的基础,也是安全交换机区别于普通交换机的主要特征。
内嵌认证包括嵌入认证和网络准入控制两个相关联的子功能,嵌入认证EA是指内嵌在接入交换机的身份认证服务,网络准入控制(Network Access Service,NAS)是对接入网络对象的入网控制。内嵌认证是将认证服务内嵌在交换机中实现的,通过内嵌认证将单纯执行通信任务的网络交换机转变为通信安全功能一体化设备,并在网络边缘分布认证服务。
内嵌认证系统和传统认证系统有很大的区别,如图2所示,左边是传统认证系统架构,右边是嵌入认证系统架构。首先,传统的认证系统是纵向的架构,由中心化的认证服务端Radius Server和认证客户端组成,在传统认证系统中,网络仅仅是通道,并不是认证系统的功能要素;内嵌认证系统是基于网络边界的横向架构,由多个平行部署的认证服务端EAS和认证客户端组成,并且每个EAS是内嵌在接入交换机内部的,使网络接入设备成为认证系统的不可或缺要素。其次,认证过程不同,传统认证系统可以认为是一种网络服务,是否认证是由应用决定的,接入设备在特定应用之前,不经认证可以先行接入网络,在应用需要时,才由客户端发起认证,认证终结在网络内部的认证服务器,即认证与网络无关(除802.1x);嵌入认证系统是和网络接入相关的认证,不是可选的网络应用服务,其认证是强制性的,在终端接入网络时即认证,先认证后入网是内嵌认证的主要特征之一;认证是由网络接入交换机发起的,终结在交换机内部的EAS上;第三,传统认证技术采用的认证标识、认证协议和算法都是国外标准,嵌入认证技术采用独立设计的认证标识和认证协议,基于非对称算法,特别是可以基于国密算法SM2实现;第四,传统认证技术主要是基于PKI体系,使用X.509标准的数字证书和SM2/RSA算法,嵌入认证技术主要采用密钥对,不依赖证书,不仅可以支持PKI公钥体制,使用X.509格式数字证书,还可以支持无证书的IPK体制。
从形式上来看,内嵌认证和802.1x认证技术有类似的地方,主要是都在接入交换机上控制终端的入网,但又有很大的不同,前者在架构上仍属传统架构,使用中心化的Radius Server,后者使用分布化的EAS;前者在Radius Server与客户端之间通过EAP协议完成认证过程,后者使用AAP协议。

3 基于国密算法SM2的内嵌认证技术实现

内嵌认证技术可以基于多种非对称算法实现,为了便于描述内嵌认证技术的主要流程和关键,仅以国密SM2算法和标识秘钥(Identity-Key,IPK)秘钥体系实现为例具体叙述内嵌认证的实现。

3.1 内嵌认证总体流程

基于非对称算法的内嵌认证技术,实现了工控系统核心区的终端认证接入。终端(即认证客户端)和内嵌认证交换机通过接入认证协议AAP,利用国密SM2算法,进行认证报文加解密交互实现终端认证准入,具体见图3。
终端在交换机上认证总体过程如下:
(1)交换机端EAS保存了合法用户公钥(Public Key,PBK),当终端接入边界交换机时,其mac地址被交换机发现,交换机端EAS即发起认证挑战,根据mac地址在本地公钥库中查询到对应的PBK;
(2)交换机端EAS未找到mac对应的PBK,不进行认证直接进入等待Hold超时状态;找到mac对应的PBK,进入下一步认证工作;
(3)交换机端EAS与认证客户端进行报文交互认证(包括EAS的认证挑战报文、客户端的挑战响应报文等);
(4)交换机端EAS对终端认证不成功,进入等待Hold超时状态;认证成功则打开通路,允许终端接入网络进行通信;
(5)首次认证通过后,ESA设置周期认证定时,按设定周期向客户端发起认证挑战(认证过程和首次认证相同),如果认证成功,则EAS保持通路打开状态,如果认证失败,则关闭通路,进入Hold超时状态。

3.2 交换机端内嵌认证服务实现

接入认证协议(Access Authenitication Protocol,AAP)是内嵌认证中实现接入对象到交换机认证准入的数据和通信规程。公钥体制PKI/IPK和国密算法SM2是实现AAP协议的关键,图4展示了EAS实现的主要认证过程,描述了SM2算法在其中的使用方法和作用。EA技术在密钥分发完成的前提下,EAS端保存了合法客户端的公钥PBK,私钥(Private Key,PRK)在客户端保存。
交换机端认证过程:交换机端EAS使用根据mac地址检索到的PBK对一个1 024 bit的随机数进行SM2加密,后将生成密文发送给mac地址对应的客户端主机,该随机数的MD5值与mac对应保存在指纹缓存中,等待客户端主机的回应。
一旦接收到主机的挑战响应,EAS取出数据包载荷数据,将其MD5值与指纹缓存中mac对应的指纹比对,如果相同,则认证成功,随即打开交换通路,交换机开始转发该主机数据包,完成网络接入,如果不同或者接收不到回应,交换通路一直处于关闭状态,交换机丢弃该主机所有数据包,拒绝接入网络。
首次认证通过后,EAS进入对客户端的周期认证,认证流程和首次认证过程类似,不再赘述。所不同的是,在周期认证失败或客户端离线后,EAS会关闭该接入主机的交换通道,并进入下一次认证的准备状态。

3.3 客户端认证实现

客户端认证过程是:主机客户端监听网络二层数据包,当收到发给本机的认证挑战数据包后,取出数据包载荷并用本机私钥PRK调用SM2解密函数解密数据,然后把数据用二层数据包发回EAS。图5展示了客户端软件的主要认证流程。

3.4 PKI/IPK下的密钥管理差异

从上述实现过程中可以发现,嵌入认证对SM2算法的使用与一般的加密过程不同,一般的加密过程是使用非对称密钥协商并加密对称密钥,再使用对称密钥对数据内容进行加密传输和解密;内嵌认证直接使用非对称密钥对数据内容进行加解密,即公钥加密,私钥解密,简化了加解密过程,一次交互即可完成认证数据传输,降低交换机端计算资源消耗,提高通信和认证效率。该方式采用256 bit密钥长度,认证数据长度设计为1 024 bit,十分适合SM2算法对分组数据的处理。认证数据采用随机数,每次认证过程的内容均不同,认证数据有效时间仅为一个认证周期(认证周期设定为10 s),从效果上看就是一次一密,攻击窗口时间很短,提高了抗攻击强度。
PKI密码体制下,数字证书是公钥的载体,EAS端需要导入和管理接入端的数字证书,认证过程中EAS直接使用公钥完成认证数据的加密。
IPK密钥体制下,公私钥对不依赖于数字证书,公钥是依据组合标识(Combinnation Identification,CID)和公钥种子(Public Key Seed,PKS)计算得出的,因此EAS端管理的不是公钥,而是客户端的组合标识CID。

4 工控核心区内嵌认证准入的仿真验证

4.1 仿真验证环境建立

典型工控系统核心区由工业交换机、上位机、下位机、服务器、打印机等组成,其中上位机、下位机和服务器属于通用计算机,运行通用操作系统,主要是Windows和Linux。仿真验证环境针对工控系统核心区网络环境构建,以安全交换机模拟标准网络交换机,以PC模拟工程师站、操作站和服务器等通用主机。
仿真验证环境由3台安全交换机和3台PC组成,采用3台VRV 6211安全交换机组成核心区网络仿真环境,3台PC安装Windows操作系统和内嵌认证客户端软件,验证终端在内嵌认证交换机上的认证准入实现,具体仿真验证环境见图6。

4.2 认证功能验证

验证步骤如下:
(1)按图6连接设备,PC1、PC2、PC3未安装认证客户端软件,使用ping命令验证连通性;
(2)PC1、PC2、PC3安装认证客户端软件,使用ping命令验证连通性;
(3)在PC1的认证客户端上导入私钥,使用ping命令验证连通性;
(4)在PC2的认证客户端上导入私钥,使用ping命令验证连通性;

(5)在PC3的认证客户端上导入私钥,使用ping命令验证连通性;

(6)在SW1上逐个删除PC1、PC2、PC3的公钥(CID),使用ping命令验证连通性。
验证结果如下:
(1)按步骤(1)测试,PC1、PC2和PC3相互之间不能ping通,三台PC都不能ping通三台交换机设备的IP地址;
(2)按步骤(2)测试,PC1、PC2和PC3相互之间不能ping通,三台PC都不能ping通三台交换机设备的IP地址;
(3)按步骤(3)测试,PC1在导入匹配的私钥后,能够ping通三台交换机的IP地址;
(4)按步骤(4)测试,PC2在导入匹配的私钥后,能够ping通三台交换机的IP地址,并能ping通PC1;
(5)按步骤(5)测试,PC3在导入匹配的私钥后,能够ping通三台交换机的IP地址,并能ping通PC1和PC2;
(6)按步骤(6)测试,在SW1上删除PC1的CID大约10 s后,PC1到其他两台PC和所有交换机的ping命令全部超时,继续删除PC2和PC3的CID,结果与PC1相同。

4.3 认证速度测试

验证步骤如下:
(1)按照验证环境连接设备,所有PC安装认证客户端并导入各自匹配的私钥,SW1上导入三台PC的CID;
(2)配置SW2,将PC2连接的端口流量镜像至PC3与SW3连接的端口,保证抓包工具wireshark(V 3.0.0)抓获PC3的流量;
(3)断开PC2与SW2的连接后,至少30 s后再恢复连接,重复进行10次,每次尝试PC2登录SW2,看是否登录成功;
(4)保持PC2与SW2的连接,用抓包工具wireshark(V3.0.0)持续抓包200 s。
验证结果如下:
(1)按步骤(1)准备环境,PC2能ping通所有交换机和PC3;
(2)按步骤(2)配置交换机端口镜像,并在PC3的wireshark上能抓到来自PC2的数据流量;
(3)按步骤(3)测试,在PC2登录SW2后拔下PC2的网线,至少30 s以后再插上网线,用wireshark抓取首次认证数据包,包特征为eth.type=0x876d,如此重复至少10次,每次抓获的数据包记录在表1中;
(4)按步骤(4)测试,在PC2首次认证成功、网络连通的情况下,用wireshark连续抓取数据包,持续200 s左右,包特征为eth.type=0x876d,抓包数据的时间数据记录在表1;
(5)数据处理,首次认证耗时为交换机SW2发出首个在线查询包时间与收到认证挑战回应时间的差值,T=Q-R,单位s,保留6位有效数字;周期认证耗时为交换机SW2发出认证挑战时间与收到挑战回应时间的差值,T=C-R,单位s,保留6位有效数字。

4.4 认证抗仿冒验证

验证步骤如下:
(1)按照验证环境连接设备;
(2)确认PC1、PC2、PC3已经通过认证,网络连通正常;
(3)在PC3上修改网卡地址为PC2的网卡地址,测试PC3网络连通性;
(4)在PC3上修改网卡地址为PC2的网卡地址,PC3的客户端导入PC2的私钥替代PC3的私钥,测试PC3的网络连通性;
(5)将PC2的硬盘克隆到PC3本地,并在PC3上通过工具修改网卡地址为PC2的网卡地址,查看PC3网络连通性。
验证结果如下:
(1)验证步骤(2)中,每台PC分别ping其他两台PC和三台交换机,确认三台PC已通过认证,网络通信正常;
(2)验证步骤(3)中,在PC3上修改操作系统mac地址,PC3对其他网元的ping测试全部超时,不能ping通直连的交换机SW3,PC3的接入认证失败;
(3)验证步骤(4)中,继步骤(3)后,在PC3上导入PC2的私钥,PC3对其他网元的ping测试仍然超时,对直连交换机SW3的ping测试依然超时,认证不能通过,PC2除了对PC3的ping测试超时外,对其他网元的ping响应正常,PC2认证未受影响;重启PC3后重复上述测试,结果相同;
(4)验证步骤(5)中,克隆硬盘安装到PC3启动后,修改操作系统为PC2的mac地址,PC3对其他网元的ping测试全部超时,包括直连的交换机SW3,认证失败。

4.5 验证结论

通过对工控系统核心区典型网络环境下通用计算机认证功能的验证,得出如下结论:
(1)内嵌认证功能对符合内嵌认证条件的合规交换机接入网络实现了认证和准入,认证功能确定,准入功能有效;
(2)认证速度:计算机首次接入网络的认证时间为2.79 s、周期认证时间为0.52 s(精确到1% s);
(3)可以抵抗常见的仿冒手段,mac地址仿冒、私钥盗用、硬盘克隆不能突破内嵌认证的认证和准入。

5 结论

内嵌认证作为采用非对称算法的新型认证准入技术,对提高网络安全能力具有现实意义。作为一项新技术还有待进一步发展和完善,目前的内嵌认证系统主要是对计算机类接入设备实现了强认证,非计算机类设备采用的依然是mac认证、mac/ip端口绑定等认证方式。后者采用的技术从认证的角度来看,可以说都是非可靠认证技术,有明显的可仿冒漏洞,mac/ip的假冒可以轻易骗过认证系统,这是需要继续解决的问题。笔者认为,嵌入认证技术未来的方向,是将认证客户端植入非计算机接入设备内部,使非计算机设备也能够采用和计算机设备同类的基于非对称算法的强认证。
嵌入式系统设备尚无非对称算法支撑,是阻碍其实现嵌入认证的主要障碍,如能将非对称算法植入嵌入系统作为基础功能,将为嵌入认证在嵌入式设备上的实现铺平道路,可喜的是国内已经有先锋厂商将密码芯片植入嵌入系统,这将极大地提高嵌入系统实现内嵌认证的能力。嵌入认证目前已经实现了Linux系统下的嵌入认证客户端,其对于采用Linux的嵌入系统设备有很好的可移植性,并已经与主要国产PLC和打印机厂商做了初步的探索,取得初步进展,突破可期;未来一旦实现了PLC和打印机的嵌入认证,工控系统核心区的全部系统组件即可基于内嵌认证技术建立工业控制系统核心区自主可控认的证准入系统,并可期望取得技术上的优势,这对于建立工业控制系统网络安全第二道防线,有效抵御网络攻击和威胁具有重要意义。

参考文献

[1] GB/T 22239-2018信息安全技术网络安全等级保护基本要求[S].2018.

作者信息:

刘建兵

(北京北信源软件股份有限公司,北京100044)

原创声明:此内容为AET网站原创,未经授权禁止转载。

 

(0)

相关推荐