苏彬庭 ,陈明志 ,许 力 ,周赵斌
(1.福建师范大学 网络与数据中心,福建 福州 350117;2.福建省网络安全与密码技术重点实验室,福建 福州350007;3.北卡科技有限公司,福建 福州 350000)
网络空间安全在我国的主权维护与安全防控中扮演着重要的角色,密码技术作为网络空间安全的“命脉”,是国家的战略资源和维护网络空间安全的根本。 然而,当前部分主流密码算法(例如 DES、SHA1、RSA 等)不仅存在安全性或使用不规范的问题[1-4],同时也无法满足我国对网络空间安全自主化要求[5]。 为解决这一问题,我国近几年加大国产密码算法(以下简称“国密算法”)研究工作,并取得了关键性进展。 随着工业化与信息化的深度融合,工业互联网安全已经成为网络空间安全重要问题之一。 工业互联网系统间的互联特性,将使其核心工业生产控制系统面临更多的安全威胁[6]。 工业互联网是新一轮工业革命和产业变革的一个重点发展领域,推进国密算法的研究与应用,从根本上解决终端信息存储、认证、数据传输等问题,对于保障我国工业互联网安全和实现网络安全的自主化目标具有重大意义。本文首先阐述了国密算法在工业互联网中的应用以及面临的挑战,针对工业互联网终端的身份识别问题,设计一种轻量的安全身份认证协议,该协议具备双向认证、前向安全性、支持用户撤销、抵抗攻击等安全特性。
国密算法在商用领域已经形成完整的基础型密码体系,如表 1 所示,包括 SM1、SM3、SM4、SM7、SM9 和 ZUC 等密码算法[7-10]。 这些算法不仅是获得国家批准的行业密码标准,其中 SM2、SM3、SM9 和ZUC 密码算法相继通过了ISO/IEC 信息安全分技术委员会评审,成为国际标准。 验证表明,SM2 的安全性要高于国际通用的 ECDSA 算法,SM3 的安全性与SHA-256 相当,但高于 MD5、SHA-1、SHA-224[10-11]。
表1 国产密码算法及其应用
2020 年 1 月 1 日,我国颁发了《中华人民共和国密码法》,明确规定“涉及国家安全、国计民生、社会公共利益的商用密码产品,在获得具备资格的机构检测认证合格前,不可销售或者提供”,规范了各类商用密码产品的使用和上市条件。 目前,各类需要密码算法的设备、软件和系统等产品,主要采用的是国际通用的密码算法,集成国密算法相对较少。
在工业互联网安全领域中,国密算法的应用主要体现在身份认证、访问控制、账户管理、数据安全等方面,涉及通信协议、认证协议、电子签名等关键技 术[10,12-16]。 通 常 利 用 SM1、SM4、SM7 和 ZUC 序 列等对称密码算法加解密数据,保证数据的保密性;利用SM2 和SM9 等非对称密码算法产生消息签名,保证数据的不可否认性;利用SM3 杂凑算法计算消息摘要,保证数据的完整性。 各大企业也研制出国密加密芯片、服务器密码机、云服务器密码机、VPN设备和加密硬盘等数据加密类产品,以及签名验签服务器和电子签章数据签名类产品。
国产密码在工业互联网中的应用面临着诸多挑战:
(1)研究起步晚,集成国密算法的产品较少。 我国在1996 年才开始重视国产密码算法的研究,研究起步较晚。 此外,商用密码检测机构偏少,影响产品的认证周期和成本, 延长了产品上市时间,降低了产品的竞争力,从而降低了各企业研发的产品集成国密算法的积极性。
(2)产品多数采用双芯片结构,效率低。 多数密码商用产品采用双芯片结构,如图1 所示,待处理的数据通过主芯片向国密芯片传输,经国密芯片进行密码运算后,再回传到主芯片进行业务操作。 这种结构导致产品计算和运行效率降低,同时增加数据在两个芯片传输过程的泄露风险。
图1 双芯片结构示意图
(3)信息系统无法支持基于国产密码算法的传输/认证协议。 目前工业信息系统主要是 B/S 架构,数据在客户端和服务器之间的传输安全性主要基于国际 SSL/TLS 协议。 虽然目前研究学者设计了各种基于国密算法的 SSL/TLS 协议[16-17],市场上也存在多款支持国密算法的浏览器(例如密信),但多数企业前期建设的信息系统无法支持,且改造难度大,导致信息无法基于国产SSL/TLS 协议进行传输。
本文在工业互联网环境下,从物联网终端的身份鉴别问题出发,设计一种基于国密算法的高效安全身份认证协议。
图2 工业互联网拓扑图
本文提出的安全身份认证协议只需2 次握手即可完成双方的身份认证,认证过程使用SM3、SM4确保数据的完整性和保密性。 如图2 所示,在终端加入网络前,认证服务器(Authentication Server,AS)通过安全通道向系统的接入点(Access Points,AP)和物联网终端预分发相关秘钥。
在系统初始化过程中,认证服务器输入安全参数k 执行密钥生成算法,为网络终端和接入点创建秘钥对。
(1)选择一大素数 q 和 p,E/Fp是定义在有限域Fp上的椭圆曲线。 选择 E/Fp上的一个阶为 q 的点P,生成循环加法群 G;
(3)杂凑算法 SM3(m):使用 SM3 算法计算消息m 的消息摘要;
(4)对 称 加 密 算 法 SM4(key,m):使 用 秘 钥 key,通过 SM4 算法加密消息 m;
(5)公开系统参数{q,p,E/Fp,P,G,PK}。
AS 根据系统参数为网络每个接入点创建公私钥对。 假设 IDAP为每个接入点的唯一身份标识,AS选择随机数计算 RAP=rAP·P,hAP=SM3(IDAP|RAP)和 sAP=rAP+s·hAP,将(sAP,RAP)通 过 安 全 通 道 发 给AP。AP 收到密钥后,计算公钥 PKAP=sAP·P 并定期广播 自 身 信 息(IDAP,RAP)。 AS 为 每 个 终 端 生 成 IDu,选择随机数将{IDu,a}通过安全通道发给终端存储,并计算终端的认证参数 A=a·P。
在系统的运行过程中,AS 会定期广播 User 的列表信息,包括IDu和认证参数A。当用户加入网络时, 需要先通过AP 的认证后, 才允许与业务网进行通信,认证过程如图3 所示。
图3 认证过程
(2)AP->User:AP 收 到 User 的请求 后 , 首 先 根据式(1)验证签名和时间戳的合法性。 如果合法,从用户列表中取出该终端的认证参数,选择随机数c ∈计算 C=c·P,并产生签名 σ=c+s·SM3(m),其2AP中 m={IDAP,IDu,RAP,C},将{m,σ2}发送给 User。
U ser 收到消息后,首先根据式(2) 计算公钥PKAP。 再根据式(3)验证签名 σ2的合法性,如果合法,则完成认证过程。 AP 和 User 根据式(4)生成会话秘钥。
(1)双向认证:AP 通过 User 的身份 ID 以及秘钥参数,验证User 的身份信息;User 利用系统公开的公钥PK 验证AP 的合法性,认证过程实现了双向认证。
(2)前向安全性:在终端请求认证时,认证消息加入了时间戳,而且对于同个终端,AP 每次生成的认证参数都不相同。 因此,即使 AP 或 User 秘钥参数泄露,也无法计算出之前使用过的会话秘钥。
(3)支持用户撤销:AS 和 AP 都维护了系统终端的ID 列表,如果需要撤销某个终端接入权限,只要在AS 做撤销操作,并将列表更新发送至AP 即可。
(4)抵抗攻击:认证过程加入了时间戳,并且认证双方在每次认证中,选择了不同的随机数作为认证参数,可有效抵抗重放攻击。
本文首先介绍了国密算法在工业互联网安全领域中的应用情况,并提出了当前存在的挑战。 其次根据国密算法在工业互联网应用中存在的问题,设计一种高效安全的身份认证协议,解决物联网终端加入工业互联网时,无法基于国密算法进行身份认证的问题。分析表明,该协议满足双向认证、支持用户撤销、抵抗重放攻击等安全要求,完成认证仅需2 次握手,认证效率高,可进一步加强工业互联网的安全建设,提高网络安全防护能力,具有良好的应用推广价值。