宁黄江 郭翔宇 刘芮汐 白利芳
(中国软件评测中心(工业和信息化部软件与集成电路促进中心),北京 100048)
工业互联网是新一代信息技术与工业经济领域深度融合形成的新兴业态,它将工业系统与高级计算、分析、传感技术及互联网高度融合,是一种能够实现将人、机、物全面互联的新型网络基础设施[1]。随着工业互联网成为新基建的组成部分,工业互联网已成为国家关键信息基础设施的重要组成部分。
没有网络安全就没有国家安全,没有信息化就没有现代化,党的十八大以来,以习近平同志为核心的党中央重视互联网、发展互联网、治理互联网。工业互联网的安全可控是确保其在各生产领域能够落地实施的前提,更是产业安全和国家安全的重要基础和保障。密码技术作为保障工业信息安全的基础性技术,在工业互联网网络体系、平台体系、应用体系建设和网络安全防护体系中占据着举足轻重的地位。我国高度重视国产密码算法尤其是轻量级密码算法的研究及其在工业互联网领域的应用。国产商用密码算法已经形成了一套完整体系[2],并且由我国自主设计的ZUC法已经成为第三代合作伙伴计划(3GPP)中的4G国际标准,SM2/SM9数字签名算法、SM3密码杂凑算法、SM4分组密码算法,SM9标识加密算法也已达到国际先进水平,并且通过了国际标准化组织(ISO)和国际电工委员会(IEC)的认证,现已成为国际标准。
本文首先阐述密码技术在工业互联网平台基础设施建设、数据全生命周期保护、访问控制等方面的应用情况;其次,分析了目前密码技术在工业互联网应用中所存在的问题;再次,针对工业互联网终端的身份识别问题,设计了一种基于国密算法的安全身份认证协议;最后,分析该协议的双向认证、用户匿名性,并能抵抗假冒攻击等安全特性。
在工业互联网平台基础设施建设中,需要用到密码服务、密码管理和密码应用。在IaaS层,密码应用在租户数据和虚拟机镜像的数据加密保护方面;在PaaS层,密码应用在数据加解密、安全认证、授权管理和协同签名等方面;在SaaS层,密码应用在为工业互联网用户提供安全接入、数据加密、数据防篡改、工业敏感数据保护等方面,例如采用SM2算法和SM3算法进行数字签名和完整性校验,并提供数据原发证据和数据接收证据,实现抗抵赖保护。
在工业互联网数据全生命周期安全保护中,国产密码算法在保障系统和数据的机密性、完整性、可用性时发挥着重要作用,包括在IaaS层的基础资源池和设施建设、PaaS层的数据挖掘和海量数据汇聚分析、SaaS层的工业软件和微服务开发应用中都需要应用密码算法进行数据的存储加密、通信加密、完整性校验。使用SM1、SM2、SM3、SM4、SM7、SM9、ZUC等国产密码算法是保证我国工业互联网网络安全、平台安全、数据安全的重要途径。
在工业互联网身份鉴别与访问控制中,网络平台的边缘层、IaaS层、PaaS层和SaaS层中的身份鉴别与访问控制都需要应用密码算法来保障网络安全。工业互联网的边缘接入层存在海量的设备接入平台,采用白名单机制、强制访问控制等安全机制可以对接入的主体和客体进行细粒度的访问控制;在IaaS层、PaaS层和SaaS层,可以应用基于私钥签名的SM2算法对服务器用户、登录用户进行身份认证和鉴别[3]。应用SM2算法和强访问控制等安全机制能够更好地实现工业互联网中的身份认证和鉴别,同时基于主体身份和客体属性的细粒度访问控制,进而提升工业互联网设备接入安全性。
工业互联网中存在海量的工业控制协议,种类多达千余种,但是大多都缺少安全机制,不能够很好地适应工业互联网系统中各参与组件之间的泛在连接[4]。工控通信协议或规约在其设计时通常只强调通信的实时性和可用性,普遍缺乏对安全性的考虑,如欠缺足够强度的授权、认证、加密等安全保护手段。特别地,对于工控系统中的无线通信协议而言,其在缺少安全机制的情况下会极其容易遭到第三者的窃听,同时也大大增加了欺骗性攻击发生的可能性[5]。
现有工控系统在使用有风险的密码算法,以及有风险的密码算法提供的不安全密码服务,比如容易被破解的MD4、MD5、SHA-0、SHA-1、RSA-512、RSA-1024、DES、SKIPJACK、RC2等密码算法,这些算法均己被警示过存在不同程度的安全风险。一些系统运营者和开发者为节省资源或节约成本,在开发工作中存在有意忽视密码技术,或者规避使用密码产品的情况,那么此类系统中信息的机密性、真实性、完整性和不可否认性等安全特性必然会缺乏相应密码算法、协议的支撑,从而致使整个信息系统缺乏安全保障[6]。
工业互联网网络安全自主可控的核心和关键在于具备先进的密码算法和技术产品,然而我国互联网信息技术在发展过程中,在某些领域(芯片、操作系统等)长期依赖西方发达国家技术体系,直至当前,我国工业信息化建设中的“信息孤岛”问题也未能得到妥善解决。我国研究密码算法的基础薄弱,研究密码技术起步较晚,与发达国家在密码行业的发展相比还存在一定差距,类似于密码芯片等关键硬件产品和技术长期受制于西方国家的垄断[7]。
为有效解决密码技术在我国工业互联网中存在的问题,在研制自主创新技术的激励下,本文应用国产密码算法设计了一种工业互联网安全身份认证协议,并且该协议只需2次握手即可完成双方的身份认证。认证过程应用SM3、SM4算法确保数据的完整性和保密性。设计过程共分为3个阶段,分别为初始化阶段、注册阶段、认证阶段,所涉及符号如表1所示。
表1 符号说明
在该阶段,服务器RS选择私钥s,选择一大素数q和p,定义在有限域Fp上的椭圆曲线函数为E/Fp,选择E/Fp上的一个阶为q的点P,生成椭圆曲线循环加法群G,杂凑算法SM3和SM4对称加密算法。服务器公开系统参数{q,P,E/Fp,SM3(m),ESM4(l,m)/DSM4(l,m)}。
在这一阶段,用户将自己的身份信息通过安全信道发送给服务器进行注册。具体执行过程如下:
步骤1:用户选择他的身份IDu,并从有限域Fp中选择一个随机数xu,然后通过一条安全信道将消息{IDu,Nu}发送给服务器,其中Nu=SM3(m1),其中m1={IDu,xu}。
步骤2:服务器收到消息后,计算Lu=SM3(IDu⊕s),Su=SM3(s),并且将消息{Su,Lu}通过安全信道发给用户存储。
当一个合法的用户加入网络时,需要先通过服务器的认证才会建立起会话密钥,认证过程如图1所示,详细的步骤如下:
图1 认证阶段
步骤1:用户U选择一个随机数au,并且计算Au=auP,使用密钥Su,通过SM4算法对消息{IDu||Au}进行加密AIDu=ESM4(Su,IDu||Au)和Xu=SM3(m2),其中m2={IDu,Au,Lu}。然后在公共信道上发送请求消息{AIDu,Xu}给RS。
步骤2:当RS收到请求消息{AIDu,Xu}后,RS计算Su=H(s),并使用Su,通过SM4算法对消息{AIDu}进行解密DSM4(su,AIDu)=(IDu||Au),然后RS计算Lu=SM3(IDu⊕s)和X'u=SM3(m'2),其中m'2={IDu,Au,Lu},验证计算所得的X'u是否与Xu相等。如果不相等,RS马上终止此阶段。否则,RS选择一个随机数br,并且计算Br=brP,Kur=brAu=aubrP,和Xr=SM3(m3),其中m3={Kur,Br,Lu}。最后RS发送消息{Xr,Br}给U。
步骤3:当收到消息{Xr,Br}后,U计算Kur=auBr和X'r=SM3(m'3),其中m'3={Kur,Br,Lu}。U通过判断X'r和Xr是否相等来验证消息的正确性,如果正确,则U和RS完成认证过程。U和RS生成会话密钥SKur=SM3(m4),其中m4={IDu,Au,Br,Kur,Lu}。
服务器通过用户的身份IDu、密钥参数Su以及密钥、身份参数Lu,验证用户的合法性;用户利用公钥PK以及密钥、身份参数Lu验证服务器的合法性。因此,本方案认证过程实现了双向认证。
随着用户对自己的隐私信息的重视,在身份认证方案中实现身份匿名越来越重要。因为攻击者可以获取用户和服务器之间的消息,如果知道用户身份就可以顺藤摸瓜找到该用户更多重要的信息。本方案确保了攻击者不会从任何窃取的认证消息中发现用户的身份。因为U从来没有在公共信道上发送他的身份IDu给RS,用户U使用随机数对身份进行保护生成AIDu=ESM4(Su,IDu||Au),并且发送{AIDu,Xu}给RS。由于攻击者不知道密钥Su的值,所以不能得知U的身份。综上所述该方案可以实现用户匿名性。
在该攻击中,攻击者试图冒充用户或者服务器与另一方进行通信。显然,在本方案中攻击者不能冒充U或者RS中的任何一方,因为攻击者不能伪造消息{AIDu,Xu}和{Xr,Br}。具体来说,如果攻击者想要冒充U,他首先选择一个随机数去生成请求消息{AIDu,Xu}。需要攻击者计算AIDu=ESM4(Su,IDu||Au)和Xu=SM3(IDu,Au,Lu),也就是说,攻击者需要知道Lu=SM3(IDu⊕s)值才可以冒充U发送一条有效的请求消息。攻击者是不可能知道RS的私钥s和U的身份IDu,攻击者不能通过RS对他的认证。同样的,攻击者也不能伪造消息{Xr,Br}使得U信服。综上所述本方案可以有效地抵抗用户/服务器假冒攻击。
本文介绍了密码技术在工业互联网中的应用情况,分析了密码技术在工业互联网应用中目前所存在的问题,针对工业互联网终端的身份识别问题,设计了一种基于国密算法的安全身份认证协议,该协议认证过程应用国密算法SM3、SM4确保数据的完整性和保密性。最后,分析表明该协议具备双向认证、用户匿名性,并能抵抗假冒攻击等安全特性,可进一步加强工业互联网终端身份识别安全。