冒着学究的危险,你所描述的并不是
匿名的
数据,而是
假名的
数据。也就是说,您是否考虑过使用某种键控哈希函数,例如
HMAC-SHA1
要执行笔名生成吗?你可以通过这样的计划达成一个公平的妥协:
-
分离您的分析和OLTP数据库。最小化可以同时访问这两者的人数。
-
将HMAC密钥保留为将数据复制到分析数据库的应用程序的私有,这两个数据库都无法访问。也许让应用程序在安装时生成它,并使用硬编码密钥将其混淆,这样系统管理员和软件开发人员都不会发现不合谋就能轻松应对。
-
不要复制真实姓名和地址
或任何等效或容易链接的密钥,如用户编号、发票编号等。
在没有散列的情况下从OLTP数据库。
如果你这样做,有两个主要的攻击途径,以从假名中获得真实身份。
-
直接攻击:获取HMAC密钥,计算每个已知用户的假名,并在结果表中反向查找。(hmac是不可逆的:只给出一个假名和密钥,您就不能合理地获得原始值。)
-
信息融合攻击:在不知道密钥和身份列表的情况下,下一个最好的方法就是尝试将匿名数据与其他数据关联起来,甚至可能是一份被盗的OLTP数据库副本。
匿名数据集是
notoriously vulnerable
对于信息融合攻击——您必须去除或“模糊”大量关键的相关信息,以使数据集能够抵御此类攻击,但是您需要去除的确切数量是
topic of current research
.