APP下载

基于PUF的水下海洋观测仪器身份认证研究*

2021-03-20英,钟杰,郑力,胡

通信技术 2021年3期
关键词:序列号攻击者抵抗

杨 英,钟 杰,郑 力,胡 勇

(1.四川大学网络空间安全学院,四川 成都 610065;2.中物院成都科学技术发展中心,四川 成都 610200)

0 引言

海洋覆盖了地球表面积的71%,蕴藏着丰富的自然资源,因此对其的观测具有重要意义。海底观测网[1]是典型的水下观测网络,主要由岸基监控中心、中间设备和水下海洋观测仪器构成,如图1所示。

图1 海底观测网的拓扑结构

由于水下海洋观测仪器作为终端设备分布式布放于海底深处且无人值守,易被人为替换造成假冒攻击,从而影响关键海域海洋数据的准确采集和海底观测网的安全运行,需要采取适当的安全措施。另外,海底水域环境的开放性使得通信数据易被截获,遭受侧信道分析攻击。

针对上述安全问题,引入基于PUF 的身份认证技术。物理不可克隆函数(Physical Unclonable Function,PUF)信息具有唯一性和不可克隆性,实现成本低,可作为设备唯一身份标识和认证依据[2]。

文献[3]提出基于PUF 的认证方案,通过服务器对读写器进行身份认证来抵抗攻击者的假冒攻击。文献[4]采用PUF 作为密钥生成机制,以抵抗攻击者假冒攻击。文献[3-4]都基于PUF 特性和双向认证机制抵抗认证双方假冒攻击。

文献[5]提出结合学习与噪声等值(Learning Parity with Noise,LPN)难题和PUF 不可克隆的特性,提出了一种基于HB#协议的改进协议PUF-HB#,实现了标签与阅读器间的轻量级双向认证。但是,文献[6]指出PUF-HB#协议由于增加了过多的传输参数,使协议相较于HB#变得更加脆弱,无法抵抗侧信道分析攻击和重放攻击。文献[6]提出了一种基于双PUF 的双向身份认证协议。该方案通过对响应执行一个二分异或操作,再使用随机字符串填充生成一个新的字符串,以避免信息泄露,抵抗侧信道分析攻击。但是,该PUF 认证模型的准确性未得到验证,且机器学习需要大量样本,增加了应用的实施难度。文献[7]提出一种只使用PUF 和简单的操作(即循环左移、与和异或)协议,效率更高,但仍不能完全抵抗重放攻击和侧信道分析。

水下仪器终端设备拥有休眠/激活工作模式,其大部分时间处于休眠模式,无主动通信行为,仅少数时间处于激活模式下能够收发数据。因此,认证方案需考虑终端主动发起连接请求和服务器主动发起连接请求两种认证场景。

针对上述问题,本文提出基于PUF 且适用于休眠/激活两种模式下的终端入网身份认证方案,并结合典型应用场景进行安全性分析。该方案使用PUF 信息作为认证凭据,使用哈希函数保证认证信息非明文传输,从而实现服务器与终端的双向认证,抵抗认证双方的假冒攻击。伪随机M 序列加密认证信息,改变信息中“0”和“1”的分布规律。足够位长的伪随机M 序列周期非常长,具有极强的抗侦破能力[8],能够有效抵抗侧信道分析攻击。

1 认证基础

1.1 PUF 简介

PUF 技术利用了现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片在加工制造过程中的随机性差异。这些随机性差异是由于加工工艺的限制造成的,无法被复制或人为控制,具备唯一性和不可克隆性。FPGA 芯片的硬件物理指纹也被称为激励/响应对。基于PUF 的激励响应对的产生原理如图2 所示。外界向芯片输入一个定长的激励信号,芯片将根据激励信号选择对应的硬件电路单元,再依据特殊的PUF 生成算法提取该部分电路单元的硬件特征信息生成一个定长的响应信号。该激励信号和响应信号合称为一个激励/响应对。提取的激励/响应对符合可靠性、均匀性、独特性以及随机性等[9]指标后,方可作为一条正式的芯片物理指纹。

