更新时间:2024-08-29 GMT+08:00

管理脱敏算法

为了方便对数据进行脱敏,在创建脱敏策略前,需要您准备好脱敏算法。当前系统已内置20+脱敏算法,如果内置算法可以满足您的需求,您需要提前配置对应算法参数;否则,您可以新建脱敏算法。

本章主要介绍内置脱敏算法,和如何新建脱敏算法。

约束与限制

  • 新建随机脱敏或字符替换类型的脱敏算法时,如果选择将敏感数据脱敏为样本库脱敏,则测试算法时限制样本文件大小不能超过10kb。注意,10kb仅为算法测试功能的限制,静态脱敏时并不限制样本文件大小不超过10kb。
  • 新建哈希类型的脱敏算法时,其中的dws-SM3密码杂凑算法是DWS引擎专有算法,结果为16进制字符串,其字母为小写,要求DWS集群版本不低于8.1.3。通用-SM3密码杂凑算法为DLI或MRS引擎通用算法,结果为16进制字符串,其字母为大写。

内置脱敏算法介绍

数据安全提供了如下内置脱敏算法供您选择使用。建议您在选择算法之前,可以使用预先提供的内置算法配置和测试功能,以保证自己选择了合适的算法。

表1 内置算法介绍

算法类型

内置算法名称

算法描述

是否支持配置

哈希

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字符串进行加密,返回加密后的字符串。

算法注意事项如下:

  • 仅当脱敏任务的目标源为DWS时,此算法才能正确生效。
  • 加密后执行SQL解密时,必须当所有的数据都解密成功时,才能正确返回解密结果,否则解密失败。

支持配置密钥,长度范围为1~16字节。

说明:

算法使用前必须先配置密钥,此算法才能正常使用。

hive列加密

调用MRS提供的Hive列加密功能来实现对Hive数据列的加解密,支持AES和SMS4两种加密算法。

算法注意事项如下:

  • 仅当脱敏任务的目标源为Hive时,此算法才能正确生效。
  • 列加密只支持存储在HDFS上的TextFile和SequenceFile文件格式的表。
  • Hive列加密不支持视图以及Hive over HBase场景。

支持配置加密类型。

新建脱敏算法

如果内置算法不满足您的需求,您可以新建自定义脱敏算法,自定义脱敏算法支持掩码、截断、哈希、加密、置空、随机脱敏、字符替换、键值脱敏、数值区间变换、模糊脱敏等10余类算法类型。

  1. DataArts Studio控制台首页,选择对应工作空间的“数据安全”模块,进入数据安全页面。
  2. 在数据安全控制台左侧的导航树中单击脱敏算法,进入脱敏算法页面。
  3. 单击“新建”,新建脱敏算法。

    图1 新建脱敏算法

  4. 新建脱敏算法参数配置请参考表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。

    测试结果

相关操作

  • 编辑算法:在脱敏算法页面,单击对应算法操作栏中的“编辑”,即可修改算法参数。

    不同算法是否支持编辑和支持修改的参数因实际算法不同有所差异,请以操作界面为准。

  • 测试算法:在脱敏算法页面,单击对应算法操作栏中的“测试”,即可测试该算法。

    建议您在使用算法之前,使用算法测试功能,以保证自己选择了合适的算法。

    不同算法是否支持测试因实际算法不同有所差异,请以操作界面为准。

  • 删除算法:在脱敏算法页面,单击对应算法操作栏中的“删除”,即可删除算法。当需要批量删除时,可以在勾选算法后,在列表上方单击“批量删除”。
    注意,内置算法不支持删除,已在脱敏策略或指定列脱敏中引用的自定义算法无法删除。若要删除已引用的自定义算法,需要先修改引用关系,再进行删除操作。

    删除操作无法撤销,请谨慎操作。