APP下载

QKD 后处理安全防护机制*

2022-10-16倪奕

通信技术 2022年9期
关键词:后处理攻击者密钥

倪奕,陈 雷,胡 鑫

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

在量子密钥系统中,使用诸如BB84 协议[1]之类的量子密钥分配(Quantum Key Distribution,QKD)协议,需要QKD 设备之间经典通信信道的支持才能产生量子密钥并完成量子密钥的分发。因此,整个QKD 系统的安全威胁,不仅来自量子领域,即量子相关攻击,还可能来自经典网络,即传统的网络攻击。因此QKD 系统的经典部分,即QKD 后处理协议的安全性,会影响整个QKD系统的安全性,所以有必要对QKD 后处理协议进行安全脆弱性分析,并据此提出相应安全防护机制,提升量子QKD系统的整体安全性。

1 QKD 后处理协议简介

基于量子力学的基本原理[2],量子密钥分配能为配对的两个QKD 设备之间提供一种能够产生安全密钥的方式,其过程包含量子信息传输和后处理两个阶段。量子信息传输主要完成两个QKD 设备之间量子态的分发、传递以及测量过程。后处理[2]主要包括筛选、参数估计、纠错、保密增强等几个过程,具体的工作流程如图1 所示。

图1 QKD 后处理过程

(1)筛选:即基矢比对过程,指的是QKD 设备之间通过经典信道比对双方在操作光子时所使用的基矢。当双方选用不同的基矢时会得到不同的信息,这些信息需要进行丢弃。当两个设备选用一致的基矢时会得到一致的信息,通过该信息产生密钥,即筛后密钥(sifted key)。

(2)参数估计:通过经典信道公开比对一部分sifted key 来统计其误码率,可以初步判断sifted key 是否应丢弃或者可以作进一步处理。参数估计可以算是纠错的前置动作,纠错过程中也会进一步统计sifted key 的误码率,因此纠错流程中一般也会包含参数估计。

(3)纠错:由于QKD 设备之间得到的sifted key 可能不完全相同,为使双方的密钥相同,需要使用相应纠错码对密钥进行纠错,得到相同的密钥。

(4)保密增强:为清除攻击者所窃取的信息而对sifted key 进行压缩的过程。通信双方根据估算的信息泄露量上限,选择适合的Hash 函数对纠错后的密钥进行压缩,得到安全的最终密钥。

2 QKD 后处理安全分析

以下内容主要从信息安全[3]要素出发对QKD后处理协议的安全脆弱性进行分析研究。

2.1 机密性安全分析

QKD 后处理的机密性指QKD 后处理协议数据除通信双方外,不泄露给其他非授权设备。通过分析,QKD 后处理协议可能存在以下脆弱性。

2.1.1 非授权用户截取协议帧

由于QKD后处理协议规范中并没有明确提及,在通信双方Alice 和Bob 开始通信之前,对对方进行身份认证授权的过程中,Alice 在收到QKD 后处理命令或者应答帧时,无法确认该帧是否真的是由Bob 所发送,以及Bob 在收到发送端传送的数据帧时也无法确认该帧来源的合法性。QKD 后处理协议标准的开放性,也为攻击者伪造数据包提供了便利,攻击者可以冒充某个合法QKD设备的地址进行欺骗攻击。

2.1.2 缺乏协议数据加密措施

QKD 后处理协议标准由于在协议数据帧中没有交互密钥数据信息,没有充分考虑协议数据帧信息泄露的问题,因此并没有对数据帧单元进行加密,并且由于经典信道的开放性,QKD 协议数据泄露的可能性急剧增加。攻击者只要在QKD 系统中某条通信链路或某个QKD 设备上进行通信监听、数据截取,就可以获得在QKD 网络中传输的信息。因为QKD 后处理协议数据没有进行加密,攻击者能轻易对获取的协议数据进行各种分析、篡改等恶意处理,可能对量子密钥分发业务造成不利影响。

2.2 完整性安全分析

QKD 后处理的完整性指后处理协议数据的安全、正确与有效,即未被未授权的第三方修改。通过分析,QKD 后处理协议规范在信息完整性校验以及报文会话模式等方面可能存在脆弱性。

