Mysql 数据脱敏方案

概述

编写目的

本文档描述了数据脱敏的研究成果和方法论。旨在为具有数据脱敏需求的开发人员和项目提供参考和借鉴。

数据脱敏的定义

敏感数据一般指不当使用或未经授权被人接触或修改会不利于公司利益或不利于个人依法享有的个人隐私权的所有信息。
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样,就可以在开发、测试和其它非生产环境中安全地使用脱敏后的真实数据集。
敏感数据,又称隐私数据,常见的敏感数据有: 姓名、身份证号码、地址、电话号码、银行账号、邮箱地址、所属城市、邮编、密码类 ( 如账户查询密码、取款密码、登录密码等 )、组织机构名称、营业执照号码、银行帐号、交易日期、交易金额等。

数据脱敏需求

数据脱敏需求包括:通过数据抽取、数据漂白、数据混淆等处理过程,用来满足测试、开发、培训、数据共享和数据融合场景下的敏感数据保护需求,并使得数据处理过程满足公司的敏感数据防护的政策规定。
具体脱敏需求包括:

  • 防止生产库中的敏感数据泄漏

通过对生产库中的身份、地址、用户卡号、手机号等敏感信息进行混淆、打乱后再提供给第三方使用,防止生产库中的敏感数据泄漏。

  • 保证测试、开发、应用阶段的数据关联性

通过脱敏策略和算法,保证脱敏数据有效性(保持原有数据类型和业务格式不变)、完整性(保证长度不变、数据含义不丢失)、关系性(保持表间、表内数据关联关系)。以提升测试、开发、应用环节的数据真实性和可用性。

  • 保证数据维护和数据共享的安全

对数据库访问者的用户名、IP、工具类型、时间等进行监控,控制数据访问结果的差异化,数据结果可以划分为真实数据、掩码数据、数据阻断、行限定数据等,通过访问者的不同访问策略,满足细粒度的数据访问需求。例如DBA可维护但无法查看敏感数据、业务系统可以访问真实数据、分析系统可以访问脱敏后的数据。

  • 保证隐私数据管理的政策合规性

数据的脱敏和数据处理必须在公司的相关政策规定允许的情况下进行,脱敏规则符合公司的数据管理要求。

脱敏方案

脱敏流程

数据脱敏的流程一般分为:敏感数据发现、敏感数据梳理、脱敏方案制定、脱敏任务执行四大步骤,结合数据脱敏算法、数据脱敏规则以及脱敏的环境来达到最佳的数据脱敏效果。

敏感数据发现

敏感数据的发现分为人工发现和自动发现两种。对于公司相对固定的业务数据,可以采用人工甄别,明确指定那些列、那些库的数据是需要脱敏,这些数据一般数据结构和数据长度不会有变化,大部分为数值型和固定长度的字符。比如:单位代码、户号、户名、用电地址等标识列,针对这些数据可以通过人工指定脱敏规则和不同的数据访问策略,保证敏感信息不被泄漏。

敏感数据梳理

在敏感数据发现的基础上,完成敏感数据列、敏感数据关系的调整,以保证数据的关联关系。通过屏蔽、变形、替换、随机、格式保留加密、强加密等数据脱敏算法,针对不同的数据类型进行数据掩码扰乱。

脱敏方案制定

对于不同的数据脱敏需求,在基础脱敏算法的基础上,可配置专门的脱敏策略。脱敏方案的制定主要依靠脱敏策略和脱敏算法的复用来实现,通过配置和扩展脱密算法以制定最优方案。

脱敏任务执行

脱敏任务的停止、启动、暂停等操作,支持任务并行处理,支持脱敏任务的中断续延等。

脱敏规则

脱敏规则,一般的脱敏规则分类为可恢复与不可恢复两类。
可恢复类,指脱敏后的数据可以通过一定的方式,可以恢复成原来的敏感数据,此类脱敏规则主要指各类加解密算法规则。
不可恢复类,指脱敏后的数据被脱敏的部分使用任何方式都不能恢复出。一般可分为替换算法和生成算法两大类。替换算法即将需要脱敏的部分使用定义好的字符或字符串替换,生成类算法则更复杂一些,要求脱敏后的数据符合逻辑规则,即是"看起来很真实的假数据"。
常用的脱敏规则主要有:

