数据脱敏的风险量化评估介绍
1、背景介绍
当前社会信息化高速发展,网络信息共享加速互通,数据呈现出规模大、流传快、类型多以及价值密度低的特点。人们可以很容易地对各类数据实现采集、发布、存储与分析,然而一旦带有敏感信息的数据被攻击者获取将会造成个人隐私的严重泄漏;所以在发布数据前,必须通过适当的隐私保护手段来隐藏敏感信息,从而达到能够发布和分析同时又保障隐私信息安全性的目的。
然而,实际中大部分数据脱敏方法(如假名化、字符屏蔽)仍存在隐私风险,经过这些脱敏处理后的数据经过发布后可能遭受一系列的攻击,包括重标识攻击、背景知识攻击、链接攻击以及隐私推理攻击。 为了抵抗以上一些攻击,K-匿名、等价匿名是较为常用的匿名处理方法,对其进行合理应用能够在数据分析时减少安全隐患风险问题发生。其中K-匿名算法具有实用性,属于新型算法的一种,为了抵抗常见的链接攻击,比较科学的数据发布脱敏都会采用K-匿名的手段对数据进行处理,但该方法对敏感属性值的分布未做任何具体限制,因此就会存在背景知识攻击以及同质攻击。
为了得到风险小且信息损失量小的发布数据集,需在发布脱敏数据集之前应对其进行评估,若评估后的脱敏数据集质量达到用户对数据价值要求同时攻击者很难窃取敏感信息,那么就可以发布。本文讨论的风险评估算法也是基于匿名化处理数据的风险评估,也适用于其他脱敏算法。
2、K匿名相关知识简介
根据发布数据集的内容不同,数据集存在的风险也不同;如何去量化的评估数据集存在的风险,就应该先对数据的敏感级别进行一个合理的划分。行业已经有相关的规范,如《信息安全技术个人信息去标识化效果分级评估规范》中对数据敏感级别定义了如下的划分规则:
- 个人信息标识度分级
图1 示例数据(注:包括身份证和电话号码等个人数据均为假数据,仅为示例目的)
结构化数据以表的形式表示,每一行表示一条记录(record),每一列表示一个属性(attribute)。每一个记录与一个特定用户/个体关联。这些属性可以分为四类:
标识符(explicit identifiers attribute):可以直接确定一个个体。如:身份证号,姓名等单个属性值。
准标识符(Quasi-identifler attribute,QID):可以和外部表连接来识别个体的最小属性集。如Fig1中的 { 年龄,性别,邮编 }组合。
敏感属性(Sensitive attribute):用户不希望被人知道的数据。如:电话号码、所患疾病等。可以认为数据表中有价值的数据除了标识符和准标识符之外都是敏感数据。
非敏感属性(Non-sensitive attribute):可以直接公开,无任何危险的数据,如序号。
等价组(等价类):所有准标识符对应的值相同的数据划分到一个组。
基于以上的概念定义,基于K-匿名的脱敏处理就是要保证准标识符集的非唯一性,即等价组中最小的个数必须大于等于K。
- 安全隐患样例
图2链接攻击
图2右图是一张某医院收集的病人信息,其中已经抹去了姓名、身份证号等信息)。但是,直接发布这样简单处理的数据并不安全。因为数据接收者(recipient)可能知道其他个人信息,比如上面表一是一张投票信息表。那么recipient就可以通过比对Birthdate、Sex 和 Zipcode 的值得知 Andre 患有Flu。这种通过某些属性与外部表连接的攻击称为链接攻击。
K-匿名样例
图3 3-匿名化
K-匿名思想十分朴素。它首先做了如下假设:
准标识符假设:数据持有者可以识别出其所持有数据表中可能出现在外部数据中的属性,因此其可以准确的识别出准标识符集合。
K-匿名要求同一个准标识符至少要有k条记录。因此观察者无法通过准标识符进行记录连接。如图3(*号遮蔽只是一种方法)。
等价组
把拥有相同准标识符的所有记录称为一个等价类(equivalence class)。K-匿名即是要求同一等价类中的记录不少于K条。把等价类的大小组成的集合称为频率集(frequency fet)。如图4就是一个按K=3处理后的数据集,{1,2,3},{4,5,6},{7,8,9}分别为一个等价组。
等价组是一个多重集(multiset),即其中可以有相同的元素。频率集应该也是多重集。
K-匿名使得观察者无法以高于1/K的置信度通过准标识符来识别用户。
三、隐私的定义与度量
隐私,就是个人、机构等实体不愿意被外部世界知晓的信息。在具体应用中,隐私即为数据所有者不愿意被披露的敏感信息,包括敏感数据以及数据所表征的特性。我们常说的个人信息安全,就是保护用户的隐私安全。
个人敏感数据通常也称隐私数据,这些数据包括用户姓名、电话和身份证号码及银行卡号或其他一些私人信息。这些信息只要稍微被泄露出去,往往会紧密地关联到人们的日常生活,或多或少会造成一些损失,然而要是用户数据信息影响到用户的信用问题,则又会波及用户在财务或者法律方面的一些问题,造成严重损失。随着现代化大数据的应用越来越广泛,应用到该技术的相关工作单位也同样给予了大数据足够的重视度,为的就是能够实现双方利益的共赢,互惠互利。
数据安全与隐私相关技术受到的重视程度越来越高,因此聚焦“敏感数据”,创新实践“零信任”安全理念,围绕数据产生、传输、存储、使用、共享、销毁外加数据管理的全生命周期,并结合数据安全相关的法律法规《国家安全法》《网络安全法》以及即将出台的《数据安全法》《个人信息保护法》,构建由内到外主动式纵深防御体系尤为重要;其中每个周期中核心技术能力诉求如图5所示。
图5 数据生命周期
一般的,从隐私所有者的角度而言,隐私可以分为两类:
个体隐私(Individual Privacy)
任何可以确认特定个人或可以确认个人相关,但个人不愿意被暴露的信息,都叫做个人隐私,如个人身份证号码、就诊号。
共同隐私(Corporate Privacy)
共同隐私不仅包含个人的隐私,还包含所有个体共同表现出,但不愿意被暴露的信息。如公司员工的平均薪资、薪资分布等信息,再如两个人之间的关系信息。
隐私的度量与量化表示
数据隐私的保护效果是通过攻击者披露隐私的多寡来侧面反映的。现有的隐私度量都可以统一用“披露风险”(Disclosure Risk)来描述。
披露分险表示攻击者根据所发布的数据和其他背景知识(Background Knowledge),可能披露隐私的概率。通常,关于隐私数据的背景知识越多,披露风险就越大。
若s表示敏感数据,事件Sk
表示“攻击者在背景知识K
的帮助下披露敏感数据s
”,则披露风险r(s,K)
表示为
r(s,K)=Pr(Sk)
对数据集而言,若数据集所有者最终发布数据集D的所有敏感数据的披露风险都小于阈值a,aϵ[0,1],则称该数据集的披露风险为a
。
---------------------------------------------------------------------------------------------------------------------------------
感谢你的打赏
---------------------------------------------------------------------------------------------------------------------------------
相关文章:

