gpt4 book ai didi

logging - 如何在不破坏新旧数据关系的情况下匿名化新日志记录?

转载 作者:行者123 更新时间:2023-12-02 07:56:03 24 4
gpt4 key购买 nike

我正在生成有关用户操作的日志记录。出于隐私原因,这些需要在 N 天后匿名。但是,我还需要针对这些匿名数据运行报告。

我希望真实用户 A 的所有操作都列在匿名日志中的假用户 X 下 - 一个用户的记录必须仍然保留在日志中的一个(假)用户的记录。这显然意味着我需要在真实用户和虚假用户之间建立一些映射,我在对新记录进行匿名处理时会用到这些映射。当然,这完全违背了匿名化的目的——如果有映射,就可以恢复原来的用户数据。

例子:

User Frank Müller bought 3 cans of soup.

Three days later, User Frank Müller asked for refund for 3 cans of soup.

当我匿名化第二个日志条目时,第一个日志条目已经被匿名化。我仍然希望两个日志记录都指向同一个用户。好吧,这对我来说在实践中似乎几乎是不可能的,所以我想使用一些拆分数据的方法,希望能让我在数据中保持尽可能多的完整性。也许将日志用作数据仓库 - 将所有内容拆分为事实,并接受无法分析某些维度的事实?

你遇到过这样的场景吗?我在这里有什么选择?我显然需要做出某种妥协——什么对你有效?如何充分利用这些数据?

最佳答案

冒着学究气的风险,您描述的不是匿名数据,而是假名数据。也就是说,您是否考虑过使用某种键控哈希函数,例如 HMAC-SHA1执行假名生成?您可以通过这样的方案达成公平的妥协:

  • 将您的分析数据库与 OLTP 数据库分开。尽量减少同时访问这两者的人数。
  • 将 HMAC key 保留给将数据复制到分析数据库的应用程序专用,不能从任何一个数据库访问。也许让应用程序在安装时生成它并使用硬编码 key 对其进行混淆处理,这样系统管理员和软件开发人员都不会发现如果没有串通就可以轻松搞定。
  • 请勿从 OLTP 数据库中复制真实姓名和地址或任何等效或易于链接的键,例如用户号、发票号等,而不对其进行哈希处理。

如果这样做,有两种主要的攻击途径可以通过假名获取真实身份。

  • 直接攻击:获取 HMAC key ,计算每个已知用户的假名,并在结果表中反向查找。 (HMAC 是不可逆的:仅给定化名和 key ,您无法切实获得原始值。)
  • 信息融合攻击:在不知道 key 和身份列表的情况下,下一个最好的办法就是尝试将假名数据与其他数据相关联——甚至可能是 OLTP 数据库的被盗副本。

假名数据集是notoriously vulnerable到信息融合攻击——你必须去除或“模糊”很多关键的相关信息以使数据集抵抗这种攻击,但你需要去除多少是topic of current research .

关于logging - 如何在不破坏新旧数据关系的情况下匿名化新日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com