编号 名称 描述 示例
1 Hiding(隐匿) 将数据替换成一个常量,常用作不需要该敏感字段时 500 -> 0 
630 -> 0
2 Hashing(hash映射) 将数据映射为一个hash值(不一定是一一映射),常用作将不定长数据应设成定长的hash值 Jim,Green -> 456684923 
Tom,Cluz ->859375984
3 Permutation(唯一值映射) 将数据映射为唯一值,允许根据映射值找回原始值,支持正确的聚合或连接操作 Smith -> Clemetz 
Jones -> Spefde
4 Shift(偏移) 将数量值增加一个固定的 偏移量,隐藏数值部分特征 253 -> 1253 
254 -> 1254
5 Enumeration(排序映射) 将数据映射为新值,同时保持数据顺序 500 -> 25000 
400 ->20000
6 Truncation(截断) 将数据尾部阶段,只保留前半部分 021-66666666->021 
010-88888888->010
7 Prefix-preserving(局部混淆) 保持IP前n位不变,混淆其余部分 10.199.90.105->10.199.32.12 
10.199.90.106->10.199.56.192
8 Mask(掩码) 数据长度不变,但只保留部分数据信息 2345323 -> 234—23 
14562334 -> 145—34
9 Floor(偏移取整) 数据或是日期取整 28->20 
20130520 12:30:45 ->20130520 12:00:00

脱敏环境

数据脱敏的环境一般按照生产环境和非生产环境(开发、测试、数据分析等)进行划分,根据数据脱敏产品应用场景的将数据脱敏划分为静态数据脱敏(static data masking)和动态数据脱敏(dynamic data masking),静态数据脱敏(SDM)与动态数据脱敏(DDM)主要的区别是:是否在使用敏感数据当时进行脱敏。
静态数据脱敏(SDM)一般用在非生产环境,在敏感数据从生产环境脱敏完毕之后再在非生产环境使用,一般用于解决测试、开发库需要生产库的数据量与数据间的关联,以排查问题或进行数据分析等,但又不能将敏感数据存储于非生产环境的问题。
动态数据脱敏(DDM)一般用在生产环境,在访问敏感数据当时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时需要进行不同级别脱敏的问题。

数据脱敏方式

按照数据处理方式的不同,可以将数据脱敏分为静态数据脱敏和动态数据脱敏两大类。

静态数据脱敏


静态数据脱敏指将数据文件进行去敏感、去隐私化的处理同时保证数据之间的关联关系。外发给第三方公司进行开发测试或是数据分析。得到的分析结果后能够将分析出的数据进行回溯。

动态数据脱敏

动态数据脱敏指用户在前端应用处调取后台数据库中敏感数据时,进行数据脱敏,再反馈至前台呈现。可在通讯层面上,通过代理部署方式,对业务系统数据库中敏感数据进行透明的、实时的脱敏。通常依据用户的角色、职责和其他IT 定义身份特征,动态的对生产数据库返回的数据进行专门的屏蔽、加密、隐藏和审计,可确保不同级别的用户按照其身份特征恰如其分的访问敏感数据,并且不需要对生产数据库中的数据进行任何改变。动态数据脱敏同样支持同义替换、部分遮蔽、混合脱敏、确定性脱敏及可逆脱敏,通常可根据不同用户身份特征,指定对应的数据脱敏算法。

销参数据,ERP数据

1.由需求和用户确定需要脱敏的数据
2.如果需要从源头脱敏,需要开发在源头通过加密算法加密后写入数据库
3.对于需要从数据库脱敏的数据,可以采用提供视图+授权+指定列内容拼接* # & 等符
号进行屏蔽、加密、隐藏脱敏

版权属于: sbboke版权所有。

转载时必须以链接形式注明作者和原始出处及本声明。

张贴在数据库相关

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论