匿名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位,就可以识别出一个局域网子网,而不是用户。再加上16个,你就发现了一个小组织,即ISP的客户,例如有几个子网的公司/分支机构。去掉接下来的24个,你基本上只确定了一个ISP或真正的大组织。

你可以用比特掩码来实现这一点,就像你对IPv4地址所做的那样,这个问题变成了一个法律问题,尽管"我需要剥离多少才能遵守特定的立法",而不是一个技术问题。

要匿名化公共IPv6地址,可以采用前两个组,并用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进行匹配。这有利于问题或安全事件的调查。

相关内容

  • 没有找到相关文章

最新更新