IPv6会帮助形成垃圾邮件发送者吗?

时间:2011-01-27 06:30:26

标签: ipv6 spam ipv4

开发Web应用程序的一个主要(主要)部分是使其具有防滥用性,更具体地说是防垃圾邮件。

我刚刚注意到今天的spambots设法请求表单,填写表单,提交表单并重新提交表单(例如,如果CMS在实际接收表单数据之前要求提供更多信息)...所有来自不同的IPv4地址。

首先,两个问题:

  • 他们使用什么技术在几秒钟内通过不同的IP路由属于同一会话(表单提交)的不同请求?
  • 我可以编写基于IP的哈希来检查请求表单的IP和提交表单的IP是否相同;但是:有没有合理的理由说明用户(即不是垃圾邮件发送者)可能想要从与请求它的IP不同的IP提交表单?

然后,问这个问题:

凭借其几乎无限的地址数量,IPv6是否会让垃圾邮件发送者更容易让网站管理员和网络应用程序开发人员的生活变得悲惨?

也许最终用户都拥有自己的静态IPv6,这对我们来说是件好事,因为我们可以更轻松地阻止机器受到损害的用户。

或者垃圾邮件发送者可以继续从不同的角度攻击我们,从不使用相同的IPv6两次......我不太确定它在技术上如何工作,特别是因为我甚至不了解它如何与IPv4协同工作。

在最高级别IPv4地址耗尽的当天或多或少地提出问题

4 个答案:

答案 0 :(得分:4)

简短的回答是,IPv6可能会使垃圾邮件制造者更容易,而不是更困难。

详细说明:虽然IPv6允许主机循环通过几乎无限数量的RFC 4941隐私地址来连接您的Web应用程序,但好消息是64位网络标识符是其地址的一部分可以合理地映射到一个相当静态的用户标识符。

另一方面,继续使用IPv4,情况很快就会开始变得非常严峻。随着越来越多的互联网服务提供商开始通过聚合大规模NAT网关背后的用户来处理IPv4地址耗尽,您将失去对订户进行处理的能力,就好像他们每个人的IPv4地址都有唯一标识符一样。在某些时候,垃圾邮件制造者会利用这一优势来对付你,并且你的选择是切断大量无辜的IPv4用户通过NAT网关,这些用户是很多被入侵的主机,或者更好地检测和删除垃圾邮件事后。

答案 1 :(得分:2)

好吧,有些用户可能会为http请求使用静态IPv6地址;别人不会。

查看我发布的机器主界面上的[某些] IPv6地址:

C:\>netsh interface ipv6 show address interface=4 level=normal
Querying active state...


Interface 4: Local Area Connection

Addr Type  DAD State  Valid Life   Pref. Life   Address
---------  ---------- ------------ ------------ -----------------------------
[...]
Temporary  Preferred     23h59m47s     3h59m47s 2001:4830:16c0:0:f51c:8f47:26ff:596b
Temporary  Deprecated    23h59m47s           0s 2001:4830:16c0:0:8d09:1a8:6039:548b
Temporary  Deprecated    23h59m47s           0s 2001:4830:16c0:0:954b:fd2d:6528:a6b2
Temporary  Deprecated    23h59m47s           0s 2001:4830:16c0:0:4c27:9415:e1cc:5a5a
Temporary  Deprecated    23h59m47s           0s 2001:4830:16c0:0:951f:b93:b21e:1d97
Temporary  Deprecated    23h59m47s           0s 2001:4830:16c0:0:59c3:d575:189e:4fbb
Temporary  Deprecated     6h32m45s           0s 2001:4830:16c0:0:f838:1133:38d0:894c
Public     Preferred     23h59m47s     3h59m47s 2001:4830:16c0:0:20b:dbff:fe26:9fc5
Link       Preferred      infinite     infinite fe80::20b:dbff:fe26:9fc5
No entries were found.

(我遗漏了一些其他只会引起混淆的地址。)

请注意,除了“链接”地址外,还有一个“公共”地址和一堆“临时”地址(大部分都是“已弃用”)。

“链接”地址只是接口的链接本地地址,用于各种本地管理聊天。 (顾名思义,它只能用于与同一“链路”上的其他主机通信;它不能用于要路由的流量。)

naesten@hydrogen:~% ipv6calc -i fe80::20b:dbff:fe26:9fc5 2>/dev/null
Address type: unicast, link-local
Registry for address: reserved
Interface identifier: 020b:dbff:fe26:9fc5
EUI-48/MAC address: 00:0b:db:26:9f:c5
MAC is a global unique one
MAC is an unicast one
OUI is: Dell ESG PCBA Test

如您所见,该地址的接口标识符(右侧64位半)是接口的directly based on the MAC address

所显示的其他地址恰好来自我的六方提供的子网2001:4830:16c0::/48,但遗憾的是它们现在无法正常工作,因为存在点已关闭。

“公共”地址只是将前缀与链接本地地址中的相同接口标识符粘在一起,并且应该毫不奇怪(给定名称)这是服务器和长期运行的对等体的地址通常会听取对等节目。

但那些“临时”地址呢?

现在令人费解的是:所有其他地址是什么,它们来自哪里?

答案可以在RFC 4941 - Privacy Extensions for Stateless Address Autoconfiguration in IPv6中找到。你知道,事实证明,在你的IP地址中永久使用相同的接口标识符使对手很容易“关联看似无关的活动”(不需要“跟踪cookie”,以及允许独立收集的数据组合在一起)稍后)。

解决方案是使用临时 IPv6地址进行大多数通信。在任何给定时间,其中一个是“首选”地址,用于新通信,而另一些地址是“有效”但不是“首选”,因此当切换到时,持续通信不会受到不适当的干扰。一个新的“首选”地址。没有地址保持“首选”或“有效”的时间分别超过TEMP_VALID_LIFETIMETEMP_PREFERRED_LIFETIME

特别是,section 5建立了以下默认值,这与我们在此处看到的一致:

TEMP_VALID_LIFETIME -- Default value: 1 week.  Users should be able
to override the default value.

TEMP_PREFERRED_LIFETIME -- Default value: 1 day.  Users should be
able to override the default value.

答案 2 :(得分:2)

由于网络拓扑结构的变化,IP地址可能会在表格完成时发生变化,例如笔记本电脑与火车站的Wi-Fi服务断开连接并连接到火车上的Wi-Fi服务。多宿主主机可以随机更改源地址或响应路由协议。

答案 3 :(得分:1)

如果你使用掩码对抗/ 64前缀长度的滥用,即忽略地址的主机部分,你很有可能阻止来自单个主机的基本攻击。

如果您希望能够处理能够访问更多地址空间的攻击者(例如/ 56或/ 48),那么您就没有理由不能处理它。