深度分析 | 万字详解数据安全关键技术之数据脱敏(上篇)
数据脱敏是数据安全领域落地场景较为成熟的技术手段,在数据深层次、大范围的共享开放的今天,数据脱敏在不影响数据使用的前提下保护敏感隐私数据,已成为数据安全建设重要内容。本文通过对数据脱敏技术及应用场景等进行梳理,为各行业用户更好的实施数据脱敏技术提供指南,主要内容包括以下四个方面:
▼数据脱敏法规政策合规依据
▼数据脱敏技术定义及实施过程解析
▼数据脱敏典型应用场景
▼数据脱敏管理体系的建立
数据脱敏法规政策合规依据
《网络安全法》第四十二条:网络运营者不得泄露、篡改、毁损其收集的个人信息;未经被收集者同意,不得向他人提供个人信息。但是,经过处理无法识别特定个人且不能复原的除外。
《数据安全法》第二十七条:开展数据处理活动应当依照法律、法规的规定,建立健全全流程数据安全管理制度,采取相应的技术措施和其他必要措施,保障数据安全。
《个人信息保护法》第五十一条:个人信息处理者应当根据个人信息处理目的、处理方式、个人信息的种类以及对个人权益的影响、可能存在的安全风险等,采取相应的加密、去标识化等安全技术措施。
《信息安全技术 网络安全等级保护基本要求》明确规定: 二级以上保护则需要对敏感数据进行脱敏处理。H.4.3安全计算环境 “大数据平台应提供静态脱敏和去标识化的工具或服务组件技术。” H.4.5安全运维管理 “应在数据分类分级的基础上,划分重要数字资产范围,明确重要数据进行自动脱敏或去标识使用场景和业务处理流程。”
《网络数据安全管理条例(征求意见稿)》第十二条:数据处理者向第三方提供个人信息,或者共享、交易、委托处理重要数据的,应当遵守:(一)向个人告知提供个人信息的目的、类型、方式、范围、存储期限、存储地点,并取得个人单独同意,符合法律、行政法规规定的不需要取得个人同意的情形或者经过匿名化处理的除外。
典型行业:金融行业合规要求
《中国银行业“十二五”信息科技发展规则监管指导意见》:加强数据、文档的安全管理,逐步建立信息资产分类分级保护机制。完善敏感信息存储和传输等高风险环节的控制措施,对数据、文档的访问应建立严格的审批机制。对用于测试的生产数据要进行脱敏处理,严格防止敏感数据泄露。
《金融行业网络安全等级保护实施指引》:应将开发环境、测试环境、实际运行环境相互分离,敏感数据经过脱敏后才可在开发或测试中使用。
《金融数据 安全数据生命周期安全规范》:开发测试等过程的数据,应事先进行脱敏处理,防止数据处理过程中的数据泄露,国家及行 业主管部门另有规定的除外。
《商业银行信息科技风险现场检查指南》: 开发过程中是否使用了生产数据,使用的生产数据是否得到高级管理层的批准并经过脱敏或相关限制。”“测试用例是否有生产数据,当使用生产数据测试时是否得到高级管理层的审批并采取相关限制及进行脱敏处理。
典型行业:电信和互联网行业合规要求
《电信和互联网行业数据安全 标准体系建设指南》:数据处理 数据处理标准用于规范敏感数据、个人信息的保护机制 及相关技术要求,明确敏感数据保护的场景、规则、技术方 法,主要包括匿名化/去标识化、数据脱敏、异常行为识别等标准。
《电信和互联网行业提升网络数据安全保护能力专项行动方案》:指导电信和重点互联网企业加强内部网络数据安全组织保障,推动设立或明确网络数据安全管理责任部门和专职人员,负责承担企业内部网络数据安全管理工作,督促协调企业内部各相关主体和环节严格落实操作权限管理、日志记录和安全审计、数据加密、数据脱敏、访问控制、数据容灾备份等数据安全保护措施,组织开展数据安全岗位人员法律法规、知识技能等培训。
《电信网和互联网数据脱敏技术要求与测试方法》:提出了数据脱敏技术应用架构,并且总结了在实际应用数据脱敏技术过程中,主要涉及的三个要素:脱敏算法、脱敏规则、脱敏策略。此外标准还提出了数据脱敏后的效果评估策略。
《电信网和互联网数据安全评估规范》:查验企业数据脱敏处理管理规范和制度文件,是否明确数据脱敏处理使用应用场景,明确数据脱敏规则、脱敏方法、数据脱敏处理流程、涉及部门及人员的职责分工等。查验企业数据脱敏处理管理规范和制度,企业业务和业务支撑系统在数据权限和资源的申请阶段,是否由该数据的数据安全管理负责人员评估使用真实数据的必要性,以及确定该场景下适用的数据脱敏规则及方法。查验数据脱敏处理管理规范和制度,是否建立数据脱敏处理技术应用安全评估机制,对脱敏后的数据可恢复性进行安全评估,是否对于可恢复形成原始数据的脱敏方法(含算法)进行安全加强。演示企业业务测试系统数据库,企业是否使用未脱敏的数据用于业务系统的开发测试。查验演示企业数据脱敏工具,是否能对数据脱敏处理过程相应的操作进行记录,提供数据脱敏处理安全审计能力。
数据脱敏技术定义及实施过程解析
数据脱敏的定义
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
数据脱敏发展历程:
▼人工脱敏阶段:多为SQL脚本方式,在ETL处理过程中进行脱敏,该方式工作量大、数据处理效率低,同时存在数据质量差、无法保证数据结构的完整性、数据间的关联性。
▼平台脱敏阶段: 融合了敏感数据自动发现、系统流程化脱敏、支持丰富数据源、脱敏算法库充足、敏感类型丰富等功能,从而减轻人工成本的同时提升效率,保证数据脱敏的基本诉求。
▼自动脱敏阶段:通过应用机器学习等技术,结合各类数据分类分级规则及已实际使用的数据脱敏策略及规则,实现自动化实时敏感数据发现、自动化脱敏规则匹配等智能化数据脱敏的结果。同时,具备分布式等多种部署支持,智能性能分析,自动化调优等能力。
数据脱敏关键技术能力:
1、高仿真能力:
▼保持数据原始业务特征
▼保持数据之间的关联性
▼保持数据之间逻辑一致性
▼业务依赖数据对象同步
2、丰富数据源支持
▼关系型数据库支持
▼大数据平台支持
▼特殊文件类型支持
▼消息列队支持
3、内置丰富脱敏规则
▼支持多种数据脱敏算法
▼支持组合脱敏、自定义分段规则
▼具备细粒度数据处理能力
4、高处理效率
▼单台设备性能最大化
▼具备增量脱敏能力
▼支持分布式部署
数据脱敏分类:
类型 | 常用场景 | 具体例子 |
静态数据脱敏 | 静态数据脱敏通常用于非实时场景。 | 将生产环境中的数据脱敏用于测试环境。 |
动态数据脱敏 | 动态数据脱敏通常用于生产环境等实时场景,在应用或平台用户访问敏感数据的同时进行脱敏,用于解决根据不同情况对统一敏感数据读取时需要进行不同级别、类型脱敏的场景。 | 适用于对生产数据共享或时效性很高的数据访问场景等,实现对生产数据库中的敏感数据进行透明、实时脱敏。 |
如上图所示:动态脱敏会对数据进行多次脱敏,更多应用于直接连接生产数据的场景,在用户访问生产环境敏感数据时,通过匹配用户IP或MAC地址等脱敏条件,根据用户权限采用改写查询SQL语句等方式返回脱敏后的数据。例如运维人员在运维工作中直连生产数据库,业务人员需要通过生产环境查询客户信息等
脱敏算法推荐形态
算法 | 描述 | 适用数据类型 | 推荐脱敏形态 |
重排 | 跨行随机互换原始敏感数据,打破原始敏感数据与本行其他数据关联关系。 | 通用 | 动态脱敏、静态脱敏 |
关系映射 | 原始敏感数据间存在业务关联关系,需要在数据脱敏后仍旧保持关系。因此在脱敏处理中,利用算法表达式对脱敏后的数据进行函数映射,使其脱敏后仍旧保持业务关联关系。 | 通用 | 动态脱敏、静态脱敏 |
偏移取整 | 按照一定粒度进行偏移取整。 | 日期、时间、数字 | 动态脱敏、静态脱敏 |
散列 | 对原始数据通过散列算法计算,使用计算后的散列来代替原始数据。 | 通用 | 动态脱敏、静态脱敏 |
加密 | 通过加密密钥和算法对原始数据进行加密,从而使敏感数据变成不可读的密文。 | 通用 | 静态脱敏 |
格式保留算法(FPE) | 一种特殊的加密脱敏算法,对敏感数据进行加密脱敏,密文与原始数据保持格式一致。 | 通用 | 静态脱敏 |
常量替换 | 使用常量伪装数据对原始数据进行替换(伪装数据生成与原始数据值无关)。 | 通用 | 动态脱敏、静态脱敏 |
随机替换 | 保持数据格式,按照特定原始数据的编码规则重新生成一份新的数据。 | 通用 | 动态脱敏、静态脱敏 |
截断 | 截断内容 | 通用 | 动态脱敏、静态脱敏 |
标签化 | 按照预定类别进行分类,将使用类别标签替换原始敏感数据。 | 通用 | 动态脱敏、静态脱敏 |
泛化 | 用更一般的值取代原始数据,降低敏感数据精确度,达到无法识别个体的目的。 | 通用 | 动态脱敏、静态脱敏 |
匿名 | 通过对数据内容的处理,保证在数据表发布时,数据中存在一定量的准标识符上不可区分的记录。 | 通用 | 静态脱敏 |
差分隐私 | 在原数据中加入噪音信息,使得满足差分隐私的数据集能够抵抗任何对隐私数据的分析。 | 数据集 | 数据脱敏 |
浮动 | 通过浮动脱敏算法,上浮、下降5%。 | 数据集 | 静态脱敏 |
归零 | 通过归零算法对原数据381.38进行脱敏。 | 数据集 | 静态脱敏 |
均化 | 通过均化算法进行脱敏。 | 数据集 | 静态脱敏 |
分档 | 将数据按照规模分为高、中、低三档,分别进行脱敏。 | 数据集 | 静态脱敏 |
掩码 | 对原始数据的部分内容用通用字符进行统一替换,从而使敏感数据仅保持部分内容公开。 | 字符串 | 动态脱敏、静态脱敏 |
数据脱敏常用算法与实例
算法名称 | 算法说明 | 示例 | 使用场景(仅做参考) |
固定映射 | 通过设置映射种子,在映射种子不变的情况下,相同原数据脱敏后结果相同,并保留原始业务特征 | 映射种子:111 原数据:张三 一次脱敏结果:李四 二次脱敏结果:李四 | 中文姓名、身份证、电话、银行卡、电子邮箱、地址、IP地址 日期、通用字符串、键、货币金额 医疗机构登记号、医师资格证书、医师执业证书 营业执照、社会统一信用代码、组织机构代码、税务登记证、开户许可证 护照、军官证、中国护照、港澳通行证、永久居住证、台湾同胞大陆通行证 证券名称、证券代码、基金名称、基金代码 |
随机映射 | 对数值、字符或字符串进行随机,并保留原业务特征 | 原数据:19841222 脱敏结果:19900211 | 中文姓名、身份证、电话、银行卡、电子邮箱、地址、邮政编码、IP地址 CCV码 货币金额、通用字符串、字符串 医疗机构登记号、医师资格证书、医师执业证书 营业执照、社会统一信用代码、税务登记证、开户许可证、组织机构代码、组织机构名称 护照、军官证、中国护照、港澳通行证、永久居住证、台湾同胞大陆通行证 证券名称、证券代码、基金名称、基金代码 |
遮盖 | 通过设置遮盖符,对原数据全部或部分进行遮盖处理 | 遮盖符:* 原数据:13512345678 脱敏结果:135****5678 | 中文姓名、身份证、电话、银行卡、电子邮箱、地址、CCV码、IP地址 组织机构代码、组织机构名称、营业执照、社会统一信用代码 医疗机构登记号、医师资格证书、医师执业证书 护照、税务登记证、开户许可证、军官证、中国护照、港澳通行证、永久居住证、台湾同胞大陆通行证 证券名称、证券代码、基金名称、基金代码 |
范围内随机 (泛化脱敏) | 对日期或金额,在一个指定的范围内进行随机,并保留原业务特征 | 范围1000至9999 原数据:38472.00 脱敏结果:8394.00 | 日期 货币金额 通用数值 |
保留随机 | 选中分段保留,其他分段随机 | 原数据:2020年10月10日 脱敏算法:【1900-2018】年、【01-12】月、【01-30】日 | 日期 |
浮动 | 对日期或金额,上浮或下降固定值或百分比,并保留原业务特征 | 上浮、下降5% 原数据:1000.00 脱敏结果:1049.00 | 日期 |
归零 | 对于数值,清空并置为0.00 | 原数据:381.38 脱敏结果:0.00 | 通用数值 |
截取 | 对字符串按照起始位置进行截取 | 开始位置:2,结束位置6 原数据:abcdefghijk 脱敏结果:bcdef | 通用字符串 |
截断 | 对字符串保留除起始位置意外的内容 | 开始位置:2,结束位置6 原数据:abcdefghijk 脱敏结果:aghijk | 通用字符串 |
数字截断 | 将数字截断,只保留指定位数 | 如12345678,保留“3位”,则为678。 | 通用数值 |
加密 | 通过不同的加密算法进行加密,脱敏后显示的数据为密文数据 | SHA1加密、MD5加密、SHA256加密、AES对称加密、RSA非对称加密、SMS4加密等 | 中文姓名、身份证、电话、银行卡、电子邮箱、地址、IP地址 邮政编码(SHA1加密、MD5加密) 营业执照、社会统一信用代码、组织机构代码、税务登记证、开户许可证 医疗机构登记号、医师资格证书、医师执业证书 护照、税务登记证、开户许可证、军官证、中国护照、港澳通行证、永久居住证、台湾同胞大陆通行证 证券名称、证券代码、基金名称、基金代码 |
替换 | 将数据替换为一个常量,常用作不需要改敏感字段时 | 原值:566 原值:789 脱敏后: 566 - 0 789 - 0 | 通用字符串 |
匹配替换 | 通过EXCL表格导入替换规则,完成匹配替换 | 1111替换为2222 3333替换为4444 | 通用字符串 |
水印 | 通过数字水印打上水印标签 | 伪行、伪列或者不可见字符 | 日期 |
偏移 | 小数点往左或往右进行偏移 | 如设定偏移量【2】,则脱敏结果可能为【28.00】 | 货币金额 通用数值 |
取整 | 对数字位数进行取整 | 如取整位数为2,则1988.65脱敏后为1900 如12345678,整数“3位”,则为12345000 | 货币金额 通用数值 |
分段 | 主要针对数字进行脱敏,可以将同一范围的数值脱敏为相同的数值 | 如1~99的数值,统一脱敏未1 100~199的数值,统一脱敏为2 200~299的数值,统一脱敏为3 | 货币金额 |
其它脱敏算法:
算法名称 | 算法说明 | 示例 | 使用场景(仅做参考) |
均值脱敏 | 我们先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。 | 如学科总分500分 脱敏后各科学分相加还是为500分。 | 货币金额 |
哈希 | 将数据映射为一个hash值 | Jim,Greenà456393 34453 | 用作将不定长的数据映射为定场的hash值。 |
07
数据脱敏策略
在设定具体场景下数据脱敏策略时应充分考虑数据脱敏后数据自身可用性及数据保密性寻求两者间的平衡。数据脱敏策略的选择如下显示。数据脱敏的目标包括:
▼避免攻击者识别出原始个人信息主体;
▼控制重标识的风险,确保重标识风险不会增加;
▼在控制重标识风险的前提下,确保脱敏后的数据集尽量满足其预期目的;
▼选择合适的数据处理方式保证信息攻击成本不足以支撑攻击动机。
08
数据脱敏实施流程:
1、敏感数据识别,对生产系统中敏感数据的识别,主要包括:
▼存储位置:明确敏感数据所在的数据库、表、字段(列);
▼数据分类、分级:明确敏感数据所属类别及敏感级别。
2、策略选择、算法配置,脱敏算法配置主要包括:数据脱敏后保持原始特征的分析、数据脱敏算法的选择和数据脱敏算法参数配置。
▼保持原始数据的格式、类型;
▼保持原有数据之间的依存关系;
▼保持引用完整性、统计特性、频率分布、唯一性、稳定性。配置需要脱敏的目标(数据库名/表名/字段名)以及适当的脱敏算法参数,根据业务需求完成其他算法的参数配置。
3、数据脱敏任务执行阶段,按照不同需求选择,动态脱敏处理步骤和静态脱敏处理步骤:
动态脱敏处理步骤:
▼协议解析:解析用户、应用访问大数据组件网络流量;
▼语法解析:对访问大数据组件的语句进行语法分析;
脱敏规则匹配:根据用户身份信息及要访问的数据;
▼下发脱敏任务:由脱敏引擎调度脱敏任务;
脱敏结果输出:将脱敏后的数据输出,保证原始数据的不可见。
静态脱敏处理步骤:
▼数据选择/策略配置:选择待脱敏的数据库及表,配置脱敏策略及脱敏算法,生成脱敏任务;
▼执行脱敏处理:对不同类型数据进行处理,将数据中的敏感信息进行删除或隐藏;
▼将脱敏后的数据按用户需求,装载至不同环境中,包括文件至文件,文件至数据库,数据库至数据库,数据库至文件等多种装载方式。
未完待续……
(本文作者:杭州美创科技有限公司 陈琼 李阳)
CCIA数据安全工作委员会单位介绍 |
杭州美创科技有限公司成立于2005年,美创科技是国内最早的数据安全厂商之一,也是国内率先将零信任理念应用于数据安全领域的代表厂商,长期沉淀与技术创新,美创科技已拥有业内领先的全栈数据安全能力配置和敏捷数据安全治理服务,并持续打造领导力优势,逐步形成以资产、入侵、风险三个视角为核心、以零信任、入侵生命周期、风险治理为基础的数据安全体系架构。 |