当前位置: 首页 > news >正文

分析一下多方联合计算中的数据泄露场景

假设某一天,某地社保局接到了教育局的求助, 希望提供社保表,和教育局自身的毕业生信息表 进行联合分析, 以得到2024年各学校的毕业生实力。

这时候社保局犯了难,两会会议里刚提过隐私保护相关的议题:

隐私频频泄露,数据亟需监管与治理
数据监管与治理尤为重要。当下数据存在被滥用的情况,一些互联网平台旗下子公司之间,数据可以无障碍共享,这实际上侵犯了个人隐私,也容易造成风险的扩散。

——金融科技观察者、私募基金管理人毕研广

那么,在教育局和社保局的这次分析合作中,社保局怎么确认,自己的哪些情况,可能存在泄露, 哪些情况不算泄露呢?

这时,我们可以引入联邦分析字段分类的概念, 先对表字段分个类,再根据联合计算的结果,来判断字段是否存在确认是否泄露了数据。

联邦分析数据字段分类

对于联邦sql分析而言, 每个字段都可以按照业务含义,进行分类。
以社保局和教育局为例,我们可以先思考下会用到哪些东西:

  • 当双方进行联合计算时, 一定存在可以进行关联的身份证号码, 这样教育局就可以把社保局中属于毕业生的记录给找出来,而不会牵涉到其他无关者的数据。
  • 既然要计算, 一定会用到敏感数据, 例如教育局肯定想要社保表里的社保缴纳金额,或者银行表的每月还款金额, 进行加减乘除得到分数。
  • 也会有一些用来做分组或者条件判断的名词,例如学校名称、 社保缴纳类型…加语句可以根据社保类型=城镇职工,来过滤掉非城镇缴纳社保的学生。

那么业务场景可以概括为: 使用身份证做连接—>使用社保类型做分组或者条件过滤->使用敏感数据做统计和计算

我们结合数据建模的概念,可以把字段分成唯一标识、度量、维度三种类型。

唯一标识

用于标识某个事物实体身份的字段。
例如身份证、工号、公司代码等。

度量

指会参与统计、计算的度量数据,且都是敏感的。
例如薪水、纳税、用电量、成交量

维度

指一般不参与数值聚合和计算的分类数据
例如等级(13-20)、公司类型(上市、不上市)、城市名称等。

其他字段

名字、地址等个人关联信息,既不会用于数据关联, 也不会参加数据计算,也不能进行整体分类,因此无必要的情况下, 不建议开放这些字段给计算参与方。

可能泄露的场景

1.唯一标识全集泄露

例如社保表的id全集如果泄露了, 那么教育局就可以知道总共有哪些人交过社保, 从而推出哪些毕业生没交过社保, 也许那个学生就被母校催着就业了。 因此是否交过社保, 理应也是学生们的个人隐私
实际原因在于社保表的id全集泄露,导致教育局可以分析谁在表中,谁不在表中。

2.度量数据具体分布泄露

具体的度量数据, 是一种数值波动比较大的数字资产。
例如单个社保金额10000, 可能没什么太大参考意义

但如果是
10000、11000、10101、8000… 这一大批数字, 则就会泄露社保数据的实际分布情况。
因此度量数据在表中的全集是不应当泄露的。
正常要让这批数据进行求和、求平均, 或者和多方表进行四则运算, 得到非原值的集合。

3.实体和度量数据一起泄露

前面提过,如果只是单独抽出1个社保金额10000, 没什么太大影响。
但如果能被外界看到 “身份证xxx, 社保金额10000” 这样的记录,那么就泄露了xxx这个人的实际社保金额。
因此如果度量数据泄露了很少的值, 但是每个值都有对应的唯一标识,那么这就属于隐私数据泄露。

4.标识和维度一起泄露

维度是已知的数据, 例如社保类型,只有农村居民、 城镇职工、城镇居民三类, 泄露了全集根本不影响什么。
但是如果身份证和社保类型一起出现,那么就泄露了每个人的实际缴纳类型。
换个更实际点的例子
疾病名称,总共就那么多疾病, 但如果能通过和医院的联合计算, 得到每个人当前所患疾病,这就会引发很多问题。
维度应当以不和id绑定的情况下出现, 作为分组的键值,或者作为条件的过滤


因此对参与联合分析计算的数据提供者来说,应当重点关注发起的任务是否会暴露这些信息, 以及计算系统能否通过规则和算法来检测、规避泄露风险。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • springcloud 面试经常被问问题
  • 在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?
  • GESP C++一级真题
  • 【双出版加持!录用率高!见刊、检索更稳定!】第六届结构抗震与土木工程研究国际学术会议 (ICSSCER 2024,8月16-18)
  • 深度解析:如何利用Python高效挖掘SQLite潜力
  • ubuntu下运行程序时提示缺库问题的有效解决方法
  • C#面:C# 如何使⽤ ActionFilterAttribute?
  • 论文研读|AI生成图像检测发展历程及研究现状
  • 【数据结构与算法】插入排序
  • torch.where()
  • sqlite 数据库 介绍
  • 网络安全设备——防火墙
  • Matlab自学笔记三十二:结构数组的连接、嵌套、引用变量值和访问字段值
  • 【Linux】线程——线程的概念、线程的特点、线程的优点和缺点、线程和进程、线程函数的使用
  • LabVIEW干涉仪测向系统
  • angular2开源库收集
  • Date型的使用
  • ESLint简单操作
  • Java 网络编程(2):UDP 的使用
  • Java基本数据类型之Number
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • node-glob通配符
  • Python学习笔记 字符串拼接
  • Tornado学习笔记(1)
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 批量截取pdf文件
  • 前端自动化解决方案
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 思否第一天
  • 温故知新之javascript面向对象
  • 我这样减少了26.5M Java内存!
  • C# - 为值类型重定义相等性
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​字​节​一​面​
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (1)bark-ml
  • (1)STL算法之遍历容器
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Charles)如何抓取手机http的报文
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (js)循环条件满足时终止循环
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (SERIES12)DM性能优化
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)h264中avc和flv数据的解析
  • (转载)OpenStack Hacker养成指南
  • ***测试-HTTP方法