图2 激励/响应对的产生

1.2 M 序列

M 序列[8]是一种伪噪声序列,可由硬件n级非线性反馈移位寄存器产生。它的周期与反馈移位寄存器的级数有关。M 序列的优点是产生的序列数量多,且随n的增大而迅速增加。n级非线性反馈移位寄存器可产生的M 序列条数[8]为n级非线性反馈移位寄存器的结构如图3 所示[8]。

M 序列由时钟频率、反馈逻辑(生成多项式)和初始状态决定。M 序列应用于信息安全领域加解密时,发送方将M 序列与信息流异或(XOR),实现对信息流的链路层安全加密,而接收方把收到的信息与预协商的密钥M 序列异或,解密信息。

图3 n 级非线性反馈移位寄存器

2 身份认证方案设计

2.1 身份注册

加入可信通信网络的终端设备,需要在安装部署前进行物理指纹采集和伪随机M 序列协商,并将采集的指纹和伪随机M 序列安全存储于岸基中心的身份认证服务器内。其中,指纹数量取决于终端使用期限和认证间隔时间。身份注册流程如图4 所示。

图4 终端设备注册阶段

2.2 身份认证方案设计

水下仪器终端(以下简称终端)拥有休眠/激活工作模式。终端从休眠模式切换到激活模式有两种触发方式,分别是认证服务器(以下简称为服务器)的外部唤醒和终端的自主苏醒。两种方式交替进行,且时间间隔伪随机。针对休眠/激活工作模式终端,本文提出终端入网的安全双向身份认证方案。

本认证方案的前提包括:

(1)终端设备芯片具有PUF 函数和n级非线性反馈移位寄存器;

(2)M 序列由硬件产生;

(3)终端设备和服务器端都需预存一个相同的哈希函数;

(4)终端ID 已存在,且由多种硬件特性产生,攻击者无法在短时间内猜测出来;

(5)服务器端需要在终端设备注册时存储其ID、IP、CRPs 和M 序列。服务器处于安全性较高的环境,M 序列等信息泄露的可能性小。

方案中出现的符号含义如表1 所示。

表1 符号含义

2.2.1 外部唤醒方式

外部唤醒模式下的认证流程如图5 所示。

具体认证步骤如下。

图5 外部唤醒模式下认证流程

(1)Server →Client{M(c1,hash1,c2,hash2,num1)}。服务器唤醒终端进行认证前,根据终端ID 查找到对应的指纹库,从CRPs 中选择两条未被使用过的指纹(c1,r1)和(c2,r2),从中提取激励c1 和c2 生成认证帧并主动发送至终端。服务器端生成初始随机数num1 作为初始序列号,计算出hash1=H(ID&num1) 和hash2=H(ID&num1&r1&c1),将num1、hash1、hash2 以及激励c1 和c2 一起打包写入数据字段组成认证帧,并将认证帧与伪随机M 序列异或加密后发送给终端;

(2)Client →Server{M(hash3,num2´)}。终端收到认证帧后,将认证帧与M 序列异或后解析得到hash1、hash2、num1 以及c1 和c2。先利用本地设备号IDc计算出hash1´=H(IDc&num1),若hash1=hash1´,则终端认为此次唤醒有效,开启认证;反之,则终端认为此次唤醒无效,不开启认证。若此次唤醒有效,终端开始认证服务器,终端利用PUF 模块得到r1´=PUF(c1),再计算hash2´=H(IDc&num1&r1´&c1),利用hash2´验证hash2 的正确性。若hash2=hash2´,则终端成功认证服务器,继续认证过程;反之,终端认证服务器失败,终止认证。若终端成功认证服务器,终端再次利用PUF模块得到r2´=PUF(c2),计算num2=num1+i(i为正随机数,可由软件函数产生)、num2´=num2 ⊕IDc和hash3=H(IDc&num2&r2´&c2),然后打包num2´和hash3 写入数据字段组成确认帧,并将确认帧经伪随机M 序列链路层加密后发送至服务器。

