《位置大数据隐私管理》—— 2.3 查询同质性攻击

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 简单来讲,查询同质性攻击即攻击者结合匿名集中发布查询的语义窥探用户隐私。在极端情况下,如果一个匿名集合中的所有服务请求都表示了同样的内容,如同一匿名集中用户均提出了一个“寻找肿瘤医院”的查询,则攻击者无须获知用户的具体位置,也无须确定哪个用户提出了哪个查询,也可推测攻击目标的健康状况[53]。

本节书摘来自华章出版社《位置大数据隐私管理》一 书中的第2章,第2.3节,作者潘晓、霍 峥、孟小峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 查询同质性攻击

2.3.1 攻击模型

简单来讲,查询同质性攻击即攻击者结合匿名集中发布查询的语义窥探用户隐私。在极端情况下,如果一个匿名集合中的所有服务请求都表示了同样的内容,如同一匿名集中用户均提出了一个“寻找肿瘤医院”的查询,则攻击者无须获知用户的具体位置,也无须确定哪个用户提出了哪个查询,也可推测攻击目标的健康状况[53]。如图2-14所示,用户A、B和C组成匿名集。虽然攻击者无法确定用户的确切位置以及每一个查询的提出者,但是由于3个查询内容均与医院有关,所以用户的敏感信息泄露。

c33856d7d086b0f990df94e4f3dd88e0827dfbed

在给出具体的攻击模型定义前,首先给出几个基本定义。
敏感关系R:设CaSet是查询类别集合,SSet是敏感度集合。令敏感关系R={(a, b)| a∈CaSet, b∈SSet且 (a1, b1), (a2, b2)∈R,若a1=a2,则b1=b2}。
从定义2-8可以看出,敏感关系R是一个从查询类别集合到敏感度集合的多对一的二元关系。例如,存在敏感关系{(紧急急救呼叫,more secret),(敏感位置路径导航,top secret),(位置敏感账单,secret),(购物导引,less secret),(旅游工具,non-secret),(产品追踪,non-secret)},其中,查询类别集合={紧急急救呼叫,敏感位置路径导航,位置敏感账单,购物导引,旅游工具,产品追踪},敏感度集合={top secret, more secret, secret, less secret, non-secret}。
很明显,根据多对一的二元敏感关系R的定义,空间中的任意两个查询具有以下两个性质。
性质1:若两个查询的查询类别相同,则查询敏感度一定相同。
性质2:若两个查询敏感度不同,则查询的类别一定不同。
当为查询标注类别后,即可通过敏感关系R获得该查询的敏感度。需要说明的是,敏感度值可以是类别属性值,如{top secret, more secret, secret, less secret, non-secret},也可以是标准化的[0, 1]之间的数值,数值越大说明敏感度越高。类别属性值和数值之间可以相互转化。后者转化为前者较容易,这里对类别属性值向数值类型转化进行定义。
查询敏感度值数值化:设SSet={S1,S2,…,Si,…,Sn}是由类别属性值组成的敏感度集合。将SSet中的值按照敏感度强弱由大到小排序,即S1>S2>…>Si>…>Sn。通过公式(2-3)将SSet中的类别属性值转化为[0, 1]之间的数值:

cee80ce7390e23670c50bcd716649685fe27adaf

如SSet={top secret, more secret, secret, less secret, non-secret},则根据上面的公式将SSet数值化,数值化后的值见表2-1。方便起见,下文中均采用数值表示查询敏感度值。
6c2bafb87aa57b60be48573a287485c037356ccc

匿名集中用户的敏感信息泄露反映为匿名集中的查询类别(如图2-14所示)或敏感度相同。图2-15展示了一个因为查询敏感度相同造成的隐私泄露的例子。{D, E, F}组成匿名集。在该匿名集中,虽然查询内容均不同,但从用户的角度来看,这3类查询均属于敏感查询,用户不愿攻击者将自己与任何一类查询建立联系。根据性质1,查询类别相同是敏感度相同的特例,所以用敏感度定义感知查询语义的敏感同质性攻击。

21aa3c659011f7e4995f79a4c798b6241749acf0

与敏感位置同质性攻击类似,查询敏感同质性攻击为每一类查询设定一个敏感度值。查询敏感同质性攻击定义如下。
查询敏感同质性攻击:设CS是一个匿名集,对于任意用户u∈CS,根据用户u的查询敏感度需求u.ts可获得在用户u看来,CS中包含的敏感查询个数,记为Count_SQu。若在CS中存在用户u,其集合敏感度需求u.p< ,其中|CS|表示CS中包含的用户个数,称此攻击为查询敏感同质性攻击。
如图2-16所示,不考虑用户集合{H, I, G}中用户提出的查询内容,仅看其提出查询的敏感度。简单起见,设所有用户的查询敏感度需求ts均为0.25,则在该匿名集中所有查询对3个用户来讲均为敏感查询。再设所有用户的集合敏感度需求p均为0.4,3个用户的 =1。所以{H, I, G}中用户的集合敏感度需求均未得到满足,则该用户集合存在查询敏感同质性攻击的问题。