2.2.1 没有可靠的信息完整性校验手段

由于没有强制要求使用的校验和算法,QKD后处理数据帧校验和一般采用比较简单的校验和算法,对数据帧的帧长度和交互数据字段进行校验。这样处理虽然能够确保QKD 协议数据的正确性,但不能确保其不会被攻击者所篡改。而且QKD 后处理协议数据帧中没有对协议字段进行加密,攻击者可轻易实现对协议字段数据的篡改,并重新计算校验和并完成协议帧的封装,这样合法QKD 设备就难以发现后处理协议数据帧被篡改,而对其进行正常处理,从而可能对设备造成损害。

2.2.2 协议帧格式简单、模式易分析

QKD 后处理协议在设计的时候就已经确定了在运行过程中需要完成的各个阶段,每个阶段需要实现的各项功能,以及每项功能涉及哪些交互数据帧。总体来说,QKD 后处理协议报文数据帧格式简单、构造模式易分析,具有统一的通用结构,不同类型数据帧的变化主要来自“交互数据”部分的“消息体”域的不同。攻击者在对QKD 系统进行了解,并对QKD 后处理协议标准进行分析的基础上,便能较为容易地掌握其协议交互过程以及协议数据命令帧/响应帧的帧结构,为构造并封装具有恶意目的的后处理协议帧打下基础。

2.3 可用性安全分析

QKD 后处理的可用性就是指QKD 后处理相关服务或数据可被正常访问、使用以及在异常情况下能完成故障恢复的能力。

由于QKD 后处理协议没有规定对通信双方身份的认证以及对协议数据的加密,攻击者可以通过中间人攻击方式,监听、窃取并伪造后处理协议帧或者停止转发协议交互数据等方式破坏QKD 设备之间的通信过程。或者对QKD 设备进行端口扫描,在获取后处理服务端口后进行拒绝服务攻击,从而使得QKD失败,甚至造成QKD 设备瘫痪等后果,从而破坏QKD系统信息和数据交互,以及服务或设备的可用性。

2.4 可认证性安全分析

可认证性是指通信双方在进行通信之前相互确认对方身份,只有双方身份确认之后,才开始正式的通信过程。

在实际的QKD 系统中,两个QKD 设备在进行后处理之前,没有强制要求对对方身份进行认证,可能造成非法用户冒充合法用户的情况出现。另外,在实际QKD 系统中,除量子信道还有经典信道,量子信道可由量子基本原理保证其安全性,而经典信道可由身份认证机制来保证其安全性。当前身份认证主要使用Hash 函数实现,并利用QKD 设备之间共享的初始密钥产生认证码来完成。然而,Hash函数存在被破解的风险,而且QKD 设备之间共享的初始认证密钥也可能随着系统的运行而耗尽,从而整个QKD 的安全性就难以保证。

3 QKD 后处理安全验证技术分析

本部分基于上一节从信息安全要素出发,在对QKD 后处理协议的安全威胁分析研究的基础上,分析QKD 后处理协议的安全验证方法。本文分析主要参考中间人攻击[4],如图2 所示。所谓QKD 后处理中间人攻击是指攻击者可以窃听QKD 设备之间传输的信息,并分别冒充正常通信的QKD 设备与对端设备进行通信。

图2 中间人攻击

3.1 机密性验证方法

3.1.1 信息监听

如果两台QKD 设备之间进行后处理过程时,没有对协议帧进行加密,那么使用常见的通信监听工具即可轻易窃取QKD 后处理协议数据。QKD 后处理协议是公开的协议,攻击者能够轻易查找并获取其协议规范,从而了解其交互流程以及协议帧结构。而且在实际QKD 系统中,后处理协议帧数据未进行加密传输,这也为攻击者分析协议帧数据创造了条件,即攻击者可以使用经典网络抓包程序抓取QKD 设备之间传输的后处理协议帧数据,并展开数据分析,从而获取其感兴趣、可利用的信息。

3.1.2 欺骗攻击

