一种基于边缘同态重加密的NDN安全汇播机制
2022-05-03张琪,朱轶
张 琪,朱 轶
(江苏大学 计算机科学与通信工程学院,江苏 镇江 212013)
0 引 言
汇播[1]是一类特殊的互联网通信模式,用于实现多点到一点的消息传播,可以视为组播的相反操作。在物联网[2]、群智感知网络[3]等面向多内容生产者进行数据收集的应用场景中,汇播可显著提高数据收集效率。
灵活寻址与数据缓存是汇播通信对承载网络提出的迫切需求。传统IP网络架构由于在动态场景下难以获知内容生产者地址,内容发现不便,路由节点缓存能力不足,导致对数据请求者(用户)主动发起的汇播业务支持性不佳。作为下一代互联网体系结构的典型代表,命名数据网络[4](named data networking,NDN)具备语义路由以及分布式缓存特征,对汇播通信提供了良好支持。NDN可利用携带语义的兴趣包向多个内容生产节点同时发起请求,结合数据聚合技术与缓存机制,可以在反向传输路径的路由器中缓存返回数据包,并实现逐级聚合,从而减少网络流量、缩短网络响应时间。与基于IP架构的NDN所支持的“Pull-based”模式相比更适合承载汇播聚合通信。
隐私数据聚合是NDN汇播通信面临的重要安全问题[5-6]。虽然NDN中每个数据包均以密文方式传输,但在传统聚合模式下,路由器节点需对接收的多个数据包进行解密,然后才能做聚合处理。如果路由器被恶意劫持,传输数据将面临被泄露甚至篡改的风险。针对这一问题,同态加密技术[7-9]是当前主流的解决方案。该类方案中,内容生产节点以同态加密算法加密输出数据,由于密文的同态属性,转发节点直接对密文进行运算即可完成聚合任务,保障了数据在传输过程中的隐私性。在传统同态聚合方案中,待聚合的多个密文通常采用数据请求者公钥进行加密。对于NDN架构,如以特定请求者公钥进行同态加密,其聚合数据将丧失重用性,无法利用NDN网络的缓存特性。
传统同态聚合方案应用于NDN汇播场景如图1所示。在图1网络中,Alice与Bob分别请求内容生产者Pro1—Pro4的感知数据m1—m4。Alice发送的兴趣包中携带Alice的公钥,4个内容生产者输出数据均以Alice公钥加密,在回传路径的路由器上缓存并聚合;当Bob发起请求时,由于Bob仅可以解密以自身公钥加密的聚合数据,因此路由器上缓存的Alice请求数据将无法被Bob所复用。图1中以红叉表示Bob无法利用临近路由器上缓存的Alice公钥加密数据。
图1 传统同态聚合方案应用于NDN汇播场景Fig.1 NDN concast scenario using traditional homomorphic aggregation scheme
针对NDN安全汇播机制如何充分利用NDN缓存能力的问题,本文提出了一种基于边缘同态重加密的NDN安全汇播机制(edge re-encryption based homomorphic concast mechanism,ERE-HCM)。该机制提高了汇播效率,数据获取时延较小,明显改善网络性能。
1 相关工作
汇播通信主要面向大规模动态数据收集、感知应用场景,这类场景下内容生产者常处于移动状态,数据请求者难以直接获知生产节点的地址信息,因此基于IP架构的汇播通信,首先要为移动性管理设计复杂的解决方案[10-11]。在此基础上,内容发现也是IP架构下汇播通信的难点。现有解决方案主要是设计Overlay网络,通过部署代理服务器来主动探测区域内节点的内容[12],进而通过多代理之间的协同提升内容发现能力[13]。这类设计增加了网络流量开销,增大了网络复杂度。
针对IP网络中汇播通信的隐私保护问题,文献[9]提出的SDA算法在同态聚合方案中具有典型性。SDA算法以特定用户公钥加密采集到的数据并在网内聚合,由于不同公钥加密的密文难以实现同态运算,因此,以请求者公钥加密数据成为同态聚合的典型策略。此外,SDA算法为了降低同态计算开销,采用Paillier体制加密感知数据,以更好适应资源受限的物联网设备。文献[14]介绍了当前无线传感器网络汇播场景中已有的多种隐私数据保护聚合方案,从计算开销、通信开销、隐私级别等几个方面对现有的方案做出对比。文献[15]提出一种多跳同态加密数据聚合方案,该方案中,感知节点采用椭圆曲线体制加密数据,以逐跳同态聚合方式传输至基站。文献[14-15]均以用户公钥加密采集数据,这一做法虽然可实现隐私数据聚合,但聚合密文难以在不同请求用户之间复用,兼之IP架构本身也缺少网内缓存能力的支持,因而安全汇播通信效率不高。
NDN架构对汇播通信可提供良好的支持。文献[16]指出,NDN语义命名寻址模式便于汇播通信实现内容发现,该文献对NDN汇播架构进行设计,但未考虑数据的安全聚合问题。文献[17]提出一种无信任授权的隐私保护数据聚合方案,采用(t,n)门限加密技术对聚合数据进行加密,实现了对内容提供者身份的匿名性保护,但并未保护内容本身的隐私。
目前,也有部分NDN研究工作涉及同态加密及重加密技术。SFTP-NDN方案[18]引入同态重加密设计,提出一种安全的文件传输协议,该方案要求文件在传输过程中,通过每跳重加密一次,实现源到目标之间的安全传输,同时加密文件可以在网内进行密文直接运算,但该方案并未考虑到NDN缓存的复用性。方案PATS-NDN[19]采用同态加密实现内容的命名隐私保护,该方案引入别名机制,内容提供者对别名进行同态加密后放入数据包进行分发,授权用户发送的兴趣包中也携带该别名的同态密文。由于同态加密的特点,路由器无需解密别名即可比较兴趣包与数据包中的别名是否一致,从而判断用户是否有权访问该内容。
上述工作为NDN隐私数据传输机制提供了相关研究参考,但如何在NDN汇播场景中兼顾安全聚合与网内数据复用,还需要深入探索。
2 NDN汇播架构设计
作为以内容为中心网络架构的典型代表,NDN中携带的语义兴趣包命名机制为汇播数据查询提供了极大的便利。但基本NDN架构仅支持“一发一收”的单播通信,面向汇播通信需求,其兴趣包命名以及路由器的待定判决表(pending interest table,PIT),还需要做特殊设计。鉴于此,本文针对汇播场景,对NDN基本架构做如下修改。
2.1 兴趣包命名修改
除了常规的内容名称前缀之外,本文在命名中增加数据查询范围与汇聚操作指示,以便内容生产者与路由器执行汇播操作,具体命名格式如图2所示。
图2 汇播命名格式设计Fig.2 Naming design of concast
图2中,Concast代表该兴趣包执行汇播任务;内容名称前缀用于路由器查询转发兴趣表(forwarding information table,FIB),执行命名路由转发;数据查询范围用于在内容生产者处检索所需的内容;汇聚操作用于指示路由器对收到的多个数据包进行特定的汇聚处理。
图3所示为汇播数据收集场景示例。某车间现有4条生产线,每条生产线均安装了多个相同的传感器,用户发送名为“Concast/Workshop/(Production-line=[1,4])+(data type=[sensor 1])+(time>9:30:00)/operation=[additive]”的兴趣包,这一命名表示用户请求网络执行汇播操作,请求内容前缀为“Workshop /”,查询编号为1-4的生产线上sensor 1从9:30:00至今的生产数据,在路由节点处以加法方式进行聚合。
2.2 PIT修改
在NDN的现有设计中,PIT表中的条目一旦被满足,将会被删除,即使路由器收到多个同名数据包,也只能处理并转发其中一个,而丢弃剩余数据包,这一机制并不适合需要对数据进行聚合传播的汇播模式。
为了保证路由器可以接收并处理多个数据包,在PIT中新增了转发数与接收数2列。前者用于记录该路由节点转发出去的兴趣包数量,后者用于记录该路由节点已收到的数据包数量,PIT表的具体修改如表1所示。
图3 汇播数据收集场景示例Fig.3 Sample of concast data collection scenario
表1 PIT表修改
在本文设计中,路由器收到上游节点回复的数据包后,不直接删除对应的PIT条目,而是将PIT条目中的接收数字段加1。
若接收数字段计数值等于转发数字段中记录的值,意味着路由器已收到所有请求的数据包,此时路由器删除PIT条目,从缓存中取出所有同名数据包,按命名中所指示的操作聚合数据,之后回传给下游路由器。
若接收数字段计数值小于转发数字段数值,但PIT条目已达到超时时间,路由器同样删除PIT条目,从缓存中取出数据执行聚合操作并转发。
若接收数字段计数值小于转发数字段数值,但PIT条目未超时,路由器缓存该数据包,等待接收后续数据包。
3 ERE-HCM设计
对于工业物联网生产过程中数据采集之类的应用场景,仅有授权用户才能访问采集数据,数据包在网内聚合传输过程中需要保障其隐私性。进一步考虑充分利用NDN网络的缓存能力提升网络分发性能,本文在NDN汇播架构设计基础上,提出了ERE-HCM机制,结合同态加密与边缘重加密技术来解决聚合数据的网内复用问题。
3.1 网络模型与参数设定
本文网络模型如图4所示。图4中,Pi为N个内容生产者,i∈[1,N];Uj为M个用户,j∈[1,M];密钥管理中心(key management center,KMC)负责系统内所有密钥的生成与分发;网内路由器承担数据包聚合任务,对内容生产者回复的数据包逐级聚合;边缘路由器承担网内数据重加密分发任务,对数据进行重加密并转发给用户。
图4 本文方案采用的网络模型Fig.4 Network model of this paper
本文研究基于以下参数设定[20]。
1)G、G1是两个阶为n的乘法循环群,n=q1q2,q1、q2为2个大素数;e为双线性映射,定义为e:G×G→G1;g,u∈G为2个生成元,h=uq2。
2)内容生产者的公私钥按BGN(boneh-goh-nissm)算法[20]生成。其中,PK=(n,G,G1,e,g,Zp,h)为内容生产者公钥;SK=(p,q1)为内容生产者私钥,p为随机数,p∈Zn*,Zp=e(g,gp)。为了保证聚合内容的网内复用性,所有内容生产者均被分配相同的公钥。
3)用户的公私钥按椭圆曲线算法[21]生成。pkj=gxj为用户Uj的公钥;skj=xj为用户Uj的私钥;xj为随机数,xj∈Zn*,p≠xj。为了保证用户可解密BGN同态加密密文,用户需同时持有q1。
4)内容生产者与Uj之间的重加密密钥为rkj=pkjp=gxjp,由Uj的公钥和内容生产者的私钥共同决定。
5)为保证系统安全性,密钥管理中心KMC将周期性更新上述密钥。
3.2 机制描述
ERE-HCM机制的运行过程如下。
Step1初始化阶段
内容生产者、用户与边缘路由器分别向KMC发送兴趣包请求密钥,其中边缘路由器发送的兴趣包中携带自身所接入授权用户的信息。KMC根据系统参数执行下列操作。
•生成同态加密公钥PK,分发给每一个内容生产者,每个内容生产者持有相同的公钥。
•生成用户公私钥对(pkj,skj),与q1一起分发给用户Uj。
•根据边缘路由器所上报的授权用户信息,生成重加密密钥rkj,连同授权用户公钥,分发给边缘路由器。
边缘路由器维护授权用户信息表,用于存储每个授权用户的公钥和重加密密钥,边缘路由器上的授权用户信息如表2所示。
表2 边缘路由器上的授权用户信息表
设KMC与请求方之间已通过Diffie-Hellman机制构建了安全传输信道,KMC将所分配密钥以加密数据包的形式回复给请求方。
Step2用户请求阶段
若用户Uj发起汇播数据请求,请求内容为当前场景中每个内容生产者输出数据之和,所发送兴趣包的命名在上一节命名设计基础上,增加内容为用户公钥哈希值的后缀,用于指明用户身份。即兴趣包命名为
InterestName=Concast/{内容名称前缀}/
{数据查询范围}/{汇聚操作}/hash(pkUj)。
同时,为防止转发攻击,Uj在兴趣包中附加签名Sig,该签名为兴趣包名称与当前的时间拼接的哈希值,并用Uj的私钥skj加密,表示为
Sig=Encskj(Hash(InterestName|timestamp))
(1)
(1)式中:InterestName表示Uj请求的兴趣包名称;timestamp为时间戳。
Step3边缘路由器转发阶段
边缘路由器收到兴趣包后,提取名称前缀,判断其是否为汇播请求。若不是汇播请求,则正常转发该兴趣包;若是,则提取名称中的后缀,在授权用户信息表中检索。若未检索到,表明该请求来自未授权用户,丢弃兴趣包;若检索到,以用户公钥pkj校验签名Sig,检验兴趣包的真伪性。如果校验通过,边缘路由器创建PIT条目,之后去掉兴趣包命名中的hash(pkj)后缀,查询FIB中的转发接口,并在PIT表的转发数字段中记录转发数目。
Step4网内路由器转发阶段
网内路由器收到汇播兴趣包请求后,查找路由器中的内容存储表,判断是否已缓存了满足条件的数据包,如果有缓存数据,直接返回数据包;如果没有缓存数据,查找FIB表,按FIB中所有可用接口进行转发,同时创建PIT条目,记录转发的兴趣包数量。
Step5内容生产者响应阶段
若第i个内容生产者Pi收到兴趣包,其按命名中的查询条件产生数据mi,选择随机数si,ri∈{0,1,…,n-1},用公钥PK=(n,G,G1,e,g,Zp,h)对其计算得到同态密文Ci,如(2)式。为了便于后续密文计算的描述,这里将密文中4个组成分量分别定义为α,β,γ,η。
(2)
内容生产者Pi进而将Ci放入数据包中回复网内路由器。
由于ERE-HCM机制中所有内容生产者均分配了相同公钥,因此,所输出的同态密文便于在网内路由处进行数据聚合,并便于复用于不同用户的请求。
Step6网内路由器聚合数据阶段
网内路由器收到数据包后,首先将PIT条目中的接收数字段加1,判断接收数是否等于转发数。
•如果两者不等,路由器将接收数据包存入缓存,等待后续接收数据包。
•如果两者相等,取出缓存中所有已存的同名密文数据,按同态加密的加法特性进行聚合。设当前路由器已收到k份密文Ci,i=1,…,k,则按(3)式生成聚合密文Cagg(k)。
(3)
•路由器完成聚合计算后,将聚合结果节点,并删除相应的PIT条目。
•若PIT条目超时,路由器直接按(3)式聚合所有已存同名数据,返回聚合数据包Cagg(k)=(α′,β′,γ′,η)给下游节点,并删除PIT条目。
Step7边缘路由器重加密阶段
聚合数据包到达边缘路由器后,边缘路由器查找PIT表,确定该数据包所属用户身份为Uj,以对应的重加密密钥rkj进行二次加密。设该边缘路由器已获得所有N个内容生产者的聚合密文,则按(4)式计算出重加密后的密文Crec,j,重加密中利用了双线性映射的双线性特性。该重加密密文Crec,j仅能由Uj私钥进行解密,边缘路由器的重加密操作保障了只有特定授权用户才能获得所请求的汇播数据。
(4)
Step8用户接收阶段
当用户Uj收到边缘路由器发送的重加密密文Crec,j后,先按(5)式以自身私钥xj解密得到密文中的聚合项。
(5)
(6)
上述处理过程确保了网内汇聚数据的安全性,同时由于内容生产者产生的数据均以相同的同态加密公钥进行加密,网内数据具备良好的复用性。如有其他用户也发起相同数据查询请求,可以直接在网内命中并复用部分或者全部的聚合数据,而无需再去每个内容生产者处获取数据,而边缘重加密保障了只有特定授权用户,才能获得所请求的汇播查询结果。
4 仿真及分析
为了评估ERE-HCM机制的性能,本文选择以用户公钥进行同态加密的SDA机制[9]作为对比方案,进行网络性能评估。仿真工具为ndnSIM[22],运行在Ubuntu 16.04 主机上,主机为4核Intel(R) Core(TM) i5 (4590 CPU@3.20GHz×4),内存大小为8 GB。
仿真场景如图5所示:设置4个内容生产者(P1—P4),每个内容生产者提供100类相同命名的内容,每个内容大小均为16 KByte;设置M个用户,每个用户访问权限相同,均可以请求P1—P4的内容;用户发送兴趣包遵循速率为每秒50次请求的泊松分布,以均匀分布随机请求任意一类内容,所请求数据以累加方式在路由器R1—R3处进行聚合;网络的一跳路由时延设为10 ms,路由器选取最近最少使用(least recently used,LRU)缓存置换算法[23]。仿真实验的运行时间为200 s,仿真评价指标为平均数据收集时延。
图5 仿真拓扑Fig.5 Simulation topology
4.1 平均数据收集时延分析
平均数据收集时延为用户从发送兴趣包到收到对应数据包的平均所需时间。在仿真中,改变网内路由器R1—R3的缓存大小,将缓存大小(缓存与网内内容总量比值)从20%增加至60%(以20%为间隔),并选择用户数为1,2,5,10,20,对比SDA与ERE-HCM机制下的平均数据收集时延。为了避免同态加密算法不一致带来的计算开销差异,仿真中SDA与ERE-HCM均采用BGN算法实现同态加密。
平均数据收集时延的仿真结果如图6所示。图6中的平均数据收集时延包括了网络传输时延与节点的加解密计算开销,从图6仿真结果可知,SDA机制下的平均数据收集时延,在缓存大小不变的情况下,随用户数增加而不断升高,这是因为SDA中用户仅对自己请求的数据有复用性。因此,在相同缓存大小条件下,SDA机制用户获取数据的平均时延会随着用户数的增多逐渐增大。ERE-HCM中,在相同缓存条件下,随着用户数量的增加,用户的请求时延呈下降趋势,这是因为场景中多用户请求数据时,后续用户会命中并使用其他用户请求的聚合数据,无需到内容生产者处请求,通过网内的数据复用,减少了数据的请求时延。在用户较多的情况下,ERE-HCM的平均数据收集时延明显降低。即使在缓存大小为20%时,10个用户接入的ERE-HCM也可获得近20ms的时延优势。
图6 平均数据收集时延(多用户)Fig.6 Delay of average data collection(multi-users)
ERE-HCM通过对网内数据聚合与PIT修改,实现了一发多收的数据汇播,有效改善了数据收集效率。为了评估汇播机制的性能优势,本文进一步将ERE-HCM与NDN传统的一发一收传输模式(一个兴趣包获取一个数据包)进行对比。仿真中仅考虑一个请求用户,仿真结果对比如图7。由图7可见,ERE-HCM的平均获取数据时延不足一发一收模式的1/2,这是因为ERE-HCM模式下用户只需发送一次兴趣包便可从所有内容生产者处收集到数据,而在一发一收模式下,用户需要发送4次兴趣包才可获得所需的数据。虽然ERE-HCM涉及多个密文运算环节,计算开销较大,但是总体时延还是远小于一发一收模式。由此可见,对于大规模数据收集场景,本文设计的安全汇播模式,在保证数据隐私性的同时,数据收集效率也优于传统NDN传输模式。
图7 平均数据收集时延对比(汇播/一发一收)Fig.7 Average data collection delay(concast vs. single interest single data)
4.2 边缘路由器开销分析
由ERE-HCM机制的工作原理可知,该方案通过在网络边缘处进行重加密分发,实现网内密文的复用性,本质上是以边缘路由器处的计算开销与存储开销为代价获得网络性能的提升。
针对计算开销,表3给出一次数据传输过程中,ERE-HCM所涉及的所有密文运算环节的计算时间,包括内容生产者加密、网内路由器聚合、边缘路由器重加密、用户解密所消耗的时间。与SDA机制相比较,ERE-HCM机制增加了边缘重加密的计算开销,虽然这一开销较大,接近于传统加解密与网内聚合开销的总和,但当网内聚合数据被多用户复用时,复用带来的传输时延减少会抵消重加密带来的额外计算开销,并且随着复用用户数量的增加,传输时延的节省会远超过重加密的计算开销。不难看出,若用户的请求在边缘路由器处直接命中,用户的数据收集时延仅包括一跳往返传输时延、边缘重加密与用户解密的计算时间。在图6所示的仿真结果中,已计入了所有密文运算时间开销。
表3 ERE-HCM计算开销分析(BGN同态算法)
流行度低的网内聚合内容,关注用户较少,易于从路由器缓存中被置换,网内命中率低。此类情况下,ERE-HCM机制的整体时延开销要高于传统方案。
针对存储开销,ERE-HCM机制要求边缘路由器维护授权用户信息表,存储用户公钥和用户重加密密钥,以便实施重加密操作。虽然这一设计会导致边缘路由器产生额外的存储开销,但边缘路由器通常接入用户数量有限,因此该存储开销的压力可控。以安全等级80 bit为例,此时用户侧所采用的椭圆曲线体制,公钥长度为160 bit[24];由3.1节的参数设定可知,用户公钥与重加密密钥由相同的生成元g∈G产生,因此重加密密钥长度与用户公钥长度相同,也为160 bit。对于单个用户,用户公钥和用户重加密密钥需占用路由器320 bit存储空间。若设边缘路由器接入10 000个用户,则存储开销仅为400 KByte。
随着接入用户数量的增加,存储开销也会相应增大,但有限的边缘接入群体规模决定了ERE-HCM机制不会在边缘路由器侧形成严重的存储开销。
4.3 安全性分析
ERE-HCM方案设计目标为:①保证某授权用户请求的聚合数据,在网内能够被其他授权用户所复用,同时最终聚合结果只分发给请求者;②网内路由器不能查看内容生产者的原始数据,保证原始数据在网内不可篡改。
在具体方案设计中:①KMC是一个可信的第三方服务器,承担网内的密钥分配,密钥分配前KMC会与分发目标之间通过Diffie-Hellman机制,协商会话密钥,利用对称加密进行密钥分发,并周期性更新,网内每个参与者只能获得自身的密钥,无法获知分配给其他参与者的密钥;②内容生产者输出的原始数据采用同态加密处理,即使聚合节点被恶意攻击者劫持,也无法解密获取到数据的明文,因此原始数据在网内可保证其内容隐私性;③边缘路由器收到聚合数据后仅对数据进行重加密操作,数据明文对边缘路由器不可见;④边缘路由器返回给请求用户的重加密密文,仅可用用户自身的私钥进行解密,即使被恶意用户所截获,也无法解密。
若攻击者窃取了数据密文并试图解密获取明文数据,那么该攻击者必须面临解决椭圆曲线上的离散对数问题和同态加密下的密文破解问题。迄今为止,这些问题还没有高效解决手段,因此,网内攻击者无法对ERE-HCM方案所保护的内容隐私产生威胁。
综上,作为改进汇播传输效率的机制,ERE-HCM在增强网络传输性能的同时,也具备了良好的安全性设计,充分保护了传输数据的隐私与安全。
5 结束语
针对在以NDN为承载网络的安全汇播场景下如何充分利用缓存能力的问题,本文提出了一种基于边缘同态重加密的NDN安全汇播机制。在NDN汇播机制设计的基础上,使用BGN同态加密算法加密多个内容生产者的输出数据,解决数据明文汇聚传输存在的数据泄露问题;利用边缘重加密解决网内聚合密文的重用性,提高了汇播效率。尽管方案在重加密阶段增加了部分计算开销,但从网络分发角度看,方案利用了重加密带来的网内聚合密文可复用性,有效降低了多用户请求时的数据收集时延,网络性能提升明显。
虽然本文方案提升了NDN网络中的安全汇播效率,但同态加密计算开销对于诸如传感器节点等资源有限设备还是过大。未来拟结合计算卸载技术,研究如何在NDN网内重用计算卸载结果,进一步从内容生产者角度提升安全汇播方案的可行性。