基于混合特征指纹的无线设备身份识别方法
2021-11-05宋宇波郑天宇陈宏远陈立全胡爱群
宋宇波 陈 冰,4 郑天宇 陈宏远 陈立全 胡爱群
1(东南大学网络空间安全学院 南京 211189) 2(江苏省计算机网络技术重点实验室(东南大学) 南京 210096) 3(紫金山实验室 南京 211111) 4(东南大学信息科学与工程学院 南京 211189) (songyubo@seu.edu.cn)
近年来,无线网络技术发展迅速,无线用户数量激增.随着无线网络在金融交易、商业管理等一系列重要业务上的广泛应用,无线网络安全成为安全研究的重点.由于无线网络使用开放性的无线信道传输数据,因此易遭受设备假冒攻击和通信数据伪造攻击.攻击者可以通过窃听无线传输数据来获取合法用户的身份信息,进而利用该身份信息假冒合法用户接入网络,或者通过发送携带合法用户身份信息的伪造数据来欺骗无线网络中的其他设备[1-3].IEEE 802.11i提供的基于密码学的无线设备认证技术一直是防范上述攻击的重要技术,但是已经出现有效的攻击方案[4-7].此外,基于密码学的无线设备认证技术需要无线终端进行复杂的密钥计算和密钥协商,一方面具有较大的时间开销,另一方面难以在计算能力有限的嵌入式设备中实现.
基于信道状态信息(channel state information, CSI)指纹的设备识别技术是一种非密码学的设备识别技术[8-18].这类技术从无线设备的CSI中提取指纹,该指纹能够标识设备的无线信道特征.CSI通常为无线信道的信道频率响应,在OFDM无线通信系统中,CSI由各个子载波的幅度和相位组成,能够在多频点上提供细粒度的无线信道状态信息.由于空间的多样性,每台设备的无线信道都是独一无二的,因此反映细粒度无线信道特征的CSI指纹能够用于标识设备身份.在设备识别过程中,识别设备获取待识别终端的CSI并生成CSI指纹,该CSI由识别设备通过信道估计获得,反映了设备的物理属性,因此CSI指纹难以被伪造,进而大大增加了设备假冒攻击和通信数据伪造攻击的难度.
重要的是,CSI可以从现有的支持OFDM无线通信技术的802.11设备(如802.11a/g/n/ac/ax设备)中直接获取,而无需定制特殊的设备或进行额外的信号处理,因此能够轻松地在现有的无线设备中部署基于CSI指纹的无线设备身份识别系统.同时,在机器学习算法的帮助下,这类技术往往能够获得较高的设备识别准确率.但是这类技术面临着2个问题:
1) 由于CSI指纹标识终端的无线信道特征,因此它会随着终端的位置或所处环境的改变而改变.也就是,现有的技术通常需要提前采集终端的大量CSI指纹以用于后续的指纹匹配,但是若无线终端的位置发生变化,或周围环境发生较大的改变,提前采集的CSI将无法代表最新的无线信道状态,进而无法再用于后续的设备身份识别.尤其当长期处于离线状态的无线终端请求接入网络时,其无线信道状态往往已经发生较大的变化,因此除非重新采集CSI指纹,否则后续的指纹匹配将无法成功进行.
2) 现有的技术通常将机器学习用于指纹匹配,以追求系统的高识别准确率,但是指纹匹配的计算复杂度也会随之增加,进而无法在计算能力有限的嵌入式设备中实现.也就是,现有的基于CSI指纹的设备身份识别技术往往借助机器学习来进行特征提取、指纹分类以及指纹匹配等工作,进而获得较好的特征提取效果和高识别准确率.但是,CSI指纹识别的计算复杂度也随之增大,因此可能会对设备硬件造成巨大的负担,同时无法在计算能力有限的嵌入式设备中实现.
以上2个问题给基于CSI指纹的无线设备身份识别技术的实际应用带来了困难.为了解决这些问题,本文提出了一种基于混合特征的无线设备指纹生成方案,该方案在使用CSI指纹的同时引入了数据包到达时间间隔分布(packet arrival interval distribution, PAID)指纹,该指纹能够标识设备的硬件特征.2种指纹被分别用于两阶段的设备识别:一是终端请求接入时,利用PAID指纹进行识别,并重新采集终端的CSI指纹;二是终端成功接入并开始通信时,从终端的每个数据包中提取CSI指纹并进行实时的逐包设备识别.此外,本文提出了一种计算复杂度较低的指纹匹配方案,以保证在计算能力有限的设备中也能快速且准确地识别设备.本文的主要贡献有3个方面.
1) 针对CSI指纹会随着终端的位置或所处环境的改变而改变的问题,本文提出了一种基于混合特征指纹的设备身份识别方案.该方案从无线终端的PAID和CSI中提取2类指纹:前者为PAID指纹,标识设备的硬件特征;后者为CSI指纹,标识设备的无线信道特征.该方案包含两阶段的设备识别:①当终端请求接入无线网络时,识别设备捕获该终端发送的若干数据包,从中提取PAID指纹和CSI指纹,并用PAID指纹进行识别,识别成功则用新获取的CSI指纹进行后续的CSI指纹匹配;②当终端接入并开始通信时,识别设备从终端的每个数据包中提取CSI指纹并进行实时的逐包身份识别.
2) 针对现有的技术利用机器学习提高识别准确率的同时计算复杂度较高,无法在计算能力有限的嵌入式设备中实现的问题,本文提出了一种改进的指纹匹配方案,该方案利用基于自动编码器的指纹匹配网络来进行指纹匹配.该网络包括匹配层和输出层,前者由小规模自动编码器并联组成,后者由线性变换器构成,在保证高识别准确率的同时降低了计算复杂度.
3) 在树莓派3B+上实现了基于混合特征指纹的设备识别原型系统,主要包括无线终端接入时的PAID指纹提取、PAID指纹匹配、CSI指纹采集,以及通信时的逐包CSI指纹提取和CSI指纹匹配.利用该原型系统在2种测试场景下分别进行了接入时和通信时的设备身份识别测试,并根据测试结果分析了设备识别系统的性能.
1 相关工作
无线通信技术的发展为人们的生产和生活带来了极大的便利.相比于有线网络,无线网络利用其无线传输的特点有效地联通了互联网的“最后一百米”,并且在公共服务、商业活动、金融交易、军事、医疗等重要领域中得到了充分的应用.但是,一些恶意攻击者的存在给无线网络的安全性造成了威胁.攻击者可以窃听和拦截无线流量并获取用户的身份信息,然后通过将自身伪装成合法设备来发起假冒攻击欺骗无线接入点(access point, AP),实现以合法身份接入网络.这意味着无线网络必须对未知用户进行精准的身份验证以防御这些可能存在的攻击,进而增强自身的安全性.
近年来,基于信道特征指纹的无线设备身份识别技术获得了越来越多的关注.在信道特征指纹发展的早期,接收信号强度指示(received signal strength indication, RSSI)被用于提取信道特征指纹[19-22].该技术的基本思想是:不同设备的信号发射端会根据其信道状态来设置信号的发射强度,因此RSSI指纹能够反映设备的信道状态.但是RSSI已被证实在较小的环境噪声干扰下会产生较大的波动,并不能作为稳定的设备身份标识[23].因此,人们尝试从信道冲激响应(channel impulse response, CIR)中提取用于标识设备的信道特征指纹.Mahmood等人[24]提出了基于CIR指纹的分布式无线设备身份识别方法,该方法利用在不同的位置部署多个测量设备的方式来提高系统的识别准确率.此后,CSI被用于生成信道特征指纹[8-18],这种指纹识别技术相比于RSSI指纹和CIR指纹具有重大的突破:首先,CSI包含比RSSI和CIR更细粒度的信道状态信息,能够更好地标识设备的无线信道状态,即使2台设备具有近似的无线信道状态(如2台设备距离很近),CSI也能捕捉设备之间的细微差异;其次,CSI可以很容易地从支持OFDM无线通信技术的802.11设备中获得(如802.11a/g/n/ac/ax设备),而CIR的获取则依赖于特殊的设备[25].
Liao等人[8]从CSI的幅度信息中提取指纹,并利用提前训练的CNN将待识别的CSI指纹分类,若该指纹的分类结果与其携带的身份信息一致,并且输出超过设定的阈值,则判定该CSI指纹携带的身份信息为真.但是文献[8]并没有给出安全地获取CNN训练集的方法,恶意设备可能会用假冒的身份污染CNN训练集.为了解决该问题,Liu等人[11]提供了一种安全的CSI指纹采集方式,该文使用K-means算法将采集的CSI指纹进行聚类,根据聚类结果判断指纹是否来自恶意终端.其同样提取CSI的幅度信息作为指纹,并使用SVM算法对待识别的CSI指纹进行分类,若分类结果与CSI携带的身份一致则识别成功.以上技术均从单收发天线的CSI中提取指纹,Xie等人[12]将MIMO与基于CSI指纹的无线设备身份识别技术相结合,尝试使用更高维度的MIMO-CSI指纹来提高身份识别的准确性.Liu等人[18]同样使用MIMO-CSI指纹进行设备识别,但是该文提出了一种基于LOF的改进设备识别算法,该识别算法即使在低信噪比无线通信环境下也可以达到高准确率.
文献[8-18]所述的方法虽然利用CSI指纹实现了高准确率的设备身份识别,但是没有考虑设备位置改变或环境改变对CSI指纹带来的影响.Liu等人[11]虽然提供了一种在设备位置改变后重新采集CSI指纹的方法,但是这种方法安全有效的前提是合法设备必须能够随时响应识别设备的指纹采集请求,这在大部分应用场合中是无法满足的(如办公场景下,人们时常需要携带笔记本电脑离开).
为了解决待认证设备的移动和合法设备的离线给CSI指纹认证带来的问题,本文提出了一种基于混合特征指纹的设备识别技术.该技术在使用CSI指纹为无线终端提供实时的逐包设备识别服务的同时引入了另外一种指纹.该指纹从终端的PAID中提取,能够反映设备的硬件特征,进而与设备所处的位置和环境无关.但是,由于获取PAID指纹需要采集大量的数据包,因此无法用来实现实时的设备识别.因此,本文将PAID指纹用于接入时的设备识别,并将CSI指纹用于通信中实时的逐包设备识别.
2 相关技术介绍
本节介绍了基于混合特征指纹的无线设备识别技术所使用的相关技术,包括无线网络的端到端时延组成、数据包时间间隔的影响因素、CSI的基本概念和测量方式,以及自动编码器的相关概念和算法.
2.1 数据包到达时间间隔
为了评估一个分组交换无线网络的数据速率和吞吐量,需要研究影响数据包递送速率的因素.在一个单跳分组交换无线网络中,用户通信时数据包的递送步骤可以概括为:
1) 发送设备组建数据包;
2) 发送设备将数据包发送到无线信道上;
3) 数据包从发送设备传输到路由器;
4) 路由器接收数据包并将其放入处理队列;
5) 路由器解析数据包并组建新数据包;
6) 路由器将新数据包发送到无线信道上;
7) 数据包从路由器传输到接收设备;
8) 接收设备接收并解析数据包.
其中,步骤1,5,8均为设备在本地处理数据包,因此这些步骤产生的时延可以归纳为处理时延;步骤2,6为设备将数据包发送到物理信道,将产生传输时延;步骤3,7为数据包在无线信道中传播,此时存在传播时延;步骤4为数据包在路由器中排队等待处理,可视为存在排队时延.
在由2台直接相连的无线终端组成的网络中利用Ping探讨数据包时间间隔的时延组成.在本场景中,无线终端A为Ping请求设备,无线终端B为Ping响应设备,图1显示了当Ping请求发送间隔设置为10 ms时无线终端A和无线终端B的Ping时序关系.本研究中发送间隔为10 ms的含义为:无线终端A提前组建Ping Request数据包,并在10 ms的中断处理程序中将已经组件好的请求包通过系统调用发送到无线信道中.如图1所示,每组(Ping Request,Ping Response)都被限制在10 ms以内,相邻2组之间没有时域上的交叠.这种限制是合乎常理的,因为通过实际测试可知,当两端设备中间无路由器、交换机等中转设备时,Ping的往返时延(round-trip time, RTT)将小于5 ms.
Fig.1 Ping timing diagram and delay composition图1 Ping时序图与时延组成
图1给出了2组(Ping Request,Ping Response)的时序关系,并分别编号为(Ping Request(1),Ping Response(1))和(Ping Request(2),Ping Response(2)).如图1所示,无线终端A在发送时间节点0 ms,10 ms,…上将数据包传输到信道中,该传输时延记作tA-trans;数据包从无线终端A传播到无线终端B,其传播时延记作tA-prop;无线终端B接收、解析Ping Request并组建、传输Ping Response产生的时延包括处理时延和传输时延,记作tB-proc+tB-trans;Ping Response从无线终端B传播到无线终端A产生的传播时延记作tB-prop.
为了计算数据包接收时间间隔,将2组Ping数据包的时延分别用(1),(2)进行编号,因此数据包接收时间间隔t可计算为:
(1)
(2)
t=10+ΔtA-trans+ΔtA-prop+ΔtB-trans+
ΔtB-prop+ΔtB-proc.
(3)
式(3)还可以被进一步简化.首先,普通商用无线设备的数据包的传输时延通常为毫秒到微妙级,而数据包的处理时延仅为微秒级甚至更小的数量级,因此tB-proc≪tB-trans;再者,无线传输的距离通常为100 m左右甚至更小,因此数据包的传播时延将为微秒级甚至更小的数量级,因此tB-prop≪tB-trans.相应地,由于设备软硬件因素和无线信道争用造成的处理、传播时延抖动(ΔtB-proc,ΔtB-prop)也会远小于传输时延抖动ΔtB-trans.由此,数据包接收时间间隔t可以被简化为
t=10+ΔtA-trans+ΔtB-trans.
(4)
因此,t的主要影响因素为发送设备和接收设备的传输时延.
2.2 信道状态信息
在无线通信中,发射机发出的无线信号将沿着多条无线路径传播到接收机,这些路径组成了用于设备通信的无线多径信道.CSI通常指该无线多径信道的信道频率响应(channel frequency response, CFR),因此当传输频率为f时,CSI可以表示为
(5)
由式(5)可知,CSI反映了无线信道整体的幅度衰减和相位偏移.在实际无线通信中,组成无线信道的每条传播路径都具有不同的幅度衰减和时间延迟.当无线信号沿着不同的路径抵达接收机时,不同幅度和相位的信号叠加组成了最终的接收信号,CSI则反映了多条传播路径叠加后的幅度衰减和相位偏移.
基于OFDM的无线网络(如IEEE 802.11a/g/n)利用多载波传输技巧实现频带的高效利用和系统吞吐量的提升.当设备在2.4 GHz频段上以20 MHz的带宽传输数据时,其所使用的信道将包含64个子载波.这种情况下,接收端测量得到的CSI包含每个子载波的频率响应,进而组成64维的CSI复数向量.在MIMO-OFDM无线通信系统(假设该系统具有V根发射天线和G根接收天线)中,由发射天线和接收天线组成的V×G个天线对各有一个CSI,进而将CSI拓展为V×G×64的3维复数矩阵.
相比于RSSI,CIR用来表征无线信道物理特性的物理量,CSI借助OFDM多载波传输的特点,在多个频点上记录信道的幅度衰减和频率偏移,因此包含了更加细粒度的无线信道信息.同时,基于OFDM的IEEE 802.11a/g/n无线设备在信道估计模块提供CSI的测量和提取,其根据CSI测量值来优化接收器参数,使得接收机适应当前的信道状态.因此,能够从现有的商用IEEE 802.11a/g/n无线网卡中直接获取CSI测量值,无需添加新固件或定制的硬件.
OFDM无线通信系统利用信道估计来获取CSI,而信道估计则依赖于无限物理层PLCP子层协议数据单元(presentation protocol data unit, PPDU)的长训练序列.在采用OFDM技术的IEEE 802.11协议(如IEEE 802.11 a/g/n/ac/ax)中,物理层包含物理层汇聚过程子层(physical layer convergence procedure, PLCP)和物理介质相关子层(physical medium dependent, PMD),其负责将介质访问控制层(medium access control, MAC)发来的数据发送到无线介质.该过程可以概括为:PLCP接收到MAC发来的MAC层业务数据单元后,将其封装为MAC层协议数据单元,并作为PLCP子层业务数据单元发送到PLCP子层,PLCP子层将其封装为PPDU.
以工作在2.4 GHz频段、带宽为20 MHz的无线通信系统为例,PPDU的帧格式如图2所示,其中,PLCP前导码包含发送端和接收端共享的长训练序列L,L在64个子载波上的幅度为:L在编号为-32~-27,0,27~31的子载波上幅度为0,在其余子载波上的幅度为1.当发送信号为X、接收信号为Y时,有:
Y=HX+N,
(6)
其中,H为信道频率响应,N为噪声.当忽略噪声N时,信道频率响应可估计为
H=YX-1.
(7)
通过该信道估计方法,接收端利用长训练序列L可以获取无线信道的CSI.需注意的是,L仅在52个子载波上的幅度不为0,CSI的有效值分布在L的幅度不为0的子载波上.
Fig.2 Frame structure of PPDU图2 PPDU的帧结构
2.3 自动编码器
自动编码器作为一种特殊的人工神经网络,其学习目标为寻找一种数据映射,该映射首先将输入样本压缩得到低维度样本,然后以尽可能低的误差将低维样本重建为原始维度的样本.
该数据映射分为编码映射和解码映射.其中,编码映射负责输入样本的降维,解码映射负责将编码得到的低维样本重建为与输入样本维度相同的输出样本.降维后的样本具有比输入样本更少的特征,其携带的信息量通常少于输入样本所携带的信息量.为了根据低维样本重建出高维样本,自动编码器需要从训练样本中学习样本的分布特征.这种重建方式类似于大脑根据已掌握的不完整信息和经验来预测未知的结果.
Fig.3 The structure of autoencoder图3 自动编码器结构示意图
本文所用的自动编码器为具有单一隐藏层的3层自动编码器,图3展示了一个典型的单隐藏层自动编码器结构.由图3可知,自动编码器的每一层由若干个神经元构成,相邻2层的神经元通过突触两两连接.图3所示的自动编码器输入维度为4,输出维度与输入维度一致.其具有一个隐藏层,该隐藏层对输入向量的压缩比为4∶3.为了后续表示的方便,分别用l(1),l(2),l(3)来表示自动编码器的输入层、隐藏层、输出层,并用dim(1),dim(2),dim(3)表示l(1),l(2),l(3)的神经元数量(dim(1)=dim(3)).自动编码器的压缩率ρ定义为
(8)
此外,W(1)和W(2)分别表示连接(输入层,隐藏层)和(隐藏层,输出层)的突触的权重.其中,W(1)为dim(1)×dim(2)的矩阵,W(2)为dim(2)×dim(3)的矩阵.b(1)和b(2)分别表示隐藏层和输出层的偏差向量,它们的维度分别为dim(2)和dim(3).
自编码器是数据相关的,具体表现为:使用特定样本集训练的自动编码器掌握了该样本集的分布特征,因此对于具有相同分布特征的样本具有良好的重建能力;但是对于具有不同分布特征的样本,该自动编码器的重建能力将很差.用输入样本和输出样本的均方根误差来表示自动编码器对该输入样本的重建能力:
(9)
在本文中,利用自动编码器的数据相关特性对无线设备的CSI指纹进行标记和识别.具体方式为:首先利用目标设备的CSI指纹集训练自动编码器,然后将新的属于未知设备的CSI指纹输入自动编码器,最后获得该CSI指纹的重建误差.若重建误差大于设置好的阈值,则该CSI指纹被判定为不具有训练集特征,进而不属于目标设备.
自动编码器的执行过程为输入向量在神经网络中逐层传递的过程,这与人类的末梢神经接收信号并沿着神经网络将其传递到深层神经类似,将其称为神经网络的前向传播过程.假设输入向量为x,则l(2)接收到的向量为a(2)=g(W(1)·x+b(1))接收到的向量为a(3)=x′=g(W(2)·a(2)+b(2)).其中,g为激活函数.本文所用的激活函数为sigmoid函数,因此g定义为
(10)
通过使用激活函数,每一层接收到的信号均为上层信号的非线性组合,因此整个神经网络可以拟合出复杂的非线性模型.若不使用激活函数,则整个前向传播过程等价于将输入向量进行线性组合,因此失去了拟合复杂模型的能力.将整个前向传播过程表示为
hΘ(x)=x′,
(11)
其中,Θ≡(W(1),b(1),W(2),b(2)),在下文中用于代指自动编码器.
在自动编码器的训练过程中,初始的自动编码器被赋予随机的权重,并利用训练集中的样本进行权重的更新.其中,用于训练自动编码器的训练集由具有相同分布特征的样本组成.对于本文所用的对称自动编码器,可以在编码映射和解码映射2个部分使用镜像的权重矩阵,因此可以将权重矩阵简化为W(1)=W,W(2)=WT.
Fig.4 The backward propagation process of the autoencoder图4 自动编码器的后向传播过程示意图
自动编码器的训练依据为所有神经元的激活误差deltas=[δij]dim(1)×dim(2),而获得deltas的通用方法为反向传播算法.为了清晰地展示反向传播算法的计算过程,提供了一个dim(1)=dim(3)=3,dim(2)=2的单隐藏层自动编码器,并在图4中绘制了后向传播过程.由图4可知,deltas由隐藏层、输出层中所有神经元的激励误差组成,其计算方式为
(12)
(13)
其中,Wij(i=1,2,…,dim(1);j=1,2,…,dim(2))为权重矩阵W的第i行、第j列元素.由式(12)(13)可知,每一层的误差均由下一层神经元的激励误差反向加权得来,因此该计算过程称为反向传播.
本文选择使用随机梯度下降算法(stochastic gradient descent, SGD)作为自动编码器的训练算法.原始的梯度下降算法(gradient descent, GD)在每次更新权重时需要使用所有训练样本计算下降梯度,SGD仅使用单个样本,相比于GD具有更快的收敛速度.本文提出的设备认证系统需要在通信时为设备提供数据包级别的认证服务,对神经网络的训练速度要求达到微秒级,因此选用更为迅速的SGD算法.在利用SGD算法更新权重之前,首先需要利用式(12)(13)计算出deltas,然后利用式(14)更新权重:
(14)
其中,ε为自动编码器的学习率.式(14)的计算利用了sigmoid函数求导公式:
(15)
3 基于混合特征的无线设备指纹生成方案
本节描述了基于混合特征的无线设备指纹生成方案,包括PAID指纹和CSI指纹的生成方案,并利用理论分析和实验测试2种方式验证了PAID指纹和CSI指纹的有效性.
3.1 PAID指纹生成方案
为了获取待识别无线终端的数据包到达时间间隔,终端需要以恒定速率Qpkts/s发送无线数据包,每个数据包都应当携带发送设备的身份信息(如MAC,IP等),便于识别设备筛选.处于监听模式的识别设备接收到来自该终端的数据包Pi(i为接收数据包的编号)时,记录下数据包的到达时间ti,并将其添加在数据包到达时间序列PA=(t1,t2,…,ti-1)的末尾.当识别设备接收到L+1个来自该终端的数据包P1,P2,…,PL+1后,利用PA=(t1,t2,…,tL+1)计算数据包到达时间间隔序列PAI=(Δt1,Δt2,…,ΔtL).其中,Δti(i=1,2,…,L)的计算方式为
Δti=ti+1-ti.
(16)
随后,通过计算PAI的分段密度来获取其分布特征.PAI的分段密度的计算方法为:将时间区间[tbeg,tend]平均分为SEG个子时间区间([tbeg,tend1],(tend2,tend3],…,(tend(SEG-1),tend]).计算PAI中的时间间隔落在每个子区间中的数量,记为PN=(pn1,pn2,…,pnSEG).令pn为PAI中的时间间隔落在时间区间[tbeg,tend]中的总数,则分段密度计算方法为
(17)
该SEG维序列即为PAID指纹PFP=(h1,h2,…,hSEG).
3.2 CSI指纹生成方案
为了方案描述的统一性,以带宽为20 MHz、使用64个OFDM子载波进行数据传输的无线网络和具有单收发天线的无线终端进行讲解.接收机接收到无线终端发来的数据包后利用信道估计算法获取CSI(见2.2节),该CSI是一个长度为64的复向量,表示为M=(m1,m2,…,m64).由2.2节可知,用于信道估计的长训练序列在编号为-32,-31,-30,-29,-28,-27,0,27,28,29,30,31的12个子载波上幅度为0,因此在生成CSI指纹前需将这些值剔除.剔除后获得长度为52的复向量U=(u1,u2,…,u52),每个值代表了相应子载波的幅度和相位.
CSI的相位信息需要经过特殊处理才能更加稳定,这种处理将会增加认证系统的计算复杂度.相比之下,未经处理的CSI的幅度已经具有较高的稳定性和设备差异(见3.4节).出于降低设备识别方案的数据处理复杂度、提高设备识别时间效率的需求,本文将使用CSI的幅度来生成设备的CSI指纹.将CSI幅度序列表示为ACSI=(a1,a2,…,a52),则ai=|ui|(i=1,2,…,52).
Fig.5 CSI fingerprints before and after normalization图5 归一化前后的CSI指纹
图5(a)展示了从受人员走动干扰的终端采集的10 000个CSI幅度序列ACSI.可以看到,由于存在环境干扰,该终端的CSI幅度在测量时间内存在较为明显的变化:ACSI发生整体上下偏移.但是尽管如此,所有的ACSI仍然具有相近的形状.为了削弱幅度变化对指纹识别性能带来的负面影响,需要提取ACSI的形状信息.该形状信息通过将每个CSI幅度序列进行最大-最小值归一化来获取.对于ACSI,令amax=max{a1,a2,…,a52},amin=min{a1,a2,…,a52},则最大-最小值归一化方法为
(18)
归一化后的CSI幅度序列即为CSI指纹CFP=(c1,c2,…,c52).图5(b)展示了图5(a)中的CSI幅度序列归一化后得到的CSI指纹,可以看出,CSI指纹仅保留了CSI幅度序列的形状信息,相比于未经处理的CSI幅度序列具有更小的离散度.
3.3 PAID指纹有效性分析
本节将分析PAID指纹的有效性,即PAID指纹确实能够标识设备的硬件特征,并用于设备身份识别.
设备利用无线网卡发送数据包是一个复杂的过程.当网络层构建好一个数据包后,CPU在主存储器(dynamic random access memory,DRAM)中创建缓冲区描述符,该描述符包含数据包在存储器中的存储地址以及数据的长度(当数据包存储在多个不连续的虚拟内存块时,CPU需要创建多个缓冲区描述符).然后,CPU将新建的缓冲区描述符信息通过外部数据总线、北桥芯片、PCI总线写入网络接口卡(network interface card, NIC)的内存映射寄存器.NIC检测到新数据包到来后,启动若干个直接内存访问(direct memory access, DMA)检索描述符并读取数据包,这些数据仍然通过外部数据总线、北桥芯片、PCI总线传输.最终,NIC通过MAC单元发送数据包.
由上述过程可以看出,数据包的发送主要依赖于CPU、DRAM、L1/L2 Cache、外部数据总线、北桥芯片、PCI总线、NIC、DMA控制器、MAC单元.进一步地,这些硬件是影响利用无线网卡发送数据包所需时间的主要因素,而该时间正是数据包的传输时延(见2.1节).不同型号的设备将使用不同的硬件,因此传输时延能够用来反映不同型号的设备之间的差异.此外,即使是型号相同的设备,硬件的电气特性也会因为生产误差而不同,这会导致不同的设备具有不同的时钟偏移,因此数据包的传输时延也能够用来反映相同型号的设备之间的差异.由2.1节的讨论可知,数据包到达时间间隔主要由收发设备的数据包传输时延组成,因此数据包达到时间间隔也能够反映设备硬件的差异.
重要的是,由于操作系统调度算法和无线信道退避算法的随机性,单个数据包达到时间间隔也具有随机性.可以将数据包到达时间间隔看作服从某种分布的随机数,虽然单个数值受软件影响具有随机性,但是整体分布特征由设备硬件特征决定.因此,可以利用大量数据包时间间隔的分布特征来生成PAID指纹.分布特征通常包含差异性特征(如极差、标准偏差和方差)、规律性特征(如算术平均值、中位数、众数)和概率密度.前两者从单一维度描述分布特征,概率密度则能够完全描述分布情况.因此,分段密度作为一种概率密度的粗粒度近似计算方式,能够很好地反映数据包到达时间间隔的分布特征,进而标识设备的硬件特征.
以上通过理论分析证明了基于数据包时间间隔分布的PAID指纹的有效性,下面从2个方面结合实际测试结果来证实PAID指纹的有效性.
1) 基于数据包时间间隔分布的指纹能够标识设备的硬件:为了证实这一点,从2类测试设备集提取了PAID指纹.第1类设备集包含4台不同型号的设备,第2类设备集则包含3台同型号的设备.为了更清晰地看出设备间指纹的差异,用折线图来绘制指纹.图6(a)展示了第1类设备集的PAID指纹,并标有每个指纹对应的设备型号.可以看出,除了设备2的数据包达到时间间隔集中分布在9.65 ms左右外,其余3台设备均集中分布在10 ms左右,这表明规律性特征无法反映设备硬件差异;此外,设备2与设备3的数据包时间间隔样本都较为离散,因此差异性特征无法反映设备硬件差异.对比之下,用分段密度表示的粗粒度概率密度则能够很好地反映此差异.图6(b)展示了第2类设备集的PAID指纹,可以看出,虽然该组设备集的PAID指纹差异较小,但是仍具有不同的分布趋势,借助机器学习算法可以感知同型号设备之间的差异并进行有效的身份识别.
Fig.6 PAID fingerprints for different devices图6 不同设备的PAID指纹
2) 基于数据包时间间隔分布的指纹与设备所处的物理环境无关:为了证实这一点,利用图6(a)所示的4台设备进行了测试.测试时,每台设备被分别放置在4个不同的位置,图7显示了4台设备在4个不同位置上的PAID指纹.可以看出,即使设备的位置发生了改变,设备的PAID指纹依旧相似,而不同的设备之间则具有很大的差异.这表明PAID指纹与设备所处的物理环境无关.
3.4 CSI指纹有效性分析
本节将分析CSI指纹的有效性,即CSI指纹确实能够标识设备的无线信道特征,并用于设备身份识别.
在无线设备工作时,设备的物理位置决定了无线信道的多径环境.这意味着,处于不同物理位置的设备将具有不同的多径环境.如2.2节所示,CSI反映了通过多条无线路径传输的无线信号后在接收机端叠加后的整体幅度衰减和相位偏移,所以CSI刻画了无线信道的多径效应.当接收机被放置在固定位置时,每个发射机与接收机之间的无线信道都是独特且相对稳定的,因此能够通过匹配CSI的方式来验证发射机的身份.
Fig.8 CSI amplitude waveforms of different devices图8 不同设备的CSI幅度波形
上一段通过理论分析证明了CSI指纹的有效性,下面从2个方面结合实际测试结果来证实CSI指纹的有效性.
1) CSI指纹能够标识设备的无线信道,进而能够用于设备身份识别:图8展示了4台放置在室内不同位置的无线终端的CSI幅度曲线,每张子图均包含1 000个CSI样本.由于测试场地面积较小,因此在采集CSI的过程中,终端的两两距离最小仅有0.5 m左右.可以看到,即使终端间的距离较小,4台终端的CSI幅度曲线仍然具有肉眼可见的形状差异.这种差异存在的根本原因为不同的终端使用不同的无线信道来传输数据,而且即使终端位置相邻,其无线信道仍然具有很大的差异,这些差异体现在CSI幅度曲线中,因此CSI指纹能够作为设备的信道标识,进而实现设备身份识别.
Fig.9 CSI amplitude waveforms under different interference图9 不同干扰条件下的CSI幅度波形
2) 处于干扰环境中的固定无线设备的CSI指纹具有稳定性:在与图8相同的CSI采集场景中,无线终端和监听设备被放置在固定的位置,在3种干扰条件下进行了时长1 min的CSI采集,并绘制了CSI幅度曲线,如图9所示.3种干扰分别为人员在距终端1 m,2 m,3 m远的位置为中心来回走动(不经过无线终端与监听设备的视距路径),CSI测量结果分别如图9(a)~(c)所示.由图9可知,当无线终端受到最大程度的干扰(第1种干扰条件)时,在不同时间测得的CSI幅度曲线依然保持近似的形状,只是所有子载波的幅度统一地增大或减小,这种差异可以通过指纹提取时的归一化来削弱.
4 基于混合特征指纹的无线设备识别方案
本节主要介绍基于混合特征指纹的无线设备识别方案,包括识别方案的基本设计思想、设备识别方案的整体流程.
4.1 方案设计思想与流程总览
本文的无线设备识别方案主要包括2个阶段的设备身份识别:
1) 无线终端接入时的设备识别.该阶段发生在处于离线状态的无线终端发出请求接入的数据报文、识别设备接收到该报文时,此时识别设备需要获取该无线终端的设备身份信息并进行身份识别,若身份识别为合法则允许该终端接入网络.
2) 无线终端通信时的设备识别.该阶段发生在无线终端成功接入无线网络后、开始不断地发送数据包时,此时识别设备从每一个来自该终端的数据包中提取身份信息并进行身份识别,若身份识别合法则判定该数据包确实来自合法终端并接受之,否则判定该数据包来自非法的终端并丢弃之.
总而言之,本文的设备识别方案包括接入时和通信时的指纹获取与身份识别.第3节讨论了PAID指纹和CSI指纹,这2种指纹具有2个重要的区别:
1) CSI指纹反映了设备的无线信道特征,PAID指纹则反映了设备的硬件特征.CSI指纹标记了无线终端的无线信道,因此即使是同一台终端,当该终端所处的环境改变时,其CSI指纹也会发生变化;与此不同的是,PAID指纹标记了设备的硬件特性,无论设备所处的环境如何变化,PAID指纹都将保持稳定.
2) CSI指纹可以从单个数据包中提取,PAID指纹则需要从大量数据包中提取.首先,由2.2节可知,每个PPDU帧都包含一个完整的CSI,而单个数据包通常由一个或多个PPDU帧传输,因此CSI指纹可以从单个数据包中提取;相比之下,PAID是大量数据包的到达时间间隔的分段密度,因此为了获取PAID指纹,必须接收来自指定无线终端的大量数据包.
当长期处于离线状态的无线终端重新请求接入无线网络时,其位置往往已经改变.此时,识别设备提前采集的用于指纹匹配的CSI指纹已经不能反映当前的信道状态.因此,接入时的设备身份识别应使用与外界因素无关的PAID指纹而非CSI指纹.在采集PAID指纹的过程中,需要接收来自待识别终端的大量数据包,如果接入时设备识别成功,则从这些数据包中提取的CSI指纹可以被用于通信时设备识别的指纹匹配,因为这些CSI指纹反映了最新的信道状态.若不利用PAID指纹进行接入时设备识别,而是直接重新采集终端的CSI指纹再进行接入时设备识别,则无法确定该无线终端是否伪造了身份.因为如果非法终端利用伪造的合法身份请求接入,识别设备就会采集到来自非法终端的指纹,识别设备并没有判断新采集的CSI指纹是否来自合法终端的能力.当采用了PAID指纹时,若PAID指纹匹配成功,则表明这些数据包来自合法终端.
当无线终端成功接入并开始通信时,应采用CSI指纹而非PAID指纹.因为CSI可以从单个数据包中提取,因此相比于PAID指纹,CSI指纹可以用于在终端通信时实现实时的逐包设备识别,并及时发现非法终端发来的伪造数据包,进而过滤携带虚假身份的数据.
Fig.10 Flow chart of the device identification scheme图10 设备身份识别方案的总流程图
本文使用指纹匹配网络来分别进行接入时和通信时的指纹匹配和设备识别,分为PAID指纹匹配网络和CSI指纹匹配网络.设备识别时,首先将指纹输入匹配网络,再将输出的匹配结果和阈值进行比较来判定识别是否成功.PAID/CSI指纹匹配网络具有相同的基本结构,其主要组成单元为自动编码器,在进行指纹匹配之前需要提前采集大量的PAID/CSI指纹来训练匹配网络.
设备身份识别方案的总流程见图10.可以看到,设备识别流程主要分为3个步骤:
1) 接入时的设备识别.当接收到无线终端D发来的接入请求后,开始执行接入时设备识别,主要包括PAID指纹提取、CSI指纹提取与PAID指纹匹配;获取指纹匹配结果后,将其与设定的阈值进行比较,并获得识别结果;若识别成功,利用新获得的CSI指纹更新CSI指纹匹配网络,否则拒绝终端D的接入请求并结束本次识别工作.
2) 更新CSI指纹匹配网络.接入时设备识别成功,说明新采集的CSI指纹携带的身份信息是真实的,因此以这些指纹为训练集重新训练CSI指纹匹配网络.重新训练的CSI指纹匹配网络能够反映终端D的最新无线信道状态,因此可以用于后续的实时设备识别.
3) 通信时的实时设备识别.当CSI指纹匹配网络训练结束后,对终端D发来的数据包进行实时的设备识别.也就是,从每个数据包中提取CSI指纹并进行CSI指纹匹配,若匹配结果超过预设的阈值,则数据包的身份识别成功,否则身份识别失败,将该数据包丢弃.
Fig.11 Training flowchart of PAID fingerprint matching network图11 PAID指纹匹配网络的训练流程图
Fig.12 PAID fingerprint matching network structure图12 PAID指纹匹配网络结构
此外,图11给出了PAID指纹匹配网络的训练流程,该流程需要在开始识别无线终端之前完成,可以视作设备识别的准备工作.下文将按照顺序详细介绍各步骤的流程.
4.2 训练PAID指纹匹配网络
图12显示了PAID指纹匹配网络的基本结构.由图12可知,PAID指纹匹配网络由匹配层和输出层组成.其中,匹配层由I个自动编码器并联组成,输出层则有一个线性变换器构成.假设匹配层的每个自动编码器的输入维度均为Dim,压缩率均为ρ,则自动编码器隐藏层的维度为ρDim.线性变换器的输入I个自动编码器的重建误差RMSE,其将所有自动编码器的I个重建误差进行线性变换得到最终匹配结果γ,变换方法为
γ=ε0+ε1RMSE1+…+εIRMSEI.
(19)
在进行设备识别之前,需要提前采集无线终端的PAID指纹并训练PAID指纹匹配网络.图11给出了PAID指纹匹配网络的训练流程,具体描述为:
1) 令PAID指纹计数器p=0,该计数器用于记录当前已采集的PAID指纹数量.令目标指纹数量为PacketNum,当已采集的PAID指纹数量达到PacketNum后停止采集.
2) 初始化PAID指纹计数器后,识别设备进入监听状态,捕获来自无线终端D的连续L+1个数据包,记作(MP1,MP2,…,MPL+1).这些数据包被按照到达的时间排序,因此MPi+1的到达时间一定大于等于MPi的到达时间,其中i=1,2,…,L.
3) 识别设备在接收数据包MPi(i=1,2,…,L)时,记录下其到达时间ti.当接收到L+1个数据包后,识别设备获取无线终端D的数据包到达时间序列(t1,t2,…,tL+1).然后,利用3.1节提供的PAID指纹生成方法计算数据包到达时间间隔(Δt1,Δt2,…,ΔtL).
4) 根据3.1节给出的分段密度计算方法计算(Δt1,Δt2,…,ΔtL)的分段密度,生成PAID指纹PFPp=(h1,h2,…,hSEG).以PFPp为训练样本,对PAID指纹匹配网络进行单次训练.
5) PAID指纹匹配网络的单次训练完成后,判断已采集的PAID指纹数量是否达标(达标即p≥PacketNum).若p≥PacketNum,结束PAID指纹匹配网络的训练;若p 图13为PAID指纹匹配网络的单次训练过程示意图.如图13所示,PAID指纹匹配网络需要训练的部分为匹配层的I个自动编码器,输出层的线性变换器通常选用固定的参数,因此无需训练或进行数值更改. Fig.13 Training process of PAID fingerprint matching network图13 PAID指纹匹配网络的训练过程示意图 图13中所示的训练过程主要包括2个方面. 2) 匹配层自动编码器的训练.令θ表示匹配层中所有自动编码器的集合,θi(i=1,2,…,I)表示匹配层中的第i个自动编码器,则训练过程为:将PFPi输入θi(i=1,2,…,I)并进行前向传播,获得所有神经元的激活Ai和输出yi;利用后向传播算法计算所有神经元的激活误差deltai;结合Ai和deltai,利用随机梯度下降算法更新θi.以上所使用的前向传播算法、后向传播算法和随机梯度下降算法如2.3节所示. PAID指纹匹配网络的单次训练算法描述为: (20) 5) 利用神经元的激活Ai和激活误差deltasi训练θi. 图14的前3个主要步骤描述了PAID指纹提取的流程.当识别设备接收到来自无线终端D的接入请求后,需要获得终端D的PAID指纹,以进行接入时的设备识别.为了获取终端D的PAID指纹,识别设备进入监听状态,捕获来自无线终端D的连续L+1个数据包,记作(P1,P2,…,PL+1).这些数据包按照到达的时间排序,因此Pi+1的到达时间一定大于等于Pi的到达时间,其中i=1,2,…,L. 识别设备在接收数据包Pi(i=1,2,…,L)时,记录下其到达时间ti.当接收到L+1个数据包后,识别设备获取无线终端D的数据包到达时间序列(t1,t2,…,tL+1).然后,利用3.1节提供的PAID指纹生成方法计算数据包到达时间间隔(Δt1,Δt2,…,ΔtL). 根据3.1节给出的分段密度计算方法计算(Δt1,Δt2,…,ΔtL)的分段密度,生成PAID指纹PFP=(h1,h2,…,hSEG). Fig.14 Flow chart of PAID fingerprint based device authentication in access phase图14 基于PAID指纹的接入时设备识别流程图 图14的后2个主要步骤描述了PAID指纹匹配的流程.获取无线终端D的PAID指纹PFP后,识别设备利用提前训练好的PAID指纹匹配网络来匹配PFP,并根据匹配结果来判断接入时识别成功与否.首先,识别设备将PFP输入PAID指纹匹配网络.匹配网络输出匹配结果γ0,识别设备将γ0与预设的阈值thresholdac进行比较来判断识别是否成功:若γ0≤thresholdac则识别成功,即判断无线终端D使用了真实的身份信息;若γ0>thresholdac则识别失败,即判断无线终端D使用了虚假的身份信息. PAID指纹匹配算法描述如下: 1) 定义一个I维向量v,并初始化为0.向量v为线性变换器的输入,其内部存储匹配层的I个自动编码器的匹配输出. (21) (22) 6) 所有自动编码器的前向传播完成后,将v输入线性变换模块,得到最终匹配结果γ0: γ0=ε0+ε1RMSE1+…+εIRMSEI. (23) CSI指纹匹配网络具有与图11所示的PAID指纹匹配网络相同的基本结构,由匹配层和输出层组成.其中,匹配层由J个自动编码器并联组成,输出层则有一个线性变换器构成.其中,每个自动编码器的压缩率均为ρ.线性变换器的输入为J个自动编码器的重建误差RMSE,其将所有自动编码器的J个重建误差进行线性变换得到最终匹配结果γ,变换方法为 γ=ε0+ε1RMSE1+…+εJRMSEJ. (24) CSI指纹匹配网络的训练过程与PAID指纹匹配网络近似,最大的区别在于:CSI指纹在生成时已经归一化,因此输入匹配网络之前无需再次归一化. 在进行通信时的实时设备识别之前,需要训练CSI指纹匹配网络,以获取无线终端最新的无线信道状态.图15给出了CSI指纹匹配网络的训练流程,具体描述为: 1) 从在接入时获取的L+1个数据包 (P1,P2,…,PL+1)中提取出L+1个CSI指纹(CFP1,CFP2,…,CFPL+1),指纹提取方法见第3.2节; 4) 将训练好的CSI指纹匹配网络存储在本地,用于通信时的实时设备识别. Fig.15 Training flowchart of CSI fingerprint matching network图15 CSI指纹匹配网络的训练流程图 CSI指纹的降噪处理包括2个步骤,分别为异常值剔除和时域平滑. 异常值剔除的步骤为:在短时间间隔内,CSI指纹中的每个子载波对应的数值应在有限的范围内浮动.但是在现实中往往由于存在软硬件缺陷等原因而出现远超预期数值波动范围的数值.这种数值无法反映设备的无线信道特征,保留下来会降低CSI指纹的设备识别性能.因此需要将这些异常值剔除. (25) 其中,erfinv为逆误差函数. (26) 其中,η为判断数值是否为异常值的阈值权重. (27) 其中,ω为平滑滤波窗口的长度. CSI指纹匹配网络的训练算法描述为: 3) 将CFPj和yj输入ϑj并进行后向传播,获得激活误差deltasj; 4) 结合2.3节的随机梯度下降算法,利用神经元的激活Aj和激活误差deltasj训练ϑj. 图16的第1个主要步骤为CSI指纹提取.当无线终端D通过接入时的设备识别后,终端D成功接入无线网络,并开始不断地发送数据包,识别设备则利用CSI指纹来识别每个数据包携带的身份信息是否真实. 识别设备首先令数据包计数器n=1.数据包计数器用于记录从通信时的实时识别开始到目前为止当前已经识别的数据包的数量.然后,等待无线终端D发来新的数据包DPn.在终端D没有发送新的数据包时,识别设备将处于阻塞状态;当接收到终端D发来新的数据包DPn后,识别设备结束阻塞状态,并针对该包进行身份识别. Fig.16 Flow chart of real-time CSI fingerprint based device authentication in communication phase图16 基于CSI指纹的通信时实时设备识别流程图 获取新数据包DPn的CSI后,生成CSI指纹CFPn,具体的CSI指纹生成方法如3.2节所述:首先,从所有子载波中筛选出可用子载波,得到CSI′;然后提取CSI′的幅度,得到CSI幅度序列ACSI;利用最大-最小归一化法对ACSI进行归一化,得到CSI指纹CFPn. 图16的带背景颜色的框为CSI指纹匹配的3个主要步骤.获取数据包DPn的CSI指纹CFPn后,将其输入CSI指纹匹配网络进行身份识别.将匹配网络的输出γn与阈值thresholdas比较来获得识别结果:若γn≤thresholdas则数据包DPn的身份识别成功,接受该数据包;否则识别失败,判定DPn携带了虚假的设备身份并丢弃该数据包. CSI指纹匹配算法描述为: 1) 定义一个J维向量v,并初始化为0.向量v为线性变换器的输入,其内部存储匹配层的J个自动编码器的匹配输出. (28) 5) 所有自动编码器的前向传播完成后,将v输入线性变换模块,得到最终匹配结果γn: γn=ε0+ε1RMSE1+ε2RMSE2+…+ (29) 图16的最后一个主要步骤为更新CSI指纹匹配网络.在无线终端通信过程中,即使终端位置没有发生改变,终端所处环境的细微变化的叠加会体现在终端的CSI指纹上,表现为在一段时间内(如10 min)采集的CSI指纹发生“连续”的变化,该“连续”是指相邻的CSI指纹之间的差异很小.这种变化虽然在短期内不会使CSI指纹产生较大的改变,但是设备识别通常是一项长期的工作,因此在接入时设备识别过程中重新训练的CSI指纹匹配网络很可能再次失效(即无法反映最新的信道状态,进而使得合法设备识别失败). 利用从新数据包中获取的CSI指纹不断地训练CSI指纹匹配网络可以使匹配网络始终反映最新的信道状态.在实际通信过程中,每秒发送的数据包通常为数百个,因此当无线终端活跃时,每秒都可以获取足够的CSI指纹,用于更新CSI指纹匹配网络.重要的是,仅使用识别成功的CSI指纹来更新匹配网络,因为识别失败的CSI指纹被判定为来自携带虚假身份信息的非法终端.更新CSI指纹匹配网络的算法与4.4节中给出的单次训练算法一致. 本节主要分析PAID指纹匹配网络和CSI指纹匹配网络的时间复杂度.分析时间复杂度时将会使用的变量有:SEG和N分别表示PAID指纹和CSI指纹的长度,I和J分别表示PAID指纹和CSI指纹的分段数量(即匹配层中的自动编码器的数量),则SEG/I和N/J分别表示PAID指纹和CSI指纹匹配网络的自动编码器的输入维度.此外,ρ表示自动编码器的压缩率,则硬件和CSI指纹匹配网络中自动编码器隐藏层的神经元数量分别为ρSEG/I和ρN/J. 对于单个自动编码器,假设其输入维度为u,中间层的降维比例为ρ.在前向传播过程中,中间层的激活需要u×ρu=ρu2次计算,输出层的激活同样需要ρu2次计算.因此,单个自动编码器的前向传播复杂度为O(ρu2)=O(u2).此外,自动编码器的后向传播与前向传播具有相同的复杂度,因此后向传播复杂度也为O(u2). 假设匹配层的所有自动编码器均为串行运算,则利用PAID指纹匹配网络进行一次指纹匹配的复杂度为O(I×(SEG/I)2+SEG)=O(SEG2/I).令I=SEG/β,β为子PAID指纹的长度.如果对匹配层中自动编码器的规模进行限制(限制在6或6以下),则β可以被视为常量.则复杂度表达为O(SEG2/I)=O(SEG2/(SEG/β))=O(βSEG)=O(SEG). 同样地,利用CSI指纹匹配网络进行一次指纹匹配的复杂度为O(J×(N/J)2+N)=O(N2/J).令J=N/α,α为子CSI指纹的长度.如果对匹配层中自动编码器的规模进行限制(限制在6或6以下),则α可以被视为常量.则复杂度表示为O(N2/J)=O(N2/(N/α))=O(αN)=O(N). 当不采用多个自动编码器组成的网络,而采用单个大规模自动编码器进行指纹匹配时,PAID指纹匹配网络和CSI指纹匹配网络将分别由输入维度为SEG和N的自动编码器构成,根据上文所推导的自动编码器的时间复杂度可知,此时PAID指纹匹配网络和CSI指纹匹配网络的识别时间复杂度为O(SEG2)和O(N2).由此可见,如果将单个自动编码器的输入维度控制在固定值以下,那么本文提供的指纹匹配网络能够将平方时间复杂度降低到线性时间复杂度. 本节讲述了基于混合特征指纹的设备识别框架的实现与评估.首先整体描述了基于混合特征值的识别框架,然后描述了识别框架中的各个部分的具体实现方法,接着给出了实际测试的场景设置、评估指标以及2个设备识别阶段下的设备识别结果. 图17展示了设备识别框架.从组成来看,该框架可分为3个部分,分别为:指纹匹配网络、接入时设备识别和通信时实时设备识别.其中,接入时设备识别部分模拟了无线终端接入时的设备识别过程,通信时实时设备识别则模拟了终端成功接入后、开始通信时实时的逐包识别过程. Fig.17 Wireless device identification framework based on hybrid feature fingerprint图17 基于混合特征指纹的无线设备识别框架 从功能来看,该框架可分为3个层次:指纹采集层、设备识别层和CSI指纹匹配网络训练层. 指纹采集层包括: 1) 接入时PAID指纹采集模块,负责在无线终端请求接入时采集PAID指纹; 2) 通信时CSI指纹采集模块,负责在无线终端通信时,从终端发来的每一个数据包中提取CSI指纹. 设备识别层包括: 1) 接入时设备识别模块,负责利用无线终端的PAID指纹来识别其身份; 2) 通信时设备识别模块,负责利用数据包的CSI指纹来识别其身份,进而判断数据包是否携带真实的身份信息. CSI指纹匹配网络训练层包括: 1) CSI指纹匹配网络训练模块,负责利用接入时采集的新CSI指纹来训练网络; 2) CSI指纹匹配网络更新模块,负责利用识别成功的CSI指纹单次训练网络. 为了更清晰地描述整个设备识别框架,给出一台无线终端的完整识别流程:识别设备接收到来自终端的接入请求时,接入时PAID指纹采集模块采集该终端的PAID指纹;获得PAID指纹后,接入时设备识别模块读取该终端的PAID指纹匹配网络并进行指纹匹配,根据匹配结果得到识别结果;若识别成功,CSI指纹匹配网络训练模块利用接入时PAID指纹采集模块中获得的数据包生成CSI指纹集,将其作为训练集来训练CSI指纹匹配网络,训练后的网络覆盖原网络;通信时CSI指纹采集模块等待终端发来的数据包,捕获到新数据包后,从中提取CSI指纹;通信时设备识别模块读取该终端的CSI指纹匹配网络并进行指纹匹配,匹配成功则接受该数据包,否则丢弃;若数据包识别成功,CSI指纹匹配网络更新模块利用该CSI指纹单次训练CSI指纹匹配网络. 为了更方便地描述指纹匹配网络以及3个层次的实现方式,假设设备识别框架的应用场景为带宽为20 MHz、使用64个OFDM子载波的无线网络,识别设备和无线终端均具有单收发天线. 指纹匹配网络是无线设备识别框架的核心,它包含PAID指纹匹配网络和CSI指纹匹配网络,负责在2个设备识别阶段(接入时设备识别、通信时逐包设备识别)提供用于指纹匹配的匹配网络. 其具体实现方式为:对于每个需要使用无线网络的合法无线终端,识别设备在内部新建一个PAID指纹匹配网络文件和一个CSI指纹匹配网络文件,文件用JSON格式保存用于描述指纹匹配网络的参数.通过读取和写入文件中的相应参数来实现匹配网络的读取和更改. 下面将讨论指纹匹配网络的参数.回顾第4节可知,PAID指纹匹配网络和CSI指纹匹配网络均由自动编码器和线性变换器组成.本文所使用的线性变换器选用均值变换器,即对于PAID指纹匹配网络有ε1=ε2=…=εI=1/I,ε0=0;对于CSI指纹匹配网络有ε1=ε2=…=εJ=1/J,ε0=0.以上参数均为固定值,因此无需存储在文件中.此外,本文将PAID/CSI指纹匹配网络中所有自动编码器的学习率设为0.05,压缩率ρ设为0.75,激活函数设为sigmoid函数,匹配层自动编码器的个数I和J均设为固定值,这些参数均无需存储.因此,需要存储在文件中的参数仅为:PAID指纹匹配网络的匹配层中所有自动编码器的参数θ={θ1,θ2,…,θI},以及CSI指纹匹配网络的匹配层中所有自动编码器的参数ϑ=(ϑ1,ϑ2,…,ϑJ). 指纹采集层主要负责接入时和通信时的指纹采集,包括接入时PAID指纹采集模块、通信时CSI指纹采集模块.这2个模块分别负责接入时识别和通信时逐包识别的指纹采集. 1) 接入时PAID指纹采集模块的实现:首先定义一个空的数据包到达序列PA,然后令该终端以100 pkts/s的发送速度连续发出L+1个数据包(P1,P2,…,PL+1).每接收到一个数据包Pi,模块提取其到达时间和CSI序列,分别记作ti和Ci,将ti添加到PA的末尾,将Ci放入CSI队列,以备后续使用.捕获完成后,按照3.1节给出的PAID指纹生成方案,利用PA生成PAID指纹PFP,并放入PAID指纹队列,以备后续使用.其中,在接入时让终端以指定速度连续发送数据包需要修改现有的协议,本文为了简化设计,选择利用ICMP协议来模拟这一过程:识别设备以100 pkts/s的速度向终端发送ICMP回送请求(echo request)数据包,并捕获终端卡来的ICMP回送响应(echo reply)数据包. 设备识别层主要负责接入时和通信时的设备识别,包括接入时设备识别模块、通信时设备识别模块.这2个模块分别负责接入时和通信时的指纹匹配,并根据匹配结果来获得识别结果. 1) 接入时设备识别模块的实现.开始工作后,首先进入阻塞等待状态,等待PAID指纹队列非空;PAID指纹队列出现新指纹后等待结束,从队列中取出PAID指纹PFP;读取PAID指纹匹配网络参数,并新建一个匹配网络;将PFP输入网络,获得匹配结果γ0;比较γ0与thresholdac,若γ0>thresholdac则识别失败并向所有模块发出终止信号,否则识别成功并向CSI指纹匹配网络训练模块发出识别成功信号. 2) 通信时设备识别模块的实现.开始工作后,首先进入阻塞等待状态,CSI指纹匹配网络训练模块发来训练完成信号;接收到信号后,读取CSI指纹匹配网络参数,并新建一个匹配网络;阻塞等待CSI指纹队列非空;CSI指纹队列出现新指纹后等待结束,从队列中取出CSI指纹CFPn;将CFPn输入网络,获得匹配结果γn;比较γn与thresholdas,若γn>thresholdas则识别失败并向所有模块发出终止信号,否则识别成功并将CFPn放入训练队列;进入阻塞等待状态,继续等待CSI指纹队列非空. CSI指纹匹配网络更新层主要负责接入时和通信时的CSI指纹匹配网络训练,包括CSI指纹匹配网络训练模块、CSI指纹匹配网络更新模块.这2个模块分别负责接入时和通信时的网络训练以及更新. 2) CSI指纹匹配网络更新模块的实现.开始工作后,首先进入阻塞等待状态,等待训练队列非空;训练队列出现新指纹后等待结束,从队列中取出用于更新的CSI指纹CFP;用CFP单次训练通信时识别模块的CSI指纹匹配网络. 需要注意的是,该模块与通信时设备识别模块共用一个CSI指纹匹配网络.若两模块不共用网络,那么当该模块更新网络后,需要将新的参数写入文件,然后通信时设备识别模块需要读取文件并重新建立匹配网络.前者避免了频繁的文件读写,提高了识别的时间效率. 本节所提供的无线设备身份识别框架包含接入时识别和通信时逐包识别这2个工作阶段,2个阶段使用不同类型的指纹、不同的指纹采集和处理方案以及不同的指纹匹配方案.为了评估每种指纹识别方案的性能,本节先后测试了基于PAID指纹的接入时设备识别和基于CSI指纹的逐包设备识别. 在接入时设备识别测试中,选取了18台无线设备作为被识别的对象,设备信息如表1所示.其中包含3台型号相同的路由器、3台型号相同的树莓派以及3台型号相同的台式电脑,这3组设备用于评估接入时设备识别方案识别相同型号的设备性能.其余还包括手机、平板电脑以及笔记本电脑,用于测试该识别方案能否用于多种设备类型.此外,用1台树莓派(Raspberry Pi 3 Model B+)作为识别设备,负责采集待测无线终端的PAID指纹.该设备通过安装hostapd服务和dhcp服务实现无线网络共享,进而作为无线路由器与无线终端直接相连,方便采集指纹的同时消除了数据包转发时延对PAID指纹带来的干扰. Table 1 The Information of the Devices Used for Evaluation in Access Stage 接入时设备识别测试流程为:识别设备R开启无线网络共享,待测终端D接入R的共享网络,此时R为D的网关;R以100 pkts/s的速度向D发送ICMP回送请求包,并监听D的ICMP回送响应包,记录响应包到达时间;每采集到L+1个到达时间,生成PAID指纹并写本地文件;采集8 000个PAID指纹后停止;新建1个PAID指纹匹配网络,读取本地文件中的指纹,以前1 000个PAID指纹为训练集训练匹配网络,以后7 000个指纹为测试集测试PAID指纹识别的准确率.对所有待测设备重复以上步骤. 在通信时逐包设备测试中,选取2个测试场景进行CSI指纹采集和设备识别,分别为公寓测试场景和实验室测试场景.2个测试场景均使用带宽为20 MHz的WiFi网络,并且均用一台固定放置的树莓派(Raspberry Pi 3 Model B+)作为识别设备,负责采集待测无线终端的CSI指纹.该树莓派安装了Gringoli等人[26]提供的插件,该插件通过修改WiFi网卡驱动程序来监听指定MAC地址的无线数据包,并将该数据包的CSI发送到应用层.公寓测试场景中,将4台无线终端作为待测设备放置在4个不同的位置,其中3台放置在无物体移动、无人员走动的室内,1台放置在无人员走动、但是离识别设备较远且有墙壁相隔的走廊.在实验室测试场景中,将1台无线终端作为待测设备放置在固定的位置,人员在距其1 m,2 m,3 m位置处来回走动. 通信时逐包设备识别测试流程为:在公寓测试场景中,识别设备创建4个空文件,分别用于存储4台无线终端的CSI;4台终端同时以100 pkts/s的速率对任意IP发送ICMP回送请求包;识别设备捕获数据包,同时获取数据包的MAC地址和CSI,根据MAC地址将CSI存入相应的文件;每台设备均采集10 000组CSI,采集完成后停止;对于每台设备,对前L+1个指纹进行降噪,降噪后的指纹作为训练集;剩余的指纹作为测试集. 为了评估身份验证框架的性能,使用真正例率TPR和真反例率TNR作为两阶段的设备识别准确率的评估指标.其中,TPR=TP/(TP+FN):TP是真正例的数量,在本文中即某终端的所有指纹中识别成功的指纹数量;FN是假反例的数量,即某终端的所有指纹中识别失败的指纹数量.TNR=TN/(TN+FP):TN是真反例的数量,即所有不属于某终端的指纹中识别失败的指纹数量;FP是假正例的数量,即所有不属于某终端的指纹中识别成功的指纹数量.TPR被用来评估指纹标识设备身份的能力,TNR则被用来评估设备识别框架检测携带虚假身份信息的设备的能力. 为了清晰地描述测试指标的计算方法,以接入时设备识别中设备1、设备2和设备3的PAID指纹构成的测试集为例.当测试设备1的TPR时,先用设备1的前10 00个PAID指纹训练PAID指纹匹配网络,然后利用该网络识别剩余7 000个PAID指纹,此时TP+FN=7 000,TP为识别成功的PAID指纹的数量.当测试设备1的TNR时,首先用设备1的前1 000个PAID指纹训练PAID指纹匹配网络,然后利用该网络识别设备2和设备3的16 000个PAID指纹,此时TN+FP=16 000,TN为识别失败的指纹的数量. 由3.1节的PAID指纹生成方案可知,影响指纹生成的变量有数据包到达时间间隔序列PAI的长度L,以及PAID指纹长度SEG.L越大,则用于提取PAID指纹的数据包(P1,P2,…,PL+1)就越多,因此采集PAID指纹所需的时间就越长,进而增加接入时设备识别的用时.但是,L越小则数据包就越少,数据包到达时间的统计特征可能会淹没在退避算法和操作系统调度带来的随机性当中,因此需要选择合适的L来生成PAID指纹.为此,在SEG=20时利用不同的L开展了识别准确率测试,测试数据集为设备10、设备11和设备12的PAID指纹,TPR,TNR分别为3台设备的TPR,TNR的平均值.测试结果如图18所示.可以看出,L不同时TNR>0.99,TPR仅在0.01的范围内变化:当L≤1 400时,TPR超过0.97,而当L>1 400时,TPR下降至0.97以下.考虑到L越小,PAID指纹采集速度就越快,本文在后续测试中令L=1 000. Fig.18 Identification accuracy corresponding to different L图18 不同L对应的识别准确率 Fig.19 Identification accuracy corresponding to different SEG图19 不同SEG对应的识别准确率 SEG为PAID指纹的长度,也为计算分段密度时数据包到达时间间隔序列PAI的分段数量.较小的SEG会导致分段密度失真,无法体现出PAI的密度特征,进而降低不同设备间PAID指纹的区分度;过大的SEG则会增大PAID指纹匹配网络的规模,进而降低接入时设备识别的时间效率.因此,需要选择合适的SEG来生成PAID指纹.为此,利用不同的SEG测试了识别准确率,测试方法与图18相同.图19给出了不同SEG对应的识别准确率(每个SEG对应的I均为5).可以看出,当10≤SEG≤15时,TNR始终接近1,TPR呈现上升趋势;当SEG≤20时,TPR的增长较快;而当SEG>20时,TPR则缓慢增长,且始终低于0.98.考虑到SEG越小,PAID指纹匹配速度就越快,因此在后续测试中令SEG=20. 为选取接入时设备识别的判别阈值thresholdac,计算了任意2台设备的PAID指纹的匹配结果,计算方法为:针对设备i(i=1,2,…,18)和设备j(j=1,2,…,18)组成的测试设备对(设备i,设备j),以设备i的前1 000个PAID指纹为训练集训练PAID指纹匹配网络,然后以设备j的PAID指纹作为测试集进行指纹匹配,将8 000个指纹的匹配结果的均值作为最终结果.图20显示了所有测试设备对的匹配结果,可以看出,设备与自身的匹配结果为0.15左右,与其他设备的匹配结果则大于0.3,因此将thresholdac设置为0.2. Fig.20 Matching results of all devices pairs图20 所有测试设备对的匹配结果 最终,对18台设备分别进行了准确率测试,测试数据集为所有设备的PAID指纹集.图21为测试结果.设备6的TPR最高,约为0.981 7;设备8的TPR最低,约为0.962 3.进一步地,设备4、设备5和设备6的TPR均高于0.976,设备7、设备8和设备9的TPR均低于0.968,设备1、设备2和设备3的TPR则约为0.97,因此相比于台式机,本文所提供的PAID指纹能够更好地标识树莓派和路由器的硬件特征.此外,设备10~16的TPR均高于0.96,因此该PAID指纹同样适用于手机、平板电脑和笔记本电脑.此外,所有设备的TNR均高于0.99,表明该PAID指纹能够标识设备间的硬件特征差异,进而能够以高准确率检测出携带虚假身份信息的无线终端. 在通信时的实时设备身份识别中,由于CSI指纹具有固定的维度,在带宽为20 MHz的WiFi网络中,CSI指纹的维度为52,因此影响识别准确率的主要因素为CSI指纹匹配网络中自动编码器的个数J.图22(a)展示了J=13,6,4,2,1时的识别准确率,随着J的增加,TNR近似于1,TPR则逐渐增大.CSI指纹匹配网络中的J个自动编码器分别用于匹配J个子CSI指纹,当J增加时,CSI指纹被拆分为更多的子指纹,因此匹配目标更加局部,噪声干扰导致的CSI指纹波动则被进一步地放大,进而降低了识别准确率;当J减小时,子指纹长度增加,匹配目标趋于指纹整体,因此能够更好地学习指纹的特征,并且削弱噪声的干扰. Fig.21 Identification accuracy of all devices图21 所有测试设备的识别准确率 Fig.22 Identification accuracy for different J and identification time distribution of a single packet 图22 不同J对应的识别准确率和单个数据包的识别时间分布图 但是,由4.6节的指纹匹配网络时间复杂度分析可知,随着J的降低,匹配网络的匹配时间会随之增大,单个数据包的识别时间也随之增加.图22(b)显示了10 000个CSI指纹的指纹匹配时间的分布密度图,与4.6节的理论推导一致.过长的匹配时间可能会导致数据包到达速率与识别速度不匹配,进而无法实现实时的逐包识别,因此需要选取合适的J,在提高准确率的同时保证识别的实时性.考虑到J=4时的TPR仅比J=2时低0.006,识别时间则近似为后者的1/2,在后续测试中令J=4,此时子CSI指纹的长度为13. Fig.23 Identification accuracy in two test scenarios图 23 2种测试场景下的识别准确率 图23(a)展示了公寓测试场景中位于4个不同位置的无线终端的TPR.前3个位置在公寓内,3台终端的TPR均高于0.986;被放置在走廊中的终端的TPR下降到0.978 7.在公寓测试场景中,终端4的CSI样本的方差为3.985×103,远高于前3个位置的方差.以上测试结果表明,终端与识别设备的距离不是影响通信时设备识别准确率的直接因素.尽管随着距离的增大,存在干扰的可能性也会增加,但是在物体移动、人员走动较少的室内环境中可以忽略这种影响.走廊中的终端的CSI指纹稳定性较差,这是因为2个原因: 1) 终端与识别设备没有视距(line of sight, LOS)无线传播路径; 2) 走廊有行人走动干扰.因此,本文给出的通信时逐包设备识别框架更适用于存在LOS路径、较为稳定的室内环境. 图23(b)展示了实验室测试场景中,3种不同干扰条件下无线终端的TPR.随着人员走动路径的远离,TPR从0.943 6增长到0.975 3.在实验室测试场景下,3种干扰条件对应的CSI样本方差分别为10.084×103,7.099×103和6.941×103,因此,当人员走动路径远离时,无线终端和识别设备受到的干扰降低,同一终端的CSI指纹更加稳定,通信时设备识别准确率也更高.这表明环境干扰会降低通信时逐包设备识别框架的性能,但是在受到较大干扰(行人在距终端1 m处走动)时,通信时逐包识别准确率仍能够达到0.94.以上的测试均使用了CSI指纹匹配网络更新模块.为了测试该模块对通信时逐包设备识别准确率的改善效果,在不启用该模块的条件下测试了无线终端的TPR,测试结果如图23所示.在干扰较小的环境中(公寓测试场景中的位置1,2,3),TPR最低降至0.729 1,比启用更新模块时降低了0.257 7.在干扰较大的环境中(公寓测试场景中的位置4和实验室测试场景),TPR最低降至0.173 7,比启用更新模块时降低了0.805.因此,CSI指纹匹配网络更新模块虽然增大了通信时逐包设备识别时间,但是能够改善设备识别的性能,这种改善效果在干扰环境下更为显著. 本文提出了一种基于混合特征指纹的设备身份识别方案,该方案将2种流量特征指纹分别用于2种设备识别场景:1)在终端请求接入时,该方案利用PAID生成指纹并进行识别;2)在终端成功接入并开始通信时,该方案利用来自终端的每个数据包的CSI生成指纹,从而实现实时的逐包设备识别.同时,本文提出了一种计算复杂度较低的指纹匹配网络,以保证在计算能力有限的设备中也能快速且准确地识别设备. 为了解决CSI指纹会随着终端的位置或所处环境的改变而改变的问题,本文提出了一种基于混合特征指纹的设备身份识别方案.该方案从无线终端的PAID和CSI中提取2类指纹:前者为PAID指纹,标识设备的硬件特征;后者为CSI指纹,标识设备的无线信道特征.该方案包含两阶段的设备识别:一是当终端请求接入无线网络时,识别设备捕获该终端发送的若干数据包,从中提取PAID指纹和CSI指纹,并用PAID指纹进行识别,识别成功则用新获取的CSI指纹进行后续的CSI指纹匹配;二是当终端接入并开始通信时,识别设备从终端的每个数据包中提取CSI指纹并进行实时的逐包身份识别. 为了解决现有的利用机器学习进行指纹匹配的设备识别技术计算复杂度较高,无法在计算能力有限的嵌入式设备中实现的问题,本文提出了一种改进的指纹匹配方案,该方案利用基于自动编码器的指纹匹配网络来进行指纹匹配.该网络包括匹配层和输出层,前者由小规模自动编码器并联组成,后者由线性变换器构成,在保证高识别准确率的同时降低了计算复杂度. 在树莓派3B+上实现了基于混合特征指纹的设备识别原型系统,具体实现了无线终端接入时的PAID指纹提取、CSI指纹提取、PAID指纹匹配,以及通信时的逐包CSI指纹提取和CSI指纹匹配.利用树莓派和无线终端在公寓和实验室开展了设备识别实验,实验表明:该系统在接入时和通信时均能达到较高的设备识别准确率.4.3 基于PAID指纹的接入时设备识别
4.4 训练CSI指纹匹配网络
4.5 基于CSI指纹的通信时实时设备识别
εJRMSEJ.4.6 指纹匹配网络时间复杂度分析
5 设备身份识别框架的实现与评估
5.1 设备识别框架的设计与实现
5.2 测试场景与评估指标
5.3 接入时的设备识别性能分析
5.4 通信时的实时设备识别性能分析
6 总 结