0

背景:我们的服务有遥测系统,想跟踪留存率、有多少用户使用各种功能等。

有两种选择可以处理用户身份信息并符合 GDPR:

  1. 支持根据请求删除用户信息
  2. 将数据保留少于 30 天

选项 #1 难以实施(对于遥测系统)。选项 #2 不允许回答诸如“什么是功能 X 的 6 个月保留期?”之类的问题。

如何获得上述问题的答案的一个想法是每周/每天计算每个功能的 HyperLogLog blob,并将它们永远分开存储。这将允许基于这些 blob 继续合并/dcount/计算保留。

假设任何用户可识别信息在 30 天后消失(在用户帐户被删除后),HyperLogLog blob 是否仍允许跟踪用户(即回答特定用户是否在两年前使用功能 X)?

如果它允许,那么它是不合规的(如果它不允许,并不意味着它是合规的)。

4

1 回答 1

2

一般来说,HLL符合 GDPR。这个问题在最近的Google 论文中有所解决(参见第 8 节:“缓解策略”)。

HLL 中使用的散列函数通常不是加密安全的(通常是 MurmurHash),因此即使使用加盐,您仍然可以回答“是否是 HLL 数据结构的用户部分”的问题,这是不可以的。

如果您在 HLL 聚合之前应用加盐加密哈希(即加盐 SHA-2 或BLAKE2b、BLAKE3)并在每 <30 天后销毁盐,那么如果您将 HLL 保留超过 30 天,那么您将遵守规定. 这将允许您保持 <30 天的间隔。您将无法在多个时间间隔内合并 HLL,但只能合并超过 28 天的块,但这仍然非常有价值,具体取决于您的业务需求。

于 2020-04-27T23:16:05.690 回答