10

根据多个国家/地区的法律要求,我们在日志文件中匿名化用户的 IP 地址。使用 IPv4,我们通常只是匿名化最后两个字节,例如。而不是255.255.255.255我们登录255.255.\*.\*

你会推荐什么算法来匿名 IPv6 地址?

4

2 回答 2

14

至少你想去掉 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 地址一样使用位掩码来实现这一点,尽管“我需要剥离多少才能符合特定法规”,但这个问题变成了一个合法的问题,但当时不是技术问题。

于 2011-05-23T14:35:49.820 回答
0

要匿名化公共 IPv6 地址,您可以采用前 2 组并将剩余部分替换为 CRC-16。一些示例(其中abc1abc2 - 是 CRC-16 值):

  • 2001:0db8:85a3:0000:0000:8a2e:0370:7334 -> 2001:0db8-abc1
  • 2a02:200:7::123 -> 2a02:200-abc2

这种缩短允许在保留时间较短的完整日志中将前 2 组(当然有一定的概率)与非匿名 IPv6 轻松匹配。这有利于问题或安全事件调查。

于 2019-10-12T17:20:27.970 回答