我正在生成有关用户操作的日志记录。出于隐私原因,这些需要在N天后进行匿名处理。但是,我还需要针对此匿名数据运行报告。
我希望真实用户A的所有操作都在匿名日志中的假用户X下列出 - 一个用户的记录仍必须保留日志中一个(假)用户的记录。这显然意味着我需要在真实用户和假用户之间进行一些映射,我在匿名化新记录时会使用这种映射。当然,这完全违背了匿名化的要点 - 如果有映射,原始用户数据可以恢复。
示例:
用户FrankMüller买了3罐汤。
三天后,用户FrankMüller要求退还3罐汤。
当我对第二个日志条目进行匿名化时,第一个日志条目已经被匿名化了。我仍然希望两个日志记录都指向同一个用户。嗯,这在实践中对我来说几乎是不可能的,所以我想使用一些分割数据的方法,希望能让我在数据中保持尽可能多的完整性。也许使用日志作为数据仓库 - 将所有内容分解为事实并接受无法分析某些维度的事实?
你以前遇到过这种情况吗?我有什么选择?我显然需要做出某种妥协 - 事实证明对你有效吗?如何充分利用这些数据?
答案 0 :(得分:7)
冒着迂腐的风险,你描述的不是匿名数据,而是假名数据。也就是说,您是否考虑使用某种键控散列函数(如HMAC-SHA1)来执行假名生成?您可以通过以下方案达成公平妥协:
如果你这样做,有两种主要的攻击途径来从假名获得真实身份。
假信息融合攻击的假名数据集notoriously vulnerable - 您必须剥离或“模糊”大量关键相关信息,以使数据集能够抵御此类攻击,但确切地说您需要多少strip是topic of current research。