论坛首页 综合技术论坛

数据漂白介绍

浏览 11659 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-21   最后修改:2011-02-21

需求定义:

       近期中国银监会出台了《商业银行信息科技风险管理指引》要求“商业银行在信息系统开发、测试和维护,以及服务外包过程中加强对客户信息的保护,防止敏感信息的泄漏。”为保护客户权益,满足商业银行风险监管和内控监管的要求,银行需要对开发环境和测试环境中的数据建立统一的管理规范,对于必须使用生产数据的系统开发、测试、维护项目,生产数据必须经过脱密,才能被加载到开发、测试或维护环境。此脱密过程称做“数据漂白”。

       测试,开发,培训,外包,数据挖掘、研究等,在非生产环境中使用生产数据,减少数据使用的限制,就必须保证数据中涉及客户和生产的敏感信息不外泄。例如:客户姓名、电话、住址、身份证号码等个人敏感信息;还有员工类和企业类的敏感信息等。如果这些客户信息泄漏会对银行本身造城不可估量的损失,如果有人以此客户数据牟利,轻则会损失重要的客户资源,重则造成严重的社会问题。在加强金融行业监管的背景下,从萨班斯法案到《企业内部控制基本规范》都明确要求金融机构中规避信息风险,对客户等资产安全,敏感信息提供完善的保护。因此如何去除数据中的敏感信息,又不改变数据的完整性和一致性,是一个数据安全管理需要解决的问题。数据漂白就是通过数据变换的方法,去除数据中的敏感信息。不同于数据加密,数据漂白可以是不可逆的过程;

一个好的数据漂白过程必须要具备以下特点:

  1. 数据仿真度 
  2. 数据关联关系
  3. 业务规则关系  
  4. 可定制

数据仿真度是指漂白过的数据看起来要像真实数据,并且具有真实数据的合法性。例如:姓名漂白过之后,看起来还应该是一个姓名;如果变成一串无意义的字符串,会让使用者很不习惯。

数据关联关系指的是数据库内的数据关联关系,这种关联关系通常是可见的,能够从数据库中找到。例如:主外键的关联关系。在漂白的时候,须保证数据关联的完整性、一致性。

业务规则关系是指数据在数据库之外的业务约束关系,即业务上对数据的约束关系,这种约束关系由业务系统的设计方提供,数据库中不会有所体现。例如:业务规则要求某个字段有一个检验字段,校验字段是通过一个算法计算出的值。此时如果漂白了这个字段,而没有考虑校验关系,就会导致漂白过的数据不可用。还有出生日期与身份证是否具有对应关系等等。  

 

数据漂白面临的问题

    目前金融企业一般数据量都比较大,对数据漂白方法也是一个挑战,一种漂白方法对小数据量没有问题,一旦上规模就会可能会出现问题。

例如:数据规模大就会涉及到数据分块,多任务拆分处理。在漂白算法设计上,要保证算法不具有任务间的关联性,才能够保证多个任务之间相互独立,易于调度和处理。

此外还会涉及到多平台、数据编码、中文字符处理等常见问题,都需要在工具上、方法上予以很好的解决。 在数据漂白策略上,需要在数据完整性与通用性之间达成一个平衡。过度追求完整性会产生很多数据约束,再加上规模庞大,使漂白问题复杂性提高;最好的方案是针对目标需求,采用不同的漂白方案,这样会使问题简单化,易于解决。

数据漂白方法介绍

  • 置换类算法,针对某些集合数据,通过置换的方法对数据进行漂白。生成类的方法,对email地址、电话号码等内容的漂白,可以通过算法随机生成相应的字段值,以达到漂白的目的
  • 随机类方法,针对数字的部分,用随机数代替原有数字。
  • 日期类方法,针对日期的变化,如果年龄等。
  • 组合类方法,对身份证号可以通过对各个部分分别漂白,再合成为一个新的身份证号的。还需要考虑的是,如果身份证号本身又是一个用于链接的键,就必须保证键值的完整性。
   发表时间:2011-02-21  
用随机数代替原有数字,怎么保证逻辑性以及和真实数据的相似度?
0 请登录后投票
   发表时间:2011-02-21  
bureaucrat 写道
用随机数代替原有数字,怎么保证逻辑性以及和真实数据的相似度?

随机算法肯定是不能满足的,如果数据与数据之间没有关联就可以采用随机。
对数据有关联的用置换类方法,没关联也没有格式要求的就直接用随机
0 请登录后投票
   发表时间:2011-02-25  
数据有关联的,比如身份证号什么的,测试起来比较麻烦,case 很多
0 请登录后投票
   发表时间:2011-02-25  
bureaucrat 写道
数据有关联的,比如身份证号什么的,测试起来比较麻烦,case 很多

是呀,如果只是主外键关联的话都用同一个置换算法即可,这样数据处理完成后关联关系还存在,如果是某种业务上的关联那就麻烦了。
0 请登录后投票
   发表时间:2011-02-25  
我现在就遇到这样的问题,好多 defect 都是因为客户提供的混淆过的 dummy 数据引起的
0 请登录后投票
   发表时间:2011-02-28  
漂白的话.. 

数据格式如此正规,何不做数据字段的互相替换
0 请登录后投票
   发表时间:2011-02-28  
很深奥,很玄妙。
个人理解,所谓的漂白和测试数据自动生成本质上没有区别。
唯一的区别是,一个没有采样数据,一个有采样数据。也就是说自动生成测试数据没有样例数据,需要通过一定的规则来生成,而你的“漂白”是有一定的样例数据,来进行重新生成。

也就是说“漂白” 不仅有规则,还有example。相当于 有生成规则还有 input。

难题我想不在生成,而是生成后,让人看起来还有点真实意味。我想主要还是在于对汉字的处理上吧,让人读的真实就必须符合一定的汉字语法。
0 请登录后投票
   发表时间:2011-02-28  
呵呵,不深奥。
测试数据自动生成的只能做些基本的数据校验,如字段非空验证,数据格式、长度验证等等。
举一个例子:
  你在某银行有一笔巨额存款,那么你的个人信息及存款信息会被录入到银行的核心系统里,有你的姓名,身份证号,电话号码,住址,E-mail等等,银行可能因为业务需要开发一个外围系统,通常情况下会将项目外包给软件外包商,软件外包商在开发测试期间肯定需要进行业务测试的,如果不将数据作下处理,你的个人信息会被测试人员,开发人员全部看到,你的隐私暴露无疑,如果有人把你的信息给了另外一个银行的业务人员,给你诸多便利让你把钱存入他们的银行,这样会对原来的银行的储蓄造成损失。另外一方面,你个人信息的泄漏,会招来一大群骗子。所以数据必须进行漂白的.
0 请登录后投票
   发表时间:2011-03-01  
楼主真黑。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics