当前位置:首页 期刊杂志

基于可信身份检索的物联网隐私保护方案

时间:2024-05-04

赵 亮,王学良,陈声涛

(1.北京航空材料研究院,北京 100095;2.北京格尔国信科技有限公司,北京 100095;3.格尔软件股份有限公司,上海 200436)

0 引言

近年来,物联网技术蓬勃发展,并逐渐渗透到人们日常生产与社会生活中。例如,智能家居、车路协同等技术领域对物联设备的需求迎来爆炸式增长。同时,伴随着大众网络安全和数据安全意识的不断增强,物联网的数据安全与设备安全问题成为学术界与工业界关注的热点问题[1]。保障物联网数据安全的有效方法是将密码技术、身份认证、路由协议等隐私保护技术相结合,构造适用于具体业务场景的数据安全保护方案。这类方案需要根据具体业务要求满足物联网的防渗透、防篡改、数据隐私保护及高效利用等需求[2-3]。

一般而言,物联网系统是由远端节点和中心业务节点组成的应用系统,远端节点负责执行业务,并将产生的业务数据加密存储,中心业务节点根据上层应用的具体要求,每次与远端节点验证身份,随后请求所有业务相关的加密数据再统一作解密处理。但是,这种方式存在数据传输压力大和数据处理效率低等问题。

文本利用软件定义边界(SDP)技术保证访问身份可信,实现端对端的身份认证,使用一种基于倒排索引的可搜索加密技术实现密文数据的高效检索,实现了在有限计算资源下对加密数据的快速检索和高效传输。具体而言,为远端节点的加密数据建立数据查询倒排索引,中心业务节点只需要确定所需数据关键字,调用检索算法即可获取期望的加密数据,从而减少每次大量数据传输带来的网络带宽压力,同时满足物联网数据加密存储和隐私需求。

1 相关工作

1.1 软件定义边界技术

软件定义边界(Software Defined Perimeter,SDP)由云安全联盟(CSA)[4]于2013 年提出,是一种基于软件的计算机安全防护方式,基于策略为企业构建起虚拟边界,对外提供零可见和零连接,利用基于身份的访问控制和权限认证机制,在端点证明其可信后才可连接,允许合法流量通过。为企业应用和服务提供隐身保护,未经授权的用户和设备无法访问到受保护的资源,有效保护企业的数据安全。

针对传统访问控制模型引发的数据泄露和安全问题,结合企业不断提升的数据泄露防范要求,王骏彪[5]提出软件定义边界下的可信动态访问控制模型,利用访问数据集实时情况所引起的可信度变化调整访问控制策略。王亦然等[6]提出一种新型的SDP 模型架构,通过对SDP 模型、逻辑架构以及部署方式的相关研究,构建全新的应用访问安全模式,实现动态最小权限的访问授权。谢欣梦[7]将单数据包授权的方式应用在软件定义边界中,对软件定义边界组件进行预认证和预授权,阻止攻击者通过系统扫描对漏洞进行攻击,有效增强了数据包的安全性。

1.2 可搜索加密技术

随着云计算和物联网技术的迅速发展,数据云端存储和计算的需求不断增加,也引发了许多网络存储和数据泄露的安全问题,而解决云端存储密态数据滥用和渗透的最有效方法是可搜索加密技术。2000 年,Song 等[8]开始探索存储在云服务器上的加密数据检索问题,并首次给出可搜索加密(Searchable Encryption)的概念。该机制保证了数据安全并且具有控制搜索、隐藏查询、查询独立等多个优势。

Curtmola 等[9]提出对称可搜索加密的改进定义和有效构造,实现自适应的对称可搜索加密,首次实现了在搜索执行过程中可自适应地选择对服务器的查询。Kamara等[10]设计一个动态对称可搜加密方案,该方案同时满足次线性搜索时间、抵御自适应选择关键字攻击安全性、紧凑的索引以及有效地添加和删除文件的能力,这极大提高了可搜索加密方案的实用性。

在可搜索加密过程中,用户需要在查询时能够快速、准确地找到文件,在搜索语句表达能力方面先后出现了基于精确条件查询的单关键词检索和多关键词检索[11]相关技术,模糊关键词检索[12]和混淆关键字密文检索[13]等相关技术。为提高检索效率和正确性,孙晓玲等[14]提出基于可拆分倒排索引的可搜索加密方案;Hahn 等[15]提出支持批量更新的可搜索加密方案;刘政等[16]实现了一种高效的基于聚合索引的加密搜索方案。

2 本文方案

2.1 系统模型

