|
|
1
17
这个问题太有意思了,不能放下!在几次错误的启动之后,我开始思考问题的基本组成部分,并搜索RFC寻求建议。 我还没有找到明确的答案, 但我的思考过程是这样的,希望它能有所帮助:
什么样的协议适合这种描述? 简单回答:
答案不那么简单:
我怀疑最终的解决方案将涉及技术的组合,因为没有单一的方法可以保证可靠的决定。 一些信息可在 http://en.wikipedia.org/wiki/ARP_spoofing#Defenses 如果其他都失败了,您可以享受: http://www.rfc-editor.org/rfc/rfc2321.txt 拜托 张贴一个跟进你的解决方案,因为我相信它将有助于其他人。祝你好运! |
|
|
2
3
你可以发送一个 子网中每个可能IP的ARP请求 . 当然,ARP请求的源地址必须是 FF:FF:FF:FF:FF:FF:FF:FF ,否则您可能看不到响应。 我用bitwisture伪造了一个这样的包,并用preplay重播,网络上的所有主机都得到了响应。(我不知道这些伪造的ARP包是否合法…一些操作系统可能会忽略它们)
这是伪造包裹的样子:
回复如下:
如果您观察响应并在其中一个数据包中(在红色矩形中)看到您的MAC地址,那么某人与您拥有相同的MAC地址… 不幸的是,我不能完全测试这个理论,因为我的(Windows)机器都不关心我试图设置网卡的MAC地址… |
|
|
3
1
在一个网段上使用相同MAC地址的两台主机可能会使交换机发疯,并且您可能通过极不可靠的网络连接检测到它(因为交换机会将属于您的主机的部分数据包发送给第二个,这取决于您中的哪一个向其方向发送了最后一个数据包) |
|
|
4
1
这已经很晚了,而且没有答案,但我想跟进我所做的,以防其他人感兴趣。 我正在使用一些非常奇怪的嵌入式硬件,这些硬件在制造时没有分配MAC地址。这意味着我们需要在软件中分配一个。 显而易见的解决方案是让用户选择一个他们知道在他们的网络上可用的MAC地址,最好是从本地管理的范围,这就是我所做的。但是,我想选择一个相当安全的默认值,并尝试在发生冲突时警告用户。 最后,我在本地管理的范围内选择了一个随机的ISH默认值,通过对一些具有中等熵的硬件读数进行选择。我故意排除了范围的开始和结束,前提是这些范围比较可能是手动选择的。很可能在任何给定的网络上只有一个这样的设备,而且肯定少于20个,所以冲突的可能性非常低,尽管由于某些可预测的随机数,可能没有那么低。 考虑到出现问题的可能性很低,尽管上面给出了很好的答案,但我决定不进行冲突检测,而是向用户发出警告,提醒他们注意mac冲突问题。 如果我决定执行冲突检测,那么考虑到我控制了整个网络堆栈,我可能会注意过多的未知或丢失的数据包,然后触发MAC地址的更改,或者在发生这种情况时警告用户。 希望这能帮助其他人,但可能不会! |