服务器端接收到确认帧后,将确认帧与M 序列异或后解析得到hash3 和num2´,再根据已存储的ID(每个终端ID 对应一个固定的IP,且一个ID在数据库中对应一个CRPs 表)和(c2,r2)计算得到num2=ID⊕num2´和hash3´=H(ID&num2&r2&c2)。若hash3=hash3´,则服务器成功认证终端;反之,服务器认证终端失败,将终端信息从可信列表中删除。若服务器端没有接收到终端的确认帧,则将终端视为不可用终端,并同时将终端信息从可信列表中删除。

2.2.2 自主苏醒方式

自主苏醒方式下的认证流程如图6 所示。

具体认证步骤如下。

(1)Client →Server{M(IDc)}。终端自主苏醒处于激活模式,在预先定义好的时间间隔内生成心跳帧,再将心跳帧与伪随机M 序列异或后发送至服务器。其中,心跳帧包含终端设备IDc。

(2)Server →Client{M(c1,num1´)}。服务器收到心跳帧后知晓该终端已苏醒,将心跳帧与发端相同的M 序列异或后解析得到IDc,再根据IDc查找到存储的物理指纹(CRPs)。若不能查找到该ID对应的指纹库,则表明该终端为未注册设备,不继续认证过程;若能查找到该IDc对应的指纹库,则表明IDc=ID,再从CRPs 中选择一条未被使用过的指纹(c1,r1)并提取激励c1 生成初始随机数num1,计算出num1´=ID⊕num1,将c1 和num1´两者打包写入数据字段组成确认帧,并将确认帧经伪随机M 序列链路层加密后发送至终端。

图6 自主苏醒方式下认证流程

(3)Client →Server{M(hash1,num2´)}。终端收到认证帧后,将认证帧与发端相同的M 序列异或后解析得到c1 和num1´,利用PUF 模块得 到r1´=PUF(c1),计 算num1=num1´⊕IDc,num2=num1+i(i为正随机数,可由软件函数产生)、num2´=num2⊕IDc和hash1=H(IDc&num2&r1´&c1),打包num2´和hash1 写入数据字段组成认证帧1,并将认证帧1 经伪随机M 序列链路层加密后发送至服务器。

(4)Server →Client{M(c2,hash2,num3´)}。服务器收到认证帧1 后,将认证帧1 与M 序列异或后解析得到hash1 和num2´,计算得到num2=num2´⊕ID、hash1´=H(ID&num2&r1&c1) 和i(i=num2-num1)。利用hash1´验证hash1 的正确性,若hash1=hash1´,则服务器认证终端成功;反之,则服务器认证终端失败,终止认证。若服务器成功认证终端,则服务器端从CRPs 中选择一条未被使用过的指纹(c2,r2)并提取激励c2,计算出num3=num2+i、num3´=num3 ⊕ID和hash2=H(ID&num3&r2&c2),打包c2、num3´和hash2 写入数据字段组成认证帧2,并将认证帧2 经伪随机M 序列链路层加密后发送至终端。

终端收到认证帧2 后,将认证帧2 与发端相同的M 序列异或后解析得到c2、hash2 和num3´,利用PUF 模块得到r2´=PUF(c2),计算num3=num3´⊕IDc和hash2´=H(IDc&num3&r2´&c2)。利用hash2´验证hash2 的正确性,若hash2=hash2´,则终端认证服务器成功,双向认证成功;反之,则终端认证服务器失败。

3 身份认证方案的安全性分析

海底观测网中水下终端处于无人值守状态,且处于开放海域中,因此终端易被人为替换,且水下终端与服务器之间的认证数据易遭受攻击者侧信道侦听与分析攻击,引发假冒攻击、重放攻击和信息篡改攻击。因此,海底观测网的水下终端入网身份认证方案需要有抵抗上述攻击的能力。

3.1 对侧信道分析攻击的抵抗

侧信道分析攻击是指利用认证过程产生的功耗、光信号(电磁辐射)以及通信时间等信息,综合分析传输过程中使用的密钥等具有一定价值的信息[10]。

