APP下载

发布订阅系统中的隐私保护研究综述*

2022-03-10石瑞生冯庆玲兰丽娜时金桥

密码学报 2022年1期
关键词:发布者密文密钥

石瑞生, 冯庆玲, 兰丽娜, 时金桥

1. 北京邮电大学 网络空间安全学院, 北京100876

2. 北京邮电大学 可信分布式计算与服务教育部重点实验室, 北京100876

3. 北京邮电大学 网络教育学院, 北京100876

1 引言

发布订阅系统因其异步和去耦合的特性已被广泛应用于大规模的信息传输系统中, 比如谷歌的Thialfi 系统、Facebook 的Wormhole 系统、LinkedIn 的Kafka 系统、面向物联网的MQTT、面向实时应用的DDS, 并应用于各种各样的业务场景, 包括智慧楼宇[1]、e-health 电子健康系统[2]、智能交通监控系统[3]、智能电网系统[4]、股票报价系统、Blog 订阅系统、战场情报分发系统等. 然而随着云服务的普及和发展, 国内外主流的云服务厂商都开始提供发布订阅云服务[5–7], 发布订阅系统的应用环境已经从封闭的可信计算环境转变为开放的不可信计算环境, 隐私保护问题开始凸显.

尽管可以使用SSL 来保证客户端与云服务器之间通信的安全性, 但不受信任的云端代理在获取到事件和订阅后仍可能会泄露这些信息, 使得事件和订阅的机密性遭到破坏. 比如在股票市场报价系统中, 一旦代理获得某个投资者或投资机构订阅的股票信息, 便可以知道他的投资策略, 这些信息可能会被透露给该投资者的对手, 给投资者造成巨大的经济损失. 因此, 需要研究针对发布订阅系统的机密性保护技术来保证事件和订阅的机密性. 其次即使可以使用加密技术以保证信息的安全传输和存储, 但是攻击者仍然可以通过窃听和流量分析等方式通过监视一些消息流来获取发布者或订阅者的IP 地址, 进而暴露发布者或订阅者的身份信息, 使得发布订阅系统中发布者或订阅者的匿名性遭到破坏.

通过谷歌学术等检索工具,调研了2001–2020 年安全、网络、软件工程等领域的主流会议与期刊,共检索到发布订阅隐私保护相关的文献57 篇,发表的地方主要包括USENIX、CCS、NDSS、S&P、Middleware、ICDCS、SRDS、SecureComm、ICC、GLOBECOM、DEBS 及NSS 等主流学术会议和TOCS、TKDE、TPDS 及TDSC 等著名学术期刊, 发布订阅系统中隐私保护研究文献变化情况如图1 所示, 我们发现该领域早期的研究工作不太活跃, 近年来开始走向活跃.

图1 发布订阅系统中隐私保护研究文献变化情况Figure 1 Document changes of privacy protection research in publish-subscribe systems

通过分析, 我们认为主要有两方面的原因: (1) 一方面是早期的应用场景大多是企业内部的封闭计算环境, 发布订阅系统的运行环境被认为是可信的, 隐私保护问题不被重视. (2) 另一方面是发布订阅隐私保护机制的研究在技术上遇到了瓶颈, 已有的发布订阅隐私保护方法存在计算速度慢、可扩展性不好等问题, 无法支持大规模订阅的匹配, 导致其缺乏实际部署和应用, 进而降低了该领域的活跃程度. 发布订阅隐私保护技术的早期研究者, 遇到了需求和技术两方面的困难, 导致在相当长一段时间内该领域的研究不太活跃. 近年来, 随着发布订阅云服务的流行, 发布订阅系统隐私保护问题的重要性日益凸显, 吸引了更多的研究者的关注. 同时, SGX 等可信计算技术的出现、保序加密等密码技术的发展, 也给该领域的研究提供了新的工具和研究思路. 例如, 2016 年Pires 等人[8]在Middleware 上发表的文章中第一次从系统安全的角度提出在发布订阅云基础设施中创建SGX 可信执行环境进行事件匹配. 2019 年伯克利分校的研究团队在USENIX 上发表的文章[1]中着重阐述在资源受限型的物联网设备间实现端到端的加密和密钥委托(key delegation). 2020 年北京邮电大学的研究团队在IEEE BigData 上发表的文章[9]基于保序加密算法提出了针对发布订阅云服务场景的高效密文匹配方法. 图2 按照时间轴总结了该领域主要研究工作的贡献.

图2 发布订阅系统隐私保护技术的发展Figure 2 Development of publish-subscribe system privacy protection technology

目前尚缺乏对发布订阅隐私保护技术近五年研究进展的相关报道, 为弥补这一缺失, 本文从机密性和匿名性两个方面对现有的发布订阅系统隐私保护研究工作进行了总结, 通过分析现有发布订阅隐私保护技术存在的问题和不足, 对未来的发展趋势进行了展望. 希望能够给当前发布订阅隐私保护技术的相关研究提供一定的参考与帮助.

2 发布订阅系统模型

2.1 模型结构

通用的发布订阅系统主要由三个角色组成: (1) 发布者, 其向系统中发布事件; (2) 订阅者, 其向系统中发送感兴趣的订阅; (3) 代理(broker), 作为连接发布者和订阅者的中间节点, 负责存储订阅, 匹配事件和订阅路由表, 并将匹配的事件转发给对应的订阅者.

根据订阅约束模型通常将发布订阅系统分为两种: 基于内容的(content-based) 和基于主题的(topicbased). 其中在基于主题的发布订阅系统中, 发布者在特定的主题上发布事件, 订阅者在感兴趣的主题上发送订阅, 其可看作是基于内容的发布订阅系统的简单特例, 为此我们主要介绍基于内容的发布订阅系统(content-based pub/sub system, CBPS) 模型.

如图3 所示, 在CBPS 中, 事件通常由事件头(header) 和负载(payload) 组成, 事件头可看作一个二元组(属性名, 属性值), 也可将其理解成键值(key-value) 对. 其中属性名表示要发布的事件属性, 属性值表示在该属性上的取值. 比如在图3 所示的股票报价系统中, 事件Pub 的事件头为: price = 300,name=“IBM”, date=2020/2/6, 那么在该事件头中price、name 和date 就是属性名, 300、“IBM” 和2020/2/6 分别为对应属性上的属性值, 表示2020 年2 月6 号当天IBM 公司发布的股票价格为300 美元. 在发布订阅系统中, 事件头用于和代理处存储的订阅执行匹配, 负载是最终要交付给订阅者的全部数据, 负载一般与事件头相同, 但也可以比事件头更丰富完整. 比如在发送股票信息时, 负载中除了添加事件头内容, 还可以添加该股票的价格变动图等信息. 一般事件只用事件头表示, 负载是可选的. 当事件与订阅匹配时, 如果没有负载, 那么系统直接将事件头转发给对应的订阅者; 如果有负载, 则将事件头对应的负载转发给订阅者, 也可以将事件头和负载一块转发, 在图3 中仅将负载发送给匹配的订阅者S2.