系统模型如图1 所示,由远端节点、中心业务节点、其他应用节点及PKI/CA 基础设施组成。

远端节点,即物联网中的边缘节点,如传感器等设备。这类节点具备一定的数据存储能力且能够内嵌基本加解密硬件,可将运行时产生和收集的数据加密并存储在本地,可以与中心业务节点建立连接交换数据。

中心业务节点,即物联网中的业务数据处理节点,根据应用程序的具体要求,负责从远端节点获取相关数据执行数据处理任务。中心业务节点的存储和计算能力要远强于远端节点,中心业务节点搭载部分业务应用程序、SDP和存储数据查找索引。其他应用节点代表广泛的物联网中具体的应用系统,包含具体的应用客户端和应用服务器,能够根据需求向中心业务节点请求数据处理结果。

PKI/CA 基础设施,用于系统中参与者的身份访问认证。远端节点、中心业务节点、其他应用节点都需要向PKI注册获得证书,所有向中心业务节点请求数据的节点都必须通过SDP 身份互认。

2.2 方案算法

本文所提基于可信身份检索的物联网隐私保护方案可看作两阶段运行过程,分别是系统建立阶段和数据处理阶段。

2.2.1 系统建立阶段

该阶段主要包括系统中远端节点、中心业务节点、其他应用节点以及PKI/CA 基础设施初始化,并针对各参与实体身份进行可信认证。本文应用SDP 技术实现端设备身份可信,使用单包授权技术SPA 实现业务系统的隐藏,并使用类似地址白名单的访问控制方式,通过SDP 实现远端节点与中心业务节点的逻辑隔离,使得资源对未授权用户透明,能减少来自外部的各种攻击,达成身份认证功能,确保每个接入的设备都是可信的。认证过程如下:

SDP 架构主要包括控制器(Controller)、连接发起方(Initial Host,IH)和接收方(Accept Host,AH)。在系统中SDP 建立连接过程如图2 所示,采用“客户端—服务器”模式,远端节点、其他应用节点均包含IH 组件,将AH、控制器部署在中心业务节点上。身份确认过程:①由AH 向控制器注册各节点身份;②当请求节点需要访问中心业务节点时,请求节点向控制器发起请求访问;③AH 验证请求节点(IH)的身份证书为请求节点建立安全连接。

Fig.2 SDP deployment图2 SDP部署

2.2.2 数据处理阶段

该阶段主要是实例化本文所提基于倒排索引的的可搜索加密算法,为存储在远端节点的加密数据建立查找索引,使得其他应用可以通过中心业务节点按需高效查询所需数据。算法描述如下:

(1)初始化算法。该算法对远端节点存储的数据文件进行编码并进行加密处理,由远端节点运行或预处理。

输入:待处理文件f。输出:加密数据库EDB。

Step1:为文件f=(f1,…,fn)赋予对应的唯一标识符id=(id1,…,idn),fi表示明文文件,id表示明文文件生成的整数标识符。

Step2:生成选择对称加密算法实例(例如,AES 算法等),该对称加密算法包含密钥生成算法、加密算法和解密算法(KeyGen,Enc,Dec),生成对称密钥K←KeyGen{0,1}λ,对文件f=(f1,…,fn)进行加密,xi=Enc(K,fi),得到密文序列x=(x1,…,xn)。

Step3:得到加密数据库EDB=(idi,xi)i∈[1,n],数据库DB=(idi,wi)i∈[1,n],wi是对应文件的关键字,并将密钥K 保留在本地,关键字由具体的系统业务决定,一般在系统运行前预生成完成(例如传感器的压力、温度、湿度等关键字名称)。

(2)倒排索引建立算法。该算法为远端节点存储的加密数据建立查找索引,由中心业务节点运行。

输入:数据库DB。输出:索引γ,字典δ。

该算法建立的是一种倒排索引,传统顺序索引方式以文件名称为关键字,文件内容为检索结果,以此建立查找索引,当需要查找的词条在文件末尾时则需要遍历整个文件以确定本文件是否包含所需的词条,通常效率较低。对于物联网中格式化较强的数据而言,顺序建立索引并不是一种高效的查找方式。倒排索引能够很好地解决上述查找速度慢的问题,在初始化算法中加密数据库已经预先将需要的词条作为关键字w与其所在的文件id做了关联,只需要为关键字建立索引,则每次查找关键字即可找到所有相关的文件id,提升了查找效率。例如,以远端传感器存储文件中存储的门禁识别号码作为关键字映射存储文件id,建立查找索引,倒排索引只要查询门禁识别号码即可获得所有包含门禁识别号码的文件id,传统方法则需要遍历传感器存储的所有文件以查找与门禁识别号码有关的内容,查找效率不高。

Step1:初始化空链表L,该链表每个节点存储一个二元组(l,d),l为关联字典的键值,d为加密的文件id,以及空字典δ,字典格式也是一个二元组(w,c),w是待检索文件的关键字,c是该条目在字典中的序号。

Step2:对于数据库DB 中的每一个文件所对应的关键字wi,可以计算两个系统秘密值Ki1=F(K,1||wi),Ki2=F(K,2||wi),F 为一个任意的伪随机函数,能够将输入串映射为随机比特串F:{0,1}*→{0,1}*,符号||表示串联两个字符串,初始化字典中的序号为零c=0。

Step3:对于每一个数据库DB 中的id,计算索引条目信息l←F(Ki1,c),d←Enc(Ki2,id),将(l,d)添加进链表L,c++,将(w,c)写入字典δ,链表L即为索引γ。

(3)应用查询算法。当需要查找数据时,运行本算法。

输入:关键字w*。输出:结果集{id}。

Step1:用户端发送想要查询的关键字w,计算K*1=F(K,1||w*),K*2=F(K,2||w*),从字典δ中找出匹配的关键字对应的序号值c并赋值给total。

Step2:令临时变量i=0 直到i=total:计算i对应的l值,再在索引γ中进行匹配得到d值。若d为空,则i自增重新计算l的值再进行匹配;否则,计算id←Dec(K*2,d),将id加入结果集,i++。

Step3:根据得到的{id}在加密数据库中进行匹配,得到对应的加密密文,再使用本地存储的密钥对密文进行解密,解密后将明文结果集发送给查询用户。

(4)文件—索引添加算法。当需要增加文件并更新索引时,由中心业务节点执行。

输入:文件f。输出:索引γ、字典δ。

Step1:为需要添加的文件f生成对应的标识符id,提取文件f的关键字集Wf保存,计算文件的密文x,并将对应的(id,x)记录在加密数据库EBD 中,并同步根据明文提取对应的id、加密密钥K和关键字集Wf。

Step2:对于wi∈Wf,计算Ki1=F(K,1||w),Ki2=F(K,2||w),在字典中查找关键字wi是否有对应序号c,若不存在该序号则设置新插入的关键字序号c=0,若原字典存在该关键字及序号,则将该序号c加一并作为关键字wi的字典序号。

Step3:计算l=F(Ki1,c),d=Enc(Ki2,id),将(l,d)按加入索引γ,并将(w,c)插入到字典δ。当将(w,c)插入δ时,假设它将覆盖任何先前的条目(w,·),输出更新后的索引γ及字典δ。

(5)文件—索引删除算法。当需要删除目前索引中引用的文件及对应索引条目时,由中心业务节点执行。

输入:文件id。输出:索引γ。

Step1:查询用户选定将要删除的记录。

Step2:在加密数据库中匹配id对应的密文,使用密钥K进行解密得到明文,再根据明文提取对应的关键字集Wf,加密数据库中同时删除该id对应的记录。

Step3:对于该id对应的每个关键字,生成所需的秘钥Ki1和Ki2,计算对id加密后的revid值(索引中d列的值),在字典δ中取出关键字对应的计数值c赋值给total。令i=0直到i=total:对其进行加密得到l的值,再从加密索引γ 中取出对应d的值;当revid与d值相同,则物理删除索引中的该条记录;否则执行i++。最终,输出更新后的索引γ。

3 安全性分析与应用实验

3.1 安全性分析

(1)认证性安全。本文所提应用方案使用可信身份认证技术SDP 实现系统中参与者实体的身份认证,因此假设参与者都是诚实的。

(2)机密性安全。如果存在安全的伪随机函数F,以及安全的对称加密算法Fun{KeyGen,Enc,Dec},则本应用方案是抵抗窃听敌手攻击安全的。

(3)安全分析。窃听敌手具备监听网络消息的能力,在本系统中允许窃听敌手可以获取远端节点和中心业务节点之间传递的密文信息x,索引γ,窃听敌手的视图记为Vieweadv{x,l,d}。对于密文x而言,其由安全的对称加密算法实现,则由其语义安全性,x应当与随机串的xr不可区分。对于索引γ而言,其l项目由安全的伪随机函数生成,则由于伪随机函数的单向性,l应当与一个随机数不可区分;其d项由安全的对称加密算法计算得到,则由其语义安全性,d应当与随机串的dr不可区分。因此,存在理想的安全视图Viewide{xr,rand,dr},根据安全的对称加密算法和伪随机函数的安全性质,可以得到Vieweadv和Viewide是不可区分的,因此本文所提应用方案是安全抵抗窃听敌手的。

