基于 HyperLogLog 的使用分析是否符合 GDPR?
Is usage analysis based on HyperLogLog compliant with GDPR?
上下文:我们的服务有遥测系统,想跟踪留存率、有多少用户使用各种功能等。
有两个选项可以处理用户身份信息并符合 GDPR:
- 支持根据请求删除用户信息
- 数据保留不超过 30 天
选项 #1 很难实现(对于遥测系统)。选项 #2 不允许回答诸如 "what is 6-month retention for feature X?".
之类的问题
如何获得上述问题答案的一个想法是每隔 week/day 计算每个特征的 HyperLogLog blob,并永远单独存储它们。这将允许根据这些 blob 前进到 merge/dcount/calculate 保留。
假设任何用户身份信息在 30 天后(用户帐户被删除后)都消失了,HyperLogLog blob 是否仍然允许跟踪用户(即回答特定用户是否在两年前使用过功能 X)?
如果允许则不合规(如果不允许则不表示合规)。
一般来说,HLL 不 GDPR 合规。这个问题在最近的 Google paper 中有所解决(参见第 8 节:'Mitigation strategies')。
HLL 中使用的散列函数通常不是加密安全的(通常是 MurmurHash),因此即使加盐,您仍然可以回答问题 "is a user part of a HLL data structure or not",这是不行的。
Afaik 如果您将 HLL 保留超过 30 天,您将符合规定 iff 您在 HLL 聚合之前应用加盐加密哈希(即加盐 SHA-2 或BLAKE2b, BLAKE3) 并且你在每 <30 天的时间段后销毁盐。这将允许您保持 <30 天的间隔。您将无法在多个时间间隔内合并 HLL,而只能在超过 28 天的时间段内合并,但这仍然非常有价值,具体取决于您的业务需求。
上下文:我们的服务有遥测系统,想跟踪留存率、有多少用户使用各种功能等。
有两个选项可以处理用户身份信息并符合 GDPR:
- 支持根据请求删除用户信息
- 数据保留不超过 30 天
选项 #1 很难实现(对于遥测系统)。选项 #2 不允许回答诸如 "what is 6-month retention for feature X?".
之类的问题如何获得上述问题答案的一个想法是每隔 week/day 计算每个特征的 HyperLogLog blob,并永远单独存储它们。这将允许根据这些 blob 前进到 merge/dcount/calculate 保留。
假设任何用户身份信息在 30 天后(用户帐户被删除后)都消失了,HyperLogLog blob 是否仍然允许跟踪用户(即回答特定用户是否在两年前使用过功能 X)?
如果允许则不合规(如果不允许则不表示合规)。
一般来说,HLL 不 GDPR 合规。这个问题在最近的 Google paper 中有所解决(参见第 8 节:'Mitigation strategies')。
HLL 中使用的散列函数通常不是加密安全的(通常是 MurmurHash),因此即使加盐,您仍然可以回答问题 "is a user part of a HLL data structure or not",这是不行的。
Afaik 如果您将 HLL 保留超过 30 天,您将符合规定 iff 您在 HLL 聚合之前应用加盐加密哈希(即加盐 SHA-2 或BLAKE2b, BLAKE3) 并且你在每 <30 天的时间段后销毁盐。这将允许您保持 <30 天的间隔。您将无法在多个时间间隔内合并 HLL,而只能在超过 28 天的时间段内合并,但这仍然非常有价值,具体取决于您的业务需求。