图3 基于内容的发布订阅系统模型Figure 3 System model of content-based publish and subscribe

订阅由属性约束集组成, 每个属性约束可看作一个三元组(属性名, 操作符, 约束值), 其中属性名表示对哪个属性设置约束, 属性一般有两种取值类型, 即数值型或者字符串型; 操作符, 如果是数值型的属性,可以在其上设置等值(=)、非等值(>, <,≤,≥) 或者区间类型的约束, 如果是字符串类型的属性, 则可以在其上设置等值、前缀、后缀或者其子串类型的约束, 一般等值类型较多; 约束值, 即设置的感兴趣的事件属性上的取值. 比如图1 中的订阅Sub1: price <200, name=IBM, 其中price 和name 就是属性名, 可以看出, price 为数值类型, name 为字符串类型, <和= 为操作符, “200” 和“IBM” 为约束值, 表示该订阅者想获取IBM 公司股票价格小于200 美元时的股票信息.

2.2 事件和订阅的匹配

事件与订阅匹配当且仅当对订阅中的每个约束在事件中均能找到与其匹配的属性和属性值. 比如对订阅Sub2, 事件Pub 在属性name 和value 上的取值均满足该订阅, 因此Pub 与Sub2匹配. 而对Sub1,虽然Pub 在name 上的取值满足该订阅, 但在price 上的取值不满足, 因此Pub 与Sub1不匹配.

2.3 订阅包含关系

发布订阅系统可利用订阅之间的包含(containment) 关系来减少用于匹配的订阅数量以提高事件匹配的效率.

如果一条订阅s1比另一条订阅s2更通用(general), 则认为订阅s1包含订阅s2. 此时如果任意一个事件匹配s2, 那么该事件也一定匹配s1, 反之, 如果任意一个事件不匹配s1, 那么它一定也不匹配s2. 比如订阅s1: price <30 包含订阅s2: price <20, 事件p1: price=15 是匹配订阅s2的, 可以看出p1也一定是匹配订阅s1的. 反之事件p2: price=45 不匹配订阅s1, 可以看出其也一定不匹配s2.

订阅包含关系一般在事件明文匹配中用于提高匹配效率[21–23], 在事件和订阅的密文匹配方面, 也有相关文献[13,16,19]利用这种包含关系, 此时包含关系的使用虽然缩小了要匹配的订阅集合但同时也暴露了订阅之间的关系, 削弱了订阅的机密性.

3 发布订阅系统中隐私保护的定义与威胁模型

3.1 发布订阅系统中的隐私性定义

发布订阅系统的隐私保护不仅仅要防止通信内容被窃听, 还要防止通信行为被监视. 也就是说, 通信主体的数据和身份都需要得到保护. 因此, 发布订阅系统的隐私性要包括机密性和匿名性两个方面.

3.1.1 机密性

发布订阅系统的机密性是指保护发布者发布的事件和订阅者发送的订阅不被攻击者获取.

发布订阅系统中的机密性属性可被定义为3 类:

(1) 事件机密性. 保护用来和订阅匹配的事件头在系统中传输时不被代理、不匹配该事件的订阅者以及系统中的外部窃听者所知道;

(2) 负载机密性. 如果事件带有消息负载时, 保护负载在传输时不被代理、不匹配该事件的订阅者及外部窃听者获取.

(3) 订阅机密性. 保护订阅者发送的订阅在传输和存储时不被发布者、其他订阅者、代理和系统中的窃听者所知道.

3.1.2 匿名性

发布订阅系统的匿名性是指保护发布者和订阅者的身份不被窃听者所识别. 文献[17] 和[18] 分别给出了发布订阅系统匿名性的详细定义及对发布订阅系统匿名性的度量.

(1) 匿名性的定义Vo 等人[17]对基于主题的发布订阅系统中的发布者匿名性、订阅者匿名性和订阅匿名性进行了定义. 其将系统中的实体分成两部分, 第一部分是可信实体集, 可信实体集中的参与者在系统中是可信的, 不会与攻击者或其它参与者共谋; 另一部分是共谋实体集, 是除可信实体集外剩余的参与者, 因为攻击者有可能与系统中订阅者、代理或发布者等节点共谋, 因此这些实体均是不可信的. 给定一个事件, 发布者匿名性指攻击者在可信实体集中识别不出发布该事件的发布者. 给定一个主题t, 假设在系统中对该主题进行订阅的订阅者总共有s个, 其中共谋实体集中订阅的有As个, 订阅者匿名性指攻击者从剩余的(s-As) 个可信实体集中识别不出哪一个对该主题进行了订阅. 假设系统中总的主题有T个, 给定订阅者, 订阅匿名性指攻击者无法从这T个主题中识别其订阅的是哪一个.

(2) 匿名性的度量Daubert 等人[18]用匿名集的大小来衡量发布订阅系统所能提供的匿名保护程度. 匿名集指系统中的一个实体集合, 匿名集越大, 发布者和订阅者的匿名性保护程度越好. 最大的匿名集是系统中所有实体(包括发布者、订阅者和代理) 的集合, 此时从攻击者的角度看, 系统中的每个实体都可能是发布者或订阅者.

3.2 威胁模型

威胁模型可以说是机密性和匿名性问题研究的起点, 现有相关算法对机密性和匿名性的实现都是针对特定威胁模型下的, 因此需要在详细的介绍隐私保护方案前给出系统中机密性和匿名性威胁模型的说明.

3.2.1 机密性威胁模型

根据发布订阅系统成员是否可信本文将机密性威胁模型分为2 种:

(1) 节点是可信的即假设系统中的发布者、订阅者和代理均是受信任的, 他们会遵守协议的约定, 节点之间不会共谋、不会恶意执行某些操作, 此时系统是最安全的. 就代理来说, 在早期的发布订阅系统中, 其主要部署在企业内部的数据中心, 是在封闭的可信计算环境中运行的, 因此代理是可信的. 例如, 谷歌、雅虎、LinkedIn 等互联网公司用于自身产品的发布订阅系统. 在这种情况下, 由于参与的节点是可信的, 只需保证事件和订阅在传输过程中不被泄露, 可通过在节点之间建立SSL 安全信道以保证端到端通信的机密性.

(2) 节点是不可信的随着云计算的发展, 越来越多的公司倾向使用发布订阅云服务[5–7]来加速事件的匹配和路由, 而云服务中的代理往往是不可信的, 发布订阅系统的应用环境开始从封闭的可信计算环境转变为开放的不可信计算环境.

3.2.2 匿名性威胁模型

本文从活动水平(activity level)、渗透系统程度(infiltrate the system) 和攻击范围(attack scope)三个角度来构建匿名性威胁模型[18].

