【发布时间】:2011-08-31 05:00:45
【问题描述】:
根据多个国家/地区的法律要求,我们在日志文件中匿名化用户的 IP 地址。使用 IPv4,我们通常只是匿名化最后两个字节,例如。我们记录 255.255.\*.\* 而不是 255.255.255.255
您会推荐什么算法来匿名 IPv6 地址?
【问题讨论】:
根据多个国家/地区的法律要求,我们在日志文件中匿名化用户的 IP 地址。使用 IPv4,我们通常只是匿名化最后两个字节,例如。我们记录 255.255.\*.\* 而不是 255.255.255.255
您会推荐什么算法来匿名 IPv6 地址?
【问题讨论】:
至少你想去掉EUI-64,即地址的最后64位。更现实地说,您希望剥离更多内容以真正成为私有,因为其余部分仍将仅识别一个子网(即可能是一所房子)
IPv6 全局寻址非常分层,来自RFC2374:
| 3| 13 | 8 | 24 | 16 | 64 bits |
+--+-----+---+--------+--------+--------------------------------+
|FP| TLA |RES| NLA | SLA | Interface ID |
| | ID | | ID | ID | |
+--+-----+---+--------+--------+--------------------------------+
<--Public Topology---> Site
<-------->
Topology
<------Interface Identifier----->
问题变成了私密性如何足够私密?剥离 64 位,您已经确定了 LAN 子网,而不是用户。在此之上再剥离 16 个,您已经确定了一个小型组织,即 ISP 的客户,例如具有多个子网的公司/分支机构。将接下来的 24 项从您基本上识别出的 ISP 或真正的大型组织中剔除。
您可以像处理 IPv4 地址一样使用位掩码来实现这一点,这个问题变成了一个合法的问题,尽管“我需要剥离多少才能符合特定的法规”,而不是当时的技术问题不过。
【讨论】:
要匿名化公共 IPv6 地址,您可以取前 2 组并将剩余部分替换为 CRC-16。一些示例(其中 abc1 和 abc2 - 是 CRC-16 值):
这种缩短允许在保留时间较短的完整日志中轻松匹配前 2 组(当然有一定的可能性)与非匿名 IPv6。哪个有利于问题或安全事件调查。
【讨论】: