数据脱敏——什么是数据脱敏
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。
百度百科对数据脱敏的定义为:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如×××号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
生活中不乏数据脱敏的例子,比如我们最常见的火车票、电商收货人地址都会对敏感信息做处理,甚至女同志较熟悉的美颜、有些视频中的马赛克都属于脱敏。
二、为什么要进行数据脱敏?
上面说到,在"涉及客户安全数据或者一些商业性敏感数据的情况下"对数据进行改造,说明我们要进行改造的数据是涉及到用户或者企业数据的安全,进行数据脱敏其实就是对这些数据进行加密,防止泄露。
对于脱敏的程度,一般来说只要处理到无法推断原有的信息,不会造成信息泄露即可,如果修改过多,容易导致丢失数据原有特性。因此,在实际操作中,需要根据实际场景来选择适当的脱敏规则。改姓名,×××号,地址,手机号,电话号码等几个客户相关字段。
三、如何实现数据脱敏
按照脱敏规则,可以分为可恢复性脱敏和不可恢复性脱敏。可恢复性脱敏就是数据经过脱敏规则的转化后,还再次可以经过某些处理还原出原来的数据,相反,数据经过不可恢复性脱敏之后,将无法还原到原来的样子,可以把二者分别看做可逆加密和不可逆加密。
我们目前遇到的场景是日志脱敏,即在把日志中的密码,甚至姓名、×××号等信息都进行脱敏处理。
脱敏前:
脱敏后:
如上图,仔细分析会发现,打日志之前,获得脱敏的数据就两个步骤:【拿到要输入的数据(user实体)】→【进行序列化】,所以要进行数据脱敏可以考虑在这两个步骤上进行实现。第一个方法就是在序列化实体之前先把需要脱敏的字段进行处理,之后正常序列化;第二个方法就是在实体序列化的时候,对要脱敏的字段进行处理。
后面来分享一下具体实现数据脱敏的方法。