(1) 从活动水平的角度来看, 攻击者可分成被动的(passive) 和主动的(active). 其中被动类型的攻击者只具有监听网络中消息的能力, 而主动类型的攻击者可以与系统交互, 继而可以篡改、重放、删除系统节点传输的消息.

(2) 从渗透系统程度的角度来看, 攻击者可分为内部的(internal) 和外部的(external). 内部类型的攻击者可以控制系统中的一个或多个恶意节点, 能够获取到一些秘密和加密密钥等信息, 相反外部类型的攻击者不能控制系统中的节点因而获取不到系统中任何的秘密信息.

(3) 从攻击范围的角度, 攻击者可分为全局的(global) 和局部的(local), 全局类型的攻击者具有全局的网络拓扑, 而局部类型的攻击者只能利用一个或几个共谋节点进行攻击, 获取不到全局的网络拓扑结构.

目前已有文献大多仅针对某一种类型的攻击者实现匿名性保护, 比如Vo 等人[17]的方案能针对被动的局部类型的攻击者模型为发布者和订阅者提供匿名性保护; Daubert 等人[18]的方案能针对被动的全局的外部类型的攻击者为订阅者提供匿名性保护.

4 研究现状与进展

在发布订阅系统中, 当前对机密性保护方案的研究可被划分为两种, 一种是采用密码学算法构建密文匹配方案使得代理在不对事件和订阅解密的条件下实现事件匹配; 另一种是从系统安全的角度使用Intel提供的可信执行环境SGX (software guard extensions), SGX 将应用程序的安全操作封装在Enclave 容器中, 在这个容器内可保证代码和数据的机密性与完整性, 事件和订阅的匹配被放到创建的Enclave 中执行.

无论是基于传统的密码学算法还是基于可信执行环境SGX 构造的机密性保护方案, 在执行匹配前,均需要对事件和订阅加密以保护事件和订阅的机密性, 因此在加密前, 需要为发布者和订阅者分发密钥,给出密钥分发方案. 密钥分发系统应能在发布者或订阅者注册系统的时候及时分发密钥, 在发布者或订阅者注销系统的时候及时撤销和更新密钥.

当前文献提出的机密性保护方案大多基于密码学算法构造, 对基于内容的发布订阅系统, 这些算法在执行匹配时由于事件需要和订阅集合中的订阅一条条比较, 使得系统不具有可伸缩性, 随着订阅数量的增加, 系统性能会越来越差, 已有方案不适用大规模订阅的处理. 在这方面, 2020 年, Feng 等人[9]结合保序加密算法[24]通过对订阅密文构建索引的方式实现了高效且支持系统可伸缩性的密文匹配方案. 在使用可信执行环境实现机密性保护的研究上, 2016 年Pires 等人[8]首次从系统安全的角度构造了基于SGX 的机密性保护方案. 另外, 当前文献给出的机密性保护算法其密钥分发方式均是中心化的, 2019 年伯克利分校的研究团队提出了针对资源受限型的物联网设备的端到端加密方法[1], 并且首次给出了在发布订阅系统中实现去中心化的密钥分发方案.

以下在4.1 节和4.2 节对实现机密性的方案进行介绍, 在介绍具体的方案前在表1 给出相关的符号及含义.

表1 各方案中相关符号及其所代表的含义Table 1 Related symbols in these schemes and their meanings

4.1 密码学算法保护机密性

Choi 等人[13]提出使用非对称标量积保持加密(asymmetric scalar-product preserving encryption,ASPE) 算法来实现密文匹配. ASPE 由Wong 等人[25]基于加密数据库上的k近邻查询算法提出, 其核心思想是将事件和订阅表示成多维空间上的点, 然后通过比较点之间的距离判断事件与订阅是否匹配.

(1) 密钥分发系统为所有的发布者分发的加密密钥为可逆矩阵M的逆M-1, 矩阵M的行和列的大小均为(d+1). 对订阅者, 如果其是可信的, 直接为其分发密钥M; 如果其是不可信的, 引入一个安全管理员, 将M分发给安全管理员, 由安全管理员为所有的订阅者加密订阅.

(4) 密文匹配

执行事件匹配时, 进行以下运算并化简得到最终结果;

如图4 所示, 事件匹配最终变成了判断s1,s2与e之间的距离. 如果(1)式结果大于0, 那么Dis(s2,e)>Dis(s1,e), 订阅约束值s大于事件属性值e; 反之, Dis(s2,e)<Dis(s1,e), 订阅约束值s小于事件属性值e. 而且计算结果由于引入了随机值r, 代理也无法知道事件和订阅的真实距离.

图4 事件和订阅在一维空间上的表示Figure 4 Representation of events and subscriptions in one dimension

(5) 方案评价基于ASPE 算法实现的机密性保护方案虽然能够实现事件和订阅的机密性并且能够支持等值、非等值及区间等复杂类型(字符串除外) 的订阅, 但其方案的安全性较低, 其仅能抵抗唯密文攻击, 而且对属性和约束为多维的情况, 作者也只是简单地讨论了这个问题, 并没有给出具体的方案说明, 另外, 文章也没有给出密钥分发方案的设计.

4.1.2 可搜索数据加密方案

总而言之,为了让临床细菌样本检验的准确性得到提升,进行检验的时候,对样本的采集,送检和保存等操作都应该规范,确保操作的无菌化,这样能够让样本的质量获得提升,提高检验的准确性。

2012 年, Ion 等人[2]提出利用多用户可搜索数据加密(searchable data encryption, SDE[26,27]) 技术实现密文匹配. SDE 由Dong 等人[26]提出, 用于在不可信服务器下实现对密文数据或关键词的搜索,其基于代理加密机制[28]上构造, 代理加密技术依赖代理将用户A加密的密文转换为用户B可以解密的密文, 而且整个过程中用户A发送的数据不会被代理所知道. 在该系统中, 发布者和订阅者利用与其直接连接的代理对使用SDE 算法加密后的事件密文和订阅密文进行重加密, 然后对重加密后的事件密文和订阅密文执行匹配.

订阅加密时, 对等值类型的订阅约束, 直接用SDE 算法加密即可. 对非等值型的订阅约束首先对其用Bethencourt 等人[29]给出的访问树的形式表示, 比如图5 给出了订阅Sub:a <11 的访问树结构. 访问树由叶子节点和阈值门表示, 叶子节点代表订阅中的属性约束, 阈值门由阈值和其子节点表示, 阈值表示匹配时需要满足的子节点数量. 对事件, 先用二进制表示后再将其分割成只有1 bit 位的属性集, 比如事件Pub;a=10=(1010)2, 那么其将被表示成{a=1***,a=*0**,a=**1*,a=***0}. 事件和订阅匹配是否匹配只需判断事件中1bit 位的属性集是否满足订阅访问控制树, 从访问树的根节点开始从上往下递归;

图5 订阅Sub: a <11 的访问树结构Figure 5 Access tree structure of subscription Sub: a <11

(1) 如果是叶子节点, 判断事件属性集中是否有满足该叶子节点的元素.

(2) 如果是非叶子节点, 判断和事件匹配的子节点的个数是否满足该节点的阈值; 可以看出此时事件Pub 的属性集满足订阅Sub 的访问控制树, 事件和订阅匹配.

将事件和订阅表示成上述形式后, 接下来用SDE 算法对事件属性集中的每个元素和订阅访问树中的每个叶子节点进行加密然后对加密后的事件和订阅按照上述原则执行匹配.

(1) 密钥分发由可信权威机构TA 为发布者和订阅者以及代理分发SDE 密钥. SDE 基于ElGamal 公钥算法构造, 生成的公钥为PKSDE= (G0,g0,q0,h,H,f), 私钥为MKSDE= (x,s0), 其中q0是生成的随机大素数,G0是生成元为g0的循环群,x是选取的随机数,h=g0x,H是抗碰撞的哈希函数,f是伪随机函数,s0是f的随机密钥. 对每个用户(发布者或订阅者)i, 分别为其和与其相连的broker 分发密钥(s0,xi1), (i,xi2), 其中xi1+xi2=x.

(2) 事件加密

(5) 方案评价基于可搜索数据加密算法实现的机密性保护方案同样能够实现事件和订阅的机密性, 能够支持复杂的订阅约束, 并且由于使用CP-ABE 算法来加密负载, 使得方案可以支持对订阅者的访问控制, 方案的安全性也比非对称标量积保持加密更高, 因为使用ElGamal 算法构造的可搜索数据加密算法被证明能够抵抗选择明文攻击这种强类型的攻击. 其缺点是对于非等值和区间类型的订阅约束, 最坏情况下, 系统匹配时间与事件或订阅的二进制表示位数m的平方成正比, 匹配理论上比非对称标量积保持加密算法要慢, 因为一个约束子树最多有m个叶子节点, 一个事件属性值被表示为m个元素, 最坏情况下事件属性值中的每一个元素必需与订阅约束中的每一个叶子节点比较.

4.1.3 同态加密方案

2013 年, Nabeel 等人[3]提出使用修改后的Paillier (modified paillier, MP) 同态加密方案[30]实现了基于上下文的发布订阅系统中的密文匹配. Paillier 同态算法具有两个加同态性质, 给定要加密的数x和y, 变量k, 加密算法E, 那么E(x)*E(y)=E(x+y);E(x)k=E(k*x).

方案的核心思想是由上下文管理器(context manager, CM) 为同一上下文的发布者和订阅者分发安全参数, 事件和订阅分别在安全参数下加密. 执行匹配时, 在代理处对事件密文和订阅密文相乘再解密, 通过判断解密的密文值大小判断事件和订阅是否匹配, 执行加密和匹配时都利用了同态加密的加同态性质进行了化简.