数据脱敏的风险量化评估介绍
1、背景介绍 当前社会信息化高速发展,网络信息共享加速互通,数据呈现出规模大、流传快、类型多以及价值密度低的特点。人们可以很容易地对各类数据实现采集、发布、存储与分析,然而一旦带有敏感信息的数据被攻击者获取将会造成个人隐私的严重…...
SpringCloudGateway网关实战(三)
SpringCloudGateway网关实战(三) 上一章节我们讲了gateway的内置过滤器Filter,本章节我们来讲讲全局过滤器。 自带全局过滤器 在实现自定义全局过滤器前, spring-cloud-starter-gateway依赖本身就自带一些全局过滤器࿰…...
08在MyBatis-Plus中配置多数据源
配置多数据源 模拟多库场景 适用于多种场景: 多库(操作的表分布在不同数据库当中),读写分离(有的数据库负责查询的功能,有的数据库负责增删该的功能),一主多从,混合模式等 第一步: 模拟多库,在mybatis_plus数据库中创建user表,在mybatis_plus_1数据库中创建product表 --创建…...

Centos8安装docker并配置Kali Linux图形化界面
鉴于目前网上没有完整的好用的docker安装kali桌面连接的教程,所以我想做一个。 准备工作 麻了,这服务器供应商提供的镜像是真的纯净,纯净到啥都没有。 问题一:Centos8源有问题 Error: Failed to download metadata for repo ap…...

游戏开发初等数学基础
凑数图() 立体图形面积体积 1. 立方体(Cube): 表面积公式: 6 a 2 6a^2 6a2 (其中 a a a 是边长)。体积公式: a 3 a^3 a3 (其中 a a a 是边长)。 2. 球体(Sphere): 表面积公…...
svg图片代码data:image/svg+xml转png图片方法
把代码保存为html格式的文件中,用浏览器访问,即可右键保存 从AI软件或其它网站得到svg图片代码后,把他复制到下面源码上 注意:src""图片地址中,一些参数的含义 d‘这里是图片代码数据’ viewBox是图片显示区域,宽,高等 fill%23000000’这里表示颜色 ,后面6位0表示黑色…...
解决问题:Replace `‘vue‘;⏎` with `“vue“;`
使用vscode写vue文件的问题: Replace vue;⏎ with "vue"; error Replace v-model:value"xxx"placeholder"inputsearch prettier/prettier 7:38 error Insert ⏎ potentially fixable with the --fix option 原因:格式问题&a…...