认证过程中信息使用伪随机M 序列进行链路层加密。由于所用M 序列为极长周期的伪随机序列,与信息按位异或后能够改变信息中“0”和“1”的分布规律,因此经M 序列加密后的信息具有极强的抗侦破能力,增加了侧信道分析攻击难度,不易获取认证过程采用的加密算法和认证凭据。PUF 模块位于终端设备的嵌入式硬件平台上,使用硬件方式提取芯片特征信息,响应时间极短且响应时间间隔是伪随机的。此外,休眠/激活工作机制可以减少功耗,减少发送数据量,降低认证信息被侧信道侦听的概率。

3.2 对假冒攻击的抵抗

假冒攻击是指攻击者通过信息窃听来截取认证双方认证信息,然后冒充终端设备重放认证消息非法接入网络来获取信息或提供虚假信息。

本方案在外部唤醒方式和自主苏醒方式下实现了终端与服务器之间的双向认证,弥补了单向认证中的存在认证一方假冒的缺陷。此外,每个CRP 只使用一次,并使用单向哈希函数计算消息散列值,使得认证过程中使用的认证信息非明文传输且处于不断更新变化状态,增加了攻击者破解认证信息的难度。因此,该协议能抵抗攻击者发起的假冒攻击。

3.3 对重放攻击的抵抗

重放攻击是指攻击者给受信任的目标节点发送一个该节点已经接收过的数据包。此攻击可破坏身份认证的结果,甚至可演化为DoS 攻击,使目标节点瘫痪。

如图7 所示,针对直接重放攻击,本方案中每个CRP 只使用一次,且每次认证交互过程中都包含序列号。初始序列号具有随机性,后续的序列号为递增模式。终端或服务器将存储的序列号与收到的认证帧的序列号作比对,若攻击者直接重放认证帧,则认证帧的序列号小于或等于存储的序列号,认为是重放攻击,认证程序终止。因此,攻击者很难通过直接重放认证过程中的认证消息来实现一次完整的重放攻击。

图7 重放攻击及其抵抗原理

3.4 对信息篡改攻击的抵抗

信息篡改攻击是指对认证双方的认证数据进行增、删、改操作,破坏信息的完整性和机密性,造成认证双方认证失败。

如图8 所示,方案中采用哈希、与和异或等运算确保信息的完整性和机密性。哈希运算确认信息传输过程中数据没有被篡改,与运算可视为一个简单的加密过程,异或运算实现认证过程中的帧序列号为非明文传输。哈希运算的不可逆性,大大增加了信息被篡改的难度。

图8 信息篡改及其抵抗原理

3.5 协议的安全性及计算开销比较

协议的安全性及计算开销比较,如表2 所示。其中,“√”表示能够抵抗;“×”表示不能抵抗;PUF_mod 表示PUF 机器学习模型;RNG 表示随机数生成器;Hash 为哈希运算。文献[6]提出的认证协议虽然有较强的安全性,但需要训练学习模型,增加了认证过程中额外的开销。

表2 协议的安全性及计算开销比较

4 结语

在论述海底观测网中终端所面临安全问题和挑战的基础上,基于PUF、伪随机M 序列和哈希函数提出一种新的适用于该场景的终端和服务器双向身份认证方案。该方案不需要终端存储任何秘密参数,且安全性分析表明该方案能抵抗认证过程中的多种恶意攻击,适合海底观测网水下终端的入网认证,为物联网特殊应用场景下的信息系统提供了可信关键技术储备。但是,本文中的身份认证方案不保证通信双方的信息安全传输,因此可进一步考虑基于PUF 的密钥管理方案。

猜你喜欢

序列号攻击者抵抗
基于微分博弈的追逃问题最优策略设计
锻炼肌肉或有助于抵抗慢性炎症
做好防护 抵抗新冠病毒
iNOS调节Rab8参与肥胖诱导的胰岛素抵抗
recALL
正面迎接批判
有限次重复博弈下的网络攻击行为研究
PP助手教你辨别翻新iPhone5小白不再中招
温度传感器DS18B20序列号批量搜索算法