(1) 密钥分发假设发布者Pi和订阅者Si均处于同一上下文Ci, 每一个Ci拥有四元组〈λi,μi,ti,ri〉, 其中μi和λi是针对上下文Ci生成的MP 算法加解密的公私钥,ri和ti是针对上下文Ci选取的随机数. 由Ci对应的上下文管理器CM 分别为同一上下文的发布者和订阅者分发加密时需要的安全参数〈E′(ri),E′(1),gti ·E′(ri)〉和〈E′(-ri),E′(-(1),g-ti ·E′(-ri)〉, 其中g为Paillier 公钥中的一个参数,E′是MP 的加密算法.

(2) 事件加密

假设发布者发布的事件为a=e, 则对属性值加密生成的密文为:

上式(4)中的re >0 是发布者选取的随机值,E′(ri(e-(1)) 和E′(re) 分别可由E′(e-(1)ri和E′(1)re利用性质得出, 然后再对(4)整体使用性质得到简化的结果, 最终发布者发布的事件头为(a=e′).

(3) 订阅加密

假设订阅者欲发送非等值的订阅a ≥s, 对订阅约束值加密, 得到密文s′;

等式(5)中s′的计算与事件头密文的计算类似, 最终订阅者发送的订阅为(a,s′,≥).

(4) 密文匹配

代理收到事件头和订阅密文后, 进行如下处理, 并利用性质化简得;

然后调用MP 解密算法D′对式(6)解密得到d′=ri(e-s)+re, 该机制假设事件和订阅的明文取值空间为[0, 2m],m <<n(Paillier 算法公钥中的参数), 如果e ≥s, 那么e-s ∈[0,2m]; 如果e <s, 那么e-s ∈[n-2m,n].ri和re是可控区间上选取的随机值, 其“扩展” 了事件和订阅实际的差值, 假设通过适当的选取ri和re的值使得当d′≤n/2 时,e >s一定成立; 相反当计算出的d′>n/2 时,e <s一定成立, 便可以通过d′的取值判断事件和订阅是否匹配.

(5) 方案评价基于修改后的Paillier 算法实现的机密性保护方案能够保护事件和订阅的机密性, 能够支持数值型这种复杂的订阅约束. 方案的安全性与可搜索数据加密一致, 被证明能够抵抗选择明文攻击这种强类型的攻击, 比基于ASPE 的方案安全性更高. 事件匹配时间与订阅约束个数成正比, 匹配性能理论上比可搜索数据加密方案要好, 但该方案一个比较重要的限制是无法支持对字符串类型订阅的匹配, 这极大地限制了它在实际中的使用.

4.1.4 属性基加密

2014 年, Tariq 等人[16]基于CP-ABE (ciphertext-policy attribute-based encryption) 机制[29]实现了点对点发布订阅基础设施中的机密性. CP-ABE 允许加密者在加密消息时添加访问控制策略, 并根据解密者提供的属性生成属性私钥, 只有当解密者的属性满足加密者加密时设置的访问控制策略时, 解密才可以成功.

不同于传统的有代理的发布订阅系统模型, 此方案中只有发布者、订阅者和密钥服务器, 其中密钥服务器用于分发事件加密密钥和订阅解密密钥. 事件通过订阅者组成的发布订阅覆盖网络被传播. 覆盖网络是利用订阅者注册的订阅之间的包含关系构建的一个树型的网络. 具有较通用的订阅对应的订阅者被放置在根附近, 不太通用的订阅对应的订阅者依次被放在根的下方. 每个订阅者除了执行事件匹配外, 还要根据树形网络的结构将事件转发给其父节点和子节点.

事件在加密时, 首先生成对称密钥K对负载加密得到负载密文, 然后对K使用与事件凭据(credential) 关联的公钥加密得到密钥密文. 订阅者的解密密钥也与凭据关联, 订阅者成功解密K当且仅当解密密钥关联的凭据满足密钥密文关联的凭据, 解密出K后再对负载密文解密即可得到事件. 凭据根据事件或订阅在属性分区上映射到的位字符串生成.

对多维数值型属性, 需对每个维度进行分区, 根据订阅和事件在每个维度上的取值将其映射到不同的分区, 事件最终被映射到能用最长的位字符串表示的分区上, 订阅被映射到包含其约束的最小的分区上.以二维属性a和b为例, 假设其属性取值范围均为[0,100], 对其四种不同的分区如图6 所示. 假设事件Pub :a= 20,b= 22, 那么其被映射到的位字符串为000, 订阅Sub :a <50,b <50, 被映射到的位字符串为00. 为了保证订阅在不同类型的分区上映射到的位字符串生成的凭据能够成功解密, 需将事件位字符串进行拆分, 比如对000, 其将被拆分为0, 00, 000, 然后分别用这三个位字符串生成的凭据加密对称密钥K. 可以看出订阅Sub 被映射到的位字符串匹配事件被拆分后的位字符串00, 那么根据订阅的位字符串生成的凭据得到的解密密钥也能成功解密使用事件拆分后的位字符串生成的凭据加密得到的密钥密文.

图6 事件空间的层次分解Figure 6 Hierarchical decomposition of event space

如果解密成功订阅者将得到K进而解密出负载, 否则解密失败.

相比前三种方案, 这种无代理的发布订阅系统由于利用了订阅之间的包含关系, 因此泄露了订阅的机密性信息, 不能保证订阅的机密性. 同时方案由于属性区间划分的粒度问题也引入了误判率, 而前三种方案中并没有引入误判率的问题. 其次, 事件加密时, 对每个属性, 加密后的事件密文个数与凭据个数成正比, 当事件或订阅二进制表示的位数比较大时, 每个订阅节点都需要向其父节点和子节点传播大量事件,当订阅节点非常多时, 会给系统带来很大的路由负载.

在使用属性基CP-ABE 加密数据保护数据机密性方面, Yang 等人[31]提出了针对物联网环境下可穿戴设备服务提供商向终端用户发布数据的过程中产生的隐私泄露问题的保护方法. 与Tariq 等人的方案不同的是, 作者基于CP-ABE 设计了两种多云外包方案即并行云ABE (parallel-cloud ABE) 和链云ABE(chain-cloud ABE), 这两个方案旨在将CP-ABE 昂贵的解密操作外包给多个云以缓解资源受限型的物联网设备端解密的压力. 相对Tariq 等人直接将密钥密文发给订阅者解密的方式, 此种方法的解密效率更高,带来的延迟更小.

4.1.5 基于WKD-IBE 的加密方案

2019 年, Kumar 等人[1]给出了针对资源受限型的物联网设备的机密性保护方法, 这些设备要求算法的性能开销不能太大. 加密采用比ABE[32]更轻量型的WKD-IBE[33]算法, WKD-IBE (identity-based encryption with wildcard key derivation) 根据资源(resource) 对消息进行加密, 同样也根据资源生成的解密密钥对消息解密,资源用统一资源定位符(uniform resource indicator,URI)表示. 比如图7 中发布者P是buildingA 的管理员, 拥有对大楼buildingA 的访问权限, 那么其拥有的资源可表示为buildingA/*.

如图7 所示, 与4.1.4 节属性基方案类似, 该方案中对事件加密也采用混合加密的方式, 首先生成对称密钥K 用于对事件负载payload 加密, 得到事件密文c1, 然后用WKD-IBE 对加密密钥K加密, 得到密钥密文c2. 然后将加密k时对应资源的URI=buildingA/floor1/Reading、时间Time=2021.6、事件密文和密钥密文作为最终的JEDI 密文发送到系统中.

图7 加密过程和密钥授权过程Figure 7 Process of encryption and key delegation

订阅者的解密密钥通过分散授权(decentralized delegation) 的方式分发. 分散授权是指拥有对某个资源访问权限的主体可以授权另一个主体访问其资源的子集. 授权订阅者访问其资源子集的主体可以结合资源子集、授权有效期及主体密钥库(key store) 中的私钥为订阅者生成访问其资源子集的授权密钥.如上图7, 发布者P为订阅者S授权对buildingA 下的楼层floor1/的访问密钥,S收到后同样将其存储在自己的密钥库中,S还可为其他订阅者再授权密钥. 解密时, 订阅者首先根据事件密文中的URI 和Time 在其密钥库中找到对应的解密密钥, 然后用该密钥解密c2得到加密事件的对称密钥K, 然后再用对称密钥解密c1便可得到负载.

相较前四种方案, Kumar 等人实现了一个去中心化的密钥分发方案, 使得密钥分发不再仅依赖可信第三方这种中心化的方式. 另外, 由于使用了更轻量级的加密方案, 从事件加解密效率上来看, 此种方式要比基于属性基的方案要好. 但由于其是针对物联网这种基于主题的发布订阅系统实现的机密性, 从订阅具备的表达能力上来说, 没有前四种要好, 其不能支持复杂的订阅约束.

4.1.6 保序加密方案

2020 年Feng 等人[9]针对基于内容的发布订阅云服务场景提出了一种可伸缩性好的密文匹配机制盲匹配(scalable blind matching,SBM).SBM 方案首先使用保序加密(order preserving encryption,OPE)算法[24]对事件和订阅加密. OPE 使得加密后的密文可维持原明文顺序, 即给定数据x、y, 保序加密算法EOPE, 如果x >y, 那么EOPE(x)>EOPE(y). 因此对有序的事件密文和订阅密文, 事件的密文匹配便可以看作明文匹配, 换言之, 可用现有的高效的明文匹配方法实现密文匹配.

然后, 利用在密文上建立的索引提高匹配的效率. SBM 方案通过构建高效的索引结构[34–36]来存储和管理订阅信息, 匹配时每个事件只需要与它在该索引结构上映射到的订阅进行比较, 这样快速过滤掉大量不匹配加密订阅, 大大减少了匹配时的订阅数量, 降低了匹配时间复杂度, 使得方案可以适用对大规模订阅的处理.

之前的密文匹配方法存在一个共同的不足是事件需要和加密的订阅逐条比较来检查是否匹配, 匹配时间会随着订阅集合的增加而线性增长, 无法支持大规模订阅的事件匹配需求. SBM 方案在可伸缩性方面取得了很大进步. 但是, SBM 方案是针对应用服务商对云服务基础设施不信任特定问题的解决方案, 由于其业务场景的密钥管理需求简单, 该方法并无法直接适用于一般情况下发布订阅云服务的隐私保护.

4.2 可信执行环境(SGX) 保护机密性

Pires 等人[8]首次从系统安全的角度提出使用可信执行环境SGX 保护事件和订阅的机密性. 事件和订阅在Enclave 外被加密, 在Enclave 内分别被解密后执行事件匹配. 如图8 所示, 系统首先为发布者生成一对公私钥PK 和SK, 其中PK 是公开的, SK 只与Enclave 共享. 注册订阅时, 订阅者使用发布者的公钥加密订阅后将其发送给发布者(图8 中的), 发布者收到后先对订阅密文进行解密, 验证其有效性, 验证通过后, 再使用自己的私钥将订阅重加密后发送给路由引擎(图8 中的). 路由引擎(相当于代理) 收到后在其创建的Enclave 内部使用与该发布者共享的私钥SK 对订阅解密并将解密后的订阅存储到其内部创建的索引结构中. 发布者发布事件时, 首先使用私钥SK 加密事件头, 然后使用与订阅者共享的组密钥K 加密负载, 将加密的事件头和加密的负载发送给路由引擎(图8 中的). 路由引擎收到后在其Enclave 内先对事件头解密, 然后与存储的订阅执行匹配(图8 中的), 最后将匹配的事件头对应的加密负载转发给对应的订阅者(图8 中的), 订阅者利用K 解密即可得到匹配的事件(图8 中的).

图8 实体交互过程Figure 8 Interaction amongst entities

2018 年Arnautov 等人[37]提出了PUBSUB-SGX. 如图9 所示, 其主要由两个组件构成: Load Balancer/Proxy 和Matcher. 其中Load Balancer 负责均衡地将事件和订阅发送到Matcher 中. 而Matcher中部署了多个Broker 节点用于执行事件和订阅的匹配. 注册订阅时, 订阅者首先将订阅发送到Load Balancer, 由Load Balancer 均衡地将订阅发送到Matcher 中的一个Broker 处存储(图9 中的), 然后由Balancer 将该Broker 的ID 发送给订阅者(图9 中的), 订阅者建立与该Broker 的通信信道(图9 中的), 用于后续匹配事件的路由. 发布者同样通过Load Balancer 向Matcher 中某个代理节点发布事件(图9 中的), 但事件会被广播到Matcher 中所有节点, 因为每个节点都可能存在匹配的订阅, 在Broker节点执行完匹配后, 事件被转发给匹配的订阅者(图9 中的). 整个过程中, 事件和订阅在不同实体之间均是通过SSL 安全信道传输的, 在Balancer 和Matcher 中的处理也均是在SGX 的Enclaves 中进行的,因此可以在系统中保护事件和订阅的机密性.

图9 PUBSUB-SGX 架构Figure 9 Architecture of PUBSUB-SGX

Munster 等人[38]基于SGX 提出了可进行秘密共享的混合代理网络HyShare,在HyShare 中可保证事件的安全传输. HyShare 由两种类型的代理组成: ISSPS (iterative secret share propagation scheme)代理和启用SGX 的代理. 其中ISSPS 代理运行着Shamir 秘密共享机制[39], 当秘密到达时, 根据下一跳节点是代理还是订阅者有着不同的处理策略. 如果是代理, 接收到的秘密必须经历Shamir 的秘密共享方案的另一次迭代, 迭代后秘密将被分割成n个新的片段, 分别被转发给下一跳逻辑代理中的各个代理; 如果下一跳是订阅者, 则不需要进一步的分片, 代理可以直接转发接收到的秘密. 如果系统中均是ISSPS 类型的代理, 经过代理间的多次迭代, 在节点间传输的秘密会呈指数级别的增长, 给系统带来巨大的性能开销. 为解决这个问题, HyShare 中又引入了SGX 代理, 此时如果下一跳是启用SGX 的代理, 那么当前的代理不需要调用Shamir 秘密共享方案生成新的片段, 而是使用其和下一跳代理之间的会话密钥加密传输以此降低节点间迭代的次数, 进而减少系统中传输的消息. 整个过程中, 每个代理只知道自己接收到的秘密, 而原始的秘密需要结合多个代理节点处的秘密才能最终计算出来, 对中间任何一个代理, 如果其想知道原始的秘密, 必须和同一迭代过程中被划分到分段的所有代理共谋才能计算出来, 相对和单个代理共谋这是有难度的.

4.3 密钥分发机制

现有的密钥分发机制可以分为两类;

(1) 中心化

现有的实现发布订阅系统机密性的方案中对密钥的分发一般都是依赖可信第三方, 比如Ion 等人[2]的方案中引入可信权威机构TA (trusted authority) 为发布者和订阅者分发可搜索加密算法的密钥以实现对事件和订阅的加密; Nabeel 等人[3]的方案引入上下文管理器为具有相同上下文的发布者和订阅者分发Paillier 算法加解密时需要的安全参数. 还有一些方案, 虽然作者未给出详细的密钥分发方式, 但也提到了密钥分发机构, 比如Choi 等人[13]的方案, 其引入了安全管理员为发布者分发加密时需要的密钥信息. 这种依赖可信第三方的密钥分发机制将密钥分发和管理的负担都集中在了可信的服务器上, 以保证发布者和订阅者通信去耦合的特性, 但这种方式存在一些问题:

(2) 去中心化除了中心化的密钥分发方案, Kumar 等人[1]还提出使用分散授权(decentralized delegation) 即去中心化的方式来分发密钥. 分散授权的含义在4.1.5 节已有介绍. 此种方式相对密钥集中分发方式安全性更强, 因为不需要像可信服务器那样需要时刻在线, 在分散授权中, 授权方授权完密钥后就可以离线了. 而且此方式由于不再依赖于一个可信服务器来分发密钥, 保证了系统的可伸缩性.

4.4 机密性保护方案的小结

表2 分别从以下五个指标对现有的机密性保护方法进行了评估, 表3 对单个事件和S 个订阅的加密及匹配时间复杂度进行了总结(对基于属性基和基于WKD-IBE 的方案, 我们用加密密钥的时间衡量加密事件头的时间).

表2 机密性保护方案的性能评价Table 2 Performance evaluation of confidentiality preserving schemes

表3 机密性保护方案的时间复杂度Table 3 Time complexity of confidentiality preserving schemes

E1: 能提供机密性保护. 该指标要求机密性保护方案应保护事件机密性、负载机密性和订阅机密性.

E2: 不能破坏发布订阅系统的去耦合特性. 该指标要求发布者和订阅者之间不能有直接的联系, 比如发布者和订阅者之间不能共享密钥, 不能将订阅者注册的订阅直接发送给发布者或者将发布者发布的事件直接发送给订阅者, 以支持系统的去耦合特性.

E3: 能匹配复杂的订阅约束. 该指标要求在基于内容的发布订阅系统中实现的机密性保护方案除了能对简单的等值订阅约束执行匹配外, 还能对非等值约束、区间约束等复杂类型的约束执行匹配. 另外实现的方案除了能对单个约束执行匹配外, 还能对多个以合取方式连接的约束执行匹配.

E4: 方案不能引入误判率. 该指标要求机密性保护方案应该实现事件和订阅的精确匹配, 不能把实际不匹配的事件发送给订阅者.

E5: 方案具备可伸缩性(scalability). 该指标要求给出的机密性保护方案其事件匹配时间不能随订阅数量增加而线性增加, 应满足实际应用系统对大规模订阅的处理要求.

由表2 及表3 可以看出, 对使用密码学算法实现的机密性保护方案, 其匹配的时间复杂度与系统中订阅的数量成正比,随着系统中订阅数量的增加,系统的性能会越来越差,匹配不具有可伸缩性(基于WKDIBE 的方案和基于保序加密的方案除外).

基于SGX[8]的方式其执行效率明显高于使用密码学算法的方案, 因为在SGX 内部执行的是明文匹配, 不需要像密文匹配(比如利用ASPE 或者同态加密) 那样还需进行复杂的运算. 但是由于其运行内存有限, 当存储的数据量比较多或者占用内存比较大(超过90 MB) 时, 易出现页面缺失和缓存缺失, 此时Enclave 需要与系统内存进行交互以调入调出缓存或者页面, 会额外增加开销. Arnautov 等人[37]提出的PUBSUB-SGX 系统虽然通过Load Balancer 均匀地将订阅划分到了单个代理节点中, 使得每个代理节点处存储的订阅数量减少了, 进而减少了Enclave 内存的占用. 但其没有从根本上解决问题, 当系统中出现大规模的订阅时, 每个代理节点仍然会被分配到很多订阅, 随着订阅数量的增多, 占用内存便会超过90 MB, 系统性能开始恶化. 基于SGX 的方案其匹配性能与现有的硬件性能紧密相关, 当前还不适用对大规模订阅的处理场景.

5 匿名性保护方法的研究现状与进展

发布订阅系统中的匿名性需求首先是由Wang 等人[40]提出的, 他们指出: 发布-订阅路由机制本身可看作一种轻量级的匿名机制. 从发布者到订阅者的路径上, 参与的节点只知道它的直接前任和后继, 如果事件从发布者转发到订阅者在网络上至少经过两跳, 那么此时针对被动的局部的内部类型的攻击者就可以为发布者和订阅者节点提供匿名性保护. 但Wang 等人未给出匿名性和威胁模型的定义, 而且未提供针对全局类型攻击者的保护.

Vo 等人[17]提出了两个可以实现发布者和订阅者匿名的方法. 其中第一种方法引入一个中央服务器来存储订阅、路由事件, 中央服务器只与可信代理proxy 连接, proxy 与发布者和订阅者连接用于传输发布者或订阅者与中央服务器之间交换的消息, 在发布者/订阅者和“诚实但好奇”的中央服务器之间添加第三方可信代理使得服务器无法直接与发布者和订阅者通信进而保护了发布者和订阅者的匿名性, 但由于仅使用一个中央服务器来路由事件, 当系统中发布者和订阅者节点比较多时, 系统的扩展性比较差; 第二种方式在底层为洋葱匿名通信网络的基础上通过为每个订阅者构建一个以它自己为根节点的生成树将发布者发布的事件路由给所有订阅者这种多播的方式来保护发布者和订阅者的匿名性, 这两种方式仅对被动的局部攻击者模型提供了匿名性保护.

Daubert 等人[18]提出了概率转发(probabilistic forwarding, PF) 和SG (shell game) 两种机制用于实现订阅者匿名性, PF 通过允许订阅者将接收到的信息概率转发给其他非订阅节点, 从而阻止了攻击者通过网络中的消息流信息对其位置的推测; SG 通过相邻节点的位置交换打乱网络拓扑来保护订阅者的匿名性, 这两种机制对被动的全局外部攻击者模型提供了匿名性保护.

5.1 基于属性网的匿名性保护方法

Daubert 等人[18]给出了匿名性威胁模型的定义, 并且针对被动的全局外部攻击者模型提出了概率转发和位置交换两种机制用于实现订阅者匿名性.

Daubert 等人的方案在基本覆盖网的基础上引入了属性网的概念, 如果将基本覆盖网络看作一个图G:= (V,E), 其中E是点, 指发布订阅网络中的发布者, 订阅者和转发者(代理) 节点,V是边, 由两个节点相连而成, 那么在G之上, 便可构建出一个或多个属性网Mai:= (Vai,Eai), 其中ai ∈属性集A. 属性网Mai中的每个发布者节点仅发布跟该属性ai相关的事件, 每个订阅者节点也仅发送与该属性ai相关的订阅. 如图10 所示便是在基本覆盖网的基础上构建出的一个属性网Ma, Ma 通过转发者连接所有的订阅者和发布者, 并且仅对属性a上的事件和订阅执行匹配及路由, 概率转发和位置交换两种机制都是在属性网的基础上实现的.

图10 基本覆盖网及在其上构造的属性网Figure 10 Basic overlay network and attribute network constructed on it

由图10 可以看出, 如果将属性网看作一颗自上而下的树, 那么树的根便是发布者, 中间的非叶子节点是转发者, 所有的叶子节点是订阅者, 由于事件最终被转发给订阅者, 所以从全局攻击者的视角来看所有的订阅者节点没有出度, 不会再将接收到的事件转发出去, 因此易推断出订阅者节点. 而接下来介绍的概率转发和位置交换机制便是阻止攻击者根据消息流向识别出订阅者.

(1) 概率转发机制

PF 的本质是通过允许订阅者将其接收到的信息再概率转发给其他非订阅者节点, 使得攻击者无法根据消息的最终流向找到订阅者. 具体来说是通过向属性网Ma 中的订阅者节点后再添加一个或多个节点,这些节点从基础覆盖网中非Ma 中的节点选取并作为转发节点, 所有的订阅者节点接收到事件后会再被转发到这些节点. 如图11 所示, 通过在订阅者S1和S3节点后新添转发节点f2,f3, 全局攻击者便无法根据消息流特点找到原来的订阅者S1和S3.

图11 概率转发机制Figure 11 Probabilistic forwarding mechanism

(2) 位置交换机制

位置交换即通过将属性网中相邻节点的位置进行交换, 进而打乱网络拓扑使得攻击者无法根据消息流特点找到订阅者. 具体工作原理是当某个转发者节点连接到一个新的订阅者节点时, 首先从其出度邻居节点中随机选取一个, 与该节点进行位置交换; 然后向其其它出度节点发送通知, 告诉他们有了新的父节点(选取的交换节点), 同时向其入度邻居节点发送通知, 告诉他们有了新的子节点(选取的交换节点), 然后可以根据需求对交换节点的子节点递归执行该算法. 以图12 中f2节点为例, 假设此时f2连接了一个新的订阅者S4,f2会执行以下过程:

图12 位置交换机制Figure 12 Position swap mechanism

通过一轮交换可以发现原先叶子节点S4现在变成了非叶子节点, 然后还可以接着对S4的子节点f3执行位置交换操作进一步打乱网络拓扑实现隐藏订阅者节点的目的.

Daubert 等人的方案针对全局的外部类型的攻击者能实现订阅者匿名性, 但其也存在着不足, 它不能实现对内部类型攻击者的匿名性保护, 而现实复杂的网络中, 攻击者有可能与网络中的内部节点共谋进而打破订阅者身份的匿名性.

5.2 基于匿名通信技术的匿名性保护方法

Vo 等人[17]给出了匿名性的定义, 并结合匿名通信技术[41]针对被动的局部的内部类型的攻击者模型提出了基于中央服务器的匿名保护机制和基于TOR 的匿名保护机制.

(1) 基于中央服务器的匿名机制

该机制通过一个中央服务器来存储订阅、匹配和路由事件, 中央服务器只与可信代理proxy 连接,proxy 与发布者和订阅者连接用于传输发布者或订阅者与server 之间交换的消息. 如图13 所示, 此种方式类似匿名通信中的Mix 网络[42], 通过在发布者/订阅者与“诚实但好奇” 的中央服务器之间添加若干个第三方可信代理使得服务器无法直接与发布者和订阅者通信进而保护了发布者和订阅者的匿名性. 但这种方式由于仅使用一个中央服务器来路由事件, 当需要匹配的订阅数过多时, 会使中央服务器的开销过大.

图13 利用中央服务器的匿名机制Figure 13 Anonymity mechanism using central server

(2) 基于TOR 的匿名通信机制

该机制在底层为洋葱匿名通信网络[43]的基础上通过为每个订阅者构建一个以它自己为根节点的生成树, 然后将发布者发布的事件路由给所有订阅者.

该方法以这种多播的方式来保护发布者和订阅者的匿名性. 由于不是仅通过中央服务器路由事件, 因此系统扩展性较高, 但这种多播的方式也极大的浪费了网络的带宽.

Vo 等人的方案针对被动的局部类型的攻击者能实现发布者和订阅者匿名性, 但其无法实现对全局类型攻击者的匿名性保护

5.3 匿名性保护方案的小结

通过对现有研究总结可以发现直接构建TOR 上的发布订阅网络虽然能够实现匿名性, 但这种简单混搭的结果是系统路由性能显著降低. 概率转发和位置交换是一个不错的思路, 但目前的方案仅是针对全局的外部攻击者模型提供了匿名性保护. 匿名性保护方案的总结如表4 所示.

表4 匿名性保护方案的对比Table 4 Comparison of anonymity protection schemes

6 研究展望

根据对现有的机密性保护方案的调研与总结, 我们发现现有密文匹配方法在进行事件匹配时, 匹配不具有可伸缩性, 而基于SGX 的方式虽然匹配效率高, 但其运行内存有限. 在匿名性保护上现有的研究存在研究方向不明确等问题. 当前实现隐私保护技术的方法还存在着不足, 在很多方向上亟待深入研究, 存在大量机遇, 本节指出未来的四个研究方向:

(1) 构造可支持伸缩性的机密性保护方案目前大部分机密性保护方案往往只关注与一条订阅匹配的效率, 而对大规模订阅匹配时系统面临的可伸缩性问题缺乏研究. 基于保序加密的发布订阅密文匹配有望解决发布订阅密文匹配的可伸缩性问题,目前主要的问题是需要研究适用性强的密钥管理方案,使得Feng 等人[9]的提出SBM方案能够适用于更一般发布订阅的应用场景. 另外, 对发布订阅保序加密匹配方法的安全性和性能还缺乏全面系统的分析研究, 还有不少工作需要继续深入开展. 因此, 利用保序加密算法构造密文匹配方案是一个值得研究的方向.

(2) 基于SGX 构造占用内存更少的机密性保护方案现有直接在Enclave 内部执行匹配的方案由于Enclave 内存本身的限制导致不能处理大规模订阅的匹配, 接下来需设计更智能的机密性保护方法以在执行匹配时减少Enclave 内存的占用, 比如利用订阅包含关系重新组织订阅以减少订阅的存储, 进而降低页面缺失或缓存缺失的出现.

(3) 发布订阅中的密钥管理问题密文匹配机制为发布订阅系统中的密钥管理引入两个需求[44], 第一个需求是给出的密钥分发方案不能破坏系统去耦合的特性, 这要求发布者和订阅者之间不能进行密钥协商, 否则会影响系统的可伸缩性; 第二个需求是可以实现对加密密钥的更新. 已有方案比如Ion 等人[2]和Nabeel 等人[3]的方案可以实现第一个需求, 但几乎没有方案能满足第二个需求. 密钥更新发生时, 当前所有发布者发布的事件都是用新密钥加密的, 而存储在代理处的订阅均是用旧密钥加密的, 代理无法正确执行密文匹配, 因此在执行事件匹配之前如何快速对失效的订阅密文进行更新是未来一个值得关注的问题.

(4) 发布订阅系统中的匿名性保护直接构建TOR 上的发布订阅网络虽然能够实现匿名性, 但这种简单混搭的结果是系统路由性能显著降低. 概率转发和位置交换是一个好的开始, 但其仅仅是针对全局的外部攻击者模型提供了匿名性保护. 未来, 对发布订阅系统中匿名性威胁模型的系统分析是具有现实意义的研究方向;其次, 应结合发布订阅系统不同的应用场景, 建立威胁模型, 研究在发布订阅系统中实现匿名性的高效机制.

除了机密性和匿名性外, 发布订阅系统其它方面的安全需求还包括认证性(authentication)、完整性(integrity) 和访问控制等. 其中认证性即如果订阅者A收到声称来自发布者B的消息, 那么A可以验证B确实是消息的发布者. 完整性即保证事件和订阅没有被恶意的攻击者所篡改. 访问控制即发布者可以指定哪些订阅者可以接收到自己的事件, 只有满足条件的订阅者才能收到匹配的事件. 在实际系统中, 这些安全特性需要和机密性、匿名性一起考虑.

7 总结

发布订阅系统因其异步和去耦合的特性被广泛用于大规模的信息传输系统中, 本文从机密性和匿名性两个方面对发布订阅系统中隐私保护技术的研究进展进行了介绍. 首先对现有的机密性保护方案的两个研究方向进行了总结并介绍了这两个方向相关的文献, 接着介绍了匿名性保护相关的实现算法. 最后分析了现有研究存在的不足. 并展望了发布订阅系统隐私保护技术未来的发展方向.

猜你喜欢

发布者密文密钥
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
新加坡新法规引争议
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
Android密钥库简析
在微信朋友圈买到假货,该如何维权?
条件型非对称跨加密系统的代理重加密方案
网络大V转发违法广告须担责