ThinkPHP 5.0通过composer升级到5.1,超级简单
事情是这样的,我实现一个验证码登录的功能,但是这个验证码的包提示tp5的版本可以是5.1.1、5.1.2、5.1.3。但我使用的是5.0,既然这样,那就升个级呗,百度了一下,结果发现大部分都是讲先备份application和修改…...

计算机竞赛 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉
文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 …...

一文了解大模型工作原理——以ChatGPT为例
文章目录 写在前面1.Tansformer架构模型2.ChatGPT原理3.提示学习与大模型能力的涌现3.1 提示学习3.2 上下文学习3.3 思维链 4.行业参考建议4.1 拥抱变化4.2 定位清晰4.3 合规可控4.4 经验沉淀 写在前面 2022年11月30日,ChatGPT模型问世后,立刻在全球范围…...
CPP-Templates-2nd--第十九章 萃取的实现 19.7---
目录 19.7 其它的萃取技术 19.7.1 If-Then-Else 19.7.2 探测不抛出异常的操作 19.7.3 萃取的便捷性(Traits Convenience) 别名模板和萃取(Alias Templates And Traits) 变量模板和萃取(Variable Templates and Traits&…...

python 采用selenium+cookies 获取登录后的网页
百度网页由于需要登陆手机短信验证。比较麻烦 这里我采用先人工登录百度账号,然后将百度账号的相关cookies保存下来 然后采用selenium动态登录网页 整体代码如下 from selenium import webdriverimport timeoptions webdriver.ChromeOptions()options.add_argu…...

【测试开发】答疑篇 · 什么是软件测试
【测试开发】答疑篇 文章目录 【测试开发】答疑篇1. 生活中的测试2. 什么是软件测试3. 为什么要有测试/没有测试行不行4. 软件测试和软件开发的区别5. 软件测试和软件调试之间的区别6. 软件测试的岗位7. 优秀测试人员具备的素质 【测试开发】答疑篇 软件不一定是桌面应用&#…...

深入解析顺序表:揭开数据结构的奥秘,掌握顺序表的精髓
💓 博客主页:江池俊的博客⏩ 收录专栏:数据结构探索👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路💻代码仓库:江池俊的代码仓库🔥编译环境:Visual Studio 2022Ἰ…...

数据风险量化评估方案
一、企业面临数据安全的痛点 1、企业缺少清晰的数据安全意识 各部门重视度不够,缺少主动数据安全管控意识。数据安全管控架构不清晰,职责划分不明确。对数据安全管控认识不全面、不深刻。工作人员对于所持有的数据缺乏概念,导致数据的价值无…...

EasyAVFilter代码示例之将视频点播文件转码成HLS(m3u8+ts)视频点播格式
以下是一套完整的视频点播功能开发源码,就简简单单几行代码,就可以完成原来ffmpeg很复杂的视频点播转码调用流程,而且还可以集成在自己的应用程序中调用,例如java、php、cgo、c、nodejs,不需要再单独一个ffmpeg的进程来…...
day-50 代码随想录算法训练营(19)动态规划 part 11
123.买卖股票的最佳时机||| 分析:只能买卖两次,就是说有五个状态: 没有买过第一次买入第一次卖出第二次买入第二次卖出 思路:二维数组,记录五个状态 1.dp存储:dp[i][1] 第一次买入 dp[i][2] 第一次卖…...

自定义权限指令与防止连点指令
1.权限指令 // 注册一个全局自定义权限指令 v-permission Vue.directive(permission, {inserted: function(el, binding, vnode) {const {value} binding; // 指令传的值// user:edit:phone,sysData:sampleconst permissions [user:edit:address, sysData:entrust, sysData:…...

UE5、CesiumForUnreal实现瓦片坐标信息图层效果
文章目录 1.实现目标2.实现过程2.1 原理简介2.2 cesium-native改造2.3 CesiumForUnreal改造2.4 运行测试3.参考资料1.实现目标 参考CesiumJs的TileCoordinatesImageryProvider,在CesiumForUnreal中也实现瓦片坐标信息图层的效果,便于后面在调试地形和影像瓦片的加载调度等过…...
PostgreSQL执行计划
1. EXPLAIN命令 1)PostgreSQL中EXPLAIN命令的语法格式: postgres# \h explain Command: EXPLAIN Description: show the execution plan of a statement Syntax: EXPLAIN [ ( option [, ...] ) ] statement EXPLAIN [ ANALYZE ] [ VERBOSE ] statementwhere option can be…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...