3.2 实验结果

本方案是面向物联网环境而提出,针对物联网中远端节点的场景,本文使用11 位数字(真实场景中可对应远端节点对身份鉴别码、电话号码或身份证号等加密查询)作为需要存储和查询的文件条目。每次实验随机生成100、500、2 500、12 500、62 500 个11 位数字作为测试数据集,从索引构建、搜索、更新(添加和删除)上对方案性能进行测试评估。其中,对称加密算法实例选择AES 算法,伪随机数函数使用AES 算法对输入数据进行一次加密,用加密结果作为伪随机数的模拟。

本文实验平台:Apple M1 芯片8 核心CPU(4*3.2GHz+4*2.064GHz),8GB 内存空间作为运行环境,采用Python3.1 编程语言进行程序编写。基于不同量级的数据,索引存储空间及效率测试如表1、表2所示。

Table 1 Index storage space test表1 索引存储空间测试

Fig.3 Index storage space trend图3 索引存储空间趋势

通过空间测试,在100~62 500 量级的数据上,对索引所占空间(单位KB)进行测试评价。在100 条数据时,索引占用4.623KB 存储空间;在模拟测试最大的62 500 量级数据上,索引所占空间为1 356.08KB,空间占用趋势如图3 所示。可以看出,随着数据条目的增长,索引存储空间扩张曲线尚平滑。对于物联网系统中资源受限的设备而言,该空间大小依然是可以接受的。

方案中各函数执行时间与增长趋势如表2 和图4 所示,本文使用100~62 500的数据量,对搜索算法(图4-圆形标记线)、更新—增加算法(图4 三角形标记线)、更新—删除算法(图4 正方形标记线)进行运行时间测试。结果显示,搜索算法的运行时间从0.09ms 增长到0.817ms;更新—增加操作的运行时间从0.166ms 增长到1.56ms;更新—删除操作的运行时间从0.126 增长到6.765ms。在物联网环境下,本方案在搜索和更新—增加算法运行上效率较低,比较适合查找和增加业务繁重的场景。

Table 2 Index efficiency test表2 索引效率测试

Fig.4 Running time trend of each function of the scheme图 4 方案各函数执行时间趋势

在本方案数据传输方面,通信的时间开销主要依赖物联网场景所使用的实际带宽,查询操作与删除操作仅需传输关键字即可,在本实验中每条目标数据为11 个符号的字符串,那么关键字应当小于11 字节,对于增加操作本实验需要传输关键字(小于11 字节)、数据条目(11 字节),更新的一条字典表项(小于32 字节)和更新的一条索引(小于32 字节)的表项,如果修改一条数据最多需要11+11+32+32=86字节,对于物联网系统传输而言是可以接受的。

文献[14]提出一种可拆分倒排索引的搜索加密方案,适用于有批量数据处理的场,该方案将搜索索引的构建时间分摊到了每次检索过程中,这样在一定程度上增加了检索的时间消耗。本文所提方案的索引建立阶段是在初始化阶段进行,因此在执行搜索算法的过程中相比文献[14]具有优势。此外,在索引—增加、索引—删除算法设计上,文献[14]每次由客户端根据需要添加或删除的文件集生成对应的文件索引和搜索索引,然后由服务器(代理)进行合并与拆分,而本文所提方案则将增加和删除导致更新索引的问题全部分给代理服务器执行。文献[14]中文件索引、字典计算与存储复杂度对比如表3 所示。其中,F、G为随机函数,id与c均为整型编码,w为关键字,Enc 为加密算法。文献[14]中的方案共需要计算两次随机函数,本文需要计算一次加密和一次随机函数。在字典索引的生成过程中,本文具备较少的计算代价。

Table 3 Scheme comparison表3 方案对比

综上,本方案在有限的设备性能环境中检索所耗费的时间较少,在物联网远端节点上的有限空间中索引耗费的存储空间也较小,能够满足物联网场景下数据应用的隐私保护和检索需求。

4 结语

本文提出了一种基于可信身份检索的物联网隐私保护方案,该方案利用软件定义边界技术保证系统访问者的身份是可信的,使用一种基于倒排索引的可搜索加密算法实现了密文数据的高效检索功能,并给出基本的安全性分析与描述。实验表明,该方案在物联网场景下,计算复杂度和存储空间都在可接受范围内,可在一定程度上缓解数据传输所带来的的网络带宽压力,同时满足物联网数据加密存储和隐私需求。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!