055e7bbf0910461bda1ed2f7bccd8afbf40cac58

2.3.2 查询p-敏感模型

在给出查询p-敏感模型的定义前,首先定义用户个性化隐私需求和查询请求在匿名服务器中的存在形式。
个性化隐私需求:系统中每一个用户均可设置个性化的隐私需求,形式化地表示为一个三元组:profile=(k, ts, p)。其中

  • 匿名度需求k,用户可接受的最小匿名度,即用户要求在匿名集
    中至少包含的用户个数。
  • 查询敏感度需求ts,用户可容忍的查询敏感度最高值。若某查询的敏感度大于ts,则此查询在该用户看来属于敏感查询;反之,该查询属于非敏感查询。
  • 集合敏感度需求p,表示用户可接受敏感查询在匿名集合中所占比例的最大值。

例如,某用户u设置隐私需求profile=(3, 0.5, 0.4),表示用户要求在匿名集中至少包含3个不同用户;匿名集中包含的查询,若查询敏感度大于0.5,则用户u视该查询为敏感查询;在u看来,匿名集中包含的敏感查询在所有查询中所占的比例不能超过0.4。注意,在用户设置隐私需求时,若用户u自身提出的查询属于敏感查询,则匿名度需求k和集合敏感度需求p之间应满足 。
待匿名查询:匿名服务器中待匿名查询被形式化地表示为(id, loc, profile, q, qs),其中,id表示查询标识符;loc=(x, y)即该查询所在空间位置;profile表示提出该查询用户的隐私需求;q表示查询内容;qs是将查询内容q所属类别与敏感关系R连接后获得的敏感度。
设匿名服务器中存在一条待匿名查询(A001,(2, 3),(3, 0.5, 0.4),“距离我最近的肿瘤医院”,0.75),表示含义如下:id为A001的用户在位置(2, 3)处提出了寻找“最近肿瘤医院”的查询;用户匿名度需求为3,查询敏感度需求为0.5,集合敏感度需求为0.4;“查询肿瘤医院”对应的查询敏感度qs=0.75。由于该查询敏感度需求(0.75)大于用户查询敏感度需求(0.5),所以对于用户A001来讲,自己提出的是一个敏感查询。简单起见,本书以u.k表示用户u的匿名度需求,u.ts 表示查询敏感度需求,u.p表示集合敏感度需求。
为防止敏感同质性攻击,文献[87]提出了个性化(k, p)-敏感匿名模型。
个性化(k, p)-敏感匿名模型:设CS是移动用户组成的集合,若CS满足以下条件:

  • 位置k-匿名模型,即 。
  • _9

则称CS满足个性化(k, p)-敏感匿名模型。
图2-17显示了用户u1、u2、u3组成的匿名集(见图2-17a)以及三者隐私需求(见图2-17b)。根据定义2-13,由u1、u2、u3组成的匿名集合满足个性化(k, p)-敏感匿名模型。

6e2284fcadfc563bde7b5fe731edb7d0dea104f2
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
7天前
|
SQL 分布式计算 数据挖掘
阿里云 MaxCompute MaxQA 开启公测,解锁近实时高效查询体验
阿里云云原生大数据计算服务 MaxCompute 推出 MaxQA(原 MCQA2.0)查询加速功能,在独享的查询加速资源池的基础上,对管控链路、查询优化器、执行引擎、存储引擎以及缓存机制等多个环节进行全面优化,显著减少了查询响应时间,适用于 BI 场景、交互式分析以及近实时数仓等对延迟要求高且稳定的场景。现正式开启公测,欢迎广大开发者及企业用户参与,解锁高效查询体验!
|
2月前
|
存储 分布式计算 安全
MaxCompute Bloomfilter index 在蚂蚁安全溯源场景大规模点查询的最佳实践
MaxCompute 在11月最新版本中全新上线了 Bloomfilter index 能力,针对大规模数据点查场景,支持更细粒度的数据裁剪,减少查询过程中不必要的数据扫描,从而提高整体的查询效率和性能。
|
3月前
|
负载均衡 大数据
大数据散列分区查询频率
大数据散列分区查询频率
34 5
|
3月前
|
存储 大数据 数据管理
大数据分区提高查询性能
大数据分区提高查询性能
71 2
|
3月前
|
存储 负载均衡 大数据
大数据水平分区提高查询性能
【11月更文挑战第2天】
87 4
|
4月前
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
84 4
|
6月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
65 2
|
7月前
|
SQL 分布式计算 数据处理
MaxCompute操作报错合集之使用Spark查询时函数找不到的原因是什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
7月前
|
分布式计算 资源调度 DataWorks
MaxCompute操作报错合集之出现“查询运行日志失败”的报错,一般是什么导致的
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
106 3
|
7月前
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之使用sql查询一个表的分区数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。