QKD 后处理协议标准采用命令/响应式规约,一个命令帧对应一个响应帧,通信主动权在发送端。在两个QKD 设备之间建立后处理通信信道后,攻击者作为中间人接收到发端设备传输的后处理协议帧后,不直接转发,而是按攻击者意图伪造一个新的后处理协议帧发送给接收端,干扰或者破坏接收端的正常业务处理,达到攻击者欺骗攻击的目的。

3.2 完整性验证方法

通过前述完整性安全分析,QKD 后处理协议存在协议数据帧模式易分析以及信息完整性校验弱等安全脆弱性问题。攻击者在侦听、窃取QKD 设备通信数据之后,根据QKD 后处理协议的先验知识,对其协议数据帧进行分析,就能确定协议数据帧是属于QKD 后处理过程的某个阶段、某个命令或响应帧,从而获取攻击者可以利用的协议数据。并且可以伪造和篡改特定后处理协议数据帧达到干扰、攻击正常的协议处理过程的目的。攻击者之所以能够伪造或篡改,是因为QKD 后处理协议数据帧的完整性校验和算法实现较为简单,可以较为容易地破解其算法,从而可以对内容篡改后的后处理数据帧重新计算校验和,使得接收方不能仅仅通过后处理协议报文的格式检查,发现攻击者的篡改行为。

3.3 可用性验证方法

3.3.1 中断会话

在QKD 后处理过程中,攻击者可以通过以下方式来中断Alice 和Bob 已经建立起的会话连接。这些攻击方式的前提均是攻击者完成中间人攻击步骤,以“透明代理”的方式插入到了Alice 和Bob的通信之中,即假冒接收方与发送方进行通信,假冒发送方与接收方进行通信,而通信双方均不知晓攻击者Eve 的存在。

(1)伪造响应攻击:作为“中间人”的攻击者在截取后处理协议帧后,可以冒充接收设备伪造后处理协议响应帧作为对发端设备命令帧的应答,这样接收设备就始终处于无响应帧接收的状态,则可能造成接收端设备后处理协议处理状态机错乱,从而干扰破坏正常QKD 设备之间的通信过程。

(2)截取重发攻击:攻击者作为“中间人”在截取报文之后,可以对被截取报文字段进行篡改,修改特定字段数值后再重新发送给接收方,接收方解析被篡改报文后,认为对端业务处理异常,从而主动中断与发送方之间的会话连接。

在截取重发攻击中,以QKD 后处理过程基矢比对阶段为例,Bob 端需要统计错误率,即Bob 端根据Alice 端发送过来的数据对系统的错误率进行评估,并将评估结果发送至Alice 端,如果攻击者截取该帧,并对其中的探测评估结果进行篡改,使其始终高于QKD 后处理协议所规定的正常阈值,则通信双方就可能认为通信过程存在问题,中断本次通信会话,从而造成业务终止。

3.3.2 拒绝服务攻击

拒绝服务的目的就是使被攻击者不能提供正常的服务。针对实现QKD 后处理协议的QKD 设备来说,攻击者可以采取多种手段达到这个目的。

(1)服务端口占用。QKD 设备之间进行处理过程处理的前提是先建立设备之间的通信连接,这就需要每个设备都要在某个端口启用后处理服务,以监听对端设备的后处理连接请求。攻击者可以通过端口扫描等方法获取QKD 设备的后处理服务端口,由此展开拒绝服务攻击。攻击者通过向QKD设备后处理服务端口发起海量的后处理服务连接请求,占用QKD 设备处理资源,消耗QKD 设备之间的网络带宽资源和QKD 设备的处理能力,从而达到QKD 设备因资源耗尽而拒绝服务的目的。

(2)缓冲区溢出。缓冲区溢出攻击是常见攻击方法,可以导致程序崩溃、设备死机等后果,其主要是利用软件在代码实现过程中不规范严谨所导致的缓冲区溢出漏洞而进行的攻击行为。

