管理脱敏算法
为了方便对数据进行脱敏,在创建脱敏策略前,需要您准备好脱敏算法。当前系统已内置20+脱敏算法,如果内置算法可以满足您的需求,您需要提前配置对应算法参数;否则,您可以新建脱敏算法。
本章主要介绍内置脱敏算法,和如何新建脱敏算法。
约束与限制
- 新建随机脱敏或字符替换类型的脱敏算法时,如果选择将敏感数据脱敏为样本库脱敏,则测试算法时限制样本文件大小不能超过10kb。注意,10kb仅为算法测试功能的限制,静态脱敏时并不限制样本文件大小不超过10kb。
- 新建哈希类型的脱敏算法时,其中的dws-SM3密码杂凑算法是DWS引擎专有算法,结果为16进制字符串,其字母为小写,要求DWS集群版本不低于8.1.3。通用-SM3密码杂凑算法为DLI或MRS引擎通用算法,结果为16进制字符串,其字母为大写。
内置脱敏算法介绍
数据安全提供了如下内置脱敏算法供您选择使用。建议您在选择算法之前,可以使用预先提供的内置算法配置和测试功能,以保证自己选择了合适的算法。
算法类型 |
内置算法名称 |
算法描述 |
是否支持配置 |
---|---|---|---|
哈希 |
HMAC-SHA256哈希 |
使用HMAC-SHA256算法进行哈希处理。 |
支持配置盐值和密钥。 |
SHA-256哈希 |
使用SHA-256算法进行哈希处理。 |
支持配置盐值。
说明:
算法盐值由您自行配置,而非系统给出的安全随机数,请关注相应使用风险。 |
|
截断 |
数值类型截断 |
保留小数点前x位,将小数点前第1到x-1位、小数点后的位数全部截断并填补为0。 例如x=3时,1234截断为1200,999.999截断为900,10.7截断为0。 |
支持配置保留小数点前几位。 |
日期类型截断 |
截断日期指定位置。 |
支持配置日期格式和掩盖范围。 |
|
掩码 |
dws指定列全掩码 |
dws指定数据列全脱敏。 仅当静态脱敏任务中源端、目标端数据源同为DWS,且执行引擎为DWS时才可以选择此算法。 |
不支持。 |
dws字符型掩码 |
从start到end的位置脱敏成指定的字符。 仅当静态脱敏任务中源端、目标端数据源同为DWS,且执行引擎为DWS时才可以选择此算法。 |
支持配置开始位置、结束位置和掩码标志。 |
|
dws数值型掩码 |
从start到end的位置脱敏成指定的数字。 仅当静态脱敏任务中源端、目标端数据源同为DWS,且执行引擎为DWS时才可以选择此算法。 |
支持配置开始位置、结束位置和掩码标志。 |
|
身份证号码掩码 |
掩码身份证号。 |
不支持。 |
|
银行卡号掩码 |
掩码银行卡号。 |
不支持。 |
|
Email掩码 |
掩码Email信息。 |
不支持。 |
|
移动设备标识掩码 |
对设备码进行掩码,支持IMEI、MEDI、ESN。 |
支持配置类型。 |
|
IPv6掩码 |
掩码IPv6地址。 |
不支持。 |
|
IPv4掩码 |
掩码IPv4地址。 |
不支持。 |
|
MAC地址掩码 |
掩码MAC地址。 |
不支持。 |
|
电话号码掩码 |
掩码电话号码。 |
不支持。 |
|
日期类型掩码 |
对指定日期格式进行掩码,支持ISO、EUR、USA格式。 |
支持配置日期格式和掩盖范围。 |
|
掩码自x至y |
掩码字符串第x至y位字符。 |
支持配置x和y。 |
|
保留自x至y |
保留字符串第x至y位字符。 |
支持配置x和y。 |
|
掩码前n后m |
掩码字符串前n后m位字符。 |
支持配置n和m。 |
|
保留前n后m |
保留字符串前n后m位字符。 |
支持配置n和m。 |
|
加密 |
dws列加密 |
调用GaussDB(DWS)提供的对称密码算法gs_encrypt_aes128(encryptstr,keystr)实现对DWS数据列的加密,此算法以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。 算法注意事项如下:
|
支持配置密钥,长度范围为1~16字节。
说明:
算法使用前必须先配置密钥,此算法才能正常使用。 |
hive列加密 |
调用MRS提供的Hive列加密功能来实现对Hive数据列的加解密,支持AES和SMS4两种加密算法。 算法注意事项如下:
|
支持配置加密类型。 |
新建脱敏算法
如果内置算法不满足您的需求,您可以新建自定义脱敏算法,自定义脱敏算法支持掩码、截断、哈希、加密、置空、随机脱敏、字符替换、键值脱敏、数值区间变换、模糊脱敏等10余类算法类型。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据安全”模块,进入数据安全页面。
- 在数据安全控制台左侧的导航树中单击 ,进入脱敏算法页面。
- 单击“新建”,新建脱敏算法。
图1 新建脱敏算法
- 新建脱敏算法参数配置请参考表2,参数配置完成单击“确定”即可。
图2 算法配置
脱敏算法参数说明表:表2 配置脱敏算法参数说明 配置
说明
*算法名称
用户自定义算法名称,长度不能超过64个字符。
描述
对当前算法进行简单描述,长度不能超过255个字符。
*脱敏算法
自定义脱敏算法支持掩码、截断、哈希、加密、置空、随机脱敏、字符替换、键值脱敏、数值区间变换、模糊脱敏等10余类算法类型,您可以根据脱敏需求自行选择。
- 掩码:支持字符型、数值型、日期型掩码,将指定位置的原始数据脱敏为固定值。
- 截断:支持日期类型和数值类型截断,将日期截断到月日小时分秒,将数值截断取整。
- 哈希:支持所有类型,使用所选的算法计算HASH值。
相较于内置算法,自定义算法新增了dws-SM3密码杂凑算法和通用-SM3密码杂凑算法。其中dws-SM3密码杂凑算法是DWS引擎专有算法,结果为16进制字符串,其字母为小写,要求DWS集群版本不低于8.1.3;通用-SM3密码杂凑算法为DLI或MRS引擎通用算法,结果为16进制字符串,其字母为大写。
- 加密:支持所有类型,使用所选的数据源加密算法为对应数据源的数据进行加密。
- 置空:支持所有类型,将值设置为null。
- 随机脱敏:支持日期类型和数值类型随机脱敏,将日期或数值脱敏为指定区间范围之内或样本库中的值。新建样本库的请参考管理样本库章节。注意,选择样本库脱敏时,OBS样本文件只能用于DLI引擎的静态脱敏任务,HDFS样本文件只能用于MRS引擎的静态脱敏任务。静态脱敏场景与引擎之间的对应关系请参考参考:静态脱敏场景介绍。
随机脱敏支持配置“随机算法保持原数据关联性”参数,开启后不同数据库中的相同数据,经过相同的规则脱敏后,脱敏结果是一致的。注意此参数开启后会存在被破解的安全风险,如确需开启,建议配置随机盐值,用于抵抗字典攻击。
- 字符替换:支持数值类型和字符类型字符替换,将指定位置的字符替换为固定值或者样本库中样本文件的值;自定义替换位置时支持使用随机数值或随机小写英文字母替换,并支持身份证号末位计算(计算身份证末位时,位数只能选择1,且前面位数需要大于等于17)。
新建样本库的请参考管理样本库章节。注意,选择样本库替换时,OBS样本文件只能用于DLI引擎的静态脱敏任务,HDFS样本文件只能用于MRS引擎的静态脱敏任务。静态脱敏场景与引擎之间的对应关系请参考参考:静态脱敏场景介绍。
随机脱敏支持配置“随机算法保持原数据关联性”参数,开启后不同数据库中的相同数据,经过相同的规则脱敏后,脱敏结果是一致的。注意此参数开启后会存在被破解的安全风险,如确需开启,建议配置随机盐值,用于抵抗字典攻击。
- 键值脱敏:支持数值类型键值脱敏,根据自定义表达式,将数值脱敏为计算后的数值。填写表达式时,原始数据变量为X,支持对原始数据进行加(+)减(-)乘(*)除(/)、括号(())、取余(%)计算操作。例如表达式为“((X*4+3)%100)/2-1”时,数值3的脱敏结果为6.5。
- 数值区间变换:支持数值类型区间变换,将指定区间之内的数字变换为指定值。
- 模糊脱敏:支持数值类型模糊脱敏,支持在百分比或绝对值模糊的区间范围内随机取值。例如百分比模糊模式,百分比分别为-10%和20%时,数值10的模糊脱敏结果为[9,12]区间范围内随机取值。
随机脱敏支持配置“随机算法保持原数据关联性”参数,开启后不同数据库中的相同数据,经过相同的规则脱敏后,脱敏结果是一致的。注意此参数开启后会存在被破解的安全风险,如确需开启,建议配置随机盐值,用于抵抗字典攻击。
开始测试
输入待测试的数据后,单击“测试”,可在测试结果处查看脱敏结果。
说明:新建随机脱敏或字符替换类型的脱敏算法时,如果选择将敏感数据脱敏为样本库脱敏,则测试算法时限制样本文件大小不能超过10kb。
测试结果