我怎么可以检测,如果另一主机使用的是相同的MAC地址作为目前主持,例如因为其他主机被欺骗?

我的工作中嵌入式的环境,以寻找答案的协议水平,而不是"使用这一工具"。

编辑:普遍使用的不会 解决这个问题。对于普遍使用得到任何答复,必须有至少一个主在该分段,它支持普遍使用.由于普遍使用的是过时的、现代化操作系统不支持它。此外,所有普遍使用能做的就是告诉你你自己的IP地址-响应不会有任何不同,如果有另一个主机上段相同MAC,除非东道本身已经使用了不同的IP地址。

有帮助吗?

解决方案

这个问题是太有趣了放下!之后的几个错误的开始,我开始思考的重要组成部分的问题,并走遍了Rfc的咨询意见。 我还没有找到一个明确的答案, 但这是我的思维过程,希望它有助于:

  • 原来的问题,询问如何检测到另一个设备与你MAC地址。假设你在IP网络,需要什么来完成这个吗?

  • 被动 方法将只需要 听听 来交通,并寻找任何数据包,你没有发射但有MAC地址。这可能发生或可能不发生的,因此尽管它的 可以 告诉你确切地如果存在重复, 不能 告诉你确切地说,它不。

  • 任何 活性 方法需要你传递一个分组, 部队 一个骗子作出反应。这立即消除了任何方法取决于 可选的 协议。

  • 如果另外的设备是欺骗你, 必须 (按定义)应包 你的 MAC地址作为目标。否则就是 四处窥探 但不是 欺骗.

  • 该解决方案应该是独立的IP地址,并只涉及MAC地址。

  • 所以答案,现在看来,将传送一个广播(以太网)的分组或分组与MAC地址作为其目的地,需要一个反应。该monkeywrench是一个IP地址通常的参与,和你不知道这一点。

什么样的协议符合这种描述吗?

简单的回答:

  • 如果你网络支持,络,你在做,因为这种权威性结合一个MAC地址为一个IP地址。发送的请求,得到一个IP地址,并尝试谈到它。你可能需要有创意的强迫的包到电线和防止自己回应(我在想明智地使用令和NAT)。

不那么容易的答案:

  • 一协议,该协议是独立的IP:无论是一个不使用知识产权层,或者一个允许广播节目。没有想到的。

  • 发送 任何 分组,通常会产生的响应你,防止自己回应,并寻找一个响应从另一个设备。这似乎是明智的使用你的IP地址为目的,但是我不相信这一点。不幸的是,详细信息(和因此答复)是左作的锻炼。但是我希望的讨论是有益的。

我怀疑最终解决方案将涉及技术的组合,因为没有单一的办法似乎能保证一个可靠的决心。

一些信息提供 http://en.wikipedia.org/wiki/ARP_spoofing#Defenses

如果一切都失败了,你可以享受这样的: http://www.rfc-editor.org/rfc/rfc2321.txt

后一个后续行动与解决方案,因为我相信它将有助于他人。祝你好运!

其他提示

您可以为子网中的每个可能的ip发送 ARP请求。 当然,ARP请求的源地址必须是 ff:ff:ff:ff:ff:ff ,否则您可能看不到响应。

我使用bittwiste伪造了这样的数据包并用PReplay重播它,网络上的所有主机都得到了响应。 (我不知道这些伪造的ARP数据包是否合法......某些操作系统可能会忽略它们)

以下是伪造包的样子:

以下是回复的内容:

如果您观看响应并在其中一个数据包(红色矩形)中查看您的MAC地址,那么某人的MAC地址与您的MAC地址相同...

不幸的是,我无法完全测试这个理论,因为我的(Windows)机器都不关心我试图设置nic的MAC地址......

在一个网段上使用相同MAC地址的两台主机可能会使交换机变得疯狂,您可能会通过网络连接非常不可靠来检测它(因为交换机会将属于您主机的部分数据包发送到第二个,取决于你们中哪一个向他们的方向发送了最后一个数据包。)

这已经很晚了,而且没有答案,但我想跟进我所做的事情以防其他人感兴趣。

我正在使用一些非常奇怪的嵌入式硬件,这些硬件在制造时没有分配MAC地址。这意味着我们需要在软件中分配一个。

显而易见的解决方案是让用户选择他们知道在他们的网络上可用的MAC地址,最好是从本地管理的范围,以及我所做的。但是,我想选择一个合理安全的默认值,并尝试在发生冲突时警告用户。

最后,我采用了本地管理范围内的随机默认值,通过制作一些具有中等熵的硬件读数来选择。我故意排除了范围的开始和结束,假设这些范围更适合手动选择。很可能在任何给定的网络中只有这些设备中的一个,当然少于20个,因此冲突的可能性非常低,尽管由于可预测的随机数而没有那么低。 / p>

鉴于出现问题的可能性很低,尽管上面有很好的答案,我还是决定放弃冲突检测,并向用户发出警告,以查找MAC冲突问题。

如果我确实决定实施冲突检测,那么鉴于我控制整个网络堆栈,我可能会查找过多的未知或丢失数据包,然后触发MAC地址更改或在发生这种情况时警告用户。

希望这会帮助其他地方的某个人–但可能不是!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top