QKD 后数据处理协议帧中包含“交互数据”数据域,该数据域根据不同的帧类型有不同的数据长度,攻击者在获取QKD 后数据处理协议帧结构的基础上,可以构造各类附带恶意代码二进制数据的异常的“交互数据”,造成QKD 设备的后处理协议处理程序在处理该异常“交互数据”时缓冲区溢出,进而执行恶意代码,最终造成QKD 设备程序崩溃或者设备死机等后果。

3.4 认证机制验证方法

QKD 系统的安全依赖量子力学的正确性[5],但量子力学正确性并不能完全保证QKD 系统的安全。因此,QKD 系统的安全还应该依赖QKD 设备自身的安全性,以及进行QKD 的设备之间的网络通信信道的安全性,即进行量子密钥分发之前通信双方要通过身份认证,双方建立的通信链路也要通过安全认证。安全认证主要通过密码学中的Hash函数来完成,然而当前攻击者能较为容易地找到Hash 函数的碰撞,从而实现对安全认证机制的破解。针对Hash 函数的攻击手段主要包括两类,一种是穷举攻击,比如“生日攻击”;另一种是密码分析攻击,典型的是中间相遇、差分分析等,其中差分分析[6]是当前的研究重点之一。在QKD 设备进行量子密钥分发过程中,攻击者可以在所有碰撞中选出与原消息认证码汉明距离最小的一个对接收端的探测结果进行替换,并利用随后的纠错过程掩盖自己的攻击行为[5]。这种攻击方法具有较强的通用性。

4 QKD 后处理安全防护机制

4.1 消息认证机制

在QKD 系统中,对后处理各个阶段的协议帧交互都要进行数据认证,以保证协议帧数据的完整性,防止被非法篡改。主要认证内容包括:(1)基矢比对交互数据认证;(2)纠错结果一致性比对数据认证;(3)保密增强共享随机数数据认证;(4)量子密钥一致性比对数据认证。

消息认证可使用哈希运算消息认证码(Hashbased Message Authentication Code,HMAC)杂凑算法实现带密钥哈希。例如在基矢比对数据认证中,将QKD 设备两端后处理协议帧交互数据与128b 密钥一起经HMAC 算法运算得到256b 杂凑值,两端通过比对杂凑值的一致性来保证协议帧未被篡改。参与HMAC 运算的密钥需定期更换。

认证过程中需要在两个QKD 设备之间同时使用对称密钥,这些密钥可以是预置的,也可以是从分发的量子密钥中截取的,其实现流程说明如下。

4.1.1 基矢比对交互数据认证

BB84 协议的基矢比对功能实现QKD 设备两端通过经典信道比对各自采用的基矢,保留基矢相同部分的信息。通信两端交互数据通过HMAC 进行数据认证。

基矢比对过程中的数据认证分为接收数据认证和发送数据认证两部分,当两部分数据认证均成功时表示本次基矢比对过程中经典数据交互过程可靠。HMAC 中使用的key 更新频率为每一次基矢比对过程即更新一次,每次使用的密钥量为128 bit。

4.1.2 纠错结果一致性比对数据认证

由于两个QKD 设备之间进行量子密钥协商过程时会产生量子比特误码,为保证纠错后纠错结果在通信双方的输出一致性,在纠错后会对对的纠错结果使用数据认证的方式进行一致性比对。该比对过程采用HMAC 算法实现。当数据认证成功并且比对结果一致时表明纠错成功,通信双方纠错后密钥一致。

4.1.3 保密增强随机数共享数据认证

为了确保量子密钥分发系统所产生密钥的绝对安全性,对整个QKD 后处理过程产生的信息泄露量进行评估,并依据该评估值确定一个压缩因子对纠错后的密钥进行压缩,完成生成密钥的保密增强,从而产生绝对安全的最终密钥。

目前实现保密增强[7]可采用基于QKD 设备之间共享的真随机数构造Toeplitz 矩阵,并进行Hash运算的保密增强算法实现。矩阵构造使用的随机数由Alice 端产生,并使用诸如HMAC_SM3 之类的算法进行完整性认证后,通过经典网络信道给Bob 端。

4.1.4 量子密钥一致性比对数据认证

量子密钥在经过保密增强模块运算输出后,需要对结果进行一致性比对。比对采用HMAC 方式对量子密钥进行数据认证。

