唐鹏毅,李国春,余 刚,钟 军,张英华,薛 路,赵子岩, 闫龙川,陈智雨,卢昌斌,罗 斌,高 松,刘建宏,
(1.科大国盾量子技术股份有限公司,合肥 230088; 2.国网电力信息通信有限公司,北京 100761;3.北京国盾量子信息技术有限公司,北京 100193)
量子保密通信是基于量子密钥分发(Quantum Key Distribution,QKD)的安全通信技术,其以量子力学原理和信息论为基础,能够从理论上严格证明安全性。目前,量子通信产业化主要分为2种实现方案:一种是严格按照一次一密绑定量子设备的点对点安全通信,该方案主要针对军用方面;另一种是不需要通信方绑定量子设备的量子密钥池方案,该方案解决密钥使用者对量子设备的依赖问题,结构上支持向云量子安全迁移,是如今商用系统普遍采用的方式。随着量子通信京沪干线的建成,量子安全通信已从模拟实验进入工程化实现阶段[1]。在频繁受扰动的复杂信道(如架空光缆、海底光缆)[2-3]中,如何保证量子通信的稳定运行,是目前量子通信工程领域的研究重点。
近年来,乌克兰电网大规模停电等重大安全事件频发,显示电力工控网等国家信息基础设施面临着持续的安全威胁,亟待提升其安全等级。电力系统工控网络的安全通信主要基于IPSec VPN实现。虚拟专用网络(Virtual Private Network,VPN)通过数据包目标地址的转换和对数据包的加密,在公网上建立专用通道并进行加密通信,是目前广泛应用的一种安全通信方式。另一方面,通信和网络攻击持续升级,更严峻的情况是随着量子信息技术的发展,人类即将进入量子计算和量子安全时代。通用量子计算机加上量子算法,能够显著加快对经典密码学算法的攻击效率。以公钥体系为例,采用Shor算法可以将大数分解和离散对数问题的算法复杂度从指数级降为多项式级[4],这会对如今通用的DH(Diffie-Hellman)与ECDH(Elliptic Curve Diffie-Hellman)密钥交换算法的安全性造成严重威胁。以对称密码体系为例,Grover算法能将搜索复杂度从O(N)降为O(N1/2),等效于密码长度减半。可以看出,依赖于上述密码学技术的常规VPN体系在量子安全时代将不可避免地面临严峻威胁,为此,需要提前融合量子密码技术以对抗未来的攻击。
QS-KMS结构如图1所示。相比传统系统,QS-KMS扩展了3种特有的密钥模块:QKD产生对称密钥,量子随机数发生器(Quantum Random Number Generator,QRNG)产生量子随机数,使用格密码等算法的后量子密码技术(Post-Quantum Cryptography,PQC)对经典密码学实现的密码增强模块[5]。QS-KMS主要支持3类应用:对称密钥的提取,云安全存储,安全签名。系统安全等级分为2级:量子安全(物理级)及后量子安全(算法级)。拥有QKD设备的客户端可以实现量子安全性。拥有Ukey的客户端,可以通过定期从QS-KMS服务域内站点充注QRNG产生的量子随机数与QKD组建的城际网络建立安全连接,以实现后量子安全。在不具备QKD和Ukey或者量子网络受到攻击出现异常的情况下,仍可以通过PQC密码增强方案,例如密钥交换、签名,实现合理水平的安全性增强。
图1 QS-KMS结构示意图
经典的IPSec采用IKE协议实现认证和密钥交换[6]。为保障VPN在量子计算下的安全性,通常对IKE协议进行改造,使用QKD量子密钥替换原有基于公钥体系的认证和密钥交换,从而完成认证与会话密钥协商环节[7-9]。
区别于上述将VPN与QKD设备绑定的方案,本文方案采用QS-KMS实现量子设备与VPN等密钥应用者的解耦合,使应用者可以更灵活地面向业务优化结构和接口。QS-KMS与VPN功能的结合过程如图2所示。量子密钥层QKD设备在两地实时地分发对称密钥,KM服务器获取并保存QKD产生的对称密钥,多个KM服务器协同工作组成QS-KMS,提供量子密钥或后量子增强密钥供应用层VPN功能模块申请使用。应用层VPN通过通用层间接口(量子密钥交互模块)向KMS层申请、获取对称密钥,并基于量子安全密钥进行认证与加解密通信。QRNG模块向QS-KMS提供量子随机数,作为QS-KMS的认证密钥通过Ukey传递给VPN,实现VPN与QS-KMS之间的安全通信。QS-KMS中分别保存QKD产生的待提取的会话密钥、需长期保存的QRNG产生的认证密钥,以及密钥使用者(VPN等)在申请密钥时要求KMS长期保存的会话密钥。综上,QS-KMS继承传统KMS功能,应用方式和接口协议完全兼容KMS,其创新点是扩展集成了量子密钥层的多种密钥生成方式,包括不同量子编码协议(偏振、相位、时间相位、MDI等)或不同厂商QKD设备,集成量子随机数或抗量子密码增强方案产生的密钥,随密钥块增加标签字段标注密钥来源方式,可以供经典层根据不同的安全等级有选择地申请使用。
图2 基于量子密钥的VPN系统结构
本文方案将整个量子密钥分发网络抽象封装到QS-KMS底层,经典VPN网络与量子密钥的结合主要是IKE协议与KMS的结合,分为认证和密钥交换2个部分。VPN等经典层应用可以在附近的密钥管理服务器注册认证后接入量子网,通过密钥管理服务完成与其他在量子网注册的应用之间的密钥交换。
在KMS上注册认证时,VPN之间建立安全信道的认证均通过对称密钥实现。
KMS与VPN服务器之间可以通过设备信息与预置认证密钥(IDA,KA)进行认证。VPN服务器选择所属域密钥管理服务站点接入,认证密钥通常采用UKey传递(IDA,KA)的方式定期更换。其中,(IDA,KA)是VPN_A连入量子网a节点的身份证明及安全获取量子密钥的保证,通过(IDA,KA),VPN_A可以申请量子网内其他节点与a节点之间的对称密钥。
VPN服务器之间的认证(替换IKE协议安全信道的建立阶段)均采用预置对称密钥作为初始认证密钥,当认证密钥耗尽需要更换时,密钥管理模块KM会使用QKD产生的量子密钥更新认证密钥。VPN服务器会向密钥交换模块请求从KM获取新的认证密钥,该过程同第3.2节密钥交换过程。
受训人员使用VR手套与场景交互,手套与按钮、油门手柄发生碰撞,触发交互对象的操作动画。VR手套与上述物体交互时,操作对象的动画播放与VR手套的操作不一致;例如使用VR手套拨动油门手柄时,手柄穿透VR手套且未及时播放动作动画。
VPN之间、KM之间的认证过程相同,均采用双向认证方案,只有拥有认证密钥的双方才能正确地进行加解密,并通过挑战应答的方式判断对方的身份。
将IPSec VPN中的D-H密钥交换替换为从KMS申请量子密钥[10],如图3所示。在VPN的密钥交换模块中增添一个环形缓冲区,将经典VPN密钥交换改为共同协商从缓冲区提取密钥片段。作为量子密钥分发网的节点,KMS内设置了密钥池来缓存2个KM服务器之间的对称密钥,QKD设备向密钥池中补充密钥。当VPN环形缓冲区内密钥消耗量超过预定义的一次密钥提取申请的密钥量时,VPN便会向KM服务器发起密钥提取请求,并用提取的密钥覆盖已使用的密钥。
图3 量子密钥交换
当VPN双方相互认证成功并且均获得KMS认证后,即可请求KM服务器为它们推送密钥KA,B[11]。请求与推送过程如下(在以下协议设计中,KM服务器密钥池包含由后量子算法增强经典密码算法、量子密钥分发算法产生的对称密钥):
1)VPN_B->VPN_A:IDA‖IDB‖Ag。VPN服务器B向VPN服务器A提出补充密钥请求,协商补充密钥的生成算法Ag(选择量子密钥分发算法),并发送给服务器A。
2)VPN_A->KM_A:IDA‖IDB‖L‖Ag。VPN服务器A向KM_A提出需要和VPN服务器B协商密钥,则向KM_A发送双方VPN服务器的ID、需要的密钥长度L、密钥生成算法Ag。
3)KM_A->KM_B:E(KKM,L‖IDA‖IDB‖Ag‖R‖Check)。KM_A生成密钥块标识R,然后将IDA、IDB、密钥长度L、生成算法Ag、密钥标识R通过两地KM之间的主密钥加密发送给KM_B。KM_B根据KM_A所指定的长度L、生成算法Ag锁定对应的密码片段,验证校验值是否为Check,并将该片段标记为IDA‖IDB‖R,然后将校验结果反馈给KM_A。
4)KM_A->VPN_A:E(KA,KA,B‖R)。收到校验正常的反馈后,KM_A使用VPN_A与KM_A之间的认证密钥KA加密的密钥KA,B和密钥块标识R,发送给VPN服务器A。
5)VPN_A->VPN_B:E(KCAB,R)。VPN服务器A解密得到密钥,并将密钥块标识R加密发送给VPN_B。
6)VPN_B->KM_B:E(KB,IDA‖IDB‖R)。VPN_B将IDA‖IDB‖R加密发送给KM_B,申请提取对应的密钥。
7)KM_B->VPN_B:E(KB,KA,B)。KM_B将VPN_B与KM_B之间的认证密钥KB加密的密钥KA,B推送给VPN_B。
由于电网等工控网络中往往需要对网络传递的指令或者数据进行备份与审核,在VPN服务器中保存明文指令或会话密钥均需要提升服务器安全级别。在QS-KMS中可以使用云安全模块的安全存储功能解决这一问题:使用KMS的VPN服务器可以在向QS-KMS申请会话密钥时,注明该段密钥需要KMS备份。因此,VPN服务器可以将密文和密钥片段的标识符转发给审核机构,审核机构从KMS中获取对应密钥后解密并进行数据审核。审核机构同样需要Ukey获取量子随机数与KMS认证,并加密传输的审核密钥。
外界环境干扰或攻击会对量子网络造成影响,导致量子密钥分发成码率产生波动,最终使其无法稳定地输出量子密钥。一般采用密钥池(密钥缓存)的方法来解决该问题。但实际中多数为长距离架空光缆的电力通信网络,受环境影响剧烈,恶劣天气等因素会导致其日均成码率存在较大波动,普通的密钥池策略难以为其提供稳定的密钥输出条件。因此,为保证电网应用中VPN的长期稳定工作,本文在KMS中加入动态密钥管理策略,以解决恶劣天气等因素造成的部分链路量子密钥不足问题,在此基础上,设计一种集成后量子密码保密增强方案,作为QKD中断后的应急备用措施。
KMS中每个KM服务器代表一个区域性的密钥供给站点,可以接入多个QKD设备,分别为不同的密钥池补充密钥。一对QKD设备与两地KM中的一对密钥池对应,KM可以根据当前密钥需求量对密钥生成链路进行调节[12-13]。如图4所示,A、B、C处3个KM下挂QKD组成两两相连的密钥分发网。如果AB之间的密钥不足,而AC、BC之间的密钥池内密钥充足,则KM会通过AC、BC之间的密钥中继向AB之间的密钥池补充对称密钥:KM_A直接将密钥池AC的部分密钥转移到密钥池AB并通知KM_C,KM_C将该部分密钥通过从密钥池BC中取出的密钥一次一密加密发送给KM_B[14],KM_B从密钥池BC中取出对应密钥并解密,然后将解密结果存入密钥池AB。
图4 KM中的密钥池对应关系
KM接收到提取密钥请求时查询当前剩余的密钥量,若KM密钥池中的剩余密钥不足40%,KM则向其他节点提出通过密钥中继补充密钥的请求,根据各节点给出的密钥量反馈选择一条或多条密钥池密钥量均超过70%的链路,然后通过密钥中继补充密钥。
对于一般VPN服务器之间的数据量而言,量子密钥分发的效率难以满足一次一密要求,因此,当VPN与量子密钥结合时,仍沿用VPN原有的加解密和更换密钥的策略。当因特殊原因导致KM密钥池中的密钥消耗过快,KM无法通过量子网络的调节补充充足的密钥时,会通知VPN量子密钥不足,并切换到使用后量子密码增强密钥进行加密通信的模式。
QS-KMS使用liboqs库[5]实现多种效率高于经典ECDH算法的后量子密码算法。在密码增强方案中,默认采用Newhope算法[15]产生的密钥与ECDH算法生成的密钥进行异或运算,结果作为后量子安全密钥供VPN提取使用。
将本文QS-KMS与VPN结合的方案应用于电力通信中的抗干扰量子通信系统实验。量子层设备为40 MHz快速偏振反馈方案QKD,实验环境选择的链路为合肥市肥东变电站至肥西变电站之间共68 km的架空光缆,测试周期为16 d,实验时以电网中QKD设备在强环境干扰下的真实成码率支撑QS-KMS和VPN传输业务。经过优化与测试,该段链路偏振编码QKD每小时平均成码率的波动范围为1.1 Kb/s~3.8 Kb/s,每日平均成码率大于2 Kb/s[16]。随后,对1 GHz高速时间相位编码的QKD进行测试,选择的链路为上海市北电力与灾备中心的架空光缆,全程75 km,其中,架空部分长55.5 km,测试周期为28 d。测试结果为:1 h成码率波动范围在1.82 Kb/s~5.63 Kb/s,总平均成码率为4.238 Kb/s。在上述实地测试案例中,QKD性能为Kb/s量级,以128 bit密钥长度为例,每分钟更新10次作为目标,对应于每分钟1 000次以上的更新速度,量子密钥能够支撑100个VPN实例同时运行。
在嵌入式模块LS1043上测试PQC算法模块的运行效率。其中,经典的ECDH算法密钥产生速率为75 Kb/s,Newhope算法密钥产生的速率为184 Kb/s,后者能够实现对经典算法的密钥增强,增强后整体密钥产生速率为75 Kb/s,单片卡足以满足中等规模网络的VPN应用需求,且可以根据需要对多卡进行并行扩容。
基于QS-KMS的统一后台服务能够为VPN提供灵活、可重配的密钥来源与更新速率,面向电网实际业务进行应用实验,针对不同业务安全性需求,按照业务安全等级配置相应的VPN密钥使用策略,然后将量子密码和量子通信技术有效地融入到电力通信网络中,从而提升网络管理和信息传输的安全等级[17-18]。
本文通过QS-KMS与IKE协议的融合,在量子密钥管理中扩展加入密钥动态调节和后量子密码算法,实现了持续稳定运行的量子安全VPN。将该量子安全VPN的实现方案及实验设备在区域电网实地场景中进行测试,结果表明,该方案能够满足电网控制通信的需求。今后将针对电网、工控网、大数据中心等实际运营环境,进一步完善QS-KMS系统结构,设计并集成量子安全签名和后量子安全签名等诸多方案,以建立工控网络中完善稳定的量子安全通信体系。
备注作者唐鹏毅与刘建宏对本文成果作出同等贡献。