王顺业,芦天亮,杜彦辉
中国人民公安大学 信息技术与网络安全学院,北京 100038
2014年智能家居进入发展元年,据预测到2023年,全球将有293万个家庭安装至少一种智能家居设备[1]。用户在使用互联网时最关心自己的隐私遭到泄露,而智能家居在接入互联网时同样会泄露大量用户信息。由于智能家居的特性,其采集传输的音视频信息往往更加私密,匿名通信可以保证信息传输的安全性和匿名性。
智能家居涉及家庭智能监控、家庭影音娱乐、幼长关爱系统等方面,相比于性能好带宽高的互联网设备,智能家居设备一般采用低耗能的处理器并使用无线网络进行连接,计算力和带宽都有一定的限制。互联网中被广泛使用的匿名通信模型如 Tor[2]、I2P[3]、Freenet[4]、Crowds[5]、DC-Net[6]、Tarzan[7]等由于需要进行复杂运算或不适用文件传输无法解决智能家居设备音视频文件的匿名通信问题。针对此现状,本文提出面向智能家居的音视频文件匿名通信系统,使用轻量级的加密算法,在保证匿名性和安全性的同时,降低了匿名通信系统的实施代价。
现有智能家居及物联网匿名通信模型主要可分为基于计算卸载、轻量级密码系统的方案。
Hoang[8]、Guan[9]、Braeken[10]等基于计算卸载(Computing Offloading,CO)的思想将计算压力和带宽压力转移到高性能的计算代理上,强制所有智能家居流量从计算代理进行转发,将互联网匿名通信方案应用于计算代理上,从而实现智能家居设备的匿名通信。但攻击者一旦渗透进入智能家居和代理构成的子网中,匿名便被瓦解,特别是智能家居设备多采用无线连接,为攻击者提供了便利。
基于轻量级密码系统的方案多采用基于身份的密码加密(Identity Based Encryption,IBE),IBE最早由Shamir[11]提出,使用接收者的身份信息作为公钥,不需要使用数字证书,引入私钥生成器(Private Key Generator,PKG)产生私钥,从而减少由于证书而带来的资源占用问题,同时取消了查询公钥操作,避免在此过程中遭到攻击而去匿名化。Jiang等人[12]利用双线性IBE对信息加密后,上传到公共存储空间“公告板”中,网络中所有用户在相同时间段上传和下载信息。LTAMA[13]结合IBE和椭圆曲线密码技术,使用假名达到匿名目的。STAC[14]在EAC[15]的基础上使用基于假名的加密,生成假名和一对公钥私钥,确保用户身份的匿名。
传统基于身份的加密分为四个步骤[16]:
(1)初始化:由安全参数k计算系统公开参数params以及主密钥masterkey,其中params对系统内用户公开,masterkey由PKG保管,不对外公开。
(2)生成私钥:PKG使用主密钥masterkey以及用户信息ID,生成用户的私钥SKid。
(3)加密:发送端输入明文和用户信息ID,计算得出密文。
(4)解密:接收端输入密文和对应用户的私钥SKid,得到明文。
传统基于身份的加密过程中,由于使用目标用户身份信息直接作为公钥,攻击者通过分析密文可能得出目标用户信息,导致目标匿名用户暴露。本文采用基于双线性身份的加密[17],设G1和G2为两个p阶的群组,定义存在双线映射ê:G1×G1→G2,g为G1的生成元,随机选择g2∈G1,δ,令g1=gδ,算法由四部分组成:
(1)初始化。PKG选择公开参数g,g1,g2以及主密钥δ。
(2)生成私钥。由PKG随机选取r,使用r和用户信息ID生成用户私钥d,其中ID:
(3)加密。发送者选取随机参数t,s,明文为M,计算密文:
(4)解密。接收者向PKG请求自己的私钥d=(d1,d2,d3)对密文进行解密,得到明文M:
洋葱路由(Onion Routing)的核心思想是像洋葱一样,将传输的秘密信息层层加密,秘密信息位于洋葱的最中心位置。加密过程中使用链路上节点的公钥按照从后至前的顺序进行加密,传输过程中由外到内逐层解密,每一个节点仅能解密一层加密,只能得到前任节点和后继节点的信息,并且无法获知其他节点的信息,因此能够确保通信过程中匿名性。
本文使用的相关符号定义如下:Ns(Ns≥2)表示发送端假名组的用户数,Nd(Nd≥2)表示接收端假名组的用户数,N-i(i≥3)表示转发链路上的中继节点,G表示随机序列,Fs表示文件头部特征字段,IDu表示用户公钥,SKu表示用户私钥,δ为主密钥,g,g1,g2为公开的系统参数。
如图1所示为面向智能家居的音视频匿名通信系统,发送端、接收端和转发节点分别处于不同的区域内。分别在发送端和接收端建立假名组,以假名机制实现发送端和接收端匿名,使用中继节点转发实现发送端和接收端的不可链接性。源匿名节点处于发送端假名组中,进行通信时源匿名用户首先向目录服务器请求假名节点和中继节点信息,通过出口假名节点进入中继转发网络,中继网络中最后一个节点将数据转发给目标假名节点,目标假名节点向组内所有节点进行广播,目标匿名节点接收信息完成通信。
匿名通信过程由四个基本步骤组成,下面对四个步骤进行详细分析。
步骤1源匿名节点将音视频文件的头部特征Fs与数据部分分离,数据部分采用文件分割函数f(F,l,n)=(F1,F1,…,Fn)分割成长度为l的n个分片,对分片进行随机排序得到随机序列G={G1,G2,…,Gn} ,Gn表示分片的真实序号。源匿名节点向目录服务器请求发送端假名组节点信息、中继节点信息、接收端假名组节点信息。选取节点后,对Gn先后使用目标匿名用户、目标假名节点、中继节点、出口假名节点信息作为公钥参数进行多层加密,随机挑选某个数据包嵌入Fs,将Fs和Gn使用同样的方法加密,密文c=encrypt(g,g1,g2,t,s,ID,M)。将文件分片作为payload与加密后的信息组成数据包发送给假名节点,数据包结构如图2所示。
步骤2源匿名节点向出口假名节点发送数据包,出口假名节点用自己的私钥解密第一层加密后得到首个中继节点信息,将剩下的信息转发至首个中继节点。源匿名节点向假名节点传输数据包时告知假名组中其他节点,其他节点向出口假名节点发送相同大小的数据包进行干扰混淆。
步骤3第一个中继节点接收到数据包后,使用自己的私钥解密得到下一个中继节点的信息,将剩余的加密信息转发到下一个中继节点,所有中继节点使用同样方式对数据包进行转发。最后一个中继节点将数据包转发至接收假名组,目标假名节点收到数据包后,向接收端假名组中所有节点进行广播,组内其他节点无法解密,丢弃数据包。
步骤4目标匿名用户接收到数据包后使用自己的私钥对加密部分进行解密,明文M=decrypt(d,c),得到分片真实序号以及文件特征部分。
对所有分片按照随机序列G的顺序进行传输,如图3所示,循环进行步骤1~4,直至所有分片传输完毕。目标匿名用户在接收文件分片后使用真实序号对分片进行标记,重新将分片排序为正确序列,使用逆函数F=f-1(F1,F2,…,Fn)按照序列对文件进行重组,重组后将数据部分与文件头组合,完成文件恢复。
图1 面向智能家居的音视频文件匿名通信系统
图2 数据包结构图
图3 分片传输示意图
表1 与Tor匿名通信系统比较
本文将提出的面向智能家居的音视频文件匿名通信系统在算力要求等多个方面与Tor进行了比较,如表1所示。分析表明,本文提出的方法与Tor匿名通信系统相比,对设备的计算能力要求低,能够适应智能家居环境低算力的限制。同时能够实现源匿名节点和目标匿名节点的位置匿名,在出口节点同样保持加密状态防止泄密,保证传输的音视频文件不被泄露还原。
系统融合基于身份的加密方式和洋葱路由策略,使用下一节点的信息作为公钥进行加密,只有真正的系统节点才能向PKG请求私钥对数据包进行解密。中继节点转发过程中,每个中继节点只知道上一个中继节点和下一个中继节点的信息,无法获知系统中其他中继节点的信息,从而保证源匿名节点和目标匿名节点的不可链接性。
源匿名节点隐匿在发送端假名组中,源匿名节点和出口假名节点通信时,组内其他节点同时向出口假名节点发送混淆包,监听者无法对流量分析使源匿名节点去匿名化。通过假名节点与首个中继节点进行通信,即使攻击者攻击首个中继节点也无法判断源匿名节点的身份。目标匿名节点隐匿在接收端假名组中,目标假名节点在收到数据包后向组内所有节点进行广播,但因为使用的是目标匿名节点的身份信息作为参数进行加密,只有真正的目标匿名节点才能对密文解密。
综上本文提出的模型可以实现源匿名节点和目标匿名节点的位置匿名以及双方的不可链接性。
攻击者可以通过控制链路中的部分节点并利用这些节点发起合谋攻击,攻击者在攻击本文研究的模型时,如果要实现去匿名化,需要同时满足两个条件:
(1)攻击者最少要控制链路中半数的节点。
(2)攻击者要同时控制首个中继节点和最后一个中继节点。
根据Reiter等人[5]提出的匿名度分析方法,发送端假名集中节点个数为Ns,接收端假名集中节点个数为Nd,中继转发链路的长度为L,假设转发链路中有Z个恶意节点,则中继转发链路被攻击而导致去匿名化的可能性为:
如图4所示,中继节点转发过程中匿名被瓦解的可能性随节点数目的增多,恶意节点数目的减少而降降低。
则整个匿名通信模型的匿名度D为:
如图5所示,在匿名通信模型链路长度一定时,匿名被瓦解的可能性随链路中恶意节点数量的增多而增加,同时匿名被瓦解的可能性受Ns和Nd的影响,Ns和Nd对系统匿名度的影响效果相同。随着Ns和Nd的增多,匿名通信模型的匿名性越强,但过多的假名节点会导致带宽资源的浪费和通信延迟,特别是在发送端假名组传输过程中有大量混淆数据包传输,过多的假名节点会导致出口假名节点的带宽负载加重,接收端假名节点只需要对组内所有用户进行广播,因而可以选择较多的节点保护目标匿名用户。由图可见当Ns=3,Nd=8时,系统匿名被瓦解的可能性小于5%,并且随着假名组内节点的增多,匿名性的提升不明显,假名节点数目的增加对模型匿名性的影响较小,匿名系统能够达到较好的匿名效果同时不会导致带宽压力过大。
图4 中继转发链路匿名性
图5 假名组节点数目与系统匿名度关系(L=20)
文件在分片后按照随机编码序列的顺序进行传输,并且在分离文件头后每个分片都失去了可读性,假设攻击者成功地实施了合谋攻击控制了链路中的节点,截取传输数据包进行还原,但是按照真实传输顺序对分片进行重组得到的分片顺序是错误的,即使得到了所有数据分片也无法还原出源文件。只有攻击者获得文件分片的同时得到每个分片的真实序号Gn和文件特征头部Fs才能对文件正确还原,而对Gn和Fs使用公钥进行加密,认为是安全的。
由于对分片序列进行随机排序,并保证每一个分片在每一个位置的概率相等,则对n个分片进行随机排序可能的结果共有n!个,设遭到到暴力破解分片顺序的可能性为Pr(B),则Pr(B)=,如图6所示。
图6 分片序列遭到暴力破解的可能性
随着分片数目n的增多,Pr(B)逐渐降低,当n=100时,Pr(B)1.072×10-158,一般情况下对文件的分片远大于100个,可以抵抗暴力破解攻击。
本文主要从两个方面降低了匿名通信过程的资源损耗,首先使用基于身份的加密代替传统基于证书的密码加密系统,取消了证书的验证等过程,使用用户信息作为加密参数,在加密过程中不需要任何证书,不需要保存管理每个用户的公钥,避免因公钥管理、查询等操作带来的资源损耗。
另一方面,针对音视频文件的特性,按照随机序列的方式对文件分片进行传输,由安全性分析可知不需要对文件整体进行加密,只需加密分片的真实序号与文件头部特征,从而降低了计算代价。
本文提出了一种面向智能家居的匿名通信模型,该方案将基于身份的加密和洋葱路由策略结合。在构建链路过程中,保证源匿名节点和目标匿名节点的身份匿名和通信关系的不可链接,传输音视频文件过程中,不需要对整个文件进行加密,并使用特定的传输序列对文件分片进行传输。分析表明本文提出的方法可以在计算资源受限的情况下保证通信的匿名性和安全性,实现智能家居环境下的匿名通信。