动态脱敏的核心在于在数据被访问的瞬间,实时地对敏感信息进行处理,将其转化为非敏感或假性数据,同时保持数据的可用性。实现这一目标依赖于多种脱敏算法,每种算法都有其适用场景和优缺点。
以下是动态脱敏中常用的主要算法类型:
1. 替换 (Substitution)
原理: 用具有相同数据格式的随机或预定义的值替换原始敏感数据。
示例:将真实的手机号码 13912345678 替换为随机生成的 13800001234。
将客户姓名 张三 替换为 王五 或从一个姓名库中随机抽取。
适用场景: 需要完全隐藏原始数据,同时保持数据格式和类型不变的场景。
优点: 脱敏彻底,安全性高,操作简单。
缺点: 替换后的数据与原始数据无任何关联,可能丢失数据间的逻辑关系(例如,同一个客户在不同表中,替换后无法关联)。
2. 混淆/打乱 (Shuffling)
原理: 在一个数据列或一个批次数据内部,将数据进行随机重排,使其失去原始的对应关系,但保留数据的整体分布特性。
示例:一个包含多个客户姓名的列,将其内部的姓名顺序打乱。
一个包含多个城市名称的列,将其内部的城市名称顺序打乱。
适用场景: 需要保留数据分布和统计特性,但打乱个体对应关系的场景(例如,测试环境需要保留地区分布,但具体用户不对应真实地区)。
优点: 保留数据多样性和统计特征。
缺点: 如果数据量太小,重排可能无法达到很好的脱敏效果。
3. 截断/部分遮盖 (Truncation/Partial Masking)
原理: 只显示敏感数据的一部分,隐藏或遮盖其余部分。
示例:将手机号码 13912345678 遮盖为 139****5678。
将身份证号 420101199001011234 遮盖为 420101********1234。
银行卡号只显示后四位。
适用场景: 既需要一定程度的敏感信息展示(如方便识别),又需要保护大部分敏感内容的场景(例如,客服人员查询订单时看到部分手机号)。
优点: 直观易懂,部分信息可识别,易于实现。
缺点: 未完全隐藏所有敏感信息,仍有泄露风险。
4. 格式保留加密 (Format-Preserving Encryption, FPE)
原理: 对敏感数据进行加密处理,但加密后的数据依然保持与原始数据相同的格式和长度。这意味着加密后的数据看起来仍然像是真实的、符合规则的数据。
示例:将信用卡号 4000123456789010 加密为另一个符合信用卡号格式的 4111987654321098。
将邮件地址 user@example.com 加密为 mask@domain.com。
适用场景: 需要在保持数据格式和校验规则的前提下进行加密脱敏,且可能在未来特定场景下需要还原(例如,某些特定部门的合规性要求)。
优点: 安全性高,保留数据格式和校验规则,对下游应用影响小。
缺点: 相比其他算法更复杂,可能需要密钥管理。如果不是单向加密,理论上存在可逆性。
5. 加密/哈希 (Encryption/Hashing)
原理:加密: 使用加密算法将敏感数据转化为密文。根据是否可逆,可分为可逆加密和不可逆哈希。
哈希: 使用哈希函数将敏感数据转化为固定长度的散列值,该过程是不可逆的。
示例:将用户密码进行哈希处理(例如,MD5 或 SHA256)。
将敏感字段进行可逆加密,如 AES。
适用场景:哈希:需要验证数据一致性,但不需要还原原始数据的场景(如存储密码)。
可逆加密:在特定情况下需要还原真实数据,但通常显示密文或在未解密时无法识别的场景。
优点: 安全性高(哈希不可逆,加密依赖密钥强度)。
缺点: 哈希不可逆,丢失原始数据。可逆加密需要密钥管理。
6. 条件脱敏 (Conditional Masking)
原理: 根据特定的业务条件(如用户角色、IP地址、访问时间、数据内容等)来决定是否执行脱敏,以及执行哪种脱敏算法。
示例:公司内部员工可以查看完整数据,外部合作伙伴只能看到脱敏数据。
只有在办公网络IP范围内访问时显示完整数据,其他IP访问时进行脱敏。
只有数据状态为“已完成”时,才对某些字段脱敏。
适用场景: 需要精细化权限管理,根据不同场景和用户显示不同级别敏感度的信息。
优点: 灵活性和精细度高,最大化数据可用性与安全性平衡。
缺点: 策略配置相对复杂。
7. 数据泛化/聚合 (Generalization/Aggregation)
原理: 将特定敏感数据替换为更一般化、更宽泛的类别或范围,或者将多条记录聚合后呈现统计结果。
示例:将具体年龄 35 替换为年龄段 30-40岁。
将详细地址 XX省XX市XX区XX路123号 替换为 XX省XX市。
只显示某个区域的总销售额,不显示每笔订单的详细信息。
适用场景: 需要进行统计分析或宏观趋势分析,但又不能暴露个体隐私的场景。
优点: 保留数据统计特性,降低个体识别风险。
缺点: 丢失部分数据细节。
在实际应用中,一个强大的动态脱敏产品通常会组合使用上述多种算法,并允许管理员根据具体的数据类型、业务场景和安全级别来灵活配置脱敏策略。例如,身份证号可能采用部分遮盖,而银行卡号可能采用格式保留加密。
原点安全 uDSP 数据库动态脱敏产品
支持多场景
数据库运维场景:不改变原有数据库访问工具和使用习惯,通过数据库认证代理机制实现数据库访问“实名化”,支持基于用户真实身份、岗位角色等属性实施个性化脱敏策略。 数据开发利用场景:解耦数据安全与业务,大幅降低脱敏策略数量和变更频率,满足 BI 数据分析、数据开发等场景的个性化数据动态脱敏需求。 业务应用场景:“免改造”、“免定制”实现业务应用动态数据脱敏,不影响编辑回写,不影响关联查询,显著减少数据安全与业务的摩擦。
多源异构敏感数据目录
屏蔽分散、异构数据源的差异和复杂性,全面识别敏感数据并形成统一的敏感数据目录可视化视图;“被动发现+主动扫描”双模式敏感数据自动发现和识别引擎,保证敏感数据目录的完整性及新鲜度,及时发现新增、变化的敏感数据类型,自动标记并更新敏感数据目录。
自适应敏感数据动态脱敏
通过平台管理平台统一管理脱敏策略,保证各场景脱敏策略的一致性;基于敏感数据目录(分类分级标签)实时联动的一体化脱敏策略,极大降低运维管理工作量,当数据表增加新的敏感数据字段,无需更新策略,即时生效。
30余种脱敏算法与脱敏策略
支持遮蔽、替换、分段、取整、哈希、仿真等30+种脱敏算法,支持 Lua脚本语言自定义脱敏算法以及自定义脱敏模板;支持请求脱敏、响应脱敏,支持请求复敏。
高性能与高可用架构设计
分布式架构设计,多种脱敏组件,覆盖多场景脱敏需求;脱敏计算资源可灵活水平扩展, 隔离单点故障;高可用弹性集群部署,脱敏负载影响<5% 。