流程中使用的认证密钥均只在本次QKD 流程中有效,当系统正常停止或因某些异常问题停止时,保持的认证密钥均需要进行清除处理,在下一次正常工作启动前继续由预置密钥提供认证密钥。

4.2 身份认证机制

QKD 协议不能抵抗中间人攻击,因此后处理过程中需要利用身份认证技术确保通信双方的合法性。量子身份认证主要有共享信息类型[8-9]和共享纠缠态类型[10]两种。前者通信双方通过预先共享的比特串来证明合法实体的身份,后者通过通信双方共享纠缠态粒子达到身份认证的目的。

4.2.1 共享信息类型认证方案

通信双方(Alice 和Bob)预先共享一串比特串作为共享认证密钥,并利用共享认证密钥来证明Alice 和Bob 的身份。此共享认证密钥由两部分密钥构成,一部分为Alice 向Bob 证明自己的密钥,另一部分为Bob 向Alice 证明自己的密钥。

该方案实现步骤如图3 所示。通过该方案可以验证Alice 的身份,同理也可以验证Bob 的身份。待通信双方身份都完成验证之后,Alice 和Bob 按照密钥分发协议分发新的身份认证密钥,即每次身份认证完毕后都更新认证密钥,确保认证密钥只使用一次,以保证认证的绝对安全性。

图3 共享信息类型认证流程

4.2.2 共享纠缠态类型认证方案

共享纠缠态类型认证方案利用纠缠态性质实现QKD 设备之间的身份认证。由于量子态不可克隆定理的存在,该认证方案生成的量子密钥不会被攻击者克隆和分发。而纠缠态性质包含隐形传态和纠缠交换等,利用量子隐形传态可以实现无差错的量子信道,利用纠缠交换和测量塌缩现象可以极大减少传输的经典信息量。攻击者对纠缠态的测量必然会引起纠缠态的塌缩,从而对QKD 设备的正常测量造成影响,最终导致攻击者的窃听行为被发现。共享纠缠态的实现需要先完成纠缠态粒子的安全分发,这通常由可信第三方来完成。

4.3 消息加密机制

加密可实现数据安全和隐私防护,防止敏感关键信息泄露。由于QKD 后处理协议中没有明确进行协议帧数据加密的规定,QKD 设备厂商的后处理协议实现通常就没有对协议帧数据进行加密,从而造成攻击者对QKD 设备通信过程进行监听时,可以很容易实现对后处理协议帧数据的窃取、分析和处理,破坏协议数据的机密性。

由于QKD 设备之间是端到端通信,因此可以采用端到端加密保护后处理协议帧数据的隐私和安全。端对端数据加密保证数据以密文形式从发送端发送到接收端的传递过程中,不再做加解密处理,接收端接收密文之后再进行解密。

针对QKD 后处理协议数据帧,可以对表1 中帧长度+交互数据以及帧校验字段进行加密,协议帧接收方根据帧头、帧尾判定该协议报文为QKD后处理协议数据帧,并根据通信双方预制/协商的密钥对加密字段进行解密,从而获取QKD 后处理协议数据帧信息。

表1 QKD 后处理协议数据帧加密示例

5 结语

通过对QKD 后处理协议规范、QKD 后处理流程等各方面的安全分析,可以发现QKD 系统,特别是其经典部分,存在一定的安全风险。本文从信息安全要素出发,提出了针对QKD 后处理的安全解决方案,即通过对QKD 后处理协议原理及实现方面的脆弱性分析,提出了相应的攻击验证方法,并通过设计和实现弥补脆弱的安全机制来增强协议的安全性,从而解决实际系统中QKD 后处理协议面临的安全威胁,最终实现QKD 系统的安全。

猜你喜欢

后处理攻击者密钥
车身接附点动刚度后处理方法对比
基于贝叶斯博弈的防御资源调配模型研究
幻中邂逅之金色密钥
幻中邂逅之金色密钥
果树防冻措施及冻后处理
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
正面迎接批判
正面迎接批判
基于柴油机排气后处理的排放控制技术应用研究